Guides:Fast 0x1500 ACE: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
TimoVM (talk | contribs)
TimoVM (talk | contribs)
Line 487: Line 487:
F5 push af
F5 push af
E1 pop hl ; hl = $F500
E1 pop hl ; hl = $F500
E6 EF and $F5 ; a = $E5
E6 EF and $EF ; a = $E5
84 add a, h ; af = $DA10
84 add a, h ; af = $DA10
F5 push af
F5 push af
Line 591: Line 591:
<pre>
<pre>
Box 1: $DB75
Box 1: $DB75
EA A3 FB ld ($FBA3), a ; Due to mail, a = $00
F6 F5 or $F5 ; a = $F5
F5 push af
D6 FF sub $FF ; a = $01
E1 pop hl ; hl = $F500
EA A1 FB ld ($FBA1), a
E6 E5 and $E5 ; a = $E5
84 add a, h ; af = $DA10
F5 push af
50 ld d, b
50 ld d, b


Box 2: $DB7E
Box 2: $DB7E
D6 CF sub $CF ; a = $32
E1 pop hl ; hl = $DA10
FB ei ; Overwritten to $22, ldi (hl), a
EA A2 FB ld ($FBA2), a
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called
C6 EF add $EF ; a = $21
D6 B9 sub $B9 ; a = $21
FB ei
EA 81 FB ld ($FB81), a
50 ld d, b
50 ld d, b


Box 3: $DB87
Box 3: $DB87
D6 FF sub $FF ; a = $22
EA 9E FB ld ($FB9E), a
EA 7F FB ld ($FB7F), a
D6 C8 sub $C8 ; a = $59
D6 F4 sub $F4 ; a = $2E
EA 9F FB ld ($FB9F), a
85 add a, l ; a = $3E, reset carry flag
50 ld d, b
50 ld d, b


Box 4: $DB90
Box 4: $DB90
C6 D6 add $D6 ; a = $2F
D4 7F FB call nc, $FB7F
E6 84 and $84 ; a = $04
EA A5 FB ld ($FBA5), a
D6 FF sub $FF ; a = $30
D4 7F FB call nc, $FB7F
FB ei
50 ld d, b
50 ld d, b


Box 5: $DB99
Box 5: $DB99
D6 D5 sub $D5 ; a = $2F
EA A6 FB ld ($FBA6), a
EA 88 FB ld ($FB88), a
F6 FF or $FF
D6 FF sub $FF ; a = $30
21 59 F8 ld hl, wTMsHMs ; $59 gets overwritten to $D8 to prevent a crash upon viewing the newly written box name
FB ei
01
50 ld d, b


Box 6: $DBA2
Box 6: $DBA2
32 00 ld bc, $0032
EA 89 FB ld ($FB89), a
D6 FE sub $FE ; a = $32
CD 2F 30 call byteFill
EA 85 FB ld ($FB85), a
AF xor a ; a = $00
F6 E2 or $E2 ; a = $E2
50 ld d, b
50 ld d, b


Box 7: $DBAB
Box 7: $DBAB
84 add a, h ; af = $DA10
C6 91 add $91 ; a = $C3, reset carry flag
D4 7F FB call nc, $FB7F
F5 push af
EA 87 FB ld ($FB87), a
E1 pop hl
D6 9C sub $9C ; a = $3E
CD C8 FB call .write
50 ld d, b
50 ld d, b


Box 8: $DBB4
Box 8: $DBB4
E6 84 and $84 ; a = $04
AF xor a ; a = $00
CD C8 FB call .write
EA 86 FB ld ($FB86), a
F5 push af
C6 BF add $BF ; a = $C3
D6 A7 sub $A7 ; a = $59
BF cp a
A7 and a ; Reset carry flag
50 ld d, b
50 ld d, b


Box 9: $DBBD
Box 9: $DBBD
CD C8 FB call .write
D4 7F FB call nc, $FB7F
EA 82 FB ld ($FB82), a
C6 96 add $96 ; a = $59
D6 81 sub $81 ; a = $D8
CD C8 FB call .write
50 ld d, b
50 ld d, b


Box 10: $DBC6
Box 10: $DBC6
D6 81 sub $81 ; a = $D8
A7 and a ; Reset carry flag
D4 7F FB call nc, $FB7F
22 ldi (hl), a ; .write
EA 83 FB ld ($FB83), a
C9 ret
F1 pop af ; a = $00
50 ld d, b

Box 11: $DBCF
D6 FF sub $FF ; a = $01
EA 84 FB ld ($FB84), a
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE
F6 FF or $FF ; a = $FF
50 ld d, b

Box 12: $DBD8
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 ; second of two pops to prevent side effects of 0x1500 ACE
D6 50 sub $50 ; a = $AF

Box 13: $DBE1
D6 E1 sub $E1 ; a = $CE
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15
A7 and a ; Reset carry flag
D0 ret nc
FB ei
50 ld d, b

