Jump to content

Guides:Fast 0x1500 ACE: Difference between revisions

m
no edit summary
mNo edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 7:
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].
 
'''When playing on cartridge or emulator, it is requiredrecommended to have previously cleared an old save by pressing SELECT + UP + B simultaneously on the start screen at least once since obtaining the cart. Otherwise you willrisk not bebeing able to obtain a bad clone or an unterminated name pokémon.'''
 
The contents of this guide are demonstrated in the following video:
 
{{youtube|iJRb3PwUrkg|TimoVM}}
 
=Setting up initial ACE=
Line 102 ⟶ 106:
# Sell TMs in specific quantities so that the amount of TMs in the TM/HM pocket spell out a small mail writer program.
 
==Step 4: settingSetting all TM quantities to x255<span id="{{anchorencode:Box name payload}}"></span>==
 
* Rename box names to form the following language dependent codes. '''Please mind the differences between uppercase X ([[File:Character UCX.png]]), lowercase x ([[File:Character lcx.png]]) and multiplication symbol ([[File:Character mul.png]]).'''
Line 400 ⟶ 404:
! scope="row" | Italian
|| <pre>Box 1: p 0 Mn È 2 ♀ Pk 5
Box 2: ° y é fi 5 F ° ,
Box 3: Ù fi 5 È È Ù fi 5
Box 4: È Á Ù fi 5 5 È W
Box 5: Ù fi 5 È [SPACE] Ù fi 5
Box 6: Pk Pk Pk p F 1 Í Í
 
Line 409 ⟶ 413:
! scope="row"| Spanish
|| <pre>Box 1: p 0 Mn È 2 ♀ Pk 5
Box 2: ° y é fi 5 F ° ,
Box 3: Ù fi 5 È È Ù fi 5
Box 4: È Á Ù fi 5 5 È W
Box 5: Ù fi 5 È [SPACE] Ù fi 5
Box 6: Pk Pk Pk p F 1 Í Í
 
Line 489 ⟶ 493:
E6 EF and $EF ; a = $E5
84 add a, h ; af = $DA10
F5E1 pushpop afhl
50 ld d, b
 
Box 2: $DB7E
F5 push af
E1 pop hl ; hl = $DA10
FBE1 eipop hl ; Overwrittenhl = $DA10, overwritten to $22, ldi (hl), a
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called
D6 B9 sub $B9 ; a = $21
Line 556 ⟶ 560:
D6 FF sub $FF ; a = $01
EA 84 FB ld ($FB84), a
E1 pop hl
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE
F6 FF or $FF ; a = $FF
50 ld d, b
Line 563 ⟶ 567:
D4 81 FB call nc, $FB81 ; $FB81 was rewritten to 21 59 D8 01 32 00 C3 41 30
EA 82 FB ld ($FB82), a ; Replace $59 by $FF to prevent possible crash when viewing $59 as text
E1 pop hl
E1 pop hl ; second of two pops to prevent side effects of 0x1500 ACE
D6 50 sub $50 ; a = $AF
 
Line 569 ⟶ 573:
D6 E1 sub $E1 ; a = $CE
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15
A7AF andxor a ; Reseta carry= flag$00
D085 retadd nca, l
F7 rst30h ; Resume text function, immediately hit terminator
FB ei
50 ld d, b
 
Line 596 ⟶ 600:
E6 E5 and $E5 ; a = $E5
84 add a, h ; af = $DA10
F5E1 pushpop afhl
50 ld d, b
 
Box 2: $DB7E
F5 push af
E1 pop hl ; hl = $DA10
FBE1 eipop hl ; Overwrittenhl = $DA10, overwritten to $22, ldi (hl), a
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called
D6 B9 sub $B9 ; a = $21
Line 663 ⟶ 667:
D6 FF sub $FF ; a = $01
EA 84 FB ld ($FB84), a
E1 pop hl
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE
F6 FF or $FF ; a = $FF
50 ld d, b
Line 670 ⟶ 674:
D4 81 FB call nc, $FB81 ; $FB81 was rewritten to 21 59 D8 01 32 00 C3 2F 30
EA 82 FB ld ($FB82), a ; Replace $59 by $FF to prevent possible crash when viewing $59 as text
E1 pop hl
E1 pop hl ; second of two pops to prevent side effects of 0x1500 ACE
D6 50 sub $50 ; a = $AF
 
