Jump to content

Guides:Mail Writer GS (non-EN): Difference between revisions

Line 267:
 
The code overwrites part of itself to call the byteFill function. This will fill the area between $D57E and $D5AF with $FF values, setting all 50 TM quantities to 255. Separately, this code overwrites the latter half of party pokémon #5's stat experience data, allowing it to function as a TM25 bootstrap that redirects execution to the Mail Writer.
 
<pre>
French
 
Box 1: $D8BF
80 add a, b
AF xor a ; a = $00, carry flag reset
EA F9 F8 ld ($F8F9), a
DE FF sbc $FF ; a = $01, carry flag set
FB ei
50 ld d, b
 
Box 2: $D8C8
EA F7 F8 ld ($F8F7), a
DE A2 sbc $A2 ; a = $5E, carry flag set
EA FB F8 ld ($F8FB), a
50 ld d; b
 
Box 3: $D8D1
87 add a ; a = $BC, carry flag reset
DE 8B sbc $8B ; a = $31, carry flag reset
EA FC F8 ld ($F8FC), a
E6 A1 or $A1 ; a = $21, carry flag reset
50 ld d, b
 
Box 4: D8DA
EA F4 F8 ld ($F8F4), a
DE EF sbc $EF ; a = $32, carry flag set
EA F8 F8 ld ($F8F8), a
50 ld d, b
 
Box 5: $D8E3
DE B3 sbc $B3 ; a = $7E, carry flag set
EA F5 F8 ld ($F8F5), a
EA 9D FA ld ($FA9D), a
50 ld d, b
 
Box 6: $D8EC
AF xor a ; a = $00, carry flag reset
DE FC sbc $FC ; a = $04, carry flag set
EA 9B FA ld ($FA9B), a
9F sbc a ; a = $FF, carry flag set
FB ei
21
 
Box 7: $D8F5
7E F5 ld hl, $F57E
01 32 00 ld bc, $0032
DC 5E 31 call c, byteFill
50 ld d, b
 
Box 8: $D907
E6 F5 and $F5 ; a = $F5, carry flag reset
EA 9E FA ld ($FA9E), a
DE B7 sub $B7 ; a = $3E, carry flag reset
FB ei
50 ld d, b
 
Box 9: $D910
EA 9A FA ld ($FA9A), a
87 add a ; a = $7C, carry flag reset
DE B9 sbc $B9 ; a = $C3, carry flag set
FB ei
FB ei
50 ld d, b
 
Box 10: $D919
EA 9C FA ld ($FA9C), a
D9 ret c
50 ld d, b
 
Party pokémon #3's stat experience, starting from $DA9A
3E 04 ld a, $04
C3 7E F5 jp $F57E
</pre>
 
<pre>
German
 
Lead-up to wBoxNames: $D8BE
22 ldi (hl), a
 
Box 1: $D8BF
C0
21 F4 F8 ld hl, $F8F4 ; corresponds to terminator of box #9's name
C4 BE F8 call nz, $F8BE ; due to mail, a = $21
96 sub (hl) ; a = $7E
50 ld d, b
 
Box 2: $D8C8
C4 BE F8 call nz, $F8BE
96 sub (hl) ; a = $F5
C4 BE F8 call nz, $F8BE
AE xor (hl) ; a = $0E
50 ld d; b
 
Box 3: $D8D1
C4 BE F8 call nz, $F8BE
B6 or (hl) ; a = $9F
86 add (hl) ; a = $32
C4 BE F8 call nz, $F8BE
50 ld d, b
 
Box 4: D8DA
86 add (hl) ; a = $C3
C4 BE F8 call nz, $F8BE
86 add (hl) ; a = $79
C4 BE F8 call nz, $F8BE
50 ld d, b
 
Box 5: $D8E3
86 add (hl) ; a = $31
C4 BE F8 call nz, $F8BE
A6 and (hl) ; a = $21
C4 BE F8 call nz, $F8BE
50 ld d, b
 
Box 6: $D8EC
AF xor a ; a = $00
F6 9A or $9A ; a = $9A
C4 BE F8 call nz, $F8BE
F6 FF or $FF ; a = $FF
21
 
Box 7: $D8F5
7E F5 ld hl, $F57E
0E 32 ld c, $32
C4 5E 31 call nz, byteFill
21 9A
 
Box 8: $D907
FA ld hl, $FA9A
E6 7F and $7F ; a = $7F
E6 BE and $BE ; a = $3E
C4 BE F8 call nz, $F8BE
50 ld d, b
 
Box 9: $D910
E6 84 and $84 ; a = $04
C4 BE F8 call nz, $F8BE
AF xor a ; a = $00
F6 C2 or C2 ; a = $C2
50 ld d, b
 
Box 10: $D919
C4 BE F8 call nz, $F8BE
87 add a ; a = $84
84 add a, h ; a = $7E
C4 BE F8 call nz, $F8BE
 
Box 11: $D922
AF xor a
F6 F5 or $F5 ; a = $F5
C3 BE F8 jp $F8BE
 
Party pokémon #3's stat experience, starting from $DA9A
3E 04 ld a, $04
C2 7E F5 jp nz, $F57E ; carry and zero flag are both reset when using TM25
</pre>
 
===Effect of the TM code===
1,540

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.