Anonymous user
User:TimoVM/RAM Writer setups: Difference between revisions
→Asm translation of included programs/codes
Line 1,317:
</pre>
===Full RAM writer
<pre>
Installer located at DD55
3E 03 ld a, 03
CD E1 30 call OpenSRAM ; open sram bank 3 (defined by register a)
0E CE ld c, CE
11 E1 B9 ld de, sBox14Species
21 74 DD ld hl, DD74
CD 1A 31 call CopyBytes ; install payload to SRAM
0E 2D ld c, 08
11 18 D4 ld de, D418 ; entry point of wrong pocket TM33
D5 push de
CD 1A 31 call CopyBytes ; install TM33 bootstrap to D418
3E E1 ld a, E1
EA B8 D5 ld (D5B8), a ; change item slot #1 to TM33
C9 ret ; due to earlier push, jump to Deployer
RAM writer A
Setup stored at B9E1, deployed to CC20
AF xor a
3C inc a
E0 D6
21 00 DA ld hl, DA00
resolveDisplay CC27
CD 21 DF call resolveInput
E5 push hl
11 F8 FF ld de, FFF8
19 add hl, de
54 ld d,
5D ld e, l
01 0C 00 ld bc, 000C
Line 1,337 ⟶ 1,353:
21 A9 C3 ld hl, C3A9
CD E1 30 call openSramBank
CD
.displayLoop
3E 7C ld a, 7C
22 ldi (hl), a
7A ld a, d
CD
7B ld a, e
CD
3E E3 ld a, E3
22 ldi (hl), a
1A ld a, (de)
CD
36 7C ld a, 7C
09 add hl, bc
Line 1,360 ⟶ 1,376:
E1 pop hl
18 C2 jr, resolveDisplay
printHex CC65
F5 push af
CB 37 swap a
CD
F1 pop af
.firstHex CC6C
E6 0F and 0F
C6 F6 add a, F6
22 ldi (hl), a
C9 ret
sampleDpad CC74
CD 90 37 call JoyTextDelay_ForcehJoyDown
F0 AB ldh a, (AB)
11 00 00 ld de, 0000
07 rlca
30 01 jp nc, .noDown
Line 1,452 ⟶ 1,407:
1E 10 ld e, 10
.noRight
07 rlca
RAM Writer B
ResolveInput deployed to DF21
CD 74 CC call sampleDpad
38 41 jr nc, .startButton
30 0B jr z, noSelectButton
07 rlca
07 rlca
30 01 jr nc, .changeSramBank
E9 jp hl
.changeSramBank
F0 FE ldh a, (FE)
83 add e
E0 FE ldh (FE), a
C9 ret
.noSelectButton 41 37 79
07 rlca
30 03 jr nc, .noBButton
53 ld d, e
1E 00 ld e, 00
19 add hl, de
.noBButton
07 rlca
30 2A jr nc, .noAButton
E5 push hl
F0 FE ldh a, (FE)
CD E1 30 call openSramBank
46 ld b, (hl)
.inputALoop
CD
07 rlca
30 01 jr nc , .BButtonNotPressed
43 ld b, e
.BButtonNotPressed
0F rrca
38 0E jr c, .AButtonPressed
78 ld a, b
83 add e
Line 1,539 ⟶ 1,454:
36 EC ld (hl), EC
23 inc hl
CD
18
.AButtonPressed
E1 pop hl
70 ld (hl), b
E5 push hl
3E 05 ld a, 5
21 FD 4D ld hl, 4DFD
CF rst08h
.startButton
E1 pop hl
.noAButton
C9 ret
OAM DMA Hijack A
FA AB CE ld a, (CEAB)
FE E1 cp E1
C0 ret nz ; is current selected item TM33? If yes, continue
FA C2 CE ld a, (CEC2)
FE 90 cp 90
C0 ret nz ; Is TM33 chosen while in battle? If yes, continue
3E 0D ld a, 0D
EA E0 CE ld (CEE0); a ; Force cursor to position #13, enabling use of TM33
OAM DMA Hijack B
C3 01 DF jp DF01 ; jump to OAM DMA hijack B
Deployer located at D418
3E 03 ld a, 03
CD E1 30 call OpenSRAM
0E 71 ld c, 71
D5 push de
CD 1A 31 call CopyBytes ; deploy RAM writer A to CC20
11 21 DF ld de, DF21
CD 1A 31 call CopyBytes ; deploy RAM writer B to DF21
11
CD 1A 31 call CopyBytes ; deploy OAM DMA hijack A to DF0F
0E 03 ld c, 03
11 8A FF ld de, FF8A
CD 1A 31 call CopyBytes ; deploy OAM DMA hijack B to FF8A
AF xor a
E0 89 ld (FF89), a ; enable OAM DMA hijack by removing C9
C9 ret ; due to earlier push, jump to CC20
</pre>
=Crystal=
|