Line 676 ⟶ 680:
D6 E1 sub $E1 ; a = $CE
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15
A7AF andxor a ; Reseta carry= flag$00
D085 retadd nca, l
F7 rst30h ; Resume text function, immediately hit terminator
FB ei
50 ld d, b
 
Line 703 ⟶ 707:
E6 E5 and $E5 ; a = $E5
84 add a, h ; af = $DA10
F5E1 pushpop afhl
50 ld d, b
 
Box 2: $DB7E
F5 push af
E1 pop hl ; hl = $DA10
FBE1 eipop hl ; Overwrittenhl = $DA10, overwritten to $22, ldi (hl), a
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called
D6 B9 sub $B9 ; a = $21
Line 770 ⟶ 774:
D6 FF sub $FF ; a = $01
EA 84 FB ld ($FB84), a
E1 pop hl
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE
F6 FF or $FF ; a = $FF
50 ld d, b
Line 777 ⟶ 781:
D4 81 FB call nc, $FB81 ; $FB81 was rewritten to 21 59 D8 01 32 00 C3 2B 30
EA 82 FB ld ($FB82), a ; Replace $59 by $FF to prevent possible crash when viewing $59 as text
E1 pop hl
E1 pop hl ; second of two pops to prevent side effects of 0x1500 ACE
D6 50 sub $50 ; a = $AF
 
Line 783 ⟶ 787:
D6 E1 sub $E1 ; a = $CE
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15
A7AF andxor a ; Reseta carry= flag$00
D085 retadd nca, l
F7 rst30h ; Resume text function, immediately hit terminator
FB ei
50 ld d, b
 
Line 967 ⟶ 971:
D6 81 sub $81 ; a = $D8, carry flag set
22 ldi (hl), a ; .write
D0 callret nc ; Skip on last pass
E1 pop hl
50 ld d, b
Line 973 ⟶ 977:
Box 7: $D8AC
E1 pop hl
E1 pop hl
A7 and a ; Reset carry flag
E1AF popxor hla ; hla = $DA1000
D0 call nc
85 add a, l
F7 rst30h ; Resume text function, immediately hit terminator
 
Box 14: displayed as screen tiles at $C4BE
Line 999 ⟶ 1,005:
Box 2: $DB7E
D6 B8 sub $B8 ; a = $22
EA A5A8 FB ld (.write), a
85 add a, l ; a = $32
D6 F4 sub $F4 ; a = $3E
Line 1,005 ⟶ 1,011:
 
Box 3: $DB87
CD A5A8 FB call .write
C6 C6 add $C6 ; a = $04
CD A5A8 FB call .write
50 ld d, b
 
Box 4: $DB90
C6 BF add $BF ; a = $C3
CD A5A8 FB call .write
FB ei
C6 96 add $96 ; a = $59
Line 1,018 ⟶ 1,024:
 
Box 5: $DB99
CD A5A8 FB call .write
C6 7F add $7F ; a = $D8
CD A5A8 FB call .write
50 ld d, b
 
Line 1,026 ⟶ 1,032:
E1 pop hl
E1 pop hl ; Prevent side effects when returning to text printer
E1 pop hl
C9 ret
E1AF popxor hla ; hla = $DA1000
85 add a, l
F7 rst30h ; Resume text function, immediately hit terminator
22 ldi (hl), a ; .write
C9 ret
Line 1,038 ⟶ 1,047:
F7 rst30h ; hl = $FB75, de = $C4C5, jump to hl
</pre>
 
[[Category:Guides]]
1,540

edits

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