From 106251da1f1412dbca66db8c0e0fe7fe9eb63968 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 21:03:52 -0400 Subject: engine/printer.asm --- engine/printer.asm | 772 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 772 insertions(+) create mode 100755 engine/printer.asm (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm new file mode 100755 index 00000000..16b95eed --- /dev/null +++ b/engine/printer.asm @@ -0,0 +1,772 @@ +Func_e8783: ; e8783 (3a:4783) + ld a, 9 + push af + ld hl, wOverworldMap + lb bc, 4, 13 + xor a + call Func_e8a2e + xor a + ld [rSB], a + ld [rSC], a + ld [wUnknownSerialFlag_d49b], a + ld hl, wUnknownSerialFlag_d49a + set 0, [hl] + ld a, [wd498] + ld [$cae3], a + pop af + ld [$caf4], a + ret + +; e87a8 +Func_e87a8: ; e87a8 (3a:47a8) + ld a, [wOverworldMap] + ld e, a + ld d, 0 + ld hl, Jumptable_e87b7 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_e87b7: + dw Func_e87fd + dw Func_e88c9 + dw Func_e88a6 + dw Func_e881f + dw Func_e8906 + dw Func_e88b4 + dw Func_e884b + dw Func_e8906 + dw Func_e88a6 + dw Func_e8864 + dw Func_e8906 + dw Func_e88a6 + dw Func_e8927 + dw Func_e87e9 + dw Func_e87f3 + dw Func_e88a6 + dw Func_e8889 + dw Func_e87f7 + dw Func_e8936 + dw Func_e8939 + +Func_e87df: + ld hl, wOverworldMap + inc [hl] + ret + +Func_e87e4: + ld hl, wOverworldMap + dec [hl] + ret + +Func_e87e9: + xor a + ld [$c971], a + ld hl, wOverworldMap + set 7, [hl] + ret + +Func_e87f3: + call Func_e87df + ret + +Func_e87f7: + ld a, $01 + ld [wOverworldMap], a + ret + +Func_e87fd: + call Func_e8981 + ld hl, Data_e8a3a + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Func_e87df + call Func_e8949 + ld a, $01 + ld [$cae0], a + ret + +Func_e881f: + call Func_e8981 + ld hl, $c6e9 + ld a, [hl] + and a + jr z, Func_e884b + ld hl, Data_e8a46 + call Func_e8968 + call Func_e89e6 + ld a, $80 + ld [$c976], a + ld a, $02 + ld [$c977], a + call Func_e899f + call Func_e87df + call Func_e8949 + ld a, $02 + ld [$cae0], a + ret + +Func_e884b: + ld a, $06 + ld [wOverworldMap], a + ld hl, Data_e8a4c + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + call Func_e87df + call Func_e8949 + ret + +Func_e8864: + call Func_e8981 + ld hl, Data_e8a40 + call Func_e8968 + call Func_e89cf + ld a, $04 + ld [$c976], a + ld a, $00 + ld [$c977], a + call Func_e899f + call Func_e87df + call Func_e8949 + ld a, $03 + ld [$cae0], a + ret + +Func_e8889: + call Func_e8981 + ld hl, Data_e8a3a + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Func_e87df + call Func_e8949 + ret + +Func_e88a6: + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + call Func_e87df + ret + +Func_e88b4: + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + ld hl, $c6e9 + dec [hl] + call Func_e87e4 + call Func_e87e4 + ret + +Func_e88c9: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c970] + cp a, $ff + jr nz, .asm_e88dc + ld a, [$c971] + cp a, $ff + jr z, .asm_e88f8 +.asm_e88dc + ld a, [$c970] + cp a, $81 + jr nz, .asm_e88f8 + ld a, [$c971] + cp a, $00 + jr nz, .asm_e88f8 + ld hl, wUnknownSerialFlag_d49a + set 1, [hl] + ld a, $05 + ld [$c972], a + call Func_e87df + ret + +.asm_e88f8 + ld a, $ff + ld [$c970], a + ld [$c971], a + ld a, $0e + ld [wOverworldMap], a + ret + +Func_e8906: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f0 + jr nz, .asm_e8921 + ld a, [$c971] + and a, $01 + jr nz, .asm_e891d + call Func_e87df + ret + +.asm_e891d + call Func_e87e4 + ret + +.asm_e8921 + ld a, $12 + ld [wOverworldMap], a + ret + +Func_e8927: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f3 + ret nz + call Func_e87df + ret + +Func_e8936: + call Func_e87df +Func_e8939: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f0 + ret nz + xor a + ld [wOverworldMap], a + ret + +Func_e8949: +.asm_e8949 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8949 + xor a + ld [$c974], a + ld [$c975], a + ld a, $01 + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8968: + ld a, [hli] + ld [$c6ea], a + ld a, [hli] + ld [$c6eb], a + ld a, [hli] + ld [$c6ec], a + ld a, [hli] + ld [$c6ed], a + ld a, [hli] + ld [$c6ee], a + ld a, [hl] + ld [$c6ef], a + ret + +Func_e8981: + xor a + ld hl, $c6ea + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $c6ee + ld [hli], a + ld [hl], a + xor a + ld [$c976], a + ld [$c977], a + ld hl, $c6f0 + ld bc, $0280 + call Func_e8a2e + ret + +Func_e899f: + ld hl, $0000 + ld bc, $0004 + ld de, $c6ea + call Func_e89c2 + ld a, [$c976] + ld c, a + ld a, [$c977] + ld b, a + ld de, $c6f0 + call Func_e89c2 + ld a, l + ld [$c6ee], a + ld a, h + ld [$c6ef], a + ret + +Func_e89c2: +.asm_e89c2 + ld a, [de] + inc de + add l + jr nc, .asm_e89c8 + inc h +.asm_e89c8 + ld l, a + dec bc + ld a, c + or b + jr nz, .asm_e89c2 + ret + +Func_e89cf: + ld a, $01 + ld [$c6f0], a + ld a, [$cae2] + ld [$c6f1], a + ld a, $e4 + ld [$c6f2], a + ld a, [$cae3] + ld [$c6f3], a + ret + +Func_e89e6: + ld a, [$c6e9] + ld b, a + ld a, [$caf4] + sub b + ld hl, $c978 + ld de, $0028 +.asm_e89f4 + and a + jr z, .asm_e89fb + add hl, de + dec a + jr .asm_e89f4 + +.asm_e89fb + ld e, l + ld d, h + ld hl, $c6f0 + ld c, $28 +.asm_e8a02 + ld a, [de] + inc de + push bc + push de + push hl + swap a + ld d, a + and a, $f0 + ld e, a + ld a, d + and a, $0f + ld d, a + and a, $08 + ld a, d + jr nz, .asm_e8a1a + or a, $90 + jr .asm_e8a1c + +.asm_e8a1a + or a, $80 +.asm_e8a1c + ld d, a + ld bc, $3a01 + call CopyVideoData + pop hl + ld de, $0010 + add hl, de + pop de + pop bc + dec c + jr nz, .asm_e8a02 + ret + +Func_e8a2e: ; e8a2e (3a:4a2e) + push de + ld e, a +.asm_e8a30 + ld [hl], e + inc hl + dec bc + ld a, c + or b + jr nz, .asm_e8a30 + ld a, e + pop de + ret + +Data_e8a3a: + db $01, $00, $00, $00, $01, $00 +Data_e8a40: + db $02, $00, $04, $00, $00, $00 +Data_e8a46: + db $04, $00, $80, $02, $00, $00 +Data_e8a4c: + db $04, $00, $00, $00, $04, $00 +Data_e8a52: + db $08, $00, $00, $00, $08, $00 +Data_e8a58: + db $0f, $00, $00, $00, $0f, $00 + +Func_e8a5e: ; e8a5e (3a:4a5e) + ld a, [$d49a] + ld e, a + ld d, 0 + ld hl, Jumptable_e8a6d + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_e8a6d: + dw Func_e8ab2 + dw Func_e8ab3 + dw Func_e8abc + dw Func_e8ac6 + dw Func_e8ad0 + dw Func_e8ada + dw Func_e8ae4 + dw Func_e8b0f + dw Func_e8b19 + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b3a + dw Func_e8ab3 + dw Func_e8b44 + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b44 + dw Func_e8b4d + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b6a + dw Func_e8ab3 + dw Func_e8b56 + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b56 + dw Func_e8b4d + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b3a + +Func_e8aad: + ld hl, wUnknownSerialFlag_d49b + inc [hl] + ret + +Func_e8ab2: + ret + +Func_e8ab3: + ld a, $33 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8abc: + ld a, [$c6ea] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ac6: + ld a, [$c6eb] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ad0: + ld a, [$c6ec] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ada: + ld a, [$c6ed] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ae4: + ld hl, $c976 + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .asm_e8b0c + dec de + ld [hl], d + dec hl + ld [hl], e + ld a, [$c974] + ld e, a + ld a, [$c975] + ld d, a + ld hl, $c6f0 + add hl, de + inc de + ld a, e + ld [$c974], a + ld a, d + ld [$c975], a + ld a, [hl] + call Func_e8b5f + ret + +.asm_e8b0c + call Func_e8aad +Func_e8b0f: + ld a, [$c6ee] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b19: + ld a, [$c6ef] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b23: + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b2c: + ld a, [rSB] + ld [$c970], a + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b3a: + ld a, [rSB] + ld [$c971], a + xor a + ld [wUnknownSerialFlag_d49b], a + ret + +Func_e8b44: + ld a, $0f + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b4d: + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b56: + ld a, $08 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b5f: + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8b6a: + ld a, [rSB] + ld [$c971], a + xor a + ld [wUnknownSerialFlag_d49b], a + ret + +Func_e8b74: ; e8b74 (3a:4b74) + dr $e8b74,$e8d35 + +Func_e8d35:: ; e8d35 (3a:4e79) + ld a, [wBoxDataStart] + and a + jp z, Func_e8df4 + ld a, [wUpdateSpritesEnabled] + push af + xor a + ld [wUpdateSpritesEnabled], a + ld [hItemCounter], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call SaveScreenTilesToBuffer1 + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e988a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e98ec + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9907 + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9922 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb +.asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [wUpdateSpritesEnabled], a + ret + +Func_e8df4: ; e8df4 + ld hl, String_e8e1f + call PrintText + ret + +Func_e8dfb: ; e8dfb + call Func_e8f16 +.asm_e8dfe + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e1d + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e1b + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8dfe + +.asm_e8e1b + and a + ret + +.asm_e8e1d + scf + ret + +String_e8e1f: ; e8e1f + TX_FAR _NoPokemonText + db "@" + +Func_e8e24: ; e8e24 + xor a + ld [hItemCounter], a + call Func_e8f24 + call Func_ea3ea + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8e45 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e62 + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e62 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8e45 + +.asm_e8e62 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret -- cgit v1.3.1-sl0p From c6a32f2517ecef9ef12afa472a8fd54a8672f678 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 22:45:08 -0400 Subject: the rest of engine/printer.asm --- engine/printer.asm | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 228 insertions(+), 1 deletion(-) (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm index 3e9057ce..e91376ee 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -1,5 +1,6 @@ Func_e8783: ; e8783 (3a:4783) ld a, 9 +Func_e8785: push af ld hl, wOverworldMap lb bc, 4, 13 @@ -610,7 +611,233 @@ Func_e8b6a: ret Func_e8b74: ; e8b74 (3a:4b74) - dr $e8b74,$e8d35 + ld a, [$cfca] + push af + xor a + ld [$cfca], a + ld [$ffdb], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + xor a + ld [$ffba], a + call Func_e8c30 + call Func_e8785 + ld a, [$caf9] + and a + jr z, .asm_e8b9e + ld a, $10 + jr .asm_e8ba0 + +.asm_e8b9e + ld a, $13 +.asm_e8ba0 + ld [$cae2], a + call Func_e8efc + call ClearScreen + callab Func_401c2 + callab Func_4027c + ld a, $01 + ld [$ffba], a + call Func_e8c0c + jr c, .asm_e8bf4 + ld a, [$caf9] + and a + jr z, .asm_e8bf4 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, $0c + call DelayFrames + call SaveScreenTilesToBuffer1 + xor a + ld [$ffba], a + call Func_e8c50 + ld a, $07 + call Func_e8785 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + ld a, $01 + ld [$ffba], a + call Func_e8c0c +.asm_e8bf4 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [$cfca], a + ret + +Func_e8c0c: + call Func_e8f16 +.asm_e8c0f + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8c2e + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8c2c + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8c0f + +.asm_e8c2c + and a + ret + +.asm_e8c2e + scf + ret + +Func_e8c30: + callab Func_4039c + ld a, l + ld [$caf5], a + ld a, h + ld [$caf6], a + ld a, $00 + rla + ld [$caf9], a + and a + jr z, .asm_e8c4d + ld a, $05 + jr .asm_e8c4f + +.asm_e8c4d + ld a, $09 +.asm_e8c4f + ret + +Func_e8c50: + call ClearScreen + callab Func_404bc + ret + +Func_e8c5c: + xor a + ld [$ffdb], a + call Func_e8f24 + call $510a ; Func_e910a + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8c7d + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8c9a + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8c9a + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8c7d + +.asm_e8c9a + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8cb1: + xor a + ld [$ffdb], a + call Func_e8f24 + call $5a08 ; Func_e9a08 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call Func_e8d11 + jr c, .asm_e8cfa + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, $0c + call DelayFrames + call SaveScreenTilesToBuffer1 + xor a + ld [$ffba], a + call $5ad3 ; Func_e9ad3 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8d11 +.asm_e8cfa + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8d11: + call Func_e8f16 +.asm_e8d14 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8d33 + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8d31 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8d14 + +.asm_e8d31 + and a + ret + +.asm_e8d33 + scf + ret + + Func_e8d35:: ; e8d35 (3a:4e79) ld a, [wBoxDataStart] -- cgit v1.3.1-sl0p From 2f6075ece09988de1630874d3f2ddd0e1f6d74c3 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 23:35:36 -0400 Subject: Resolve hard-coded calls --- engine/diploma_3a.asm | 6 +++--- engine/printer.asm | 14 +++++++------- main.asm | 15 +++++++++++++-- 3 files changed, 23 insertions(+), 12 deletions(-) (limited to 'engine/printer.asm') diff --git a/engine/diploma_3a.asm b/engine/diploma_3a.asm index 20c4ba43..471703d6 100755 --- a/engine/diploma_3a.asm +++ b/engine/diploma_3a.asm @@ -82,11 +82,11 @@ Func_e9ad3: ld de, Tilemap_e9b3e coord hl, 6, 2 lb bc, 10, 12 - call $525d ; Func_e925d + call Func_e925d ld de, Tilemap_e9bb6 coord hl, 5, 13 lb bc, 1, 11 - call $525d ; Func_e925d + call Func_e925d ld de, String_e9bd5 coord hl, 2, 15 call PlaceString @@ -105,7 +105,7 @@ Func_e9ad3: ld de, TileMap_e9bc1 coord hl, 2, 0 lb bc, 4, 5 - call $525d ; Func_e925d + call Func_e925d ret Tilemap_e9b3e: INCBIN "gfx/unknown_e9b3e.tilemap" diff --git a/engine/printer.asm b/engine/printer.asm index e91376ee..6218f6a7 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -731,7 +731,7 @@ Func_e8c5c: xor a ld [$ffdb], a call Func_e8f24 - call $510a ; Func_e910a + call Func_e910a ld a, [rIE] push af xor a @@ -773,7 +773,7 @@ Func_e8cb1: xor a ld [$ffdb], a call Func_e8f24 - call $5a08 ; Func_e9a08 + call _DisplayDiploma ld a, [rIE] push af xor a @@ -794,7 +794,7 @@ Func_e8cb1: call SaveScreenTilesToBuffer1 xor a ld [$ffba], a - call $5ad3 ; Func_e9ad3 + call Func_e9ad3 call Func_e8783 ld a, $03 ld [$cae2], a @@ -858,7 +858,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call SaveScreenTilesToBuffer1 xor a ld [H_AUTOBGTRANSFERENABLED], a - call $588a ; Func_e988a + call Func_e988a call Func_e8783 ld a, $10 ld [$cae2], a @@ -873,7 +873,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - call $58ec ; Func_e98ec + call Func_e98ec call Func_e8783 ld a, $00 ld [$cae2], a @@ -888,7 +888,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - call $5907 ; Func_e9907 + call Func_e9907 call Func_e8783 ld a, $00 ld [$cae2], a @@ -903,7 +903,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - call $5922 ; Func_e9922 + call Func_e9922 call Func_e8783 ld a, $03 ld [$cae2], a diff --git a/main.asm b/main.asm index ec76673b..029142dc 100755 --- a/main.asm +++ b/main.asm @@ -915,9 +915,20 @@ Func_e8f3b: ; e8f3b (3a:4f3b) Func_e8f51: ; e8f51 (3a:4f51) dr $e8f51,$e8f82 Func_e8f82: ; e8f82 (3a:4f82) - dr $e8f82,$e928a + dr $e8f82,$e910a +Func_e910a: + dr $e910a,$e925d +Func_e925d: + dr $e925d,$e928a SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" - dr $e988a,$e9a08 +Func_e988a: + dr $e988a,$e98ec +Func_e98ec: + dr $e98ec,$e9907 +Func_e9907: + dr $e9907,$e9922 +Func_e9922: + dr $e9922,$e9a08 INCLUDE "engine/diploma_3a.asm" -- cgit v1.3.1-sl0p From 1579a084e70c73add5af8af0aaf40bee69f07275 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 23 May 2016 14:04:13 -0400 Subject: Move all the printer functions out of main.asm, including the intermediate dr blocks --- engine/printer.asm | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 269 ----------------------------------------- 2 files changed, 343 insertions(+), 269 deletions(-) (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm index 6218f6a7..7e6ae637 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -997,3 +997,346 @@ Func_e8e24: ; e8e24 call Func_0f3d call Func_e8f3b ret + +Func_e8e79: ; e8e79 (3a:4e79) + push af + push bc + push de + push hl + call StopAllMusic + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e8efc + call Func_ea573 +.asm_e8e9c + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8eae + call Func_ea5d1 + call Func_ea5b7 + call DelayFrame + jr .asm_e8e9c + +.asm_e8eae + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld hl, wOAMBuffer + 32 * 4 + ld bc, $0020 + xor a + call FillMemory + xor a + ld [rIF], a + pop af + ld [rIE], a + pop hl + pop de + pop bc + pop af + ret + +Func_e8eca: ; e8eca (3a:4eca) + ld a, [hJoyHeld] + and B_BUTTON + jr nz, .asm_e8ed2 + and a + ret + +.asm_e8ed2 + ld a, [wOverworldMap] + cp $0c + jr nz, .asm_e8ef6 +.asm_e8ed9 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8ed9 + ld a, $16 + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a +.asm_e8ef0 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8ef0 +.asm_e8ef6 + ld a, $01 + ld [hItemCounter], a + scf + ret + +Func_e8efc: ; e8efc (3a:4efc) + dr $e8efc,$e8f09 +Func_e8f09: ; e8f09 (3a:4f09) + dr $e8f09,$e8f16 +Func_e8f16: ; e8f16 (3a:4f16) + dr $e8f16,$e8f24 +Func_e8f24: ; e8f24 (3a:4f24) + dr $e8f24,$e8f3b +Func_e8f3b: ; e8f3b (3a:4f3b) + dr $e8f3b,$e8f51 +Func_e8f51: ; e8f51 (3a:4f51) + dr $e8f51,$e8f82 +Func_e8f82: ; e8f82 (3a:4f82) + dr $e8f82,$e910a +Func_e910a: + dr $e910a,$e925d + +Func_e925d: +.asm_e925d + push bc + push hl +.asm_e925f + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_e925f + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_e925d + ret + +Func_e926f: + ld de, wd496 + coord hl, 7, 6 + ld a, [de] + call Func_e927a + ld a, [de] +Func_e927a: + ld c, a + swap a + and $f + add -10 + ld [hli], a + ld a, c + and $f + add -10 + ld [hli], a + dec de + ret + +SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" + +Func_e988a: + xor a + ld [wBoxNumString], a + call ClearScreen + call Func_e99de + coord hl, 0, 0 + ld bc, 11 * SCREEN_WIDTH + ld a, " " + call FillMemory + call Func_e99b9 + call Func_e99a7 + coord hl, 4, 4 + ld de, String_e98db + call PlaceString + coord hl, 7, 6 + ld de, String_e98e8 + call PlaceString + coord hl, 11, 6 + ld a, [wCurrentBoxNum] + and $7f + cp 9 + jr c, .asm_e98cc + sub 9 + ld [hl], "1" + inc hl + add "0" + jr .asm_e98ce + +.asm_e98cc + add "1" +.asm_e98ce + ld [hl], a + coord hl, 4, 9 + ld de, wBoxSpecies + ld c, $03 + call Func_e994e + ret + + +String_e98db: db "POKéMON LIST@" +String_e98e8: db "BOX@" + +Func_e98ec: + call ClearScreen + call Func_e99de + call Func_e99b9 + ld a, [wBoxDataStart] + cp 4 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 3 + ld c, 6 + call Func_e994e + ret + +Func_e9907: + call ClearScreen + call Func_e99de + call Func_e99b9 + ld a, [wBoxDataStart] + cp 10 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 9 + ld c, 6 + call Func_e994e + ret + +Func_e9922: + call ClearScreen + call Func_e99de + call Func_e99b9 + coord hl, 0, 15 + call Func_e99cf + coord hl, 0, 16 + ld bc, 2 * SCREEN_WIDTH + ld a, " " + call FillMemory + ld a, [wBoxDataStart] + cp 16 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 15 + ld c, 5 + call Func_e994e + ret + +Func_e994e: +.asm_e994e + ld a, c + and a + jr z, .asm_e99a6 + dec c + ld a, [de] + cp $ff + jr z, .asm_e99a6 + ld [$d11d], a + push bc + push hl + push de + push hl + ld bc, 12 + ld a, " " + call FillMemory + pop hl + push hl + ld de, SCREEN_WIDTH + add hl, de + ld bc, 12 + ld a, " " + call FillMemory + pop hl + push hl + call GetMonName + pop hl + call PlaceString + push hl + ld hl, wBoxMonNicks + ld bc, NAME_LENGTH + ld a, [wBoxNumString] + call AddNTimes + ld e, l + ld d, h + pop hl + ld bc, SCREEN_WIDTH + 1 + add hl, bc + ld [hl], " " + inc hl + call PlaceString + ld hl, wBoxNumString + inc [hl] + pop de + pop hl + ld bc, 3 * SCREEN_WIDTH + add hl, bc + pop bc + inc de + jr .asm_e994e + +.asm_e99a6 + ret + +Func_e99a7: + coord hl, 0, 0 + ld a, $79 + ld [hli], a + ld a, $7a + ld c, SCREEN_WIDTH - 2 +.asm_e99b1 + ld [hli], a + dec c + jr nz, .asm_e99b1 + ld a, $7b + ld [hl], a + ret + +Func_e99b9: + coord hl, 0, 0 + ld de, SCREEN_WIDTH - 1 + ld c, SCREEN_HEIGHT +.asm_e99c1 + ld a, $7c + ld [hl], a + add hl, de + ld a, $7c + ld [hli], a + dec c + jr nz, .asm_e99c1 + ret + +Func_e99cc: + coord hl, 0, 17 +Func_e99cf: + ld a, $7d + ld [hli], a + ld a, $7a + ld c, SCREEN_WIDTH - 2 +.asm_e99b1 + ld [hli], a + dec c + jr nz, .asm_e99b1 + ld a, $7e + ld [hl], a + ret + +Func_e99de: + coord hl, 4, 0 + ld c, 6 + call Func_e99eb + coord hl, 6, 1 + ld c, 6 +Func_e99eb: +.asm_e99eb + push bc + push hl + ld de, String_e99fd + call PlaceString + pop hl + ld bc, 3 * SCREEN_WIDTH + add hl, bc + pop bc + dec c + jr nz, .asm_e99eb + ret + +String_e99fd: + db "----------@" diff --git a/main.asm b/main.asm index 5cfa113f..08b0df82 100755 --- a/main.asm +++ b/main.asm @@ -897,275 +897,6 @@ Func_e877e: ret INCLUDE "engine/printer.asm" - -Func_e8e79: ; e8e79 (3a:4e79) - dr $e8e79,$e8eca -Func_e8eca: ; e8eca (3a:4eca) - dr $e8eca,$e8efc -Func_e8efc: ; e8efc (3a:4efc) - dr $e8efc,$e8f09 -Func_e8f09: ; e8f09 (3a:4f09) - dr $e8f09,$e8f16 -Func_e8f16: ; e8f16 (3a:4f16) - dr $e8f16,$e8f24 -Func_e8f24: ; e8f24 (3a:4f24) - dr $e8f24,$e8f3b -Func_e8f3b: ; e8f3b (3a:4f3b) - dr $e8f3b,$e8f51 -Func_e8f51: ; e8f51 (3a:4f51) - dr $e8f51,$e8f82 -Func_e8f82: ; e8f82 (3a:4f82) - dr $e8f82,$e910a -Func_e910a: - dr $e910a,$e925d - -Func_e925d: -.asm_e925d - push bc - push hl -.asm_e925f - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_e925f - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_e925d - ret - -Func_e926f: - ld de, wd496 - coord hl, 7, 6 - ld a, [de] - call Func_e927a - ld a, [de] -Func_e927a: - ld c, a - swap a - and $f - add -10 - ld [hli], a - ld a, c - and $f - add -10 - ld [hli], a - dec de - ret - -SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" - -Func_e988a: - xor a - ld [wBoxNumString], a - call ClearScreen - call Func_e99de - coord hl, 0, 0 - ld bc, 11 * SCREEN_WIDTH - ld a, " " - call FillMemory - call Func_e99b9 - call Func_e99a7 - coord hl, 4, 4 - ld de, String_e98db - call PlaceString - coord hl, 7, 6 - ld de, String_e98e8 - call PlaceString - coord hl, 11, 6 - ld a, [wCurrentBoxNum] - and $7f - cp 9 - jr c, .asm_e98cc - sub 9 - ld [hl], "1" - inc hl - add "0" - jr .asm_e98ce - -.asm_e98cc - add "1" -.asm_e98ce - ld [hl], a - coord hl, 4, 9 - ld de, wBoxSpecies - ld c, $03 - call Func_e994e - ret - - -String_e98db: db "POKéMON LIST@" -String_e98e8: db "BOX@" - -Func_e98ec: - call ClearScreen - call Func_e99de - call Func_e99b9 - ld a, [wBoxDataStart] - cp 4 - ret c - coord hl, 4, 0 - ld de, wBoxSpecies + 3 - ld c, 6 - call Func_e994e - ret - -Func_e9907: - call ClearScreen - call Func_e99de - call Func_e99b9 - ld a, [wBoxDataStart] - cp 10 - ret c - coord hl, 4, 0 - ld de, wBoxSpecies + 9 - ld c, 6 - call Func_e994e - ret - -Func_e9922: - call ClearScreen - call Func_e99de - call Func_e99b9 - coord hl, 0, 15 - call Func_e99cf - coord hl, 0, 16 - ld bc, 2 * SCREEN_WIDTH - ld a, " " - call FillMemory - ld a, [wBoxDataStart] - cp 16 - ret c - coord hl, 4, 0 - ld de, wBoxSpecies + 15 - ld c, 5 - call Func_e994e - ret - -Func_e994e: -.asm_e994e - ld a, c - and a - jr z, .asm_e99a6 - dec c - ld a, [de] - cp $ff - jr z, .asm_e99a6 - ld [$d11d], a - push bc - push hl - push de - push hl - ld bc, 12 - ld a, " " - call FillMemory - pop hl - push hl - ld de, SCREEN_WIDTH - add hl, de - ld bc, 12 - ld a, " " - call FillMemory - pop hl - push hl - call GetMonName - pop hl - call PlaceString - push hl - ld hl, wBoxMonNicks - ld bc, NAME_LENGTH - ld a, [wBoxNumString] - call AddNTimes - ld e, l - ld d, h - pop hl - ld bc, SCREEN_WIDTH + 1 - add hl, bc - ld [hl], " " - inc hl - call PlaceString - ld hl, wBoxNumString - inc [hl] - pop de - pop hl - ld bc, 3 * SCREEN_WIDTH - add hl, bc - pop bc - inc de - jr .asm_e994e - -.asm_e99a6 - ret - -Func_e99a7: - coord hl, 0, 0 - ld a, $79 - ld [hli], a - ld a, $7a - ld c, SCREEN_WIDTH - 2 -.asm_e99b1 - ld [hli], a - dec c - jr nz, .asm_e99b1 - ld a, $7b - ld [hl], a - ret - -Func_e99b9: - coord hl, 0, 0 - ld de, SCREEN_WIDTH - 1 - ld c, SCREEN_HEIGHT -.asm_e99c1 - ld a, $7c - ld [hl], a - add hl, de - ld a, $7c - ld [hli], a - dec c - jr nz, .asm_e99c1 - ret - -Func_e99cc: - coord hl, 0, 17 -Func_e99cf: - ld a, $7d - ld [hli], a - ld a, $7a - ld c, SCREEN_WIDTH - 2 -.asm_e99b1 - ld [hli], a - dec c - jr nz, .asm_e99b1 - ld a, $7e - ld [hl], a - ret - -Func_e99de: - coord hl, 4, 0 - ld c, 6 - call Func_e99eb - coord hl, 6, 1 - ld c, 6 -Func_e99eb: -.asm_e99eb - push bc - push hl - ld de, String_e99fd - call PlaceString - pop hl - ld bc, 3 * SCREEN_WIDTH - add hl, bc - pop bc - dec c - jr nz, .asm_e99eb - ret - -String_e99fd: - db "----------@" - INCLUDE "engine/diploma_3a.asm" SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" -- cgit v1.3.1-sl0p