Box 14: displayed as screen tiles at $C4BE
AF xor a ; a = $00
F6 FB or $FB ; a = $FB
F5 push af
E1 pop hl ; h = $FB
D6 86 sub $86 ; a = $75
F7 rst30h ; hl = $FB75, de = $C4C5, jump to hl


Bootstrap: $DA10
Bootstrap: $DA10
Line 664: Line 698:
<pre>
<pre>
Box 1: $DB75
Box 1: $DB75
EA A3 FB ld ($FBA3), a ; Due to mail, a = $00
F6 F5 or $F5 ; a = $F5
F5 push af
D6 FF sub $FF ; a = $01
E1 pop hl ; hl = $F500
EA A1 FB ld ($FBA1), a
E6 E5 and $E5 ; a = $E5
84 add a, h ; af = $DA10
F5 push af
50 ld d, b
50 ld d, b


Box 2: $DB7E
Box 2: $DB7E
D6 CF sub $CF ; a = $32
E1 pop hl ; hl = $DA10
FB ei ; Overwritten to $22, ldi (hl), a
EA A2 FB ld ($FBA2), a
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called
C6 EF add $EF ; a = $21
D6 B9 sub $B9 ; a = $21
FB ei
EA 81 FB ld ($FB81), a
50 ld d, b
50 ld d, b


Box 3: $DB87
Box 3: $DB87
D6 FF sub $FF ; a = $22
EA 9E FB ld ($FB9E), a
EA 7F FB ld ($FB7F), a
D6 C8 sub $C8 ; a = $59
D6 F4 sub $F4 ; a = $2E
EA 9F FB ld ($FB9F), a
85 add a, l ; a = $3E, reset carry flag
50 ld d, b
50 ld d, b


Box 4: $DB90
Box 4: $DB90
C6 D2 add $D2 ; a = $2B
D4 7F FB call nc, $FB7F
E6 84 and $84 ; a = $04
EA A5 FB ld ($FBA5), a
D6 FB sub $FF ; a = $30
D4 7F FB call nc, $FB7F
FB ei
50 ld d, b
50 ld d, b


Box 5: $DB99
Box 5: $DB99
D6 D4 sub $D4 ; a = $30
EA A6 FB ld ($FBA6), a
EA 89 FB ld ($FB89), a
F6 FF or $FF
C6 FB add $FB ; a = $2B
21 59 F8 ld hl, wTMsHMs ; $59 gets overwritten to $D8 to prevent a crash upon viewing the newly written box name
FB ei
01
50 ld d, b


Box 6: $DBA2
Box 6: $DBA2
32 00 ld bc, $0032
EA 88 FB ld ($FB88), a
D6 F9 sub $F9 ; a = $32
CD 2B 30 call byteFill
EA 85 FB ld ($FB85), a
AF xor a ; a = $00
F6 E2 or $E2 ; a = $E2
50 ld d, b
50 ld d, b


Box 7: $DBAB
Box 7: $DBAB
84 add a, h ; af = $DA10
C6 91 add $91 ; a = $C3, reset carry flag
D4 7F FB call nc, $FB7F
F5 push af
EA 87 FB ld ($FB87), a
E1 pop hl
D6 9C sub $9C ; a = $3E
CD C8 FB call .write
50 ld d, b
50 ld d, b


Box 8: $DBB4
Box 8: $DBB4
E6 84 and $84 ; a = $04
AF xor a ; a = $00
CD C8 FB call .write
EA 86 FB ld ($FB86), a
F5 push af
C6 BF add $BF ; a = $C3
D6 A7 sub $A7 ; a = $59
BF cp a
A7 and a ; Reset carry flag
50 ld d, b
50 ld d, b


Box 9: $DBBD
Box 9: $DBBD
CD C8 FB call .write
D4 7F FB call nc, $FB7F
EA 82 FB ld ($FB82), a
C6 96 add $96 ; a = $59
D6 81 sub $81 ; a = $D8
CD C8 FB call .write
50 ld d, b
50 ld d, b


Box 10: $DBC6
Box 10: $DBC6
D6 81 sub $81 ; a = $D8
A7 and a ; Reset carry flag
D4 7F FB call nc, $FB7F
22 ldi (hl), a ; .write
EA 83 FB ld ($FB83), a
C9 ret
F1 pop af ; a = $00
50 ld d, b

Box 11: $DBCF
D6 FF sub $FF ; a = $01
EA 84 FB ld ($FB84), a
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE
F6 FF or $FF ; a = $FF
50 ld d, b

Box 12: $DBD8
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 ; second of two pops to prevent side effects of 0x1500 ACE
D6 50 sub $50 ; a = $AF

Box 13: $DBE1
D6 E1 sub $E1 ; a = $CE
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15
A7 and a ; Reset carry flag
D0 ret nc
FB ei
50 ld d, b

Box 14: displayed as screen tiles at $C4BE
AF xor a ; a = $00
F6 FB or $FB ; a = $FB
F5 push af
E1 pop hl ; h = $FB
D6 86 sub $86 ; a = $75
F7 rst30h ; hl = $FB75, de = $C4C5, jump to hl


Bootstrap: $DA10
Bootstrap: $DA10