diff options
author | Marcus Huderle <huderlem@gmail.com> | 2015-07-13 09:54:43 -0700 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2015-07-13 09:54:43 -0700 |
commit | 7d0eb18b975a2ee5afd08df06bf71d91897fb58a (patch) | |
tree | 4b6e76bd95cc3c3a7ddc8d6878b6b7767b0a0ead | |
parent | 31a2ce6b467d5991c824b18d254b618060f4fc23 (diff) |
Dump seel stage logic.
-rwxr-xr-x | main.asm | 815 |
1 files changed, 809 insertions, 6 deletions
@@ -5146,12 +5146,12 @@ CallTable_2822: ; 0x2822 db Bank(Func_19b88), $00 ; STAGE_SEEL_BONUS - dw $5C5A - db $09, $00 + dw Func_25c5a + db Bank(Func_25c5a), $00 ; STAGE_SEEL_BONUS - dw $5C5A - db $09, $00 + dw Func_25c5a + db Bank(Func_25c5a), $00 Func_2862: ; 0x2862 ld a, [$d7be] @@ -28804,7 +28804,702 @@ Func_25c12: ; 0x25c12 and a ret -INCBIN "baserom.gbc",$25c5a,$26137 - $25c5a +Func_25c5a: ; 0x25c5a + call Func_25da3 + call Func_25ced + ld a, [$d793] + cp $14 + jr c, .asm_25c98 + ld a, [$d794] + cp $2 + jr nc, .asm_25c98 + ld a, $1 + ld [$d498], a + ld de, $0000 + call Func_490 + ld a, $1 + ld [$d49a], a + call Func_30e8 + call Func_30db + ld hl, $d5dc + ld de, $2fec + call Func_32aa + ld a, $2 + ld [$d794], a + ld de, $4b2a + call PlaySoundEffect +.asm_25c98 + ld a, [$d794] + cp $2 + jr nz, .asm_25cb0 + ld a, [$d800] + and a + jr nz, .asm_25cb0 + ld de, $0003 + call Func_490 + ld a, $5 + ld [$d794], a +.asm_25cb0 + ld a, [$d794] + cp $2 + jr z, .asm_25cc1 + ld [$ff8a], a + ld a, Bank(Func_107f8) + ld hl, Func_107f8 + call BankSwitch +.asm_25cc1 + ld a, [$d57e] + and a + ret z + xor a + ld [$d57e], a + ld a, $1 + ld [$d7be], a + call Func_2862 + ld [$ff8a], a + ld a, Bank(Func_86d2) + ld hl, Func_86d2 + call BankSwitch + ld a, $3 + ld [$d791], a + ld a, [$d794] + cp $5 + ret z + ld a, $1 + ld [$d794], a + ret + +Func_25ced: ; 0x25ced + ld a, [$d766] + and a + ret nz + ld a, [$d4b4] + cp $8a + ret nc + ld a, $1 + ld [$d4af], a + ld [$d766], a + ld [$ff8a], a + ld a, Bank(Func_e578) + ld hl, Func_e578 + call BankSwitch + call Func_25d0e + ret + +Func_25d0e: ; 0x25d0e + ld a, [$d4af] + sla a + ld c, a + ld b, $0 + ld hl, $5d2b + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_25d21 + ld hl, $5d67 +.asm_25d21 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $9 + call Func_10aa + ret + +INCBIN "baserom.gbc",$25d2b,$25da3 - $25d2b + +Func_25da3: ; 0x25da3 + ld a, [$d767] + and a + jp z, .asm_25e38 + xor a + ld [$d767], a + ld a, [$d768] + sla a + ld c, a + sla a + sla a + add c + ld c, a + ld b, $0 + ld hl, $d76c + add hl, bc + ld d, h + ld e, l + ld a, $9 + ld [de], a + dec de + dec de + dec de + push bc + ld hl, $61d8 + call Func_28a0 + pop bc + ld hl, $d76e + add hl, bc + ld a, [hl] + ld [$d79c], a + ld hl, $d770 + add hl, bc + ld a, [hl] + add $8 + ld [$d79e], a + ld a, [$d792] + cp $9 + jr nz, .asm_25df1 + ld a, $0 + ld [$d792], a + ld [$d79a], a +.asm_25df1 + ld a, [$d792] + dec a + cp $ff + jr z, .asm_25e04 + ld [$d79a], a + ld de, $d79a + call Func_261f9 + jr .asm_25e07 +.asm_25e04 + ld [$d79a], a +.asm_25e07 + ld a, $33 + ld [$d803], a + ld a, $8 + ld [$d804], a + ld de, $0030 + call PlaySoundEffect + call Func_25e85 + ld hl, $d792 + inc [hl] + ld a, [$d793] + cp $14 + ret nc + ld hl, $d793 + inc [hl] + ld a, [$d792] + dec a + ld b, a + ld a, [hl] + add b + ld [hl], a + ld a, $1 + ld [$d64e], a + call Func_262f4 +.asm_25e38 + ld de, $d76c ; I think these three calls are one for each Seel swimming around + call Func_25f47 + ld de, $d776 + call Func_25f47 + ld de, $d780 + call Func_25f47 + ld a, [$d792] + dec a + cp $ff + jr z, .asm_25e5d + ld [$d79a], a + ld de, $d79a + call Func_26212 + jr .asm_25e60 +.asm_25e5d + ld [$d79a], a +.asm_25e60 + ld bc, $087a ; again, probably one call for each Seel swimming around + ld de, $d76d + ld hl, $d772 + call Func_25ec5 + ld bc, $087a + ld de, $d777 + ld hl, $d77c + call Func_25ec5 + ld bc, $087a + ld de, $d781 + ld hl, $d786 + call Func_25ec5 + ret + +Func_25e85: ; 0x25e85 + ld a, [$d792] + inc a + ld d, $1 + ld e, a + ld a, $1 +.asm_25e8e + cp e + jr z, .asm_25e96 + sla d + inc a + jr .asm_25e8e +.asm_25e96 + push de + ld a, d + cp $32 + jr nc, .asm_25ead + ld bc, $34d6 + ld [$ff8a], a + ld a, Bank(Func_8576) + ld hl, Func_8576 + call BankSwitch + pop de + dec d + jr .asm_25ebf +.asm_25ead + ld bc, $34ee + ld [$ff8a], a + ld a, Bank(Func_8576) + ld hl, Func_8576 + call BankSwitch + pop de + ld a, d + sub $32 + ld d, a +.asm_25ebf + ld a, d + cp $0 + jr nz, .asm_25e96 + ret + +Func_25ec5: ; 0x25ec5 + dec de + ld a, [de] + cp $1 + jr z, .asm_25ece + cp $4 + ret nz +.asm_25ece + inc de + push hl + ld a, [hld] + push af + push bc + ld a, [hl] + and $f + ld c, a + ld b, $0 + ld hl, $5f27 + add hl, bc + pop bc + pop af + and a + jr nz, .asm_25f05 + ld a, [de] + add [hl] + ld [de], a + inc de + ld a, [de] + adc $0 + ld [de], a + pop hl + cp c + ret c + ld a, $1 + ld [hl], a + dec hl + dec hl + dec hl + dec hl + dec hl + dec hl + ld a, $7 + ld [hl], a + dec hl + dec hl + dec hl + ld d, h + ld e, l + ld hl, $61c2 + call Func_28a0 + ret +.asm_25f05 + ld a, [de] + sub [hl] + ld [de], a + inc de + ld a, [de] + sbc $0 + ld [de], a + pop hl + cp b + ret nc + xor a + ld [hl], a + dec hl + dec hl + dec hl + dec hl + dec hl + dec hl + ld a, $8 + ld [hl], a + dec hl + dec hl + dec hl + ld d, h + ld e, l + ld hl, $61cd + call Func_28a0 + ret + +INCBIN "baserom.gbc",$25f27,$25f47 - $25f27 + +Func_25f47: ; 0x25f47 + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, $614f + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call Func_28a9 + pop de + ret nc + ld a, [de] + rst $18 +CallTable_25f5f: ; 0x25f5f + dw Func_25f77 + dw Func_25fbe + dw Func_25ff3 + dw Func_2602a + dw Func_2604c + dw Func_2607f + dw Func_260b6 + dw Func_260d8 + dw Func_260e2 + dw Func_260ec + dw Func_26109 + dw Func_26120 + +Func_25f77: ; 0x25f77 + dec de + ld a, [de] + cp $2 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + dec a + ld [de], a + ld a, $3 + jr z, .asm_25f8f + pop de + xor a + jp Func_26137 +.asm_25f8f + ld hl, $d792 + ld [hl], $0 + call Func_959 + bit 7, a + jr z, .asm_25fa2 + inc de + ld a, $1 + ld [de], a + dec de + jr .asm_25fa7 +.asm_25fa2 + inc de + ld a, $0 + ld [de], a + dec de +.asm_25fa7 + inc de + ld a, [de] + and a + jr z, .asm_25fb0 + ld a, $6 + jr .asm_25fb2 +.asm_25fb0 + ld a, $3 +.asm_25fb2 + push af + ld de, $0031 + call PlaySoundEffect + pop af + pop de + jp Func_26137 + +Func_25fbe: ; 0x25fbe + dec de + ld a, [de] + cp $4 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + dec a + ld [de], a + jr z, .asm_25fd5 + pop de + ld a, $1 + jp Func_26137 +.asm_25fd5 + ld a, [$d791] + cp $0 + jr z, .asm_25fe9 + ld a, $2 + ld [de], a + pop de + ld a, $4 + ld [de], a + ld a, $1 + jp Func_26137 + + ret ; unused instruction + +.asm_25fe9 + ld hl, $d791 + inc [hl] + pop de + ld a, $2 + jp Func_26137 + +Func_25ff3: ; 0x25ff3 + dec de + ld a, [de] + cp $7 + ret nz + xor a + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, [$d792] + cp $6 + jr nc, .asm_26020 + cp $2 + jr nc, .asm_26016 + ld a, $3 + ld [de], a + ld de, $0031 + call PlaySoundEffect + ret +.asm_26016 + ld a, $2 + ld [de], a + ld de, $0031 + call PlaySoundEffect + ret +.asm_26020 + ld a, $1 + ld [de], a + ld de, $0031 + call PlaySoundEffect + ret + +Func_2602a: ; 0x2602a + dec de + ld a, [de] + cp $9 + ret nz + ld a, $1 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + call Func_959 + bit 7, a + jr z, .asm_26044 + ld a, $3 + jr .asm_26046 +.asm_26044 + ld a, $5 +.asm_26046 + ld [de], a + ld hl, $d791 + dec [hl] + ret + +Func_2604c: ; 0x2604c + dec de + ld a, [de] + cp $4 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + dec a + ld [de], a + jr z, .asm_26063 + pop de + ld a, $4 + jp Func_26137 +.asm_26063 + ld a, [$d791] + cp $0 + jr z, .asm_26075 + ld a, $2 + ld [de], a + pop de + ld a, $4 + ld [de], a + jp Func_26137 + + ret ; unused instruction + +.asm_26075 + ld hl, $d791 + inc [hl] + pop de + ld a, $5 + jp Func_26137 + +Func_2607f: ; 0x2607f + dec de + ld a, [de] + cp $7 + ret nz + xor a + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, [$d792] + cp $6 + jr nc, .asm_260ac + cp $2 + jr nc, .asm_260a2 + ld a, $3 + ld [de], a + ld de, $0031 + call PlaySoundEffect + ret +.asm_260a2 + ld a, $2 + ld [de], a + ld de, $0031 + call PlaySoundEffect + ret +.asm_260ac + ld a, $1 + ld [de], a + ld de, $0031 + call PlaySoundEffect + ret + +Func_260b6: ; 0x260b6 + dec de + ld a, [de] + cp $9 + ret nz + ld a, $4 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + call Func_959 + bit 7, a + jr z, .asm_260d0 + ld a, $3 + jr .asm_260d2 +.asm_260d0 + ld a, $5 +.asm_260d2 + ld [de], a + ld hl, $d791 + dec [hl] + ret + +Func_260d8: ; 0x260d8 + dec de + ld a, [de] + cp $5 + ret nz + ld a, $4 + jp Func_26137 + +Func_260e2: ; 0x260e2 + dec de + ld a, [de] + cp $5 + ret nz + ld a, $1 + jp Func_26137 + +Func_260ec: ; 0x260ec + dec de + ld a, [de] + cp $1 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + and a + jr z, .asm_26103 + pop de + ld a, $b + jp Func_26137 +.asm_26103 + pop de + ld a, $a + jp Func_26137 + +Func_26109: ; 0x26109 + dec de + ld a, [de] + cp $7 + ret nz + ld a, $1 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, $5 + ld [de], a + ld hl, $d791 + dec [hl] + ret + +Func_26120: ; 0x26120 + dec de + ld a, [de] + cp $7 + ret nz + ld a, $4 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, $5 + ld [de], a + ld hl, $d791 + dec [hl] + ret Func_26137: ; 0x26137 push af @@ -28826,7 +29521,115 @@ Func_26137: ; 0x26137 ld [de], a ret -INCBIN "baserom.gbc",$2614f,$28000 - $2614f +INCBIN "baserom.gbc",$2614f,$261f9 - $2614f + +Func_261f9: ; 0x261f9 + ld a, $ff + ld [$d795], a + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, $623a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + dec de + dec de + dec de + call Func_28a0 + ret + +Func_26212: ; 0x26212 + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, $623a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call Func_28a9 + pop de + ret nc + dec de + ld a, [de] + cp $a + ret nz + xor a + ld [de], a + ld [$d79c], a + ld [$d79e], a + ld a, a + ld [$d795], a + ret + +INCBIN "baserom.gbc",$2623a,$262f4 - $2623a + +Func_262f4: ; 0x262f4 + ld a, [$d793] + ld c, a + ld b, $0 +.asm_262fa + ld a, c + and a + jr z, .asm_26306 + ld a, b + add $8 + ld b, a + dec c + ld a, c + jr .asm_262fa +.asm_26306 + ld a, b + and a + jr z, .asm_2630c + sub $8 +.asm_2630c + ld [$d652], a + ld a, [$d792] + and a + jr z, .asm_2631b + ld b, a + ld a, [$d793] + inc a + sub b +.asm_2631b + ld [$d651], a + ld a, [$d793] + cp $15 + jr c, .asm_2632a + ld a, $14 + ld [$d793], a +.asm_2632a + push af + xor a + ld [$d650], a + pop af + sla a + ld c, a + ld b, $0 + ld hl, $634a + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_26340 + ld hl, $6764 +.asm_26340 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $9 + call Func_10aa + ret + +INCBIN "baserom.gbc",$2634a,$28000 - $2634a SECTION "banka", ROMX, BANK[$a] |