Guides:Mail Writer GS (non-EN): Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
mNo edit summary |
|||
Line 3: | Line 3: | ||
The Mail writer is an arbitrary code execution program that allows the user to quickly and accurately write and execute arbitrary code payloads of up to a maximum size of 428 bytes. Payloads are written from wOtPartyCount onward, where enemy trainer's parties are usually buffered. |
The Mail writer is an arbitrary code execution program that allows the user to quickly and accurately write and execute arbitrary code payloads of up to a maximum size of 428 bytes. Payloads are written from wOtPartyCount onward, where enemy trainer's parties are usually buffered. |
||
This guide is applicable to the French, German, Italian and Spanish versions of Gold & Silver only. It is part of the [[Guides:TimoVM's_gen_2_ACE_setups|TimoVM's |
This guide is applicable to the French, German, Italian and Spanish versions of Gold & Silver only. It is part of the [[Guides:TimoVM's_gen_2_ACE_setups|TimoVM's Gen 2 ACE setups]] set of guides. |
||
'''Using the Mail writer requires an ACE setup that redirects execution to the start of box names. For this guide, it is assumed that you've previously set up [[Guides:Wrong Pocket TM ACE setup (non-EN)|Wrong Pocket TM25 ACE]] instead.''' |
'''Using the Mail writer requires an ACE setup that redirects execution to the start of box names. For this guide, it is assumed that you've previously set up [[Guides:Wrong Pocket TM ACE setup (non-EN)|Wrong Pocket TM25 ACE]] instead.''' |
||
If you encounter any issues when going through this guide or would like to provide feedback, please contact TimoVM on the Glitch City Research Institute Discord. |
If you encounter any issues when going through this guide or would like to provide feedback, please contact TimoVM on the [https://discord.gg/EA7jxJ6 Glitch City Research Institute Discord]. |
||
=How the mail writer works= |
=How the mail writer works= |
||
Line 313: | Line 313: | ||
Box 7: $D8F5 |
Box 7: $D8F5 |
||
7E F5 ld hl, |
7E F5 ld hl, wTMsHMs |
||
01 32 00 ld bc, $0032 |
01 32 00 ld bc, $0032 |
||
DC 5E 31 call c, byteFill |
DC 5E 31 call c, byteFill |
||
Line 340: | Line 340: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C3 7E F5 jp |
C3 7E F5 jp wTMsHMs |
||
</pre> |
</pre> |
||
Line 351: | Line 351: | ||
Box 1: $D8BF |
Box 1: $D8BF |
||
C0 |
C0 |
||
21 F4 F8 ld hl, $F8F4 ; |
21 F4 F8 ld hl, $F8F4 ; Corresponds to terminator of box #9's name |
||
C4 BE F8 call nz, $F8BE ; |
C4 BE F8 call nz, $F8BE ; Due to mail, a = $21 |
||
96 sub (hl) ; a = $7E |
96 sub (hl) ; a = $7E |
||
50 ld d, b |
50 ld d, b |
||
Line 392: | Line 392: | ||
Box 7: $D8F5 |
Box 7: $D8F5 |
||
7E F5 ld hl, |
7E F5 ld hl, wTMsHMs |
||
0E 32 ld c, $32 |
0E 32 ld c, $32 |
||
C4 5E 31 call nz, byteFill |
C4 5E 31 call nz, byteFill |
||
Line 424: | Line 424: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C2 7E F5 jp nz, |
C2 7E F5 jp nz, wTMsHMs ; Carry and zero flag are both reset when using TM25 |
||
</pre> |
</pre> |
||
Line 471: | Line 471: | ||
Box 7: $D8F5 |
Box 7: $D8F5 |
||
7E F5 ld hl, |
7E F5 ld hl, wTMsHMs |
||
01 32 00 ld bc, $0032 |
01 32 00 ld bc, $0032 |
||
D4 71 31 call nc, byteFill |
D4 71 31 call nc, byteFill |
||
Line 495: | Line 495: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C3 7E F5 jp |
C3 7E F5 jp wTMsHMs |
||
</pre> |
</pre> |
||
Line 512: | Line 512: | ||
EA F7 F8 ld ($F8F7), a |
EA F7 F8 ld ($F8F7), a |
||
D6 FD sub $FD ; a = $04 |
D6 FD sub $FD ; a = $04 |
||
EA 9B FA ld ($ |
EA 9B FA ld ($FA9B), a |
||
50 ld d; b |
50 ld d; b |
||
Line 542: | Line 542: | ||
Box 7: $D8F5 |
Box 7: $D8F5 |
||
7E F5 ld hl, |
7E F5 ld hl, wTMsHms |
||
01 32 00 ld bc, $0032 |
01 32 00 ld bc, $0032 |
||
D4 70 31 call nc, byteFill |
D4 70 31 call nc, byteFill |
||
Line 566: | Line 566: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C3 7E F5 jp |
C3 7E F5 jp wTMsHMs |
||
</pre> |
</pre> |
||
Line 758: | Line 758: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C3 7E F5 jp |
C3 7E F5 jp wTMsHMs |
||
</pre> |
</pre> |
||
Line 802: | Line 802: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C2 7E F5 jp |
C2 7E F5 jp wTMsHMs ; carry and zero flag are both reset when using TM25 |
||
</pre> |
</pre> |
||
Line 836: | Line 836: | ||
Party pokémon #3's stat experience, starting from $DA9A |
Party pokémon #3's stat experience, starting from $DA9A |
||
3E 04 ld a, $04 |
3E 04 ld a, $04 |
||
C3 7E F5 jp |
C3 7E F5 jp wTMsHMs |
||
</pre> |
</pre> |
||