diff options
author | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-16 11:13:09 -0400 |
---|---|---|
committer | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-16 11:13:09 -0400 |
commit | 8fe65fef10a979a016af160076056457491ba722 (patch) | |
tree | 3e578261c35d8a1719f7a5441daf49f332989a00 | |
parent | 2bf93c5905319e9181f87b3f83cd3bce7b9feeca (diff) |
Start from scratch; add silver
-rw-r--r-- | Makefile | 19 | ||||
-rwxr-xr-x | compare-gold.sh | 11 | ||||
-rwxr-xr-x | compare-silver.sh | 11 | ||||
-rwxr-xr-x | data/sprite_engine.asm | 1038 | ||||
-rwxr-xr-x | engine/sprite_anims.asm | 1361 | ||||
-rwxr-xr-x | engine/sprites.asm | 645 | ||||
-rwxr-xr-x | engine/sprites_dump.asm | 0 | ||||
m--------- | extras | 0 | ||||
-rw-r--r-- | gbhw.asm | 130 | ||||
-rw-r--r-- | gold.asm | 382 | ||||
-rw-r--r-- | home.asm | 11602 | ||||
-rw-r--r-- | home/delay.asm | 26 | ||||
-rw-r--r-- | home/fade.asm | 220 | ||||
-rw-r--r-- | home/rtc.asm | 43 | ||||
-rw-r--r-- | home/vblank.asm | 719 | ||||
-rw-r--r-- | home_gold.asm | 90 | ||||
-rwxr-xr-x | hram.asm | 20 | ||||
-rw-r--r-- | macros.asm | 24 | ||||
-rw-r--r-- | main.asm | 383 | ||||
-rw-r--r-- | roms.md5 | 2 | ||||
-rwxr-xr-x | rst.asm | 37 | ||||
-rw-r--r-- | silver.asm | 388 |
22 files changed, 4515 insertions, 12636 deletions
@@ -3,14 +3,16 @@ MD5 := md5sum -c --quiet .SUFFIXES: .SUFFIXES: .asm .o .gbc .png .2bpp .1bpp .lz .pal .bin .blk .tilemap -.PHONY: all clean gold pngs +.PHONY: all clean gold silver pngs compare .SECONDEXPANSION: poketools := extras/pokemontools gfx := $(PYTHON) $(poketools)/gfx.py includes := $(PYTHON) $(poketools)/scan_includes.py -gold_obj := main.o +gold_obj := \ +gold.o \ +home_gold.o # gold_obj := \ # wram.o \ # main.o \ @@ -26,8 +28,9 @@ gold_obj := main.o # misc/gold_misc.o \ # gfx/pics.o -all_obj := $(gold_obj) -# gold11.o wram11.o +silver_obj := silver.o + +all_obj := $(gold_obj) $(silver_obj) # object dependencies $(foreach obj, $(all_obj), \ @@ -35,15 +38,16 @@ $(foreach obj, $(all_obj), \ ) -roms := pokegold.gbc +roms := pokegold.gbc pokesilver.gbc all: $(roms) gold: pokegold.gbc +silver: pokesilver.gbc clean: rm -f $(roms) $(all_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) -# compare: pokegold.gbc pokegold11.gbc +compare: pokegold.gbc pokesilver.gbc @$(MD5) roms.md5 %.asm: ; @@ -54,6 +58,9 @@ pokegold.gbc: $(gold_obj) rgblink -n $*.sym -m $*.map -o $@ $^ rgbfix -cjsv -i AAUE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t "POKEMON_GLD" $@ +pokesilver.gbc: $(silver_obj) + rgblink -n $*.sym -m $*.map -o $@ $^ + rgbfix -cjsv -i AAXE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t "POKEMON_SLV" $@ pngs: find . -iname "*.lz" -exec $(gfx) unlz {} + diff --git a/compare-gold.sh b/compare-gold.sh new file mode 100755 index 00000000..e75cb743 --- /dev/null +++ b/compare-gold.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Compares baserom-gold.gbc and pokegold.gbc + +# create baserom-gold.txt if necessary +if [ ! -f baserom-gold.txt ]; then + hexdump -C baserom-gold.gbc > baserom-gold.txt +fi + +hexdump -C pokegold.gbc > pokegold.txt + +diff -u baserom-gold.txt pokegold.txt | less diff --git a/compare-silver.sh b/compare-silver.sh new file mode 100755 index 00000000..f8881cd2 --- /dev/null +++ b/compare-silver.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Compares baserom-silver.gbc and pokesilver.gbc + +# create baserom-silver.txt if necessary +if [ ! -f baserom-silver.txt ]; then + hexdump -C baserom-silver.gbc > baserom-silver.txt +fi + +hexdump -C pokesilver.gbc > pokesilver.txt + +diff -u baserom-silver.txt pokesilver.txt | less diff --git a/data/sprite_engine.asm b/data/sprite_engine.asm new file mode 100755 index 00000000..90f183f8 --- /dev/null +++ b/data/sprite_engine.asm @@ -0,0 +1,1038 @@ +SpriteAnimFrameData: ; 8dbfe + dw .data_8dc6e + dw .data_8dc71 + dw .data_8dc76 + dw .data_8dc7b + dw .data_8dc89 + dw .data_8dc8e + dw .data_8dc93 + dw .data_8dc98 + dw .data_8dc9b + dw .data_8dca4 + dw .data_8dca7 + dw .data_8dcaa + dw .data_8dcb3 + dw .data_8dcb6 + dw .data_8dcbd + dw .data_8dcc0 + dw .data_8dcc3 + dw .data_8dccc + dw .data_8dccf + dw .data_8dcd6 + dw .data_8dcd9 + dw .data_8dcdc + dw .data_8dcdf + dw .data_8dcb6 + dw .data_8dcbd + dw .data_8dce4 + dw .data_8dceb + dw .data_8dcf0 + dw .data_8dcf5 + dw .data_8dcf8 + dw .data_8dcfd + dw .data_8dd06 + dw .data_8dd0f + dw .data_8dd18 + dw .data_8dd23 + dw .data_8dc80 + dw .data_8dd26 + dw .data_8dd29 + dw .data_8dd2c + dw .data_8dd35 + dw .data_8dd3c + dw .data_8dd41 + dw .data_8dd46 + dw .data_8dd49 + dw .data_8dd50 + dw .data_8dd53 + dw .data_8dd85 + dw .data_8dd88 + dw .data_8dd8b + dw .data_8dd98 + dw .data_8dd9b + dw .data_8dd9e + dw .data_8dda1 + dw .data_8dda4 + dw .data_8dda7 + dw .data_8ddb4 + +.data_8dc6e ; 8dc6e + db $00,$20 + db $ff + +.data_8dc71 ; 8dc71 + db $00,$08, $01,$08 + db $fe + +.data_8dc76 ; 8dc76 + db $3d,$08, $3e,$08 + db $fe + +.data_8dc7b ; 8dc7b + db $3f,$08, $40,$08 + db $fe + +.data_8dc80 ; 8dc80 + db $00,$08, $01,$08, $00,$08, $01,$48 + db $fe + +.data_8dc89 ; 8dc89 + db $02,$08, $03,$08 + db $fe + +.data_8dc8e ; 8dc8e + db $04,$08, $05,$08 + db $fe + +.data_8dc93 ; 8dc93 + db $06,$41, $07,$41 + db $fe + +.data_8dc98 ; 8dc98 + db $08,$47 + db $ff + +.data_8dc9b ; 8dc9b + db $09,$07, $0a,$07, $0b,$07, $09,$07 + db $fe + +.data_8dca4 ; 8dca4 + db $0c,$08 + db $ff + +.data_8dca7 ; 8dca7 + db $0d,$08 + db $ff + +.data_8dcaa ; 8dcaa + db $0e,$59, $10,$09, $0e,$19, $10,$09 + db $fe + +.data_8dcb3 ; 8dcb3 + db $0f,$20 + db $ff + +.data_8dcb6 ; 8dcb6 + db $11,$04, $12,$05, $14,$04 + db $fe + +.data_8dcbd ; 8dcbd + db $12,$08 + db $ff + +.data_8dcc0 ; 8dcc0 + db $13,$20 + db $ff + +.data_8dcc3 ; 8dcc3 + db $15,$03, $16,$03, $17,$03, $16,$03 + db $fe + +.data_8dccc ; 8dccc + db $15,$1f + db $ff + +.data_8dccf ; 8dccf + db $18,$01, $19,$01, $1a,$01 + db $fc + +.data_8dcd6 ; 8dcd6 + db $1b,$18 + db $fc + +.data_8dcd9 ; 8dcd9 + db $1c,$58 + db $fc + +.data_8dcdc ; 8dcdc + db $1d,$18 + db $fc + +.data_8dcdf ; 8dcdf + db $1e,$01, $1f,$01 + db $fe + +.data_8dce4 ; 8dce4 + db $12,$00, $13,$0f, $14,$0f + db $ff + +.data_8dceb ; 8dceb + db $20,$01, $fd,$01 + db $fe + +.data_8dcf0 ; 8dcf0 + db $21,$01, $fd,$01 + db $fe + +.data_8dcf5 ; 8dcf5 + db $22,$08 + db $ff + +.data_8dcf8 ; 8dcf8 + db $23,$03, $23,$83 + db $fe + +.data_8dcfd ; 8dcfd + db $24,$02, $25,$02, $26,$02, $25,$02 + db $fe + +.data_8dd06 ; 8dd06 + db $27,$07, $28,$07, $27,$87, $28,$47 + db $fe + +.data_8dd0f ; 8dd0f + db $29,$07, $2a,$07, $29,$07, $2b,$07 + db $fe + +.data_8dd18 ; 8dd18 + db $29,$07, $2c,$07, $2d,$07, $2c,$07, $29,$07 + db $ff + +.data_8dd23 ; 8dd23 + db $2e,$14 + db $ff + +.data_8dd26 ; 8dd26 + db $2f,$20 + db $ff + +.data_8dd29 ; 8dd29 + db $30,$20 + db $ff + +.data_8dd2c ; 8dd2c + db $30,$03, $31,$03, $30,$03, $31,$43 + db $fe + +.data_8dd35 ; 8dd35 + db $32,$04, $33,$04, $34,$04 + db $fc + +.data_8dd3c ; 8dd3c + db $35,$03, $36,$03 + db $fe + +.data_8dd41 ; 8dd41 + db $37,$07, $38,$07 + db $fe + +.data_8dd46 ; 8dd46 + db $39,$20 + db $ff + +.data_8dd49 ; 8dd49 + db $3b,$02, $3a,$02, $3b,$02 + db $ff + +.data_8dd50 ; 8dd50 + db $3c,$20 + db $ff + +.data_8dd53 ; 8dd53 + db $41,$08, $42,$08, $41,$08, $42,$48 + db $fe + +; --- BEGIN UNUSED BLOCK --- +.data_8dd5c ; 8dd5c + db $43,$08, $44,$08 + db $fe + +.data_8dd61 ; 8dd61 + db $45,$08, $46,$08 + db $fe + +.data_8dd66 ; 8dd66 + db $47,$08, $48,$08 + db $fe + +.data_8dd6b ; 8dd6b + db $49,$01, $49,$41, $49,$c1, $49,$81 + db $fe + +.data_8dd74 ; 8dd74 + db $4a,$20 + db $ff + +.data_8dd77 ; 8dd77 + db $4b,$20 + db $ff + +.data_8dd7a ; 8dd7a + db $4c,$20 + db $ff + +.data_8dd7d ; 8dd7d + db $4d,$20 + db $ff + +.data_8dd80 ; 8dd80 + db $4e,$03, $fd,$03 + db $fe +; --- END UNUSED BLOCK ;;; + +.data_8dd85 ; 8dd85 + db $fd,$20 + db $ff + +.data_8dd88 ; 8dd88 + db $4f,$20 + db $ff + +.data_8dd8b ; 8dd8b + db $50,$02, $51,$10, $fd,$01, $52,$01, $fd,$01, $53,$01 + db $fc + +.data_8dd98 ; 8dd98 + db $54,$20 + db $ff + +.data_8dd9b ; 8dd9b + db $55,$20 + db $ff + +.data_8dd9e ; 8dd9e + db $55,$60 + db $ff + +.data_8dda1 ; 8dda1 + db $55,$a0 + db $ff + +.data_8dda4 ; 8dda4 + db $55,$e0 + db $ff + +.data_8dda7 ; 8dda7 + db $56,$0a, $57,$09, $58,$0a, $59,$0a, $58,$09, $5a,$0a + db $fe + +.data_8ddb4 ; 8ddb4 + db $50,$02, $5b,$02, $50,$02, $5b,$42 + db $fe + +SpriteAnimOAMData: ; 8ddbc + dbw $00, .data_8e16a + dbw $04, .data_8e16a + dbw $4c, .data_8ded1 + dbw $5c, .data_8ded1 + dbw $6c, .data_8ded6 + dbw $6e, .data_8ded6 + dbw $2d, .data_8e1d0 + dbw $4d, .data_8e1d0 + dbw $60, .data_8e1e9 + dbw $00, .data_8e212 + dbw $00, .data_8e27f + dbw $06, .data_8e2ec + dbw $0c, .data_8e361 + dbw $0d, .data_8ded1 + dbw $00, .data_8e033 + dbw $04, .data_8e033 + dbw $08, .data_8e033 + dbw $40, .data_8e033 + dbw $44, .data_8e033 + dbw $48, .data_8e033 + dbw $4c, .data_8e033 + dbw $80, .data_8e36a + dbw $85, .data_8e36a + dbw $8a, .data_8e36a + dbw $00, .data_8df09 + dbw $01, .data_8df3c + dbw $09, .data_8df7d + dbw $10, .data_8e074 + dbw $29, .data_8e074 + dbw $42, .data_8e074 + dbw $f8, .data_8e661 + dbw $fa, .data_8e661 + dbw $00, .data_8e395 + dbw $00, .data_8e3a6 + dbw $00, .data_8e3cf + dbw $0f, .data_8dee7 + dbw $11, .data_8ded1 + dbw $12, .data_8ded1 + dbw $13, .data_8ded1 + dbw $00, .data_8e40c + dbw $08, .data_8e40c + dbw $10, .data_8e425 + dbw $10, .data_8e43e + dbw $10, .data_8e457 + dbw $10, .data_8e470 + dbw $10, .data_8e489 + dbw $3a, .data_8ded1 + dbw $00, .data_8e16a + dbw $00, .data_8def8 + dbw $02, .data_8e17b + dbw $06, .data_8df3c + dbw $0a, .data_8df3c + dbw $0e, .data_8df3c + dbw $12, .data_8df1a + dbw $13, .data_8df1a + dbw $00, .data_8e16a + dbw $04, .data_8e16a + dbw $10, .data_8df3c + dbw $00, .data_8e17b + dbw $04, .data_8ded1 + dbw $00, .data_8e4a2 + dbw $00, .data_8e18c + dbw $00, .data_8e19d + dbw $00, .data_8e1ae + dbw $00, .data_8e1bf + dbw $00, .data_8e17b + dbw $04, .data_8e17b + dbw $00, .data_8e00e + dbw $30, .data_8e00e + dbw $03, .data_8e00e + dbw $33, .data_8e00e + dbw $06, .data_8e00e + dbw $36, .data_8e00e + dbw $09, .data_8e00e + dbw $39, .data_8e00e + dbw $0c, .data_8e4af + dbw $0c, .data_8e4c8 + dbw $3c, .data_8ded1 + dbw $3e, .data_8ded1 + dbw $00, .data_8e37f + dbw $00, .data_8e384 + dbw $00, .data_8e4d9 + dbw $00, .data_8e4ea + dbw $00, .data_8e4fb + dbw $00, .data_8ded1 + dbw $01, .data_8ded1 + dbw $00, .data_8e50c + dbw $00, .data_8e559 + dbw $00, .data_8e59a + dbw $00, .data_8e5d7 + dbw $00, .data_8e61c + dbw $04, .data_8e384 + +; 23:5ed1 +.data_8ded1 ; 8ded1 + db $01 + db $fc, $fc, $00, $00 + +.data_8ded6 ; 8ded6 + db $04 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $10, $00 + db $00, $00, $11, $00 + +.data_8dee7 ; 8dee7 + db $04 + db $f8, $f8, $00, $00 + db $f8, $00, $00, $20 + db $00, $f8, $01, $00 + db $00, $00, $01, $20 + +.data_8def8 ; 8def8 + db $04 + db $f8, $f8, $00, $80 + db $f8, $00, $00, $a0 + db $00, $f8, $01, $80 + db $00, $00, $01, $a0 + +.data_8df09 ; 8df09 + db $04 + db $f8, $f8, $00, $00 + db $f8, $00, $00, $20 + db $00, $f8, $00, $40 + db $00, $00, $00, $60 + +.data_8df1a ; 8df1a + db $04 + db $f8, $f8, $00, $07 + db $f8, $00, $00, $27 + db $00, $f8, $00, $47 + db $00, $00, $00, $67 + +.data_8df2b ; 8df2b + db $04 + db $f8, $f8, $00, $80 + db $f8, $00, $00, $a0 + db $00, $f8, $00, $c0 + db $00, $00, $00, $e0 + +.data_8df3c ; 8df3c + db $10 + db $f0, $f0, $00, $00 + db $f0, $f8, $01, $00 + db $f8, $f0, $02, $00 + db $f8, $f8, $03, $00 + db $f0, $00, $01, $20 + db $f0, $08, $00, $20 + db $f8, $00, $03, $20 + db $f8, $08, $02, $20 + db $00, $f0, $02, $40 + db $00, $f8, $03, $40 + db $08, $f0, $00, $40 + db $08, $f8, $01, $40 + db $00, $00, $03, $60 + db $00, $08, $02, $60 + db $08, $00, $01, $60 + db $08, $08, $00, $60 + +.data_8df7d ; 8df7d + db $24 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $f0, $e8, $03, $00 + db $f0, $f0, $04, $00 + db $f0, $f8, $05, $00 + db $f8, $e8, $06, $00 + db $f8, $f0, $05, $00 + db $f8, $f8, $05, $00 + db $e8, $00, $02, $20 + db $e8, $08, $01, $20 + db $e8, $10, $00, $20 + db $f0, $00, $05, $20 + db $f0, $08, $04, $20 + db $f0, $10, $03, $20 + db $f8, $00, $05, $20 + db $f8, $08, $05, $20 + db $f8, $10, $06, $20 + db $00, $e8, $06, $40 + db $00, $f0, $05, $40 + db $00, $f8, $05, $40 + db $08, $e8, $03, $40 + db $08, $f0, $04, $40 + db $08, $f8, $05, $40 + db $10, $e8, $00, $40 + db $10, $f0, $01, $40 + db $10, $f8, $02, $40 + db $00, $00, $05, $60 + db $00, $08, $05, $60 + db $00, $10, $06, $60 + db $08, $00, $05, $60 + db $08, $08, $04, $60 + db $08, $10, $03, $60 + db $10, $00, $02, $60 + db $10, $08, $01, $60 + db $10, $10, $00, $60 + +.data_8e00e ; 8e00e + db $09 + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $02, $00 + db $fc, $f4, $10, $00 + db $fc, $fc, $11, $00 + db $fc, $04, $12, $00 + db $04, $f4, $20, $00 + db $04, $fc, $21, $00 + db $04, $04, $22, $00 + +.data_8e033 ; 8e033 + db $10 + db $f0, $f0, $00, $00 + db $f0, $f8, $01, $00 + db $f0, $00, $02, $00 + db $f0, $08, $03, $00 + db $f8, $f0, $10, $00 + db $f8, $f8, $11, $00 + db $f8, $00, $12, $00 + db $f8, $08, $13, $00 + db $00, $f0, $20, $00 + db $00, $f8, $21, $00 + db $00, $00, $22, $00 + db $00, $08, $23, $00 + db $08, $f0, $30, $00 + db $08, $f8, $31, $00 + db $08, $00, $32, $00 + db $08, $08, $33, $00 + +.data_8e074 ; 8e074 + db $19 + db $ec, $ec, $00, $00 + db $f4, $ec, $01, $00 + db $fc, $ec, $02, $00 + db $04, $ec, $03, $00 + db $0c, $ec, $04, $00 + db $ec, $f4, $05, $00 + db $f4, $f4, $06, $00 + db $fc, $f4, $07, $00 + db $04, $f4, $08, $00 + db $0c, $f4, $09, $00 + db $ec, $fc, $0a, $00 + db $f4, $fc, $0b, $00 + db $fc, $fc, $0c, $00 + db $04, $fc, $0d, $00 + db $0c, $fc, $0e, $00 + db $ec, $04, $0f, $00 + db $f4, $04, $10, $00 + db $fc, $04, $11, $00 + db $04, $04, $12, $00 + db $0c, $04, $13, $00 + db $ec, $0c, $14, $00 + db $f4, $0c, $15, $00 + db $fc, $0c, $16, $00 + db $04, $0c, $17, $00 + db $0c, $0c, $18, $00 + +.data_8e0d9 ; unreferenced + db $24 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $e8, $00, $03, $00 + db $e8, $08, $04, $00 + db $e8, $10, $05, $00 + db $f0, $e8, $06, $00 + db $f0, $f0, $07, $00 + db $f0, $f8, $08, $00 + db $f0, $00, $09, $00 + db $f0, $08, $0a, $00 + db $f0, $10, $0b, $00 + db $f8, $e8, $0c, $00 + db $f8, $f0, $0d, $00 + db $f8, $f8, $0e, $00 + db $f8, $00, $0f, $00 + db $f8, $08, $10, $00 + db $f8, $10, $11, $00 + db $00, $e8, $12, $00 + db $00, $f0, $13, $00 + db $00, $f8, $14, $00 + db $00, $00, $15, $00 + db $00, $08, $16, $00 + db $00, $10, $17, $00 + db $08, $e8, $18, $00 + db $08, $f0, $19, $00 + db $08, $f8, $1a, $00 + db $08, $00, $1b, $00 + db $08, $08, $1c, $00 + db $08, $10, $1d, $00 + db $10, $e8, $1e, $00 + db $10, $f0, $1f, $00 + db $10, $f8, $20, $00 + db $10, $00, $21, $00 + db $10, $08, $22, $00 + db $10, $10, $23, $00 + +.data_8e16a ; 8e16a + db $04 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $02, $00 + db $00, $00, $03, $00 + +.data_8e17b ; 8e17b + db $04 + db $f8, $f8, $00, $80 + db $f8, $00, $01, $80 + db $00, $f8, $02, $80 + db $00, $00, $03, $80 + +.data_8e18c ; 8e18c + db $04 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $08, $00 + db $00, $00, $03, $00 + +.data_8e19d ; 8e19d + db $04 + db $f8, $f8, $04, $00 + db $f8, $00, $05, $00 + db $00, $f8, $08, $00 + db $00, $00, $07, $00 + +.data_8e1ae ; 8e1ae + db $04 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $09, $00 + db $00, $00, $03, $00 + +.data_8e1bf ; 8e1bf + db $04 + db $f8, $f8, $04, $00 + db $f8, $00, $05, $00 + db $00, $f8, $09, $00 + db $00, $00, $07, $00 + +.data_8e1d0 ; 8e1d0 + db $06 + db $f8, $f4, $00, $01 + db $f8, $fc, $01, $01 + db $f8, $04, $02, $01 + db $00, $f4, $10, $01 + db $00, $fc, $11, $01 + db $00, $04, $12, $01 + +.data_8e1e9 ; 8e1e9 + db $0a + db $f4, $f0, $00, $00 + db $f4, $f8, $01, $00 + db $f4, $00, $02, $00 + db $f4, $08, $03, $00 + db $fc, $f0, $04, $00 + db $fc, $f8, $05, $00 + db $fc, $00, $06, $00 + db $04, $f0, $08, $00 + db $04, $f8, $09, $00 + db $04, $00, $0a, $00 + +.data_8e212 ; 8e212 + db $1b + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $f0, $e8, $10, $00 + db $f0, $f0, $11, $00 + db $f0, $f8, $12, $00 + db $f8, $e8, $20, $00 + db $f8, $f0, $21, $00 + db $f8, $f8, $22, $00 + db $f8, $00, $23, $00 + db $00, $e8, $30, $80 + db $00, $f0, $31, $80 + db $00, $f8, $32, $80 + db $00, $00, $33, $80 + db $00, $08, $34, $80 + db $08, $e8, $40, $80 + db $08, $f0, $41, $80 + db $08, $f8, $42, $80 + db $08, $00, $43, $80 + db $08, $08, $44, $80 + db $08, $10, $45, $80 + db $10, $e8, $50, $80 + db $10, $f0, $51, $80 + db $10, $f8, $52, $80 + db $10, $00, $53, $80 + db $10, $08, $54, $80 + db $10, $10, $55, $80 + +.data_8e27f ; 8e27f + db $1b + db $e8, $e8, $0d, $00 + db $e8, $f0, $0e, $00 + db $e8, $f8, $0f, $00 + db $f0, $e8, $1d, $00 + db $f0, $f0, $1e, $00 + db $f0, $f8, $1f, $00 + db $f8, $e8, $20, $00 + db $f8, $f0, $21, $00 + db $f8, $f8, $22, $00 + db $f8, $00, $23, $00 + db $00, $e8, $30, $80 + db $00, $f0, $31, $80 + db $00, $f8, $32, $80 + db $00, $00, $33, $80 + db $00, $08, $34, $80 + db $08, $e8, $40, $80 + db $08, $f0, $41, $80 + db $08, $f8, $42, $80 + db $08, $00, $43, $80 + db $08, $08, $44, $80 + db $08, $10, $45, $80 + db $10, $e8, $50, $80 + db $10, $f0, $51, $80 + db $10, $f8, $52, $80 + db $10, $00, $53, $80 + db $10, $08, $54, $80 + db $10, $10, $55, $80 + +.data_8e2ec ; 8e2ec + db $1d + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $e8, $00, $03, $00 + db $f0, $e8, $10, $00 + db $f0, $f0, $11, $00 + db $f0, $f8, $12, $00 + db $f0, $00, $13, $00 + db $f8, $e8, $20, $00 + db $f8, $f0, $21, $00 + db $f8, $f8, $22, $00 + db $f8, $00, $23, $00 + db $f8, $08, $24, $00 + db $00, $e8, $30, $80 + db $00, $f0, $31, $80 + db $00, $f8, $32, $80 + db $00, $00, $33, $80 + db $00, $08, $34, $80 + db $08, $e8, $40, $80 + db $08, $f0, $41, $80 + db $08, $f8, $42, $80 + db $08, $00, $43, $80 + db $08, $08, $44, $80 + db $08, $10, $45, $80 + db $10, $f0, $51, $80 + db $10, $f8, $52, $80 + db $10, $00, $53, $80 + db $10, $08, $54, $80 + db $10, $10, $55, $80 + +.data_8e361 ; 8e361 + db $02 + db $f8, $fc, $00, $00 + db $00, $fc, $10, $00 + +.data_8e36a ; 8e36a + db $05 + db $f0, $18, $00, $00 + db $f0, $20, $01, $00 + db $f8, $10, $02, $00 + db $f8, $18, $03, $00 + db $00, $10, $04, $00 + +.data_8e37f ; 8e37f + db $01 + db $fc, $fc, $00, $06 + +.data_8e384 ; 8e384 + db $04 + db $f8, $f8, $00, $06 + db $f8, $00, $01, $06 + db $00, $f8, $02, $06 + db $00, $00, $03, $06 + +.data_8e395 ; 8e395 + db $04 + db $ff, $ff, $00, $00 + db $ff, $00, $00, $20 + db $00, $ff, $00, $40 + db $00, $00, $00, $60 + +.data_8e3a6 ; 8e3a6 + db $0a + db $ff, $00, $00, $00 + db $ff, $08, $01, $00 + db $ff, $10, $01, $00 + db $ff, $18, $01, $00 + db $ff, $20, $00, $20 + db $00, $00, $00, $40 + db $00, $08, $01, $40 + db $00, $10, $01, $40 + db $00, $18, $01, $40 + db $00, $20, $00, $60 + +.data_8e3cf ; 8e3cf + db $0f + db $ec, $f4, $00, $11 + db $ec, $fc, $01, $11 + db $ec, $04, $02, $11 + db $f4, $f4, $03, $11 + db $f4, $fc, $04, $11 + db $f4, $04, $05, $11 + db $fc, $f4, $06, $11 + db $fc, $fc, $07, $11 + db $fc, $04, $08, $11 + db $04, $f4, $09, $11 + db $04, $fc, $0a, $11 + db $04, $04, $0b, $11 + db $0c, $f4, $0c, $11 + db $0c, $fc, $0d, $11 + db $0c, $04, $0e, $11 + +.data_8e40c ; 8e40c + db $06 + db $f4, $f4, $00, $15 + db $f4, $fc, $02, $15 + db $f4, $04, $00, $35 + db $04, $f4, $04, $15 + db $04, $fc, $06, $15 + db $04, $04, $04, $35 + +.data_8e425 ; 8e425 + db $06 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $06, $16 + db $04, $fc, $08, $16 + db $04, $04, $0a, $16 + +.data_8e43e ; 8e43e + db $06 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $0c, $16 + db $04, $fc, $0e, $16 + db $04, $04, $10, $16 + +.data_8e457 ; 8e457 + db $06 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $12, $16 + db $04, $fc, $14, $16 + db $04, $04, $16, $16 + +.data_8e470 ; 8e470 + db $06 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $18, $16 + db $04, $fc, $1a, $16 + db $04, $04, $1c, $16 + +.data_8e489 ; 8e489 + db $06 + db $f4, $f4, $1e, $16 + db $f4, $fc, $20, $16 + db $f4, $04, $22, $16 + db $04, $f4, $24, $16 + db $04, $fc, $26, $16 + db $04, $04, $28, $16 + +.data_8e4a2 ; 8e4a2 + db $03 + db $f4, $fc, $00, $10 + db $fc, $fc, $00, $10 + db $04, $fc, $00, $10 + +.data_8e4af ; 8e4af + db $06 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $01, $00 + db $00, $18, $01, $00 + db $00, $20, $02, $00 + db $00, $28, $03, $00 + +.data_8e4c8 ; 8e4c8 + db $04 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $02, $00 + db $00, $18, $03, $00 + +.data_8e4d9 ; 8e4d9 + db $04 + db $f8, $f6, $00, $06 + db $f8, $02, $01, $06 + db $00, $f6, $02, $06 + db $00, $02, $03, $06 + +.data_8e4ea ; 8e4ea + db $04 + db $f8, $f4, $00, $06 + db $f8, $04, $01, $06 + db $00, $f4, $02, $06 + db $00, $04, $03, $06 + +.data_8e4fb ; 8e4fb + db $04 + db $f8, $f0, $00, $06 + db $f8, $08, $01, $06 + db $00, $f0, $02, $06 + db $00, $08, $03, $06 + +.data_8e50c ; 8e50c + db $13 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $e8, $f0, $06, $00 + db $f8, $f0, $08, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $0c, $00 + db $f8, $f8, $0e, $00 + db $08, $f8, $10, $00 + db $e8, $00, $12, $00 + db $f8, $00, $14, $00 + db $08, $00, $16, $00 + db $e8, $08, $18, $00 + db $f8, $08, $1a, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 + +.data_8e559 ; 8e559 + db $10 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $26, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $28, $00 + db $f8, $f8, $2a, $00 + db $08, $f8, $10, $00 + db $f8, $00, $2c, $00 + db $08, $00, $16, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 + +.data_8e59a ; 8e59a + db $0f + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $32, $00 + db $f8, $f0, $34, $00 + db $08, $f0, $36, $00 + db $f8, $f8, $38, $00 + db $08, $f8, $3a, $00 + db $f8, $00, $3c, $00 + db $08, $00, $3e, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 + +.data_8e5d7 ; 8e5d7 + db $11 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $40, $00 + db $08, $f0, $42, $00 + db $18, $f0, $44, $00 + db $f8, $f8, $46, $00 + db $08, $f8, $48, $00 + db $18, $f8, $4a, $00 + db $f8, $00, $4c, $00 + db $08, $00, $4e, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 + +.data_8e61c ; 8e61c + db $11 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $50, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $52, $00 + db $f8, $f8, $54, $00 + db $08, $f8, $10, $00 + db $e8, $00, $56, $00 + db $f8, $00, $2e, $00 + db $08, $00, $16, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 + +.data_8e661 ; 8e661 + db $01 + db $fc, $fc, $00, $11 + +BrokenStdGFXPointers: ; 23:6666 + dbbw $80, $01, .deleted + dbbw $80, $01, .deleted + dbbw $80, $01, .deleted + dbbw $80, $01, .deleted + dbbw $10, $37, .deleted + dbbw $10, $11, .deleted + dbbw $10, $39, .deleted + dbbw $10, $24, .deleted + dbbw $10, $21, .deleted +.deleted diff --git a/engine/sprite_anims.asm b/engine/sprite_anims.asm new file mode 100755 index 00000000..609cbc99 --- /dev/null +++ b/engine/sprite_anims.asm @@ -0,0 +1,1361 @@ +DoAnimFrame: ; 8d463 + ld hl, $2 ; 23:5463 + add hl, bc ; 23:5466 + ld e, [hl] ; 23:5467 + ld d, $0 ; 23:5468 + ld hl, .Jumptable ; 23:546a + add hl, de ; 23:546d + add hl, de ; 23:546e + ld a, [hli] ; 23:546f + ld h, [hl] ; 23:5470 + ld l, a ; 23:5471 + jp [hl] ; 23:5472 + +.Jumptable: ; 23:5473 + dw Function8d4c7 + dw Function8d4c8 + dw Function8d4df + dw Function8d510 + dw Function8d528 + dw Function8d54e + dw Function8d55d + dw Function8d5a2 + dw Function8d5bf + dw Function8d623 + dw Function8d66b + dw Function8d690 + dw Function8d702 + dw Function8d765 + dw Function8d7b1 + dw Function8d7ef + dw Function8d82d + dw Function8d897 + dw Function8d8b8 + dw Function8d8bf + dw Function8d909 + dw Function8d91a + dw Function8d928 + dw Function8d92f + dw Function8d971 + dw Function8d9d0 + dw Function8d9d7 + dw Function8d9ec + dw Function8d921 + dw Function8da1c + dw Function8da2a + dw Function8da23 + dw Function8da31 + dw Function8dad8 + dw Function8daf0 + dw Function8daf7 + dw Function8db25 + dw Function8db2c + dw Function8db5d + dw Function8db8f + dw Function8dbb4 + dw Function8d885 + +Function8d4c7: ; 8d4c7 + ret ; 23:54c7 + +Function8d4c8: ; 8d4c8 + ld a, [$cee0] ; 23:54c8 + ld hl, $0 ; 23:54cb + add hl, bc ; 23:54ce + cp [hl] ; 23:54cf + jr z, Function8d4df ; 23:54d0 + ld hl, $4 ; 23:54d2 + add hl, bc ; 23:54d5 + ld [hl], $10 ; 23:54d6 + ld hl, $7 ; 23:54d8 + add hl, bc ; 23:54db + ld [hl], $0 ; 23:54dc + ret ; 23:54de + +Function8d4df: ; 8d4df + ld hl, $4 ; 23:54df + add hl, bc ; 23:54e2 + ld [hl], $18 ; 23:54e3 + ld hl, $c ; 23:54e5 + add hl, bc ; 23:54e8 + ld a, [hl] ; 23:54e9 + ld d, a ; 23:54ea + inc [hl] ; 23:54eb + and $f ; 23:54ec + ret nz ; 23:54ee + ld hl, $d ; 23:54ef + add hl, bc ; 23:54f2 + ld e, [hl] ; 23:54f3 + ld hl, $7 ; 23:54f4 + add hl, bc ; 23:54f7 + ld a, d ; 23:54f8 + and $10 ; 23:54f9 + jr z, .asm_8d505 ; 23:54fb + ld a, e ; 23:54fd + and a ; 23:54fe + jr z, Function8d50c ; 23:54ff + cp $1 ; 23:5501 + jr z, Function8d508 ; 23:5503 +.asm_8d505 + xor a ; 23:5505 + ld [hl], a ; 23:5506 + ret ; 23:5507 + +Function8d508: ; 8d508 + ld a, $ff ; 23:5508 + ld [hl], a ; 23:550a + ret ; 23:550b + +Function8d50c: ; 8d50c + ld a, $fe ; 23:550c + ld [hl], a ; 23:550e + ret ; 23:550f + +Function8d510: ; 8d510 + ld a, [$cee0] ; 23:5510 + ld hl, $0 ; 23:5513 + add hl, bc ; 23:5516 + cp [hl] ; 23:5517 + jr z, Function8d521 ; 23:5518 + ld hl, $4 ; 23:551a + add hl, bc ; 23:551d + ld [hl], $10 ; 23:551e + ret ; 23:5520 + +Function8d521: ; 8d521 + ld hl, $4 ; 23:5521 + add hl, bc ; 23:5524 + ld [hl], $18 ; 23:5525 + ret ; 23:5527 + +Function8d528: ; 8d528 + ld hl, $d ; 23:5528 + add hl, bc ; 23:552b + ld a, [hl] ; 23:552c + inc [hl] ; 23:552d + cp $40 ; 23:552e + jr nc, Function8d54a ; 23:5530 + ld hl, $7 ; 23:5532 + add hl, bc ; 23:5535 + dec [hl] ; 23:5536 + ld hl, $c ; 23:5537 + add hl, bc ; 23:553a + ld a, [hl] ; 23:553b + add a, $2 ; 23:553c + ld [hl], a ; 23:553e + ld d, $8 ; 23:553f + call Function8dbf6 ; 23:5541 + ld hl, $6 ; 23:5544 + add hl, bc ; 23:5547 + ld [hl], a ; 23:5548 + ret ; 23:5549 + +Function8d54a: ; 8d54a + call DeinitializeSprite ; 23:554a + ret ; 23:554d + +Function8d54e: ; 8d54e + ld a, [$c5c7] ; 23:554e + ld hl, $5 ; 23:5551 + add hl, bc ; 23:5554 + add [hl] ; 23:5555 + cp $b0 ; 23:5556 + ret c ; 23:5558 + call DeinitializeSprite ; 23:5559 + ret ; 23:555c + +Function8d55d: ; 8d55d + call Function8dbdd ; 23:555d + jp [hl] ; 23:5560 + +; anonymous jumptable + dw Function8d565 + dw Function8d576 + +Function8d565: ; 8d565 + call Function8dbf0 ; 23:5565 + ld hl, $0 ; 23:5568 + add hl, bc ; 23:556b + ld a, [hl] ; 23:556c + and $3 ; 23:556d + swap a ; 23:556f + ld hl, $c ; 23:5571 + add hl, bc ; 23:5574 + ld [hl], a ; 23:5575 +Function8d576: ; 8d576 + ld de, $201 ; 23:5576 + ldh a, [$ffe9] ; 23:5579 + and a ; 23:557b + jr z, .asm_8d581 ; 23:557c + ld de, $402 ; 23:557e +.asm_8d581 + ld hl, $6 ; 23:5581 + add hl, bc ; 23:5584 + ld a, [hl] ; 23:5585 + cp $f0 ; 23:5586 + jr nc, Function8d59e ; 23:5588 + add d ; 23:558a + ld [hl], a ; 23:558b + ld hl, $c ; 23:558c + add hl, bc ; 23:558f + ld a, [hl] ; 23:5590 + add e ; 23:5591 + ld [hl], a ; 23:5592 + ld d, $8 ; 23:5593 + call Function8dbf6 ; 23:5595 + ld hl, $7 ; 23:5598 + add hl, bc ; 23:559b + ld [hl], a ; 23:559c + ret ; 23:559d + +Function8d59e: ; 8d59e + call DeinitializeSprite ; 23:559e + ret ; 23:55a1 + +Function8d5a2: ; 8d5a2 + ld hl, $4 ; 23:55a2 + add hl, bc ; 23:55a5 + ld a, [hl] ; 23:55a6 + cp $b0 ; 23:55a7 + jr nc, Function8d5bb ; 23:55a9 + inc [hl] ; 23:55ab + ld hl, $c ; 23:55ac + add hl, bc ; 23:55af + ld a, [hl] ; 23:55b0 + inc [hl] ; 23:55b1 + and $1 ; 23:55b2 + ret z ; 23:55b4 + ld hl, $5 ; 23:55b5 + add hl, bc ; 23:55b8 + inc [hl] ; 23:55b9 + ret ; 23:55ba + +Function8d5bb: ; 8d5bb + call DeinitializeSprite ; 23:55bb + ret ; 23:55be + +Function8d5bf: ; 8d5bf + call Function8dbdd ; 23:55bf + jp [hl] ; 23:55c2 + +; anonymous jumptable + dw Function8d5c9 + dw Function8d5e2 + dw Function8d5f3 + +Function8d5c9: ; 8d5c9 + call Function8d60b ; 23:55c9 + ret z ; 23:55cc + ld hl, $4 ; 23:55cd + add hl, bc ; 23:55d0 + ld a, [hl] ; 23:55d1 + cp $58 ; 23:55d2 + jr c, Function8d5d8 ; 23:55d4 + dec [hl] ; 23:55d6 + ret ; 23:55d7 + +Function8d5d8: ; 8d5d8 + call Function8dbf0 ; 23:55d8 + ld hl, $d ; 23:55db + add hl, bc ; 23:55de + ld [hl], $b0 ; 23:55df + ret ; 23:55e1 + +Function8d5e2: ; 8d5e2 + call Function8d60b ; 23:55e2 + ld hl, $d ; 23:55e5 + add hl, bc ; 23:55e8 + ld a, [hl] ; 23:55e9 + and a ; 23:55ea + jr z, Function8d5ef ; 23:55eb + dec [hl] ; 23:55ed + ret ; 23:55ee + +Function8d5ef: ; 8d5ef + call Function8dbf0 ; 23:55ef + ret ; 23:55f2 + +Function8d5f3: ; 8d5f3 + call Function8d60b ; 23:55f3 + ret z ; 23:55f6 + ld hl, $4 ; 23:55f7 + add hl, bc ; 23:55fa + ld a, [hl] ; 23:55fb + cp $d0 ; 23:55fc + jr z, Function8d602 ; 23:55fe + dec [hl] ; 23:5600 + ret ; 23:5601 + +Function8d602: ; 8d602 + call DeinitializeSprite ; 23:5602 + ld a, $1 ; 23:5605 + ld [$cb19], a ; 23:5607 + ret ; 23:560a + +Function8d60b: ; 8d60b + ld hl, $c ; 23:560b + add hl, bc ; 23:560e + ld a, [hl] ; 23:560f + inc [hl] ; 23:5610 + ld d, $4 ; 23:5611 + call Function8dbf6 ; 23:5613 + ld hl, $7 ; 23:5616 + add hl, bc ; 23:5619 + ld [hl], a ; 23:561a + ld hl, $c ; 23:561b + add hl, bc ; 23:561e + ld a, [hl] ; 23:561f + and $1 ; 23:5620 + ret ; 23:5622 + +Function8d623: ; 8d623 + call Function8dbdd ; 23:5623 + jp [hl] ; 23:5626 + +; anonymous jumptable + dw Function8d62b + dw Function8d63e + +Function8d62b: ; 8d62b + call Function8dbf0 ; 23:562b + ld hl, $0 ; 23:562e + add hl, bc ; 23:5631 + ld a, [hl] ; 23:5632 + and $1 ; 23:5633 + swap a ; 23:5635 + sla a ; 23:5637 + ld hl, $c ; 23:5639 + add hl, bc ; 23:563c + ld [hl], a ; 23:563d +Function8d63e: ; 8d63e + ld hl, $6 ; 23:563e + add hl, bc ; 23:5641 + ld a, [hl] ; 23:5642 + cp $80 ; 23:5643 + jr nc, Function8d667 ; 23:5645 + inc [hl] ; 23:5647 + ld d, $4 ; 23:5648 + ld hl, $c ; 23:564a + add hl, bc ; 23:564d + ld a, [hl] ; 23:564e + add a, $2 ; 23:564f + ld [hl], a ; 23:5651 + call Function8dbf6 ; 23:5652 + ld hl, $7 ; 23:5655 + add hl, bc ; 23:5658 + ld [hl], a ; 23:5659 + ld hl, $c ; 23:565a + add hl, bc ; 23:565d + and $2 ; 23:565e + ret z ; 23:5660 + ld hl, $5 ; 23:5661 + add hl, bc ; 23:5664 + dec [hl] ; 23:5665 + ret ; 23:5666 + +Function8d667: ; 8d667 + call DeinitializeSprite ; 23:5667 + ret ; 23:566a + +Function8d66b: ; 8d66b + call Function8dbdd ; 23:566b + jp [hl] ; 23:566e + +; anonymous jumptable + dw Function8d673 + dw Function8d680 + +Function8d673: ; 8d673 + ld a, [$cb19] ; 23:5673 + and a ; 23:5676 + ret z ; 23:5677 + call Function8dbf0 ; 23:5678 + ld a, $c ; 23:567b + call Function8d332 ; 23:567d +Function8d680: ; 8d680 + ld hl, $4 ; 23:5680 + add hl, bc ; 23:5683 + ld a, [hl] ; 23:5684 + cp $d0 ; 23:5685 + jr z, Function8d68c ; 23:5687 + dec [hl] ; 23:5689 + dec [hl] ; 23:568a + ret ; 23:568b + +Function8d68c: ; 8d68c + call DeinitializeSprite ; 23:568c + ret ; 23:568f + +Function8d690: ; 8d690 + call Function8dbdd ; 23:5690 + jp [hl] ; 23:5693 + +; anonymous jumptable + dw Function8d69c + dw Function8d6b6 + dw Function8d6c9 + dw Function8d6f2 +Function8d69c: + ld hl, $4 ; 23:569c + add hl, bc ; 23:569f + ld a, [hl] ; 23:56a0 + cp $80 ; 23:56a1 + jr z, Function8d6a7 ; 23:56a3 + dec [hl] ; 23:56a5 + ret ; 23:56a6 + +Function8d6a7: ; 8d6a7 + call Function8dbf0 ; 23:56a7 + ld hl, $d ; 23:56aa + add hl, bc ; 23:56ad + ld [hl], $30 ; 23:56ae + ld a, $e ; 23:56b0 + call Function8d332 ; 23:56b2 + ret ; 23:56b5 + +Function8d6b6: ; 8d6b6 + ld hl, $d ; 23:56b6 + add hl, bc ; 23:56b9 + ld a, [hl] ; 23:56ba + and a ; 23:56bb + jr z, Function8d6c0 ; 23:56bc + dec [hl] ; 23:56be + ret ; 23:56bf + +Function8d6c0: ; 8d6c0 + call Function8dbf0 ; 23:56c0 + ld a, $f ; 23:56c3 + call Function8d332 ; 23:56c5 + ret ; 23:56c8 + +Function8d6c9: ; 8d6c9 + ld hl, $c ; 23:56c9 + add hl, bc ; 23:56cc + ld a, [hl] ; 23:56cd + add a, $4 ; 23:56ce + ld [hl], a ; 23:56d0 + ld d, $4 ; 23:56d1 + call Function8dbf6 ; 23:56d3 + ld hl, $7 ; 23:56d6 + add hl, bc ; 23:56d9 + ld [hl], a ; 23:56da + ld hl, $4 ; 23:56db + add hl, bc ; 23:56de + ld a, [hl] ; 23:56df + cp $50 ; 23:56e0 + jr z, Function8d6e9 ; 23:56e2 + dec [hl] ; 23:56e4 + dec [hl] ; 23:56e5 + dec [hl] ; 23:56e6 + dec [hl] ; 23:56e7 + ret ; 23:56e8 + +Function8d6e9: ; 8d6e9 + ld a, $1 ; 23:56e9 + ld [$cb19], a ; 23:56eb + call Function8dbf0 ; 23:56ee + ret ; 23:56f1 + +Function8d6f2: ; 8d6f2 + ld hl, $4 ; 23:56f2 + add hl, bc ; 23:56f5 + ld a, [hl] ; 23:56f6 + cp $d0 ; 23:56f7 + jr z, Function8d6fe ; 23:56f9 + dec [hl] ; 23:56fb + dec [hl] ; 23:56fc + ret ; 23:56fd + +Function8d6fe: ; 8d6fe + call DeinitializeSprite ; 23:56fe + ret ; 23:5701 + +Function8d702: ; 8d702 + call Function8dbdd ; 23:5702 + jp [hl] ; 23:5705 + +; anonymous jumptable + dw Function8d70c + dw Function8d726 + dw Function8d73c + +Function8d70c: ; 8d70c + ld hl, $4 ; 23:570c + add hl, bc ; 23:570f + ld a, [hl] ; 23:5710 + cp $80 ; 23:5711 + jr z, Function8d717 ; 23:5713 + dec [hl] ; 23:5715 + ret ; 23:5716 + +Function8d717: ; 8d717 + call Function8dbf0 ; 23:5717 + ld hl, $d ; 23:571a + add hl, bc ; 23:571d + ld [hl], $30 ; 23:571e + ld a, $11 ; 23:5720 + call Function8d332 ; 23:5722 + ret ; 23:5725 + +Function8d726: ; 8d726 + ld hl, $d ; 23:5726 + add hl, bc ; 23:5729 + ld a, [hl] ; 23:572a + and a ; 23:572b + jr z, Function8d738 ; 23:572c + dec [hl] ; 23:572e + cp $20 ; 23:572f + ret nz ; 23:5731 + ld a, $10 ; 23:5732 + call Function8d332 ; 23:5734 + ret ; 23:5737 + +Function8d738: ; 8d738 + call Function8dbf0 ; 23:5738 + ret ; 23:573b + +Function8d73c: ; 8d73c + ld hl, $c ; 23:573c + add hl, bc ; 23:573f + ld a, [hl] ; 23:5740 + add a, $4 ; 23:5741 + ld [hl], a ; 23:5743 + ld d, $4 ; 23:5744 + call Function8dbf6 ; 23:5746 + ld hl, $7 ; 23:5749 + add hl, bc ; 23:574c + ld [hl], a ; 23:574d + ld hl, $4 ; 23:574e + add hl, bc ; 23:5751 + ld a, [hl] ; 23:5752 + cp $d0 ; 23:5753 + jr z, Function8d761 ; 23:5755 + dec [hl] ; 23:5757 + dec [hl] ; 23:5758 + ld a, [$cb19] ; 23:5759 + and a ; 23:575c + ret nz ; 23:575d + dec [hl] ; 23:575e + dec [hl] ; 23:575f + ret ; 23:5760 + +Function8d761: ; 8d761 + call DeinitializeSprite ; 23:5761 + ret ; 23:5764 + +Function8d765: ; 8d765 + call Function8dbdd ; 23:5765 + jp [hl] ; 23:5768 + +; anonymous jumptable + dw Function8d76d + dw Function8d786 + +Function8d76d: ; 8d76d + call Function8dbf0 ; 23:576d + ld hl, $0 ; 23:5770 + add hl, bc ; 23:5773 + ld a, [hl] ; 23:5774 + and $4 ; 23:5775 + sla a ; 23:5777 + ld e, a ; 23:5779 + ld a, [hl] ; 23:577a + and $3 ; 23:577b + swap a ; 23:577d + add e ; 23:577f + ld hl, $c ; 23:5780 + add hl, bc ; 23:5783 + ld [hl], a ; 23:5784 + ret ; 23:5785 + +Function8d786: ; 8d786 + ld hl, $4 ; 23:5786 + add hl, bc ; 23:5789 + dec [hl] ; 23:578a + dec [hl] ; 23:578b + dec [hl] ; 23:578c + dec [hl] ; 23:578d + ld hl, $d ; 23:578e + add hl, bc ; 23:5791 + ld a, [hl] ; 23:5792 + ld d, a ; 23:5793 + add a, $8 ; 23:5794 + ld [hl], a ; 23:5796 + ld hl, $c ; 23:5797 + add hl, bc ; 23:579a + ld a, [hl] ; 23:579b + push af ; 23:579c + push de ; 23:579d + call Function8dbf6 ; 23:579e + ld hl, $7 ; 23:57a1 + add hl, bc ; 23:57a4 + ld [hl], a ; 23:57a5 + pop de ; 23:57a6 + pop af ; 23:57a7 + call Function8dbfa ; 23:57a8 + ld hl, $6 ; 23:57ab + add hl, bc ; 23:57ae + ld [hl], a ; 23:57af + ret ; 23:57b0 + +Function8d7b1: ; 8d7b1 + call Function8dbdd ; 23:57b1 + jp [hl] ; 23:57b4 + +; anonymous jumptable + dw Function8d7b9 + dw Function8d7c9 + +Function8d7b9: ; 8d7b9 + call Function8dbf0 ; 23:57b9 + ld hl, $c ; 23:57bc + add hl, bc ; 23:57bf + ld [hl], $30 ; 23:57c0 + ld hl, $d ; 23:57c2 + add hl, bc ; 23:57c5 + ld [hl], $30 ; 23:57c6 + ret ; 23:57c8 + +Function8d7c9: ; 8d7c9 + ld hl, $c ; 23:57c9 + add hl, bc ; 23:57cc + ld a, [hl] ; 23:57cd + cp $3c ; 23:57ce + ret nc ; 23:57d0 + inc [hl] ; 23:57d1 + inc [hl] ; 23:57d2 + ld d, $90 ; 23:57d3 + call Function8dbf6 ; 23:57d5 + ld hl, $7 ; 23:57d8 + add hl, bc ; 23:57db + ld [hl], a ; 23:57dc + ld hl, $d ; 23:57dd + add hl, bc ; 23:57e0 + ld a, [hl] ; 23:57e1 + inc [hl] ; 23:57e2 + inc [hl] ; 23:57e3 + ld d, $90 ; 23:57e4 + call Function8dbfa ; 23:57e6 + ld hl, $6 ; 23:57e9 + add hl, bc ; 23:57ec + ld [hl], a ; 23:57ed + ret ; 23:57ee + +Function8d7ef: ; 8d7ef + call Function8dbdd ; 23:57ef + jp [hl] ; 23:57f2 + +; anonymous jumptable + dw Function8d7f7 + dw Function8d807 + +Function8d7f7: ; 8d7f7 + call Function8dbf0 ; 23:57f7 + ld hl, $c ; 23:57fa + add hl, bc ; 23:57fd + ld [hl], $30 ; 23:57fe + ld hl, $d ; 23:5800 + add hl, bc ; 23:5803 + ld [hl], $10 ; 23:5804 + ret ; 23:5806 + +Function8d807: ; 8d807 + ld hl, $c ; 23:5807 + add hl, bc ; 23:580a + ld a, [hl] ; 23:580b + cp $3c ; 23:580c + ret nc ; 23:580e + inc [hl] ; 23:580f + inc [hl] ; 23:5810 + ld d, $90 ; 23:5811 + call Function8dbf6 ; 23:5813 + ld hl, $7 ; 23:5816 + add hl, bc ; 23:5819 + ld [hl], a ; 23:581a + ld hl, $d ; 23:581b + add hl, bc ; 23:581e + ld a, [hl] ; 23:581f + inc [hl] ; 23:5820 + inc [hl] ; 23:5821 + ld d, $90 ; 23:5822 + call Function8dbfa ; 23:5824 + ld hl, $6 ; 23:5827 + add hl, bc ; 23:582a + ld [hl], a ; 23:582b + ret ; 23:582c + +Function8d82d: ; 8d82d + call Function8dbdd ; 23:582d + jp [hl] ; 23:5830 + +; anonymous jumptable + dw Function8d835 + dw Function8d84c + +Function8d835: ; 8d835 + call Function8dbf0 ; 23:5835 + ld hl, $0 ; 23:5838 + add hl, bc ; 23:583b + ld a, [hl] ; 23:583c + ld hl, $d ; 23:583d + add hl, bc ; 23:5840 + and $3 ; 23:5841 + ld [hl], a ; 23:5843 + inc [hl] ; 23:5844 + swap a ; 23:5845 + ld hl, $c ; 23:5847 + add hl, bc ; 23:584a + ld [hl], a ; 23:584b +Function8d84c: ; 8d84c + ld hl, $4 ; 23:584c + add hl, bc ; 23:584f + ld a, [hl] ; 23:5850 + cp $a4 ; 23:5851 + jr nc, Function8d881 ; 23:5853 + ld hl, $d ; 23:5855 + add hl, bc ; 23:5858 + add a, $4 ; 23:5859 + ld hl, $4 ; 23:585b + add hl, bc ; 23:585e + ld [hl], a ; 23:585f + ld hl, $5 ; 23:5860 + add hl, bc ; 23:5863 + inc [hl] ; 23:5864 + ld hl, $d ; 23:5865 + add hl, bc ; 23:5868 + ld a, [hl] ; 23:5869 + sla a ; 23:586a + sla a ; 23:586c + ld d, $2 ; 23:586e + ld hl, $c ; 23:5870 + add hl, bc ; 23:5873 + ld a, [hl] ; 23:5874 + add a, $3 ; 23:5875 + ld [hl], a ; 23:5877 + call Function8dbf6 ; 23:5878 + ld hl, $7 ; 23:587b + add hl, bc ; 23:587e + ld [hl], a ; 23:587f + ret ; 23:5880 + +Function8d881: ; 8d881 + call DeinitializeSprite ; 23:5881 + ret ; 23:5884 + +Function8d885: ; 8d885 + ld hl, $c ; 23:5885 + add hl, bc ; 23:5888 + ld a, [hl] ; 23:5889 + inc a ; 23:588a + ld [hl], a ; 23:588b + ld d, $2 ; 23:588c + call Function8dbf6 ; 23:588e + ld hl, $7 ; 23:5891 + add hl, bc ; 23:5894 + ld [hl], a ; 23:5895 + ret ; 23:5896 + +Function8d897: ; 8d897 + push bc ; 23:5897 + callba_hc $38, $4000 ; 23:5898 ; 23:589d + pop bc ; 23:589e + ld hl, $c704 ; 23:589f + ld a, [hl] ; 23:58a2 + and $3 ; 23:58a3 + ret z ; 23:58a5 + ld [hl], $0 ; 23:58a6 + ld e, a ; 23:58a8 + ld d, $0 ; 23:58a9 + ld hl, $58b4 ; 23:58ab + add hl, de ; 23:58ae + ld a, [hl] ; 23:58af + call Function8d332 ; 23:58b0 + ret ; 23:58b3 + +Function8d8b4: ; 8d8b4 + db $17 + db $18 + db $17 + db $19 + +Function8d8b8: ; 8d8b8 + callba_hc $38, $4000 ; 23:58b8 ; 23:58bd + ret ; 23:58be + +Function8d8bf: ; 8d8bf + call Function8dbdd ; 23:58bf + jp [hl] ; 23:58c2 + +; anonymous jumptable + dw Function8d8c7 + dw Function8d8d9 + +Function8d8c7: ; 8d8c7 + call Function8d8e1 ; 23:58c7 + ld a, [$c717] ; 23:58ca + ld hl, $4 ; 23:58cd + add hl, bc ; 23:58d0 + add [hl] ; 23:58d1 + ld [hl], a ; 23:58d2 + cp $c0 ; 23:58d3 + ret nc ; 23:58d5 + cp $a8 ; 23:58d6 + ret c ; 23:58d8 +Function8d8d9: + call DeinitializeSprite ; 23:58d9 + ld hl, $c5bc ; 23:58dc + dec [hl] ; 23:58df + ret ; 23:58e0 + +Function8d8e1: ; 8d8e1 + ld hl, $c ; 23:58e1 + add hl, bc ; 23:58e4 + ld a, [hl] ; 23:58e5 + inc [hl] ; 23:58e6 + and $1f ; 23:58e7 + srl a ; 23:58e9 + ld e, a ; 23:58eb + ld d, $0 ; 23:58ec + ld hl, Data_8d8f9 ; 23:58ee + add hl, de ; 23:58f1 + ld a, [hl] ; 23:58f2 + ld hl, $7 ; 23:58f3 + add hl, bc ; 23:58f6 + ld [hl], a ; 23:58f7 + ret ; 23:58f8 + +Data_8d8f9: ; 8d8f9 + db $04 + db $07 + db $09 + db $0a + db $09 + db $07 + db $04 + db $00 + db $fc + db $f9 + db $f7 + db $f6 + db $f7 + db $f9 + db $fc + db $00 + +Function8d909: ; 8d909 + ld a, [$c717] + ld hl, $4 + add hl, bc + add [hl] + ld [hl], a + cp $30 + ret nz + xor a + ld [$c717], a + ret ; 23:5919 + +Function8d91a: ; 8d91a + callab_hc $4, $5dfa ; 23:591a ; 23:591f + ret ; 23:5920 + +Function8d921: ; 8d921 + callab_hc $4, $648e ; 23:5921 ; 23:5926 + ret ; 23:5927 + +Function8d928: ; 8d928 + callab_hc $39, $4b20 ; 23:5928 ; 23:592d + ret ; 23:592e + +Function8d92f: ; 8d92f + ld hl, $c ; 23:592f + add hl, bc ; 23:5932 + ld a, [hl] ; 23:5933 + and a ; 23:5934 + jr z, Function8d968 ; 23:5935 + dec [hl] ; 23:5937 + dec [hl] ; 23:5938 + ld d, a ; 23:5939 + and $1f ; 23:593a + jr nz, .asm_8d943 ; 23:593c + ld hl, $d ; 23:593e + add hl, bc ; 23:5941 + dec [hl] ; 23:5942 +.asm_8d943 + ld hl, $b ; 23:5943 + add hl, bc ; 23:5946 + ld a, [hl] ; 23:5947 + push af ; 23:5948 + push de ; 23:5949 + call Function8dbf6 ; 23:594a + ld hl, $7 ; 23:594d + add hl, bc ; 23:5950 + ld [hl], a ; 23:5951 + pop de ; 23:5952 + pop af ; 23:5953 + call Function8dbfa ; 23:5954 + ld hl, $6 ; 23:5957 + add hl, bc ; 23:595a + ld [hl], a ; 23:595b + ld hl, $d ; 23:595c + add hl, bc ; 23:595f + ld a, [hl] ; 23:5960 + ld hl, $b ; 23:5961 + add hl, bc ; 23:5964 + add [hl] ; 23:5965 + ld [hl], a ; 23:5966 + ret ; 23:5967 + +Function8d968: ; 8d968 + ld a, $1 ; 23:5968 + ld [$ce64], a ; 23:596a + call DeinitializeSprite ; 23:596d + ret ; 23:5970 + +Function8d971: ; 8d971 + ld hl, $c ; 23:5971 + add hl, bc ; 23:5974 + ld a, [hli] ; 23:5975 + or [hl] ; 23:5976 + jr z, Function8d9cc ; 23:5977 + ld hl, $f ; 23:5979 + add hl, bc ; 23:597c + ld d, [hl] ; 23:597d + ld hl, $b ; 23:597e + add hl, bc ; 23:5981 + ld a, [hl] ; 23:5982 + push af ; 23:5983 + push de ; 23:5984 + call Function8dbf6 ; 23:5985 + ld hl, $7 ; 23:5988 + add hl, bc ; 23:598b + ld [hl], a ; 23:598c + pop de ; 23:598d + pop af ; 23:598e + call Function8dbfa ; 23:598f + ld hl, $6 ; 23:5992 + add hl, bc ; 23:5995 + ld [hl], a ; 23:5996 + ld hl, $c ; 23:5997 + add hl, bc ; 23:599a + ld e, [hl] ; 23:599b + inc hl ; 23:599c + ld d, [hl] ; 23:599d + ld hl, $e ; 23:599e + add hl, bc ; 23:59a1 + ld a, [hli] ; 23:59a2 + ld h, [hl] ; 23:59a3 + ld l, a ; 23:59a4 + add hl, de ; 23:59a5 + ld e, l ; 23:59a6 + ld d, h ; 23:59a7 + ld hl, $e ; 23:59a8 + add hl, bc ; 23:59ab + ld [hl], e ; 23:59ac + inc hl ; 23:59ad + ld [hl], d ; 23:59ae + ld hl, $c ; 23:59af + add hl, bc ; 23:59b2 + ld a, [hli] ; 23:59b3 + ld h, [hl] ; 23:59b4 + ld l, a ; 23:59b5 + ld de, $fff0 ; 23:59b6 + add hl, de ; 23:59b9 + ld e, l ; 23:59ba + ld d, h ; 23:59bb + ld hl, $c ; 23:59bc + add hl, bc ; 23:59bf + ld [hl], e ; 23:59c0 + inc hl ; 23:59c1 + ld [hl], d ; 23:59c2 + ld hl, $b ; 23:59c3 + add hl, bc ; 23:59c6 + ld a, [hl] ; 23:59c7 + xor $20 ; 23:59c8 + ld [hl], a ; 23:59ca + ret ; 23:59cb + +Function8d9cc: ; 8d9cc + call DeinitializeSprite ; 23:59cc + ret ; 23:59cf + +Function8d9d0: ; 8d9d0 + callab_hc $24, $7772 ; 23:59d0 ; 23:59d5 + ret ; 23:59d6 + +Function8d9d7: ; 8d9d7 + callab_hc $24, $7801 ; 23:59d7 ; 23:59dc + ld hl, $ce64 ; 23:59dd + ld a, [hl] ; 23:59e0 + cp $2 ; 23:59e1 + ret nz ; 23:59e3 + ld [hl], $3 ; 23:59e4 + ld a, $21 ; 23:59e6 + call Function8d332 ; 23:59e8 + ret ; 23:59eb + +Function8d9ec: ; 8d9ec + ld hl, $b ; 23:59ec + add hl, bc ; 23:59ef + ld a, [hl] ; 23:59f0 + dec [hl] ; 23:59f1 + ld e, a ; 23:59f2 + and $1 ; 23:59f3 + jr z, .asm_8da10 ; 23:59f5 + ld hl, $4 ; 23:59f7 + add hl, bc ; 23:59fa + ld a, [hl] ; 23:59fb + cp $78 ; 23:59fc + jr c, asm_8da0f ; 23:59fe + call DeinitializeSprite ; 23:5a00 + ld a, $4 ; 23:5a03 + ld [$ce64], a ; 23:5a05 + ld de, $1e ; 23:5a08 + call $3e24 ; 23:5a0b + ret ; 23:5a0e + +.asm_8da0f + inc [hl] ; 23:5a0f +.asm_8da10 + ld a, e ; 23:5a10 + ld d, $20 ; 23:5a11 + call Function8dbf6 ; 23:5a13 + ld hl, $7 ; 23:5a16 + add hl, bc ; 23:5a19 + ld [hl], a ; 23:5a1a + ret ; 23:5a1b + +Function8da1c: ; 8da1c + callab_hc $38, $4908 ; 23:5a1c ; 23:5a21 + ret ; 23:5a22 + +Function8da23: ; 8da23 + callab_hc $24, $4d0b ; 23:5a23 ; 23:5a28 + ret ; 23:5a29 + +Function8da2a: ; 8da2a + callab_hc $38, $69ae ; 23:5a2a ; 23:5a2f + ret ; 23:5a30 + +Function8da31: ; 8da31 + call Function8dbdd ; 23:5a31 + jp [hl] ; 23:5a34 + ld b, c ; 23:5a35 + ld e, d ; 23:5a36 + add e ; 23:5a37 + ld e, d ; 23:5a38 + ld d, e ; 23:5a39 + ld e, d ; 23:5a3a + ld h, [hl] ; 23:5a3b + ld e, d ; 23:5a3c + sub [hl] ; 23:5a3d + ld e, d ; 23:5a3e + call nc, $3e5a ; 23:5a3f + ld h, $cd ; 23:5a42 + ld [hld], a ; 23:5a44 + ld d, e ; 23:5a45 + ld hl, $b ; 23:5a46 + add hl, bc ; 23:5a49 + ld [hl], $2 ; 23:5a4a + ld hl, $c ; 23:5a4c + add hl, bc ; 23:5a4f + ld [hl], $20 ; 23:5a50 + ret ; 23:5a52 + +Function8da53: ; 8da53 + ld hl, $c ; 23:5a53 + add hl, bc ; 23:5a56 + ld a, [hl] ; 23:5a57 + and a ; 23:5a58 + jr z, Function8da5d ; 23:5a59 + dec [hl] ; 23:5a5b + ret ; 23:5a5c + +Function8da5d: ; 8da5d + call Function8dbf0 ; 23:5a5d + ld hl, $c ; 23:5a60 + add hl, bc ; 23:5a63 + ld [hl], $40 ; 23:5a64 + ld hl, $c ; 23:5a66 + add hl, bc ; 23:5a69 + ld a, [hl] ; 23:5a6a + cp $30 ; 23:5a6b + jr c, Function8da7b ; 23:5a6d + dec [hl] ; 23:5a6f + ld d, $28 ; 23:5a70 + call Function8dbf6 ; 23:5a72 + ld hl, $7 ; 23:5a75 + add hl, bc ; 23:5a78 + ld [hl], a ; 23:5a79 + ret ; 23:5a7a + +Function8da7b: ; 8da7b + ld de, $c ; 23:5a7b + call $3e24 ; 23:5a7e + jr Function8dad4 ; 23:5a81 + ld hl, $b ; 23:5a83 + add hl, bc ; 23:5a86 + ld [hl], $4 ; 23:5a87 + ld hl, $c ; 23:5a89 + add hl, bc ; 23:5a8c + ld [hl], $30 ; 23:5a8d + ld hl, $d ; 23:5a8f + add hl, bc ; 23:5a92 + ld [hl], $24 ; 23:5a93 + ret ; 23:5a95 + +Function8da96: ; 8da96 + ld hl, $d ; 23:5a96 + add hl, bc ; 23:5a99 + ld a, [hl] ; 23:5a9a + and a ; 23:5a9b + jr z, Function8daca ; 23:5a9c + ld d, a ; 23:5a9e + ld hl, $c ; 23:5a9f + add hl, bc ; 23:5aa2 + ld a, [hl] ; 23:5aa3 + call Sprites_Sine ; 23:5aa4 + ld hl, $7 ; 23:5aa7 + add hl, bc ; 23:5aaa + ld [hl], a ; 23:5aab + ld hl, $c ; 23:5aac + add hl, bc ; 23:5aaf + inc [hl] ; 23:5ab0 + ld a, [hl] ; 23:5ab1 + and $3f ; 23:5ab2 + ret nz ; 23:5ab4 + ld hl, $c ; 23:5ab5 + add hl, bc ; 23:5ab8 + ld [hl], $20 ; 23:5ab9 + ld hl, $d ; 23:5abb + add hl, bc ; 23:5abe + ld a, [hl] ; 23:5abf + sub a, $c ; 23:5ac0 + ld [hl], a ; 23:5ac2 + ld de, $20 ; 23:5ac3 + call $3e24 ; 23:5ac6 + ret ; 23:5ac9 + +Function8daca: ; 8daca + xor a ; 23:5aca + ld hl, $7 ; 23:5acb + add hl, bc ; 23:5ace + ld [hl], a ; 23:5acf + call Function8dbf0 ; 23:5ad0 + ret ; 23:5ad3 + +Function8dad4: ; 8dad4 + call DeinitializeSprite ; 23:5ad4 + ret ; 23:5ad7 + +Function8dad8: ; 8dad8 + ld hl, $4 ; 23:5ad8 + add hl, bc ; 23:5adb + ld a, [hl] ; 23:5adc + inc [hl] ; 23:5add + cp $b0 ; 23:5ade + jr nc, Function8daec ; 23:5ae0 + and $3 ; 23:5ae2 + ret nz ; 23:5ae4 + ld de, $3 ; 23:5ae5 + call $3e24 ; 23:5ae8 + ret ; 23:5aeb + +Function8daec: ; 8daec + call DeinitializeSprite ; 23:5aec + ret ; 23:5aef + +Function8daf0: ; 8daf0 + callab_hc $a, $54cf ; 23:5af0 ; 23:5af5 + ret ; 23:5af6 + +Function8daf7: ; 8daf7 + ld hl, $c ; 23:5af7 + add hl, bc ; 23:5afa + ld a, [hl] ; 23:5afb + cp $80 ; 23:5afc + jr nc, Function8db21 ; 23:5afe + ld d, a ; 23:5b00 + add a, $8 ; 23:5b01 + ld [hl], a ; 23:5b03 + ld hl, $b ; 23:5b04 + add hl, bc ; 23:5b07 + ld a, [hl] ; 23:5b08 + xor $20 ; 23:5b09 + ld [hl], a ; 23:5b0b + push af ; 23:5b0c + push de ; 23:5b0d + call Function8dbf6 ; 23:5b0e + ld hl, $7 ; 23:5b11 + add hl, bc ; 23:5b14 + ld [hl], a ; 23:5b15 + pop de ; 23:5b16 + pop af ; 23:5b17 + call Function8dbfa ; 23:5b18 + ld hl, $6 ; 23:5b1b + add hl, bc ; 23:5b1e + ld [hl], a ; 23:5b1f + ret ; 23:5b20 + +Function8db21: ; 8db21 + call DeinitializeSprite ; 23:5b21 + ret ; 23:5b24 + +Function8db25: ; 8db25 + callab_hc $24, $55ff ; 23:5b25 ; 23:5b2a + ret ; 23:5b2b + +Function8db2c: ; 8db2c + ld hl, $d ; 23:5b2c + add hl, bc ; 23:5b2f + ld e, [hl] ; 23:5b30 + inc hl ; 23:5b31 + ld d, [hl] ; 23:5b32 + ld hl, $80 ; 23:5b33 + add hl, de ; 23:5b36 + ld e, l ; 23:5b37 + ld d, h ; 23:5b38 + ld hl, $d ; 23:5b39 + add hl, bc ; 23:5b3c + ld [hl], e ; 23:5b3d + inc hl ; 23:5b3e + ld [hl], d ; 23:5b3f + ld hl, $c ; 23:5b40 + add hl, bc ; 23:5b43 + ld a, [hl] ; 23:5b44 + inc [hl] ; 23:5b45 + inc [hl] ; 23:5b46 + inc [hl] ; 23:5b47 + push af ; 23:5b48 + push de ; 23:5b49 + call Function8dbf6 ; 23:5b4a + ld hl, $7 ; 23:5b4d + add hl, bc ; 23:5b50 + ld [hl], a ; 23:5b51 + pop de ; 23:5b52 + pop af ; 23:5b53 + call Function8dbfa ; 23:5b54 + ld hl, $6 ; 23:5b57 + add hl, bc ; 23:5b5a + ld [hl], a ; 23:5b5b + ret ; 23:5b5c + +Function8db5d: ; 8db5d + ld hl, $5 ; 23:5b5d + add hl, bc ; 23:5b60 + ld a, [hl] ; 23:5b61 + and a ; 23:5b62 + ret z ; 23:5b63 + ld hl, $d ; 23:5b64 + add hl, bc ; 23:5b67 + ld a, [hl] ; 23:5b68 + inc [hl] ; 23:5b69 + cp $40 ; 23:5b6a + ret c ; 23:5b6c + ld hl, $5 ; 23:5b6d + add hl, bc ; 23:5b70 + dec [hl] ; 23:5b71 + dec [hl] ; 23:5b72 + ld hl, $f ; 23:5b73 + add hl, bc ; 23:5b76 + ld a, [hl] ; 23:5b77 + ld d, a ; 23:5b78 + cp $40 ; 23:5b79 + jr nc, .asm_8db80 ; 23:5b7b + add a, $8 ; 23:5b7d + ld [hl], a ; 23:5b7f +.asm_8db80 + ld hl, $e ; 23:5b80 + add hl, bc ; 23:5b83 + ld a, [hl] ; 23:5b84 + inc [hl] ; 23:5b85 + call Function8dbfa ; 23:5b86 + ld hl, $6 ; 23:5b89 + add hl, bc ; 23:5b8c + ld [hl], a ; 23:5b8d + ret ; 23:5b8e + +Function8db8f: ; 8db8f + ld hl, $4 ; 23:5b8f + add hl, bc ; 23:5b92 + ld a, [hl] ; 23:5b93 + cp $b8 ; 23:5b94 + jr nc, Function8dbb0 ; 23:5b96 + inc [hl] ; 23:5b98 + inc [hl] ; 23:5b99 + ld hl, $5 ; 23:5b9a + add hl, bc ; 23:5b9d + dec [hl] ; 23:5b9e + ld d, $40 ; 23:5b9f + ld hl, $c ; 23:5ba1 + add hl, bc ; 23:5ba4 + ld a, [hl] ; 23:5ba5 + inc [hl] ; 23:5ba6 + call Function8dbfa ; 23:5ba7 + ld hl, $6 ; 23:5baa + add hl, bc ; 23:5bad + ld [hl], a ; 23:5bae + ret ; 23:5baf + +Function8dbb0: ; 8dbb0 + call DeinitializeSprite ; 23:5bb0 + ret ; 23:5bb3 + +Function8dbb4: ; 8dbb4 + ld hl, $5 ; 23:5bb4 + add hl, bc ; 23:5bb7 + ld a, [hl] ; 23:5bb8 + cp $54 ; 23:5bb9 + ret z ; 23:5bbb + ld hl, $5 ; 23:5bbc + add hl, bc ; 23:5bbf + inc [hl] ; 23:5bc0 + inc [hl] ; 23:5bc1 + ld hl, $f ; 23:5bc2 + add hl, bc ; 23:5bc5 + ld a, [hl] ; 23:5bc6 + ld d, a ; 23:5bc7 + and a ; 23:5bc8 + jr z, .asm_8dbce ; 23:5bc9 + sub a, $2 ; 23:5bcb + ld [hl], a ; 23:5bcd +.asm_8dbce + ld hl, $e ; 23:5bce + add hl, bc ; 23:5bd1 + ld a, [hl] ; 23:5bd2 + inc [hl] ; 23:5bd3 + call Function8dbfa ; 23:5bd4 + ld hl, $6 ; 23:5bd7 + add hl, bc ; 23:5bda + ld [hl], a ; 23:5bdb + ret ; 23:5bdc + +Function8dbdd: ; 8dbdd + ld hl, [sp+$0] ; 23:5bdd + ld e, [hl] ; 23:5bdf + inc hl ; 23:5be0 + ld d, [hl] ; 23:5be1 + inc de ; 23:5be2 + ld hl, $b ; 23:5be3 + add hl, bc ; 23:5be6 + ld l, [hl] ; 23:5be7 + ld h, $0 ; 23:5be8 + add hl, hl ; 23:5bea + add hl, de ; 23:5beb + ld a, [hli] ; 23:5bec + ld h, [hl] ; 23:5bed + ld l, a ; 23:5bee + ret ; 23:5bef + +Function8dbf0: ; 8dbf0 + ld hl, $b ; 23:5bf0 + add hl, bc ; 23:5bf3 + inc [hl] ; 23:5bf4 + ret ; 23:5bf5 + +Function8dbf6: ; 8dbf6 + call Sprites_Sine ; 23:5bf6 + ret ; 23:5bf9 + +Function8dbfa: ; 8dbfa + call Sprites_Cosine ; 23:5bfa + ret ; 23:5bfd diff --git a/engine/sprites.asm b/engine/sprites.asm new file mode 100755 index 00000000..362fe827 --- /dev/null +++ b/engine/sprites.asm @@ -0,0 +1,645 @@ +ClearSpriteAnims: ; 8d174 + ld hl, $c508 ; 23:5174 + ld bc, $c1 ; 23:5177 +.loop + ld [hl], $0 ; 23:517a + inc hl ; 23:517c + dec bc ; 23:517d + ld a, c ; 23:517e + or b ; 23:517f + jr nz, .loop ; 23:5180 + ret ; 23:5182 + +PlaySpriteAnimationsAndDelayFrame: ; 8d182 + call PlaySpriteAnimations ; 23:5183 + call $32e ; DelayFrame ; 23:5186 + ret ; 23:5189 + +PlaySpriteAnimations: ; 8d189 + push hl ; 23:518a + push de ; 23:518b + push bc ; 23:518c + push af ; 23:518d + + ld a, $0 ; 23:518e + ld [$c5bd], a ; 23:5190 + call DoNextFrameForAllSprites ; 23:5193 + + pop af ; 23:5196 + pop bc ; 23:5197 + pop de ; 23:5198 + pop hl ; 23:5199 + ret ; 23:519a + +DoNextFrameForAllSprites: ; 8d19b + ld hl, $c51c ; 23:519b + ld e, $a ; 23:519e +.loop + ld a, [hl] ; 23:51a0 + and a ; 23:51a1 + jr z, .skip_capacity_check ; 23:51a2 + ld c, l ; 23:51a4 + ld b, h ; 23:51a5 + push hl ; 23:51a6 + push de ; 23:51a7 + call DoAnimFrame ; 23:51a8 + call UpdateAnimFrame ; 23:51ab + pop de ; 23:51ae + pop hl ; 23:51af + jr c, .cancel ; 23:51b0 +.skip_capacity_check + ld bc, $10 ; 23:51b2 + add hl, bc ; 23:51b5 + dec e ; 23:51b6 + jr nz, .loop ; 23:51b7 + ld a, [$c5bd] ; 23:51b9 + ld l, a ; 23:51bc + ld h, $c3 ; 23:51bd +.loop2 + ld a, l ; 23:51bf + cp $a0 ; 23:51c0 + jr nc, .cancel ; 23:51c2 + xor a ; 23:51c4 + ld [hli], a ; 23:51c5 + jr .loop2 ; 23:51c6 + +.cancel + ret ; 23:51c8 + +DoNextFrameForFirst16Sprites: ; 8d1c9 + ld hl, $c51c ; 23:51c9 + ld e, $a ; 23:51cc +.loop + ld a, [hl] ; 23:51ce + and a ; 23:51cf + jr z, .skip_capacity_check ; 23:51d0 + ld c, l ; 23:51d2 + ld b, h ; 23:51d3 + push hl ; 23:51d4 + push de ; 23:51d5 + call DoAnimFrame ; 23:51d6 + call UpdateAnimFrame ; 23:51d9 + pop de ; 23:51dc + pop hl ; 23:51dd + jr c, .cancel ; 23:51de +.skip_capacity_check + ld bc, $10 ; 23:51e0 + add hl, bc ; 23:51e3 + dec e ; 23:51e4 + jr nz, .loop ; 23:51e5 + ld a, [$c5bd] ; 23:51e7 + ld l, a ; 23:51ea + ld h, $c3 ; 23:51eb +.loop2 + ld a, l ; 23:51ed + cp $40 ; 23:51ee + jr nc, .cancel ; 23:51f0 + xor a ; 23:51f2 + ld [hli], a ; 23:51f3 + jr .loop2 ; 23:51f4 + +.cancel + ret ; 23:51f6 + +InitSpriteAnimStruct_:: ; 8d1f7 + push de ; 23:51f7 + push af ; 23:51f8 + ld hl, $c51c ; 23:51f9 + ld e, $a ; 23:51fc +.loop + ld a, [hl] ; 23:51fe + and a ; 23:51ff + jr z, .found ; 23:5200 + ld bc, $10 ; 23:5202 + add hl, bc ; 23:5205 + dec e ; 23:5206 + jr nz, .loop ; 23:5207 + pop af ; 23:5209 + pop de ; 23:520a + scf ; 23:520b + ret ; 23:520c + +.found ; 8d20d + ld c, l ; 23:520d + ld b, h ; 23:520e + ld hl, $c5bc ; 23:520f + inc [hl] ; 23:5212 + ld a, [hl] ; 23:5213 + and a ; 23:5214 + jr nz, .initialized ; 23:5215 + inc [hl] ; 23:5217 +.initialized + pop af ; 23:5218 + ld e, a ; 23:5219 + ld d, $0 ; 23:521a + ld hl, SpriteAnimSeqData ; 23:521c + add hl, de ; 23:521f + add hl, de ; 23:5220 + add hl, de ; 23:5221 + ld e, l ; 23:5222 + ld d, h ; 23:5223 + ld hl, $0 ; 23:5224 + add hl, bc ; 23:5227 + ld a, [$c5bc] ; 23:5228 + ld [hli], a ; 23:522b + ld a, [de] ; 23:522c + ld [hli], a ; 23:522d + inc de ; 23:522e + ld a, [de] ; 23:522f + ld [hli], a ; 23:5230 + inc de ; 23:5231 + ld a, [de] ; 23:5232 + call GetSpriteAnimVTile ; 23:5233 + ld [hli], a ; 23:5236 + pop de ; 23:5237 + ld hl, $4 ; 23:5238 + add hl, bc ; 23:523b + ld a, e ; 23:523c + ld [hli], a ; 23:523d + ld a, d ; 23:523e + ld [hli], a ; 23:523f + xor a ; 23:5240 + ld [hli], a ; 23:5241 + ld [hli], a ; 23:5242 + xor a ; 23:5243 + ld [hli], a ; 23:5244 + ld [hli], a ; 23:5245 + dec a ; 23:5246 + ld [hli], a ; 23:5247 + xor a ; 23:5248 + ld [hli], a ; 23:5249 + ld [hli], a ; 23:524a + ld [hli], a ; 23:524b + ld [hli], a ; 23:524c + ld [hl], a ; 23:524d + ld a, c ; 23:524e + ld [$c5c0], a ; 23:524f + ld a, b ; 23:5252 + ld [$c5c1], a ; 23:5253 + ret ; 23:5256 + +DeinitializeSprite: ; 8d257 + ld hl, $0 ; 23:5257 + add hl, bc ; 23:525a + ld [hl], $0 ; 23:525b + ret ; 23:525d + +UpdateAnimFrame: ; 8d25e + call InitSpriteAnimBuffer ; 23:525e + call GetSpriteAnimFrame ; 23:5261 + cp $fd ; 23:5264 + jr z, .done ; 23:5266 + cp $fc ; 23:5268 + jr z, .delete ; 23:526a + call GetFrameOAMPointer ; 23:526c + ld a, [$c5c2] ; 23:526f + add [hl] ; 23:5272 + ld [$c5c2], a ; 23:5273 + inc hl ; 23:5276 + ld a, [hli] ; 23:5277 + ld h, [hl] ; 23:5278 + ld l, a ; 23:5279 + push bc ; 23:527a + ld a, [$c5bd] ; 23:527b + ld e, a ; 23:527e + ld d, $c3 ; 23:527f + ld a, [hli] ; 23:5281 + ld c, a ; 23:5282 +.loop + ld a, [$c5c4] ; 23:5283 + ld b, a ; 23:5286 + ld a, [$c5c6] ; 23:5287 + add b ; 23:528a + ld b, a ; 23:528b + ld a, [$c5c7] ; 23:528c + add b ; 23:528f + ld b, a ; 23:5290 + call AddOrSubtractX ; 23:5291 + add b ; 23:5294 + ld [de], a ; 23:5295 + inc hl ; 23:5296 + inc de ; 23:5297 + ld a, [$c5c3] ; 23:5298 + ld b, a ; 23:529b + ld a, [$c5c5] ; 23:529c + add b ; 23:529f + ld b, a ; 23:52a0 + ld a, [$c5c8] ; 23:52a1 + add b ; 23:52a4 + ld b, a ; 23:52a5 + call AddOrSubtractY ; 23:52a6 + add b ; 23:52a9 + ld [de], a ; 23:52aa + inc hl ; 23:52ab + inc de ; 23:52ac + ld a, [$c5c2] ; 23:52ad + add [hl] ; 23:52b0 + ld [de], a ; 23:52b1 + inc hl ; 23:52b2 + inc de ; 23:52b3 + call GetSpriteOAMAttr ; 23:52b4 + ld [de], a ; 23:52b7 + inc hl ; 23:52b8 + inc de ; 23:52b9 + ld a, e ; 23:52ba + ld [$c5bd], a ; 23:52bb + cp $a0 ; 23:52be + jr nc, reached_the_end ; 23:52c0 + dec c ; 23:52c2 + jr nz, .loop ; 23:52c3 + pop bc ; 23:52c5 + jr .done ; 23:52c6 + +.delete + call DeinitializeSprite ; 23:52c8 +.done + and a ; 23:52cb + ret ; 23:52cc + +reached_the_end + pop bc ; 23:52cd + scf ; 23:52ce + ret ; 23:52cf + +AddOrSubtractX: ; 8d2d0 + push hl ; 23:52d0 + ld a, [hl] ; 23:52d1 + ld hl, $c5c0 ; 23:52d2 + bit 6, [hl] ; 23:52d5 + jr z, .ok ; 23:52d7 + add a, $8 ; 23:52d9 + xor $ff ; 23:52db + inc a ; 23:52dd +.ok + pop hl ; 23:52de + ret ; 23:52df + +AddOrSubtractY: ; 8d2e0 + push hl ; 23:52e0 + ld a, [hl] ; 23:52e1 + ld hl, $c5c0 ; 23:52e2 + bit 5, [hl] ; 23:52e5 + jr z, .ok ; 23:52e7 + add a, $8 ; 23:52e9 + xor $ff ; 23:52eb + inc a ; 23:52ed +.ok + pop hl ; 23:52ee + ret ; 23:52ef + +GetSpriteOAMAttr: ; 8d2f0 + ld a, [$c5c0] ; 23:52f0 + ld b, a ; 23:52f3 + ld a, [hl] ; 23:52f4 + xor b ; 23:52f5 + and $e0 ; 23:52f6 + ld b, a ; 23:52f8 + ld a, [hl] ; 23:52f9 + and $1f ; 23:52fa + or b ; 23:52fc + ret ; 23:52fd + +InitSpriteAnimBuffer: ; 8d2fe + xor a ; 23:52fe + ld [$c5c0], a ; 23:52ff + ld hl, $3 ; 23:5302 + add hl, bc ; 23:5305 + ld a, [hli] ; 23:5306 + ld [$c5c2], a ; 23:5307 + ld a, [hli] ; 23:530a + ld [$c5c3], a ; 23:530b + ld a, [hli] ; 23:530e + ld [$c5c4], a ; 23:530f + ld a, [hli] ; 23:5312 + ld [$c5c5], a ; 23:5313 + ld a, [hli] ; 23:5316 + ld [$c5c6], a ; 23:5317 + ret ; 23:531a + +GetSpriteAnimVTile: ; 8d31b + push hl ; 23:531b + push bc ; 23:531c + ld hl, $c508 ; 23:531d + ld b, a ; 23:5320 + ld c, $a ; 23:5321 +.loop + ld a, [hli] ; 23:5323 + cp b ; 23:5324 + jr z, .ok ; 23:5325 + inc hl ; 23:5327 + dec c ; 23:5328 + jr nz, .loop ; 23:5329 + xor a ; 23:532b + jr .done ; 23:532c + +.ok + ld a, [hl] ; 23:532e +.done + pop bc ; 23:532f + pop hl ; 23:5330 + ret ; 23:5331 + +Function8d332: ; 8d332 + ld hl, $1 ; 23:5332 + add hl, bc ; 23:5335 + ld [hl], a ; 23:5336 + ld hl, $8 ; 23:5337 + add hl, bc ; 23:533a + ld [hl], $0 ; 23:533b + ld hl, $a ; 23:533d + add hl, bc ; 23:5340 + ld [hl], $ff ; 23:5341 + ret ; 23:5343 + +GetSpriteAnimFrame: ; 8d344 +.loop + ld hl, $8 ; 23:5344 + add hl, bc ; 23:5347 + ld a, [hl] ; 23:5348 + and a ; 23:5349 + jr z, .next_frame ; 23:534a + dec [hl] ; 23:534c + call .GetPointer ; 23:534d + ld a, [hli] ; 23:5350 + push af ; 23:5351 + jr .okay ; 23:5352 + +.next_frame + ld hl, $a ; 23:5354 + add hl, bc ; 23:5357 + inc [hl] ; 23:5358 + call .GetPointer ; 23:5359 + ld a, [hli] ; 23:535c + cp $fe ; 23:535d + jr z, .restart ; 23:535f + cp $ff ; 23:5361 + jr z, .repeat_last ; 23:5363 + push af ; 23:5365 + ld a, [hl] ; 23:5366 + push hl ; 23:5367 + and $3f ; 23:5368 + ld hl, $9 ; 23:536a + add hl, bc ; 23:536d + add [hl] ; 23:536e + ld hl, $8 ; 23:536f + add hl, bc ; 23:5372 + ld [hl], a ; 23:5373 + pop hl ; 23:5374 +.okay + ld a, [hl] ; 23:5375 + and $c0 ; 23:5376 + srl a ; 23:5378 + ld [$c5c0], a ; 23:537a + pop af ; 23:537d + ret ; 23:537e + +.repeat_last ; 8d37f + xor a ; 23:537f + ld hl, $8 ; 23:5380 + add hl, bc ; 23:5383 + ld [hl], a ; 23:5384 + ld hl, $a ; 23:5385 + add hl, bc ; 23:5388 + dec [hl] ; 23:5389 + dec [hl] ; 23:538a + jr .loop ; 23:538b + +.restart + xor a ; 23:538d + ld hl, $8 ; 23:538e + add hl, bc ; 23:5391 + ld [hl], a ; 23:5392 + dec a ; 23:5393 + ld hl, $a ; 23:5394 + add hl, bc ; 23:5397 + ld [hl], a ; 23:5398 + jr .loop ; 23:5399 + +.GetPointer + ld hl, $1 ; 23:539b + add hl, bc ; 23:539e + ld e, [hl] ; 23:539f + ld d, $0 ; 23:53a0 + ld hl, SpriteAnimFrameData ; 23:53a2 + add hl, de ; 23:53a5 + add hl, de ; 23:53a6 + ld e, [hl] ; 23:53a7 + inc hl ; 23:53a8 + ld d, [hl] ; 23:53a9 + ld hl, $a ; 23:53aa + add hl, bc ; 23:53ad + ld l, [hl] ; 23:53ae + ld h, $0 ; 23:53af + add hl, hl ; 23:53b1 + add hl, de ; 23:53b2 + ret ; 23:53b3 + +GetFrameOAMPointer: ; 8d3b4 + ld e, a ; 23:53b4 + ld d, $0 ; 23:53b5 + ld hl, SpriteAnimOAMData ; 23:53b7 + add hl, de ; 23:53ba + add hl, de ; 23:53bb + add hl, de ; 23:53bc + ret ; 23:53bd + +BrokenGetStdGraphics: ; 8d3be + push hl ; 23:53be + ld l, a ; 23:53bf + ld h, $0 ; 23:53c0 + add hl, hl ; 23:53c2 + add hl, hl ; 23:53c3 + ld de, $6666 ; 23:53c4 + add hl, de ; 23:53c7 + ld c, [hl] ; 23:53c8 + inc hl ; 23:53c9 + ld b, [hl] ; 23:53ca + inc hl ; 23:53cb + ld e, [hl] ; 23:53cc + inc hl ; 23:53cd + ld d, [hl] ; 23:53ce + pop hl ; 23:53cf + push bc ; 23:53d0 + call $dfe ; Request2bpp ; 23:53d1 + pop bc ; 23:53d4 + ret ; 23:53d5 + +SpriteAnimSeqData: ; 8d3d6 + db $01, $01, $00 + db $04, $04, $00 + db $05, $05, $00 + db $06, $06, $00 + db $07, $07, $00 + db $08, $08, $00 + db $09, $09, $01 + db $0a, $09, $01 + db $0b, $0a, $01 + db $0d, $0b, $01 + db $10, $0c, $01 + db $12, $0d, $02 + db $13, $0e, $02 + db $14, $0f, $02 + db $15, $0e, $02 + db $16, $10, $00 + db $0d, $11, $01 + db $10, $12, $01 + db $09, $13, $01 + db $0b, $14, $01 + db $1a, $15, $05 + db $1c, $16, $06 + db $1d, $17, $06 + db $1e, $18, $06 + db $1f, $19, $07 + db $20, $1a, $07 + db $22, $1b, $07 + db $1a, $1c, $05 + db $23, $00, $00 + db $24, $1d, $08 + db $24, $1e, $08 + db $24, $1f, $08 + db $25, $20, $00 + db $27, $00, $00 + db $28, $21, $00 + db $29, $22, $00 + db $2a, $22, $00 + db $2b, $23, $00 + db $2c, $24, $00 + db $2d, $00, $00 + db $2f, $25, $00 + db $30, $00, $00 + db $2f, $27, $00 + db $31, $00, $00 + db $36, $29, $00 + db $37, $00, $00 + db $32, $23, $00 + +INCLUDE "engine/sprite_anims.asm" +INCLUDE "data/sprite_engine.asm" + +Sprites_Cosine: + add a, $10 ; 23:668a +Sprites_Sine: + and $3f ; 23:668c + cp $20 ; 23:668e + jr nc, .negative ; 23:6690 + call .ApplySineWave ; 23:6692 + ld a, h ; 23:6695 + ret ; 23:6696 + +.negative + and $1f ; 23:6697 + call .ApplySineWave ; 23:6699 + ld a, h ; 23:669c + xor $ff ; 23:669d + inc a ; 23:669f + ret ; 23:66a0 + +.ApplySineWave: + ld e, a ; 23:66a1 + ld a, d ; 23:66a2 + ld d, $0 ; 23:66a3 + ld hl, .sinewave ; 23:66a5 + add hl, de ; 23:66a8 + add hl, de ; 23:66a9 + ld e, [hl] ; 23:66aa + inc hl ; 23:66ab + ld d, [hl] ; 23:66ac + ld hl, $0 ; 23:66ad +.multiply + srl a ; 23:66b0 + jr nc, .even ; 23:66b2 + add hl, de ; 23:66b4 +.even + sla e ; 23:66b5 + rl d ; 23:66b7 + and a ; 23:66b9 + jr nz, .multiply ; 23:66ba + ret ; 23:66bc + +.sinewave ; 8e75d + sine_wave $100 + +AnimateEndOfExpBar: + ldh a, [$ffe9] ; 23:66fd + ld de, EndOfExpBarGFX ; 23:66ff + and a ; 23:6702 + jr z, .got_gfx ; 23:6703 + ld de, SGBEndOfExpBarGFX ; 23:6705 +.got_gfx + ld hl, VTiles0 tile $00 ; 23:6708 + lb bc, BANK(EndOfExpBarGFX), 1 ; 23:670b + call $dfe ; Request2bpp ; 23:670e + ld c, $8 ; 23:6711 + ld d, $0 ; 23:6713 +.loop + push bc ; 23:6715 + call .AnimateFrame ; 23:6716 + call $32e ; DelayFrame ; 23:6719 + pop bc ; 23:671c + inc d ; 23:671d + inc d ; 23:671e + dec c ; 23:671f + jr nz, .loop ; 23:6720 + call $30ff ; ClearSprites ; 23:6722 + ret ; 23:6725 + +.AnimateFrame + ld hl, $c300 ; 23:6726 + ld c, $8 ; 23:6729 +.anim_loop + ld a, c ; 23:672b + and a ; 23:672c + ret z ; 23:672d + dec c ; 23:672e + ld a, c ; 23:672f + sla a ; 23:6730 + sla a ; 23:6732 + sla a ; 23:6734 + push af ; 23:6736 + push de ; 23:6737 + push hl ; 23:6738 + call Sprites_Sine ; 23:6739 + pop hl ; 23:673c + pop de ; 23:673d + add a, $68 ; 23:673e + ld [hli], a ; 23:6740 + pop af ; 23:6741 + push de ; 23:6742 + push hl ; 23:6743 + call Sprites_Cosine ; 23:6744 + pop hl ; 23:6747 + pop de ; 23:6748 + add a, $54 ; 23:6749 + ld [hli], a ; 23:674b + ld a, $0 ; 23:674c + ld [hli], a ; 23:674e + ld a, $6 ; 23:674f + ld [hli], a ; 23:6751 + jr .anim_loop ; 23:6752 + +EndOfExpBarGFX: + dr $8e754, $8e764 + +SGBEndOfExpBarGFX: + dr $8e764, $8e774 + +ClearSpriteAnims2 + push hl ; 23:6774 + push de ; 23:6775 + push bc ; 23:6776 + push af ; 23:6777 + ld hl, $c508 ; 23:6778 + ld bc, $c1 ; 23:677b +.loop + ld [hl], $0 ; 23:677e + inc hl ; 23:6780 + dec bc ; 23:6781 + ld a, c ; 23:6782 + or b ; 23:6783 + jr nz, .loop ; 23:6784 + pop af ; 23:6786 + pop bc ; 23:6787 + pop de ; 23:6788 + pop hl ; 23:6789 + ret ; 23:678a +; 8e78a diff --git a/engine/sprites_dump.asm b/engine/sprites_dump.asm new file mode 100755 index 00000000..e69de29b --- /dev/null +++ b/engine/sprites_dump.asm diff --git a/extras b/extras -Subproject 9644160b87e706f3a6ae20fe09e9c469f628c06 +Subproject 0e1798937a4bf723813574281d0dc12c471c919 diff --git a/gbhw.asm b/gbhw.asm new file mode 100644 index 00000000..c55f1a9e --- /dev/null +++ b/gbhw.asm @@ -0,0 +1,130 @@ +; Graciously aped from http://nocash.emubase.de/pandocs.htm . + +; MBC3 +MBC3SRamEnable EQU $0000 +MBC3RomBank EQU $2000 +MBC3SRamBank EQU $4000 +MBC3LatchClock EQU $6000 +MBC3RTC EQU $a000 + +SRAM_DISABLE EQU $00 +SRAM_ENABLE EQU $0a + +NUM_SRAM_BANKS EQU 4 + +RTC_S EQU $08 ; Seconds 0-59 (0-3Bh) +RTC_M EQU $09 ; Minutes 0-59 (0-3Bh) +RTC_H EQU $0a ; Hours 0-23 (0-17h) +RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh) +RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag + ; Bit 0 Most significant bit of Day Counter (Bit 8) + ; Bit 6 Halt (0=Active, 1=Stop Timer) + ; Bit 7 Day Counter Carry Bit (1=Counter Overflow) + +; interrupt flags +VBLANK EQU 0 +LCD_STAT EQU 1 +TIMER EQU 2 +SERIAL EQU 3 +JOYPAD EQU 4 + +; OAM attribute flags +OAM_PALETTE EQU %111 +OAM_TILE_BANK EQU 3 +OAM_OBP_NUM EQU 4 ; Non CGB Mode Only +OAM_X_FLIP EQU 5 +OAM_Y_FLIP EQU 6 +OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) + + +; Hardware registers +rJOYP EQU $ff00 ; Joypad (R/W) +rSB EQU $ff01 ; Serial transfer data (R/W) +rSC EQU $ff02 ; Serial Transfer Control (R/W) +rSC_ON EQU 7 +rSC_CGB EQU 1 +rSC_CLOCK EQU 0 +rDIV EQU $ff04 ; Divider Register (R/W) +rTIMA EQU $ff05 ; Timer counter (R/W) +rTMA EQU $ff06 ; Timer Modulo (R/W) +rTAC EQU $ff07 ; Timer Control (R/W) +rTAC_ON EQU 2 +rTAC_4096_HZ EQU 0 +rTAC_262144_HZ EQU 1 +rTAC_65536_HZ EQU 2 +rTAC_16384_HZ EQU 3 +rIF EQU $ff0f ; Interrupt Flag (R/W) +rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W) +rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) +rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) +rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) +rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) +rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W) +rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) +rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) +rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) +rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W) +rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W) +rNR31 EQU $ff1b ; Channel 3 Sound Length +rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) +rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) +rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) +rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W) +rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) +rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) +rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) +rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W) +rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) +rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) +rNR52 EQU $ff26 ; Sound on/off +rWave_0 EQU $ff30 +rWave_1 EQU $ff31 +rWave_2 EQU $ff32 +rWave_3 EQU $ff33 +rWave_4 EQU $ff34 +rWave_5 EQU $ff35 +rWave_6 EQU $ff36 +rWave_7 EQU $ff37 +rWave_8 EQU $ff38 +rWave_9 EQU $ff39 +rWave_a EQU $ff3a +rWave_b EQU $ff3b +rWave_c EQU $ff3c +rWave_d EQU $ff3d +rWave_e EQU $ff3e +rWave_f EQU $ff3f +rLCDC EQU $ff40 ; LCD Control (R/W) +rSTAT EQU $ff41 ; LCDC Status (R/W) +rSCY EQU $ff42 ; Scroll Y (R/W) +rSCX EQU $ff43 ; Scroll X (R/W) +rLY EQU $ff44 ; LCDC Y-Coordinate (R) +rLYC EQU $ff45 ; LY Compare (R/W) +rDMA EQU $ff46 ; DMA Transfer and Start Address (W) +rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only +rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only +rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only +rWY EQU $ff4a ; Window Y Position (R/W) +rWX EQU $ff4b ; Window X Position minus 7 (R/W) +rLCDMODE EQU $ff4c +rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch +rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank +rBLCK EQU $ff50 +rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High +rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low +rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High +rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low +rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start +rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port +rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index +rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data +rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index +rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data +rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only +rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank +rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only +rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) +rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) +rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) +rIE EQU $ffff ; Interrupt Enable (R/W) diff --git a/gold.asm b/gold.asm new file mode 100644 index 00000000..eb45896b --- /dev/null +++ b/gold.asm @@ -0,0 +1,382 @@ +INCLUDE "constants.asm" + +SECTION "bank1", DATA, BANK[$1] + dr $4000, $8000, 0 + +SECTION "bank2", DATA, BANK[$2] + dr $8000, $c000, 0 + +SECTION "bank3", DATA, BANK[$3] + dr $c000, $10000, 0 + +SECTION "bank4", DATA, BANK[$4] + dr $10000, $14000, 0 + +SECTION "bank5", DATA, BANK[$5] + dr $14000, $18000, 0 + +SECTION "bank6", DATA, BANK[$6] + dr $18000, $1c000, 0 + +SECTION "bank7", DATA, BANK[$7] + dr $1c000, $20000, 0 + +SECTION "bank8", DATA, BANK[$8] + dr $20000, $24000, 0 + +SECTION "bank9", DATA, BANK[$9] + dr $24000, $28000, 0 + +SECTION "banka", DATA, BANK[$a] + dr $28000, $2c000, 0 + +SECTION "bankb", DATA, BANK[$b] + dr $2c000, $30000, 0 + +SECTION "bankc", DATA, BANK[$c] + dr $30000, $34000, 0 + +SECTION "bankd", DATA, BANK[$d] + dr $34000, $38000, 0 + +SECTION "banke", DATA, BANK[$e] + dr $38000, $3c000, 0 + +SECTION "bankf", DATA, BANK[$f] + dr $3c000, $40000, 0 + +SECTION "bank10", DATA, BANK[$10] + dr $40000, $44000, 0 + +SECTION "bank11", DATA, BANK[$11] + dr $44000, $48000, 0 + +SECTION "bank12", DATA, BANK[$12] + dr $48000, $4c000, 0 + +SECTION "bank13", DATA, BANK[$13] + dr $4c000, $50000, 0 + +SECTION "bank14", DATA, BANK[$14] + dr $50000, $54000, 0 + +SECTION "bank15", DATA, BANK[$15] + dr $54000, $58000, 0 + +SECTION "bank16", DATA, BANK[$16] + dr $58000, $5c000, 0 + +SECTION "bank17", DATA, BANK[$17] + dr $5c000, $60000, 0 + +SECTION "bank18", DATA, BANK[$18] + dr $60000, $64000, 0 + +SECTION "bank19", DATA, BANK[$19] + dr $64000, $68000, 0 + +SECTION "bank1a", DATA, BANK[$1a] + dr $68000, $6c000, 0 + +SECTION "bank1b", DATA, BANK[$1b] + dr $6c000, $70000, 0 + +SECTION "bank1c", DATA, BANK[$1c] + dr $70000, $74000, 0 + +SECTION "bank1d", DATA, BANK[$1d] + dr $74000, $78000, 0 + +SECTION "bank1e", DATA, BANK[$1e] + dr $78000, $7c000, 0 + +SECTION "bank1f", DATA, BANK[$1f] + dr $7c000, $80000, 0 + +SECTION "bank20", DATA, BANK[$20] + dr $80000, $84000, 0 + +SECTION "bank21", DATA, BANK[$21] + dr $84000, $88000, 0 + +SECTION "bank22", DATA, BANK[$22] + dr $88000, $8c000, 0 + +SECTION "bank23", DATA, BANK[$23] + dr $8c000, $90000, 0 + +SECTION "bank24", DATA, BANK[$24] + dr $90000, $94000, 0 + +SECTION "bank25", DATA, BANK[$25] + dr $94000, $98000, 0 + +SECTION "bank26", DATA, BANK[$26] + dr $98000, $9c000, 0 + +SECTION "bank27", DATA, BANK[$27] + dr $9c000, $a0000, 0 + +SECTION "bank28", DATA, BANK[$28] + dr $a0000, $a4000, 0 + +SECTION "bank29", DATA, BANK[$29] + dr $a4000, $a8000, 0 + +SECTION "bank2a", DATA, BANK[$2a] + dr $a8000, $ac000, 0 + +SECTION "bank2b", DATA, BANK[$2b] + dr $ac000, $b0000, 0 + +SECTION "bank2c", DATA, BANK[$2c] + dr $b0000, $b4000, 0 + +SECTION "bank2d", DATA, BANK[$2d] + dr $b4000, $b8000, 0 + +SECTION "bank2e", DATA, BANK[$2e] + dr $b8000, $bc000, 0 + +SECTION "bank2f", DATA, BANK[$2f] + dr $bc000, $c0000, 0 + +SECTION "bank30", DATA, BANK[$30] + dr $c0000, $c4000, 0 + +SECTION "bank31", DATA, BANK[$31] + dr $c4000, $c8000, 0 + +SECTION "bank32", DATA, BANK[$32] + dr $c8000, $cc000, 0 + +SECTION "bank33", DATA, BANK[$33] + dr $cc000, $d0000, 0 + +SECTION "bank34", DATA, BANK[$34] + dr $d0000, $d4000, 0 + +SECTION "bank35", DATA, BANK[$35] + dr $d4000, $d8000, 0 + +SECTION "bank36", DATA, BANK[$36] + dr $d8000, $dc000, 0 + +SECTION "bank37", DATA, BANK[$37] + dr $dc000, $e0000, 0 + +SECTION "bank38", DATA, BANK[$38] + dr $e0000, $e4000, 0 + +SECTION "bank39", DATA, BANK[$39] + dr $e4000, $e8000, 0 + +SECTION "bank3a", DATA, BANK[$3a] + dr $e8000, $ec000, 0 + +SECTION "bank3b", DATA, BANK[$3b] + dr $ec000, $f0000, 0 + +SECTION "bank3c", DATA, BANK[$3c] + dr $f0000, $f4000, 0 + +SECTION "bank3d", DATA, BANK[$3d] + dr $f4000, $f8000, 0 + +SECTION "bank3e", DATA, BANK[$3e] + dr $f8000, $fc000, 0 + +SECTION "bank3f", DATA, BANK[$3f] + dr $fc000, $100000, 0 + +SECTION "bank40", DATA, BANK[$40] + dr $100000, $104000, 0 + +SECTION "bank41", DATA, BANK[$41] + dr $104000, $108000, 0 + +SECTION "bank42", DATA, BANK[$42] + dr $108000, $10c000, 0 + +SECTION "bank43", DATA, BANK[$43] + dr $10c000, $110000, 0 + +SECTION "bank44", DATA, BANK[$44] + dr $110000, $114000, 0 + +SECTION "bank45", DATA, BANK[$45] + dr $114000, $118000, 0 + +SECTION "bank46", DATA, BANK[$46] + dr $118000, $11c000, 0 + +SECTION "bank47", DATA, BANK[$47] + dr $11c000, $120000, 0 + +SECTION "bank48", DATA, BANK[$48] + dr $120000, $124000, 0 + +SECTION "bank49", DATA, BANK[$49] + dr $124000, $128000, 0 + +SECTION "bank4a", DATA, BANK[$4a] + dr $128000, $12c000, 0 + +SECTION "bank4b", DATA, BANK[$4b] + dr $12c000, $130000, 0 + +SECTION "bank4c", DATA, BANK[$4c] + dr $130000, $134000, 0 + +SECTION "bank4d", DATA, BANK[$4d] + dr $134000, $138000, 0 + +SECTION "bank4e", DATA, BANK[$4e] + dr $138000, $13c000, 0 + +SECTION "bank4f", DATA, BANK[$4f] + dr $13c000, $140000, 0 + +SECTION "bank50", DATA, BANK[$50] + dr $140000, $144000, 0 + +SECTION "bank51", DATA, BANK[$51] + dr $144000, $148000, 0 + +SECTION "bank52", DATA, BANK[$52] + dr $148000, $14c000, 0 + +SECTION "bank53", DATA, BANK[$53] + dr $14c000, $150000, 0 + +SECTION "bank54", DATA, BANK[$54] + dr $150000, $154000, 0 + +SECTION "bank55", DATA, BANK[$55] + dr $154000, $158000, 0 + +SECTION "bank56", DATA, BANK[$56] + dr $158000, $15c000, 0 + +SECTION "bank57", DATA, BANK[$57] + dr $15c000, $160000, 0 + +SECTION "bank58", DATA, BANK[$58] + dr $160000, $164000, 0 + +SECTION "bank59", DATA, BANK[$59] + dr $164000, $168000, 0 + +SECTION "bank5a", DATA, BANK[$5a] + dr $168000, $16c000, 0 + +SECTION "bank5b", DATA, BANK[$5b] + dr $16c000, $170000, 0 + +SECTION "bank5c", DATA, BANK[$5c] + dr $170000, $174000, 0 + +SECTION "bank5d", DATA, BANK[$5d] + dr $174000, $178000, 0 + +SECTION "bank5e", DATA, BANK[$5e] + dr $178000, $17c000, 0 + +SECTION "bank5f", DATA, BANK[$5f] + dr $17c000, $180000, 0 + +SECTION "bank60", DATA, BANK[$60] + dr $180000, $184000, 0 + +SECTION "bank61", DATA, BANK[$61] + dr $184000, $188000, 0 + +SECTION "bank62", DATA, BANK[$62] + dr $188000, $18c000, 0 + +SECTION "bank63", DATA, BANK[$63] + dr $18c000, $190000, 0 + +SECTION "bank64", DATA, BANK[$64] + dr $190000, $194000, 0 + +SECTION "bank65", DATA, BANK[$65] + dr $194000, $198000, 0 + +SECTION "bank66", DATA, BANK[$66] + dr $198000, $19c000, 0 + +SECTION "bank67", DATA, BANK[$67] + dr $19c000, $1a0000, 0 + +SECTION "bank68", DATA, BANK[$68] + dr $1a0000, $1a4000, 0 + +SECTION "bank69", DATA, BANK[$69] + dr $1a4000, $1a8000, 0 + +SECTION "bank6a", DATA, BANK[$6a] + dr $1a8000, $1ac000, 0 + +SECTION "bank6b", DATA, BANK[$6b] + dr $1ac000, $1b0000, 0 + +SECTION "bank6c", DATA, BANK[$6c] + dr $1b0000, $1b4000, 0 + +SECTION "bank6d", DATA, BANK[$6d] + dr $1b4000, $1b8000, 0 + +SECTION "bank6e", DATA, BANK[$6e] + dr $1b8000, $1bc000, 0 + +SECTION "bank6f", DATA, BANK[$6f] + dr $1bc000, $1c0000, 0 + +SECTION "bank70", DATA, BANK[$70] + dr $1c0000, $1c4000, 0 + +SECTION "bank71", DATA, BANK[$71] + dr $1c4000, $1c8000, 0 + +SECTION "bank72", DATA, BANK[$72] + dr $1c8000, $1cc000, 0 + +SECTION "bank73", DATA, BANK[$73] + dr $1cc000, $1d0000, 0 + +SECTION "bank74", DATA, BANK[$74] + dr $1d0000, $1d4000, 0 + +SECTION "bank75", DATA, BANK[$75] + dr $1d4000, $1d8000, 0 + +SECTION "bank76", DATA, BANK[$76] + dr $1d8000, $1dc000, 0 + +SECTION "bank77", DATA, BANK[$77] + dr $1dc000, $1e0000, 0 + +SECTION "bank78", DATA, BANK[$78] + dr $1e0000, $1e4000, 0 + +SECTION "bank79", DATA, BANK[$79] + dr $1e4000, $1e8000, 0 + +SECTION "bank7a", DATA, BANK[$7a] + dr $1e8000, $1ec000, 0 + +SECTION "bank7b", DATA, BANK[$7b] + dr $1ec000, $1f0000, 0 + +SECTION "bank7c", DATA, BANK[$7c] + dr $1f0000, $1f4000, 0 + +SECTION "bank7d", DATA, BANK[$7d] + dr $1f4000, $1f8000, 0 + +SECTION "bank7e", DATA, BANK[$7e] + dr $1f8000, $1fc000, 0 + +SECTION "bank7f", DATA, BANK[$7f] + dr $1fc000, $200000, 0 diff --git a/home.asm b/home.asm deleted file mode 100644 index 3c11a9df..00000000 --- a/home.asm +++ /dev/null @@ -1,11602 +0,0 @@ -INCLUDE "includes.asm" - -SECTION "NULL", ROM0[0] -NULL:: - -INCLUDE "rst.asm" -INCLUDE "interrupts.asm" - -SECTION "Header", ROM0[$100] - -Start:: - nop - jp _Start - -SECTION "Home", ROM0[$150] -Reset:: - push af ; 150 - push bc ; 151 - push de ; 152 - push hl ; 153 - ldh a, [hMenuReturn] ; 154 - and $7 ; 156 - ld e, a ; 158 - ld d, $0 ; 159 - ld hl, $170 ; 15b - add hl, de ; 15e - add hl, de ; 15f - ld a, [hli] ; 160 - ld h, [hl] ; 161 - ld l, a ; 162 - ld de, .return ; 163 - push de ; 166 - jp [hl] ; 167 -.return - call Function1efa ; 168 - pop hl ; 16b - pop de ; 16c - pop bc ; 16d - pop af ; 16e - reti ; 16f -; 170 - -Function170:: - add b ; 170 - ld bc, $1f4 ; 171 - or b ; 174 - ld [bc], a ; 175 - call nz, Function5502 ; 176 - ld [bc], a ; 179 - ld a, b ; 17a - ld [bc], a ; 17b - add b ; 17c - ld bc, $180 ; 17d - ld hl, $ff9d ; 180 - inc [hl] ; 183 - ldh a, [rDIV] ; 184 - ld b, a ; 186 - ldh a, [hRandomAdd] ; 187 - adc b ; 189 - ldh [hRandomAdd], a ; 18a - ldh a, [rDIV] ; 18c - ld b, a ; 18e - ldh a, [$ffe4] ; 18f - sbc b ; 191 - ldh [$ffe4], a ; 192 - ldh a, [hROMBank] ; 194 - ld [$d155], a ; 196 - ldh a, [$ffd1] ; 199 - ldh [$ff43], a ; 19b - ldh a, [$ffd2] ; 19d - ldh [$ff42], a ; 19f - ldh a, [$ffd4] ; 1a1 - ldh [$ff4a], a ; 1a3 - ldh a, [$ffd3] ; 1a5 - ldh [$ff4b], a ; 1a7 - call Function1458 ; 1a9 - jr c, Function1c2 ; 1ac - call Functionbdf ; 1ae - jr c, Function1c2 ; 1b1 - call Function14bb ; 1b3 - call Function15d0 ; 1b6 - call Function1579 ; 1b9 - call Function162b ; 1bc - call Function1642 ; 1bf - ldh a, [$ffda] ; 1c2 - and a ; 1c4 - jr nz, Function1ca ; 1c5 - call Functionff80 ; 1c7 - xor a ; 1ca - ld [$ceea], a ; 1cb - ld a, [$cee8] ; 1ce - and a ; 1d1 - jr z, Function1d8 ; 1d2 - dec a ; 1d4 - ld [$cee8], a ; 1d5 - ld a, [$cee9] ; 1d8 - and a ; 1db - jr z, Function1e2 ; 1dc - dec a ; 1de - ld [$cee9], a ; 1df - call Function8e6 ; 1e2 - ld a, $3a ; 1e5 - rst Bankswitch ; 1e7 - call Function405c ; 1e8 - ld a, [$d155] ; 1eb - rst Bankswitch ; 1ee - ldh a, [$ff9a] ; 1ef - ldh [$ffe5], a ; 1f1 - ret ; 1f3 -; 1f4 - -Function1f4:: - ldh a, [hROMBank] ; 1f4 - ld [$d155], a ; 1f6 - ldh a, [$ffd1] ; 1f9 - ldh [$ff43], a ; 1fb - ldh a, [$ffd2] ; 1fd - ldh [$ff42], a ; 1ff - call Function23e ; 201 - jr c, Function20f ; 204 - call Function14bb ; 206 - call Function15d0 ; 209 - call Functionff80 ; 20c - ldh a, [$ffc8] ; 20f - or a ; 211 - jr z, Function219 ; 212 - ld c, a ; 214 - ld a, [$c700] ; 215 - ld [$ff00+c], a ; 218 - xor a ; 219 - ld [$ceea], a ; 21a - ldh a, [$ff0f] ; 21d - ld b, a ; 21f - xor a ; 220 - ldh [$ff0f], a ; 221 - ld a, $2 ; 223 - ldh [$ffff], a ; 225 - ld a, b ; 227 - and $8 ; 228 - or $2 ; 22a - ldh [$ff0f], a ; 22c - ei ; 22e - ld a, $3a ; 22f - rst Bankswitch ; 231 - call Function405c ; 232 - ld a, [$d155] ; 235 - rst Bankswitch ; 238 - ld a, $1f ; 239 - ldh [$ffff], a ; 23b - ret ; 23d -; 23e - -Function23e:: - ldh a, [$ffe8] ; 23e - and a ; 240 - jp nz, Functionbe3 ; 241 - ld a, [$cf43] ; 244 - ldh [$ff47], a ; 247 - ld a, [$cf44] ; 249 - ldh [$ff48], a ; 24c - ld a, [$cf45] ; 24e - ldh [$ff49], a ; 251 - and a ; 253 - ret ; 254 -; 255 - -Function255:: - ldh a, [hROMBank] ; 255 - ld [$d155], a ; 257 - call Function14bb ; 25a - call Function15d0 ; 25d - call Functionff80 ; 260 - call Function8e6 ; 263 - xor a ; 266 - ld [$ceea], a ; 267 - call Function1ebf ; 26a - ld a, $3a ; 26d - rst Bankswitch ; 26f - call Function405c ; 270 - ld a, [$d155] ; 273 - rst Bankswitch ; 276 - ret ; 277 -; 278 - -Function278:: - ldh a, [hROMBank] ; 278 - ld [$d155], a ; 27a - ldh a, [$ffd1] ; 27d - ldh [$ff43], a ; 27f - call Functionbdf ; 281 - jr c, Function28c ; 284 - call Function14bb ; 286 - call Function15d0 ; 289 - xor a ; 28c - ld [$ceea], a ; 28d - call Function8e6 ; 290 - xor a ; 293 - ldh [$ff0f], a ; 294 - ld a, $2 ; 296 - ldh [$ffff], a ; 298 - ldh [$ff0f], a ; 29a - ei ; 29c - ld a, $3a ; 29d - rst Bankswitch ; 29f - call Function405c ; 2a0 - ld a, [$d155] ; 2a3 - rst Bankswitch ; 2a6 - di ; 2a7 - xor a ; 2a8 - ldh [$ff0f], a ; 2a9 - ld a, $1f ; 2ab - ldh [$ffff], a ; 2ad - ret ; 2af -; 2b0 - -Function2b0:: - ldh a, [hROMBank] ; 2b0 - ld [$d155], a ; 2b2 - ld a, $3a ; 2b5 - rst Bankswitch ; 2b7 - call Function405c ; 2b8 - ld a, [$d155] ; 2bb - rst Bankswitch ; 2be - xor a ; 2bf - ld [$ceea], a ; 2c0 - ret ; 2c3 -; 2c4 - -Function2c4:: - ldh a, [$ff9d] ; 2c4 - inc a ; 2c6 - ldh [$ff9d], a ; 2c7 - ldh a, [rDIV] ; 2c9 - ld b, a ; 2cb - ldh a, [hRandomAdd] ; 2cc - adc b ; 2ce - ldh [hRandomAdd], a ; 2cf - ldh a, [rDIV] ; 2d1 - ld b, a ; 2d3 - ldh a, [$ffe4] ; 2d4 - sbc b ; 2d6 - ldh [$ffe4], a ; 2d7 - call Function8e6 ; 2d9 - ldh a, [hROMBank] ; 2dc - ld [$d155], a ; 2de - ldh a, [$ffd1] ; 2e1 - ldh [$ff43], a ; 2e3 - ldh a, [$ffd2] ; 2e5 - ldh [$ff42], a ; 2e7 - ldh a, [$ffd4] ; 2e9 - ldh [$ff4a], a ; 2eb - ldh a, [$ffd3] ; 2ed - ldh [$ff4b], a ; 2ef - call Function14bb ; 2f1 - call Function1458 ; 2f4 - call Function15d0 ; 2f7 - call Function1579 ; 2fa - call Function162b ; 2fd - call Functionff80 ; 300 - xor a ; 303 - ld [$ceea], a ; 304 - ld a, [$cee9] ; 307 - and a ; 30a - jr z, Function311 ; 30b - dec a ; 30d - ld [$cee9], a ; 30e - xor a ; 311 - ldh [$ff0f], a ; 312 - ld a, $2 ; 314 - ldh [$ffff], a ; 316 - ldh [$ff0f], a ; 318 - ei ; 31a - ld a, $3a ; 31b - rst Bankswitch ; 31d - call Function405c ; 31e - ld a, [$d155] ; 321 - rst Bankswitch ; 324 - di ; 325 - xor a ; 326 - ldh [$ff0f], a ; 327 - ld a, $1f ; 329 - ldh [$ffff], a ; 32b - ret ; 32d -; 32e - -Function32e:: - ld a, $1 ; 32e - ld [$ceea], a ; 330 - halt ; 333 - nop ; 334 - ld a, [$ceea] ; 335 - and a ; 338 - jr nz, Function333 ; 339 - ret ; 33b -; 33c - -Function33c:: - call Function32e ; 33c - dec c ; 33f - jr nz, Function33c ; 340 - ret ; 342 -; 343 - -Function343:: - ld a, [$c1cd] ; 343 - cp $0 ; 346 - ret z ; 348 - call Function467 ; 349 - ld a, [$cfe5] ; 34c - bit 0, a ; 34f - ret z ; 351 - ld hl, $4366 ; 352 - ld a, $23 ; 355 - rst FarCall ; 357 - ret ; 358 -; 359 - -Function359:: - ld hl, $4397 ; 359 - ld a, $23 ; 35c - rst FarCall ; 35e - ret ; 35f -; 360 - -Function360:: - ld a, [$d568] ; 360 - ld b, a ; 363 - ld hl, $40c ; 364 - ld a, l ; 367 - sub b ; 368 - ld l, a ; 369 - jr nc, Function36d ; 36a - dec h ; 36c - ld a, [hli] ; 36d - ldh [$ff47], a ; 36e - ld a, [hli] ; 370 - ldh [$ff48], a ; 371 - ld a, [hli] ; 373 - ldh [$ff49], a ; 374 - ret ; 376 -; 377 - -Function377:: - ldh a, [$ffe8] ; 377 - and a ; 379 - jr z, Function383 ; 37a - ld hl, $3eb ; 37c - ld b, $4 ; 37f - jr Function39b ; 381 -; 383 - -Function383:: - ld hl, $403 ; 383 - ld b, $4 ; 386 - jr Function39b ; 388 -; 38a - -Function38a:: - ldh a, [$ffe8] ; 38a - and a ; 38c - jr z, Function396 ; 38d - ld hl, $3fa ; 38f - ld b, $3 ; 392 - jr Function39b ; 394 -; 396 - -Function396:: - ld hl, $412 ; 396 - ld b, $3 ; 399 - push de ; 39b - ld a, [hli] ; 39c - call Functionc61 ; 39d - ld a, [hli] ; 3a0 - ld e, a ; 3a1 - ld a, [hli] ; 3a2 - ld d, a ; 3a3 - call Functionc83 ; 3a4 - ld c, $8 ; 3a7 - call Function33c ; 3a9 - pop de ; 3ac - dec b ; 3ad - jr nz, Function39b ; 3ae - ret ; 3b0 -; 3b1 - -Function3b1:: - ldh a, [$ffe8] ; 3b1 - and a ; 3b3 - jr z, Function3bd ; 3b4 - ld hl, $3f6 ; 3b6 - ld b, $4 ; 3b9 - jr Function3d5 ; 3bb -; 3bd - -Function3bd:: - ld hl, $40e ; 3bd - ld b, $4 ; 3c0 - jr Function3d5 ; 3c2 -; 3c4 - -Function3c4:: - ldh a, [$ffe8] ; 3c4 - and a ; 3c6 - jr z, Function3d0 ; 3c7 - ld hl, $3ff ; 3c9 - ld b, $3 ; 3cc - jr Function3d5 ; 3ce -; 3d0 - -Function3d0:: - ld hl, $417 ; 3d0 - ld b, $3 ; 3d3 - push de ; 3d5 - ld a, [hld] ; 3d6 - ld d, a ; 3d7 - ld a, [hld] ; 3d8 - ld e, a ; 3d9 - call Functionc83 ; 3da - ld a, [hld] ; 3dd - call Functionc61 ; 3de - ld c, $8 ; 3e1 - call Function33c ; 3e3 - pop de ; 3e6 - dec b ; 3e7 - jr nz, Function3d5 ; 3e8 - ret ; 3ea -; 3eb - -Function3eb:: - rst $38 ; 3eb - rst $38 ; 3ec - rst $38 ; 3ed - cp $fe ; 3ee - cp $f9 ; 3f0 - ld sp, hl ; 3f2 - ld sp, hl ; 3f3 - - ; 3f4 - - ; 3f5 - - ; 3f6 - - ; 3f7 - - ; 3f8 - - ; 3f9 - sub b ; 3fa - sub b ; 3fb - sub b ; 3fc - ld b, b ; 3fd - ld b, b ; 3fe - ld b, b ; 3ff - nop ; 400 - nop ; 401 - nop ; 402 - rst $38 ; 403 - rst $38 ; 404 - rst $38 ; 405 - cp $fe ; 406 - ld hl, [sp+$f9] ; 408 - - ; 40a - - ; 40b - - ; 40c - ret nc ; 40d - ldh [$ffe4], a ; 40e - ret nc ; 410 - ldh [$ff90], a ; 411 - add b ; 413 - sub b ; 414 - ld b, b ; 415 - ld b, b ; 416 - ld b, b ; 417 - nop ; 418 - nop ; 419 - nop ; 41a - push af ; 41b - ldh a, [$ffc8] ; 41c - and a ; 41e - jr z, Function430 ; 41f - push hl ; 421 - ldh a, [$ff44] ; 422 - ld l, a ; 424 - ld h, $c7 ; 425 - ld h, [hl] ; 427 - ldh a, [$ffc8] ; 428 - ld l, a ; 42a - ld a, h ; 42b - ld h, $ff ; 42c - ld [hl], a ; 42e - pop hl ; 42f - pop af ; 430 - reti ; 431 -; 432 - -Function432:: - ldh a, [$ff40] ; 432 - bit 7, a ; 434 - ret z ; 436 - xor a ; 437 - ldh [$ff0f], a ; 438 - ldh a, [$ffff] ; 43a - ld b, a ; 43c - res 0, a ; 43d - ldh [$ffff], a ; 43f - ldh a, [$ff44] ; 441 - cp $91 ; 443 - jr nz, Function441 ; 445 - ldh a, [$ff40] ; 447 - and $7f ; 449 - ldh [$ff40], a ; 44b - xor a ; 44d - ldh [$ff0f], a ; 44e - ld a, b ; 450 - ldh [$ffff], a ; 451 - ret ; 453 -; 454 - -Function454:: - ldh a, [$ff40] ; 454 - set 7, a ; 456 - ldh [$ff40], a ; 458 - ret ; 45a -; 45b - -Function45b:: - reti ; 45b - ld a, $0 ; 45c - ld [MBC3LatchClock], a ; 45e - ld a, $1 ; 461 - ld [MBC3LatchClock], a ; 463 - ret ; 466 -; 467 - -Function467:: - call Function477 ; 467 - call Function4a8 ; 46a - call Function4de ; 46d - ld a, $5 ; 470 - ld hl, $4032 ; 472 - rst FarCall ; 475 - ret ; 476 -; 477 - -Function477:: - ld a, $a ; 477 - ld [MBC3SRamEnable], a ; 479 - call Function45c ; 47c - ld hl, $4000 ; 47f - ld de, $a000 ; 482 - ld [hl], $8 ; 485 - ld a, [de] ; 487 - and $3f ; 488 - ldh [$ff93], a ; 48a - ld [hl], $9 ; 48c - ld a, [de] ; 48e - and $3f ; 48f - ldh [$ff92], a ; 491 - ld [hl], $a ; 493 - ld a, [de] ; 495 - and $1f ; 496 - ldh [$ff91], a ; 498 - ld [hl], $b ; 49a - ld a, [de] ; 49c - ldh [$ff90], a ; 49d - ld [hl], $c ; 49f - ld a, [de] ; 4a1 - ldh [$ff8f], a ; 4a2 - call CloseSRAM ; 4a4 - ret ; 4a7 -; 4a8 - -Function4a8:: - ldh a, [$ff8f] ; 4a8 - bit 0, a ; 4aa - jr z, Function4c4 ; 4ac - res 0, a ; 4ae - ldh [$ff8f], a ; 4b0 - ldh a, [$ff90] ; 4b2 - sub a, $8c ; 4b4 - jr nc, Function4b4 ; 4b6 - sub a, $8c ; 4b8 - jr nc, Function4b8 ; 4ba - add a, $8c ; 4bc - ldh [$ff90], a ; 4be - ld a, $40 ; 4c0 - jr Function4d4 ; 4c2 -; 4c4 - -Function4c4:: - ldh a, [$ff90] ; 4c4 - cp $8c ; 4c6 - jr c, Function4db ; 4c8 - sub a, $8c ; 4ca - jr nc, Function4ca ; 4cc - add a, $8c ; 4ce - ldh [$ff90], a ; 4d0 - ld a, $20 ; 4d2 - push af ; 4d4 - call Function552 ; 4d5 - pop af ; 4d8 - scf ; 4d9 - ret ; 4da -; 4db - -Function4db:: - ccf ; 4db - xor a ; 4dc - ret ; 4dd -; 4de - -Function4de:: - ldh a, [$ff93] ; 4de - ld c, a ; 4e0 - ld a, [$d1df] ; 4e1 - add c ; 4e4 - sub a, $3c ; 4e5 - jr nc, Function4eb ; 4e7 - add a, $3c ; 4e9 - ldh [$ff9a], a ; 4eb - ccf ; 4ed - ldh a, [$ff92] ; 4ee - ld c, a ; 4f0 - ld a, [$d1de] ; 4f1 - adc c ; 4f4 - sub a, $3c ; 4f5 - jr nc, Function4fb ; 4f7 - add a, $3c ; 4f9 - ldh [$ff98], a ; 4fb - ccf ; 4fd - ldh a, [$ff91] ; 4fe - ld c, a ; 500 - ld a, [$d1dd] ; 501 - adc c ; 504 - sub a, $18 ; 505 - jr nc, Function50b ; 507 - add a, $18 ; 509 - ldh [$ff96], a ; 50b - ccf ; 50d - ldh a, [$ff90] ; 50e - ld c, a ; 510 - ld a, [$d1dc] ; 511 - adc c ; 514 - ld [$d1f2], a ; 515 - ret ; 518 -; 519 - -Function519:: - xor a ; 519 - ld [$cf7e], a ; 51a - ld a, $0 ; 51d - ld [$cf81], a ; 51f - jr Function538 ; 522 -; 524 - -Function524:: - call Function467 ; 524 - ldh a, [$ff96] ; 527 - ld [$cf7f], a ; 529 - ldh a, [$ff98] ; 52c - ld [$cf80], a ; 52e - ldh a, [$ff9a] ; 531 - ld [$cf81], a ; 533 - jr Function538 ; 536 -; 538 - -Function538:: - ld a, $5 ; 538 - ld hl, $40ff ; 53a - rst FarCall ; 53d - ret ; 53e -; 53f - -Function53f:: - call Function546 ; 53f - call Function552 ; 542 - ret ; 545 -; 546 - -Function546:: - xor a ; 546 - ldh [$ff93], a ; 547 - ldh [$ff92], a ; 549 - ldh [$ff91], a ; 54b - ldh [$ff90], a ; 54d - ldh [$ff8f], a ; 54f - ret ; 551 -; 552 - -Function552:: - ld a, $a ; 552 - ld [MBC3SRamEnable], a ; 554 - call Function45c ; 557 - ld hl, $4000 ; 55a - ld de, $a000 ; 55d - ld [hl], $c ; 560 - ld a, [de] ; 562 - bit 6, a ; 563 - ld [de], a ; 565 - ld [hl], $8 ; 566 - ldh a, [$ff93] ; 568 - ld [de], a ; 56a - ld [hl], $9 ; 56b - ldh a, [$ff92] ; 56d - ld [de], a ; 56f - ld [hl], $a ; 570 - ldh a, [$ff91] ; 572 - ld [de], a ; 574 - ld [hl], $b ; 575 - ldh a, [$ff90] ; 577 - ld [de], a ; 579 - ld [hl], $c ; 57a - ldh a, [$ff8f] ; 57c - res 6, a ; 57e - ld [de], a ; 580 - call CloseSRAM ; 581 - ret ; 584 -; 585 - -Function585:: - xor a ; 585 - push af ; 586 - ld a, $0 ; 587 - call OpenSRAM ; 589 - pop af ; 58c - ld [$ac60], a ; 58d - call CloseSRAM ; 590 - ret ; 593 -; 594 - -Function594:: - ld hl, $ac60 ; 594 - push af ; 597 - ld a, $0 ; 598 - call OpenSRAM ; 59a - pop af ; 59d - or [hl] ; 59e - ld [hl], a ; 59f - call CloseSRAM ; 5a0 - ret ; 5a3 -; 5a4 - -Function5a4:: - ld a, $0 ; 5a4 - call OpenSRAM ; 5a6 - ld a, [$ac60] ; 5a9 - call CloseSRAM ; 5ac - ret ; 5af -; 5b0 - -Function5b0:: - call Function3d4f ; 5b0 - xor a ; 5b3 - ldh [$ffe0], a ; 5b4 - call Function3564 ; 5b6 - ei ; 5b9 - ld hl, $d8ba ; 5ba - set 7, [hl] ; 5bd - ld c, $20 ; 5bf - call Function33c ; 5c1 - jr Function5d1 ; 5c4 -; 5c6 - -Function5c6:: - cp $11 ; 5c6 - jr z, Function5cd ; 5c8 - xor a ; 5ca - jr Function5cf ; 5cb -; 5cd - -Function5cd:: - ld a, $1 ; 5cd - ldh [$ffe8], a ; 5cf - di ; 5d1 - xor a ; 5d2 - ldh [$ff0f], a ; 5d3 - ldh [$ffff], a ; 5d5 - ldh [$ff56], a ; 5d7 - ldh [$ff43], a ; 5d9 - ldh [$ff42], a ; 5db - ldh [$ff01], a ; 5dd - ldh [$ff02], a ; 5df - ldh [$ff4b], a ; 5e1 - ldh [$ff4a], a ; 5e3 - ldh [$ff47], a ; 5e5 - ldh [$ff48], a ; 5e7 - ldh [$ff49], a ; 5e9 - ldh [$ff06], a ; 5eb - ldh [$ff07], a ; 5ed - ld [$ceeb], a ; 5ef - ld a, $4 ; 5f2 - ldh [$ff07], a ; 5f4 - ldh a, [$ff44] ; 5f6 - cp $91 ; 5f8 - jr nz, Function5f6 ; 5fa - xor a ; 5fc - ldh [$ff40], a ; 5fd - ld hl, $c000 ; 5ff - ld bc, $2000 ; 602 - ld [hl], $0 ; 605 - inc hl ; 607 - dec bc ; 608 - ld a, b ; 609 - or c ; 60a - jr nz, Function605 ; 60b - ld sp, $dfff ; 60d - call Function68e ; 610 - ldh a, [$ffe8] ; 613 - push af ; 615 - xor a ; 616 - ld hl, $ff80 ; 617 - ld bc, $7f ; 61a - call Function314c ; 61d - pop af ; 620 - ldh [$ffe8], a ; 621 - call Function30ff ; 623 - ld a, $1 ; 626 - rst Bankswitch ; 628 - call Function4032 ; 629 - xor a ; 62c - ldh [$ffe0], a ; 62d - ldh [$ffd1], a ; 62f - ldh [$ffd2], a ; 631 - ldh [$ff00], a ; 633 - ld a, $8 ; 635 - ldh [$ff41], a ; 637 - ld a, $90 ; 639 - ldh [$ffd4], a ; 63b - ldh [$ff4a], a ; 63d - ld a, $7 ; 63f - ldh [$ffd3], a ; 641 - ldh [$ff4b], a ; 643 - ld a, $ff ; 645 - ldh [$ffcd], a ; 647 - ld h, $98 ; 649 - call Function699 ; 64b - ld h, $9c ; 64e - call Function699 ; 650 - ld hl, $5cfd ; 653 - ld a, $2 ; 656 - rst FarCall ; 658 - ld a, $9c ; 659 - ldh [$ffd9], a ; 65b - xor a ; 65d - ldh [$ffd8], a ; 65e - ld a, $5 ; 660 - ld hl, $4089 ; 662 - rst FarCall ; 665 - ld a, $a ; 666 - ld [MBC3SRamEnable], a ; 668 - ld a, $0 ; 66b - ld [MBC3LatchClock], a ; 66d - ld [MBC3SRamEnable], a ; 670 - ld a, $e3 ; 673 - ldh [$ff40], a ; 675 - ld a, $1f ; 677 - ldh [$ffff], a ; 679 - ei ; 67b - call Function32e ; 67c - ld a, $30 ; 67f - call Function2e49 ; 681 - call Function3d4f ; 684 - xor a ; 687 - ld [$c1c0], a ; 688 - jp Function6545 ; 68b -; 68e - -Function68e:: - ld hl, $8000 ; 68e - ld bc, $2000 ; 691 - xor a ; 694 - call Function314c ; 695 - ret ; 698 -; 699 - -Function699:: - ld a, $7f ; 699 - jr Function69e ; 69b -; 69d - -Function69d:: - ld a, l ; 69d - ld de, $400 ; 69e - ld l, e ; 6a1 - ld [hli], a ; 6a2 - dec e ; 6a3 - jr nz, Function6a2 ; 6a4 - dec d ; 6a6 - jr nz, Function6a2 ; 6a7 - ret ; 6a9 -; 6aa - -Function6aa:: - push af ; 6aa - push bc ; 6ab - push de ; 6ac - push hl ; 6ad - ld a, [$c1d3] ; 6ae - bit 0, a ; 6b1 - jr nz, Function6d2 ; 6b3 - ldh a, [$ffcd] ; 6b5 - inc a ; 6b7 - jr z, Function6d7 ; 6b8 - ldh a, [$ff01] ; 6ba - ldh [$ffd0], a ; 6bc - ldh a, [$ffcf] ; 6be - ldh [$ff01], a ; 6c0 - ldh a, [$ffcd] ; 6c2 - cp $2 ; 6c4 - jr z, Function703 ; 6c6 - ld a, $0 ; 6c8 - ldh [$ff02], a ; 6ca - ld a, $80 ; 6cc - ldh [$ff02], a ; 6ce - jr Function703 ; 6d0 -; 6d2 - -Function6d2:: - call Function1eb3 ; 6d2 - jr Function70b ; 6d5 -; 6d7 - -Function6d7:: - ldh a, [$ff01] ; 6d7 - cp $1 ; 6d9 - jr z, Function6e1 ; 6db - cp $2 ; 6dd - jr nz, Function703 ; 6df - ldh [$ffd0], a ; 6e1 - ldh [$ffcd], a ; 6e3 - cp $2 ; 6e5 - jr z, Function700 ; 6e7 - xor a ; 6e9 - ldh [$ff01], a ; 6ea - ld a, $3 ; 6ec - ldh [rDIV], a ; 6ee - ldh a, [rDIV] ; 6f0 - bit 7, a ; 6f2 - jr nz, Function6f0 ; 6f4 - ld a, $0 ; 6f6 - ldh [$ff02], a ; 6f8 - ld a, $80 ; 6fa - ldh [$ff02], a ; 6fc - jr Function703 ; 6fe -; 700 - -Function700:: - xor a ; 700 - ldh [$ff01], a ; 701 - ld a, $1 ; 703 - ldh [$ffcc], a ; 705 - ld a, $fe ; 707 - ldh [$ffcf], a ; 709 - pop hl ; 70b - pop de ; 70c - pop bc ; 70d - pop af ; 70e - reti ; 70f -; 710 - -Function710:: - ld a, $1 ; 710 - ldh [$ffce], a ; 712 - ld a, [hl] ; 714 - ldh [$ffcf], a ; 715 - call Function73b ; 717 - push bc ; 71a - ld b, a ; 71b - inc hl ; 71c - ld a, $30 ; 71d - dec a ; 71f - jr nz, Function71f ; 720 - ldh a, [$ffce] ; 722 - and a ; 724 - ld a, b ; 725 - pop bc ; 726 - jr z, Function733 ; 727 - dec hl ; 729 - cp $fd ; 72a - jr nz, Function714 ; 72c - xor a ; 72e - ldh [$ffce], a ; 72f - jr Function714 ; 731 -; 733 - -Function733:: - ld [de], a ; 733 - inc de ; 734 - dec bc ; 735 - ld a, b ; 736 - or c ; 737 - jr nz, Function714 ; 738 - ret ; 73a -; 73b - -Function73b:: - xor a ; 73b - ldh [$ffcc], a ; 73c - ldh a, [$ffcd] ; 73e - cp $2 ; 740 - jr nz, Function74c ; 742 - ld a, $1 ; 744 - ldh [$ff02], a ; 746 - ld a, $81 ; 748 - ldh [$ff02], a ; 74a - ldh a, [$ffcc] ; 74c - and a ; 74e - jr nz, Function796 ; 74f - ldh a, [$ffcd] ; 751 - cp $1 ; 753 - jr nz, Function771 ; 755 - call Function7dc ; 757 - jr z, Function771 ; 75a - call Function7d6 ; 75c - push hl ; 75f - ld hl, $ce5c ; 760 - inc [hl] ; 763 - jr nz, Function768 ; 764 - dec hl ; 766 - inc [hl] ; 767 - pop hl ; 768 - call Function7dc ; 769 - jr nz, Function74c ; 76c - jp Function7e4 ; 76e -; 771 - -Function771:: - ldh a, [$ffff] ; 771 - and $f ; 773 - cp $8 ; 775 - jr nz, Function74c ; 777 - ld a, [$ce5d] ; 779 - dec a ; 77c - ld [$ce5d], a ; 77d - jr nz, Function74c ; 780 - ld a, [$ce5e] ; 782 - dec a ; 785 - ld [$ce5e], a ; 786 - jr nz, Function74c ; 789 - ldh a, [$ffcd] ; 78b - cp $1 ; 78d - jr z, Function796 ; 78f - ld a, $ff ; 791 - dec a ; 793 - jr nz, Function793 ; 794 - xor a ; 796 - ldh [$ffcc], a ; 797 - ldh a, [$ffff] ; 799 - and $f ; 79b - sub a, $8 ; 79d - jr nz, Function7a9 ; 79f - ld [$ce5d], a ; 7a1 - ld a, $50 ; 7a4 - ld [$ce5e], a ; 7a6 - ldh a, [$ffd0] ; 7a9 - cp $fe ; 7ab - ret nz ; 7ad - call Function7dc ; 7ae - jr z, Function7c4 ; 7b1 - push hl ; 7b3 - ld hl, $ce5c ; 7b4 - ld a, [hl] ; 7b7 - dec a ; 7b8 - ld [hld], a ; 7b9 - inc a ; 7ba - jr nz, Function7be ; 7bb - dec [hl] ; 7bd - pop hl ; 7be - call Function7dc ; 7bf - jr z, Function7e4 ; 7c2 - ldh a, [$ffff] ; 7c4 - and $f ; 7c6 - cp $8 ; 7c8 - ld a, $fe ; 7ca - ret z ; 7cc - ld a, [hl] ; 7cd - ldh [$ffcf], a ; 7ce - call Function32e ; 7d0 - jp Function73b ; 7d3 -; 7d6 - -Function7d6:: - ld a, $f ; 7d6 - dec a ; 7d8 - jr nz, Function7d8 ; 7d9 - ret ; 7db -; 7dc - -Function7dc:: - push hl ; 7dc - ld hl, $ce5b ; 7dd - ld a, [hli] ; 7e0 - or [hl] ; 7e1 - pop hl ; 7e2 - ret ; 7e3 -; 7e4 - -Function7e4:: - dec a ; 7e4 - ld [$ce5b], a ; 7e5 - ld [$ce5c], a ; 7e8 - ret ; 7eb -; 7ec - -Function7ec:: - ld hl, $ce56 ; 7ec - ld de, $ce51 ; 7ef - ld c, $2 ; 7f2 - ld a, $1 ; 7f4 - ldh [$ffce], a ; 7f6 - call Function32e ; 7f8 - ld a, [hl] ; 7fb - ldh [$ffcf], a ; 7fc - call Function73b ; 7fe - ld b, a ; 801 - inc hl ; 802 - ldh a, [$ffce] ; 803 - and a ; 805 - ld a, $0 ; 806 - ldh [$ffce], a ; 808 - jr nz, Function7f8 ; 80a - ld a, b ; 80c - ld [de], a ; 80d - inc de ; 80e - dec c ; 80f - jr nz, Function7f8 ; 810 - ret ; 812 -; 813 - -Function813:: - call Function3158 ; 813 - ld hl, $4000 ; 816 - ld a, $1 ; 819 - rst FarCall ; 81b - call Function82e ; 81c - jp Function3164 ; 81f -; 822 - -Function822:: - call Function3158 ; 822 - ld hl, $4000 ; 825 - ld a, $1 ; 828 - rst FarCall ; 82a - jp Function82e ; 82b -; 82e - -Function82e:: - ld a, $ff ; 82e - ld [$ce52], a ; 830 - call Function872 ; 833 - call Function32e ; 836 - call Function7dc ; 839 - jr z, Function84f ; 83c - push hl ; 83e - ld hl, $ce5c ; 83f - dec [hl] ; 842 - jr nz, Function84e ; 843 - dec hl ; 845 - dec [hl] ; 846 - jr nz, Function84e ; 847 - pop hl ; 849 - xor a ; 84a - jp Function7e4 ; 84b -; 84e - -Function84e:: - pop hl ; 84e - ld a, [$ce52] ; 84f - inc a ; 852 - jr z, Function833 ; 853 - ld b, $a ; 855 - call Function32e ; 857 - call Function872 ; 85a - dec b ; 85d - jr nz, Function857 ; 85e - ld b, $a ; 860 - call Function32e ; 862 - call Function8b9 ; 865 - dec b ; 868 - jr nz, Function862 ; 869 - ld a, [$ce52] ; 86b - ld [$ce51], a ; 86e - ret ; 871 -; 872 - -Function872:: - push bc ; 872 - ld b, $60 ; 873 - ld a, [$d042] ; 875 - cp $1 ; 878 - jr z, Function888 ; 87a - ld b, $60 ; 87c - jr c, Function888 ; 87e - cp $2 ; 880 - ld b, $70 ; 882 - jr z, Function888 ; 884 - ld b, $80 ; 886 - call Function8a4 ; 888 - ld a, [$ce56] ; 88b - add b ; 88e - ldh [$ffcf], a ; 88f - ldh a, [$ffcd] ; 891 - cp $2 ; 893 - jr nz, Function89f ; 895 - ld a, $1 ; 897 - ldh [$ff02], a ; 899 - ld a, $81 ; 89b - ldh [$ff02], a ; 89d - call Function8a4 ; 89f - pop bc ; 8a2 - ret ; 8a3 -; 8a4 - -Function8a4:: - ldh a, [$ffd0] ; 8a4 - ld [$ce51], a ; 8a6 - and $f0 ; 8a9 - cp b ; 8ab - ret nz ; 8ac - xor a ; 8ad - ldh [$ffd0], a ; 8ae - ld a, [$ce51] ; 8b0 - and $f ; 8b3 - ld [$ce52], a ; 8b5 - ret ; 8b8 -; 8b9 - -Function8b9:: - xor a ; 8b9 - ldh [$ffcf], a ; 8ba - ldh a, [$ffcd] ; 8bc - cp $2 ; 8be - ret nz ; 8c0 - ld a, $1 ; 8c1 - ldh [$ff02], a ; 8c3 - ld a, $81 ; 8c5 - ldh [$ff02], a ; 8c7 - ret ; 8c9 -; 8ca - -Function8ca:: - ld a, [$d042] ; 8ca - and a ; 8cd - ret nz ; 8ce - ld a, $2 ; 8cf - ldh [$ff01], a ; 8d1 - xor a ; 8d3 - ldh [$ffd0], a ; 8d4 - ld a, $0 ; 8d6 - ldh [$ff02], a ; 8d8 - ld a, $80 ; 8da - ldh [$ff02], a ; 8dc - ret ; 8de -; 8df - -Function8df:: - reti ; 8df - xor a ; 8e0 - ldh [$ffa9], a ; 8e1 - ldh [$ffaa], a ; 8e3 - ret ; 8e5 -; 8e6 - -Function8e6:: - ld a, [$d8ba] ; 8e6 - and $d0 ; 8e9 - ret nz ; 8eb - ld a, [$c1cc] ; 8ec - and a ; 8ef - ret nz ; 8f0 - ld a, $20 ; 8f1 - ldh [$ff00], a ; 8f3 - ldh a, [$ff00] ; 8f5 - ldh a, [$ff00] ; 8f7 - cpl ; 8f9 - and $f ; 8fa - swap a ; 8fc - ld b, a ; 8fe - ld a, $10 ; 8ff - ldh [$ff00], a ; 901 - ldh a, [$ff00] ; 903 - ldh a, [$ff00] ; 905 - ldh a, [$ff00] ; 907 - ldh a, [$ff00] ; 909 - ldh a, [$ff00] ; 90b - ldh a, [$ff00] ; 90d - cpl ; 90f - and $f ; 910 - or b ; 912 - ld b, a ; 913 - ld a, $30 ; 914 - ldh [$ff00], a ; 916 - ldh a, [$ffa6] ; 918 - ld e, a ; 91a - xor b ; 91b - ld d, a ; 91c - and e ; 91d - ldh [$ffa4], a ; 91e - ld a, d ; 920 - and b ; 921 - ldh [$ffa5], a ; 922 - ld c, a ; 924 - ldh a, [$ffa7] ; 925 - or c ; 927 - ldh [$ffa7], a ; 928 - ld a, b ; 92a - ldh [$ffa6], a ; 92b - and $f ; 92d - cp $f ; 92f - jp z, Function5b0 ; 931 - ret ; 934 -; 935 - -Function935:: - push af ; 935 - push hl ; 936 - push de ; 937 - push bc ; 938 - ld a, [$c1c6] ; 939 - cp $ff ; 93c - jr z, Function958 ; 93e - ldh a, [$ffa6] ; 940 - ld b, a ; 942 - ldh a, [$ffaa] ; 943 - ld e, a ; 945 - xor b ; 946 - ld d, a ; 947 - and e ; 948 - ldh [$ffa8], a ; 949 - ld a, d ; 94b - and b ; 94c - ldh [$ffa9], a ; 94d - ld c, a ; 94f - ld a, b ; 950 - ldh [$ffaa], a ; 951 - pop bc ; 953 - pop de ; 954 - pop hl ; 955 - pop af ; 956 - ret ; 957 -; 958 - -Function958:: - ldh a, [hROMBank] ; 958 - push af ; 95a - ld a, [$c1c9] ; 95b - rst Bankswitch ; 95e - ld hl, $c1c7 ; 95f - ld a, [hli] ; 962 - ld h, [hl] ; 963 - ld l, a ; 964 - ld a, [$c1ca] ; 965 - and a ; 968 - jr z, Function973 ; 969 - dec a ; 96b - ld [$c1ca], a ; 96c - pop af ; 96f - rst Bankswitch ; 970 - jr Function953 ; 971 -; 973 - -Function973:: - ld a, [hli] ; 973 - cp $ff ; 974 - jr z, Function991 ; 976 - ld b, a ; 978 - ld a, [hli] ; 979 - ld [$c1ca], a ; 97a - cp $ff ; 97d - jr nz, Function987 ; 97f - dec hl ; 981 - dec hl ; 982 - ld b, $0 ; 983 - jr Function996 ; 985 -; 987 - -Function987:: - ld a, l ; 987 - ld [$c1c7], a ; 988 - ld a, h ; 98b - ld [$c1c8], a ; 98c - jr Function996 ; 98f -; 991 - -Function991:: - call Function9bb ; 991 - ld b, $0 ; 994 - pop af ; 996 - rst Bankswitch ; 997 - ld a, b ; 998 - ldh [$ffa9], a ; 999 - ldh [$ffaa], a ; 99b - jr Function953 ; 99d -; 99f - -Function99f:: - ld [$c1c9], a ; 99f - ld a, l ; 9a2 - ld [$c1c7], a ; 9a3 - ld a, h ; 9a6 - ld [$c1c8], a ; 9a7 - xor a ; 9aa - ld [$c1ca], a ; 9ab - xor a ; 9ae - ldh [$ffa9], a ; 9af - ldh [$ffa8], a ; 9b1 - ldh [$ffaa], a ; 9b3 - ld a, $ff ; 9b5 - ld [$c1c6], a ; 9b7 - ret ; 9ba -; 9bb - -Function9bb:: - xor a ; 9bb - ld [$c1c9], a ; 9bc - ld [$c1c7], a ; 9bf - ld [$c1c8], a ; 9c2 - ld [$c1ca], a ; 9c5 - ld [$c1c6], a ; 9c8 - ret ; 9cb -; 9cc - -Function9cc:: - call Function32e ; 9cc - push bc ; 9cf - call Functiona08 ; 9d0 - pop bc ; 9d3 - ldh a, [$ffaa] ; 9d4 - cp $46 ; 9d6 - jr z, Function9e5 ; 9d8 - ldh a, [$ffab] ; 9da - and $9 ; 9dc - jr nz, Function9e5 ; 9de - dec c ; 9e0 - jr nz, Function9cc ; 9e1 - and a ; 9e3 - ret ; 9e4 -; 9e5 - -Function9e5:: - scf ; 9e5 - ret ; 9e6 -; 9e7 - -Function9e7:: - call Function32e ; 9e7 - call Function935 ; 9ea - ldh a, [$ffa9] ; 9ed - and $3 ; 9ef - ret nz ; 9f1 - call Function343 ; 9f2 - jr Function9e7 ; 9f5 -; 9f7 - -Function9f7:: - ldh a, [$ffda] ; 9f7 - push af ; 9f9 - ld a, $1 ; 9fa - ldh [$ffda], a ; 9fc - call WaitBGMap ; 9fe - call Function9e7 ; a01 - pop af ; a04 - ldh [$ffda], a ; a05 - ret ; a07 -; a08 - -Functiona08:: - call Function935 ; a08 - ldh a, [$ffac] ; a0b - and a ; a0d - ldh a, [$ffa9] ; a0e - jr z, Functiona14 ; a10 - ldh a, [$ffaa] ; a12 - ldh [$ffab], a ; a14 - ldh a, [$ffa9] ; a16 - and a ; a18 - jr z, Functiona21 ; a19 - ld a, $f ; a1b - ld [$cee9], a ; a1d - ret ; a20 -; a21 - -Functiona21:: - ld a, [$cee9] ; a21 - and a ; a24 - jr z, Functiona2b ; a25 - xor a ; a27 - ldh [$ffab], a ; a28 - ret ; a2a -; a2b - -Functiona2b:: - ld a, $5 ; a2b - ld [$cee9], a ; a2d - ret ; a30 -; a31 - -Functiona31:: - ldh a, [$ffb1] ; a31 - push af ; a33 - ldh a, [$ffb2] ; a34 - push af ; a36 - xor a ; a37 - ldh [$ffb1], a ; a38 - ld a, $6 ; a3a - ldh [$ffb2], a ; a3c - push hl ; a3e - ld hl, $c506 ; a3f - call Functionab6 ; a42 - pop hl ; a45 - call Functiona08 ; a46 - ldh a, [$ffab] ; a49 - and $3 ; a4b - jr z, Functiona3e ; a4d - pop af ; a4f - ldh [$ffb2], a ; a50 - pop af ; a52 - ldh [$ffb1], a ; a53 - ret ; a55 -; a56 - -Functiona56:: - call Functiona08 ; a56 - ldh a, [$ffab] ; a59 - and $3 ; a5b - jr z, Functiona56 ; a5d - ret ; a5f -; a60 - -Functiona60:: - ld a, [$d042] ; a60 - and a ; a63 - jr nz, Functiona72 ; a64 - call Functiona77 ; a66 - push de ; a69 - ld de, $8 ; a6a - call Function3e24 ; a6d - pop de ; a70 - ret ; a71 -; a72 - -Functiona72:: - ld c, $41 ; a72 - jp Function33c ; a74 -; a77 - -Functiona77:: - ldh a, [$ffda] ; a77 - push af ; a79 - ld a, $1 ; a7a - ldh [$ffda], a ; a7c - ld a, [$c1c6] ; a7e - or a ; a81 - jr z, Functiona8a ; a82 - ld a, $70 ; a84 - ld hl, $4de9 ; a86 - rst FarCall ; a89 - call Functionaa6 ; a8a - call Functiona08 ; a8d - ldh a, [$ffa9] ; a90 - and $3 ; a92 - jr nz, Functionaa2 ; a94 - call Function343 ; a96 - ld a, $1 ; a99 - ldh [$ffd6], a ; a9b - call Function32e ; a9d - jr Functiona8a ; aa0 -; aa2 - -Functionaa2:: - pop af ; aa2 - ldh [$ffda], a ; aa3 - ret ; aa5 -; aa6 - -Functionaa6:: - ldh a, [$ff9d] ; aa6 - and $10 ; aa8 - jr z, Functionab0 ; aaa - ld a, $ee ; aac - jr Functionab2 ; aae -; ab0 - -Functionab0:: - ld a, $7a ; ab0 - ld [$c506], a ; ab2 - ret ; ab5 -; ab6 - -Functionab6:: - push bc ; ab6 - ld a, [hl] ; ab7 - ld b, a ; ab8 - ld a, $ee ; ab9 - cp b ; abb - pop bc ; abc - jr nz, Functionad7 ; abd - ldh a, [$ffb1] ; abf - dec a ; ac1 - ldh [$ffb1], a ; ac2 - ret nz ; ac4 - ldh a, [$ffb2] ; ac5 - dec a ; ac7 - ldh [$ffb2], a ; ac8 - ret nz ; aca - ld a, $7a ; acb - ld [hl], a ; acd - ld a, $ff ; ace - ldh [$ffb1], a ; ad0 - ld a, $6 ; ad2 - ldh [$ffb2], a ; ad4 - ret ; ad6 -; ad7 - -Functionad7:: - ldh a, [$ffb1] ; ad7 - and a ; ad9 - ret z ; ada - dec a ; adb - ldh [$ffb1], a ; adc - ret nz ; ade - dec a ; adf - ldh [$ffb1], a ; ae0 - ldh a, [$ffb2] ; ae2 - dec a ; ae4 - ldh [$ffb2], a ; ae5 - ret nz ; ae7 - ld a, $6 ; ae8 - ldh [$ffb2], a ; aea - ld a, $ee ; aec - ld [hl], a ; aee - ret ; aef -; af0 - -Functionaf0:: - ld [$c1c4], a ; af0 - ldh a, [hROMBank] ; af3 - push af ; af5 - ld a, [$c1c4] ; af6 - rst Bankswitch ; af9 - call Functionb00 ; afa - pop af ; afd - rst Bankswitch ; afe - ret ; aff -; b00 - -Functionb00:: - ld a, e ; b00 - ld [$c1c2], a ; b01 - ld a, d ; b04 - ld [$c1c3], a ; b05 - ld a, [hl] ; b08 - cp $ff ; b09 - ret z ; b0b - and $e0 ; b0c - cp $e0 ; b0e - jr nz, Functionb22 ; b10 - ld a, [hl] ; b12 - add a ; b13 - add a ; b14 - add a ; b15 - and $e0 ; b16 - push af ; b18 - ld a, [hli] ; b19 - and $3 ; b1a - ld b, a ; b1c - ld a, [hli] ; b1d - ld c, a ; b1e - inc bc ; b1f - jr Functionb2a ; b20 -; b22 - -Functionb22:: - push af ; b22 - ld a, [hli] ; b23 - and $1f ; b24 - ld c, a ; b26 - ld b, $0 ; b27 - inc c ; b29 - inc b ; b2a - inc c ; b2b - pop af ; b2c - bit 7, a ; b2d - jr nz, Functionb7b ; b2f - cp $20 ; b31 - jr z, Functionb49 ; b33 - cp $40 ; b35 - jr z, Functionb55 ; b37 - cp $60 ; b39 - jr z, Functionb6f ; b3b - dec c ; b3d - jr nz, Functionb44 ; b3e - dec b ; b40 - jp z, Functionb08 ; b41 - ld a, [hli] ; b44 - ld [de], a ; b45 - inc de ; b46 - jr Functionb3d ; b47 -; b49 - -Functionb49:: - ld a, [hli] ; b49 - dec c ; b4a - jr nz, Functionb51 ; b4b - dec b ; b4d - jp z, Functionb08 ; b4e - ld [de], a ; b51 - inc de ; b52 - jr Functionb4a ; b53 -; b55 - -Functionb55:: - dec c ; b55 - jr nz, Functionb5c ; b56 - dec b ; b58 - jp z, Functionb6b ; b59 - ld a, [hli] ; b5c - ld [de], a ; b5d - inc de ; b5e - dec c ; b5f - jr nz, Functionb66 ; b60 - dec b ; b62 - jp z, Functionb6c ; b63 - ld a, [hld] ; b66 - ld [de], a ; b67 - inc de ; b68 - jr Functionb55 ; b69 -; b6b - -Functionb6b:: - inc hl ; b6b - inc hl ; b6c - jr Functionb08 ; b6d -; b6f - -Functionb6f:: - xor a ; b6f - dec c ; b70 - jr nz, Functionb77 ; b71 - dec b ; b73 - jp z, Functionb08 ; b74 - ld [de], a ; b77 - inc de ; b78 - jr Functionb70 ; b79 -; b7b - -Functionb7b:: - push hl ; b7b - push af ; b7c - ld a, [hli] ; b7d - bit 7, a ; b7e - jr z, Functionb8d ; b80 - and $7f ; b82 - cpl ; b84 - add e ; b85 - ld l, a ; b86 - ld a, $ff ; b87 - adc d ; b89 - ld h, a ; b8a - jr Functionb99 ; b8b -; b8d - -Functionb8d:: - ld l, [hl] ; b8d - ld h, a ; b8e - ld a, [$c1c2] ; b8f - add l ; b92 - ld l, a ; b93 - ld a, [$c1c3] ; b94 - adc h ; b97 - ld h, a ; b98 - pop af ; b99 - cp $80 ; b9a - jr z, Functionba6 ; b9c - cp $a0 ; b9e - jr z, Functionbb1 ; ba0 - cp $c0 ; ba2 - jr z, Functionbc9 ; ba4 - dec c ; ba6 - jr nz, Functionbac ; ba7 - dec b ; ba9 - jr z, Functionbd5 ; baa - ld a, [hli] ; bac - ld [de], a ; bad - inc de ; bae - jr Functionba6 ; baf -; bb1 - -Functionbb1:: - dec c ; bb1 - jr nz, Functionbb8 ; bb2 - dec b ; bb4 - jp z, Functionbd5 ; bb5 - ld a, [hli] ; bb8 - push bc ; bb9 - ld bc, $8 ; bba - rra ; bbd - rl b ; bbe - dec c ; bc0 - jr nz, Functionbbd ; bc1 - ld a, b ; bc3 - pop bc ; bc4 - ld [de], a ; bc5 - inc de ; bc6 - jr Functionbb1 ; bc7 -; bc9 - -Functionbc9:: - dec c ; bc9 - jr nz, Functionbd0 ; bca - dec b ; bcc - jp z, Functionbd5 ; bcd - ld a, [hld] ; bd0 - ld [de], a ; bd1 - inc de ; bd2 - jr Functionbc9 ; bd3 -; bd5 - -Functionbd5:: - pop hl ; bd5 - bit 7, [hl] ; bd6 - jr nz, Functionbdb ; bd8 - inc hl ; bda - inc hl ; bdb - jp Functionb08 ; bdc -; bdf - -Functionbdf:: - ldh a, [$ffe8] ; bdf - and a ; be1 - ret z ; be2 - ldh a, [$ffe7] ; be3 - and a ; be5 - ret z ; be6 - ld hl, $c280 ; be7 - ld a, $80 ; bea - ldh [$ff68], a ; bec - ld c, $4 ; bee - ld a, [hli] ; bf0 - ldh [$ff69], a ; bf1 - ld a, [hli] ; bf3 - ldh [$ff69], a ; bf4 - ld a, [hli] ; bf6 - ldh [$ff69], a ; bf7 - ld a, [hli] ; bf9 - ldh [$ff69], a ; bfa - ld a, [hli] ; bfc - ldh [$ff69], a ; bfd - ld a, [hli] ; bff - ldh [$ff69], a ; c00 - ld a, [hli] ; c02 - ldh [$ff69], a ; c03 - ld a, [hli] ; c05 - ldh [$ff69], a ; c06 - ld a, [hli] ; c08 - ldh [$ff69], a ; c09 - ld a, [hli] ; c0b - ldh [$ff69], a ; c0c - ld a, [hli] ; c0e - ldh [$ff69], a ; c0f - ld a, [hli] ; c11 - ldh [$ff69], a ; c12 - ld a, [hli] ; c14 - ldh [$ff69], a ; c15 - ld a, [hli] ; c17 - ldh [$ff69], a ; c18 - ld a, [hli] ; c1a - ldh [$ff69], a ; c1b - ld a, [hli] ; c1d - ldh [$ff69], a ; c1e - dec c ; c20 - jr nz, Functionbf0 ; c21 - ld a, $80 ; c23 - ldh [$ff6a], a ; c25 - ld c, $4 ; c27 - ld a, [hli] ; c29 - ldh [$ff6b], a ; c2a - ld a, [hli] ; c2c - ldh [$ff6b], a ; c2d - ld a, [hli] ; c2f - ldh [$ff6b], a ; c30 - ld a, [hli] ; c32 - ldh [$ff6b], a ; c33 - ld a, [hli] ; c35 - ldh [$ff6b], a ; c36 - ld a, [hli] ; c38 - ldh [$ff6b], a ; c39 - ld a, [hli] ; c3b - ldh [$ff6b], a ; c3c - ld a, [hli] ; c3e - ldh [$ff6b], a ; c3f - ld a, [hli] ; c41 - ldh [$ff6b], a ; c42 - ld a, [hli] ; c44 - ldh [$ff6b], a ; c45 - ld a, [hli] ; c47 - ldh [$ff6b], a ; c48 - ld a, [hli] ; c4a - ldh [$ff6b], a ; c4b - ld a, [hli] ; c4d - ldh [$ff6b], a ; c4e - ld a, [hli] ; c50 - ldh [$ff6b], a ; c51 - ld a, [hli] ; c53 - ldh [$ff6b], a ; c54 - ld a, [hli] ; c56 - ldh [$ff6b], a ; c57 - dec c ; c59 - jr nz, Functionc29 ; c5a - xor a ; c5c - ldh [$ffe7], a ; c5d - scf ; c5f - ret ; c60 -; c61 - -Functionc61:: - ldh [$ff47], a ; c61 - push af ; c63 - ldh a, [$ffe8] ; c64 - and a ; c66 - jr z, Functionc81 ; c67 - push hl ; c69 - push de ; c6a - push bc ; c6b - ld hl, $c280 ; c6c - ld de, $c200 ; c6f - ldh a, [$ff47] ; c72 - ld b, a ; c74 - ld c, $8 ; c75 - call Functioncea ; c77 - ld a, $1 ; c7a - ldh [$ffe7], a ; c7c - pop bc ; c7e - pop de ; c7f - pop hl ; c80 - pop af ; c81 - ret ; c82 -; c83 - -Functionc83:: - ld a, e ; c83 - ldh [$ff48], a ; c84 - ld a, d ; c86 - ldh [$ff49], a ; c87 - ldh a, [$ffe8] ; c89 - and a ; c8b - ret z ; c8c - push hl ; c8d - push de ; c8e - push bc ; c8f - ld hl, $c2c0 ; c90 - ld de, $c240 ; c93 - ldh a, [$ff48] ; c96 - ld b, a ; c98 - ld c, $8 ; c99 - call Functioncea ; c9b - ld a, $1 ; c9e - ldh [$ffe7], a ; ca0 - pop bc ; ca2 - pop de ; ca3 - pop hl ; ca4 - ret ; ca5 -; ca6 - -Functionca6:: - ldh [$ff48], a ; ca6 - push af ; ca8 - ldh a, [$ffe8] ; ca9 - and a ; cab - jr z, Functioncc6 ; cac - push hl ; cae - push de ; caf - push bc ; cb0 - ld hl, $c2c0 ; cb1 - ld de, $c240 ; cb4 - ldh a, [$ff48] ; cb7 - ld b, a ; cb9 - ld c, $1 ; cba - call Functioncea ; cbc - ld a, $1 ; cbf - ldh [$ffe7], a ; cc1 - pop bc ; cc3 - pop de ; cc4 - pop hl ; cc5 - pop af ; cc6 - ret ; cc7 -; cc8 - -Functioncc8:: - ldh [$ff49], a ; cc8 - push af ; cca - ldh a, [$ffe8] ; ccb - and a ; ccd - jr z, Functionce8 ; cce - push hl ; cd0 - push de ; cd1 - push bc ; cd2 - ld hl, $c2c8 ; cd3 - ld de, $c248 ; cd6 - ldh a, [$ff49] ; cd9 - ld b, a ; cdb - ld c, $1 ; cdc - call Functioncea ; cde - ld a, $1 ; ce1 - ldh [$ffe7], a ; ce3 - pop bc ; ce5 - pop de ; ce6 - pop hl ; ce7 - pop af ; ce8 - ret ; ce9 -; cea - -Functioncea:: - push bc ; cea - ld c, $4 ; ceb - push de ; ced - push hl ; cee - ld a, b ; cef - and $3 ; cf0 - add a ; cf2 - ld l, a ; cf3 - ld h, $0 ; cf4 - add hl, de ; cf6 - ld e, [hl] ; cf7 - inc hl ; cf8 - ld d, [hl] ; cf9 - pop hl ; cfa - ld [hl], e ; cfb - inc hl ; cfc - ld [hl], d ; cfd - inc hl ; cfe - srl b ; cff - srl b ; d01 - pop de ; d03 - dec c ; d04 - jr nz, Functionced ; d05 - ld a, $8 ; d07 - add e ; d09 - jr nc, Functiond0d ; d0a - inc d ; d0c - ld e, a ; d0d - pop bc ; d0e - dec c ; d0f - jr nz, Functioncea ; d10 - ret ; d12 -; d13 - -Functiond13:: - ldh a, [$ffe8] ; d13 - and a ; d15 - ret z ; d16 - ld a, $1 ; d17 - ldh [$ff4f], a ; d19 - ld hl, $8000 ; d1b - ld bc, $2000 ; d1e - xor a ; d21 - call Function314c ; d22 - ld a, $0 ; d25 - ldh [$ff4f], a ; d27 - ret ; d29 -; d2a - -Functiond2a:: - ld hl, $c3a0 ; d2a - ld de, $ccd9 ; d2d - ld bc, $168 ; d30 - ld a, [hli] ; d33 - cp $60 ; d34 - jr c, Functiond3b ; d36 - ld a, $7 ; d38 - ld [de], a ; d3a - inc de ; d3b - dec bc ; d3c - ld a, b ; d3d - or c ; d3e - jr nz, Functiond33 ; d3f - ret ; d41 -; d42 - -Functiond42:: - ldh a, [$ffe8] ; d42 - and a ; d44 - ret z ; d45 - ld hl, $c280 ; d46 - ld bc, $50 ; d49 - xor a ; d4c - call Function314c ; d4d - ld a, $1 ; d50 - ldh [$ffe7], a ; d52 - call Function32e ; d54 - ret ; d57 -; d58 - -Functiond58:: - ldh a, [hROMBank] ; d58 - push af ; d5a - ld a, $2 ; d5b - rst Bankswitch ; d5d - call Function4000 ; d5e - pop af ; d61 - rst Bankswitch ; d62 - ret ; d63 -; d64 - -Functiond64:: - ldh a, [hROMBank] ; d64 - push af ; d66 - ld a, $2 ; d67 - rst Bankswitch ; d69 - call Function404f ; d6a - pop af ; d6d - rst Bankswitch ; d6e - ret ; d6f -; d70 - -Functiond70:: - ld b, a ; d70 - ldh a, [hROMBank] ; d71 - push af ; d73 - ld a, b ; d74 - rst Bankswitch ; d75 - ld a, $0 ; d76 - call OpenSRAM ; d78 - ld hl, $a188 ; d7b - ld bc, $310 ; d7e - xor a ; d81 - call Function314c ; d82 - ld hl, $cf3c ; d85 - ld a, [hli] ; d88 - ld h, [hl] ; d89 - ld l, a ; d8a - ld de, $a188 ; d8b - call Functionb00 ; d8e - call CloseSRAM ; d91 - pop af ; d94 - rst Bankswitch ; d95 - ret ; d96 -; d97 - -Functiond97:: - ld a, $5 ; d97 - ld hl, $413c ; d99 - rst FarCall ; d9c - ret ; d9d -; d9e - -Functiond9e:: - ld a, $3e ; d9e - ld hl, $4000 ; da0 - rst FarCall ; da3 - ret ; da4 -; da5 - -Functionda5:: - ld a, $3e ; da5 - ld hl, $4032 ; da7 - rst FarCall ; daa - ret ; dab -; dac - -Functiondac:: - ld a, $3e ; dac - ld hl, $400c ; dae - rst FarCall ; db1 - ret ; db2 -; db3 - -Functiondb3:: - push de ; db3 - ld a, $0 ; db4 - call OpenSRAM ; db6 - push bc ; db9 - ld de, $a000 ; dba - ld a, b ; dbd - call Functionaf0 ; dbe - pop bc ; dc1 - pop hl ; dc2 - ld de, $a000 ; dc3 - call Functiondfe ; dc6 - call CloseSRAM ; dc9 - ret ; dcc -; dcd - -Functiondcd:: - ld [$d156], a ; dcd - ldh a, [hROMBank] ; dd0 - push af ; dd2 - ld a, [$d156] ; dd3 - rst Bankswitch ; dd6 - call Function311a ; dd7 - pop af ; dda - rst Bankswitch ; ddb - ret ; ddc -; ddd - -Functionddd:: - ld [$d156], a ; ddd - ldh a, [hROMBank] ; de0 - push af ; de2 - ld a, [$d156] ; de3 - rst Bankswitch ; de6 - ld a, h ; de7 - ld h, d ; de8 - ld d, a ; de9 - ld a, l ; dea - ld l, e ; deb - ld e, a ; dec - inc b ; ded - inc c ; dee - jr Functiondf5 ; def -; df1 - -Functiondf1:: - ld a, [de] ; df1 - inc de ; df2 - ld [hli], a ; df3 - ld [hli], a ; df4 - dec c ; df5 - jr nz, Functiondf1 ; df6 - dec b ; df8 - jr nz, Functiondf1 ; df9 - pop af ; dfb - rst Bankswitch ; dfc - ret ; dfd -; dfe - -Functiondfe:: - ldh a, [$ffd6] ; dfe - push af ; e00 - xor a ; e01 - ldh [$ffd6], a ; e02 - ldh a, [hROMBank] ; e04 - push af ; e06 - ld a, b ; e07 - rst Bankswitch ; e08 - ld a, e ; e09 - ld [$ce68], a ; e0a - ld a, d ; e0d - ld [$ce69], a ; e0e - ld a, l ; e11 - ld [$ce6a], a ; e12 - ld a, h ; e15 - ld [$ce6b], a ; e16 - ld a, c ; e19 - cp $8 ; e1a - jr nc, Functione2a ; e1c - ld [$ce67], a ; e1e - call Function32e ; e21 - pop af ; e24 - rst Bankswitch ; e25 - pop af ; e26 - ldh [$ffd6], a ; e27 - ret ; e29 -; e2a - -Functione2a:: - ld a, $8 ; e2a - ld [$ce67], a ; e2c - call Function32e ; e2f - ld a, c ; e32 - sub a, $8 ; e33 - ld c, a ; e35 - jr Functione19 ; e36 -; e38 - -Functione38:: - ldh a, [$ffd6] ; e38 - push af ; e3a - xor a ; e3b - ldh [$ffd6], a ; e3c - ldh a, [hROMBank] ; e3e - push af ; e40 - ld a, b ; e41 - rst Bankswitch ; e42 - ld a, e ; e43 - ld [$ce6d], a ; e44 - ld a, d ; e47 - ld [$ce6e], a ; e48 - ld a, l ; e4b - ld [$ce6f], a ; e4c - ld a, h ; e4f - ld [$ce70], a ; e50 - ld a, c ; e53 - cp $8 ; e54 - jr nc, Functione64 ; e56 - ld [$ce6c], a ; e58 - call Function32e ; e5b - pop af ; e5e - rst Bankswitch ; e5f - pop af ; e60 - ldh [$ffd6], a ; e61 - ret ; e63 -; e64 - -Functione64:: - ld a, $8 ; e64 - ld [$ce6c], a ; e66 - call Function32e ; e69 - ld a, c ; e6c - sub a, $8 ; e6d - ld c, a ; e6f - jr Functione53 ; e70 -; e72 - -Functione72:: - ldh a, [$ff40] ; e72 - bit 7, a ; e74 - jp nz, Functiondfe ; e76 - push hl ; e79 - ld h, d ; e7a - ld l, e ; e7b - pop de ; e7c - ld a, b ; e7d - push af ; e7e - swap c ; e7f - ld a, $f ; e81 - and c ; e83 - ld b, a ; e84 - ld a, $f0 ; e85 - and c ; e87 - ld c, a ; e88 - pop af ; e89 - jp Functiondcd ; e8a -; e8d - -Functione8d:: - ldh a, [$ff40] ; e8d - bit 7, a ; e8f - jp nz, Functione38 ; e91 - push de ; e94 - ld d, h ; e95 - ld e, l ; e96 - ld a, b ; e97 - push af ; e98 - ld h, $0 ; e99 - ld l, c ; e9b - add hl, hl ; e9c - add hl, hl ; e9d - add hl, hl ; e9e - ld b, h ; e9f - ld c, l ; ea0 - pop af ; ea1 - pop hl ; ea2 - jp Functionddd ; ea3 -; ea6 - -Functionea6:: - ldh a, [$ff40] ; ea6 - add a ; ea8 - jp c, Functiondfe ; ea9 - push de ; eac - push hl ; ead - ld a, b ; eae - ld h, $0 ; eaf - ld l, c ; eb1 - add hl, hl ; eb2 - add hl, hl ; eb3 - add hl, hl ; eb4 - add hl, hl ; eb5 - ld b, h ; eb6 - ld c, l ; eb7 - pop de ; eb8 - pop hl ; eb9 - jp Functiondcd ; eba -; ebd - -Functionebd:: - ld a, $7f ; ebd - ld de, $14 ; ebf - push hl ; ec2 - push bc ; ec3 - ld [hli], a ; ec4 - dec c ; ec5 - jr nz, Functionec4 ; ec6 - pop bc ; ec8 - pop hl ; ec9 - add hl, de ; eca - dec b ; ecb - jr nz, Functionec2 ; ecc - ret ; ece -; ecf - -Functionecf:: - ld hl, $c3a0 ; ecf - ld a, $7f ; ed2 - ld bc, $168 ; ed4 - call Function314c ; ed7 - ldh a, [$ff40] ; eda - bit 7, a ; edc - ret z ; ede - jp WaitBGMap ; edf -; ee2 - -Functionee2:: - ld a, $7 ; ee2 - ld hl, $ccd9 ; ee4 - ld bc, $168 ; ee7 - call Function314c ; eea - jr Functionecf ; eed -; eef - -Functioneef:: - push bc ; eef - push hl ; ef0 - call Functionef8 ; ef1 - pop hl ; ef4 - pop bc ; ef5 - jr Functionf2b ; ef6 -; ef8 - -Functionef8:: - push hl ; ef8 - ld a, $79 ; ef9 - ld [hli], a ; efb - inc a ; efc - call Functionf25 ; efd - inc a ; f00 - ld [hl], a ; f01 - pop hl ; f02 - ld de, $14 ; f03 - add hl, de ; f06 - push hl ; f07 - ld a, $7c ; f08 - ld [hli], a ; f0a - ld a, $7f ; f0b - call Functionf25 ; f0d - ld [hl], $7c ; f10 - pop hl ; f12 - ld de, $14 ; f13 - add hl, de ; f16 - dec b ; f17 - jr nz, Functionf07 ; f18 - ld a, $7d ; f1a - ld [hli], a ; f1c - ld a, $7a ; f1d - call Functionf25 ; f1f - ld [hl], $7e ; f22 - ret ; f24 -; f25 - -Functionf25:: - ld d, c ; f25 - ld [hli], a ; f26 - dec d ; f27 - jr nz, Functionf26 ; f28 - ret ; f2a -; f2b - -Functionf2b:: - ld de, $939 ; f2b - add hl, de ; f2e - inc b ; f2f - inc b ; f30 - inc c ; f31 - inc c ; f32 - ld a, $7 ; f33 - push bc ; f35 - push hl ; f36 - ld [hli], a ; f37 - dec c ; f38 - jr nz, Functionf37 ; f39 - pop hl ; f3b - ld de, $14 ; f3c - add hl, de ; f3f - pop bc ; f40 - dec b ; f41 - jr nz, Functionf35 ; f42 - ret ; f44 -; f45 - -Functionf45:: - ld hl, $c490 ; f45 - ld b, $4 ; f48 - ld c, $12 ; f4a - jp Functioneef ; f4c -; f4f - -Functionf4f:: - nop ; f4f - ld [$9fe3], sp ; f50 - sbc e ; f53 - ret c ; f54 - - ; f55 - add a ; f56 - rst $20 ; f57 - ld d, a ; f58 - ld hl, $f5d ; f59 - ret ; f5c -; f5d - -Functionf5d:: - ld d, b ; f5d - call Functionf68 ; f5e - ld bc, $c4b9 ; f61 - call Function1272 ; f64 - ret ; f67 -; f68 - -Functionf68:: - push hl ; f68 - call Functionf45 ; f69 - call Function196f ; f6c - call Function3472 ; f6f - pop hl ; f72 - ret ; f73 -; f74 - -Functionf74:: - push hl ; f74 - ld a, [de] ; f75 - cp $50 ; f76 - jr nz, Functionf83 ; f78 - ld b, h ; f7a - ld c, l ; f7b - pop hl ; f7c - ret ; f7d -; f7e - -Functionf7e:: - pop de ; f7e - inc de ; f7f - jp Functionf75 ; f80 -; f83 - -Functionf83:: - cp $4f ; f83 - jp z, Function117f ; f85 - cp $4e ; f88 - jp z, Function116d ; f8a - and a ; f8d - jp z, Function120c ; f8e - cp $4c ; f91 - jp z, Function11c8 ; f93 - cp $4b ; f96 - jp z, Function11b0 ; f98 - cp $51 ; f9b - jp z, Function1187 ; f9d - cp $49 ; fa0 - jp z, Function1066 ; fa2 - cp $52 ; fa5 - jp z, Function106d ; fa7 - cp $53 ; faa - jp z, Function1074 ; fac - cp $35 ; faf - jp z, Function10c8 ; fb1 - cp $36 ; fb4 - jp z, Function10cf ; fb6 - cp $37 ; fb9 - jp z, Function10d6 ; fbb - cp $38 ; fbe - jp z, Function107b ; fc0 - cp $39 ; fc3 - jp z, Function1082 ; fc5 - cp $54 ; fc8 - jp z, Function10a5 ; fca - cp $5b ; fcd - jp z, Function1097 ; fcf - cp $5e ; fd2 - jp z, Function109e ; fd4 - cp $5c ; fd7 - jp z, Function1090 ; fd9 - cp $5d ; fdc - jp z, Function1089 ; fde - cp $23 ; fe1 - jp z, Function10ac ; fe3 - cp $22 ; fe6 - jp z, Function1176 ; fe8 - cp $55 ; feb - jp z, Function11d6 ; fed - cp $56 ; ff0 - jp z, Function10b3 ; ff2 - cp $57 ; ff5 - jp z, Function1205 ; ff7 - cp $58 ; ffa - jp z, Function11eb ; ffc - cp $4a ; fff - jp z, Function10ba ; 1001 - cp $24 ; 1004 - jp z, Function10c1 ; 1006 - cp $25 ; 1009 - jp z, Functionf7f ; 100b - cp $1f ; 100e - jr nz, Function1014 ; 1010 - ld a, $7f ; 1012 - cp $5f ; 1014 - jp z, Function11e7 ; 1016 - cp $59 ; 1019 - jp z, Function10dd ; 101b - cp $5a ; 101e - jp z, Function10e3 ; 1020 - cp $3f ; 1023 - jp z, Function10fb ; 1025 - cp $e4 ; 1028 - jr z, Function1030 ; 102a - cp $e5 ; 102c - jr nz, Function1037 ; 102e - ld b, a ; 1030 - call Function124a ; 1031 - jp Functionf7f ; 1034 -; 1037 - -Function1037:: - cp $60 ; 1037 - jr nc, Function105f ; 1039 - cp $40 ; 103b - jr nc, Function1050 ; 103d - cp $20 ; 103f - jr nc, Function1047 ; 1041 - add a, $80 ; 1043 - jr Function1049 ; 1045 -; 1047 - -Function1047:: - add a, $90 ; 1047 - ld b, $e5 ; 1049 - call Function124a ; 104b - jr Function105f ; 104e -; 1050 - -Function1050:: - cp $44 ; 1050 - jr nc, Function1058 ; 1052 - add a, $59 ; 1054 - jr Function105a ; 1056 -; 1058 - -Function1058:: - add a, $86 ; 1058 - ld b, $e4 ; 105a - call Function124a ; 105c - ld [hli], a ; 105f - call Function31e2 ; 1060 - jp Functionf7f ; 1063 -; 1066 - -Function1066:: - push de ; 1066 - ld de, $d1ae ; 1067 - jp Function1132 ; 106a -; 106d - -Function106d:: - push de ; 106d - ld de, $d1a3 ; 106e - jp Function1132 ; 1071 -; 1074 - -Function1074:: - push de ; 1074 - ld de, $d1b9 ; 1075 - jp Function1132 ; 1078 -; 107b - -Function107b:: - push de ; 107b - ld de, $d1c4 ; 107c - jp Function1132 ; 107f -; 1082 - -Function1082:: - push de ; 1082 - ld de, $d1cf ; 1083 - jp Function1132 ; 1086 -; 1089 - -Function1089:: - push de ; 1089 - ld de, $113e ; 108a - jp Function1132 ; 108d -; 1090 - -Function1090:: - push de ; 1090 - ld de, $113b ; 1091 - jp Function1132 ; 1094 -; 1097 - -Function1097:: - push de ; 1097 - ld de, $1146 ; 1098 - jp Function1132 ; 109b -; 109e - -Function109e:: - push de ; 109e - ld de, $1149 ; 109f - jp Function1132 ; 10a2 -; 10a5 - -Function10a5:: - push de ; 10a5 - ld de, $1150 ; 10a6 - jp Function1132 ; 10a9 -; 10ac - -Function10ac:: - push de ; 10ac - ld de, $1155 ; 10ad - jp Function1132 ; 10b0 -; 10b3 - -Function10b3:: - push de ; 10b3 - ld de, $115a ; 10b4 - jp Function1132 ; 10b7 -; 10ba - -Function10ba:: - push de ; 10ba - ld de, $1164 ; 10bb - jp Function1132 ; 10be -; 10c1 - -Function10c1:: - push de ; 10c1 - ld de, $1167 ; 10c2 - jp Function1132 ; 10c5 -; 10c8 - -Function10c8:: - push de ; 10c8 - ld de, $116c ; 10c9 - jp Function1132 ; 10cc -; 10cf - -Function10cf:: - push de ; 10cf - ld de, $116c ; 10d0 - jp Function1132 ; 10d3 -; 10d6 - -Function10d6:: - push de ; 10d6 - ld de, $116c ; 10d7 - jp Function1132 ; 10da -; 10dd - -Function10dd:: - ldh a, [$ffe6] ; 10dd - xor $1 ; 10df - jr Function10e5 ; 10e1 -; 10e3 - -Function10e3:: - ldh a, [$ffe6] ; 10e3 - push de ; 10e5 - and a ; 10e6 - jr nz, Function10ee ; 10e7 - ld de, $cb01 ; 10e9 - jr Function1132 ; 10ec -; 10ee - -Function10ee:: - ld de, $115d ; 10ee - call Functionf74 ; 10f1 - ld h, b ; 10f4 - ld l, c ; 10f5 - ld de, $caf6 ; 10f6 - jr Function1132 ; 10f9 -; 10fb - -Function10fb:: - push de ; 10fb - ld a, [$d042] ; 10fc - and a ; 10ff - jr nz, Function112d ; 1100 - ld a, [$d11d] ; 1102 - cp $9 ; 1105 - jr z, Function1128 ; 1107 - cp $2a ; 1109 - jr z, Function1128 ; 110b - ld de, $cb34 ; 110d - call Functionf74 ; 1110 - ld h, b ; 1113 - ld l, c ; 1114 - ld de, $116a ; 1115 - call Functionf74 ; 1118 - push bc ; 111b - ld hl, $58f2 ; 111c - ld a, $e ; 111f - rst FarCall ; 1121 - pop hl ; 1122 - ld de, $cf6b ; 1123 - jr Function1132 ; 1126 -; 1128 - -Function1128:: - ld de, $d1b9 ; 1128 - jr Function1132 ; 112b -; 112d - -Function112d:: - ld de, $cb34 ; 112d - jr Function1132 ; 1130 -; 1132 - -Function1132:: - call Functionf74 ; 1132 - ld h, b ; 1135 - ld l, c ; 1136 - pop de ; 1137 - jp Functionf7f ; 1138 -; 113b - -Function113b:: - sub e ; 113b - adc h ; 113c - ld d, b ; 113d - sub e ; 113e - sub c ; 113f - add b ; 1140 - adc b ; 1141 - adc l ; 1142 - add h ; 1143 - sub c ; 1144 - ld d, b ; 1145 - adc a ; 1146 - add d ; 1147 - ld d, b ; 1148 - sub c ; 1149 - adc [hl] ; 114a - add d ; 114b - adc d ; 114c - add h ; 114d - sub e ; 114e - ld d, b ; 114f - adc a ; 1150 - adc [hl] ; 1151 - adc d ; 1152 - ld [$ba50], a ; 1153 - or e ; 1156 - add hl, hl ; 1157 - or a ; 1158 - ld d, b ; 1159 - ld [hl], l ; 115a - ld [hl], l ; 115b - ld d, b ; 115c - add h ; 115d - xor l ; 115e - and h ; 115f - xor h ; 1160 - cp b ; 1161 - ld a, a ; 1162 - ld d, b ; 1163 - pop hl ; 1164 - ld [$ff00+c], a ; 1165 - ld d, b ; 1166 - ld [hl], b ; 1167 - ld [hl], c ; 1168 - ld d, b ; 1169 - ld a, a ; 116a - ld d, b ; 116b - ld d, b ; 116c - pop hl ; 116d - ld bc, $28 ; 116e - add hl, bc ; 1171 - push hl ; 1172 - jp Functionf7f ; 1173 -; 1176 - -Function1176:: - pop hl ; 1176 - ld bc, $14 ; 1177 - add hl, bc ; 117a - push hl ; 117b - jp Functionf7f ; 117c -; 117f - -Function117f:: - pop hl ; 117f - ld hl, $c4e1 ; 1180 - push hl ; 1183 - jp Functionf7f ; 1184 -; 1187 - -Function1187:: - push de ; 1187 - ld a, [$d042] ; 1188 - cp $3 ; 118b - jr z, Function1192 ; 118d - call Function1255 ; 118f - call Function123a ; 1192 - call Functiona60 ; 1195 - ld hl, $c4b9 ; 1198 - ld bc, $312 ; 119b - call Functionebd ; 119e - call Function125b ; 11a1 - ld c, $14 ; 11a4 - call Function33c ; 11a6 - ld hl, $c4b9 ; 11a9 - pop de ; 11ac - jp Functionf7f ; 11ad -; 11b0 - -Function11b0:: - ld a, [$d042] ; 11b0 - or a ; 11b3 - jr nz, Function11b9 ; 11b4 - call Function1255 ; 11b6 - call Function123a ; 11b9 - push de ; 11bc - call Functiona60 ; 11bd - pop de ; 11c0 - ld a, [$d042] ; 11c1 - or a ; 11c4 - call z, Function125b ; 11c5 - push de ; 11c8 - call Function121d ; 11c9 - call Function121d ; 11cc - ld hl, $c4e1 ; 11cf - pop de ; 11d2 - jp Functionf7f ; 11d3 -; 11d6 - -Function11d6:: - push de ; 11d6 - ld de, $11e5 ; 11d7 - ld b, h ; 11da - ld c, l ; 11db - call Functionf74 ; 11dc - ld h, b ; 11df - ld l, c ; 11e0 - pop de ; 11e1 - jp Functionf7f ; 11e2 -; 11e5 - -Function11e5:: - ld c, e ; 11e5 - ld d, b ; 11e6 - ld [hl], $e8 ; 11e7 - pop hl ; 11e9 - ret ; 11ea -; 11eb - -Function11eb:: - ld a, [$d042] ; 11eb - cp $3 ; 11ee - jr z, Function11f5 ; 11f0 - call Function1255 ; 11f2 - call Function123a ; 11f5 - call Functiona60 ; 11f8 - ld a, [$d042] ; 11fb - cp $3 ; 11fe - jr z, Function1205 ; 1200 - call Function125b ; 1202 - pop hl ; 1205 - ld de, $120b ; 1206 - dec de ; 1209 - ret ; 120a -; 120b - -Function120b:: - ld d, b ; 120b - ld b, h ; 120c - ld c, l ; 120d - pop hl ; 120e - ld de, $1214 ; 120f - dec de ; 1212 - ret ; 1213 -; 1214 - -Function1214:: - add hl, bc ; 1214 - or d ; 1215 - rst $38 ; 1216 - ld [de], a ; 1217 - nop ; 1218 - add e ; 1219 - and l ; 121a - - ; 121b - ld d, a ; 121c - ld hl, $c4b8 ; 121d - ld de, $c4a4 ; 1220 - ld bc, $3c ; 1223 - call Function311a ; 1226 - ld hl, $c4e1 ; 1229 - ld a, $7f ; 122c - ld bc, $12 ; 122e - call Function314c ; 1231 - ld c, $5 ; 1234 - call Function33c ; 1236 - ret ; 1239 -; 123a - -Function123a:: - push bc ; 123a - ldh a, [$ffda] ; 123b - push af ; 123d - ld a, $1 ; 123e - ldh [$ffda], a ; 1240 - call WaitBGMap ; 1242 - pop af ; 1245 - ldh [$ffda], a ; 1246 - pop bc ; 1248 - ret ; 1249 -; 124a - -Function124a:: - push af ; 124a - push hl ; 124b - ld a, b ; 124c - ld bc, $ffec ; 124d - add hl, bc ; 1250 - ld [hl], a ; 1251 - pop hl ; 1252 - pop af ; 1253 - ret ; 1254 -; 1255 - -Function1255:: - ld a, $ee ; 1255 - ld [$c506], a ; 1257 - ret ; 125a -; 125b - -Function125b:: - ld a, $7a ; 125b - ld [$c506], a ; 125d - ret ; 1260 -; 1261 - -Function1261:: - ld b, a ; 1261 - ldh a, [hROMBank] ; 1262 - push af ; 1264 - ld a, b ; 1265 - rst Bankswitch ; 1266 - call Functionf74 ; 1267 - pop af ; 126a - rst Bankswitch ; 126b - ret ; 126c -; 126d - -Function126d:: - ld hl, $1271 ; 126d - ret ; 1270 -; 1271 - -Function1271:: - ld d, b ; 1271 - ld a, [$d19c] ; 1272 - push af ; 1275 - set 1, a ; 1276 - ld [$d19c], a ; 1278 - call Function1283 ; 127b - pop af ; 127e - ld [$d19c], a ; 127f - ret ; 1282 -; 1283 - -Function1283:: - ld a, [hli] ; 1283 - cp $50 ; 1284 - ret z ; 1286 - call Function128c ; 1287 - jr Function1283 ; 128a -; 128c - -Function128c:: - push hl ; 128c - push bc ; 128d - ld c, a ; 128e - ld b, $0 ; 128f - ld hl, $129d ; 1291 - add hl, bc ; 1294 - add hl, bc ; 1295 - ld e, [hl] ; 1296 - inc hl ; 1297 - ld d, [hl] ; 1298 - pop bc ; 1299 - pop hl ; 129a - push de ; 129b - ret ; 129c -; 129d - -Function129d:: - rl d ; 129d - sub a, $12 ; 129f - - ; 12a1 - ld [de], a ; 12a2 - dec c ; 12a3 - inc de ; 12a4 - jr Function12ba ; 12a5 -; 12a7 - -Function12a7:: - jr z, Function12bc ; 12a7 - inc l ; 12a9 - inc de ; 12aa - ld b, d ; 12ab - inc de ; 12ac - ld d, c ; 12ad - inc de ; 12ae - ld d, d ; 12af - inc de ; 12b0 - ld l, l ; 12b1 - inc de ; 12b2 - add b ; 12b3 - inc de ; 12b4 - jp Functione213 ; 12b5 -; 12b8 - -Function12b8:: - inc de ; 12b8 - add b ; 12b9 - inc de ; 12ba - add b ; 12bb - inc de ; 12bc - add b ; 12bd - inc de ; 12be - add b ; 12bf - inc de ; 12c0 - add b ; 12c1 - inc de ; 12c2 - add b ; 12c3 - inc de ; 12c4 - ld [$213], a ; 12c5 - inc d ; 12c8 - ld [$ff00+c], a ; 12c9 - ld [de], a ; 12ca - ld d, h ; 12cb - ld e, l ; 12cc - ld h, b ; 12cd - ld l, c ; 12ce - call Functionf74 ; 12cf - ld h, d ; 12d2 - ld l, e ; 12d3 - inc hl ; 12d4 - ret ; 12d5 -; 12d6 - -Function12d6:: - ld a, [hli] ; 12d6 - ld e, a ; 12d7 - ld a, [hli] ; 12d8 - ld d, a ; 12d9 - push hl ; 12da - ld h, b ; 12db - ld l, c ; 12dc - call Functionf74 ; 12dd - pop hl ; 12e0 - ret ; 12e1 -; 12e2 - -Function12e2:: - ldh a, [hROMBank] ; 12e2 - push af ; 12e4 - ld a, [hli] ; 12e5 - ld e, a ; 12e6 - ld a, [hli] ; 12e7 - ld d, a ; 12e8 - ld a, [hli] ; 12e9 - ldh [hROMBank], a ; 12ea - ld MBC3RomBank, a ; 12ec - push hl ; 12ef - ld h, d ; 12f0 - ld l, e ; 12f1 - call Function1283 ; 12f2 - pop hl ; 12f5 - pop af ; 12f6 - ldh [hROMBank], a ; 12f7 - ld MBC3RomBank, a ; 12f9 - ret ; 12fc -; 12fd - -Function12fd:: - ld a, [hli] ; 12fd - ld e, a ; 12fe - ld a, [hli] ; 12ff - ld d, a ; 1300 - ld a, [hli] ; 1301 - push hl ; 1302 - ld h, b ; 1303 - ld l, c ; 1304 - ld c, a ; 1305 - call Function3ade ; 1306 - ld b, h ; 1309 - ld c, l ; 130a - pop hl ; 130b - ret ; 130c -; 130d - -Function130d:: - ld a, [hli] ; 130d - ld [$cfd6], a ; 130e - ld c, a ; 1311 - ld a, [hli] ; 1312 - ld [$cfd7], a ; 1313 - ld b, a ; 1316 - ret ; 1317 -; 1318 - -Function1318:: - ld a, [hli] ; 1318 - ld e, a ; 1319 - ld a, [hli] ; 131a - ld d, a ; 131b - ld a, [hli] ; 131c - ld b, a ; 131d - ld a, [hli] ; 131e - ld c, a ; 131f - push hl ; 1320 - ld h, d ; 1321 - ld l, e ; 1322 - call Functioneef ; 1323 - pop hl ; 1326 - ret ; 1327 -; 1328 - -Function1328:: - ld bc, $c4e1 ; 1328 - ret ; 132b -; 132c - -Function132c:: - ld a, [$d042] ; 132c - cp $3 ; 132f - jp z, Function13e2 ; 1331 - push hl ; 1334 - call Function1255 ; 1335 - push bc ; 1338 - call Functiona60 ; 1339 - pop bc ; 133c - call Function125b ; 133d - pop hl ; 1340 - ret ; 1341 -; 1342 - -Function1342:: - push hl ; 1342 - call Function125b ; 1343 - call Function121d ; 1346 - call Function121d ; 1349 - pop hl ; 134c - ld bc, $c4e1 ; 134d - ret ; 1350 -; 1351 - -Function1351:: - jp [hl] ; 1351 - ld a, [hli] ; 1352 - ld e, a ; 1353 - ld a, [hli] ; 1354 - ld d, a ; 1355 - ld a, [hli] ; 1356 - push hl ; 1357 - ld h, b ; 1358 - ld l, c ; 1359 - ld b, a ; 135a - and $f ; 135b - ld c, a ; 135d - ld a, b ; 135e - and $f0 ; 135f - swap a ; 1361 - set 6, a ; 1363 - ld b, a ; 1365 - call Function323d ; 1366 - ld b, h ; 1369 - ld c, l ; 136a - pop hl ; 136b - ret ; 136c -; 136d - -Function136d:: - push hl ; 136d - push bc ; 136e - call Function935 ; 136f - ldh a, [$ffaa] ; 1372 - and $3 ; 1374 - jr nz, Function137d ; 1376 - ld c, $1e ; 1378 - call Function33c ; 137a - pop bc ; 137d - pop hl ; 137e - ret ; 137f -; 1380 - -Function1380:: - push bc ; 1380 - dec hl ; 1381 - ld a, [hli] ; 1382 - ld b, a ; 1383 - push hl ; 1384 - ld hl, $13ad ; 1385 - ld a, [hli] ; 1388 - cp $ff ; 1389 - jr z, Function139f ; 138b - cp b ; 138d - jr z, Function1394 ; 138e - inc hl ; 1390 - inc hl ; 1391 - jr Function1388 ; 1392 -; 1394 - -Function1394:: - push de ; 1394 - ld e, [hl] ; 1395 - inc hl ; 1396 - ld d, [hl] ; 1397 - call Function3e24 ; 1398 - call Function3e56 ; 139b - pop de ; 139e - pop hl ; 139f - pop bc ; 13a0 - ret ; 13a1 -; 13a2 - -Function13a2:: - push de ; 13a2 - ld e, [hl] ; 13a3 - inc hl ; 13a4 - ld d, [hl] ; 13a5 - call Function39f9 ; 13a6 - pop de ; 13a9 - pop hl ; 13aa - pop bc ; 13ab - ret ; 13ac -; 13ad - -Function13ad:: - dec bc ; 13ad - nop ; 13ae - nop ; 13af - ld [de], a ; 13b0 - dec l ; 13b1 - nop ; 13b2 - ld c, $9 ; 13b3 - nop ; 13b5 - rrca ; 13b6 - ld bc, $1000 ; 13b7 - ld [bc], a ; 13ba - nop ; 13bb - ld de, $a ; 13bc - inc de ; 13bf - inc l ; 13c0 - nop ; 13c1 - rst $38 ; 13c2 - ld a, [hli] ; 13c3 - ld d, a ; 13c4 - push hl ; 13c5 - ld h, b ; 13c6 - ld l, c ; 13c7 - push de ; 13c8 - ld a, $75 ; 13c9 - ld [hli], a ; 13cb - call Function935 ; 13cc - ldh a, [$ffaa] ; 13cf - and $3 ; 13d1 - jr nz, Function13da ; 13d3 - ld c, $a ; 13d5 - call Function33c ; 13d7 - pop de ; 13da - dec d ; 13db - jr nz, Function13c8 ; 13dc - ld b, h ; 13de - ld c, l ; 13df - pop hl ; 13e0 - ret ; 13e1 -; 13e2 - -Function13e2:: - push hl ; 13e2 - push bc ; 13e3 - call Functiona60 ; 13e4 - pop bc ; 13e7 - pop hl ; 13e8 - ret ; 13e9 -; 13ea - -Function13ea:: - ld a, [hli] ; 13ea - push hl ; 13eb - ld e, a ; 13ec - ld d, $0 ; 13ed - ld hl, $4000 ; 13ef - add hl, de ; 13f2 - add hl, de ; 13f3 - ld a, $9 ; 13f4 - call Function313c ; 13f6 - ld d, h ; 13f9 - ld e, l ; 13fa - ld h, b ; 13fb - ld l, c ; 13fc - call Functionf74 ; 13fd - pop hl ; 1400 - ret ; 1401 -; 1402 - -Function1402:: - call Function35b9 ; 1402 - push hl ; 1405 - push bc ; 1406 - ld c, a ; 1407 - ld b, $0 ; 1408 - ld hl, $1422 ; 140a - add hl, bc ; 140d - add hl, bc ; 140e - ld a, [hli] ; 140f - ld h, [hl] ; 1410 - ld l, a ; 1411 - ld d, h ; 1412 - ld e, l ; 1413 - pop hl ; 1414 - call Functionf74 ; 1415 - ld h, b ; 1418 - ld l, c ; 1419 - ld de, $1454 ; 141a - call Functionf74 ; 141d - pop hl ; 1420 - ret ; 1421 -; 1422 - -Function1422:: - jr nc, Function1438 ; 1422 - inc [hl] ; 1424 - inc d ; 1425 - jr c, Function143c ; 1426 - dec a ; 1428 - inc d ; 1429 - ld b, h ; 142a - inc d ; 142b - ld c, d ; 142c - inc d ; 142d - ld c, [hl] ; 142e - inc d ; 142f - sub d ; 1430 - sub h ; 1431 - adc l ; 1432 - ld d, b ; 1433 - adc h ; 1434 - adc [hl] ; 1435 - adc l ; 1436 - ld d, b ; 1437 - sub e ; 1438 - sub h ; 1439 - add h ; 143a - sub d ; 143b - ld d, b ; 143c - sub [hl] ; 143d - add h ; 143e - add e ; 143f - adc l ; 1440 - add h ; 1441 - sub d ; 1442 - ld d, b ; 1443 - sub e ; 1444 - add a ; 1445 - sub h ; 1446 - sub c ; 1447 - sub d ; 1448 - ld d, b ; 1449 - add l ; 144a - sub c ; 144b - adc b ; 144c - ld d, b ; 144d - sub d ; 144e - add b ; 144f - sub e ; 1450 - sub h ; 1451 - sub c ; 1452 - ld d, b ; 1453 - add e ; 1454 - add b ; 1455 - sbc b ; 1456 - ld d, b ; 1457 - ldh a, [$ffdd] ; 1458 - and a ; 145a - ret z ; 145b - ld [$ffdb], sp ; 145c - ld hl, $cc70 ; 145f - ld sp, hl ; 1462 - ld hl, $cc48 ; 1463 - ld de, $cc20 ; 1466 - pop bc ; 1469 - ld a, $1 ; 146a - ldh [$ff4f], a ; 146c - ld a, [hli] ; 146e - ld [bc], a ; 146f - inc c ; 1470 - ld a, [hli] ; 1471 - ld [bc], a ; 1472 - dec c ; 1473 - ld a, $0 ; 1474 - ldh [$ff4f], a ; 1476 - ld a, [de] ; 1478 - inc de ; 1479 - ld [bc], a ; 147a - inc c ; 147b - ld a, [de] ; 147c - inc de ; 147d - ld [bc], a ; 147e - pop bc ; 147f - ld a, $1 ; 1480 - ldh [$ff4f], a ; 1482 - ld a, [hli] ; 1484 - ld [bc], a ; 1485 - inc c ; 1486 - ld a, [hli] ; 1487 - ld [bc], a ; 1488 - dec c ; 1489 - ld a, $0 ; 148a - ldh [$ff4f], a ; 148c - ld a, [de] ; 148e - inc de ; 148f - ld [bc], a ; 1490 - inc c ; 1491 - ld a, [de] ; 1492 - inc de ; 1493 - ld [bc], a ; 1494 - ldh a, [$ffde] ; 1495 - dec a ; 1497 - dec a ; 1498 - ldh [$ffde], a ; 1499 - jr nz, Function1469 ; 149b - ldh a, [$ffdb] ; 149d - ld l, a ; 149f - ldh a, [$ffdc] ; 14a0 - ld h, a ; 14a2 - ld sp, hl ; 14a3 - xor a ; 14a4 - ldh [$ffdd], a ; 14a5 - scf ; 14a7 - ret ; 14a8 -; 14a9 - -Function14a9:: - ldh a, [$ffd6] ; 14a9 - and a ; 14ab - ret z ; 14ac - ldh a, [$ffd7] ; 14ad - and a ; 14af - jr z, Function14b7 ; 14b0 - call Function32e ; 14b2 - jr Function14a9 ; 14b5 -; 14b7 - -Function14b7:: - xor a ; 14b7 - ldh [$ffd6], a ; 14b8 - ret ; 14ba -; 14bb - -Function14bb:: - ldh a, [$ffd6] ; 14bb - and a ; 14bd - ret z ; 14be - dec a ; 14bf - jr z, Function14f9 ; 14c0 - dec a ; 14c2 - jr z, Function14ea ; 14c3 - dec a ; 14c5 - ldh a, [$ffd8] ; 14c6 - ld l, a ; 14c8 - ldh a, [$ffd9] ; 14c9 - ld h, a ; 14cb - push hl ; 14cc - xor a ; 14cd - ldh [$ffd8], a ; 14ce - ld a, $9c ; 14d0 - ldh [$ffd9], a ; 14d2 - ldh a, [$ffd6] ; 14d4 - push af ; 14d6 - cp $3 ; 14d7 - call z, Function14f9 ; 14d9 - pop af ; 14dc - cp $4 ; 14dd - call z, Function14ea ; 14df - pop hl ; 14e2 - ld a, l ; 14e3 - ldh [$ffd8], a ; 14e4 - ld a, h ; 14e6 - ldh [$ffd9], a ; 14e7 - ret ; 14e9 -; 14ea - -Function14ea:: - ld a, $1 ; 14ea - ldh [$ff4f], a ; 14ec - ld hl, $ccd9 ; 14ee - call Function14fc ; 14f1 - ld a, $0 ; 14f4 - ldh [$ff4f], a ; 14f6 - ret ; 14f8 -; 14f9 - -Function14f9:: - ld hl, $c3a0 ; 14f9 - ld [$ffdb], sp ; 14fc - ldh a, [$ffd7] ; 14ff - and a ; 1501 - jr z, Function152c ; 1502 - dec a ; 1504 - jr z, Function1519 ; 1505 - ld de, $f0 ; 1507 - add hl, de ; 150a - ld sp, hl ; 150b - ldh a, [$ffd9] ; 150c - ld h, a ; 150e - ldh a, [$ffd8] ; 150f - ld l, a ; 1511 - ld de, $180 ; 1512 - add hl, de ; 1515 - xor a ; 1516 - jr Function1535 ; 1517 -; 1519 - -Function1519:: - ld de, $78 ; 1519 - add hl, de ; 151c - ld sp, hl ; 151d - ldh a, [$ffd9] ; 151e - ld h, a ; 1520 - ldh a, [$ffd8] ; 1521 - ld l, a ; 1523 - ld de, $c0 ; 1524 - add hl, de ; 1527 - ld a, $2 ; 1528 - jr Function1535 ; 152a -; 152c - -Function152c:: - ld sp, hl ; 152c - ldh a, [$ffd9] ; 152d - ld h, a ; 152f - ldh a, [$ffd8] ; 1530 - ld l, a ; 1532 - ld a, $1 ; 1533 - ldh [$ffd7], a ; 1535 - ld a, $6 ; 1537 - ld bc, $d ; 1539 - pop de ; 153c - ld [hl], e ; 153d - inc l ; 153e - ld [hl], d ; 153f - inc l ; 1540 - pop de ; 1541 - ld [hl], e ; 1542 - inc l ; 1543 - ld [hl], d ; 1544 - inc l ; 1545 - pop de ; 1546 - ld [hl], e ; 1547 - inc l ; 1548 - ld [hl], d ; 1549 - inc l ; 154a - pop de ; 154b - ld [hl], e ; 154c - inc l ; 154d - ld [hl], d ; 154e - inc l ; 154f - pop de ; 1550 - ld [hl], e ; 1551 - inc l ; 1552 - ld [hl], d ; 1553 - inc l ; 1554 - pop de ; 1555 - ld [hl], e ; 1556 - inc l ; 1557 - ld [hl], d ; 1558 - inc l ; 1559 - pop de ; 155a - ld [hl], e ; 155b - inc l ; 155c - ld [hl], d ; 155d - inc l ; 155e - pop de ; 155f - ld [hl], e ; 1560 - inc l ; 1561 - ld [hl], d ; 1562 - inc l ; 1563 - pop de ; 1564 - ld [hl], e ; 1565 - inc l ; 1566 - ld [hl], d ; 1567 - inc l ; 1568 - pop de ; 1569 - ld [hl], e ; 156a - inc l ; 156b - ld [hl], d ; 156c - add hl, bc ; 156d - dec a ; 156e - jr nz, Function153c ; 156f - ldh a, [$ffdb] ; 1571 - ld l, a ; 1573 - ldh a, [$ffdc] ; 1574 - ld h, a ; 1576 - ld sp, hl ; 1577 - ret ; 1578 -; 1579 - -Function1579:: - ld a, [$ce6c] ; 1579 - and a ; 157c - ret z ; 157d - ld [$ffdb], sp ; 157e - ld hl, $ce6d ; 1581 - ld a, [hli] ; 1584 - ld h, [hl] ; 1585 - ld l, a ; 1586 - ld sp, hl ; 1587 - ld hl, $ce6f ; 1588 - ld a, [hli] ; 158b - ld h, [hl] ; 158c - ld l, a ; 158d - ld a, [$ce6c] ; 158e - ld b, a ; 1591 - xor a ; 1592 - ld [$ce6c], a ; 1593 - pop de ; 1596 - ld [hl], e ; 1597 - inc l ; 1598 - ld [hl], e ; 1599 - inc l ; 159a - ld [hl], d ; 159b - inc l ; 159c - ld [hl], d ; 159d - inc l ; 159e - pop de ; 159f - ld [hl], e ; 15a0 - inc l ; 15a1 - ld [hl], e ; 15a2 - inc l ; 15a3 - ld [hl], d ; 15a4 - inc l ; 15a5 - ld [hl], d ; 15a6 - inc l ; 15a7 - pop de ; 15a8 - ld [hl], e ; 15a9 - inc l ; 15aa - ld [hl], e ; 15ab - inc l ; 15ac - ld [hl], d ; 15ad - inc l ; 15ae - ld [hl], d ; 15af - inc l ; 15b0 - pop de ; 15b1 - ld [hl], e ; 15b2 - inc l ; 15b3 - ld [hl], e ; 15b4 - inc l ; 15b5 - ld [hl], d ; 15b6 - inc l ; 15b7 - ld [hl], d ; 15b8 - inc hl ; 15b9 - dec b ; 15ba - jr nz, Function1596 ; 15bb - ld a, l ; 15bd - ld [$ce6f], a ; 15be - ld a, h ; 15c1 - ld [$ce70], a ; 15c2 - ld [$ce6d], sp ; 15c5 - ldh a, [$ffdb] ; 15c8 - ld l, a ; 15ca - ldh a, [$ffdc] ; 15cb - ld h, a ; 15cd - ld sp, hl ; 15ce - ret ; 15cf -; 15d0 - -Function15d0:: - ld a, [$ce67] ; 15d0 - and a ; 15d3 - ret z ; 15d4 - ld [$ffdb], sp ; 15d5 - ld hl, $ce68 ; 15d8 - ld a, [hli] ; 15db - ld h, [hl] ; 15dc - ld l, a ; 15dd - ld sp, hl ; 15de - ld hl, $ce6a ; 15df - ld a, [hli] ; 15e2 - ld h, [hl] ; 15e3 - ld l, a ; 15e4 - ld a, [$ce67] ; 15e5 - ld b, a ; 15e8 - xor a ; 15e9 - ld [$ce67], a ; 15ea - pop de ; 15ed - ld [hl], e ; 15ee - inc l ; 15ef - ld [hl], d ; 15f0 - inc l ; 15f1 - pop de ; 15f2 - ld [hl], e ; 15f3 - inc l ; 15f4 - ld [hl], d ; 15f5 - inc l ; 15f6 - pop de ; 15f7 - ld [hl], e ; 15f8 - inc l ; 15f9 - ld [hl], d ; 15fa - inc l ; 15fb - pop de ; 15fc - ld [hl], e ; 15fd - inc l ; 15fe - ld [hl], d ; 15ff - inc l ; 1600 - pop de ; 1601 - ld [hl], e ; 1602 - inc l ; 1603 - ld [hl], d ; 1604 - inc l ; 1605 - pop de ; 1606 - ld [hl], e ; 1607 - inc l ; 1608 - ld [hl], d ; 1609 - inc l ; 160a - pop de ; 160b - ld [hl], e ; 160c - inc l ; 160d - ld [hl], d ; 160e - inc l ; 160f - pop de ; 1610 - ld [hl], e ; 1611 - inc l ; 1612 - ld [hl], d ; 1613 - inc hl ; 1614 - dec b ; 1615 - jr nz, Function15ed ; 1616 - ld a, l ; 1618 - ld [$ce6a], a ; 1619 - ld a, h ; 161c - ld [$ce6b], a ; 161d - ld [$ce68], sp ; 1620 - ldh a, [$ffdb] ; 1623 - ld l, a ; 1625 - ldh a, [$ffdc] ; 1626 - ld h, a ; 1628 - ld sp, hl ; 1629 - ret ; 162a -; 162b - -Function162b:: - ldh a, [$ffe0] ; 162b - and a ; 162d - ret z ; 162e - ldh a, [hROMBank] ; 162f - push af ; 1631 - ld a, $3f ; 1632 - rst Bankswitch ; 1634 - call Function4003 ; 1635 - pop af ; 1638 - rst Bankswitch ; 1639 - ret ; 163a -; 163b - -Function163b:: - ret ; 163b - ld hl, $ff40 ; 163c - set 1, [hl] ; 163f - ret ; 1641 -; 1642 - -Function1642:: - nop ; 1642 - ldh a, [$ff9e] ; 1643 - and a ; 1645 - ret z ; 1646 - dec a ; 1647 - jr z, Function1677 ; 1648 - dec a ; 164a - jr z, Function1670 ; 164b - ld a, $2 ; 164d - ldh [$ff9e], a ; 164f - ld hl, $ffd8 ; 1651 - ld a, [hli] ; 1654 - ld h, [hl] ; 1655 - ld l, a ; 1656 - ld de, $14 ; 1657 - add hl, de ; 165a - ld b, $12 ; 165b - ld a, $60 ; 165d - ld [hli], a ; 165f - ld [hli], a ; 1660 - ld [hli], a ; 1661 - ld [hli], a ; 1662 - ld [hli], a ; 1663 - ld [hli], a ; 1664 - ld [hli], a ; 1665 - ld [hli], a ; 1666 - ld [hli], a ; 1667 - ld [hli], a ; 1668 - ld [hli], a ; 1669 - ld [hli], a ; 166a - add hl, de ; 166b - dec b ; 166c - jr nz, Function165f ; 166d - ret ; 166f -; 1670 - -Function1670:: - ld a, $1 ; 1670 - ld de, $240 ; 1672 - jr Function167b ; 1675 -; 1677 - -Function1677:: - xor a ; 1677 - ld de, $320 ; 1678 - ldh [$ff9e], a ; 167b - ld hl, $ffd8 ; 167d - ld a, [hli] ; 1680 - ld h, [hl] ; 1681 - ld l, a ; 1682 - add hl, de ; 1683 - ld b, $e ; 1684 - ld a, $60 ; 1686 - ld [hli], a ; 1688 - ld [hli], a ; 1689 - ld [hli], a ; 168a - ld [hli], a ; 168b - ld [hli], a ; 168c - ld [hli], a ; 168d - ld [hli], a ; 168e - ld [hli], a ; 168f - ld [hli], a ; 1690 - ld [hli], a ; 1691 - ld [hli], a ; 1692 - ld [hli], a ; 1693 - ld [hli], a ; 1694 - ld [hli], a ; 1695 - ld [hli], a ; 1696 - ld [hli], a ; 1697 - dec b ; 1698 - jr nz, Function1688 ; 1699 - ret ; 169b -; 169c - -Function169c:: - push hl ; 169c - push de ; 169d - push bc ; 169e - ld c, a ; 169f - ld a, $5 ; 16a0 - ld hl, $4334 ; 16a2 - rst FarCall ; 16a5 - ld a, c ; 16a6 - pop bc ; 16a7 - pop de ; 16a8 - pop hl ; 16a9 - ret ; 16aa -; 16ab - -Function16ab:: - push hl ; 16ab - push bc ; 16ac - ld hl, $d05f ; 16ad - ld c, $b ; 16b0 - ld b, a ; 16b2 - ldh a, [$ffb1] ; 16b3 - cp $0 ; 16b5 - jr z, Function16c8 ; 16b7 - ld a, b ; 16b9 - cp [hl] ; 16ba - jr z, Function16cd ; 16bb - inc hl ; 16bd - inc hl ; 16be - dec c ; 16bf - jr nz, Function16ba ; 16c0 - ld a, [$d05e] ; 16c2 - scf ; 16c5 - jr Function16d0 ; 16c6 -; 16c8 - -Function16c8:: - ld a, [$d05e] ; 16c8 - jr Function16d0 ; 16cb -; 16cd - -Function16cd:: - inc hl ; 16cd - xor a ; 16ce - ld a, [hl] ; 16cf - pop bc ; 16d0 - pop hl ; 16d1 - ret ; 16d2 -; 16d3 - -Function16d3:: - push de ; 16d3 - push hl ; 16d4 - ld b, a ; 16d5 - ldh a, [hROMBank] ; 16d6 - push af ; 16d8 - ld a, $5 ; 16d9 - rst Bankswitch ; 16db - ld a, b ; 16dc - call Function4317 ; 16dd - ld c, a ; 16e0 - pop de ; 16e1 - ld a, d ; 16e2 - rst Bankswitch ; 16e3 - pop hl ; 16e4 - pop de ; 16e5 - ret ; 16e6 -; 16e7 - -Function16e7:: - ld a, [$d20b] ; 16e7 - call Function16fa ; 16ea - ld b, a ; 16ed - ret ; 16ee -; 16ef - -Function16ef:: - ld a, [$d20b] ; 16ef - call Function16fa ; 16f2 - sub a, $1 ; 16f5 - ret z ; 16f7 - and a ; 16f8 - ret ; 16f9 -; 16fa - -Function16fa:: - push de ; 16fa - push hl ; 16fb - ld hl, $74be ; 16fc - ld e, a ; 16ff - ld d, $0 ; 1700 - add hl, de ; 1702 - ldh a, [hROMBank] ; 1703 - push af ; 1705 - ld a, $3e ; 1706 - rst Bankswitch ; 1708 - ld e, [hl] ; 1709 - pop af ; 170a - rst Bankswitch ; 170b - ld a, e ; 170c - and $f ; 170d - pop hl ; 170f - pop de ; 1710 - ret ; 1711 -; 1712 - -Function1712:: - ld d, a ; 1712 - and $f0 ; 1713 - cp $10 ; 1715 - jr z, Function171f ; 1717 - cp $20 ; 1719 - jr z, Function1725 ; 171b - scf ; 171d - ret ; 171e -; 171f - -Function171f:: - ld a, d ; 171f - and $7 ; 1720 - ret z ; 1722 - scf ; 1723 - ret ; 1724 -; 1725 - -Function1725:: - ld a, d ; 1725 - and $7 ; 1726 - ret z ; 1728 - scf ; 1729 - ret ; 172a -; 172b - -Function172b:: - cp $14 ; 172b - ret z ; 172d - cp $1c ; 172e - ret ; 1730 -; 1731 - -Function1731:: - cp $12 ; 1731 - ret z ; 1733 - cp $1a ; 1734 - ret ; 1736 -; 1737 - -Function1737:: - cp $15 ; 1737 - ret z ; 1739 - cp $1d ; 173a - ret ; 173c -; 173d - -Function173d:: - cp $90 ; 173d - ret z ; 173f - cp $98 ; 1740 - ret ; 1742 -; 1743 - -Function1743:: - cp $60 ; 1743 - ret z ; 1745 - cp $68 ; 1746 - ret ; 1748 -; 1749 - -Function1749:: - cp $23 ; 1749 - ret z ; 174b - cp $2b ; 174c - ret z ; 174e - scf ; 174f - ret ; 1750 -; 1751 - -Function1751:: - nop ; 1751 - cp $24 ; 1752 - ret z ; 1754 - cp $2c ; 1755 - ret z ; 1757 - scf ; 1758 - ret ; 1759 -; 175a - -Function175a:: - cp $33 ; 175a - ret z ; 175c - cp $3b ; 175d - ret ; 175f -; 1760 - -Function1760:: - ld a, [$d20b] ; 1760 - cp $71 ; 1763 - ret z ; 1765 - cp $79 ; 1766 - ret z ; 1768 - cp $7a ; 1769 - ret z ; 176b - cp $7b ; 176c - ret ; 176e -; 176f - -Function176f:: - ld hl, $d445 ; 176f - ld bc, $10 ; 1772 - call Function31a3 ; 1775 - ld b, h ; 1778 - ld c, l ; 1779 - ret ; 177a -; 177b - -Function177b:: - ldh [$ffb1], a ; 177b - call Function176f ; 177d - ld hl, $0 ; 1780 - add hl, bc ; 1783 - ld a, [hl] ; 1784 - cp $ff ; 1785 - jr z, Function1790 ; 1787 - ldh [$ffb2], a ; 1789 - call Function1982 ; 178b - and a ; 178e - ret ; 178f -; 1790 - -Function1790:: - scf ; 1790 - ret ; 1791 -; 1792 - -Function1792:: - ld hl, $6 ; 1792 - add hl, bc ; 1795 - ld a, [hl] ; 1796 - cp $ff ; 1797 - jr nz, Function17be ; 1799 - ld hl, $7 ; 179b - add hl, bc ; 179e - ld a, [hl] ; 179f - cp $ff ; 17a0 - jr z, Function17b9 ; 17a2 - ld hl, $17bb ; 17a4 - ld a, [$d157] ; 17a7 - add l ; 17aa - ld l, a ; 17ab - jr nc, Function17af ; 17ac - inc h ; 17ae - ld a, [hl] ; 17af - ld hl, $7 ; 17b0 - add hl, bc ; 17b3 - and [hl] ; 17b4 - jr nz, Function17b9 ; 17b5 - scf ; 17b7 - ret ; 17b8 -; 17b9 - -Function17b9:: - and a ; 17b9 - ret ; 17ba -; 17bb - -Function17bb:: - ld bc, $402 ; 17bb - ld hl, $6 ; 17be - add hl, bc ; 17c1 - ld d, [hl] ; 17c2 - ld hl, $7 ; 17c3 - add hl, bc ; 17c6 - ld e, [hl] ; 17c7 - ld hl, $ff96 ; 17c8 - ld a, d ; 17cb - cp e ; 17cc - jr z, Function17e6 ; 17cd - jr c, Function17dc ; 17cf - ld a, [hl] ; 17d1 - cp d ; 17d2 - jr nc, Function17e6 ; 17d3 - cp e ; 17d5 - jr c, Function17e6 ; 17d6 - jr z, Function17e6 ; 17d8 - jr Function17e8 ; 17da -; 17dc - -Function17dc:: - ld a, e ; 17dc - cp [hl] ; 17dd - jr c, Function17e8 ; 17de - ld a, [hl] ; 17e0 - cp d ; 17e1 - jr nc, Function17e6 ; 17e2 - jr Function17e8 ; 17e4 -; 17e6 - -Function17e6:: - and a ; 17e6 - ret ; 17e7 -; 17e8 - -Function17e8:: - scf ; 17e8 - ret ; 17e9 -; 17ea - -Function17ea:: - ldh [$ffb1], a ; 17ea - call Function176f ; 17ec - call Function46d7 ; 17ef - ret ; 17f2 -; 17f3 - -Function17f3:: - ldh [$ffb1], a ; 17f3 - call Function2841 ; 17f5 - ldh a, [$ffb1] ; 17f8 - call Function176f ; 17fa - ld a, $2 ; 17fd - ld hl, $46d7 ; 17ff - rst FarCall ; 1802 - ret ; 1803 -; 1804 - -Function1804:: - ldh [$ffb1], a ; 1804 - call Function176f ; 1806 - ld hl, $0 ; 1809 - add hl, bc ; 180c - ld a, [hl] ; 180d - cp $ff ; 180e - ret z ; 1810 - ld [hl], $ff ; 1811 - push af ; 1813 - call Function1822 ; 1814 - pop af ; 1817 - call Function1982 ; 1818 - ld a, $1 ; 181b - ld hl, $4358 ; 181d - rst FarCall ; 1820 - ret ; 1821 -; 1822 - -Function1822:: - ld hl, $d1f4 ; 1822 - cp [hl] ; 1825 - jr z, Function182d ; 1826 - ld hl, $d1f5 ; 1828 - cp [hl] ; 182b - ret nz ; 182c - ld a, $1 ; 182d - ld hl, $5795 ; 182f - rst FarCall ; 1832 - ld a, $ff ; 1833 - ld [$d1f4], a ; 1835 - ld [$d1f5], a ; 1838 - ret ; 183b -; 183c - -Function183c:: - call Function1804 ; 183c - call Function2835 ; 183f - ret ; 1842 -; 1843 - -Function1843:: - push hl ; 1843 - call Function176f ; 1844 - ld d, b ; 1847 - ld e, c ; 1848 - ld a, $ff ; 1849 - ld [de], a ; 184b - inc de ; 184c - pop hl ; 184d - ld bc, $f ; 184e - call Function311a ; 1851 - ret ; 1854 -; 1855 - -Function1855:: - call Function176f ; 1855 - ld hl, $0 ; 1858 - add hl, bc ; 185b - ld a, [hl] ; 185c - push af ; 185d - ld [hl], $ff ; 185e - inc hl ; 1860 - ld bc, $f ; 1861 - xor a ; 1864 - call Function314c ; 1865 - pop af ; 1868 - cp $ff ; 1869 - ret z ; 186b - cp $d ; 186c - ret nc ; 186e - ld b, a ; 186f - ld a, [$d1f4] ; 1870 - cp b ; 1873 - jr nz, Function187b ; 1874 - ld a, $ff ; 1876 - ld [$d1f4], a ; 1878 - ld a, b ; 187b - call Function1982 ; 187c - ld a, $1 ; 187f - ld hl, $4358 ; 1881 - rst FarCall ; 1884 - ret ; 1885 -; 1886 - -Function1886:: - ld [$ce8b], a ; 1886 - ldh a, [hROMBank] ; 1889 - ld [$ce8c], a ; 188b - ld a, l ; 188e - ld [$ce8d], a ; 188f - ld a, h ; 1892 - ld [$ce8e], a ; 1893 - ld a, [$ce8b] ; 1896 - call Function177b ; 1899 - ret c ; 189c - ld hl, $3 ; 189d - add hl, bc ; 18a0 - ld [hl], $14 ; 18a1 - ld hl, $9 ; 18a3 - add hl, bc ; 18a6 - ld [hl], $0 ; 18a7 - ld hl, $cfe5 ; 18a9 - set 7, [hl] ; 18ac - and a ; 18ae - ret ; 18af -; 18b0 - -Function18b0:: - push bc ; 18b0 - push de ; 18b1 - ld hl, $d1fd ; 18b2 - ld de, $28 ; 18b5 - ld c, $d ; 18b8 - ld a, [hl] ; 18ba - and a ; 18bb - jr z, Function18c5 ; 18bc - add hl, de ; 18be - dec c ; 18bf - jr nz, Function18ba ; 18c0 - xor a ; 18c2 - jr Function18c9 ; 18c3 -; 18c5 - -Function18c5:: - ld a, $d ; 18c5 - sub c ; 18c7 - scf ; 18c8 - pop de ; 18c9 - pop bc ; 18ca - ret ; 18cb -; 18cc - -Function18cc:: - ld hl, $3 ; 18cc - add hl, bc ; 18cf - ld a, [hl] ; 18d0 - cp $25 ; 18d1 - jr c, Function18d6 ; 18d3 - xor a ; 18d5 - ld hl, $4274 ; 18d6 - ld e, a ; 18d9 - ld d, $0 ; 18da - add hl, de ; 18dc - add hl, de ; 18dd - add hl, de ; 18de - add hl, de ; 18df - add hl, de ; 18e0 - add hl, de ; 18e1 - ld a, [hl] ; 18e2 - ret ; 18e3 -; 18e4 - -Function18e4:: - push bc ; 18e4 - push de ; 18e5 - ld e, a ; 18e6 - ld d, $0 ; 18e7 - ld hl, $4275 ; 18e9 - add hl, de ; 18ec - add hl, de ; 18ed - add hl, de ; 18ee - add hl, de ; 18ef - add hl, de ; 18f0 - add hl, de ; 18f1 - ld a, $1 ; 18f2 - call Function3128 ; 18f4 - add a ; 18f7 - add a ; 18f8 - and $c ; 18f9 - pop de ; 18fb - pop bc ; 18fc - ret ; 18fd -; 18fe - -Function18fe:: - ld l, a ; 18fe - ldh a, [hROMBank] ; 18ff - push af ; 1901 - ld a, $1 ; 1902 - rst Bankswitch ; 1904 - ld a, l ; 1905 - push bc ; 1906 - call Function190e ; 1907 - pop bc ; 190a - pop af ; 190b - rst Bankswitch ; 190c - ret ; 190d -; 190e - -Function190e:: - ld hl, $3 ; 190e - add hl, de ; 1911 - ld [hl], a ; 1912 - push de ; 1913 - ld e, a ; 1914 - ld d, $0 ; 1915 - ld hl, $4275 ; 1917 - add hl, de ; 191a - add hl, de ; 191b - add hl, de ; 191c - add hl, de ; 191d - add hl, de ; 191e - add hl, de ; 191f - ld b, h ; 1920 - ld c, l ; 1921 - pop de ; 1922 - ld a, [bc] ; 1923 - inc bc ; 1924 - rlca ; 1925 - rlca ; 1926 - and $c ; 1927 - ld hl, $8 ; 1929 - add hl, de ; 192c - ld [hl], a ; 192d - ld a, [bc] ; 192e - inc bc ; 192f - ld hl, $b ; 1930 - add hl, de ; 1933 - ld [hl], a ; 1934 - ld a, [bc] ; 1935 - inc bc ; 1936 - ld hl, $4 ; 1937 - add hl, de ; 193a - ld [hl], a ; 193b - ld a, [bc] ; 193c - inc bc ; 193d - ld hl, $5 ; 193e - add hl, de ; 1941 - ld [hl], a ; 1942 - ld a, [bc] ; 1943 - inc bc ; 1944 - ld hl, $6 ; 1945 - add hl, de ; 1948 - ld [hl], a ; 1949 - ret ; 194a -; 194b - -Function194b:: - ldh a, [hROMBank] ; 194b - push af ; 194d - ld a, [hli] ; 194e - rst Bankswitch ; 194f - ld a, [hli] ; 1950 - ld d, [hl] ; 1951 - ld hl, $1b ; 1952 - add hl, bc ; 1955 - add [hl] ; 1956 - ld e, a ; 1957 - ld a, d ; 1958 - adc a, $0 ; 1959 - ld d, a ; 195b - inc [hl] ; 195c - ld a, [de] ; 195d - ld h, a ; 195e - pop af ; 195f - rst Bankswitch ; 1960 - ld a, h ; 1961 - ret ; 1962 -; 1963 - -Function1963:: - ld hl, $cfe5 ; 1963 - set 0, [hl] ; 1966 - ret ; 1968 -; 1969 - -Function1969:: - ld hl, $cfe5 ; 1969 - res 0, [hl] ; 196c - ret ; 196e -; 196f - -Function196f:: - ld a, [$cfe5] ; 196f - bit 0, a ; 1972 - ret z ; 1974 - ld a, $1 ; 1975 - ld hl, $557f ; 1977 - rst FarCall ; 197a - ld a, $1 ; 197b - ld hl, $5896 ; 197d - rst FarCall ; 1980 - ret ; 1981 -; 1982 - -Function1982:: - ld bc, $28 ; 1982 - ld hl, $d1fd ; 1985 - call Function31a3 ; 1988 - ld b, h ; 198b - ld c, l ; 198c - ret ; 198d -; 198e - -Function198e:: - ld hl, $0 ; 198e - add hl, bc ; 1991 - ld a, [hl] ; 1992 - and a ; 1993 - ret ; 1994 -; 1995 - -Function1995:: - push af ; 1995 - ld hl, $8 ; 1996 - add hl, bc ; 1999 - ld a, [hl] ; 199a - and $f3 ; 199b - ld e, a ; 199d - pop af ; 199e - and $c ; 199f - or e ; 19a1 - ld [hl], a ; 19a2 - ret ; 19a3 -; 19a4 - -Function19a4:: - ld hl, $8 ; 19a4 - add hl, bc ; 19a7 - ld a, [hl] ; 19a8 - and $c ; 19a9 - ret ; 19ab -; 19ac - -Function19ac:: - add a, $10 ; 19ac - ld e, a ; 19ae - ldh a, [hROMBank] ; 19af - push af ; 19b1 - ld a, $2 ; 19b2 - rst Bankswitch ; 19b4 - call Function4ac9 ; 19b5 - pop af ; 19b8 - rst Bankswitch ; 19b9 - ret ; 19ba -; 19bb - -Function19bb:: - ld [$ceee], a ; 19bb - xor a ; 19be - ld [$ceed], a ; 19bf - ld a, $0 ; 19c2 - ld [$ceef], a ; 19c4 - ld a, $f2 ; 19c7 - ld [$cef0], a ; 19c9 - ld a, $ce ; 19cc - ld [$cef1], a ; 19ce - ret ; 19d1 -; 19d2 - -Function19d2:: - ld a, [$ceed] ; 19d2 - and a ; 19d5 - ret z ; 19d6 - dec a ; 19d7 - ld [$ceed], a ; 19d8 - ret ; 19db -; 19dc - -Function19dc:: - push hl ; 19dc - push de ; 19dd - ld hl, $ceed ; 19de - ld e, [hl] ; 19e1 - inc [hl] ; 19e2 - ld d, $0 ; 19e3 - ld hl, $cef2 ; 19e5 - add hl, de ; 19e8 - ld [hl], a ; 19e9 - pop de ; 19ea - pop hl ; 19eb - ret ; 19ec -; 19ed - -Function19ed:: - push af ; 19ed - ld a, c ; 19ee - and a ; 19ef - jr nz, Function19f4 ; 19f0 - pop af ; 19f2 - ret ; 19f3 -; 19f4 - -Function19f4:: - pop af ; 19f4 - call Function19dc ; 19f5 - dec c ; 19f8 - jr nz, Function19f5 ; 19f9 - ret ; 19fb -; 19fc - -Function19fc:: - push af ; 19fc - ld a, b ; 19fd - sub d ; 19fe - ld h, $2 ; 19ff - jr nc, Function1a07 ; 1a01 - dec a ; 1a03 - cpl ; 1a04 - ld h, $3 ; 1a05 - ld d, a ; 1a07 - ld a, c ; 1a08 - sub e ; 1a09 - ld l, $1 ; 1a0a - jr nc, Function1a12 ; 1a0c - dec a ; 1a0e - cpl ; 1a0f - ld l, $0 ; 1a10 - ld e, a ; 1a12 - cp d ; 1a13 - jr nc, Function1a1c ; 1a14 - ld a, h ; 1a16 - ld h, l ; 1a17 - ld l, a ; 1a18 - ld a, d ; 1a19 - ld d, e ; 1a1a - ld e, a ; 1a1b - pop af ; 1a1c - ld b, a ; 1a1d - ld a, h ; 1a1e - call Function1a2f ; 1a1f - ld c, d ; 1a22 - call Function19ed ; 1a23 - ld a, l ; 1a26 - call Function1a2f ; 1a27 - ld c, e ; 1a2a - call Function19ed ; 1a2b - ret ; 1a2e -; 1a2f - -Function1a2f:: - push de ; 1a2f - push hl ; 1a30 - ld l, b ; 1a31 - ld h, $0 ; 1a32 - add hl, hl ; 1a34 - add hl, hl ; 1a35 - ld e, a ; 1a36 - ld d, $0 ; 1a37 - add hl, deadd hl, de ; 1a39 ; 1a39 - ld de, $1a42 ; 1a3a - add hl, de ; 1a3d - ld a, [hl] ; 1a3e - pop hl ; 1a3f - pop de ; 1a40 - ret ; 1a41 -; 1a42 - -Function1a42:: - ld [$a09], sp ; 1a42 - dec bc ; 1a45 - inc c ; 1a46 - dec c ; 1a47 - ld c, $f ; 1a48 - <corrupted stop> ; 1a4a - ld [de], a ; 1a4c - inc de ; 1a4d - push hl ; 1a4e - push bc ; 1a4f - ld hl, $ced8 ; 1a50 - ld b, $8 ; 1a53 - ld a, [de] ; 1a55 - inc de ; 1a56 - ld [hli], a ; 1a57 - dec b ; 1a58 - jr nz, Function1a55 ; 1a59 - ld a, $1 ; 1a5b - ld [hli], a ; 1a5d - ld [hli], a ; 1a5e - xor a ; 1a5f - ld [hli], a ; 1a60 - ld [hli], a ; 1a61 - ld [hli], a ; 1a62 - pop bc ; 1a63 - pop hl ; 1a64 - ret ; 1a65 -; 1a66 - -Function1a66:: - ld hl, $4136 ; 1a66 - ld a, $9 ; 1a69 - rst FarCall ; 1a6b - call Function1a7a ; 1a6c - ret ; 1a6f -; 1a70 - -Function1a70:: - ld hl, $4139 ; 1a70 - ld a, $9 ; 1a73 - rst FarCall ; 1a75 - call Function1a7a ; 1a76 - ret ; 1a79 -; 1a7a - -Function1a7a:: - push bc ; 1a7a - push af ; 1a7b - ldh a, [$ffab] ; 1a7c - and $f0 ; 1a7e - ld b, a ; 1a80 - ldh a, [$ffa9] ; 1a81 - and $f ; 1a83 - or b ; 1a85 - ld b, a ; 1a86 - pop af ; 1a87 - ld a, b ; 1a88 - pop bc ; 1a89 - ret ; 1a8a -; 1a8b - -Function1a8b:: - ld hl, $cee3 ; 1a8b - ld a, [hli] ; 1a8e - ld h, [hl] ; 1a8f - ld l, a ; 1a90 - ld [hl], $ec ; 1a91 - ret ; 1a93 -; 1a94 - -Function1a94:: - ld hl, $cee3 ; 1a94 - ld a, [hli] ; 1a97 - ld h, [hl] ; 1a98 - ld l, a ; 1a99 - ld [hl], $7f ; 1a9a - ret ; 1a9c -; 1a9d - -Function1a9d:: - ld hl, $42a0 ; 1a9d - ld a, $9 ; 1aa0 - rst FarCall ; 1aa2 - ret ; 1aa3 -; 1aa4 - -Function1aa4:: - push af ; 1aa4 - ld hl, $4307 ; 1aa5 - ld a, $9 ; 1aa8 - rst FarCall ; 1aaa - pop af ; 1aab - ret ; 1aac -; 1aad - -Function1aad:: - ld hl, $4395 ; 1aad - ld a, $9 ; 1ab0 - rst FarCall ; 1ab2 - ret ; 1ab3 -; 1ab4 - -Function1ab4:: - push af ; 1ab4 - call Function1aa4 ; 1ab5 - call Function3472 ; 1ab8 - call Function196f ; 1abb - pop af ; 1abe - ret ; 1abf -; 1ac0 - -Function1ac0:: - call Function1b90 ; 1ac0 - call Function1ae6 ; 1ac3 - inc b ; 1ac6 - inc c ; 1ac7 - push bc ; 1ac8 - push hl ; 1ac9 - ld a, [de] ; 1aca - ld [hli], a ; 1acb - dec de ; 1acc - dec c ; 1acd - jr nz, Function1aca ; 1ace - pop hl ; 1ad0 - ld bc, $14 ; 1ad1 - add hl, bc ; 1ad4 - pop bc ; 1ad5 - dec b ; 1ad6 - jr nz, Function1ac8 ; 1ad7 - ret ; 1ad9 -; 1ada - -Function1ada:: - ld b, $10 ; 1ada - ld de, $ceb8 ; 1adc - ld a, [hld] ; 1adf - ld [de], a ; 1ae0 - inc de ; 1ae1 - dec b ; 1ae2 - jr nz, Function1adf ; 1ae3 - ret ; 1ae5 -; 1ae6 - -Function1ae6:: - ld a, [$ceb9] ; 1ae6 - ld b, a ; 1ae9 - ld a, [$cebb] ; 1aea - sub b ; 1aed - ld b, a ; 1aee - ld a, [$ceba] ; 1aef - ld c, a ; 1af2 - ld a, [$cebc] ; 1af3 - sub c ; 1af6 - ld c, a ; 1af7 - ret ; 1af8 -; 1af9 - -Function1af9:: - push hl ; 1af9 - push de ; 1afa - push bc ; 1afb - push af ; 1afc - ld hl, $cebd ; 1afd - ld a, [hli] ; 1b00 - ld h, [hl] ; 1b01 - ld l, a ; 1b02 - ld de, $cec8 ; 1b03 - ld bc, $10 ; 1b06 - call Function311a ; 1b09 - pop af ; 1b0c - pop bc ; 1b0d - pop de ; 1b0e - pop hl ; 1b0f - ret ; 1b10 -; 1b11 - -Function1b11:: - ld hl, $cea8 ; 1b11 - ld a, [hli] ; 1b14 - ld h, [hl] ; 1b15 - ld l, a ; 1b16 - inc hl ; 1b17 - ld a, [hli] ; 1b18 - ld h, [hl] ; 1b19 - ld l, a ; 1b1a - ret ; 1b1b -; 1b1c - -Function1b1c:: - call Function1af9 ; 1b1c - ld hl, $cebd ; 1b1f - ld e, [hl] ; 1b22 - inc hl ; 1b23 - ld d, [hl] ; 1b24 - call Function1b59 ; 1b25 - call Function1b98 ; 1b28 - inc de ; 1b2b - ld a, [de] ; 1b2c - inc de ; 1b2d - ld b, a ; 1b2e - push bc ; 1b2f - call Functionf74 ; 1b30 - inc de ; 1b33 - ld bc, $28 ; 1b34 - add hl, bc ; 1b37 - pop bc ; 1b38 - dec b ; 1b39 - jr nz, Function1b2f ; 1b3a - ld a, [$cec8] ; 1b3c - bit 4, a ; 1b3f - ret z ; 1b41 - call Function1b90 ; 1b42 - ld a, [de] ; 1b45 - ld c, a ; 1b46 - inc de ; 1b47 - ld b, $0 ; 1b48 - add hl, bc ; 1b4a - jp Functionf74 ; 1b4b -; 1b4e - -Function1b4e:: - call Function1b90 ; 1b4e - call Function1ae6 ; 1b51 - dec b ; 1b54 - dec c ; 1b55 - jp Functioneef ; 1b56 -; 1b59 - -Function1b59:: - ld a, [$ceb9] ; 1b59 - ld b, a ; 1b5c - inc b ; 1b5d - ld a, [$ceba] ; 1b5e - ld c, a ; 1b61 - inc c ; 1b62 - ld a, [$cec8] ; 1b63 - bit 6, a ; 1b66 - jr nz, Function1b6b ; 1b68 - inc b ; 1b6a - ld a, [$cec8] ; 1b6b - bit 7, a ; 1b6e - jr z, Function1b73 ; 1b70 - inc c ; 1b72 - ret ; 1b73 -; 1b74 - -Function1b74:: - call Function1b90 ; 1b74 - ld bc, $15 ; 1b77 - add hl, bc ; 1b7a - call Function1ae6 ; 1b7b - dec b ; 1b7e - dec c ; 1b7f - call Functionebd ; 1b80 - ret ; 1b83 -; 1b84 - -Function1b84:: - call Function1b90 ; 1b84 - call Function1ae6 ; 1b87 - inc c ; 1b8a - inc b ; 1b8b - call Functionebd ; 1b8c - ret ; 1b8f -; 1b90 - -Function1b90:: - ld a, [$ceba] ; 1b90 - ld c, a ; 1b93 - ld a, [$ceb9] ; 1b94 - ld b, a ; 1b97 - xor a ; 1b98 - ld h, a ; 1b99 - ld l, b ; 1b9a - ld a, c ; 1b9b - ld b, h ; 1b9c - ld c, l ; 1b9d - add hl, hl ; 1b9e - add hl, hl ; 1b9f - add hl, bc ; 1ba0 - add hl, hl ; 1ba1 - add hl, hl ; 1ba2 - ld c, a ; 1ba3 - xor a ; 1ba4 - ld b, a ; 1ba5 - add hl, bc ; 1ba6 - ld bc, $c3a0 ; 1ba7 - add hl, bc ; 1baa - ret ; 1bab -; 1bac - -Function1bac:: - call Function1bb3 ; 1bac - call Function1a9d ; 1baf - ret ; 1bb2 -; 1bb3 - -Function1bb3:: - ld de, $ceb8 ; 1bb3 - ld bc, $10 ; 1bb6 - call Function311a ; 1bb9 - ret ; 1bbc -; 1bbd - -Function1bbd:: - ld [$cebf], a ; 1bbd - ret ; 1bc0 -; 1bc1 - -Function1bc1:: - push hl ; 1bc1 - call Function1bca ; 1bc2 - pop hl ; 1bc5 - jp Functionf5e ; 1bc6 -; 1bc9 - -Function1bc9:: - ret ; 1bc9 -; 1bca - -Function1bca:: - ld hl, $1bd1 ; 1bca - call Function1bac ; 1bcd - ret ; 1bd0 -; 1bd1 - -Function1bd1:: - ld b, b ; 1bd1 - inc c ; 1bd2 - nop ; 1bd3 - ld de, $13 ; 1bd4 - add b ; 1bd7 - nop ; 1bd8 - call Function1bc1 ; 1bd9 - call Function1ab4 ; 1bdc - ret ; 1bdf -; 1be0 - -Function1be0:: - ld hl, $1be7 ; 1be0 - call Function1bac ; 1be3 - ret ; 1be6 -; 1be7 - -Function1be7:: - ld b, b ; 1be7 - nop ; 1be8 - nop ; 1be9 - ld de, $13 ; 1bea - nop ; 1bed - ld bc, $a4cd ; 1bee - ld a, [de] ; 1bf1 - ret ; 1bf2 -; 1bf3 - -Function1bf3:: - xor a ; 1bf3 - ldh [$ffd6], a ; 1bf4 - call Function1b4e ; 1bf6 - call Function196f ; 1bf9 - call Function1b1c ; 1bfc - call Function3472 ; 1bff - call Function1af9 ; 1c02 - ld a, [$cec8] ; 1c05 - bit 7, a ; 1c08 - jr z, Function1c19 ; 1c0a - call Function1aad ; 1c0c - call Function1a66 ; 1c0f - call Function1e5f ; 1c12 - bit 1, a ; 1c15 - jr z, Function1c1b ; 1c17 - scf ; 1c19 - ret ; 1c1a -; 1c1b - -Function1c1b:: - and a ; 1c1b - ret ; 1c1c -; 1c1d - -Function1c1d:: - call Function1bac ; 1c1d - call Function1bf3 ; 1c20 - call Function1ab4 ; 1c23 - ld a, [$cee0] ; 1c26 - ret ; 1c29 -; 1c2a - -Function1c2a:: - push hl ; 1c2a - push bc ; 1c2b - push af ; 1c2c - ld hl, $cebd ; 1c2d - ld a, [hli] ; 1c30 - ld h, [hl] ; 1c31 - ld l, a ; 1c32 - inc hl ; 1c33 - inc hl ; 1c34 - pop af ; 1c35 - call Function3654 ; 1c36 - ld d, h ; 1c39 - ld e, l ; 1c3a - call Function317b ; 1c3b - pop bc ; 1c3e - pop hl ; 1c3f - ret ; 1c40 -; 1c41 - -Function1c41:: - ld bc, $e07 ; 1c41 - jr Function1c4b ; 1c44 -; 1c46 - -Function1c46:: - call Function1bac ; 1c46 - jr Function1c68 ; 1c49 -; 1c4b - -Function1c4b:: - push bc ; 1c4b - ld hl, $1c87 ; 1c4c - call Function1bb3 ; 1c4f - pop bc ; 1c52 - ld a, b ; 1c53 - ld [$ceba], a ; 1c54 - add a, $5 ; 1c57 - ld [$cebc], a ; 1c59 - ld a, c ; 1c5c - ld [$ceb9], a ; 1c5d - add a, $4 ; 1c60 - ld [$cebb], a ; 1c62 - call Function1a9d ; 1c65 - call Function1bf3 ; 1c68 - push af ; 1c6b - ld c, $f ; 1c6c - call Function33c ; 1c6e - call Function1ab4 ; 1c71 - pop af ; 1c74 - jr c, Function1c80 ; 1c75 - ld a, [$cee0] ; 1c77 - cp $2 ; 1c7a - jr z, Function1c80 ; 1c7c - and a ; 1c7e - ret ; 1c7f -; 1c80 - -Function1c80:: - ld a, $2 ; 1c80 - ld [$cee0], a ; 1c82 - scf ; 1c85 - ret ; 1c86 -; 1c87 - -Function1c87:: - ld b, b ; 1c87 - dec b ; 1c88 - ld a, [bc] ; 1c89 - add hl, bc ; 1c8a - rrca ; 1c8b - adc a ; 1c8c - inc e ; 1c8d - ld bc, $2c0 ; 1c8e - sbc b ; 1c91 - add h ; 1c92 - sub d ; 1c93 - ld d, b ; 1c94 - adc l ; 1c95 - adc [hl] ; 1c96 - ld d, b ; 1c97 - call Function1c9f ; 1c98 - call Function1a9d ; 1c9b - ret ; 1c9e -; 1c9f - -Function1c9f:: - push de ; 1c9f - call Function1bb3 ; 1ca0 - pop de ; 1ca3 - ld a, [$ceba] ; 1ca4 - ld h, a ; 1ca7 - ld a, [$cebc] ; 1ca8 - sub h ; 1cab - ld h, a ; 1cac - ld a, d ; 1cad - ld [$ceba], a ; 1cae - add h ; 1cb1 - ld [$cebc], a ; 1cb2 - ld a, [$ceb9] ; 1cb5 - ld l, a ; 1cb8 - ld a, [$cebb] ; 1cb9 - sub l ; 1cbc - ld l, a ; 1cbd - ld a, e ; 1cbe - ld [$ceb9], a ; 1cbf - add l ; 1cc2 - ld [$cebb], a ; 1cc3 - ret ; 1cc6 -; 1cc7 - -Function1cc7:: - call Function1ce9 ; 1cc7 - call Function1cf6 ; 1cca - call Function1d69 ; 1ccd - call Function1d8d ; 1cd0 - call Function1a7a ; 1cd3 - call Function1e5f ; 1cd6 - ret ; 1cd9 -; 1cda - -Function1cda:: - call Function1ce9 ; 1cda - call Function1cf6 ; 1cdd - call Function1d69 ; 1ce0 - ld hl, $cedc ; 1ce3 - set 7, [hl] ; 1ce6 - ret ; 1ce8 -; 1ce9 - -Function1ce9:: - call Function1af9 ; 1ce9 - call Function1d27 ; 1cec - call Function1d10 ; 1cef - call Function1b4e ; 1cf2 - ret ; 1cf5 -; 1cf6 - -Function1cf6:: - xor a ; 1cf6 - ldh [$ffd6], a ; 1cf7 - call Function1d27 ; 1cf9 - call Function1d44 ; 1cfc - call Function2ef1 ; 1cff - ldh a, [$ffda] ; 1d02 - push af ; 1d04 - ld a, $1 ; 1d05 - ldh [$ffda], a ; 1d07 - call Function3472 ; 1d09 - pop af ; 1d0c - ldh [$ffda], a ; 1d0d - ret ; 1d0f -; 1d10 - -Function1d10:: - ld a, [$ceba] ; 1d10 - ld c, a ; 1d13 - ld a, [$cebc] ; 1d14 - sub c ; 1d17 - ld c, a ; 1d18 - ld a, [$cec9] ; 1d19 - add a ; 1d1c - inc a ; 1d1d - ld b, a ; 1d1e - ld a, [$ceb9] ; 1d1f - add b ; 1d22 - ld [$cebb], a ; 1d23 - ret ; 1d26 -; 1d27 - -Function1d27:: - ld hl, $ceca ; 1d27 - ld a, [hli] ; 1d2a - ld h, [hl] ; 1d2b - ld l, a ; 1d2c - ld a, [$cead] ; 1d2d - and a ; 1d30 - jr z, Function1d3d ; 1d31 - ld b, a ; 1d33 - ld c, $ff ; 1d34 - ld a, [hli] ; 1d36 - cp c ; 1d37 - jr nz, Function1d36 ; 1d38 - dec b ; 1d3a - jr nz, Function1d36 ; 1d3b - ld d, h ; 1d3d - ld e, l ; 1d3e - ld a, [hl] ; 1d3f - ld [$cec9], a ; 1d40 - ret ; 1d43 -; 1d44 - -Function1d44:: - call Function1b90 ; 1d44 - ld bc, $2a ; 1d47 - add hl, bc ; 1d4a - inc de ; 1d4b - ld a, [de] ; 1d4c - cp $ff ; 1d4d - ret z ; 1d4f - ld [$ceab], a ; 1d50 - push de ; 1d53 - push hl ; 1d54 - ld d, h ; 1d55 - ld e, l ; 1d56 - ld hl, $cecc ; 1d57 - call Function1d65 ; 1d5a - pop hl ; 1d5d - ld de, $28 ; 1d5e - add hl, de ; 1d61 - pop de ; 1d62 - jr Function1d4b ; 1d63 -; 1d65 - -Function1d65:: - ld a, [hli] ; 1d65 - ld h, [hl] ; 1d66 - ld l, a ; 1d67 - jp [hl] ; 1d68 - call Function1aad ; 1d69 - ld hl, $cedf ; 1d6c - ld a, [$cec8] ; 1d6f - bit 3, a ; 1d72 - jr z, Function1d78 ; 1d74 - set 3, [hl] ; 1d76 - ld a, [$cec8] ; 1d78 - bit 2, a ; 1d7b - jr z, Function1d83 ; 1d7d - set 5, [hl] ; 1d7f - set 4, [hl] ; 1d81 - ret ; 1d83 -; 1d84 - -Function1d84:: - call Function1a70 ; 1d84 - ld hl, $cedf ; 1d87 - and [hl] ; 1d8a - jr Function1d94 ; 1d8b -; 1d8d - -Function1d8d:: - xor a ; 1d8d - ld [$ceaa], a ; 1d8e - call Function1a66 ; 1d91 - bit 0, a ; 1d94 - jr nz, Function1dbc ; 1d96 - bit 1, a ; 1d98 - jr nz, Function1dd7 ; 1d9a - bit 3, a ; 1d9c - jr nz, Function1dd7 ; 1d9e - bit 4, a ; 1da0 - jr nz, Function1dae ; 1da2 - bit 5, a ; 1da4 - jr nz, Function1db5 ; 1da6 - xor a ; 1da8 - ld [$ceaa], a ; 1da9 - jr Function1dc1 ; 1dac -; 1dae - -Function1dae:: - ld a, $10 ; 1dae - ld [$ceaa], a ; 1db0 - jr Function1dc1 ; 1db3 -; 1db5 - -Function1db5:: - ld a, $20 ; 1db5 - ld [$ceaa], a ; 1db7 - jr Function1dc1 ; 1dba -; 1dbc - -Function1dbc:: - ld a, $1 ; 1dbc - ld [$ceaa], a ; 1dbe - call Function1d27 ; 1dc1 - ld a, [$cee0] ; 1dc4 - ld l, a ; 1dc7 - ld h, $0 ; 1dc8 - add hl, de ; 1dca - ld a, [hl] ; 1dcb - ld [$ceab], a ; 1dcc - ld a, [$cee0] ; 1dcf - ld [$cebf], a ; 1dd2 - and a ; 1dd5 - ret ; 1dd6 -; 1dd7 - -Function1dd7:: - ld a, $2 ; 1dd7 - ld [$ceaa], a ; 1dd9 - ld a, $ff ; 1ddc - ld [$ceab], a ; 1dde - scf ; 1de1 - ret ; 1de2 -; 1de3 - -Function1de3:: - push de ; 1de3 - ld hl, $cece ; 1de4 - ld a, [hli] ; 1de7 - ld h, [hl] ; 1de8 - ld l, a ; 1de9 - ld a, [$ceab] ; 1dea - call Function3654 ; 1ded - ld d, h ; 1df0 - ld e, l ; 1df1 - pop hl ; 1df2 - call Functionf74 ; 1df3 - ret ; 1df6 -; 1df7 - -Function1df7:: - push de ; 1df7 - ld a, [$ceab] ; 1df8 - call Function1e1b ; 1dfb - inc hl ; 1dfe - inc hl ; 1dff - ld a, [hli] ; 1e00 - ld d, [hl] ; 1e01 - ld e, a ; 1e02 - pop hl ; 1e03 - call Functionf74 ; 1e04 - ret ; 1e07 -; 1e08 - -Function1e08:: - call Function1e1b ; 1e08 - inc hl ; 1e0b - inc hl ; 1e0c - ld a, [hli] ; 1e0d - ld d, [hl] ; 1e0e - ld e, a ; 1e0f - ret ; 1e10 -; 1e11 - -Function1e11:: - ld a, [$ceab] ; 1e11 - call Function1e1b ; 1e14 - ld a, [hli] ; 1e17 - ld h, [hl] ; 1e18 - ld l, a ; 1e19 - jp [hl] ; 1e1a - ld e, a ; 1e1b - ld d, $0 ; 1e1c - ld hl, $cece ; 1e1e - ld a, [hli] ; 1e21 - ld h, [hl] ; 1e22 - ld l, a ; 1e23 - add hl, de ; 1e24 - add hl, de ; 1e25 - add hl, de ; 1e26 - add hl, de ; 1e27 - ret ; 1e28 -; 1e29 - -Function1e29:: - ld hl, $cea8 ; 1e29 - call Function1e57 ; 1e2c - ld hl, $ceb8 ; 1e2f - call Function1e57 ; 1e32 - ld hl, $cec8 ; 1e35 - call Function1e57 ; 1e38 - ld hl, $ced8 ; 1e3b - call Function1e57 ; 1e3e - xor a ; 1e41 - call OpenSRAM ; 1e42 - xor a ; 1e45 - ld hl, $bfff ; 1e46 - ld [hld], a ; 1e49 - ld [hld], a ; 1e4a - ld a, l ; 1e4b - ld [$cea8], a ; 1e4c - ld a, h ; 1e4f - ld [$cea9], a ; 1e50 - call CloseSRAM ; 1e53 - ret ; 1e56 -; 1e57 - -Function1e57:: - ld bc, $10 ; 1e57 - xor a ; 1e5a - call Function314c ; 1e5b - ret ; 1e5e -; 1e5f - -Function1e5f:: - push af ; 1e5f - and $3 ; 1e60 - jr z, Function1e6e ; 1e62 - ld hl, $ceb8 ; 1e64 - bit 3, a ; 1e67 - jr nz, Function1e6e ; 1e69 - call Function1e70 ; 1e6b - pop af ; 1e6e - ret ; 1e6f -; 1e70 - -Function1e70:: - push de ; 1e70 - ld de, $8 ; 1e71 - call Function3e24 ; 1e74 - pop de ; 1e77 - ret ; 1e78 -; 1e79 - -Function1e79:: - call Function1bc1 ; 1e79 - call Function9f7 ; 1e7c - call Function1aa4 ; 1e7f - ret ; 1e82 -; 1e83 - -Function1e83:: - ld [$d156], a ; 1e83 - ldh a, [hROMBank] ; 1e86 - push af ; 1e88 - ld a, [$d156] ; 1e89 - rst Bankswitch ; 1e8c - call Functionf74 ; 1e8d - pop af ; 1e90 - rst Bankswitch ; 1e91 - ret ; 1e92 -; 1e93 - -Function1e93:: - call Function1af9 ; 1e93 - ldh a, [hROMBank] ; 1e96 - ld [$cecb], a ; 1e98 - push af ; 1e9b - ld a, $9 ; 1e9c - rst Bankswitch ; 1e9e - call Function400e ; 1e9f - pop bc ; 1ea2 - ld a, b ; 1ea3 - rst Bankswitch ; 1ea4 - ld a, [$cebf] ; 1ea5 - ret ; 1ea8 -; 1ea9 - -Function1ea9:: - xor a ; 1ea9 - ldh [$ffd6], a ; 1eaa - ld a, $90 ; 1eac - ldh [$ff4a], a ; 1eae - ldh [$ffd4], a ; 1eb0 - ret ; 1eb2 -; 1eb3 - -Function1eb3:: - ldh a, [hROMBank] ; 1eb3 - push af ; 1eb5 - ld a, $21 ; 1eb6 - rst Bankswitch ; 1eb8 - call Function42db ; 1eb9 - pop af ; 1ebc - rst Bankswitch ; 1ebd - ret ; 1ebe -; 1ebf - -Function1ebf:: - ld a, [$c1d3] ; 1ebf - bit 0, a ; 1ec2 - ret z ; 1ec4 - ld a, [$c1d4] ; 1ec5 - and a ; 1ec8 - ret nz ; 1ec9 - ld hl, $c98a ; 1eca - inc [hl] ; 1ecd - ld a, [hl] ; 1ece - cp $6 ; 1ecf - ret c ; 1ed1 - xor a ; 1ed2 - ld [hl], a ; 1ed3 - ld a, $c ; 1ed4 - ld [$c1d4], a ; 1ed6 - ld a, $88 ; 1ed9 - ldh [$ff01], a ; 1edb - ld a, $1 ; 1edd - ldh [$ff02], a ; 1edf - ld a, $81 ; 1ee1 - ldh [$ff02], a ; 1ee3 - ret ; 1ee5 -; 1ee6 - -Function1ee6:: - xor a ; 1ee6 - ld [$d1ea], a ; 1ee7 - ld [$d1eb], a ; 1eea - ld [$d1ec], a ; 1eed - ld [$d1ed], a ; 1ef0 - ld [$d1ee], a ; 1ef3 - ld [$d1ef], a ; 1ef6 - ret ; 1ef9 -; 1efa - -Function1efa:: - nop ; 1efa - ld a, [$c1cc] ; 1efb - and a ; 1efe - ret nz ; 1eff - ld hl, $d8b8 ; 1f00 - bit 0, [hl] ; 1f03 - ret z ; 1f05 - ld hl, $d1ea ; 1f06 - bit 0, [hl] ; 1f09 - ret nz ; 1f0b - ld hl, $d1ef ; 1f0c - ld a, [hl] ; 1f0f - inc a ; 1f10 - cp $3c ; 1f11 - jr nc, Function1f17 ; 1f13 - ld [hl], a ; 1f15 - ret ; 1f16 -; 1f17 - -Function1f17:: - xor a ; 1f17 - ld [hl], a ; 1f18 - ld hl, $d1ee ; 1f19 - ld a, [hl] ; 1f1c - inc a ; 1f1d - cp $3c ; 1f1e - jr nc, Function1f24 ; 1f20 - ld [hl], a ; 1f22 - ret ; 1f23 -; 1f24 - -Function1f24:: - xor a ; 1f24 - ld [hl], a ; 1f25 - ld hl, $d1ed ; 1f26 - ld a, [hl] ; 1f29 - inc a ; 1f2a - cp $3c ; 1f2b - jr nc, Function1f31 ; 1f2d - ld [hl], a ; 1f2f - ret ; 1f30 -; 1f31 - -Function1f31:: - xor a ; 1f31 - ld [hl], a ; 1f32 - ld a, [$d1eb] ; 1f33 - ld h, a ; 1f36 - ld a, [$d1ec] ; 1f37 - ld l, a ; 1f3a - inc hl ; 1f3b - ld a, h ; 1f3c - cp $3 ; 1f3d - jr c, Function1f54 ; 1f3f - ld a, l ; 1f41 - cp $e8 ; 1f42 - jr c, Function1f54 ; 1f44 - ld hl, $d1ea ; 1f46 - set 0, [hl] ; 1f49 - ld a, $3b ; 1f4b - ld [$d1ed], a ; 1f4d - ld [$d1ee], a ; 1f50 - ret ; 1f53 -; 1f54 - -Function1f54:: - ld a, h ; 1f54 - ld [$d1eb], a ; 1f55 - ld a, l ; 1f58 - ld [$d1ec], a ; 1f59 - ret ; 1f5c -; 1f5d - -Function1f5d:: - ld hl, $c6e8 ; 1f5d - ld bc, $18 ; 1f60 - ld a, $0 ; 1f63 - call Function314c ; 1f65 - ret ; 1f68 -; 1f69 - -Function1f69:: - push hl ; 1f69 - ld hl, $d941 ; 1f6a - ld a, [hli] ; 1f6d - ld h, [hl] ; 1f6e - ld l, a ; 1f6f - or h ; 1f70 - ld a, [hl] ; 1f71 - jr nz, Function1f76 ; 1f72 - ld a, $ff ; 1f74 - pop hl ; 1f76 - ret ; 1f77 -; 1f78 - -Function1f78:: - ld a, [$da00] ; 1f78 - ld b, a ; 1f7b - ld a, [$da01] ; 1f7c - ld c, a ; 1f7f - xor a ; 1f80 - ld [$d941], a ; 1f81 - ld [$d942], a ; 1f84 - call Function1f95 ; 1f87 - ret c ; 1f8a - ld a, e ; 1f8b - ld [$d941], a ; 1f8c - ld a, d ; 1f8f - ld [$d942], a ; 1f90 - xor a ; 1f93 - ret ; 1f94 -; 1f95 - -Function1f95:: - push bc ; 1f95 - ldh a, [hROMBank] ; 1f96 - push af ; 1f98 - ld a, $25 ; 1f99 - rst Bankswitch ; 1f9b - ld hl, $4000 ; 1f9c - push hl ; 1f9f - ld a, [hli] ; 1fa0 - cp $ff ; 1fa1 - jr z, Function1fb5 ; 1fa3 - cp b ; 1fa5 - jr nz, Function1fae ; 1fa6 - ld a, [hli] ; 1fa8 - cp c ; 1fa9 - jr nz, Function1fae ; 1faa - jr Function1fb8 ; 1fac -; 1fae - -Function1fae:: - pop hl ; 1fae - ld de, $4 ; 1faf - add hl, de ; 1fb2 - jr Function1f9f ; 1fb3 -; 1fb5 - -Function1fb5:: - scf ; 1fb5 - jr Function1fbb ; 1fb6 -; 1fb8 - -Function1fb8:: - ld e, [hl] ; 1fb8 - inc hl ; 1fb9 - ld d, [hl] ; 1fba - pop hl ; 1fbb - pop bc ; 1fbc - ld a, b ; 1fbd - rst Bankswitch ; 1fbe - pop bc ; 1fbf - ret ; 1fc0 -; 1fc1 - -Function1fc1:: - call Function1fc8 ; 1fc1 - call Functiond58 ; 1fc4 - ret ; 1fc7 -; 1fc8 - -Function1fc8:: - ldh a, [hROMBank] ; 1fc8 - push af ; 1fca - ld a, [$d0c5] ; 1fcb - rst Bankswitch ; 1fce - call Function1fe6 ; 1fcf - ld a, $60 ; 1fd2 - ld hl, $c3a0 ; 1fd4 - ld bc, $168 ; 1fd7 - call Function314c ; 1fda - ld a, $5 ; 1fdd - rst Bankswitch ; 1fdf - call Function538d ; 1fe0 - pop af ; 1fe3 - rst Bankswitch ; 1fe4 - ret ; 1fe5 -; 1fe6 - -Function1fe6:: - ld a, [$d07d] ; 1fe6 - ld e, a ; 1fe9 - ld a, [$d07e] ; 1fea - ld d, a ; 1fed - ld hl, $c508 ; 1fee - ld b, $5 ; 1ff1 - push de ; 1ff3 - push hl ; 1ff4 - ld c, $6 ; 1ff5 - push de ; 1ff7 - push hl ; 1ff8 - ld a, [de] ; 1ff9 - and a ; 1ffa - jr nz, Function2000 ; 1ffb - ld a, [$d086] ; 1ffd - ld e, l ; 2000 - ld d, h ; 2001 - add a ; 2002 - ld l, a ; 2003 - ld h, $0 ; 2004 - add hl, hl ; 2006 - add hl, hl ; 2007 - add hl, hl ; 2008 - ld a, [$d0c6] ; 2009 - add l ; 200c - ld l, a ; 200d - ld a, [$d0c7] ; 200e - adc h ; 2011 - ld h, a ; 2012 - ld a, [hli] ; 2013 - ld [de], a ; 2014 - inc de ; 2015 - ld a, [hli] ; 2016 - ld [de], a ; 2017 - inc de ; 2018 - ld a, [hli] ; 2019 - ld [de], a ; 201a - inc de ; 201b - ld a, [hli] ; 201c - ld [de], a ; 201d - inc de ; 201e - ld a, e ; 201f - add a, $14 ; 2020 - ld e, a ; 2022 - jr nc, Function2026 ; 2023 - inc d ; 2025 - ld a, [hli] ; 2026 - ld [de], a ; 2027 - inc de ; 2028 - ld a, [hli] ; 2029 - ld [de], a ; 202a - inc de ; 202b - ld a, [hli] ; 202c - ld [de], a ; 202d - inc de ; 202e - ld a, [hli] ; 202f - ld [de], a ; 2030 - inc de ; 2031 - ld a, e ; 2032 - add a, $14 ; 2033 - ld e, a ; 2035 - jr nc, Function2039 ; 2036 - inc d ; 2038 - ld a, [hli] ; 2039 - ld [de], a ; 203a - inc de ; 203b - ld a, [hli] ; 203c - ld [de], a ; 203d - inc de ; 203e - ld a, [hli] ; 203f - ld [de], a ; 2040 - inc de ; 2041 - ld a, [hli] ; 2042 - ld [de], a ; 2043 - inc de ; 2044 - ld a, e ; 2045 - add a, $14 ; 2046 - ld e, a ; 2048 - jr nc, Function204c ; 2049 - inc d ; 204b - ld a, [hli] ; 204c - ld [de], a ; 204d - inc de ; 204e - ld a, [hli] ; 204f - ld [de], a ; 2050 - inc de ; 2051 - ld a, [hli] ; 2052 - ld [de], a ; 2053 - inc de ; 2054 - ld a, [hli] ; 2055 - ld [de], a ; 2056 - inc de ; 2057 - pop hl ; 2058 - ld de, $4 ; 2059 - add hl, de ; 205c - pop de ; 205d - inc de ; 205e - dec c ; 205f - jp nz, Function1ff7 ; 2060 - pop hl ; 2063 - ld de, $60 ; 2064 - add hl, de ; 2067 - pop de ; 2068 - ld a, [$d088] ; 2069 - add a, $6 ; 206c - add e ; 206e - ld e, a ; 206f - jr nc, Function2073 ; 2070 - inc d ; 2072 - dec b ; 2073 - jp nz, Function1ff3 ; 2074 - ret ; 2077 -; 2078 - -Function2078:: - ld a, $fa ; 2078 - ldh [$ffa1], a ; 207a - ld a, $5 ; 207c - ld hl, $5484 ; 207e - rst FarCall ; 2081 - xor a ; 2082 - ldh [$ffa1], a ; 2083 - ret ; 2085 -; 2086 - -Function2086:: - call Function1f5d ; 2086 - call Function2f10 ; 2089 - call Function2f1d ; 208c - call Function1f78 ; 208f - call Function2f16 ; 2092 - ld a, $5 ; 2095 - call Function2764 ; 2097 - ld a, $25 ; 209a - ld hl, $7c2a ; 209c - rst FarCall ; 209f - ld a, $3 ; 20a0 - call Function2764 ; 20a2 - call Function2dd2 ; 20a5 - ld [$c1cf], a ; 20a8 - ret ; 20ab -; 20ac - -Function20ac:: - ld a, $1 ; 20ac - ld [$c1cd], a ; 20ae - ld a, $23 ; 20b1 - ld hl, $43e9 ; 20b3 - rst FarCall ; 20b6 - ld a, $23 ; 20b7 - ld hl, $4356 ; 20b9 - rst FarCall ; 20bc - call Function1fc1 ; 20bd - call Function20c7 ; 20c0 - call Function20e6 ; 20c3 - ret ; 20c6 -; 20c7 - -Function20c7:: - ld a, $98 ; 20c7 - ld [$d05c], a ; 20c9 - xor a ; 20cc - ld [$d05b], a ; 20cd - ldh [$ffd2], a ; 20d0 - ldh [$ffd1], a ; 20d2 - ld a, $1 ; 20d4 - ld hl, $58c5 ; 20d6 - rst FarCall ; 20d9 - ld a, $60 ; 20da - ld bc, $400 ; 20dc - ld hl, $9800 ; 20df - call Function314c ; 20e2 - ret ; 20e5 -; 20e6 - -Function20e6:: - ld de, $c3a0 ; 20e6 - call Function20f7 ; 20e9 - ldh a, [$ffe8] ; 20ec - and a ; 20ee - ret z ; 20ef - ld de, $ccd9 ; 20f0 - ld a, $1 ; 20f3 - ldh [$ff4f], a ; 20f5 - ld hl, $9800 ; 20f7 - ld c, $14 ; 20fa - ld b, $12 ; 20fc - push bc ; 20fe - ld a, [de] ; 20ff - inc de ; 2100 - ld [hli], a ; 2101 - dec c ; 2102 - jr nz, Function20ff ; 2103 - ld bc, $c ; 2105 - add hl, bc ; 2108 - pop bc ; 2109 - dec b ; 210a - jr nz, Function20fe ; 210b - ld a, $0 ; 210d - ldh [$ff4f], a ; 210f - ret ; 2111 -; 2112 - -Function2112:: - call Function2dfa ; 2112 - call Function2944 ; 2115 - xor a ; 2118 - ldh [$ffe0], a ; 2119 - xor a ; 211b - ldh [$ffe1], a ; 211c - ld a, $5 ; 211e - ld hl, $416d ; 2120 - rst FarCall ; 2123 - call Functiondac ; 2124 - ret ; 2127 -; 2128 - -Function2128:: - ld b, $9 ; 2128 - jp Function3583 ; 212a -; 212d - -Function212d:: - call Function30ff ; 212d - call Function1ea9 ; 2130 - call Function2a05 ; 2133 - ld a, $1 ; 2136 - ld hl, $5730 ; 2138 - rst FarCall ; 213b - ld a, $5 ; 213c - ld hl, $5612 ; 213e - rst FarCall ; 2141 - ld hl, $d182 ; 2142 - bit 6, [hl] ; 2145 - jr nz, Function2151 ; 2147 - ld hl, $cfe5 ; 2149 - set 0, [hl] ; 214c - call Function2ef1 ; 214e - xor a ; 2151 - ld [$d182], a ; 2152 - ret ; 2155 -; 2156 - -Function2156:: - ld a, [$ce86] ; 2156 - cp $ff ; 2159 - ret z ; 215b - and a ; 215c - jr z, Function216d ; 215d - cp $1 ; 215f - jr z, Function217c ; 2161 - cp $2 ; 2163 - jr z, Function2187 ; 2165 - cp $3 ; 2167 - jr z, Function2192 ; 2169 - and a ; 216b - ret ; 216c -; 216d - -Function216d:: - ld a, [$d20e] ; 216d - sub a, $4 ; 2170 - ld b, a ; 2172 - ld a, [$d087] ; 2173 - add a ; 2176 - cp b ; 2177 - jr z, Function21a1 ; 2178 - and a ; 217a - ret ; 217b -; 217c - -Function217c:: - ld a, [$d20e] ; 217c - sub a, $4 ; 217f - cp $ff ; 2181 - jr z, Function21a1 ; 2183 - and a ; 2185 - ret ; 2186 -; 2187 - -Function2187:: - ld a, [$d20d] ; 2187 - sub a, $4 ; 218a - cp $ff ; 218c - jr z, Function21a1 ; 218e - and a ; 2190 - ret ; 2191 -; 2192 - -Function2192:: - ld a, [$d20d] ; 2192 - sub a, $4 ; 2195 - ld b, a ; 2197 - ld a, [$d088] ; 2198 - add a ; 219b - cp b ; 219c - jr z, Function21a1 ; 219d - and a ; 219f - ret ; 21a0 -; 21a1 - -Function21a1:: - scf ; 21a1 - ret ; 21a2 -; 21a3 - -Function21a3:: - ld a, [$ce86] ; 21a3 - and a ; 21a6 - jp z, Function2263 ; 21a7 - cp $1 ; 21aa - jp z, Function2232 ; 21ac - cp $2 ; 21af - jp z, Function21ba ; 21b1 - cp $3 ; 21b4 - jp z, Function21f6 ; 21b6 - ret ; 21b9 -; 21ba - -Function21ba:: - ld a, [$d0aa] ; 21ba - ld [$da00], a ; 21bd - ld a, [$d0ab] ; 21c0 - ld [$da01], a ; 21c3 - ld a, [$d0b3] ; 21c6 - ld [$da03], a ; 21c9 - ld a, [$d0b2] ; 21cc - ld hl, $da02 ; 21cf - add [hl] ; 21d2 - ld [hl], a ; 21d3 - ld c, a ; 21d4 - ld hl, $d0b4 ; 21d5 - ld a, [hli] ; 21d8 - ld h, [hl] ; 21d9 - ld l, a ; 21da - srl c ; 21db - jr z, Function21eb ; 21dd - ld a, [$d0b1] ; 21df - add a, $6 ; 21e2 - ld e, a ; 21e4 - ld d, $0 ; 21e5 - add hl, de ; 21e7 - dec c ; 21e8 - jr nz, Function21e7 ; 21e9 - ld a, l ; 21eb - ld [$d07d], a ; 21ec - ld a, h ; 21ef - ld [$d07e], a ; 21f0 - jp Function2291 ; 21f3 -; 21f6 - -Function21f6:: - ld a, [$d0b6] ; 21f6 - ld [$da00], a ; 21f9 - ld a, [$d0b7] ; 21fc - ld [$da01], a ; 21ff - ld a, [$d0bf] ; 2202 - ld [$da03], a ; 2205 - ld a, [$d0be] ; 2208 - ld hl, $da02 ; 220b - add [hl] ; 220e - ld [hl], a ; 220f - ld c, a ; 2210 - ld hl, $d0c0 ; 2211 - ld a, [hli] ; 2214 - ld h, [hl] ; 2215 - ld l, a ; 2216 - srl c ; 2217 - jr z, Function2227 ; 2219 - ld a, [$d0bd] ; 221b - add a, $6 ; 221e - ld e, a ; 2220 - ld d, $0 ; 2221 - add hl, de ; 2223 - dec c ; 2224 - jr nz, Function2223 ; 2225 - ld a, l ; 2227 - ld [$d07d], a ; 2228 - ld a, h ; 222b - ld [$d07e], a ; 222c - jp Function2291 ; 222f -; 2232 - -Function2232:: - ld a, [$d092] ; 2232 - ld [$da00], a ; 2235 - ld a, [$d093] ; 2238 - ld [$da01], a ; 223b - ld a, [$d09a] ; 223e - ld [$da02], a ; 2241 - ld a, [$d09b] ; 2244 - ld hl, $da03 ; 2247 - add [hl] ; 224a - ld [hl], a ; 224b - ld c, a ; 224c - ld hl, $d09c ; 224d - ld a, [hli] ; 2250 - ld h, [hl] ; 2251 - ld l, a ; 2252 - ld b, $0 ; 2253 - srl c ; 2255 - add hl, bc ; 2257 - ld a, l ; 2258 - ld [$d07d], a ; 2259 - ld a, h ; 225c - ld [$d07e], a ; 225d - jp Function2291 ; 2260 -; 2263 - -Function2263:: - ld a, [$d09e] ; 2263 - ld [$da00], a ; 2266 - ld a, [$d09f] ; 2269 - ld [$da01], a ; 226c - ld a, [$d0a6] ; 226f - ld [$da02], a ; 2272 - ld a, [$d0a7] ; 2275 - ld hl, $da03 ; 2278 - add [hl] ; 227b - ld [hl], a ; 227c - ld c, a ; 227d - ld hl, $d0a8 ; 227e - ld a, [hli] ; 2281 - ld h, [hl] ; 2282 - ld l, a ; 2283 - ld b, $0 ; 2284 - srl c ; 2286 - add hl, bc ; 2288 - ld a, l ; 2289 - ld [$d07d], a ; 228a - ld a, h ; 228d - ld [$d07e], a ; 228e - scf ; 2291 - ret ; 2292 -; 2293 - -Function2293:: - call Function22ad ; 2293 - ret nc ; 2296 - push bc ; 2297 - ld a, $5 ; 2298 - ld hl, $4a2d ; 229a - rst FarCall ; 229d - pop bc ; 229e - ret nc ; 229f - call Function2302 ; 22a0 - scf ; 22a3 - ret ; 22a4 -; 22a5 - -Function22a5:: - call Function22ad ; 22a5 - ret nc ; 22a8 - call Function2302 ; 22a9 - ret ; 22ac -; 22ad - -Function22ad:: - ld a, $5 ; 22ad - ld hl, $4a18 ; 22af - rst FarCall ; 22b2 - ret nc ; 22b3 - ldh a, [hROMBank] ; 22b4 - push af ; 22b6 - call Function2d2b ; 22b7 - call Function22c1 ; 22ba - pop de ; 22bd - ld a, d ; 22be - rst Bankswitch ; 22bf - ret ; 22c0 -; 22c1 - -Function22c1:: - ld a, [$d20e] ; 22c1 - sub a, $4 ; 22c4 - ld e, a ; 22c6 - ld a, [$d20d] ; 22c7 - sub a, $4 ; 22ca - ld d, a ; 22cc - ld a, [$d945] ; 22cd - and a ; 22d0 - ret z ; 22d1 - ld c, a ; 22d2 - ld hl, $d946 ; 22d3 - ld a, [hli] ; 22d6 - ld h, [hl] ; 22d7 - ld l, a ; 22d8 - push hl ; 22d9 - ld a, [hli] ; 22da - cp e ; 22db - jr nz, Function22e4 ; 22dc - ld a, [hli] ; 22de - cp d ; 22df - jr nz, Function22e4 ; 22e0 - jr Function22f1 ; 22e2 -; 22e4 - -Function22e4:: - pop hl ; 22e4 - ld a, $5 ; 22e5 - add l ; 22e7 - ld l, a ; 22e8 - jr nc, Function22ec ; 22e9 - inc h ; 22eb - dec c ; 22ec - jr nz, Function22d9 ; 22ed - xor a ; 22ef - ret ; 22f0 -; 22f1 - -Function22f1:: - pop hl ; 22f1 - call Function22fe ; 22f2 - ret nc ; 22f5 - ld a, [$d945] ; 22f6 - inc a ; 22f9 - sub c ; 22fa - ld c, a ; 22fb - scf ; 22fc - ret ; 22fd -; 22fe - -Function22fe:: - inc hl ; 22fe - inc hl ; 22ff - scf ; 2300 - ret ; 2301 -; 2302 - -Function2302:: - ldh a, [hROMBank] ; 2302 - push af ; 2304 - call Function2d2b ; 2305 - call Function230f ; 2308 - pop af ; 230b - rst Bankswitch ; 230c - scf ; 230d - ret ; 230e -; 230f - -Function230f:: - push bc ; 230f - ld hl, $d946 ; 2310 - ld a, [hli] ; 2313 - ld h, [hl] ; 2314 - ld l, a ; 2315 - ld a, c ; 2316 - dec a ; 2317 - ld bc, $5 ; 2318 - call Function31a3 ; 231b - ld bc, $2 ; 231e - add hl, bc ; 2321 - ld a, [hli] ; 2322 - cp $ff ; 2323 - jr nz, Function232b ; 2325 - ld hl, $d9f5 ; 2327 - ld a, [hli] ; 232a - pop bc ; 232b - ld [$d043], a ; 232c - ld a, [hli] ; 232f - ld [$d044], a ; 2330 - ld a, [hli] ; 2333 - ld [$d045], a ; 2334 - ld a, c ; 2337 - ld [$d046], a ; 2338 - ld a, [$da00] ; 233b - ld [$d047], a ; 233e - ld a, [$da01] ; 2341 - ld [$d048], a ; 2344 - scf ; 2347 - ret ; 2348 -; 2349 - -Function2349:: - call Function2362 ; 2349 - call Function239b ; 234c - ld a, [$d043] ; 234f - ld [$d9ff], a ; 2352 - ld a, [$d044] ; 2355 - ld [$da00], a ; 2358 - ld a, [$d045] ; 235b - ld [$da01], a ; 235e - ret ; 2361 -; 2362 - -Function2362:: - call Function2d63 ; 2362 - call Function23cd ; 2365 - ret nz ; 2368 - ld a, [$d044] ; 2369 - ld b, a ; 236c - ld a, [$d045] ; 236d - ld c, a ; 2370 - call Function2d72 ; 2371 - call Function23d3 ; 2374 - ret nz ; 2377 - ld a, [$d047] ; 2378 - cp $f ; 237b - jr nz, Function2388 ; 237d - ld a, [$d048] ; 237f - cp $a ; 2382 - ret z ; 2384 - cp $c ; 2385 - ret z ; 2387 - ld a, [$d046] ; 2388 - ld [$d9f2], a ; 238b - ld a, [$d047] ; 238e - ld [$d9f3], a ; 2391 - ld a, [$d048] ; 2394 - ld [$d9f4], a ; 2397 - ret ; 239a -; 239b - -Function239b:: - call Function2d63 ; 239b - call Function23cd ; 239e - ret nz ; 23a1 - ld a, [$d044] ; 23a2 - ld b, a ; 23a5 - ld a, [$d045] ; 23a6 - ld c, a ; 23a9 - call Function2d72 ; 23aa - call Function23d3 ; 23ad - ret nz ; 23b0 - ld a, [$d044] ; 23b1 - ld b, a ; 23b4 - ld a, [$d045] ; 23b5 - ld c, a ; 23b8 - call Function2d80 ; 23b9 - ld a, c ; 23bc - cp $6 ; 23bd - ret nz ; 23bf - ld a, [$d047] ; 23c0 - ld [$d9fb], a ; 23c3 - ld a, [$d048] ; 23c6 - ld [$d9fc], a ; 23c9 - ret ; 23cc -; 23cd - -Function23cd:: - cp $2 ; 23cd - ret z ; 23cf - cp $1 ; 23d0 - ret ; 23d2 -; 23d3 - -Function23d3:: - cp $3 ; 23d3 - ret z ; 23d5 - cp $4 ; 23d6 - ret z ; 23d8 - cp $7 ; 23d9 - ret z ; 23db - cp $6 ; 23dc - ret ; 23de -; 23df - -Function23df:: - cp $3 ; 23df - ret z ; 23e1 - cp $6 ; 23e2 - ret z ; 23e4 - cp $5 ; 23e5 - ret ; 23e7 -; 23e8 - -Function23e8:: - call Function2405 ; 23e8 - call Function2d2b ; 23eb - call Function242e ; 23ee - xor a ; 23f1 - call Function2415 ; 23f2 - ret ; 23f5 -; 23f6 - -Function23f6:: - call Function2405 ; 23f6 - call Function2d2b ; 23f9 - call Function242e ; 23fc - ld a, $1 ; 23ff - call Function2415 ; 2401 - ret ; 2404 -; 2405 - -Function2405:: - call Function2d16 ; 2405 - call Function2cf5 ; 2408 - call Function2d56 ; 240b - call Function243b ; 240e - call Function2447 ; 2411 - ret ; 2414 -; 2415 - -Function2415:: - push af ; 2415 - ld hl, $d08f ; 2416 - ld a, [hli] ; 2419 - ld h, [hl] ; 241a - ld l, a ; 241b - inc hl ; 241c - inc hl ; 241d - call Function24b9 ; 241e - call Function24d0 ; 2421 - call Function24e7 ; 2424 - pop af ; 2427 - and a ; 2428 - ret nz ; 2429 - call Function24fe ; 242a - ret ; 242d -; 242e - -Function242e:: - ld hl, $d08d ; 242e - ld a, [hli] ; 2431 - ld h, [hl] ; 2432 - ld l, a ; 2433 - call Function248b ; 2434 - call Function24a2 ; 2437 - ret ; 243a -; 243b - -Function243b:: - ld de, $d086 ; 243b - ld c, $c ; 243e - ld a, [hli] ; 2440 - ld [de], a ; 2441 - inc de ; 2442 - dec c ; 2443 - jr nz, Function2440 ; 2444 - ret ; 2446 -; 2447 - -Function2447:: - ld a, $ff ; 2447 - ld [$d092], a ; 2449 - ld [$d09e], a ; 244c - ld [$d0aa], a ; 244f - ld [$d0b6], a ; 2452 - ld a, [$d091] ; 2455 - ld b, a ; 2458 - bit 3, b ; 2459 - jr z, Function2463 ; 245b - ld de, $d092 ; 245d - call Function2482 ; 2460 - bit 2, b ; 2463 - jr z, Function246d ; 2465 - ld de, $d09e ; 2467 - call Function2482 ; 246a - bit 1, b ; 246d - jr z, Function2477 ; 246f - ld de, $d0aa ; 2471 - call Function2482 ; 2474 - bit 0, b ; 2477 - jr z, Function2481 ; 2479 - ld de, $d0b6 ; 247b - call Function2482 ; 247e - ret ; 2481 -; 2482 - -Function2482:: - ld c, $c ; 2482 - ld a, [hli] ; 2484 - ld [de], a ; 2485 - inc de ; 2486 - dec c ; 2487 - jr nz, Function2484 ; 2488 - ret ; 248a -; 248b - -Function248b:: - ld a, [hli] ; 248b - ld c, a ; 248c - ld [$d951], a ; 248d - ld a, l ; 2490 - ld [$d952], a ; 2491 - ld a, h ; 2494 - ld [$d953], a ; 2495 - ld a, c ; 2498 - and a ; 2499 - ret z ; 249a - ld bc, $4 ; 249b - call Function31a3 ; 249e - ret ; 24a1 -; 24a2 - -Function24a2:: - ld a, [hli] ; 24a2 - ld c, a ; 24a3 - ld [$d954], a ; 24a4 - ld a, l ; 24a7 - ld [$d955], a ; 24a8 - ld a, h ; 24ab - ld [$d956], a ; 24ac - ld a, c ; 24af - and a ; 24b0 - ret z ; 24b1 - ld bc, $3 ; 24b2 - call Function31a3 ; 24b5 - ret ; 24b8 -; 24b9 - -Function24b9:: - ld a, [hli] ; 24b9 - ld c, a ; 24ba - ld [$d945], a ; 24bb - ld a, l ; 24be - ld [$d946], a ; 24bf - ld a, h ; 24c2 - ld [$d947], a ; 24c3 - ld a, c ; 24c6 - and a ; 24c7 - ret z ; 24c8 - ld bc, $5 ; 24c9 - call Function31a3 ; 24cc - ret ; 24cf -; 24d0 - -Function24d0:: - ld a, [hli] ; 24d0 - ld c, a ; 24d1 - ld [$d948], a ; 24d2 - ld a, l ; 24d5 - ld [$d949], a ; 24d6 - ld a, h ; 24d9 - ld [$d94a], a ; 24da - ld a, c ; 24dd - and a ; 24de - ret z ; 24df - ld bc, $8 ; 24e0 - call Function31a3 ; 24e3 - ret ; 24e6 -; 24e7 - -Function24e7:: - ld a, [hli] ; 24e7 - ld c, a ; 24e8 - ld [$d94b], a ; 24e9 - ld a, l ; 24ec - ld [$d94c], a ; 24ed - ld a, h ; 24f0 - ld [$d94d], a ; 24f1 - ld a, c ; 24f4 - and a ; 24f5 - ret z ; 24f6 - ld bc, $5 ; 24f7 - call Function31a3 ; 24fa - ret ; 24fd -; 24fe - -Function24fe:: - push hl ; 24fe - call Function2550 ; 24ff - pop de ; 2502 - ld hl, $d465 ; 2503 - ld a, [de] ; 2506 - inc de ; 2507 - ld [$d94e], a ; 2508 - ld a, e ; 250b - ld [$d94f], a ; 250c - ld a, d ; 250f - ld [$d950], a ; 2510 - ld a, [$d94e] ; 2513 - call Function2536 ; 2516 - ld a, [$d94e] ; 2519 - ld c, a ; 251c - ld a, $10 ; 251d - sub c ; 251f - jr z, Function2533 ; 2520 - ld bc, $1 ; 2522 - add hl, bc ; 2525 - ld bc, $10 ; 2526 - ld [hl], $0 ; 2529 - inc hl ; 252b - ld [hl], $ff ; 252c - dec hl ; 252e - add hl, bc ; 252f - dec a ; 2530 - jr nz, Function2529 ; 2531 - ld h, d ; 2533 - ld l, e ; 2534 - ret ; 2535 -; 2536 - -Function2536:: - and a ; 2536 - ret z ; 2537 - ld c, a ; 2538 - push bc ; 2539 - push hl ; 253a - ld a, $ff ; 253b - ld [hli], a ; 253d - ld b, $d ; 253e - ld a, [de] ; 2540 - inc de ; 2541 - ld [hli], a ; 2542 - dec b ; 2543 - jr nz, Function2540 ; 2544 - pop hl ; 2546 - ld bc, $10 ; 2547 - add hl, bc ; 254a - pop bc ; 254b - dec c ; 254c - jr nz, Function2539 ; 254d - ret ; 254f -; 2550 - -Function2550:: - ld hl, $d225 ; 2550 - ld bc, $1e0 ; 2553 - xor a ; 2556 - call Function314c ; 2557 - ld hl, $d225 ; 255a - ld de, $28 ; 255d - ld c, $c ; 2560 - xor a ; 2562 - ld [hl], a ; 2563 - add hl, de ; 2564 - dec c ; 2565 - jr nz, Function2563 ; 2566 - ret ; 2568 -; 2569 - -Function2569:: - call Function2d30 ; 2569 - rst Bankswitch ; 256c - ld hl, $d08f ; 256d - ld a, [hli] ; 2570 - ld h, [hl] ; 2571 - ld l, a ; 2572 - inc hl ; 2573 - inc hl ; 2574 - inc hl ; 2575 - ld a, [$d9ff] ; 2576 - dec a ; 2579 - ld c, a ; 257a - ld b, $0 ; 257b - ld a, $5 ; 257d - call Function31a3 ; 257f - ld a, [hli] ; 2582 - ld [$da02], a ; 2583 - ld a, [hli] ; 2586 - ld [$da03], a ; 2587 - ld a, [hli] ; 258a - cp $ff ; 258b - jr nz, Function2592 ; 258d - call Function2596 ; 258f - call Function25a9 ; 2592 - ret ; 2595 -; 2596 - -Function2596:: - ld a, [$d046] ; 2596 - ld [$d9f5], a ; 2599 - ld a, [$d047] ; 259c - ld [$d9f6], a ; 259f - ld a, [$d048] ; 25a2 - ld [$d9f7], a ; 25a5 - ret ; 25a8 -; 25a9 - -Function25a9:: - ld hl, $c700 ; 25a9 - ld a, [$da03] ; 25ac - bit 0, a ; 25af - jr nz, Function25b9 ; 25b1 - srl a ; 25b3 - add a, $1 ; 25b5 - jr Function25bd ; 25b7 -; 25b9 - -Function25b9:: - add a, $1 ; 25b9 - srl a ; 25bb - ld c, a ; 25bd - ld b, $0 ; 25be - add hl, bc ; 25c0 - ld a, [$d088] ; 25c1 - add a, $6 ; 25c4 - ld c, a ; 25c6 - ld b, $0 ; 25c7 - ld a, [$da02] ; 25c9 - bit 0, a ; 25cc - jr nz, Function25d6 ; 25ce - srl a ; 25d0 - add a, $1 ; 25d2 - jr Function25da ; 25d4 -; 25d6 - -Function25d6:: - add a, $1 ; 25d6 - srl a ; 25d8 - call Function31a3 ; 25da - ld a, l ; 25dd - ld [$d07d], a ; 25de - ld a, h ; 25e1 - ld [$d07e], a ; 25e2 - ld a, [$da02] ; 25e5 - and $1 ; 25e8 - ld [$d07f], a ; 25ea - ld a, [$da03] ; 25ed - and $1 ; 25f0 - ld [$d080], a ; 25f2 - ret ; 25f5 -; 25f6 - -Function25f6:: - ld hl, $c700 ; 25f6 - ld bc, $514 ; 25f9 - ld a, $0 ; 25fc - call Function314c ; 25fe - call Function260d ; 2601 - call Function264d ; 2604 - ld a, $1 ; 2607 - call Function2764 ; 2609 - ret ; 260c -; 260d - -Function260d:: - ldh a, [hROMBank] ; 260d - push af ; 260f - ld hl, $c700 ; 2610 - ld a, [$d088] ; 2613 - ldh [$ffb2], a ; 2616 - add a, $6 ; 2618 - ldh [$ffb1], a ; 261a - ld c, a ; 261c - ld b, $0 ; 261d - add hl, bc ; 261f - add hl, bc ; 2620 - add hl, bc ; 2621 - ld c, $3 ; 2622 - add hl, bc ; 2624 - ld a, [$d089] ; 2625 - rst Bankswitch ; 2628 - ld a, [$d08a] ; 2629 - ld e, a ; 262c - ld a, [$d08b] ; 262d - ld d, a ; 2630 - ld a, [$d087] ; 2631 - ld b, a ; 2634 - push hl ; 2635 - ldh a, [$ffb2] ; 2636 - ld c, a ; 2638 - ld a, [de] ; 2639 - inc de ; 263a - ld [hli], a ; 263b - dec c ; 263c - jr nz, Function2639 ; 263d - pop hl ; 263f - ldh a, [$ffb1] ; 2640 - add l ; 2642 - ld l, a ; 2643 - jr nc, Function2647 ; 2644 - inc h ; 2646 - dec b ; 2647 - jr nz, Function2635 ; 2648 - pop af ; 264a - rst Bankswitch ; 264b - ret ; 264c -; 264d - -Function264d:: - ld a, [$d092] ; 264d - cp $ff ; 2650 - jr z, Function2679 ; 2652 - ld b, a ; 2654 - ld a, [$d093] ; 2655 - ld c, a ; 2658 - call Function2d34 ; 2659 - ld a, [$d094] ; 265c - ld l, a ; 265f - ld a, [$d095] ; 2660 - ld h, a ; 2663 - ld a, [$d096] ; 2664 - ld e, a ; 2667 - ld a, [$d097] ; 2668 - ld d, a ; 266b - ld a, [$d098] ; 266c - ldh [$ffb1], a ; 266f - ld a, [$d099] ; 2671 - ldh [$ffb2], a ; 2674 - call Function26fc ; 2676 - ld a, [$d09e] ; 2679 - cp $ff ; 267c - jr z, Function26a5 ; 267e - ld b, a ; 2680 - ld a, [$d09f] ; 2681 - ld c, a ; 2684 - call Function2d34 ; 2685 - ld a, [$d0a0] ; 2688 - ld l, a ; 268b - ld a, [$d0a1] ; 268c - ld h, a ; 268f - ld a, [$d0a2] ; 2690 - ld e, a ; 2693 - ld a, [$d0a3] ; 2694 - ld d, a ; 2697 - ld a, [$d0a4] ; 2698 - ldh [$ffb1], a ; 269b - ld a, [$d0a5] ; 269d - ldh [$ffb2], a ; 26a0 - call Function26fc ; 26a2 - ld a, [$d0aa] ; 26a5 - cp $ff ; 26a8 - jr z, Function26d0 ; 26aa - ld b, a ; 26ac - ld a, [$d0ab] ; 26ad - ld c, a ; 26b0 - call Function2d34 ; 26b1 - ld a, [$d0ac] ; 26b4 - ld l, a ; 26b7 - ld a, [$d0ad] ; 26b8 - ld h, a ; 26bb - ld a, [$d0ae] ; 26bc - ld e, a ; 26bf - ld a, [$d0af] ; 26c0 - ld d, a ; 26c3 - ld a, [$d0b0] ; 26c4 - ld b, a ; 26c7 - ld a, [$d0b1] ; 26c8 - ldh [$ffb1], a ; 26cb - call Function271f ; 26cd - ld a, [$d0b6] ; 26d0 - cp $ff ; 26d3 - jr z, Function26fb ; 26d5 - ld b, a ; 26d7 - ld a, [$d0b7] ; 26d8 - ld c, a ; 26db - call Function2d34 ; 26dc - ld a, [$d0b8] ; 26df - ld l, a ; 26e2 - ld a, [$d0b9] ; 26e3 - ld h, a ; 26e6 - ld a, [$d0ba] ; 26e7 - ld e, a ; 26ea - ld a, [$d0bb] ; 26eb - ld d, a ; 26ee - ld a, [$d0bc] ; 26ef - ld b, a ; 26f2 - ld a, [$d0bd] ; 26f3 - ldh [$ffb1], a ; 26f6 - call Function271f ; 26f8 - ret ; 26fb -; 26fc - -Function26fc:: - ld c, $3 ; 26fc - push de ; 26fe - push hl ; 26ff - ldh a, [$ffb1] ; 2700 - ld b, a ; 2702 - ld a, [hli] ; 2703 - ld [de], a ; 2704 - inc de ; 2705 - dec b ; 2706 - jr nz, Function2703 ; 2707 - pop hl ; 2709 - ldh a, [$ffb2] ; 270a - ld e, a ; 270c - ld d, $0 ; 270d - add hl, de ; 270f - pop de ; 2710 - ld a, [$d088] ; 2711 - add a, $6 ; 2714 - add e ; 2716 - ld e, a ; 2717 - jr nc, Function271b ; 2718 - inc d ; 271a - dec c ; 271b - jr nz, Function26fe ; 271c - ret ; 271e -; 271f - -Function271f:: - ld a, [$d088] ; 271f - add a, $6 ; 2722 - ldh [$ffb2], a ; 2724 - push de ; 2726 - push hl ; 2727 - ld a, [hli] ; 2728 - ld [de], a ; 2729 - inc de ; 272a - ld a, [hli] ; 272b - ld [de], a ; 272c - inc de ; 272d - ld a, [hli] ; 272e - ld [de], a ; 272f - inc de ; 2730 - pop hl ; 2731 - ldh a, [$ffb1] ; 2732 - ld e, a ; 2734 - ld d, $0 ; 2735 - add hl, de ; 2737 - pop de ; 2738 - ldh a, [$ffb2] ; 2739 - add e ; 273b - ld e, a ; 273c - jr nc, Function2740 ; 273d - inc d ; 273f - dec b ; 2740 - jr nz, Function271f ; 2741 - ret ; 2743 -; 2744 - -Function2744:: - ld [$d159], a ; 2744 - ret ; 2747 -; 2748 - -Function2748:: - ld [$d160], a ; 2748 - ld a, l ; 274b - ld [$d161], a ; 274c - ld a, h ; 274f - ld [$d162], a ; 2750 - ld a, $ff ; 2753 - ld [$d15f], a ; 2755 - scf ; 2758 - ret ; 2759 -; 275a - -Function275a:: - ld a, [$d15f] ; 275a - and a ; 275d - ret nz ; 275e - call Function2d30 ; 275f - jr Function2748 ; 2762 -; 2764 - -Function2764:: - ld b, a ; 2764 - ldh a, [hROMBank] ; 2765 - push af ; 2767 - call Function2d2b ; 2768 - call Function277c ; 276b - jr nc, Function2779 ; 276e - call Function2d30 ; 2770 - ld b, a ; 2773 - ld d, h ; 2774 - ld e, l ; 2775 - call Function279d ; 2776 - pop af ; 2779 - rst Bankswitch ; 277a - ret ; 277b -; 277c - -Function277c:: - ld a, [$d954] ; 277c - ld c, a ; 277f - and a ; 2780 - ret z ; 2781 - ld hl, $d955 ; 2782 - ld a, [hli] ; 2785 - ld h, [hl] ; 2786 - ld l, a ; 2787 - or h ; 2788 - ret z ; 2789 - ld de, $3 ; 278a - ld a, [hl] ; 278d - cp b ; 278e - jr z, Function2797 ; 278f - add hl, de ; 2791 - dec c ; 2792 - jr nz, Function278d ; 2793 - xor a ; 2795 - ret ; 2796 -; 2797 - -Function2797:: - inc hl ; 2797 - ld a, [hli] ; 2798 - ld h, [hl] ; 2799 - ld l, a ; 279a - scf ; 279b - ret ; 279c -; 279d - -Function279d:: - ld a, $25 ; 279d - ld hl, $7365 ; 279f - rst FarCall ; 27a2 - ld a, [$d15e] ; 27a3 - push af ; 27a6 - ld hl, $d15b ; 27a7 - ld a, [hl] ; 27aa - push af ; 27ab - set 1, [hl] ; 27ac - ld a, $25 ; 27ae - ld hl, $6b89 ; 27b0 - rst FarCall ; 27b3 - ld a, $25 ; 27b4 - ld hl, $6b91 ; 27b6 - rst FarCall ; 27b9 - pop af ; 27ba - ld [$d15b], a ; 27bb - pop af ; 27be - ld [$d15e], a ; 27bf - ret ; 27c2 -; 27c3 - -Function27c3:: - ldh a, [hROMBank] ; 27c3 - push af ; 27c5 - ld a, b ; 27c6 - rst Bankswitch ; 27c7 - call Functionf68 ; 27c8 - ld a, $1 ; 27cb - ldh [$ffda], a ; 27cd - call Functionf61 ; 27cf - xor a ; 27d2 - ldh [$ffda], a ; 27d3 - pop af ; 27d5 - rst Bankswitch ; 27d6 - ret ; 27d7 -; 27d8 - -Function27d8:: - ld [$d156], a ; 27d8 - ldh a, [hROMBank] ; 27db - push af ; 27dd - ld a, [$d156] ; 27de - rst Bankswitch ; 27e1 - call Function27e8 ; 27e2 - pop af ; 27e5 - rst Bankswitch ; 27e6 - ret ; 27e7 -; 27e8 - -Function27e8:: - push de ; 27e8 - ret ; 27e9 -; 27ea - -Function27ea:: - ldh a, [hROMBank] ; 27ea - push af ; 27ec - ld a, b ; 27ed - rst Bankswitch ; 27ee - ld a, c ; 27ef - call Function1886 ; 27f0 - pop hl ; 27f3 - ld a, h ; 27f4 - rst Bankswitch ; 27f5 - ret ; 27f6 -; 27f7 - -Function27f7:: - push hl ; 27f7 - push bc ; 27f8 - ldh a, [hROMBank] ; 27f9 - push af ; 27fb - ld a, [$d160] ; 27fc - rst Bankswitch ; 27ff - ld hl, $d161 ; 2800 - ld c, [hl] ; 2803 - inc hl ; 2804 - ld b, [hl] ; 2805 - ld a, [bc] ; 2806 - inc bc ; 2807 - ld [hl], b ; 2808 - dec hl ; 2809 - ld [hl], c ; 280a - ld b, a ; 280b - pop af ; 280c - rst Bankswitch ; 280d - ld a, b ; 280e - pop bc ; 280f - pop hl ; 2810 - ret ; 2811 -; 2812 - -Function2812:: - ld d, c ; 2812 - dec d ; 2813 - jr z, Function282c ; 2814 - add h ; 2816 - ld e, e ; 2817 - ld h, l ; 2818 - ld d, b ; 2819 - ld d, d ; 281a - dec e ; 281b - jr z, Function2834 ; 281c - sub e ; 281e - ld e, e ; 281f - ld h, l ; 2820 - ld d, b ; 2821 - ld d, d ; 2822 - dec h ; 2823 - jr z, Function283c ; 2824 - sbc l ; 2826 - ld e, e ; 2827 - ld h, l ; 2828 - ld d, b ; 2829 - ldh a, [$ffb1] ; 282a - ld e, a ; 282c - ld d, $0 ; 282d - ld hl, $d545 ; 282f - add hl, de ; 2832 - ld a, [hl] ; 2833 - ret ; 2834 -; 2835 - -Function2835:: - ldh a, [$ffb1] ; 2835 - ld e, a ; 2837 - ld d, $0 ; 2838 - ld hl, $d545 ; 283a - add hl, de ; 283d - ld [hl], $ff ; 283e - ret ; 2840 -; 2841 - -Function2841:: - ldh a, [$ffb1] ; 2841 - ld e, a ; 2843 - ld d, $0 ; 2844 - ld hl, $d545 ; 2846 - add hl, de ; 2849 - ld [hl], $0 ; 284a - ret ; 284c -; 284d - -Function284d:: - ld hl, $c3a0 ; 284d - ld de, $cc20 ; 2850 - call Function28da ; 2853 - ld c, $28 ; 2856 - call Functiond64 ; 2858 - ld a, [$d05b] ; 285b - ld e, a ; 285e - ld a, [$d05c] ; 285f - ld d, a ; 2862 - call Function28f6 ; 2863 - ld a, $1 ; 2866 - ldh [$ffdd], a ; 2868 - ret ; 286a -; 286b - -Function286b:: - ld hl, $c4e0 ; 286b - ld de, $cc20 ; 286e - call Function28da ; 2871 - ld c, $28 ; 2874 - call Functiond64 ; 2876 - ld a, [$d05b] ; 2879 - ld l, a ; 287c - ld a, [$d05c] ; 287d - ld h, a ; 2880 - ld bc, $200 ; 2881 - add hl, bc ; 2884 - ld a, h ; 2885 - and $3 ; 2886 - or $98 ; 2888 - ld e, l ; 288a - ld d, a ; 288b - call Function28f6 ; 288c - ld a, $1 ; 288f - ldh [$ffdd], a ; 2891 - ret ; 2893 -; 2894 - -Function2894:: - ld hl, $c3a0 ; 2894 - ld de, $cc20 ; 2897 - call Function28e3 ; 289a - ld c, $24 ; 289d - call Functiond64 ; 289f - ld a, [$d05b] ; 28a2 - ld e, a ; 28a5 - ld a, [$d05c] ; 28a6 - ld d, a ; 28a9 - call Function291b ; 28aa - ld a, $1 ; 28ad - ldh [$ffdd], a ; 28af - ret ; 28b1 -; 28b2 - -Function28b2:: - ld hl, $c3b2 ; 28b2 - ld de, $cc20 ; 28b5 - call Function28e3 ; 28b8 - ld c, $24 ; 28bb - call Functiond64 ; 28bd - ld a, [$d05b] ; 28c0 - ld e, a ; 28c3 - and $e0 ; 28c4 - ld b, a ; 28c6 - ld a, e ; 28c7 - add a, $12 ; 28c8 - and $1f ; 28ca - or b ; 28cc - ld e, a ; 28cd - ld a, [$d05c] ; 28ce - ld d, a ; 28d1 - call Function291b ; 28d2 - ld a, $1 ; 28d5 - ldh [$ffdd], a ; 28d7 - ret ; 28d9 -; 28da - -Function28da:: - ld c, $28 ; 28da - ld a, [hli] ; 28dc - ld [de], a ; 28dd - inc de ; 28de - dec c ; 28df - jr nz, Function28dc ; 28e0 - ret ; 28e2 -; 28e3 - -Function28e3:: - ld c, $12 ; 28e3 - ld a, [hli] ; 28e5 - ld [de], a ; 28e6 - inc de ; 28e7 - ld a, [hl] ; 28e8 - ld [de], a ; 28e9 - inc de ; 28ea - ld a, $13 ; 28eb - add l ; 28ed - ld l, a ; 28ee - jr nc, Function28f2 ; 28ef - inc h ; 28f1 - dec c ; 28f2 - jr nz, Function28e5 ; 28f3 - ret ; 28f5 -; 28f6 - -Function28f6:: - ld hl, $cc70 ; 28f6 - push de ; 28f9 - call Function2902 ; 28fa - pop de ; 28fd - ld a, $20 ; 28fe - add e ; 2900 - ld e, a ; 2901 - ld c, $a ; 2902 - ld a, e ; 2904 - ld [hli], a ; 2905 - ld a, d ; 2906 - ld [hli], a ; 2907 - ld a, e ; 2908 - inc a ; 2909 - inc a ; 290a - and $1f ; 290b - ld b, a ; 290d - ld a, e ; 290e - and $e0 ; 290f - or b ; 2911 - ld e, a ; 2912 - dec c ; 2913 - jr nz, Function2904 ; 2914 - ld a, $14 ; 2916 - ldh [$ffde], a ; 2918 - ret ; 291a -; 291b - -Function291b:: - ld hl, $cc70 ; 291b - ld c, $12 ; 291e - ld a, e ; 2920 - ld [hli], a ; 2921 - ld a, d ; 2922 - ld [hli], a ; 2923 - ld a, $20 ; 2924 - add e ; 2926 - ld e, a ; 2927 - jr nc, Function2931 ; 2928 - inc d ; 292a - ld a, d ; 292b - and $3 ; 292c - or $98 ; 292e - ld d, a ; 2930 - dec c ; 2931 - jr nz, Function2920 ; 2932 - ld a, $12 ; 2934 - ldh [$ffde], a ; 2936 - ret ; 2938 -; 2939 - -Function2939:: - ld hl, $cc20 ; 2939 - ld bc, $78 ; 293c - xor a ; 293f - call Function314c ; 2940 - ret ; 2943 -; 2944 - -Function2944:: - ld hl, $d0c3 ; 2944 - ld a, [hli] ; 2947 - ld h, [hl] ; 2948 - ld l, a ; 2949 - ld de, $9000 ; 294a - ld a, [$d0c2] ; 294d - call Functionaf0 ; 2950 - ld a, [$d082] ; 2953 - cp $1 ; 2956 - jr z, Function2960 ; 2958 - cp $2 ; 295a - jr z, Function2960 ; 295c - jr Function2966 ; 295e -; 2960 - -Function2960:: - ld a, $7 ; 2960 - ld hl, $4000 ; 2962 - rst FarCall ; 2965 - xor a ; 2966 - ldh [$ffe1], a ; 2967 - ret ; 2969 -; 296a - -Function296a:: - ld hl, $d07d ; 296a - ld a, [hli] ; 296d - ld h, [hl] ; 296e - ld l, a ; 296f - ld de, $da04 ; 2970 - ld c, $5 ; 2973 - ld b, $6 ; 2975 - push bc ; 2977 - push hl ; 2978 - ld a, [hli] ; 2979 - ld [de], a ; 297a - inc de ; 297b - dec b ; 297c - jr nz, Function2979 ; 297d - pop hl ; 297f - ld a, [$d088] ; 2980 - add a, $6 ; 2983 - ld c, a ; 2985 - ld b, $0 ; 2986 - add hl, bc ; 2988 - pop bc ; 2989 - dec c ; 298a - jr nz, Function2977 ; 298b - ret ; 298d -; 298e - -Function298e:: - ld hl, $d07d ; 298e - ld a, [hli] ; 2991 - ld h, [hl] ; 2992 - ld l, a ; 2993 - ld de, $da04 ; 2994 - ld a, [$d088] ; 2997 - add a, $6 ; 299a - ldh [$ffb1], a ; 299c - ld a, [$ce86] ; 299e - and a ; 29a1 - jr z, Function29bc ; 29a2 - cp $1 ; 29a4 - jr z, Function29b1 ; 29a6 - cp $2 ; 29a8 - jr z, Function29c5 ; 29aa - cp $3 ; 29ac - jr z, Function29cb ; 29ae - ret ; 29b0 -; 29b1 - -Function29b1:: - ld de, $da0a ; 29b1 - ldh a, [$ffb1] ; 29b4 - ld c, a ; 29b6 - ld b, $0 ; 29b7 - add hl, bc ; 29b9 - jr Function29bf ; 29ba -; 29bc - -Function29bc:: - ld de, $da04 ; 29bc - ld b, $6 ; 29bf - ld c, $4 ; 29c1 - jr Function29e8 ; 29c3 -; 29c5 - -Function29c5:: - ld de, $da05 ; 29c5 - inc hl ; 29c8 - jr Function29ce ; 29c9 -; 29cb - -Function29cb:: - ld de, $da04 ; 29cb - ld b, $5 ; 29ce - ld c, $5 ; 29d0 - jr Function29e8 ; 29d2 -; 29d4 - -Function29d4:: - ld hl, $d07d ; 29d4 - ld a, [hli] ; 29d7 - ld h, [hl] ; 29d8 - ld l, a ; 29d9 - ld a, [$d088] ; 29da - add a, $6 ; 29dd - ldh [$ffb1], a ; 29df - ld de, $da04 ; 29e1 - ld b, $6 ; 29e4 - ld c, $5 ; 29e6 - push bc ; 29e8 - push hl ; 29e9 - push de ; 29ea - ld a, [de] ; 29eb - inc de ; 29ec - ld [hli], a ; 29ed - dec b ; 29ee - jr nz, Function29eb ; 29ef - pop de ; 29f1 - ld a, e ; 29f2 - add a, $6 ; 29f3 - ld e, a ; 29f5 - jr nc, Function29f9 ; 29f6 - inc d ; 29f8 - pop hl ; 29f9 - ldh a, [$ffb1] ; 29fa - ld c, a ; 29fc - ld b, $0 ; 29fd - add hl, bc ; 29ff - pop bc ; 2a00 - dec c ; 2a01 - jr nz, Function29e8 ; 2a02 - ret ; 2a04 -; 2a05 - -Function2a05:: - xor a ; 2a05 - ld [$cea7], a ; 2a06 - call Function2a5d ; 2a09 - call Function2a3e ; 2a0c - ld a, [$d20d] ; 2a0f - ld d, a ; 2a12 - ld a, [$d20e] ; 2a13 - ld e, a ; 2a16 - call Function2b21 ; 2a17 - ld [$d20b], a ; 2a1a - call Function2ae4 ; 2a1d - ret nz ; 2a20 - ld a, [$d20b] ; 2a21 - and $7 ; 2a24 - ld hl, $2a36 ; 2a26 - add l ; 2a29 - ld l, a ; 2a2a - ld a, $0 ; 2a2b - adc h ; 2a2d - ld h, a ; 2a2e - ld a, [hl] ; 2a2f - ld hl, $cea7 ; 2a30 - or [hl] ; 2a33 - ld [hl], a ; 2a34 - ret ; 2a35 -; 2a36 - -Function2a36:: - ld bc, $402 ; 2a36 - ld [$a09], sp ; 2a39 - dec b ; 2a3c - ld b, $fa ; 2a3d - dec c ; 2a3f - jp nc, Functionfa57 ; 2a40 - ld c, $d2 ; 2a43 - ld e, a ; 2a45 - push de ; 2a46 - inc e ; 2a47 - call Function2b21 ; 2a48 - ld [$cea3], a ; 2a4b - call Function2a7c ; 2a4e - pop de ; 2a51 - dec e ; 2a52 - call Function2b21 ; 2a53 - ld [$cea4], a ; 2a56 - call Function2a96 ; 2a59 - ret ; 2a5c -; 2a5d - -Function2a5d:: - ld a, [$d20d] ; 2a5d - ld d, a ; 2a60 - ld a, [$d20e] ; 2a61 - ld e, a ; 2a64 - push de ; 2a65 - dec d ; 2a66 - call Function2b21 ; 2a67 - ld [$cea5], a ; 2a6a - call Function2aca ; 2a6d - pop de ; 2a70 - inc d ; 2a71 - call Function2b21 ; 2a72 - ld [$cea6], a ; 2a75 - call Function2ab0 ; 2a78 - ret ; 2a7b -; 2a7c - -Function2a7c:: - call Function2ae4 ; 2a7c - ret nz ; 2a7f - ld a, [$cea3] ; 2a80 - and $7 ; 2a83 - cp $2 ; 2a85 - jr z, Function2a90 ; 2a87 - cp $6 ; 2a89 - jr z, Function2a90 ; 2a8b - cp $7 ; 2a8d - ret nz ; 2a8f - ld hl, $cea7 ; 2a90 - set 3, [hl] ; 2a93 - ret ; 2a95 -; 2a96 - -Function2a96:: - call Function2ae4 ; 2a96 - ret nz ; 2a99 - ld a, [$cea4] ; 2a9a - and $7 ; 2a9d - cp $3 ; 2a9f - jr z, Function2aaa ; 2aa1 - cp $4 ; 2aa3 - jr z, Function2aaa ; 2aa5 - cp $5 ; 2aa7 - ret nz ; 2aa9 - ld hl, $cea7 ; 2aaa - set 3, [hl] ; 2aad - ret ; 2aaf -; 2ab0 - -Function2ab0:: - call Function2ae4 ; 2ab0 - ret nz ; 2ab3 - ld a, [$cea6] ; 2ab4 - and $7 ; 2ab7 - cp $1 ; 2ab9 - jr z, Function2ac4 ; 2abb - cp $5 ; 2abd - jr z, Function2ac4 ; 2abf - cp $7 ; 2ac1 - ret nz ; 2ac3 - ld hl, $cea7 ; 2ac4 - set 3, [hl] ; 2ac7 - ret ; 2ac9 -; 2aca - -Function2aca:: - call Function2ae4 ; 2aca - ret nz ; 2acd - ld a, [$cea5] ; 2ace - and $7 ; 2ad1 - cp $0 ; 2ad3 - jr z, Function2ade ; 2ad5 - cp $4 ; 2ad7 - jr z, Function2ade ; 2ad9 - cp $6 ; 2adb - ret nz ; 2add - ld hl, $cea7 ; 2ade - set 3, [hl] ; 2ae1 - ret ; 2ae3 -; 2ae4 - -Function2ae4:: - and $f0 ; 2ae4 - cp $b0 ; 2ae6 - ret z ; 2ae8 - cp $c0 ; 2ae9 - ret ; 2aeb -; 2aec - -Function2aec:: - ld a, [$d205] ; 2aec - and $c ; 2aef - srl a ; 2af1 - srl a ; 2af3 - ld l, a ; 2af5 - ld h, $0 ; 2af6 - add hl, hl ; 2af8 - add hl, hl ; 2af9 - ld de, $2b11 ; 2afa - add hl, de ; 2afd - ld d, [hl] ; 2afe - inc hl ; 2aff - ld e, [hl] ; 2b00 - inc hl ; 2b01 - ld a, [hli] ; 2b02 - ld h, [hl] ; 2b03 - ld l, a ; 2b04 - ld a, [$d20d] ; 2b05 - add d ; 2b08 - ld d, a ; 2b09 - ld a, [$d20e] ; 2b0a - add e ; 2b0d - ld e, a ; 2b0e - ld a, [hl] ; 2b0f - ret ; 2b10 -; 2b11 - -Function2b11:: - nop ; 2b11 - ld bc, $cea3 ; 2b12 - nop ; 2b15 - rst $38 ; 2b16 - and h ; 2b17 - adc a, $ff ; 2b18 - nop ; 2b1a - and l ; 2b1b - adc a, $1 ; 2b1c - nop ; 2b1e - and [hl] ; 2b1f - adc a, $cd ; 2b20 - ld c, e ; 2b22 - dec hl ; 2b23 - ld a, [hl] ; 2b24 - and a ; 2b25 - jr z, Function2b48 ; 2b26 - ld l, a ; 2b28 - ld h, $0 ; 2b29 - add hl, hl ; 2b2b - add hl, hl ; 2b2c - ld a, [$d0c9] ; 2b2d - ld c, a ; 2b30 - ld a, [$d0ca] ; 2b31 - ld b, a ; 2b34 - add hl, bc ; 2b35 - rr d ; 2b36 - jr nc, Function2b3b ; 2b38 - inc hl ; 2b3a - rr e ; 2b3b - jr nc, Function2b41 ; 2b3d - inc hl ; 2b3f - inc hl ; 2b40 - ld a, [$d0c8] ; 2b41 - call Function3128 ; 2b44 - ret ; 2b47 -; 2b48 - -Function2b48:: - ld a, $ff ; 2b48 - ret ; 2b4a -; 2b4b - -Function2b4b:: - ld a, [$d088] ; 2b4b - add a, $6 ; 2b4e - ld c, a ; 2b50 - ld b, $0 ; 2b51 - ld hl, $c701 ; 2b53 - add hl, bc ; 2b56 - ld a, e ; 2b57 - srl a ; 2b58 - jr z, Function2b69 ; 2b5a - and a ; 2b5c - srl a ; 2b5d - jr nc, Function2b62 ; 2b5f - add hl, bc ; 2b61 - sla c ; 2b62 - rl b ; 2b64 - and a ; 2b66 - jr nz, Function2b5d ; 2b67 - ld c, d ; 2b69 - srl c ; 2b6a - ld b, $0 ; 2b6c - add hl, bc ; 2b6e - ret ; 2b6f -; 2b70 - -Function2b70:: - call Function2aec ; 2b70 - ld b, a ; 2b73 - ld a, d ; 2b74 - sub a, $4 ; 2b75 - ld d, a ; 2b77 - ld a, e ; 2b78 - sub a, $4 ; 2b79 - ld e, a ; 2b7b - ld a, [$d94b] ; 2b7c - and a ; 2b7f - ret z ; 2b80 - ld c, a ; 2b81 - ldh a, [hROMBank] ; 2b82 - push af ; 2b84 - call Function2d2b ; 2b85 - call Function2b8f ; 2b88 - pop hl ; 2b8b - ld a, h ; 2b8c - rst Bankswitch ; 2b8d - ret ; 2b8e -; 2b8f - -Function2b8f:: - ld hl, $d94c ; 2b8f - ld a, [hli] ; 2b92 - ld h, [hl] ; 2b93 - ld l, a ; 2b94 - push hl ; 2b95 - ld a, [hli] ; 2b96 - cp e ; 2b97 - jr nz, Function2ba0 ; 2b98 - ld a, [hli] ; 2b9a - cp d ; 2b9b - jr nz, Function2ba0 ; 2b9c - jr Function2bad ; 2b9e -; 2ba0 - -Function2ba0:: - pop hl ; 2ba0 - ld a, $5 ; 2ba1 - add l ; 2ba3 - ld l, a ; 2ba4 - jr nc, Function2ba8 ; 2ba5 - inc h ; 2ba7 - dec c ; 2ba8 - jr nz, Function2b95 ; 2ba9 - xor a ; 2bab - ret ; 2bac -; 2bad - -Function2bad:: - pop hl ; 2bad - ld de, $cf29 ; 2bae - ld bc, $5 ; 2bb1 - call Function311a ; 2bb4 - scf ; 2bb7 - ret ; 2bb8 -; 2bb9 - -Function2bb9:: - ld a, [$d948] ; 2bb9 - and a ; 2bbc - ret z ; 2bbd - ld c, a ; 2bbe - ldh a, [hROMBank] ; 2bbf - push af ; 2bc1 - call Function2d2b ; 2bc2 - call Function2bcc ; 2bc5 - pop hl ; 2bc8 - ld a, h ; 2bc9 - rst Bankswitch ; 2bca - ret ; 2bcb -; 2bcc - -Function2bcc:: - ld hl, $d949 ; 2bcc - ld a, [hli] ; 2bcf - ld h, [hl] ; 2bd0 - ld l, a ; 2bd1 - call Function1f69 ; 2bd2 - ld b, a ; 2bd5 - ld a, [$d20d] ; 2bd6 - sub a, $4 ; 2bd9 - ld d, a ; 2bdb - ld a, [$d20e] ; 2bdc - sub a, $4 ; 2bdf - ld e, a ; 2be1 - push hl ; 2be2 - ld a, [hli] ; 2be3 - cp b ; 2be4 - jr z, Function2beb ; 2be5 - cp $ff ; 2be7 - jr nz, Function2bf5 ; 2be9 - ld a, [hli] ; 2beb - cp e ; 2bec - jr nz, Function2bf5 ; 2bed - ld a, [hli] ; 2bef - cp d ; 2bf0 - jr nz, Function2bf5 ; 2bf1 - jr Function2c02 ; 2bf3 -; 2bf5 - -Function2bf5:: - pop hl ; 2bf5 - ld a, $8 ; 2bf6 - add l ; 2bf8 - ld l, a ; 2bf9 - jr nc, Function2bfd ; 2bfa - inc h ; 2bfc - dec c ; 2bfd - jr nz, Function2be2 ; 2bfe - xor a ; 2c00 - ret ; 2c01 -; 2c02 - -Function2c02:: - pop hl ; 2c02 - ld de, $cf29 ; 2c03 - ld bc, $8 ; 2c06 - call Function311a ; 2c09 - scf ; 2c0c - ret ; 2c0d -; 2c0e - -Function2c0e:: - xor a ; 2c0e - ldh [$ffd6], a ; 2c0f - call Function1be0 ; 2c11 - ld a, $23 ; 2c14 - ld hl, $43ab ; 2c16 - rst FarCall ; 2c19 - call Function30ff ; 2c1a - call Function2f93 ; 2c1d - ret ; 2c20 -; 2c21 - -Function2c21:: - call Function3449 ; 2c21 - call Function2c87 ; 2c24 - call Function196f ; 2c27 - call Function1bef ; 2c2a - call Functiond2a ; 2c2d - jr Function2c41 ; 2c30 -; 2c32 - -Function2c32:: - call Function3449 ; 2c32 - call Function1bef ; 2c35 - call Function2c87 ; 2c38 - call Function196f ; 2c3b - call Functiond2a ; 2c3e - ld b, $9 ; 2c41 - call Function3583 ; 2c43 - call Function3456 ; 2c46 - ld a, $23 ; 2c49 - ld hl, $43a0 ; 2c4b - rst FarCall ; 2c4e - call Function2fa4 ; 2c4f - ret ; 2c52 -; 2c53 - -Function2c53:: - push af ; 2c53 - ld a, $1 ; 2c54 - ld [$c1cd], a ; 2c56 - call Function3449 ; 2c59 - call Function30ff ; 2c5c - call Function2c87 ; 2c5f - ld hl, $c490 ; 2c62 - ld bc, $412 ; 2c65 - call Functioneef ; 2c68 - ld hl, $cfe5 ; 2c6b - set 0, [hl] ; 2c6e - call Function196f ; 2c70 - call Function3456 ; 2c73 - ld b, $9 ; 2c76 - call Function3583 ; 2c78 - call Function359 ; 2c7b - call Function32e ; 2c7e - ld a, $1 ; 2c81 - ldh [$ffe0], a ; 2c83 - pop af ; 2c85 - ret ; 2c86 -; 2c87 - -Function2c87:: - call Function432 ; 2c87 - call Function30ff ; 2c8a - ld a, $5 ; 2c8d - ld hl, $414b ; 2c8f - rst FarCall ; 2c92 - call Functiond9e ; 2c93 - call Functiondac ; 2c96 - ldh a, [hROMBank] ; 2c99 - push af ; 2c9b - ld a, [$da00] ; 2c9c - ld b, a ; 2c9f - ld a, [$da01] ; 2ca0 - ld c, a ; 2ca3 - call Function2cfd ; 2ca4 - ld a, $23 ; 2ca7 - ld hl, $4356 ; 2ca9 - rst FarCall ; 2cac - call Function1fc1 ; 2cad - call Function2944 ; 2cb0 - ld a, $8 ; 2cb3 - call Function3e92 ; 2cb5 - pop af ; 2cb8 - rst Bankswitch ; 2cb9 - call Function454 ; 2cba - ret ; 2cbd -; 2cbe - -Function2cbe:: - ld a, [$da00] ; 2cbe - ld b, a ; 2cc1 - ld a, [$da01] ; 2cc2 - ld c, a ; 2cc5 - push bc ; 2cc6 - dec b ; 2cc7 - ld c, b ; 2cc8 - ld b, $0 ; 2cc9 - ld hl, $40ed ; 2ccb - add hl, bc ; 2cce - add hl, bc ; 2ccf - ld a, [hli] ; 2cd0 - ld h, [hl] ; 2cd1 - ld l, a ; 2cd2 - pop bc ; 2cd3 - dec c ; 2cd4 - ld b, $0 ; 2cd5 - ld a, $9 ; 2cd7 - call Function31a3 ; 2cd9 - ret ; 2cdc -; 2cdd - -Function2cdd:: - ld a, [$da00] ; 2cdd - ld b, a ; 2ce0 - ld a, [$da01] ; 2ce1 - ld c, a ; 2ce4 - ldh a, [hROMBank] ; 2ce5 - push af ; 2ce7 - ld a, $25 ; 2ce8 - rst Bankswitch ; 2cea - call Function2cc6 ; 2ceb - add hl, de ; 2cee - ld c, [hl] ; 2cef - inc hl ; 2cf0 - ld b, [hl] ; 2cf1 - pop af ; 2cf2 - rst Bankswitch ; 2cf3 - ret ; 2cf4 -; 2cf5 - -Function2cf5:: - ld a, [$da00] ; 2cf5 - ld b, a ; 2cf8 - ld a, [$da01] ; 2cf9 - ld c, a ; 2cfc - call Function2d0a ; 2cfd - rst Bankswitch ; 2d00 - ret ; 2d01 -; 2d02 - -Function2d02:: - ld a, [$da00] ; 2d02 - ld b, a ; 2d05 - ld a, [$da01] ; 2d06 - ld c, a ; 2d09 - push hl ; 2d0a - push de ; 2d0b - ld de, $0 ; 2d0c - call Function2ce5 ; 2d0f - ld a, c ; 2d12 - pop de ; 2d13 - pop hl ; 2d14 - ret ; 2d15 -; 2d16 - -Function2d16:: - ldh a, [hROMBank] ; 2d16 - push af ; 2d18 - ld a, $25 ; 2d19 - rst Bankswitch ; 2d1b - call Function2cbe ; 2d1c - ld de, $d081 ; 2d1f - ld bc, $5 ; 2d22 - call Function311a ; 2d25 - pop af ; 2d28 - rst Bankswitch ; 2d29 - ret ; 2d2a -; 2d2b - -Function2d2b:: - ld a, [$d08c] ; 2d2b - rst Bankswitch ; 2d2e - ret ; 2d2f -; 2d30 - -Function2d30:: - ld a, [$d08c] ; 2d30 - ret ; 2d33 -; 2d34 - -Function2d34:: - push hl ; 2d34 - push de ; 2d35 - push bc ; 2d36 - push bc ; 2d37 - ld de, $3 ; 2d38 - call Function2ce5 ; 2d3b - ld l, c ; 2d3e - ld h, b ; 2d3f - pop bc ; 2d40 - push hl ; 2d41 - ld de, $0 ; 2d42 - call Function2ce5 ; 2d45 - pop hl ; 2d48 - ld de, $3 ; 2d49 - add hl, de ; 2d4c - ld a, c ; 2d4d - call Function3128 ; 2d4e - rst Bankswitch ; 2d51 - pop bc ; 2d52 - pop de ; 2d53 - pop hl ; 2d54 - ret ; 2d55 -; 2d56 - -Function2d56:: - push bc ; 2d56 - push de ; 2d57 - ld de, $3 ; 2d58 - call Function2cdd ; 2d5b - ld l, c ; 2d5e - ld h, b ; 2d5f - pop de ; 2d60 - pop bc ; 2d61 - ret ; 2d62 -; 2d63 - -Function2d63:: - push hl ; 2d63 - push de ; 2d64 - push bc ; 2d65 - ld de, $2 ; 2d66 - call Function2cdd ; 2d69 - ld a, c ; 2d6c - pop bc ; 2d6d - pop de ; 2d6e - pop hl ; 2d6f - ret ; 2d70 -; 2d71 - -Function2d71:: - ret ; 2d71 - push hl ; 2d72 - push de ; 2d73 - push bc ; 2d74 - ld de, $2 ; 2d75 - call Function2ce5 ; 2d78 - ld a, c ; 2d7b - pop bc ; 2d7c - pop de ; 2d7d - pop hl ; 2d7e - ret ; 2d7f -; 2d80 - -Function2d80:: - ld de, $1 ; 2d80 - call Function2ce5 ; 2d83 - ld a, c ; 2d86 - ret ; 2d87 -; 2d88 - -Function2d88:: - push hl ; 2d88 - push de ; 2d89 - push bc ; 2d8a - ld de, $5 ; 2d8b - call Function2ce5 ; 2d8e - ld a, c ; 2d91 - pop bc ; 2d92 - pop de ; 2d93 - pop hl ; 2d94 - ret ; 2d95 -; 2d96 - -Function2d96:: - push hl ; 2d96 - push bc ; 2d97 - ld de, $6 ; 2d98 - call Function2cdd ; 2d9b - ld a, c ; 2d9e - cp $64 ; 2d9f - jr z, Function2dc1 ; 2da1 - bit 7, c ; 2da3 - jr nz, Function2dad ; 2da5 - ld e, c ; 2da7 - ld d, $0 ; 2da8 - pop bc ; 2daa - pop hl ; 2dab - ret ; 2dac -; 2dad - -Function2dad:: - ld a, [$d572] ; 2dad - bit 0, a ; 2db0 - jr z, Function2db9 ; 2db2 - ld de, $56 ; 2db4 - jr Function2daa ; 2db7 -; 2db9 - -Function2db9:: - ld a, c ; 2db9 - and $7f ; 2dba - ld e, a ; 2dbc - ld d, $0 ; 2dbd - jr Function2daa ; 2dbf -; 2dc1 - -Function2dc1:: - ld a, [$d572] ; 2dc1 - bit 7, a ; 2dc4 - jr z, Function2dcd ; 2dc6 - ld de, $48 ; 2dc8 - jr Function2daa ; 2dcb -; 2dcd - -Function2dcd:: - ld de, $26 ; 2dcd - jr Function2daa ; 2dd0 -; 2dd2 - -Function2dd2:: - call Function2de0 ; 2dd2 - and $f ; 2dd5 - ret ; 2dd7 -; 2dd8 - -Function2dd8:: - call Function2de0 ; 2dd8 - and $f0 ; 2ddb - swap a ; 2ddd - ret ; 2ddf -; 2de0 - -Function2de0:: - push hl ; 2de0 - push bc ; 2de1 - ld de, $7 ; 2de2 - call Function2cdd ; 2de5 - ld a, c ; 2de8 - pop bc ; 2de9 - pop hl ; 2dea - ret ; 2deb -; 2dec - -Function2dec:: - push de ; 2dec - push hl ; 2ded - push bc ; 2dee - ld de, $8 ; 2def - call Function2cdd ; 2df2 - ld a, c ; 2df5 - pop bc ; 2df6 - pop hl ; 2df7 - pop de ; 2df8 - ret ; 2df9 -; 2dfa - -Function2dfa:: - push hl ; 2dfa - push bc ; 2dfb - ld hl, $56be ; 2dfc - ld bc, $f ; 2dff - ld a, [$d082] ; 2e02 - call Function31a3 ; 2e05 - ld de, $d0c2 ; 2e08 - ld bc, $f ; 2e0b - ld a, $5 ; 2e0e - call Functiondcd ; 2e10 - pop bc ; 2e13 - pop hl ; 2e14 - ret ; 2e15 -; 2e16 - -Function2e16:: - nop ; 2e16 - nop ; 2e17 - nop ; 2e18 - nop ; 2e19 - nop ; 2e1a - nop ; 2e1b - nop ; 2e1c - nop ; 2e1d - nop ; 2e1e - nop ; 2e1f - nop ; 2e20 - nop ; 2e21 - nop ; 2e22 - nop ; 2e23 - nop ; 2e24 - nop ; 2e25 - ret ; 2e26 -; 2e27 - -Function2e27:: - ld [$d156], a ; 2e27 - ldh a, [hROMBank] ; 2e2a - push af ; 2e2c - ld a, [$d156] ; 2e2d - rst Bankswitch ; 2e30 - call Function2e48 ; 2e31 - ld a, b ; 2e34 - ld [$cfe0], a ; 2e35 - ld a, c ; 2e38 - ld [$cfe1], a ; 2e39 - pop bc ; 2e3c - ld a, b ; 2e3d - rst Bankswitch ; 2e3e - ld a, [$cfe0] ; 2e3f - ld b, a ; 2e42 - ld a, [$cfe1] ; 2e43 - ld c, a ; 2e46 - ret ; 2e47 -; 2e48 - -Function2e48:: - jp [hl] ; 2e48 - ld [$cfdb], a ; 2e49 - ldh a, [hROMBank] ; 2e4c - push af ; 2e4e - ld a, $2 ; 2e4f - rst Bankswitch ; 2e51 - call Function4b3b ; 2e52 - rst Bankswitch ; 2e55 - ld hl, $2e6c ; 2e56 - push hl ; 2e59 - ld a, [$cfde] ; 2e5a - ld h, a ; 2e5d - ld a, [$cfdf] ; 2e5e - ld l, a ; 2e61 - push hl ; 2e62 - ld a, [$cfdc] ; 2e63 - ld h, a ; 2e66 - ld a, [$cfdd] ; 2e67 - ld l, a ; 2e6a - ret ; 2e6b -; 2e6c - -Function2e6c:: - ld a, h ; 2e6c - ld [$cfdc], a ; 2e6d - ld a, l ; 2e70 - ld [$cfdd], a ; 2e71 - pop hl ; 2e74 - ld a, h ; 2e75 - rst Bankswitch ; 2e76 - ld a, [$cfdc] ; 2e77 - ld h, a ; 2e7a - ld a, [$cfdd] ; 2e7b - ld l, a ; 2e7e - ret ; 2e7f -; 2e80 - -Function2e80:: - call Function1e29 ; 2e80 - ldh a, [hROMBank] ; 2e83 - push af ; 2e85 - ld a, $1 ; 2e86 - rst Bankswitch ; 2e88 - call Function6551 ; 2e89 - call Function2ee3 ; 2e8c - call Function65cb ; 2e8f - pop af ; 2e92 - rst Bankswitch ; 2e93 - ret ; 2e94 -; 2e95 - -Function2e95:: - ldh a, [$ffda] ; 2e95 - push af ; 2e97 - ld a, $1 ; 2e98 - ldh [$ffda], a ; 2e9a - call Function2ea3 ; 2e9c - pop af ; 2e9f - ldh [$ffda], a ; 2ea0 - ret ; 2ea2 -; 2ea3 - -Function2ea3:: - call Function1e29 ; 2ea3 - xor a ; 2ea6 - ldh [$ffd6], a ; 2ea7 - call Function1fc1 ; 2ea9 - call Function2ee3 ; 2eac - xor a ; 2eaf - ldh [$ffd6], a ; 2eb0 - call Function2ef1 ; 2eb2 - ld a, $90 ; 2eb5 - ldh [$ffd4], a ; 2eb7 - ld a, $5 ; 2eb9 - ld hl, $415c ; 2ebb - rst FarCall ; 2ebe - call Functiond97 ; 2ebf - ld hl, $d565 ; 2ec2 - res 7, [hl] ; 2ec5 - call Function1ea9 ; 2ec7 - ret ; 2eca -; 2ecb - -Function2ecb:: - call Function1e29 ; 2ecb - ldh a, [hROMBank] ; 2ece - push af ; 2ed0 - ld a, $1 ; 2ed1 - rst Bankswitch ; 2ed3 - call Function6551 ; 2ed4 - call Functionf45 ; 2ed7 - call Function2ee3 ; 2eda - call Function65cb ; 2edd - pop af ; 2ee0 - rst Bankswitch ; 2ee1 - ret ; 2ee2 -; 2ee3 - -Function2ee3:: - ldh a, [$ffda] ; 2ee3 - push af ; 2ee5 - ld a, $1 ; 2ee6 - ldh [$ffda], a ; 2ee8 - call Function348e ; 2eea - pop af ; 2eed - ldh [$ffda], a ; 2eee - ret ; 2ef0 -; 2ef1 - -Function2ef1:: - ldh a, [$ffda] ; 2ef1 - push af ; 2ef3 - ldh a, [$ffd6] ; 2ef4 - push af ; 2ef6 - xor a ; 2ef7 - ldh [$ffd6], a ; 2ef8 - ld a, $1 ; 2efa - ldh [$ffda], a ; 2efc - call Function196f ; 2efe - xor a ; 2f01 - ldh [$ffda], a ; 2f02 - call Function32e ; 2f04 - pop af ; 2f07 - ldh [$ffd6], a ; 2f08 - pop af ; 2f0a - ldh [$ffda], a ; 2f0b - ret ; 2f0d -; 2f0e - -Function2f0e:: - scf ; 2f0e - ret ; 2f0f -; 2f10 - -Function2f10:: - xor a ; 2f10 - ld hl, $d7b7 ; 2f11 - ld [hli], a ; 2f14 - ret ; 2f15 -; 2f16 - -Function2f16:: - xor a ; 2f16 - ld hl, $d93f ; 2f17 - ld [hli], a ; 2f1a - ld [hl], a ; 2f1b - ret ; 2f1c -; 2f1d - -Function2f1d:: - ld a, [$d083] ; 2f1d - cp $2 ; 2f20 - jr z, Function2f29 ; 2f22 - cp $1 ; 2f24 - jr z, Function2f29 ; 2f26 - ret ; 2f28 -; 2f29 - -Function2f29:: - ld hl, $d571 ; 2f29 - res 2, [hl] ; 2f2c - ret ; 2f2e -; 2f2f - -Function2f2f:: - ld hl, $d7b7 ; 2f2f - call Function2f36 ; 2f32 - ret ; 2f35 -; 2f36 - -Function2f36:: - ld a, e ; 2f36 - and $7 ; 2f37 - srl d ; 2f39 - rr e ; 2f3b - srl d ; 2f3d - rr e ; 2f3f - srl d ; 2f41 - rr e ; 2f43 - add hl, de ; 2f45 - ld c, $1 ; 2f46 - rrca ; 2f48 - jr nc, Function2f4d ; 2f49 - rlc c ; 2f4b - rrca ; 2f4d - jr nc, Function2f54 ; 2f4e - rlc c ; 2f50 - rlc c ; 2f52 - rrca ; 2f54 - jr nc, Function2f59 ; 2f55 - swap c ; 2f57 - ld a, b ; 2f59 - cp $1 ; 2f5a - jr c, Function2f68 ; 2f5c - jr z, Function2f64 ; 2f5e - ld a, [hl] ; 2f60 - and c ; 2f61 - ld c, a ; 2f62 - ret ; 2f63 -; 2f64 - -Function2f64:: - ld a, [hl] ; 2f64 - or c ; 2f65 - ld [hl], a ; 2f66 - ret ; 2f67 -; 2f68 - -Function2f68:: - ld a, c ; 2f68 - cpl ; 2f69 - and [hl] ; 2f6a - ld [hl], a ; 2f6b - ret ; 2f6c -; 2f6d - -Function2f6d:: - ld de, $b ; 2f6d - ld b, $2 ; 2f70 - ld a, $3 ; 2f72 - ld hl, $401b ; 2f74 - rst FarCall ; 2f77 - ld a, c ; 2f78 - and a ; 2f79 - ret ; 2f7a -; 2f7b - -Function2f7b:: - ld a, [$c1cb] ; 2f7b - bit 1, a ; 2f7e - ret z ; 2f80 - ldh a, [$ffaa] ; 2f81 - bit 1, a ; 2f83 - ret ; 2f85 -; 2f86 - -Function2f86:: - xor a ; 2f86 - ret ; 2f87 -; 2f88 - -Function2f88:: - xor a ; 2f88 - dec a ; 2f89 - ret ; 2f8a -; 2f8b - -Function2f8b:: - push hl ; 2f8b - ld hl, $c1cb ; 2f8c - bit 1, [hl] ; 2f8f - pop hl ; 2f91 - ret ; 2f92 -; 2f93 - -Function2f93:: - xor a ; 2f93 - ldh [$ffe0], a ; 2f94 - ld a, [$cfe5] ; 2f96 - res 0, a ; 2f99 - ld [$cfe5], a ; 2f9b - ld a, $0 ; 2f9e - ld [$c1cd], a ; 2fa0 - ret ; 2fa3 -; 2fa4 - -Function2fa4:: - ld a, $1 ; 2fa4 - ld [$c1cd], a ; 2fa6 - ld a, [$cfe5] ; 2fa9 - set 0, a ; 2fac - ld [$cfe5], a ; 2fae - ld a, $1 ; 2fb1 - ldh [$ffe0], a ; 2fb3 - ret ; 2fb5 -; 2fb6 - -Function2fb6:: - push hl ; 2fb6 - jr Function2fbc ; 2fb7 -; 2fb9 - -Function2fb9:: - push hl ; 2fb9 - ld c, $a ; 2fba - push bc ; 2fbc - ld a, [hli] ; 2fbd - cp $50 ; 2fbe - jr z, Function2fc9 ; 2fc0 - cp $7f ; 2fc2 - jr nz, Function2fd4 ; 2fc4 - dec c ; 2fc6 - jr nz, Function2fbd ; 2fc7 - pop bc ; 2fc9 - ld l, e ; 2fca - ld h, d ; 2fcb - pop de ; 2fcc - ld b, $0 ; 2fcd - inc c ; 2fcf - call Function311a ; 2fd0 - ret ; 2fd3 -; 2fd4 - -Function2fd4:: - pop bc ; 2fd4 - pop hl ; 2fd5 - ret ; 2fd6 -; 2fd7 - -Function2fd7:: - ld a, [$da00] ; 2fd7 - ld b, a ; 2fda - ld a, [$da01] ; 2fdb - ld c, a ; 2fde - call Function2d88 ; 2fdf - cp $5e ; 2fe2 - jr z, Function2ff9 ; 2fe4 - cp $0 ; 2fe6 - jr nz, Function2ff5 ; 2fe8 - ld a, [$d9f6] ; 2fea - ld b, a ; 2fed - ld a, [$d9f7] ; 2fee - ld c, a ; 2ff1 - call Function2d88 ; 2ff2 - cp $2e ; 2ff5 - jr nc, Function2ffb ; 2ff7 - xor a ; 2ff9 - ret ; 2ffa -; 2ffb - -Function2ffb:: - ld a, $1 ; 2ffb - ret ; 2ffd -; 2ffe - -Function2ffe:: - push hl ; 2ffe - xor a ; 2fff - ld hl, $d17c ; 3000 - ld [hli], a ; 3003 - ld [hli], a ; 3004 - ld [hli], a ; 3005 - ld [hl], a ; 3006 - ld a, [$d17a] ; 3007 - ld l, a ; 300a - ld a, [$d17b] ; 300b - ld h, a ; 300e - or l ; 300f - jr z, Function3053 ; 3010 - ldh a, [hROMBank] ; 3012 - push af ; 3014 - call Function2d2b ; 3015 - ld a, [$d20d] ; 3018 - add a, $4 ; 301b - ld d, a ; 301d - ld a, [$d20e] ; 301e - ld a, $4 ; 3021 - ld e, a ; 3023 - push bc ; 3024 - ld c, $0 ; 3025 - ld a, [hl] ; 3027 - cp $ff ; 3028 - jr z, Function3050 ; 302a - push hl ; 302c - ld a, d ; 302d - cp [hl] ; 302e - jr nz, Function3046 ; 302f - inc hl ; 3031 - ld a, e ; 3032 - cp [hl] ; 3033 - jr nz, Function3046 ; 3034 - ld hl, $d17c ; 3036 - ld b, $1 ; 3039 - push de ; 303b - push bc ; 303c - ld d, $0 ; 303d - ld a, $3 ; 303f - call Function2e49 ; 3041 - pop bc ; 3044 - pop de ; 3045 - pop hl ; 3046 - inc hl ; 3047 - inc hl ; 3048 - inc hl ; 3049 - inc c ; 304a - ld a, c ; 304b - cp $20 ; 304c - jr c, Function3027 ; 304e - pop bc ; 3050 - pop af ; 3051 - rst Bankswitch ; 3052 - pop hl ; 3053 - ret ; 3054 -; 3055 - -Function3055:: - ld a, $3 ; 3055 - ld hl, $67a6 ; 3057 - rst FarCall ; 305a - ret ; 305b -; 305c - -Function305c:: - push hl ; 305c - push de ; 305d - push bc ; 305e - ld a, $3 ; 305f - ld hl, $5434 ; 3061 - rst FarCall ; 3064 - pop bc ; 3065 - pop de ; 3066 - pop hl ; 3067 - ret ; 3068 -; 3069 - -Function3069:: - push hl ; 3069 - push de ; 306a - push bc ; 306b - ldh a, [hROMBank] ; 306c - push af ; 306e - ld a, $3 ; 306f - rst Bankswitch ; 3071 - call Function521a ; 3072 - pop bc ; 3075 - ld a, b ; 3076 - rst Bankswitch ; 3077 - pop bc ; 3078 - pop de ; 3079 - pop hl ; 307a - ret ; 307b -; 307c - -Function307c:: - push bc ; 307c - ldh a, [hROMBank] ; 307d - push af ; 307f - ld a, $3 ; 3080 - rst Bankswitch ; 3082 - push hl ; 3083 - push de ; 3084 - call Function51e2 ; 3085 - pop de ; 3088 - pop hl ; 3089 - pop bc ; 308a - ld a, b ; 308b - rst Bankswitch ; 308c - pop bc ; 308d - ret ; 308e -; 308f - -Function308f:: - push hl ; 308f - push de ; 3090 - push bc ; 3091 - ldh a, [hROMBank] ; 3092 - push af ; 3094 - ld a, $3 ; 3095 - rst Bankswitch ; 3097 - call Function5251 ; 3098 - pop bc ; 309b - ld a, b ; 309c - rst Bankswitch ; 309d - pop bc ; 309e - pop de ; 309f - pop hl ; 30a0 - ret ; 30a1 -; 30a2 - -Function30a2:: - push bc ; 30a2 - ldh a, [rDIV] ; 30a3 - ld b, a ; 30a5 - ldh a, [hRandomAdd] ; 30a6 - adc b ; 30a8 - ldh [hRandomAdd], a ; 30a9 - ldh a, [rDIV] ; 30ab - ld b, a ; 30ad - ldh a, [$ffe4] ; 30ae - sbc b ; 30b0 - ldh [$ffe4], a ; 30b1 - pop bc ; 30b3 - ret ; 30b4 -; 30b5 - -Function30b5:: - ldh a, [hROMBank] ; 30b5 - push af ; 30b7 - ld a, $f ; 30b8 - rst Bankswitch ; 30ba - call Function6c11 ; 30bb - ld [$cfdd], a ; 30be - pop af ; 30c1 - rst Bankswitch ; 30c2 - ld a, [$cfdd] ; 30c3 - ret ; 30c6 -; 30c7 - -RandomRange:: - push bc ; 30c7 - ld c, a ; 30c8 - xor a ; 30c9 - sub c ; 30ca - sub c ; 30cb - jr nc, Function30cb ; 30cc - add c ; 30ce - ld b, a ; 30cf - push bc ; 30d0 - call Function30a2 ; 30d1 - ldh a, [hRandomAdd] ; 30d4 - ld c, a ; 30d6 - add b ; 30d7 - jr c, Function30d1 ; 30d8 - ld a, c ; 30da - pop bc ; 30db - call Function31b5 ; 30dc - pop bc ; 30df - ret ; 30e0 -; 30e1 - -INCLUDE "home/sram.asm" - -Function30fc:: - jp [hl] ; 30fc - push de ; 30fd - ret ; 30fe -; 30ff - -Function30ff:: - ld hl, $c300 ; 30ff - ld b, $a0 ; 3102 - xor a ; 3104 - ld [hli], a ; 3105 - dec b ; 3106 - jr nz, Function3105 ; 3107 - ret ; 3109 -; 310a - -Function310a:: - ld hl, $c300 ; 310a - ld de, $4 ; 310d - ld b, $28 ; 3110 - ld a, $a0 ; 3112 - ld [hl], a ; 3114 - add hl, de ; 3115 - dec b ; 3116 - jr nz, Function3114 ; 3117 - ret ; 3119 -; 311a - -Function311a:: - inc b ; 311a - inc c ; 311b - jr Function3121 ; 311c -; 311e - -Function311e:: - ld a, [hli] ; 311e - ld [de], a ; 311f - inc de ; 3120 - dec c ; 3121 - jr nz, Function311e ; 3122 - dec b ; 3124 - jr nz, Function311e ; 3125 - ret ; 3127 -; 3128 - -Function3128:: - ld [$d156], a ; 3128 - ldh a, [hROMBank] ; 312b - push af ; 312d - ld a, [$d156] ; 312e - rst Bankswitch ; 3131 - ld a, [hl] ; 3132 - ld [$d156], a ; 3133 - pop af ; 3136 - rst Bankswitch ; 3137 - ld a, [$d156] ; 3138 - ret ; 313b -; 313c - -Function313c:: - ld [$d156], a ; 313c - ldh a, [hROMBank] ; 313f - push af ; 3141 - ld a, [$d156] ; 3142 - rst Bankswitch ; 3145 - ld a, [hli] ; 3146 - ld h, [hl] ; 3147 - ld l, a ; 3148 - pop af ; 3149 - rst Bankswitch ; 314a - ret ; 314b -; 314c - -Function314c:: - inc b ; 314c - inc c ; 314d - jr Function3151 ; 314e -; 3150 - -Function3150:: - ld [hli], a ; 3150 - dec c ; 3151 - jr nz, Function3150 ; 3152 - dec b ; 3154 - jr nz, Function3150 ; 3155 - ret ; 3157 -; 3158 - -Function3158:: - ld hl, $c3a0 ; 3158 - ld de, $c508 ; 315b - ld bc, $168 ; 315e - jp Function311a ; 3161 -; 3164 - -Function3164:: - xor a ; 3164 - ldh [$ffd6], a ; 3165 - call Function316f ; 3167 - ld a, $1 ; 316a - ldh [$ffd6], a ; 316c - ret ; 316e -; 316f - -Function316f:: - ld hl, $c508 ; 316f - ld de, $c3a0 ; 3172 - ld bc, $168 ; 3175 - jp Function311a ; 3178 -; 317b - -Function317b:: - ld hl, $cf7e ; 317b - ld a, [de] ; 317e - inc de ; 317f - ld [hli], a ; 3180 - cp $50 ; 3181 - jr nz, Function317e ; 3183 - ret ; 3185 -; 3186 - -Function3186:: - ld b, $0 ; 3186 - ld c, a ; 3188 - ld a, [hl] ; 3189 - cp $ff ; 318a - jr z, Function3195 ; 318c - cp c ; 318e - jr z, Function3197 ; 318f - inc b ; 3191 - add hl, de ; 3192 - jr Function3189 ; 3193 -; 3195 - -Function3195:: - and a ; 3195 - ret ; 3196 -; 3197 - -Function3197:: - scf ; 3197 - ret ; 3198 -; 3199 - -Function3199:: - ld bc, $b ; 3199 - and a ; 319c - ret z ; 319d - add hl, bc ; 319e - dec a ; 319f - jr nz, Function319e ; 31a0 - ret ; 31a2 -; 31a3 - -Function31a3:: - and a ; 31a3 - ret z ; 31a4 - add hl, bc ; 31a5 - dec a ; 31a6 - jr nz, Function31a5 ; 31a7 - ret ; 31a9 -; 31aa - -Function31aa:: - and a ; 31aa - ret z ; 31ab - push bc ; 31ac - ld b, a ; 31ad - xor a ; 31ae - add c ; 31af - dec b ; 31b0 - jr nz, Function31af ; 31b1 - pop bc ; 31b3 - ret ; 31b4 -; 31b5 - -Function31b5:: - ld b, $0 ; 31b5 - inc b ; 31b7 - sub c ; 31b8 - jr nc, Function31b7 ; 31b9 - dec b ; 31bb - add c ; 31bc - ret ; 31bd -; 31be - -Function31be:: - push hl ; 31be - push bc ; 31bf - ld hl, $67bd ; 31c0 - ld a, $1 ; 31c3 - rst FarCall ; 31c5 - pop bc ; 31c6 - pop hl ; 31c7 - ret ; 31c8 -; 31c9 - -Function31c9:: - push hl ; 31c9 - push de ; 31ca - push bc ; 31cb - ldh a, [hROMBank] ; 31cc - push af ; 31ce - ld a, $1 ; 31cf - rst Bankswitch ; 31d1 - call Function681d ; 31d2 - pop af ; 31d5 - rst Bankswitch ; 31d6 - pop bc ; 31d7 - pop de ; 31d8 - pop hl ; 31d9 - ret ; 31da -; 31db - -Function31db:: - sub b ; 31db - ret nc ; 31dc - cpl ; 31dd - add a, $1 ; 31de - scf ; 31e0 - ret ; 31e1 -; 31e2 - -Function31e2:: - ld a, [$d199] ; 31e2 - bit 4, a ; 31e5 - ret nz ; 31e7 - ld a, [$d19c] ; 31e8 - bit 1, a ; 31eb - ret z ; 31ed - push hl ; 31ee - push de ; 31ef - push bc ; 31f0 - ld hl, $ffda ; 31f1 - ld a, [hl] ; 31f4 - push af ; 31f5 - ld [hl], a ; 31f6 - ld a, [$d19c] ; 31f7 - bit 0, a ; 31fa - jr z, Function3205 ; 31fc - ld a, [$d199] ; 31fe - and $7 ; 3201 - jr Function3207 ; 3203 -; 3205 - -Function3205:: - ld a, $1 ; 3205 - ld [$cee9], a ; 3207 - call Function935 ; 320a - ld a, [$c1d6] ; 320d - and a ; 3210 - jr nz, Function3224 ; 3211 - ldh a, [$ffaa] ; 3213 - bit 0, a ; 3215 - jr z, Function321b ; 3217 - jr Function321f ; 3219 -; 321b - -Function321b:: - bit 1, a ; 321b - jr z, Function3224 ; 321d - call Function32e ; 321f - jr Function322a ; 3222 -; 3224 - -Function3224:: - ld a, [$cee9] ; 3224 - and a ; 3227 - jr nz, Function320a ; 3228 - pop af ; 322a - ldh [$ffda], a ; 322b - pop bc ; 322d - pop de ; 322e - pop hl ; 322f - ret ; 3230 -; 3231 - -Function3231:: - ld a, [hli] ; 3231 - ld [de], a ; 3232 - inc de ; 3233 - ld a, h ; 3234 - cp b ; 3235 - jr nz, Function3231 ; 3236 - ld a, l ; 3238 - cp c ; 3239 - jr nz, Function3231 ; 323a - ret ; 323c -; 323d - -Function323d:: - push bc ; 323d - bit 5, b ; 323e - jr z, Function324f ; 3240 - bit 7, b ; 3242 - jr nz, Function324a ; 3244 - bit 6, b ; 3246 - jr z, Function324f ; 3248 - ld a, $f0 ; 324a - ld [hli], a ; 324c - res 5, b ; 324d - xor a ; 324f - ldh [$ffb5], a ; 3250 - ldh [$ffb6], a ; 3252 - ldh [$ffb7], a ; 3254 - ld a, b ; 3256 - and $f ; 3257 - cp $1 ; 3259 - jr z, Function3277 ; 325b - cp $2 ; 325d - jr z, Function326e ; 325f - ld a, [de] ; 3261 - ldh [$ffb6], a ; 3262 - inc de ; 3264 - ld a, [de] ; 3265 - ldh [$ffb7], a ; 3266 - inc de ; 3268 - ld a, [de] ; 3269 - ldh [$ffb8], a ; 326a - jr Function327a ; 326c -; 326e - -Function326e:: - ld a, [de] ; 326e - ldh [$ffb7], a ; 326f - inc de ; 3271 - ld a, [de] ; 3272 - ldh [$ffb8], a ; 3273 - jr Function327a ; 3275 -; 3277 - -Function3277:: - ld a, [de] ; 3277 - ldh [$ffb8], a ; 3278 - push de ; 327a - ld d, b ; 327b - ld a, c ; 327c - swap a ; 327d - and $f ; 327f - ld e, a ; 3281 - ld a, c ; 3282 - and $f ; 3283 - ld b, a ; 3285 - ld c, $0 ; 3286 - cp $2 ; 3288 - jr z, Function32f2 ; 328a - cp $3 ; 328c - jr z, Function32e2 ; 328e - cp $4 ; 3290 - jr z, Function32d1 ; 3292 - cp $5 ; 3294 - jr z, Function32c0 ; 3296 - cp $6 ; 3298 - jr z, Function32ae ; 329a - ld a, $f ; 329c - ldh [$ffb9], a ; 329e - ld a, $42 ; 32a0 - ldh [$ffba], a ; 32a2 - ld a, $40 ; 32a4 - ldh [$ffbb], a ; 32a6 - call Function3341 ; 32a8 - call Function33c0 ; 32ab - ld a, $1 ; 32ae - ldh [$ffb9], a ; 32b0 - ld a, $86 ; 32b2 - ldh [$ffba], a ; 32b4 - ld a, $a0 ; 32b6 - ldh [$ffbb], a ; 32b8 - call Function3341 ; 32ba - call Function33c0 ; 32bd - xor a ; 32c0 - ldh [$ffb9], a ; 32c1 - ld a, $27 ; 32c3 - ldh [$ffba], a ; 32c5 - ld a, $10 ; 32c7 - ldh [$ffbb], a ; 32c9 - call Function3341 ; 32cb - call Function33c0 ; 32ce - xor a ; 32d1 - ldh [$ffb9], a ; 32d2 - ld a, $3 ; 32d4 - ldh [$ffba], a ; 32d6 - ld a, $e8 ; 32d8 - ldh [$ffbb], a ; 32da - call Function3341 ; 32dc - call Function33c0 ; 32df - xor a ; 32e2 - ldh [$ffb9], a ; 32e3 - xor a ; 32e5 - ldh [$ffba], a ; 32e6 - ld a, $64 ; 32e8 - ldh [$ffbb], a ; 32ea - call Function3341 ; 32ec - call Function33c0 ; 32ef - dec e ; 32f2 - jr nz, Function32f9 ; 32f3 - ld a, $f6 ; 32f5 - ldh [$ffb5], a ; 32f7 - ld c, $0 ; 32f9 - ldh a, [$ffb8] ; 32fb - cp $a ; 32fd - jr c, Function3306 ; 32ff - sub a, $a ; 3301 - inc c ; 3303 - jr Function32fd ; 3304 -; 3306 - -Function3306:: - ld b, a ; 3306 - ldh a, [$ffb5] ; 3307 - or c ; 3309 - jr nz, Function3311 ; 330a - call Function33ba ; 330c - jr Function3323 ; 330f -; 3311 - -Function3311:: - call Function3330 ; 3311 - push af ; 3314 - ld a, $f6 ; 3315 - add c ; 3317 - ld [hl], a ; 3318 - pop af ; 3319 - ldh [$ffb5], a ; 331a - inc e ; 331c - dec e ; 331d - jr nz, Function3323 ; 331e - inc hl ; 3320 - ld [hl], $e8 ; 3321 - call Function33c0 ; 3323 - call Function3330 ; 3326 - ld a, $f6 ; 3329 - add b ; 332b - ld [hli], a ; 332c - pop de ; 332d - pop bc ; 332e - ret ; 332f -; 3330 - -Function3330:: - push af ; 3330 - ldh a, [$ffb5] ; 3331 - and a ; 3333 - jr nz, Function333f ; 3334 - bit 5, d ; 3336 - jr z, Function333f ; 3338 - ld a, $f0 ; 333a - ld [hli], a ; 333c - res 5, d ; 333d - pop af ; 333f - ret ; 3340 -; 3341 - -Function3341:: - dec e ; 3341 - jr nz, Function3348 ; 3342 - ld a, $f6 ; 3344 - ldh [$ffb5], a ; 3346 - ld c, $0 ; 3348 - ldh a, [$ffb9] ; 334a - ld b, a ; 334c - ldh a, [$ffb6] ; 334d - ldh [$ffbc], a ; 334f - cp b ; 3351 - jr c, Function339a ; 3352 - sub b ; 3354 - ldh [$ffb6], a ; 3355 - ldh a, [$ffba] ; 3357 - ld b, a ; 3359 - ldh a, [$ffb7] ; 335a - ldh [$ffbd], a ; 335c - cp b ; 335e - jr nc, Function336c ; 335f - ldh a, [$ffb6] ; 3361 - or $0 ; 3363 - jr z, Function3396 ; 3365 - dec a ; 3367 - ldh [$ffb6], a ; 3368 - ldh a, [$ffb7] ; 336a - sub b ; 336c - ldh [$ffb7], a ; 336d - ldh a, [$ffbb] ; 336f - ld b, a ; 3371 - ldh a, [$ffb8] ; 3372 - ldh [$ffbe], a ; 3374 - cp b ; 3376 - jr nc, Function338c ; 3377 - ldh a, [$ffb7] ; 3379 - and a ; 337b - jr nz, Function3387 ; 337c - ldh a, [$ffb6] ; 337e - and a ; 3380 - jr z, Function3392 ; 3381 - dec a ; 3383 - ldh [$ffb6], a ; 3384 - xor a ; 3386 - dec a ; 3387 - ldh [$ffb7], a ; 3388 - ldh a, [$ffb8] ; 338a - sub b ; 338c - ldh [$ffb8], a ; 338d - inc c ; 338f - jr Function334a ; 3390 -; 3392 - -Function3392:: - ldh a, [$ffbd] ; 3392 - ldh [$ffb7], a ; 3394 - ldh a, [$ffbc] ; 3396 - ldh [$ffb6], a ; 3398 - ldh a, [$ffb5] ; 339a - or c ; 339c - jr z, Function33ba ; 339d - ldh a, [$ffb5] ; 339f - and a ; 33a1 - jr nz, Function33ad ; 33a2 - bit 5, d ; 33a4 - jr z, Function33ad ; 33a6 - ld a, $f0 ; 33a8 - ld [hli], a ; 33aa - res 5, d ; 33ab - ld a, $f6 ; 33ad - add c ; 33af - ld [hl], a ; 33b0 - ldh [$ffb5], a ; 33b1 - inc e ; 33b3 - dec e ; 33b4 - ret nz ; 33b5 - inc hl ; 33b6 - ld [hl], $e8 ; 33b7 - ret ; 33b9 -; 33ba - -Function33ba:: - bit 7, d ; 33ba - ret z ; 33bc - ld [hl], $f6 ; 33bd - ret ; 33bf -; 33c0 - -Function33c0:: - bit 7, d ; 33c0 - jr nz, Function33cc ; 33c2 - bit 6, d ; 33c4 - jr z, Function33cc ; 33c6 - ldh a, [$ffb5] ; 33c8 - and a ; 33ca - ret z ; 33cb - inc hl ; 33cc - ret ; 33cd -; 33ce - -Function33ce:: - push bc ; 33ce - call Function33d7 ; 33cf - pop bc ; 33d2 - dec c ; 33d3 - jr nz, Function33ce ; 33d4 - ret ; 33d6 -; 33d7 - -Function33d7:: - ld a, [de] ; 33d7 - swap a ; 33d8 - and $f ; 33da - call Function33e9 ; 33dc - ld [hli], a ; 33df - ld a, [de] ; 33e0 - and $f ; 33e1 - call Function33e9 ; 33e3 - ld [hli], a ; 33e6 - inc de ; 33e7 - ret ; 33e8 -; 33e9 - -Function33e9:: - ld bc, $33f4 ; 33e9 - add c ; 33ec - ld c, a ; 33ed - ld a, $0 ; 33ee - adc b ; 33f0 - ld b, a ; 33f1 - ld a, [bc] ; 33f2 - ret ; 33f3 -; 33f4 - -Function33f4:: - or $f7 ; 33f4 - ld hl, [sp+$f9] ; 33f6 - ld a, [$fcfb] ; 33f8 - - ; 33fb - cp $ff ; 33fc - add b ; 33fe - add c ; 33ff - add d ; 3400 - add e ; 3401 - add h ; 3402 - add l ; 3403 - ld [$d156], a ; 3404 - ldh a, [hROMBank] ; 3407 - push af ; 3409 - ld a, [$d156] ; 340a - rst Bankswitch ; 340d - call Functionf5e ; 340e - pop af ; 3411 - rst Bankswitch ; 3412 - ret ; 3413 -; 3414 - -Function3414:: - ldh a, [hROMBank] ; 3414 - push af ; 3416 - ld a, [hli] ; 3417 - rst Bankswitch ; 3418 - ld a, [hli] ; 3419 - ld h, [hl] ; 341a - ld l, a ; 341b - call Function30fc ; 341c - pop hl ; 341f - ld a, h ; 3420 - rst Bankswitch ; 3421 - ret ; 3422 -; 3423 - -Function3423:: - ldh a, [hROMBank] ; 3423 - ld [$cfd8], a ; 3425 - ld a, l ; 3428 - ld [$cfd9], a ; 3429 - ld a, h ; 342c - ld [$cfda], a ; 342d - ret ; 3430 -; 3431 - -Function3431:: - ld a, [de] ; 3431 - cp [hl] ; 3432 - ret nz ; 3433 - inc de ; 3434 - inc hl ; 3435 - dec c ; 3436 - jr nz, Function3431 ; 3437 - ret ; 3439 -; 343a - -Function343a:: - ld a, [de] ; 343a - cp [hl] ; 343b - jr nz, Function3447 ; 343c - inc de ; 343e - inc hl ; 343f - dec bc ; 3440 - ld a, b ; 3441 - or c ; 3442 - jr nz, Function343a ; 3443 - scf ; 3445 - ret ; 3446 -; 3447 - -Function3447:: - and a ; 3447 - ret ; 3448 -; 3449 - -Function3449:: - call Function3564 ; 3449 -WaitBGMap:: - ld a, $1 ; 344c - ldh [$ffd6], a ; 344e - ld c, $4 ; 3450 - call Function33c ; 3452 - ret ; 3455 -; 3456 - -Function3456:: - ldh a, [$ffe8] ; 3456 - and a ; 3458 - jr z, Function3464 ; 3459 - ld a, $2 ; 345b - ldh [$ffd6], a ; 345d - ld c, $4 ; 345f - call Function33c ; 3461 - ld a, $1 ; 3464 - ldh [$ffd6], a ; 3466 - ld c, $4 ; 3468 - call Function33c ; 346a - ret ; 346d -; 346e - -Function346e:: - ldh a, [$ffe8] ; 346e - and a ; 3470 - ret ; 3471 -; 3472 - -Function3472:: - ldh a, [$ffe8] ; 3472 - and a ; 3474 - jr z, Function3484 ; 3475 - ld a, [$c1cd] ; 3477 - cp $0 ; 347a - jr z, Function3484 ; 347c - ld a, $1 ; 347e - ldh [$ffd6], a ; 3480 - jr Function3493 ; 3482 -; 3484 - -Function3484:: - ld a, $1 ; 3484 - ldh [$ffd6], a ; 3486 - ld c, $4 ; 3488 - call Function33c ; 348a - ret ; 348d -; 348e - -Function348e:: - ldh a, [$ffe8] ; 348e - and a ; 3490 - jr z, Function344c ; 3491 - ldh a, [$ffd6] ; 3493 - push af ; 3495 - xor a ; 3496 - ldh [$ffd6], a ; 3497 - ldh a, [$ffe0] ; 3499 - push af ; 349b - xor a ; 349c - ldh [$ffe0], a ; 349d - ldh a, [$ff44] ; 349f - cp $7f ; 34a1 - jr c, Function349f ; 34a3 - di ; 34a5 - ld a, $1 ; 34a6 - ldh [$ff4f], a ; 34a8 - ld hl, $ccd9 ; 34aa - call Function34c8 ; 34ad - ld a, $0 ; 34b0 - ldh [$ff4f], a ; 34b2 - ld hl, $c3a0 ; 34b4 - call Function34c8 ; 34b7 - ldh a, [$ff44] ; 34ba - cp $7f ; 34bc - jr c, Function34ba ; 34be - ei ; 34c0 - pop af ; 34c1 - ldh [$ffe0], a ; 34c2 - pop af ; 34c4 - ldh [$ffd6], a ; 34c5 - ret ; 34c7 -; 34c8 - -Function34c8:: - ld [$ffdb], sp ; 34c8 - ld sp, hl ; 34cb - ldh a, [$ffd9] ; 34cc - ld h, a ; 34ce - ld l, $0 ; 34cf - ld a, $12 ; 34d1 - ldh [$ffd5], a ; 34d3 - ld b, $2 ; 34d5 - ld c, $41 ; 34d7 - pop de ; 34d9 - ld a, [$ff00+c] ; 34da - and b ; 34db - jr nz, Function34da ; 34dc - ld [hl], e ; 34de - inc l ; 34df - ld [hl], d ; 34e0 - inc l ; 34e1 - pop de ; 34e2 - ld a, [$ff00+c] ; 34e3 - and b ; 34e4 - jr nz, Function34e3 ; 34e5 - ld [hl], e ; 34e7 - inc l ; 34e8 - ld [hl], d ; 34e9 - inc l ; 34ea - pop de ; 34eb - ld a, [$ff00+c] ; 34ec - and b ; 34ed - jr nz, Function34ec ; 34ee - ld [hl], e ; 34f0 - inc l ; 34f1 - ld [hl], d ; 34f2 - inc l ; 34f3 - pop de ; 34f4 - ld a, [$ff00+c] ; 34f5 - and b ; 34f6 - jr nz, Function34f5 ; 34f7 - ld [hl], e ; 34f9 - inc l ; 34fa - ld [hl], d ; 34fb - inc l ; 34fc - pop de ; 34fd - ld a, [$ff00+c] ; 34fe - and b ; 34ff - jr nz, Function34fe ; 3500 - ld [hl], e ; 3502 - inc l ; 3503 - ld [hl], d ; 3504 - inc l ; 3505 - pop de ; 3506 - ld a, [$ff00+c] ; 3507 - and b ; 3508 - jr nz, Function3507 ; 3509 - ld [hl], e ; 350b - inc l ; 350c - ld [hl], d ; 350d - inc l ; 350e - pop de ; 350f - ld a, [$ff00+c] ; 3510 - and b ; 3511 - jr nz, Function3510 ; 3512 - ld [hl], e ; 3514 - inc l ; 3515 - ld [hl], d ; 3516 - inc l ; 3517 - pop de ; 3518 - ld a, [$ff00+c] ; 3519 - and b ; 351a - jr nz, Function3519 ; 351b - ld [hl], e ; 351d - inc l ; 351e - ld [hl], d ; 351f - inc l ; 3520 - pop de ; 3521 - ld a, [$ff00+c] ; 3522 - and b ; 3523 - jr nz, Function3522 ; 3524 - ld [hl], e ; 3526 - inc l ; 3527 - ld [hl], d ; 3528 - inc l ; 3529 - pop de ; 352a - ld a, [$ff00+c] ; 352b - and b ; 352c - jr nz, Function352b ; 352d - ld [hl], e ; 352f - inc l ; 3530 - ld [hl], d ; 3531 - inc l ; 3532 - ld de, $c ; 3533 - add hl, de ; 3536 - ldh a, [$ffd5] ; 3537 - dec a ; 3539 - ldh [$ffd5], a ; 353a - jr nz, Function34d9 ; 353c - ldh a, [$ffdb] ; 353e - ld l, a ; 3540 - ldh a, [$ffdc] ; 3541 - ld h, a ; 3543 - ld sp, hl ; 3544 - ret ; 3545 -; 3546 - -Function3546:: - ldh a, [$ffe8] ; 3546 - and a ; 3548 - jr nz, Function3556 ; 3549 - ld a, $e4 ; 354b - ldh [$ff47], a ; 354d - ld a, $d0 ; 354f - ldh [$ff48], a ; 3551 - ldh [$ff49], a ; 3553 - ret ; 3555 -; 3556 - -Function3556:: - push de ; 3556 - ld a, $e4 ; 3557 - call Functionc61 ; 3559 - ld de, $e4e4 ; 355c - call Functionc83 ; 355f - pop de ; 3562 - ret ; 3563 -; 3564 - -Function3564:: - ldh a, [$ffe8] ; 3564 - and a ; 3566 - jr nz, Function3571 ; 3567 - xor a ; 3569 - ldh [$ff47], a ; 356a - ldh [$ff48], a ; 356c - ldh [$ff49], a ; 356e - ret ; 3570 -; 3571 - -Function3571:: - ld hl, $c280 ; 3571 - ld bc, $80 ; 3574 - ld a, $ff ; 3577 - call Function314c ; 3579 - ld a, $1 ; 357c - ldh [$ffe7], a ; 357e - ret ; 3580 -; 3581 - -Function3581:: - ld b, $ff ; 3581 - ldh a, [$ffe8] ; 3583 - and a ; 3585 - jr nz, Function358c ; 3586 - ldh a, [$ffe9] ; 3588 - and a ; 358a - ret z ; 358b - ld a, $31 ; 358c - jp Function2e49 ; 358e -; 3591 - -Function3591:: - call Function3596 ; 3591 - ld [hl], d ; 3594 - ret ; 3595 -; 3596 - -Function3596:: - ld d, $0 ; 3596 - ld a, e ; 3598 - cp $18 ; 3599 - ret nc ; 359b - inc d ; 359c - cp $a ; 359d - ret nc ; 359f - inc d ; 35a0 - ret ; 35a1 -; 35a2 - -Function35a2:: - ld c, $0 ; 35a2 - ld a, [hli] ; 35a4 - ld e, a ; 35a5 - ld d, $8 ; 35a6 - srl e ; 35a8 - ld a, $0 ; 35aa - adc c ; 35ac - ld c, a ; 35ad - dec d ; 35ae - jr nz, Function35a8 ; 35af - dec b ; 35b1 - jr nz, Function35a4 ; 35b2 - ld a, c ; 35b4 - ld [$d151], a ; 35b5 - ret ; 35b8 -; 35b9 - -Function35b9:: - ld a, [$d1f2] ; 35b9 - sub a, $7 ; 35bc - jr nc, Function35bc ; 35be - add a, $7 ; 35c0 - ret ; 35c2 -; 35c3 - -Function35c3:: - push af ; 35c3 - ld c, a ; 35c4 - ld hl, $dbe4 ; 35c5 - ld b, $1 ; 35c8 - call Function35e4 ; 35ca - pop af ; 35cd - ld c, a ; 35ce - ld hl, $dc04 ; 35cf - ld b, $1 ; 35d2 - jr Function35e4 ; 35d4 -; 35d6 - -Function35d6:: - ld c, a ; 35d6 - ld hl, $dbe4 ; 35d7 - ld b, $2 ; 35da - jr Function35e4 ; 35dc -; 35de - -Function35de:: - ld c, a ; 35de - ld hl, $dc04 ; 35df - ld b, $2 ; 35e2 - ld d, $0 ; 35e4 - ld a, $3 ; 35e6 - call Function2e49 ; 35e8 - ld a, c ; 35eb - and a ; 35ec - ret ; 35ed -; 35ee - -Function35ee:: - ld l, h ; 35ee - ld [hl], h ; 35ef - ld c, e ; 35f0 - ld l, h ; 35f1 - ld [hl], h ; 35f2 - ld d, l ; 35f3 - nop ; 35f4 - nop ; 35f5 - nop ; 35f6 - ld l, h ; 35f7 - nop ; 35f8 - ld b, b ; 35f9 - nop ; 35fa - ld c, d ; 35fb - - ; 35fc - nop ; 35fd - ld a, l ; 35fe - sbc a, $6c ; 35ff - ld d, l ; 3601 - ld c, c ; 3602 - inc b ; 3603 - nop ; 3604 - ld b, b ; 3605 - ldh a, [hROMBank] ; 3606 - push af ; 3608 - push hl ; 3609 - push bc ; 360a - push de ; 360b - ld a, [$ce61] ; 360c - cp $1 ; 360f - jr nz, Function3624 ; 3611 - ld a, [$ce60] ; 3613 - ld [$d151], a ; 3616 - call Function367e ; 3619 - ld hl, $b ; 361c - add hl, de ; 361f - ld e, l ; 3620 - ld d, h ; 3621 - jr Function3646 ; 3622 -; 3624 - -Function3624:: - ld a, [$ce61] ; 3624 - dec a ; 3627 - ld e, a ; 3628 - ld d, $0 ; 3629 - ld hl, $35ee ; 362b - add hl, de ; 362e - add hl, de ; 362f - add hl, de ; 3630 - ld a, [hli] ; 3631 - rst Bankswitch ; 3632 - ld a, [hli] ; 3633 - ld h, [hl] ; 3634 - ld l, a ; 3635 - ld a, [$ce60] ; 3636 - dec a ; 3639 - call Function3654 ; 363a - ld de, $cf6b ; 363d - ld bc, $d ; 3640 - call Function311a ; 3643 - ld a, e ; 3646 - ld [$cffe], a ; 3647 - ld a, d ; 364a - ld [$cfff], a ; 364b - pop de ; 364e - pop bc ; 364f - pop hl ; 3650 - pop af ; 3651 - rst Bankswitch ; 3652 - ret ; 3653 -; 3654 - -Function3654:: - and a ; 3654 - ret z ; 3655 - push bc ; 3656 - ld b, a ; 3657 - ld c, $50 ; 3658 - ld a, [hli] ; 365a - cp c ; 365b - jr nz, Function365a ; 365c - dec b ; 365e - jr nz, Function365a ; 365f - pop bc ; 3661 - ret ; 3662 -; 3663 - -Function3663:: - push hl ; 3663 - call Function367e ; 3664 - ld hl, $cf6b ; 3667 - ld a, [hl] ; 366a - cp $50 ; 366b - jr z, Function367c ; 366d - cp $ef ; 366f - jr z, Function367a ; 3671 - cp $f5 ; 3673 - jr z, Function367a ; 3675 - inc hl ; 3677 - jr Function366a ; 3678 -; 367a - -Function367a:: - ld [hl], $50 ; 367a - pop hl ; 367c - ret ; 367d -; 367e - -Function367e:: - ldh a, [hROMBank] ; 367e - push af ; 3680 - push hl ; 3681 - ld a, $6c ; 3682 - rst Bankswitch ; 3684 - ld a, [$d151] ; 3685 - dec a ; 3688 - ld hl, $4b74 ; 3689 - ld e, a ; 368c - ld d, $0 ; 368d - add hl, de ; 368f - add hl, de ; 3690 - add hl, de ; 3691 - add hl, de ; 3692 - add hl, de ; 3693 - add hl, de ; 3694 - add hl, de ; 3695 - add hl, de ; 3696 - add hl, de ; 3697 - add hl, de ; 3698 - ld de, $cf6b ; 3699 - push de ; 369c - ld bc, $a ; 369d - call Function311a ; 36a0 - ld hl, $cf75 ; 36a3 - ld [hl], $50 ; 36a6 - pop de ; 36a8 - pop hl ; 36a9 - pop af ; 36aa - rst Bankswitch ; 36ab - ret ; 36ac -; 36ad - -Function36ad:: - push hl ; 36ad - push bc ; 36ae - ld a, [$d151] ; 36af - cp $bf ; 36b2 - jr nc, Function36c3 ; 36b4 - ld [$ce60], a ; 36b6 - ld a, $4 ; 36b9 - ld [$ce61], a ; 36bb - call Function3606 ; 36be - jr Function36c6 ; 36c1 -; 36c3 - -Function36c3:: - call Function36cc ; 36c3 - ld de, $cf6b ; 36c6 - pop bc ; 36c9 - pop hl ; 36ca - ret ; 36cb -; 36cc - -Function36cc:: - push hl ; 36cc - push de ; 36cd - push bc ; 36ce - ld a, [$d151] ; 36cf - push af ; 36d2 - cp $f3 ; 36d3 - push af ; 36d5 - jr c, Function36e0 ; 36d6 - ld hl, $3721 ; 36d8 - ld bc, $2 ; 36db - jr Function36e6 ; 36de -; 36e0 - -Function36e0:: - ld hl, $371e ; 36e0 - ld bc, $2 ; 36e3 - ld de, $cf6b ; 36e6 - call Function311a ; 36e9 - push de ; 36ec - ld a, [$d151] ; 36ed - ld c, a ; 36f0 - ld hl, $5414 ; 36f1 - ld a, $3 ; 36f4 - rst FarCall ; 36f6 - pop de ; 36f7 - pop af ; 36f8 - ld a, c ; 36f9 - jr c, Function36fe ; 36fa - sub a, $32 ; 36fc - ld b, $f6 ; 36fe - sub a, $a ; 3700 - jr c, Function3707 ; 3702 - inc b ; 3704 - jr Function3700 ; 3705 -; 3707 - -Function3707:: - add a, $a ; 3707 - push af ; 3709 - ld a, b ; 370a - ld [de], a ; 370b - inc de ; 370c - pop af ; 370d - ld b, $f6 ; 370e - add b ; 3710 - ld [de], a ; 3711 - inc de ; 3712 - ld a, $50 ; 3713 - ld [de], a ; 3715 - pop af ; 3716 - ld [$d151], a ; 3717 - pop bc ; 371a - pop de ; 371b - pop hl ; 371c - ret ; 371d -; 371e - -Function371e:: - sub e ; 371e - adc h ; 371f - ld d, b ; 3720 - add a ; 3721 - adc h ; 3722 - ld d, b ; 3723 - cp $f3 ; 3724 - jr c, Function372a ; 3726 - scf ; 3728 - ret ; 3729 -; 372a - -Function372a:: - and a ; 372a - ret ; 372b -; 372c - -Function372c:: - ld hl, $3735 ; 372c - ld de, $1 ; 372f - jp Function3186 ; 3732 -; 3735 - -Function3735:: - rrca ; 3735 - inc de ; 3736 - add hl, sp ; 3737 - ld b, [hl] ; 3738 - sub h ; 3739 - ld a, a ; 373a - ld a, [$e5ff] ; 373b - ld a, $2 ; 373e - ld [$ce61], a ; 3740 - ld a, [$d151] ; 3743 - ld [$ce60], a ; 3746 - call Function3606 ; 3749 - ld de, $cf6b ; 374c - pop hl ; 374f - ret ; 3750 -; 3751 - -Function3751:: - call Function1af9 ; 3751 - ldh a, [hROMBank] ; 3754 - push af ; 3756 - ld a, $9 ; 3757 - rst Bankswitch ; 3759 - call Function44d7 ; 375a - call Function3769 ; 375d - call Function44f3 ; 3760 - pop af ; 3763 - rst Bankswitch ; 3764 - ld a, [$ceaa] ; 3765 - ret ; 3768 -; 3769 - -Function3769:: - ld hl, $cfe5 ; 3769 - bit 0, [hl] ; 376c - jp nz, Function359 ; 376e - jp Function3546 ; 3771 -; 3774 - -Function3774:: - ld a, [$ceb9] ; 3774 - dec a ; 3777 - ld b, a ; 3778 - ld a, [$cebb] ; 3779 - sub b ; 377c - ld d, a ; 377d - ld a, [$ceba] ; 377e - dec a ; 3781 - ld c, a ; 3782 - ld a, [$cebc] ; 3783 - sub c ; 3786 - ld e, a ; 3787 - push de ; 3788 - call Function1b98 ; 3789 - pop bc ; 378c - jp Functioneef ; 378d -; 3790 - -Function3790:: - call Function32e ; 3790 - ldh a, [$ffac] ; 3793 - push af ; 3795 - ld a, $1 ; 3796 - ldh [$ffac], a ; 3798 - call Functiona08 ; 379a - pop af ; 379d - ldh [$ffac], a ; 379e - ldh a, [$ffab] ; 37a0 - and $f0 ; 37a2 - ld c, a ; 37a4 - ldh a, [$ffa9] ; 37a5 - and $f ; 37a7 - or c ; 37a9 - ld c, a ; 37aa - ret ; 37ab -; 37ac - -Function37ac:: - ldh a, [hROMBank] ; 37ac - push af ; 37ae - call Function2d2b ; 37af - call Function37b9 ; 37b2 - pop bc ; 37b5 - ld a, b ; 37b6 - rst Bankswitch ; 37b7 - ret ; 37b8 -; 37b9 - -Function37b9:: - ld hl, $1 ; 37b9 - add hl, de ; 37bc - ld a, [hl] ; 37bd - cp $ff ; 37be - jr z, Function37dc ; 37c0 - ld l, a ; 37c2 - push hl ; 37c3 - call Function37de ; 37c4 - pop hl ; 37c7 - jr nc, Function37dc ; 37c8 - ld d, a ; 37ca - ld e, l ; 37cb - call Function3823 ; 37cc - jr nc, Function37dc ; 37cf - call Function275a ; 37d1 - ld a, $25 ; 37d4 - ld hl, $6b89 ; 37d6 - rst FarCall ; 37d9 - scf ; 37da - ret ; 37db -; 37dc - -Function37dc:: - and a ; 37dc - ret ; 37dd -; 37de - -Function37de:: - push de ; 37de - ld hl, $10 ; 37df - add hl, de ; 37e2 - ld a, [hl] ; 37e3 - ld hl, $11 ; 37e4 - add hl, de ; 37e7 - ld e, [hl] ; 37e8 - sub a, $4 ; 37e9 - ld d, a ; 37eb - ld a, e ; 37ec - sub a, $4 ; 37ed - ld e, a ; 37ef - call Function37f5 ; 37f0 - pop de ; 37f3 - ret ; 37f4 -; 37f5 - -Function37f5:: - ld hl, $d946 ; 37f5 - ld a, [hli] ; 37f8 - ld h, [hl] ; 37f9 - ld l, a ; 37fa - ld a, [$d945] ; 37fb - and a ; 37fe - jr z, Function3818 ; 37ff - push af ; 3801 - ld a, [hl] ; 3802 - cp e ; 3803 - jr nz, Function380d ; 3804 - inc hl ; 3806 - ld a, [hld] ; 3807 - cp d ; 3808 - jr nz, Function380d ; 3809 - jr Function381a ; 380b -; 380d - -Function380d:: - ld a, $5 ; 380d - add l ; 380f - ld l, a ; 3810 - jr nc, Function3814 ; 3811 - inc h ; 3813 - pop af ; 3814 - dec a ; 3815 - jr nz, Function3801 ; 3816 - and a ; 3818 - ret ; 3819 -; 381a - -Function381a:: - pop af ; 381a - ld d, a ; 381b - ld a, [$d945] ; 381c - sub d ; 381f - inc a ; 3820 - scf ; 3821 - ret ; 3822 -; 3823 - -Function3823:: - ld hl, $1 ; 3823 - add hl, bc ; 3826 - ld a, [hli] ; 3827 - ld h, [hl] ; 3828 - ld l, a ; 3829 - ld a, [hli] ; 382a - cp $ff ; 382b - jr z, Function3840 ; 382d - cp d ; 382f - jr nz, Function383b ; 3830 - ld a, [hli] ; 3832 - cp e ; 3833 - jr nz, Function383c ; 3834 - ld a, [hli] ; 3836 - ld h, [hl] ; 3837 - ld l, a ; 3838 - jr Function3842 ; 3839 -; 383b - -Function383b:: - inc hl ; 383b - inc hl ; 383c - inc hl ; 383d - jr Function382a ; 383e -; 3840 - -Function3840:: - and a ; 3840 - ret ; 3841 -; 3842 - -Function3842:: - scf ; 3842 - ret ; 3843 -; 3844 - -Function3844:: - ldh a, [hROMBank] ; 3844 - push af ; 3846 - call Function2d2b ; 3847 - call Function3851 ; 384a - pop bc ; 384d - ld a, b ; 384e - rst Bankswitch ; 384f - ret ; 3850 -; 3851 - -Function3851:: - ld a, $2 ; 3851 - ld de, $d465 ; 3853 - push af ; 3856 - push de ; 3857 - ld hl, $1 ; 3858 - add hl, de ; 385b - ld a, [hl] ; 385c - and a ; 385d - jr z, Function389b ; 385e - ld hl, $8 ; 3860 - add hl, de ; 3863 - ld a, [hl] ; 3864 - and $f ; 3865 - cp $2 ; 3867 - jr nz, Function389b ; 3869 - ld hl, $0 ; 386b - add hl, de ; 386e - ld a, [hl] ; 386f - cp $ff ; 3870 - jr z, Function389b ; 3872 - call Function1982 ; 3874 - call Function38e9 ; 3877 - jr nc, Function389b ; 387a - ld hl, $9 ; 387c - add hl, de ; 387f - ld a, [hl] ; 3880 - cp b ; 3881 - jr c, Function389b ; 3882 - push bc ; 3884 - push de ; 3885 - ld hl, $a ; 3886 - add hl, de ; 3889 - ld a, [hli] ; 388a - ld h, [hl] ; 388b - ld l, a ; 388c - ld e, [hl] ; 388d - inc hl ; 388e - ld d, [hl] ; 388f - ld b, $2 ; 3890 - call Function2f2f ; 3892 - ld a, c ; 3895 - pop de ; 3896 - pop bc ; 3897 - and a ; 3898 - jr z, Function38aa ; 3899 - pop de ; 389b - ld hl, $10 ; 389c - add hl, de ; 389f - ld d, h ; 38a0 - ld e, l ; 38a1 - pop af ; 38a2 - inc a ; 38a3 - cp $10 ; 38a4 - jr nz, Function3856 ; 38a6 - xor a ; 38a8 - ret ; 38a9 -; 38aa - -Function38aa:: - pop de ; 38aa - pop af ; 38ab - ldh [$ffe2], a ; 38ac - ld a, b ; 38ae - ld [$cf2a], a ; 38af - ld a, c ; 38b2 - ld [$cf2b], a ; 38b3 - jr Function38c2 ; 38b6 -; 38b8 - -Function38b8:: - ld a, $1 ; 38b8 - ld [$cf2a], a ; 38ba - ld a, $ff ; 38bd - ld [$cf2b], a ; 38bf - call Function2d30 ; 38c2 - ld [$cf29], a ; 38c5 - ldh a, [$ffe2] ; 38c8 - call Function176f ; 38ca - ld hl, $a ; 38cd - add hl, bc ; 38d0 - ld a, [$cf29] ; 38d1 - call Function313c ; 38d4 - ld de, $cf2c ; 38d7 - ld bc, $d ; 38da - ld a, [$cf29] ; 38dd - call Functiondcd ; 38e0 - xor a ; 38e3 - ld [$cf38], a ; 38e4 - scf ; 38e7 - ret ; 38e8 -; 38e9 - -Function38e9:: - push de ; 38e9 - call Function38f1 ; 38ea - ld b, d ; 38ed - ld c, e ; 38ee - pop de ; 38ef - ret ; 38f0 -; 38f1 - -Function38f1:: - ld hl, $10 ; 38f1 - add hl, bc ; 38f4 - ld d, [hl] ; 38f5 - ld hl, $11 ; 38f6 - add hl, bc ; 38f9 - ld e, [hl] ; 38fa - ld a, [$d20d] ; 38fb - cp d ; 38fe - jr z, Function3909 ; 38ff - ld a, [$d20e] ; 3901 - cp e ; 3904 - jr z, Function391d ; 3905 - and a ; 3907 - ret ; 3908 -; 3909 - -Function3909:: - ld a, [$d20e] ; 3909 - sub e ; 390c - jr z, Function3937 ; 390d - jr nc, Function3918 ; 390f - cpl ; 3911 - inc a ; 3912 - ld d, a ; 3913 - ld e, $4 ; 3914 - jr Function392f ; 3916 -; 3918 - -Function3918:: - ld d, a ; 3918 - ld e, $0 ; 3919 - jr Function392f ; 391b -; 391d - -Function391d:: - ld a, [$d20d] ; 391d - sub d ; 3920 - jr z, Function3937 ; 3921 - jr nc, Function392c ; 3923 - cpl ; 3925 - inc a ; 3926 - ld d, a ; 3927 - ld e, $8 ; 3928 - jr Function392f ; 392a -; 392c - -Function392c:: - ld d, a ; 392c - ld e, $c ; 392d - call Function19a4 ; 392f - cp e ; 3932 - jr nz, Function3937 ; 3933 - scf ; 3935 - ret ; 3936 -; 3937 - -Function3937:: - and a ; 3937 - ret ; 3938 -; 3939 - -Function3939:: - push bc ; 3939 - ld hl, $1 ; 393a - add hl, bc ; 393d - ld a, [hl] ; 393e - call Function176f ; 393f - ld hl, $a ; 3942 - add hl, bc ; 3945 - ld a, [hli] ; 3946 - ld h, [hl] ; 3947 - ld l, a ; 3948 - call Function2d30 ; 3949 - call Function313c ; 394c - ld d, h ; 394f - ld e, l ; 3950 - push de ; 3951 - ld b, $2 ; 3952 - call Function2f2f ; 3954 - pop de ; 3957 - ld a, c ; 3958 - and a ; 3959 - pop bc ; 395a - ret ; 395b -; 395c - -Function395c:: - ld a, [$d119] ; 395c - cp $1 ; 395f - jr Function3968 ; 3961 -; 3963 - -Function3963:: - ld hl, $cf32 ; 3963 - jr Function3974 ; 3966 -; 3968 - -Function3968:: - ld a, [$cfe9] ; 3968 - ld hl, $cf32 ; 396b - and a ; 396e - jr z, Function3974 ; 396f - ld hl, $cf34 ; 3971 - ld a, [hli] ; 3974 - ld h, [hl] ; 3975 - ld l, a ; 3976 - call Function2d30 ; 3977 - call Function3404 ; 397a - call WaitBGMap ; 397d - call Functiona31 ; 3980 - ret ; 3983 -; 3984 - -Function3984:: - push hl ; 3984 - push de ; 3985 - push bc ; 3986 - ld a, $60 ; 3987 - ld [hli], a ; 3989 - ld a, $61 ; 398a - ld [hli], a ; 398c - push hl ; 398d - ld a, $62 ; 398e - ld [hli], a ; 3990 - dec d ; 3991 - jr nz, Function3990 ; 3992 - ld a, $6b ; 3994 - add b ; 3996 - ld [hl], a ; 3997 - pop hl ; 3998 - ld a, e ; 3999 - and a ; 399a - jr nz, Function39a3 ; 399b - ld a, c ; 399d - and a ; 399e - jr z, Function39b6 ; 399f - ld e, $1 ; 39a1 - ld a, e ; 39a3 - sub a, $8 ; 39a4 - jr c, Function39b2 ; 39a6 - ld e, a ; 39a8 - ld a, $6a ; 39a9 - ld [hli], a ; 39ab - ld a, e ; 39ac - and a ; 39ad - jr z, Function39b6 ; 39ae - jr Function39a3 ; 39b0 -; 39b2 - -Function39b2:: - ld a, $62 ; 39b2 - add e ; 39b4 - ld [hl], a ; 39b5 - pop bc ; 39b6 - pop de ; 39b7 - pop hl ; 39b8 - ret ; 39b9 -; 39ba - -Function39ba:: - ld a, $1 ; 39ba - ld [$cf3b], a ; 39bc - ld a, [$d004] ; 39bf - and a ; 39c2 - jr z, Function39e7 ; 39c3 - cp $fd ; 39c5 - jr z, Function39cd ; 39c7 - cp $fc ; 39c9 - jr nc, Function39e7 ; 39cb - push hl ; 39cd - ld de, $9000 ; 39ce - ld a, $3c ; 39d1 - call Function2e49 ; 39d3 - pop hl ; 39d6 - xor a ; 39d7 - ldh [$ffaf], a ; 39d8 - ld bc, $707 ; 39da - ld a, $13 ; 39dd - call Function2e49 ; 39df - xor a ; 39e2 - ld [$cf3b], a ; 39e3 - ret ; 39e6 -; 39e7 - -Function39e7:: - xor a ; 39e7 - ld [$cf3b], a ; 39e8 - inc a ; 39eb - ld [$d004], a ; 39ec - ret ; 39ef -; 39f0 - -Function39f0:: - push af ; 39f0 - ld a, $1 ; 39f1 - ld [$c1bc], a ; 39f3 - pop af ; 39f6 - jr Function3a02 ; 39f7 -; 39f9 - -Function39f9:: - push af ; 39f9 - xor a ; 39fa - ld [$c1bc], a ; 39fb - ld [$c1bd], a ; 39fe - pop af ; 3a01 - push hl ; 3a02 - push de ; 3a03 - push bc ; 3a04 - call Function3a41 ; 3a05 - jr c, Function3a12 ; 3a08 - ld e, c ; 3a0a - ld d, b ; 3a0b - call Function3de4 ; 3a0c - call Function3e56 ; 3a0f - pop bc ; 3a12 - pop de ; 3a13 - pop hl ; 3a14 - ret ; 3a15 -; 3a16 - -Function3a16:: - call Function3a41 ; 3a16 - ret c ; 3a19 - ldh a, [hROMBank] ; 3a1a - push af ; 3a1c - ld a, $3c ; 3a1d - rst Bankswitch ; 3a1f - ld hl, $6747 ; 3a20 - add hl, bc ; 3a23 - add hl, bc ; 3a24 - add hl, bc ; 3a25 - add hl, bc ; 3a26 - add hl, bc ; 3a27 - add hl, bc ; 3a28 - ld e, [hl] ; 3a29 - inc hl ; 3a2a - ld d, [hl] ; 3a2b - inc hl ; 3a2c - ld a, [hli] ; 3a2d - ld [$c1b0], a ; 3a2e - ld a, [hli] ; 3a31 - ld [$c1b1], a ; 3a32 - ld a, [hli] ; 3a35 - ld [$c1b2], a ; 3a36 - ld a, [hl] ; 3a39 - ld [$c1b3], a ; 3a3a - pop af ; 3a3d - rst Bankswitch ; 3a3e - and a ; 3a3f - ret ; 3a40 -; 3a41 - -Function3a41:: - and a ; 3a41 - jr z, Function3a4e ; 3a42 - cp $fc ; 3a44 - jr nc, Function3a4e ; 3a46 - dec a ; 3a48 - ld c, a ; 3a49 - ld b, $0 ; 3a4a - and a ; 3a4c - ret ; 3a4d -; 3a4e - -Function3a4e:: - scf ; 3a4e - ret ; 3a4f -; 3a50 - -Function3a50:: - ld a, [$d02a] ; 3a50 - ld [hl], $6e ; 3a53 - inc hl ; 3a55 - ld c, $2 ; 3a56 - cp $64 ; 3a58 - jr c, Function3a65 ; 3a5a - dec hl ; 3a5c - inc c ; 3a5d - jr Function3a65 ; 3a5e -; 3a60 - -Function3a60:: - ld [hl], $6e ; 3a60 - inc hl ; 3a62 - ld c, $3 ; 3a63 - ld [$d151], a ; 3a65 - ld de, $d151 ; 3a68 - ld b, $41 ; 3a6b - jp Function323d ; 3a6d -; 3a70 - -Function3a70:: - ld hl, $d149 ; 3a70 - ld c, a ; 3a73 - ld b, $0 ; 3a74 - add hl, bc ; 3a76 - ld a, [hl] ; 3a77 - ret ; 3a78 -; 3a79 - -Function3a79:: - push bc ; 3a79 - push de ; 3a7a - push hl ; 3a7b - ldh a, [hROMBank] ; 3a7c - push af ; 3a7e - ld a, $14 ; 3a7f - rst Bankswitch ; 3a81 - ld a, [$ce60] ; 3a82 - cp $fd ; 3a85 - jr z, Function3a9e ; 3a87 - dec a ; 3a89 - ld bc, $20 ; 3a8a - ld hl, $5b0b ; 3a8d - call Function31a3 ; 3a90 - ld de, $d120 ; 3a93 - ld bc, $20 ; 3a96 - call Function311a ; 3a99 - jr Function3ab3 ; 3a9c -; 3a9e - -Function3a9e:: - ld de, $7a83 ; 3a9e - ld b, $55 ; 3aa1 - ld hl, $d131 ; 3aa3 - ld [hl], b ; 3aa6 - ld hl, $d132 ; 3aa7 - ld [hl], e ; 3aaa - inc hl ; 3aab - ld [hl], d ; 3aac - inc hl ; 3aad - ld [hl], e ; 3aae - inc hl ; 3aaf - ld [hl], d ; 3ab0 - jr Function3ab3 ; 3ab1 -; 3ab3 - -Function3ab3:: - ld a, [$ce60] ; 3ab3 - ld [$d120], a ; 3ab6 - pop af ; 3ab9 - rst Bankswitch ; 3aba - pop hl ; 3abb - pop de ; 3abc - pop bc ; 3abd - ret ; 3abe -; 3abf - -Function3abf:: - ld a, [$d005] ; 3abf - ld hl, $db8c ; 3ac2 - push hl ; 3ac5 - push bc ; 3ac6 - call Function3199 ; 3ac7 - ld de, $cf6b ; 3aca - push de ; 3acd - ld bc, $b ; 3ace - call Function311a ; 3ad1 - pop de ; 3ad4 - ld hl, $677e ; 3ad5 - ld a, $1 ; 3ad8 - rst FarCall ; 3ada - pop bc ; 3adb - pop hl ; 3adc - ret ; 3add -; 3ade - -Function3ade:: - ld b, c ; 3ade - res 7, c ; 3adf - res 6, c ; 3ae1 - res 5, c ; 3ae3 - bit 5, b ; 3ae5 - jr z, Function3af0 ; 3ae7 - bit 7, b ; 3ae9 - jr nz, Function3af0 ; 3aeb - ld [hl], $f0 ; 3aed - inc hl ; 3aef - ld a, [de] ; 3af0 - swap a ; 3af1 - call Function3b15 ; 3af3 - ld a, [de] ; 3af6 - call Function3b15 ; 3af7 - inc de ; 3afa - dec c ; 3afb - jr nz, Function3af0 ; 3afc - bit 7, b ; 3afe - jr z, Function3b14 ; 3b00 - bit 6, b ; 3b02 - jr nz, Function3b07 ; 3b04 - dec hl ; 3b06 - bit 5, b ; 3b07 - jr z, Function3b0e ; 3b09 - ld [hl], $f0 ; 3b0b - inc hl ; 3b0d - ld [hl], $f6 ; 3b0e - call Function31e2 ; 3b10 - inc hl ; 3b13 - ret ; 3b14 -; 3b15 - -Function3b15:: - and $f ; 3b15 - and a ; 3b17 - jr z, Function3b2f ; 3b18 - bit 7, b ; 3b1a - jr z, Function3b29 ; 3b1c - bit 5, b ; 3b1e - jr z, Function3b27 ; 3b20 - ld [hl], $f0 ; 3b22 - inc hl ; 3b24 - res 5, b ; 3b25 - res 7, b ; 3b27 - add a, $f6 ; 3b29 - ld [hli], a ; 3b2b - jp Function31e2 ; 3b2c -; 3b2f - -Function3b2f:: - bit 7, b ; 3b2f - jr z, Function3b29 ; 3b31 - bit 6, b ; 3b33 - ret nz ; 3b35 - ld a, $7f ; 3b36 - ld [hli], a ; 3b38 - ret ; 3b39 -; 3b3a - -Function3b3a:: - push bc ; 3b3a - ld hl, $da2a ; 3b3b - ld c, a ; 3b3e - ld b, $0 ; 3b3f - add hl, bc ; 3b41 - ld a, [$d005] ; 3b42 - call Function3b4a ; 3b45 - pop bc ; 3b48 - ret ; 3b49 -; 3b4a - -Function3b4a:: - ld bc, $30 ; 3b4a - jp Function31a3 ; 3b4d -; 3b50 - -Function3b50:: - push hl ; 3b50 - ld a, b ; 3b51 - dec a ; 3b52 - ld b, $0 ; 3b53 - add hl, bc ; 3b55 - ld hl, $5b0b ; 3b56 - ld bc, $20 ; 3b59 - call Function31a3 ; 3b5c - pop bc ; 3b5f - ld a, $14 ; 3b60 - call Function313c ; 3b62 - ld b, l ; 3b65 - ld c, h ; 3b66 - pop hl ; 3b67 - ret ; 3b68 -; 3b69 - -Function3b69:: - push af ; 3b69 - ldh a, [$ffe6] ; 3b6a - and a ; 3b6c - jr nz, Function3b72 ; 3b6d - pop af ; 3b6f - jr Function3b81 ; 3b70 -; 3b72 - -Function3b72:: - pop af ; 3b72 - jr Function3b91 ; 3b73 -; 3b75 - -Function3b75:: - push af ; 3b75 - ldh a, [$ffe6] ; 3b76 - and a ; 3b78 - jr z, Function3b7e ; 3b79 - pop af ; 3b7b - jr Function3b81 ; 3b7c -; 3b7e - -Function3b7e:: - pop af ; 3b7e - jr Function3b91 ; 3b7f -; 3b81 - -Function3b81:: - push bc ; 3b81 - ld c, a ; 3b82 - ld b, $0 ; 3b83 - ld hl, $da2a ; 3b85 - add hl, bc ; 3b88 - ld a, [$cfc6] ; 3b89 - call Function3b4a ; 3b8c - pop bc ; 3b8f - ret ; 3b90 -; 3b91 - -Function3b91:: - push bc ; 3b91 - ld c, a ; 3b92 - ld b, $0 ; 3b93 - ld hl, $dd5d ; 3b95 - add hl, bc ; 3b98 - ld a, [$cb41] ; 3b99 - call Function3b4a ; 3b9c - pop bc ; 3b9f - ret ; 3ba0 -; 3ba1 - -Function3ba1:: - xor a ; 3ba1 - ld [$d141], a ; 3ba2 - ld [$d142], a ; 3ba5 - ret ; 3ba8 -; 3ba9 - -Function3ba9:: - xor a ; 3ba9 - ldh [$ffe6], a ; 3baa - ret ; 3bac -; 3bad - -Function3bad:: - ld a, $1 ; 3bad - ldh [$ffe6], a ; 3baf - ret ; 3bb1 -; 3bb2 - -Function3bb2:: - ldh a, [$ffe6] ; 3bb2 - and a ; 3bb4 - jr z, Function3bd4 ; 3bb5 - jr Function3bc0 ; 3bb7 -; 3bb9 - -Function3bb9:: - ldh a, [$ffe6] ; 3bb9 - and a ; 3bbb - jr z, Function3bc0 ; 3bbc - jr Function3bd4 ; 3bbe -; 3bc0 - -Function3bc0:: - ld a, [$cfc6] ; 3bc0 - ld hl, $da49 ; 3bc3 - call Function3b4a ; 3bc6 - ld d, h ; 3bc9 - ld e, l ; 3bca - ld hl, $cb19 ; 3bcb - ld bc, $5 ; 3bce - jp Function311a ; 3bd1 -; 3bd4 - -Function3bd4:: - ld a, [$d116] ; 3bd4 - dec a ; 3bd7 - ret z ; 3bd8 - ld a, [$cb41] ; 3bd9 - ld hl, $dd7c ; 3bdc - call Function3b4a ; 3bdf - ld d, h ; 3be2 - ld e, l ; 3be3 - ld hl, $d0fc ; 3be4 - ld bc, $5 ; 3be7 - jp Function311a ; 3bea -; 3bed - -Function3bed:: - call Function3bf8 ; 3bed - ld c, $3 ; 3bf0 - call Function33c ; 3bf2 - jp WaitBGMap ; 3bf5 -; 3bf8 - -Function3bf8:: - ld a, $f ; 3bf8 - ld hl, $5da9 ; 3bfa - rst FarCall ; 3bfd - ld a, $f ; 3bfe - ld hl, $5e97 ; 3c00 - rst FarCall ; 3c03 - ret ; 3c04 -; 3c05 - -GetBattleVar:: ; 3c05 - push hl ; 3c05 - call GetBattleVarAddr ; 3c06 - pop hl ; 3c09 - ret ; 3c0a -; 3c0b - -GetBattleVarAddr:: ; 3c0b -; Get variable from pair a, depending on whose turn it is. -; There are 21 variable pairs. - - push bc - - ld hl, .battlevarpairs - ld c, a - ld b, 0 -rept 2 - add hl, bc -endr - - ld a, [hli] - ld h, [hl] - ld l, a - -; Enemy turn uses the second byte instead. -; This lets battle variable calls be side-neutral. - ld a, [hBattleTurn] - and a - jr z, .getvar - inc hl - -.getvar -; var id - ld a, [hl] - ld c, a - ld b, 0 - - ld hl, .vars -rept 2 - add hl, bc -endr - - ld a, [hli] - ld h, [hl] - ld l, a - - ld a, [hl] - - pop bc - ret - -.battlevarpairs - dw .substatus1, .substatus2, .substatus3, .substatus4, .substatus5 - dw .substatus1opp, .substatus2opp, .substatus3opp, .substatus4opp, .substatus5opp - dw .status, .statusopp, .animation, .effect, .power, .type - dw .curmove, .lastcounter, .lastcounteropp, .lastmove, .lastmoveopp - -; player enemy -.substatus1 db PLAYER_SUBSTATUS_1, ENEMY_SUBSTATUS_1 -.substatus1opp db ENEMY_SUBSTATUS_1, PLAYER_SUBSTATUS_1 -.substatus2 db PLAYER_SUBSTATUS_2, ENEMY_SUBSTATUS_2 -.substatus2opp db ENEMY_SUBSTATUS_2, PLAYER_SUBSTATUS_2 -.substatus3 db PLAYER_SUBSTATUS_3, ENEMY_SUBSTATUS_3 -.substatus3opp db ENEMY_SUBSTATUS_3, PLAYER_SUBSTATUS_3 -.substatus4 db PLAYER_SUBSTATUS_4, ENEMY_SUBSTATUS_4 -.substatus4opp db ENEMY_SUBSTATUS_4, PLAYER_SUBSTATUS_4 -.substatus5 db PLAYER_SUBSTATUS_5, ENEMY_SUBSTATUS_5 -.substatus5opp db ENEMY_SUBSTATUS_5, PLAYER_SUBSTATUS_5 -.status db PLAYER_STATUS, ENEMY_STATUS -.statusopp db ENEMY_STATUS, PLAYER_STATUS -.animation db PLAYER_MOVE_ANIMATION, ENEMY_MOVE_ANIMATION -.effect db PLAYER_MOVE_EFFECT, ENEMY_MOVE_EFFECT -.power db PLAYER_MOVE_POWER, ENEMY_MOVE_POWER -.type db PLAYER_MOVE_TYPE, ENEMY_MOVE_TYPE -.curmove db PLAYER_CUR_MOVE, ENEMY_CUR_MOVE -.lastcounter db PLAYER_COUNTER_MOVE, ENEMY_COUNTER_MOVE -.lastcounteropp db ENEMY_COUNTER_MOVE, PLAYER_COUNTER_MOVE -.lastmove db PLAYER_LAST_MOVE, ENEMY_LAST_MOVE -.lastmoveopp db ENEMY_LAST_MOVE, PLAYER_LAST_MOVE - -.vars - dw PlayerSubStatus1, EnemySubStatus1 - dw PlayerSubStatus2, EnemySubStatus2 - dw PlayerSubStatus3, EnemySubStatus3 - dw PlayerSubStatus4, EnemySubStatus4 - dw PlayerSubStatus5, EnemySubStatus5 - dw BattleMonStatus, EnemyMonStatus - dw wPlayerMoveStructAnimation, wEnemyMoveStructAnimation - dw wPlayerMoveStructEffect, wEnemyMoveStructEffect - dw wPlayerMoveStructPower, wEnemyMoveStructPower - dw wPlayerMoveStructType, wEnemyMoveStructType - dw CurPlayerMove, CurEnemyMove - dw LastEnemyCounterMove, LastPlayerCounterMove - dw LastPlayerMove, LastEnemyMove -; 3cb4 - db $23 ; XXX - -FarCopyRadioText:: ; 3cb5 - inc hl - ld a, [$ff9d] - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [$ff9d], a - ld [MBC3RomBank], a - ld a, e - ld l, a - ld a, d - ld h, a - ld de, wRadioText - ld bc, 2 * SCREEN_WIDTH - call CopyBytes - pop af - ld [$ff9d], a - ld [MBC3RomBank], a - ret -; 3cd6 - -Function3cd6:: - ldh a, [hROMBank] ; 3cd6 - push af ; 3cd8 - ld a, $40 ; 3cd9 - rst Bankswitch ; 3cdb - call Functionf5e ; 3cdc - pop af ; 3cdf - rst Bankswitch ; 3ce0 - ret ; 3ce1 -; 3ce2 - -Function3ce2:: - ld a, $32 ; 3ce2 - rst Bankswitch ; 3ce4 - ld a, [hli] ; 3ce5 - ld [$ca10], a ; 3ce6 - ld a, [hl] ; 3ce9 - ld [$ca11], a ; 3cea - ld a, $33 ; 3ced - rst Bankswitch ; 3cef - ret ; 3cf0 -; 3cf1 - -Function3cf1:: - push hl ; 3cf1 - push de ; 3cf2 - ld hl, $ca10 ; 3cf3 - ld e, [hl] ; 3cf6 - inc hl ; 3cf7 - ld d, [hl] ; 3cf8 - ld a, $32 ; 3cf9 - rst Bankswitch ; 3cfb - ld a, [de] ; 3cfc - ld [$ca17], a ; 3cfd - inc de ; 3d00 - ld a, $33 ; 3d01 - rst Bankswitch ; 3d03 - ld [hl], d ; 3d04 - dec hl ; 3d05 - ld [hl], e ; 3d06 - pop de ; 3d07 - pop hl ; 3d08 - ld a, [$ca17] ; 3d09 - ret ; 3d0c -; 3d0d - -Function3d0d:: - ldh a, [$ffc8] ; 3d0d - and a ; 3d0f - ret z ; 3d10 - ld a, $0 ; 3d11 - ld [$ce68], a ; 3d13 - ld a, $c8 ; 3d16 - ld [$ce69], a ; 3d18 - ld a, $0 ; 3d1b - ld [$ce6a], a ; 3d1d - ld a, $c7 ; 3d20 - ld [$ce6b], a ; 3d22 - ld a, $9 ; 3d25 - ld [$ce67], a ; 3d27 - ret ; 3d2a -; 3d2b - -Function3d2b:: - ld [$c5c0], a ; 3d2b - ldh a, [hROMBank] ; 3d2e - push af ; 3d30 - ld a, $23 ; 3d31 - rst Bankswitch ; 3d33 - ld a, [$c5c0] ; 3d34 - call Function51f7 ; 3d37 - pop af ; 3d3a - rst Bankswitch ; 3d3b - ret ; 3d3c -; 3d3d - -Function3d3d:: - ld [$c5c0], a ; 3d3d - ldh a, [hROMBank] ; 3d40 - push af ; 3d42 - ld a, $23 ; 3d43 - rst Bankswitch ; 3d45 - ld a, [$c5c0] ; 3d46 - call Function5332 ; 3d49 - pop af ; 3d4c - rst Bankswitch ; 3d4d - ret ; 3d4e -; 3d4f - -Function3d4f:: - push hl ; 3d4f - push de ; 3d50 - push bc ; 3d51 - push af ; 3d52 - ldh a, [hROMBank] ; 3d53 - push af ; 3d55 - ld a, $3a ; 3d56 - ldh [hROMBank], a ; 3d58 - ld MBC3RomBank, a ; 3d5a - call Function4000 ; 3d5d - pop af ; 3d60 - ldh [hROMBank], a ; 3d61 - ld MBC3RomBank, a ; 3d63 - pop af ; 3d66 - pop bc ; 3d67 - pop de ; 3d68 - pop hl ; 3d69 - ret ; 3d6a -; 3d6b - -Function3d6b:: - push hl ; 3d6b - push de ; 3d6c - push bc ; 3d6d - push af ; 3d6e - ldh a, [hROMBank] ; 3d6f - push af ; 3d71 - ld a, $3a ; 3d72 - ldh [hROMBank], a ; 3d74 - ld MBC3RomBank, a ; 3d76 - call Function405c ; 3d79 - pop af ; 3d7c - ldh [hROMBank], a ; 3d7d - ld MBC3RomBank, a ; 3d7f - pop af ; 3d82 - pop bc ; 3d83 - pop de ; 3d84 - pop hl ; 3d85 - ret ; 3d86 -; 3d87 - -Function3d87:: - ldh [hROMBank], a ; 3d87 - ld MBC3RomBank, a ; 3d89 - ld a, [de] ; 3d8c - ld [$c198], a ; 3d8d - ld a, $3a ; 3d90 - ldh [hROMBank], a ; 3d92 - ld MBC3RomBank, a ; 3d94 - ret ; 3d97 -; 3d98 - -Function3d98:: - push hl ; 3d98 - push de ; 3d99 - push bc ; 3d9a - push af ; 3d9b - ldh a, [hROMBank] ; 3d9c - push af ; 3d9e - ld a, $3a ; 3d9f - ldh [hROMBank], a ; 3da1 - ld MBC3RomBank, a ; 3da3 - ld a, e ; 3da6 - and a ; 3da7 - jr z, Function3daf ; 3da8 - call Function4b30 ; 3daa - jr Function3db2 ; 3dad -; 3daf - -Function3daf:: - call Function4000 ; 3daf - pop af ; 3db2 - ldh [hROMBank], a ; 3db3 - ld MBC3RomBank, a ; 3db5 - pop af ; 3db8 - pop bc ; 3db9 - pop de ; 3dba - pop hl ; 3dbb - ret ; 3dbc -; 3dbd - -Function3dbd:: - push hl ; 3dbd - push de ; 3dbe - push bc ; 3dbf - push af ; 3dc0 - ldh a, [hROMBank] ; 3dc1 - push af ; 3dc3 - ld a, $3a ; 3dc4 - ldh [hROMBank], a ; 3dc6 - ld MBC3RomBank, a ; 3dc8 - push de ; 3dcb - ld de, $0 ; 3dcc - call Function4b30 ; 3dcf - call Function32e ; 3dd2 - pop de ; 3dd5 - call Function4b30 ; 3dd6 - pop af ; 3dd9 - ldh [hROMBank], a ; 3dda - ld MBC3RomBank, a ; 3ddc - pop af ; 3ddf - pop bc ; 3de0 - pop de ; 3de1 - pop hl ; 3de2 - ret ; 3de3 -; 3de4 - -Function3de4:: - push hl ; 3de4 - push de ; 3de5 - push bc ; 3de6 - push af ; 3de7 - ldh a, [hROMBank] ; 3de8 - push af ; 3dea - ld a, $3c ; 3deb - ldh [hROMBank], a ; 3ded - ld MBC3RomBank, a ; 3def - ld hl, $6747 ; 3df2 - add hl, de ; 3df5 - add hl, de ; 3df6 - add hl, de ; 3df7 - add hl, de ; 3df8 - add hl, de ; 3df9 - add hl, de ; 3dfa - ld e, [hl] ; 3dfb - inc hl ; 3dfc - ld d, [hl] ; 3dfd - inc hl ; 3dfe - ld a, [hli] ; 3dff - ld [$c1b0], a ; 3e00 - ld a, [hli] ; 3e03 - ld [$c1b1], a ; 3e04 - ld a, [hli] ; 3e07 - ld [$c1b2], a ; 3e08 - ld a, [hl] ; 3e0b - ld [$c1b3], a ; 3e0c - ld a, $3a ; 3e0f - ldh [hROMBank], a ; 3e11 - ld MBC3RomBank, a ; 3e13 - call Function4b79 ; 3e16 - pop af ; 3e19 - ldh [hROMBank], a ; 3e1a - ld MBC3RomBank, a ; 3e1c - pop af ; 3e1f - pop bc ; 3e20 - pop de ; 3e21 - pop hl ; 3e22 - ret ; 3e23 -; 3e24 - -Function3e24:: - push hl ; 3e24 - push de ; 3e25 - push bc ; 3e26 - push af ; 3e27 - call Function3fbc ; 3e28 - jr nc, Function3e33 ; 3e2b - ld a, [$c1bf] ; 3e2d - cp e ; 3e30 - jr c, Function3e4a ; 3e31 - ldh a, [hROMBank] ; 3e33 - push af ; 3e35 - ld a, $3a ; 3e36 - ldh [hROMBank], a ; 3e38 - ld MBC3RomBank, a ; 3e3a - ld a, e ; 3e3d - ld [$c1bf], a ; 3e3e - call Function4c04 ; 3e41 - pop af ; 3e44 - ldh [hROMBank], a ; 3e45 - ld MBC3RomBank, a ; 3e47 - pop af ; 3e4a - pop bc ; 3e4b - pop de ; 3e4c - pop hl ; 3e4d - ret ; 3e4e -; 3e4f - -Function3e4f:: - call Function3e56 ; 3e4f - call Function3e24 ; 3e52 - ret ; 3e55 -; 3e56 - -Function3e56:: - push hl ; 3e56 - ld hl, $c0cc ; 3e57 - bit 0, [hl] ; 3e5a - jr nz, Function3e57 ; 3e5c - ld hl, $c0fe ; 3e5e - bit 0, [hl] ; 3e61 - jr nz, Function3e57 ; 3e63 - ld hl, $c130 ; 3e65 - bit 0, [hl] ; 3e68 - jr nz, Function3e57 ; 3e6a - ld hl, $c162 ; 3e6c - bit 0, [hl] ; 3e6f - jr nz, Function3e57 ; 3e71 - pop hl ; 3e73 - ret ; 3e74 -; 3e75 - -Function3e75:: - ld a, $77 ; 3e75 - ld [$c19a], a ; 3e77 - ret ; 3e7a -; 3e7b - -Function3e7b:: - ld a, $33 ; 3e7b - ld [$c19a], a ; 3e7d - ret ; 3e80 -; 3e81 - -Function3e81:: - xor a ; 3e81 - ld [$c19a], a ; 3e82 - ret ; 3e85 -; 3e86 - -Function3e86:: - ld a, $4 ; 3e86 - ld [$c1a7], a ; 3e88 - ret ; 3e8b -; 3e8c - -Function3e8c:: - ld a, $84 ; 3e8c - ld [$c1a7], a ; 3e8e - ret ; 3e91 -; 3e92 - -Function3e92:: - and a ; 3e92 - ret z ; 3e93 - dec a ; 3e94 - call Function3d6b ; 3e95 - jr Function3e92 ; 3e98 -; 3e9a - -Function3e9a:: - push hl ; 3e9a - push de ; 3e9b - push bc ; 3e9c - push af ; 3e9d - call Function3f75 ; 3e9e - ld a, [$c1c0] ; 3ea1 - cp e ; 3ea4 - jr z, Function3eb8 ; 3ea5 - ld a, $8 ; 3ea7 - ld [$c1a7], a ; 3ea9 - ld a, e ; 3eac - ld [$c1a9], a ; 3ead - ld a, d ; 3eb0 - ld [$c1aa], a ; 3eb1 - ld a, e ; 3eb4 - ld [$c1c0], a ; 3eb5 - pop af ; 3eb8 - pop bc ; 3eb9 - pop de ; 3eba - pop hl ; 3ebb - ret ; 3ebc -; 3ebd - -Function3ebd:: - push hl ; 3ebd - push de ; 3ebe - push bc ; 3ebf - push af ; 3ec0 - call Function3f75 ; 3ec1 - ld a, [$c1c0] ; 3ec4 - cp e ; 3ec7 - jr z, Function3edc ; 3ec8 - push de ; 3eca - ld de, $0 ; 3ecb - call Function3d98 ; 3ece - call Function32e ; 3ed1 - pop de ; 3ed4 - ld a, e ; 3ed5 - ld [$c1c0], a ; 3ed6 - call Function3d98 ; 3ed9 - pop af ; 3edc - pop bc ; 3edd - pop de ; 3ede - pop hl ; 3edf - ret ; 3ee0 -; 3ee1 - -Function3ee1:: - push hl ; 3ee1 - push de ; 3ee2 - push bc ; 3ee3 - push af ; 3ee4 - xor a ; 3ee5 - ld [$c1c1], a ; 3ee6 - ld de, $13 ; 3ee9 - ld a, [$d682] ; 3eec - cp $1 ; 3eef - jr z, Function3ef6 ; 3ef1 - call Function3f75 ; 3ef3 - push de ; 3ef6 - ld de, $0 ; 3ef7 - call Function3d98 ; 3efa - call Function32e ; 3efd - pop de ; 3f00 - ld a, e ; 3f01 - ld [$c1c0], a ; 3f02 - call Function3d98 ; 3f05 - pop af ; 3f08 - pop bc ; 3f09 - pop de ; 3f0a - pop hl ; 3f0b - ret ; 3f0c -; 3f0d - -Function3f0d:: - ld a, [$c1c1] ; 3f0d - and a ; 3f10 - jr z, Function3f25 ; 3f11 - xor a ; 3f13 - ld [$c1c0], a ; 3f14 - ld de, $0 ; 3f17 - call Function3d98 ; 3f1a - call Function32e ; 3f1d - xor a ; 3f20 - ld [$c1c1], a ; 3f21 - ret ; 3f24 -; 3f25 - -Function3f25:: - push hl ; 3f25 - push de ; 3f26 - push bc ; 3f27 - push af ; 3f28 - ld de, $0 ; 3f29 - call Function3d98 ; 3f2c - call Function32e ; 3f2f - ld a, [$c1c0] ; 3f32 - ld e, a ; 3f35 - ld d, $0 ; 3f36 - call Function3d98 ; 3f38 - pop af ; 3f3b - pop bc ; 3f3c - pop de ; 3f3d - pop hl ; 3f3e - ret ; 3f3f -; 3f40 - -Function3f40:: - ld a, [$d682] ; 3f40 - cp $4 ; 3f43 - jr z, Function3f59 ; 3f45 - cp $8 ; 3f47 - jr z, Function3f59 ; 3f49 - ld a, [$d572] ; 3f4b - bit 2, a ; 3f4e - jr nz, Function3f5e ; 3f50 - and a ; 3f52 - ret ; 3f53 -; 3f54 - -Function3f54:: - ld de, $13 ; 3f54 - scf ; 3f57 - ret ; 3f58 -; 3f59 - -Function3f59:: - ld de, $21 ; 3f59 - scf ; 3f5c - ret ; 3f5d -; 3f5e - -Function3f5e:: - ld a, [$da00] ; 3f5e - cp $a ; 3f61 - jr nz, Function3f52 ; 3f63 - ld a, [$da01] ; 3f65 - cp $f ; 3f68 - jr z, Function3f70 ; 3f6a - cp $11 ; 3f6c - jr nz, Function3f52 ; 3f6e - ld de, $58 ; 3f70 - scf ; 3f73 - ret ; 3f74 -; 3f75 - -Function3f75:: - call Function3f40 ; 3f75 - ret c ; 3f78 - call Function2d96 ; 3f79 - ret ; 3f7c -; 3f7d - -Function3f7d:: - ld a, $20 ; 3f7d - ld [$c398], a ; 3f7f - ld [$c39c], a ; 3f82 - ld a, $50 ; 3f85 - ld [$c399], a ; 3f87 - ld a, $58 ; 3f8a - ld [$c39d], a ; 3f8c - xor a ; 3f8f - ld [$c39b], a ; 3f90 - ld [$c39f], a ; 3f93 - ld a, [$c196] ; 3f96 - cp $64 ; 3f99 - jr nc, Function3fb3 ; 3f9b - add a, $1 ; 3f9d - daa ; 3f9f - ld b, a ; 3fa0 - swap a ; 3fa1 - and $f ; 3fa3 - add a, $f6 ; 3fa5 - ld [$c39a], a ; 3fa7 - ld a, b ; 3faa - and $f ; 3fab - add a, $f6 ; 3fad - ld [$c39e], a ; 3faf - ret ; 3fb2 -; 3fb3 - -Function3fb3:: - ld a, $ff ; 3fb3 - ld [$c39a], a ; 3fb5 - ld [$c39e], a ; 3fb8 - ret ; 3fbb -; 3fbc - -Function3fbc:: - ld a, [$c0cc] ; 3fbc - bit 0, a ; 3fbf - jr nz, Function3fda ; 3fc1 - ld a, [$c0fe] ; 3fc3 - bit 0, a ; 3fc6 - jr nz, Function3fda ; 3fc8 - ld a, [$c130] ; 3fca - bit 0, a ; 3fcd - jr nz, Function3fda ; 3fcf - ld a, [$c162] ; 3fd1 - bit 0, a ; 3fd4 - jr nz, Function3fda ; 3fd6 - and a ; 3fd8 - ret ; 3fd9 -; 3fda - -Function3fda:: - scf ; 3fda - ret ; 3fdb -; 3fdc - -Function3fdc:: - xor a ; 3fdc - ld [$c0cc], a ; 3fdd - ld [$c19c], a ; 3fe0 - ldh [$ff10], a ; 3fe3 - ldh [$ff11], a ; 3fe5 - ldh [$ff12], a ; 3fe7 - ldh [$ff13], a ; 3fe9 - ldh [$ff14], a ; 3feb - ret ; 3fed diff --git a/home/delay.asm b/home/delay.asm index 450b4190..b9b7ac1f 100644 --- a/home/delay.asm +++ b/home/delay.asm @@ -1,22 +1,16 @@ -DelayFrame:: ; 45a -; Wait for one frame - ld a, 1 - ld [VBlankOccurred], a - -; Wait for the next VBlank, halting to conserve battery -.halt - halt ; rgbasm adds a nop after this instruction by default - ld a, [VBlankOccurred] +DelayFrame:: ; 32e + ld a, $1 + ld [$ceea], a +.asm_333 + halt + ld a, [$ceea] and a - jr nz, .halt + jr nz, .asm_333 ret -; 468 - -DelayFrames:: ; 468 -; Wait c frames +DelayFrames:: ; 33c +.loop call DelayFrame dec c - jr nz, DelayFrames + jr nz, .loop ret -; 46f diff --git a/home/fade.asm b/home/fade.asm index 579a4125..ad0adab4 100644 --- a/home/fade.asm +++ b/home/fade.asm @@ -1,117 +1,109 @@ -; Functions to fade the screen in and out. - -Function48c:: ; 48c - ld a, [TimeOfDayPal] - ld b, a - ld hl, IncGradGBPalTable_11 - ld a, l - sub b - ld l, a - jr nc, .okay - dec h - -.okay - ld a, [hli] - ld [rBGP], a - ld a, [hli] - ld [rOBP0], a - ld a, [hli] - ld [rOBP1], a - ret -; 4a3 - - -RotateFourPalettesRight:: ; 4a3 - ld a, [hCGB] - and a - jr z, .dmg - ld hl, IncGradGBPalTable_00 - ld b, 4 - jr RotatePalettesRight - -.dmg - ld hl, IncGradGBPalTable_08 - ld b, 4 - jr RotatePalettesRight -; 4b6 - -RotateThreePalettesRight:: ; 4b6 - ld a, [hCGB] - and a - jr z, .dmg - ld hl, IncGradGBPalTable_05 - ld b, 3 - jr RotatePalettesRight - -.dmg - ld hl, IncGradGBPalTable_13 - ld b, 3 -RotatePalettesRight:: ; 4c7 -; Rotate palettes to the right and fill with loaded colors from the left -; If we're already at the leftmost color, fill with the leftmost color - push de - ld a, [hli] - call DmgToCgbBGPals - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call DmgToCgbObjPals - ld c, 8 - call DelayFrames - pop de - dec b - jr nz, RotatePalettesRight - ret -; 4dd - -RotateFourPalettesLeft:: ; 4dd - ld a, [hCGB] - and a - jr z, .dmg - ld hl, IncGradGBPalTable_04 - 1 - ld b, 4 - jr RotatePalettesLeft - -.dmg - ld hl, IncGradGBPalTable_12 - 1 - ld b, 4 - jr RotatePalettesLeft -; 4f0 - -RotateThreePalettesLeft:: ; 4f0 - ld a, [hCGB] - and a - jr z, .dmg - ld hl, IncGradGBPalTable_07 - 1 - ld b, 3 - jr RotatePalettesLeft - -.dmg - ld hl, IncGradGBPalTable_15 - 1 - ld b, 3 -RotatePalettesLeft:: ; 501 -; Rotate palettes to the left and fill with loaded colors from the right -; If we're already at the rightmost color, fill with the rightmost color - push de - ld a, [hld] - ld d, a - ld a, [hld] - ld e, a - call DmgToCgbObjPals - ld a, [hld] - call DmgToCgbBGPals - ld c, 8 - call DelayFrames - pop de - dec b - jr nz, RotatePalettesLeft - ret -; 517 - - -; 517 +Function360:: + ld a, [$d568] ; 360 + ld b, a ; 363 + ld hl, $40c ; 364 + ld a, l ; 367 + sub b ; 368 + ld l, a ; 369 + jr nc, Function36d ; 36a + dec h ; 36c + ld a, [hli] ; 36d + ldh [$ff47], a ; 36e + ld a, [hli] ; 370 + ldh [$ff48], a ; 371 + ld a, [hli] ; 373 + ldh [$ff49], a ; 374 + ret ; 376 +; 377 + +Function377:: + ldh a, [$ffe8] ; 377 + and a ; 379 + jr z, Function383 ; 37a + ld hl, $3eb ; 37c + ld b, $4 ; 37f + jr Function39b ; 381 +; 383 + +Function383:: + ld hl, $403 ; 383 + ld b, $4 ; 386 + jr Function39b ; 388 +; 38a + +Function38a:: + ldh a, [$ffe8] ; 38a + and a ; 38c + jr z, Function396 ; 38d + ld hl, $3fa ; 38f + ld b, $3 ; 392 + jr Function39b ; 394 +; 396 + +Function396:: + ld hl, $412 ; 396 + ld b, $3 ; 399 + push de ; 39b + ld a, [hli] ; 39c + call Functionc61 ; 39d + ld a, [hli] ; 3a0 + ld e, a ; 3a1 + ld a, [hli] ; 3a2 + ld d, a ; 3a3 + call Functionc83 ; 3a4 + ld c, $8 ; 3a7 + call DelayFrames ; 3a9 + pop de ; 3ac + dec b ; 3ad + jr nz, Function39b ; 3ae + ret ; 3b0 +; 3b1 + +Function3b1:: + ldh a, [$ffe8] ; 3b1 + and a ; 3b3 + jr z, Function3bd ; 3b4 + ld hl, $3f6 ; 3b6 + ld b, $4 ; 3b9 + jr Function3d5 ; 3bb +; 3bd + +Function3bd:: + ld hl, $40e ; 3bd + ld b, $4 ; 3c0 + jr Function3d5 ; 3c2 +; 3c4 + +Function3c4:: + ldh a, [$ffe8] ; 3c4 + and a ; 3c6 + jr z, Function3d0 ; 3c7 + ld hl, $3ff ; 3c9 + ld b, $3 ; 3cc + jr Function3d5 ; 3ce +; 3d0 + +Function3d0:: + ld hl, $417 ; 3d0 + ld b, $3 ; 3d3 + push de ; 3d5 + ld a, [hld] ; 3d6 + ld d, a ; 3d7 + ld a, [hld] ; 3d8 + ld e, a ; 3d9 + call Functionc83 ; 3da + ld a, [hld] ; 3dd + call Functionc61 ; 3de + ld c, $8 ; 3e1 + call DelayFrames ; 3e3 + pop de ; 3e6 + dec b ; 3e7 + jr nz, Function3d5 ; 3e8 + ret ; 3ea +; 3eb + +Function3eb:: IncGradGBPalTable_00:: db %11111111, %11111111, %11111111 IncGradGBPalTable_01:: db %11111110, %11111110, %11111110 IncGradGBPalTable_02:: db %11111001, %11111001, %11111001 @@ -133,4 +125,4 @@ IncGradGBPalTable_13:: db %10010000, %10000000, %10010000 IncGradGBPalTable_14:: db %01000000, %01000000, %01000000 IncGradGBPalTable_15:: db %00000000, %00000000, %00000000 -; 547 +; 41b diff --git a/home/rtc.asm b/home/rtc.asm index 9fb71c0b..e2fa121f 100644 --- a/home/rtc.asm +++ b/home/rtc.asm @@ -1,24 +1,21 @@ -RTC:: ; 46f -; update time and time-sensitive palettes +Function343:: + ld a, [$c1cd] ; 343 + cp $0 ; 346 + ret z ; 348 + call Function467 ; 349 + ld a, [$cfe5] ; 34c + bit 0, a ; 34f + ret z ; 351 +Function352:: + ld hl, $4366 ; 352 + ld a, $23 ; 355 + rst FarCall ; 357 + ret ; 358 +; 359 -; rtc enabled? - ld a, [wSpriteUpdatesEnabled] - cp 0 - ret z - - call UpdateTime - -; obj update on? - ld a, [VramState] - bit 0, a ; obj update - ret z - -TimeOfDayPals:: ; 47e - callab _TimeOfDayPals - ret -; 485 - -UpdateTimePals:: ; 485 - callab _UpdateTimePals - ret -; 48c +Function359:: + ld hl, $4397 ; 359 + ld a, $23 ; 35c + rst FarCall ; 35e + ret ; 35f +; 360 diff --git a/home/vblank.asm b/home/vblank.asm index 1c0824c5..be04a8d9 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -1,442 +1,277 @@ -; VBlank is the interrupt responsible for updating VRAM. - -; In Pokemon Crystal, VBlank has been hijacked to act as the -; main loop. After time-sensitive graphics operations have been -; performed, joypad input and sound functions are executed. - -; This prevents the display and audio output from lagging. - - -VBlank:: ; 283 - push af - push bc - push de - push hl - - ld a, [hVBlank] - and 7 - - ld e, a - ld d, 0 - ld hl, .VBlanks -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - - call _hl_ - - call GameTimer - - pop hl - pop de - pop bc - pop af - reti -; 2a1 - -.VBlanks ; 2a1 - dw VBlank0 - dw VBlank1 - dw VBlank2 - dw VBlank3 - dw VBlank4 - dw VBlank5 - dw VBlank6 - dw VBlank0 ; just in case -; 2b1 - - -VBlank0:: ; 2b1 -; normal operation - -; rng -; scx, scy, wy, wx -; bg map buffer -; palettes -; dma transfer -; bg map -; tiles -; oam -; joypad -; sound - - ; inc frame counter - ld hl, hVBlankCounter - inc [hl] - - ; advance random variables - ld a, [rDIV] - ld b, a - ld a, [hRandomAdd] - adc b - ld [hRandomAdd], a - - ld a, [rDIV] - ld b, a - ld a, [hRandomSub] - sbc b - ld [hRandomSub], a - - ld a, [hROMBank] - ld [hROMBankBackup], a - - ld a, [hSCX] - ld [rSCX], a - ld a, [hSCY] - ld [rSCY], a - ld a, [hWY] - ld [rWY], a - ld a, [hWX] - ld [rWX], a - - ; There's only time to call one of these in one vblank. - ; Calls are in order of priority. - - call UpdateBGMapBuffer - jr c, .done - call UpdatePalsIfCGB - jr c, .done - call DMATransfer - jr c, .done - call UpdateBGMap - - ; These have their own timing checks. - - call Serve2bppRequest - call Serve1bppRequest - call AnimateTileset - -.done - - ld a, [hOAMUpdate] - and a - jr nz, .done_oam - call hPushOAM -.done_oam - - - ; vblank-sensitive operations are done - - xor a - ld [VBlankOccurred], a - - ld a, [OverworldDelay] - and a - jr z, .ok - dec a - ld [OverworldDelay], a -.ok - - ld a, [TextDelayFrames] - and a - jr z, .ok2 - dec a - ld [TextDelayFrames], a -.ok2 - - call Joypad - - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - ld a, [hROMBankBackup] - rst Bankswitch - - ld a, [hSeconds] - ld [hSecondsBackup], a - - ret -; 325 - - -VBlank2:: ; 325 -; sound only - - ld a, [hROMBank] - ld [hROMBankBackup], a - - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - - ld a, [hROMBankBackup] - rst Bankswitch - - xor a - ld [VBlankOccurred], a - ret -; 337 - - -VBlank1:: ; 337 -; scx, scy -; palettes -; bg map -; tiles -; oam -; sound / lcd stat - - ld a, [hROMBank] - ld [hROMBankBackup], a - - ld a, [hSCX] - ld [rSCX], a - ld a, [hSCY] - ld [rSCY], a - - call UpdatePals - jr c, .done - - call UpdateBGMap - call Serve2bppRequest@VBlank - - call hPushOAM -.done - - xor a - ld [VBlankOccurred], a - - ; get requested ints - ld a, [rIF] - ld b, a - ; discard requested ints - xor a - ld [rIF], a - ; enable lcd stat - ld a, %10 ; lcd stat - ld [rIE], a - ; rerequest serial int if applicable (still disabled) - ; request lcd stat - ld a, b - and %1000 ; serial - or %10 ; lcd stat - ld [rIF], a - - ei - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - ld a, [hROMBankBackup] - rst Bankswitch - di - - ; get requested ints - ld a, [rIF] - ld b, a - ; discard requested ints - xor a - ld [rIF], a - ; enable ints besides joypad - ld a, %1111 ; serial timer lcdstat vblank - ld [rIE], a - ; rerequest ints - ld a, b - ld [rIF], a - ret -; 37f - - -UpdatePals:: ; 37f -; update pals for either dmg or cgb - - ld a, [hCGB] - and a - jp nz, UpdateCGBPals - - ; update gb pals - ld a, [wBGP] - ld [rBGP], a - ld a, [wOBP0] - ld [rOBP0], a - ld a, [wOBP1] - ld [rOBP1], a - - and a - ret -; 396 - - -VBlank3:: ; 396 -; scx, scy -; palettes -; bg map -; tiles -; oam -; sound / lcd stat - - ld a, [hROMBank] - ld [hROMBankBackup], a - - ld a, [hSCX] - ld [rSCX], a - ld a, [hSCY] - ld [rSCY], a - - ld a, [hCGBPalUpdate] - and a - call nz, ForceUpdateCGBPals - jr c, .done - - call UpdateBGMap - call Serve2bppRequest@VBlank - - call hPushOAM -.done - - xor a - ld [VBlankOccurred], a - - ld a, [rIF] - push af - xor a - ld [rIF], a - ld a, %10 ; lcd stat - ld [rIE], a - ld [rIF], a - - ei - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - ld a, [hROMBankBackup] - rst Bankswitch - di - - ; request lcdstat - ld a, [rIF] - ld b, a - ; and any other ints - pop af - or b - ld b, a - ; reset ints - xor a - ld [rIF], a - ; enable ints besides joypad - ld a, %1111 ; serial timer lcdstat vblank - ld [rIE], a - ; request ints - ld a, b - ld [rIF], a - ret -; 3df - - -VBlank4:: ; 3df -; bg map -; tiles -; oam -; joypad -; serial -; sound - - ld a, [hROMBank] - ld [hROMBankBackup], a - - call UpdateBGMap - call Serve2bppRequest - - call hPushOAM - - call Joypad - - xor a - ld [VBlankOccurred], a - - call AskSerial - - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - - ld a, [hROMBankBackup] - rst Bankswitch - ret -; 400 - - -VBlank5:: ; 400 -; scx -; palettes -; bg map -; tiles -; joypad -; - - ld a, [hROMBank] - ld [hROMBankBackup], a - - ld a, [hSCX] - ld [rSCX], a - - call UpdatePalsIfCGB - jr c, .done - - call UpdateBGMap - call Serve2bppRequest -.done - - xor a - ld [VBlankOccurred], a - - call Joypad - - xor a - ld [rIF], a - ld a, %10 ; lcd stat - ld [rIE], a - ; request lcd stat - ld [rIF], a - - ei - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - ld a, [hROMBankBackup] - rst Bankswitch - di - - xor a - ld [rIF], a - ; enable ints besides joypad - ld a, %1111 ; serial timer lcdstat vblank - ld [rIE], a - ret -; 436 - - -VBlank6:: ; 436 -; palettes -; tiles -; dma transfer -; sound - - ld a, [hROMBank] - ld [hROMBankBackup], a - - ; inc frame counter - ld hl, hVBlankCounter - inc [hl] - - call UpdateCGBPals - jr c, .done - - call Serve2bppRequest - call Serve1bppRequest - call DMATransfer -.done - - xor a - ld [VBlankOccurred], a - - ld a, BANK(_UpdateSound) - rst Bankswitch - call _UpdateSound - - ld a, [hROMBankBackup] - rst Bankswitch - ret -; 45a +VBlank:: + push af ; 150 + push bc ; 151 + push de ; 152 + push hl ; 153 + ld a, [hMenuReturn] ; 154 + and $7 ; 156 + ld e, a ; 158 + ld d, $0 ; 159 + ld hl, .blanks ; 15b + add hl, de ; 15e + add hl, de ; 15f + ld a, [hli] ; 160 + ld h, [hl] ; 161 + ld l, a ; 162 + ld de, .return ; 163 + push de ; 166 + jp [hl] ; 167 +.return + call Function1efa ; 168 + pop hl ; 16b + pop de ; 16c + pop bc ; 16d + pop af ; 16e + reti ; 16f +; 170 + +.blanks + dw Function180 + dw Function1f4 + dw Function2b0 + dw Function2c4 + dw Function255 + dw Function278 + dw Function180 + dw Function180 + +Function180:: + ld hl, hVBlankCounter ; 180 + inc [hl] ; 183 + ld a, [rDIV] ; 184 + ld b, a ; 186 + ld a, [hRandomAdd] ; 187 + adc b ; 189 + ld [hRandomAdd], a ; 18a + ld a, [rDIV] ; 18c + ld b, a ; 18e + ld a, [hRandomSub] ; 18f + sbc b ; 191 + ld [hRandomSub], a ; 192 + ld a, [hROMBank] ; 194 + ld [$d155], a ; 196 + ld a, [hSCX] ; 199 + ld [rSCX], a ; 19b + ld a, [hSCY] ; 19d + ld [rSCY], a ; 19f + ld a, [hWY] ; 1a1 + ld [rWY], a ; 1a3 + ld a, [hWX] ; 1a5 + ld [rWX], a ; 1a7 + call Function1458 ; 1a9 + jr c, Function1c2 ; 1ac + call Functionbdf ; 1ae + jr c, Function1c2 ; 1b1 + call Function14bb ; 1b3 + call Function15d0 ; 1b6 + call Function1579 ; 1b9 + call Function162b ; 1bc + call Function1642 ; 1bf +Function1c2:: + ld a, [hBGMapUpdate] ; 1c2 + and a ; 1c4 + jr nz, Function1ca ; 1c5 + call hPushOAM ; 1c7 +Function1ca:: + xor a ; 1ca + ld [$ceea], a ; 1cb + ld a, [$cee8] ; 1ce + and a ; 1d1 + jr z, Function1d8 ; 1d2 + dec a ; 1d4 + ld [$cee8], a ; 1d5 +Function1d8:: + ld a, [$cee9] ; 1d8 + and a ; 1db + jr z, Function1e2 ; 1dc + dec a ; 1de + ld [$cee9], a ; 1df +Function1e2:: + call Function8e6 ; 1e2 + ld a, $3a ; 1e5 + rst Bankswitch ; 1e7 + call $405c ; 1e8 + ld a, [$d155] ; 1eb + rst Bankswitch ; 1ee + ld a, [$ff9a] ; 1ef + ld [$ffe5], a ; 1f1 + ret ; 1f3 +; 1f4 + +Function1f4:: + ld a, [hROMBank] ; 1f4 + ld [$d155], a ; 1f6 + ld a, [hSCX] ; 1f9 + ld [rSCX], a ; 1fb + ld a, [hSCY] ; 1fd + ld [rSCY], a ; 1ff + call Function23e ; 201 + jr c, Function20f ; 204 + call Function14bb ; 206 + call Function15d0 ; 209 + call hPushOAM ; 20c +Function20f:: + ld a, [$ffc8] ; 20f + or a ; 211 + jr z, Function219 ; 212 + ld c, a ; 214 + ld a, [$c700] ; 215 + ld [$ff00+c], a ; 218 +Function219:: + xor a ; 219 + ld [$ceea], a ; 21a + ld a, [rIF] ; 21d + ld b, a ; 21f + xor a ; 220 + ld [rIF], a ; 221 + ld a, $2 ; 223 + ld [rIE], a ; 225 + ld a, b ; 227 + and $8 ; 228 + or $2 ; 22a + ld [rIF], a ; 22c + ei ; 22e + ld a, $3a ; 22f + rst Bankswitch ; 231 + call $405c ; 232 + ld a, [$d155] ; 235 + rst Bankswitch ; 238 + ld a, $1f ; 239 + ld [rIE], a ; 23b + ret ; 23d +; 23e + +Function23e:: + ld a, [$ffe8] ; 23e + and a ; 240 + jp nz, $be3 ; 241 + ld a, [$cf43] ; 244 + ld [$ff47], a ; 247 + ld a, [$cf44] ; 249 + ld [$ff48], a ; 24c + ld a, [$cf45] ; 24e + ld [$ff49], a ; 251 + and a ; 253 + ret ; 254 +; 255 + +Function255:: + ld a, [hROMBank] ; 255 + ld [$d155], a ; 257 + call Function14bb ; 25a + call Function15d0 ; 25d + call hPushOAM ; 260 + call Function8e6 ; 263 + xor a ; 266 + ld [$ceea], a ; 267 + call Function1ebf ; 26a + ld a, $3a ; 26d + rst Bankswitch ; 26f + call $405c ; 270 + ld a, [$d155] ; 273 + rst Bankswitch ; 276 + ret ; 277 +; 278 + +Function278:: + ld a, [hROMBank] ; 278 + ld [$d155], a ; 27a + ld a, [hSCX] ; 27d + ld [rSCX], a ; 27f + call Functionbdf ; 281 + jr c, Function28c ; 284 + call Function14bb ; 286 + call Function15d0 ; 289 +Function28c:: + xor a ; 28c + ld [$ceea], a ; 28d + call Function8e6 ; 290 + xor a ; 293 + ld [rIF], a ; 294 + ld a, $2 ; 296 + ld [rIE], a ; 298 + ld [rIF], a ; 29a + ei ; 29c + ld a, $3a ; 29d + rst Bankswitch ; 29f + call $405c ; 2a0 + ld a, [$d155] ; 2a3 + rst Bankswitch ; 2a6 + di ; 2a7 + xor a ; 2a8 + ld [rIF], a ; 2a9 + ld a, $1f ; 2ab + ld [rIE], a ; 2ad + ret ; 2af +; 2b0 + +Function2b0:: + ld a, [hROMBank] ; 2b0 + ld [$d155], a ; 2b2 + ld a, $3a ; 2b5 + rst Bankswitch ; 2b7 + call $405c ; 2b8 + ld a, [$d155] ; 2bb + rst Bankswitch ; 2be + xor a ; 2bf + ld [$ceea], a ; 2c0 + ret ; 2c3 +; 2c4 + +Function2c4:: + ld a, [hVBlankCounter] ; 2c4 + inc a ; 2c6 + ld [hVBlankCounter], a ; 2c7 + ld a, [rDIV] ; 2c9 + ld b, a ; 2cb + ld a, [hRandomAdd] ; 2cc + adc b ; 2ce + ld [hRandomAdd], a ; 2cf + ld a, [rDIV] ; 2d1 + ld b, a ; 2d3 + ld a, [hRandomSub] ; 2d4 + sbc b ; 2d6 + ld [hRandomSub], a ; 2d7 + call Function8e6 ; 2d9 + ld a, [hROMBank] ; 2dc + ld [$d155], a ; 2de + ld a, [hSCX] ; 2e1 + ld [rSCX], a ; 2e3 + ld a, [hSCY] ; 2e5 + ld [rSCY], a ; 2e7 + ld a, [hWY] ; 2e9 + ld [rWY], a ; 2eb + ld a, [hWX] ; 2ed + ld [rWX], a ; 2ef + call Function14bb ; 2f1 + call Function1458 ; 2f4 + call Function15d0 ; 2f7 + call Function1579 ; 2fa + call Function162b ; 2fd + call hPushOAM ; 300 + xor a ; 303 + ld [$ceea], a ; 304 + ld a, [$cee9] ; 307 + and a ; 30a + jr z, Function311 ; 30b + dec a ; 30d + ld [$cee9], a ; 30e +Function311:: + xor a ; 311 + ld [rIF], a ; 312 + ld a, $2 ; 314 + ld [rIE], a ; 316 + ld [rIF], a ; 318 + ei ; 31a + ld a, $3a ; 31b + rst Bankswitch ; 31d + call $405c ; 31e + ld a, [$d155] ; 321 + rst Bankswitch ; 324 + di ; 325 + xor a ; 326 + ld [rIF], a ; 327 + ld a, $1f ; 329 + ld [rIE], a ; 32b + ret ; 32d +; 32e diff --git a/home_gold.asm b/home_gold.asm new file mode 100644 index 00000000..565c6b6a --- /dev/null +++ b/home_gold.asm @@ -0,0 +1,90 @@ +; rst vectors +INCLUDE "constants.asm" + +SECTION "rst0",ROM0[0] + di + jp Start + +SECTION "rst8",ROM0[FarCall] + jp FarCall_hl + +SECTION "rst10",ROM0[Bankswitch] + ld [hROMBank], a + ld [MBC3RomBank], a + ret + +SECTION "rst18",ROM0[$18] + rst $38 + +SECTION "rst20",ROM0[$20] + rst $38 + +SECTION "rst28",ROM0[JumpTable] + push de + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + jp [hl] + +; SECTION "rst30",ROM0[$30] +; rst30 is midst rst28 + +SECTION "rst38",ROM0[$38] + rst $38 + + +SECTION "interrupts", HOME[$40] + dr $40, $100, 0 + +SECTION "start", HOME[$100] +Start:: + nop + jp Start_ + +SECTION "bank0", HOME[$150] +INCLUDE "home/vblank.asm" +INCLUDE "home/delay.asm" + +Function343:: + dr $343, $5c6, 0 + +Start_:: + dr $5c6, $8e6, 0 + +Function8e6:: + dr $8e6, $bdf, 0 + +Functionbdf:: + dr $bdf, $1458, 0 + +Function1458:: + dr $1458, $14bb, 0 + +Function14bb:: + dr $14bb, $1579, 0 + +Function1579:: + dr $1579, $15d0, 0 + +Function15d0:: + dr $15d0, $162b, 0 + +Function162b:: + dr $162b, $1642, 0 + +Function1642:: + dr $1642, $1ebf, 0 + +Function1ebf:: + dr $1ebf, $1efa, 0 + +Function1efa:: + dr $1efa, $2e27, 0 + +FarCall_hl:: + dr $2e27, $3fee, 0 @@ -16,7 +16,7 @@ hMinutes EQU $ff96 hSeconds EQU $ff98 -hVBlankCounter EQU $ff9b +hVBlankCounter EQU $ff9d hROMBank EQU $ff9f hVBlank EQU $ff9e @@ -86,10 +86,10 @@ hFFCC EQU $ffcc hSerialSend EQU $ffcd hSerialReceive EQU $ffce -hSCX EQU $ffcf -hSCY EQU $ffd0 -hWX EQU $ffd1 -hWY EQU $ffd2 +hSCX EQU $ffd1 +hSCY EQU $ffd2 +hWX EQU $ffd3 +hWY EQU $ffd4 hTilesPerCycle EQU $ffd3 hBGMapMode EQU $ffd4 hBGMapThird EQU $ffd5 @@ -98,7 +98,7 @@ hBGMapAddress EQU $ffd6 hOAMUpdate EQU $ffd8 hSPBuffer EQU $ffd9 -hBGMapUpdate EQU $ffdb +hBGMapUpdate EQU $ffda hFFDC EQU $ffdc hMapAnims EQU $ffde @@ -106,9 +106,11 @@ hTileAnimFrame EQU $ffdf hLastTalked EQU $ffe0 -hRandom EQU $ffe1 -hRandomAdd EQU $ffe1 -hRandomSub EQU $ffe2 +hRandom EQU $ffe3 +hRandomAdd EQU $ffe3 +hRandomSub EQU $ffe4 + + hSecondsBackup EQU $ffe3 hBattleTurn EQU $ffe4 ; Which trainers turn is it? 0: Player, 1: Opponent Trainer hCGBPalUpdate EQU $ffe5 @@ -16,6 +16,26 @@ INCLUDE "macros/mobile.asm" INCLUDE "macros/trainer.asm" INCLUDE "macros/trade_anim.asm" +dr: MACRO +IF \3 == 1 +INCBIN "baserom-silver.gbc", \1, \2 - \1 +ELSE +INCBIN "baserom-gold.gbc", \1, \2 - \1 +ENDC +ENDM + +callba_hc: macro + ld a, \1 + ld hl, \2 + rst FarCall +endm + +callab_hc: macro + ld hl, \2 + ld a, \1 + rst FarCall +endm + RGB: MACRO dw ((\3) << 10) + ((\2) << 5) + (\1) ENDM @@ -270,7 +290,3 @@ jumptable: MACRO jp [hl] endm -dr: MACRO ; Needed until fully disassembled -INCBIN "baserom.gbc", \1, \2 - \1 -ENDM - diff --git a/main.asm b/main.asm deleted file mode 100644 index 871bbd22..00000000 --- a/main.asm +++ /dev/null @@ -1,383 +0,0 @@ -SECTION "bank0", HOME -INCBIN "baserom.gbc", $0, $4000 - -SECTION "bank1", DATA, BANK[$1] -INCBIN "baserom.gbc", $4000, $4000 - -SECTION "bank2", DATA, BANK[$2] -INCBIN "baserom.gbc", $8000, $4000 - -SECTION "bank3", DATA, BANK[$3] -INCBIN "baserom.gbc", $c000, $4000 - -SECTION "bank4", DATA, BANK[$4] -INCBIN "baserom.gbc", $10000, $4000 - -SECTION "bank5", DATA, BANK[$5] -INCBIN "baserom.gbc", $14000, $4000 - -SECTION "bank6", DATA, BANK[$6] -INCBIN "baserom.gbc", $18000, $4000 - -SECTION "bank7", DATA, BANK[$7] -INCBIN "baserom.gbc", $1c000, $4000 - -SECTION "bank8", DATA, BANK[$8] -INCBIN "baserom.gbc", $20000, $4000 - -SECTION "bank9", DATA, BANK[$9] -INCBIN "baserom.gbc", $24000, $4000 - -SECTION "banka", DATA, BANK[$a] -INCBIN "baserom.gbc", $28000, $4000 - -SECTION "bankb", DATA, BANK[$b] -INCBIN "baserom.gbc", $2c000, $4000 - -SECTION "bankc", DATA, BANK[$c] -INCBIN "baserom.gbc", $30000, $4000 - -SECTION "bankd", DATA, BANK[$d] -INCBIN "baserom.gbc", $34000, $4000 - -SECTION "banke", DATA, BANK[$e] -INCBIN "baserom.gbc", $38000, $4000 - -SECTION "bankf", DATA, BANK[$f] -INCBIN "baserom.gbc", $3c000, $4000 - -SECTION "bank10", DATA, BANK[$10] -INCBIN "baserom.gbc", $40000, $4000 - -SECTION "bank11", DATA, BANK[$11] -INCBIN "baserom.gbc", $44000, $4000 - -SECTION "bank12", DATA, BANK[$12] -INCBIN "baserom.gbc", $48000, $4000 - -SECTION "bank13", DATA, BANK[$13] -INCBIN "baserom.gbc", $4c000, $4000 - -SECTION "bank14", DATA, BANK[$14] -INCBIN "baserom.gbc", $50000, $4000 - -SECTION "bank15", DATA, BANK[$15] -INCBIN "baserom.gbc", $54000, $4000 - -SECTION "bank16", DATA, BANK[$16] -INCBIN "baserom.gbc", $58000, $4000 - -SECTION "bank17", DATA, BANK[$17] -INCBIN "baserom.gbc", $5c000, $4000 - -SECTION "bank18", DATA, BANK[$18] -INCBIN "baserom.gbc", $60000, $4000 - -SECTION "bank19", DATA, BANK[$19] -INCBIN "baserom.gbc", $64000, $4000 - -SECTION "bank1a", DATA, BANK[$1a] -INCBIN "baserom.gbc", $68000, $4000 - -SECTION "bank1b", DATA, BANK[$1b] -INCBIN "baserom.gbc", $6c000, $4000 - -SECTION "bank1c", DATA, BANK[$1c] -INCBIN "baserom.gbc", $70000, $4000 - -SECTION "bank1d", DATA, BANK[$1d] -INCBIN "baserom.gbc", $74000, $4000 - -SECTION "bank1e", DATA, BANK[$1e] -INCBIN "baserom.gbc", $78000, $4000 - -SECTION "bank1f", DATA, BANK[$1f] -INCBIN "baserom.gbc", $7c000, $4000 - -SECTION "bank20", DATA, BANK[$20] -INCBIN "baserom.gbc", $80000, $4000 - -SECTION "bank21", DATA, BANK[$21] -INCBIN "baserom.gbc", $84000, $4000 - -SECTION "bank22", DATA, BANK[$22] -INCBIN "baserom.gbc", $88000, $4000 - -SECTION "bank23", DATA, BANK[$23] -INCBIN "baserom.gbc", $8c000, $4000 - -SECTION "bank24", DATA, BANK[$24] -INCBIN "baserom.gbc", $90000, $4000 - -SECTION "bank25", DATA, BANK[$25] -INCBIN "baserom.gbc", $94000, $4000 - -SECTION "bank26", DATA, BANK[$26] -INCBIN "baserom.gbc", $98000, $4000 - -SECTION "bank27", DATA, BANK[$27] -INCBIN "baserom.gbc", $9c000, $4000 - -SECTION "bank28", DATA, BANK[$28] -INCBIN "baserom.gbc", $a0000, $4000 - -SECTION "bank29", DATA, BANK[$29] -INCBIN "baserom.gbc", $a4000, $4000 - -SECTION "bank2a", DATA, BANK[$2a] -INCBIN "baserom.gbc", $a8000, $4000 - -SECTION "bank2b", DATA, BANK[$2b] -INCBIN "baserom.gbc", $ac000, $4000 - -SECTION "bank2c", DATA, BANK[$2c] -INCBIN "baserom.gbc", $b0000, $4000 - -SECTION "bank2d", DATA, BANK[$2d] -INCBIN "baserom.gbc", $b4000, $4000 - -SECTION "bank2e", DATA, BANK[$2e] -INCBIN "baserom.gbc", $b8000, $4000 - -SECTION "bank2f", DATA, BANK[$2f] -INCBIN "baserom.gbc", $bc000, $4000 - -SECTION "bank30", DATA, BANK[$30] -INCBIN "baserom.gbc", $c0000, $4000 - -SECTION "bank31", DATA, BANK[$31] -INCBIN "baserom.gbc", $c4000, $4000 - -SECTION "bank32", DATA, BANK[$32] -INCBIN "baserom.gbc", $c8000, $4000 - -SECTION "bank33", DATA, BANK[$33] -INCBIN "baserom.gbc", $cc000, $4000 - -SECTION "bank34", DATA, BANK[$34] -INCBIN "baserom.gbc", $d0000, $4000 - -SECTION "bank35", DATA, BANK[$35] -INCBIN "baserom.gbc", $d4000, $4000 - -SECTION "bank36", DATA, BANK[$36] -INCBIN "baserom.gbc", $d8000, $4000 - -SECTION "bank37", DATA, BANK[$37] -INCBIN "baserom.gbc", $dc000, $4000 - -SECTION "bank38", DATA, BANK[$38] -INCBIN "baserom.gbc", $e0000, $4000 - -SECTION "bank39", DATA, BANK[$39] -INCBIN "baserom.gbc", $e4000, $4000 - -SECTION "bank3a", DATA, BANK[$3a] -INCBIN "baserom.gbc", $e8000, $4000 - -SECTION "bank3b", DATA, BANK[$3b] -INCBIN "baserom.gbc", $ec000, $4000 - -SECTION "bank3c", DATA, BANK[$3c] -INCBIN "baserom.gbc", $f0000, $4000 - -SECTION "bank3d", DATA, BANK[$3d] -INCBIN "baserom.gbc", $f4000, $4000 - -SECTION "bank3e", DATA, BANK[$3e] -INCBIN "baserom.gbc", $f8000, $4000 - -SECTION "bank3f", DATA, BANK[$3f] -INCBIN "baserom.gbc", $fc000, $4000 - -SECTION "bank40", DATA, BANK[$40] -INCBIN "baserom.gbc", $100000, $4000 - -SECTION "bank41", DATA, BANK[$41] -INCBIN "baserom.gbc", $104000, $4000 - -SECTION "bank42", DATA, BANK[$42] -INCBIN "baserom.gbc", $108000, $4000 - -SECTION "bank43", DATA, BANK[$43] -INCBIN "baserom.gbc", $10c000, $4000 - -SECTION "bank44", DATA, BANK[$44] -INCBIN "baserom.gbc", $110000, $4000 - -SECTION "bank45", DATA, BANK[$45] -INCBIN "baserom.gbc", $114000, $4000 - -SECTION "bank46", DATA, BANK[$46] -INCBIN "baserom.gbc", $118000, $4000 - -SECTION "bank47", DATA, BANK[$47] -INCBIN "baserom.gbc", $11c000, $4000 - -SECTION "bank48", DATA, BANK[$48] -INCBIN "baserom.gbc", $120000, $4000 - -SECTION "bank49", DATA, BANK[$49] -INCBIN "baserom.gbc", $124000, $4000 - -SECTION "bank4a", DATA, BANK[$4a] -INCBIN "baserom.gbc", $128000, $4000 - -SECTION "bank4b", DATA, BANK[$4b] -INCBIN "baserom.gbc", $12c000, $4000 - -SECTION "bank4c", DATA, BANK[$4c] -INCBIN "baserom.gbc", $130000, $4000 - -SECTION "bank4d", DATA, BANK[$4d] -INCBIN "baserom.gbc", $134000, $4000 - -SECTION "bank4e", DATA, BANK[$4e] -INCBIN "baserom.gbc", $138000, $4000 - -SECTION "bank4f", DATA, BANK[$4f] -INCBIN "baserom.gbc", $13c000, $4000 - -SECTION "bank50", DATA, BANK[$50] -INCBIN "baserom.gbc", $140000, $4000 - -SECTION "bank51", DATA, BANK[$51] -INCBIN "baserom.gbc", $144000, $4000 - -SECTION "bank52", DATA, BANK[$52] -INCBIN "baserom.gbc", $148000, $4000 - -SECTION "bank53", DATA, BANK[$53] -INCBIN "baserom.gbc", $14c000, $4000 - -SECTION "bank54", DATA, BANK[$54] -INCBIN "baserom.gbc", $150000, $4000 - -SECTION "bank55", DATA, BANK[$55] -INCBIN "baserom.gbc", $154000, $4000 - -SECTION "bank56", DATA, BANK[$56] -INCBIN "baserom.gbc", $158000, $4000 - -SECTION "bank57", DATA, BANK[$57] -INCBIN "baserom.gbc", $15c000, $4000 - -SECTION "bank58", DATA, BANK[$58] -INCBIN "baserom.gbc", $160000, $4000 - -SECTION "bank59", DATA, BANK[$59] -INCBIN "baserom.gbc", $164000, $4000 - -SECTION "bank5a", DATA, BANK[$5a] -INCBIN "baserom.gbc", $168000, $4000 - -SECTION "bank5b", DATA, BANK[$5b] -INCBIN "baserom.gbc", $16c000, $4000 - -SECTION "bank5c", DATA, BANK[$5c] -INCBIN "baserom.gbc", $170000, $4000 - -SECTION "bank5d", DATA, BANK[$5d] -INCBIN "baserom.gbc", $174000, $4000 - -SECTION "bank5e", DATA, BANK[$5e] -INCBIN "baserom.gbc", $178000, $4000 - -SECTION "bank5f", DATA, BANK[$5f] -INCBIN "baserom.gbc", $17c000, $4000 - -SECTION "bank60", DATA, BANK[$60] -INCBIN "baserom.gbc", $180000, $4000 - -SECTION "bank61", DATA, BANK[$61] -INCBIN "baserom.gbc", $184000, $4000 - -SECTION "bank62", DATA, BANK[$62] -INCBIN "baserom.gbc", $188000, $4000 - -SECTION "bank63", DATA, BANK[$63] -INCBIN "baserom.gbc", $18c000, $4000 - -SECTION "bank64", DATA, BANK[$64] -INCBIN "baserom.gbc", $190000, $4000 - -SECTION "bank65", DATA, BANK[$65] -INCBIN "baserom.gbc", $194000, $4000 - -SECTION "bank66", DATA, BANK[$66] -INCBIN "baserom.gbc", $198000, $4000 - -SECTION "bank67", DATA, BANK[$67] -INCBIN "baserom.gbc", $19c000, $4000 - -SECTION "bank68", DATA, BANK[$68] -INCBIN "baserom.gbc", $1a0000, $4000 - -SECTION "bank69", DATA, BANK[$69] -INCBIN "baserom.gbc", $1a4000, $4000 - -SECTION "bank6a", DATA, BANK[$6a] -INCBIN "baserom.gbc", $1a8000, $4000 - -SECTION "bank6b", DATA, BANK[$6b] -INCBIN "baserom.gbc", $1ac000, $4000 - -SECTION "bank6c", DATA, BANK[$6c] -INCBIN "baserom.gbc", $1b0000, $4000 - -SECTION "bank6d", DATA, BANK[$6d] -INCBIN "baserom.gbc", $1b4000, $4000 - -SECTION "bank6e", DATA, BANK[$6e] -INCBIN "baserom.gbc", $1b8000, $4000 - -SECTION "bank6f", DATA, BANK[$6f] -INCBIN "baserom.gbc", $1bc000, $4000 - -SECTION "bank70", DATA, BANK[$70] -INCBIN "baserom.gbc", $1c0000, $4000 - -SECTION "bank71", DATA, BANK[$71] -INCBIN "baserom.gbc", $1c4000, $4000 - -SECTION "bank72", DATA, BANK[$72] -INCBIN "baserom.gbc", $1c8000, $4000 - -SECTION "bank73", DATA, BANK[$73] -INCBIN "baserom.gbc", $1cc000, $4000 - -SECTION "bank74", DATA, BANK[$74] -INCBIN "baserom.gbc", $1d0000, $4000 - -SECTION "bank75", DATA, BANK[$75] -INCBIN "baserom.gbc", $1d4000, $4000 - -SECTION "bank76", DATA, BANK[$76] -INCBIN "baserom.gbc", $1d8000, $4000 - -SECTION "bank77", DATA, BANK[$77] -INCBIN "baserom.gbc", $1dc000, $4000 - -SECTION "bank78", DATA, BANK[$78] -INCBIN "baserom.gbc", $1e0000, $4000 - -SECTION "bank79", DATA, BANK[$79] -INCBIN "baserom.gbc", $1e4000, $4000 - -SECTION "bank7a", DATA, BANK[$7a] -INCBIN "baserom.gbc", $1e8000, $4000 - -SECTION "bank7b", DATA, BANK[$7b] -INCBIN "baserom.gbc", $1ec000, $4000 - -SECTION "bank7c", DATA, BANK[$7c] -INCBIN "baserom.gbc", $1f0000, $4000 - -SECTION "bank7d", DATA, BANK[$7d] -INCBIN "baserom.gbc", $1f4000, $4000 - -SECTION "bank7e", DATA, BANK[$7e] -INCBIN "baserom.gbc", $1f8000, $4000 - -SECTION "bank7f", DATA, BANK[$7f] -INCBIN "baserom.gbc", $1fc000, $4000 diff --git a/roms.md5 b/roms.md5 new file mode 100644 index 00000000..594e3140 --- /dev/null +++ b/roms.md5 @@ -0,0 +1,2 @@ +a6924ce1f9ad2228e1c6580779b23878 *pokegold.gbc +2ac166169354e84d0e2d7cf4cb40b312 *pokesilver.gbc diff --git a/rst.asm b/rst.asm deleted file mode 100755 index c54dc83e..00000000 --- a/rst.asm +++ /dev/null @@ -1,37 +0,0 @@ -; rst vectors - -SECTION "rst0",ROM0[0] - di - jp Start - -SECTION "rst8",ROM0[FarCall] - jp FarCall_hl - -SECTION "rst10",ROM0[Bankswitch] - ld [hROMBank], a - ld [MBC3RomBank], a - ret - -SECTION "rst18",ROM0[$18] - rst $38 - -SECTION "rst20",ROM0[$20] - rst $38 - -SECTION "rst28",ROM0[JumpTable] - push de - ld e, a - ld d, 0 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - pop de - jp [hl] - -; SECTION "rst30",ROM0[$30] -; rst30 is midst rst28 - -SECTION "rst38",ROM0[$38] - rst $38 diff --git a/silver.asm b/silver.asm new file mode 100644 index 00000000..bed6b6fe --- /dev/null +++ b/silver.asm @@ -0,0 +1,388 @@ +INCLUDE "constants.asm" + +SECTION "preheader", HOME + dr $0, $104, 1 + +SECTION "bank0", HOME[$150] + dr $150, $4000, 1 + +SECTION "bank1", DATA, BANK[$1] + dr $4000, $8000, 1 + +SECTION "bank2", DATA, BANK[$2] + dr $8000, $c000, 1 + +SECTION "bank3", DATA, BANK[$3] + dr $c000, $10000, 1 + +SECTION "bank4", DATA, BANK[$4] + dr $10000, $14000, 1 + +SECTION "bank5", DATA, BANK[$5] + dr $14000, $18000, 1 + +SECTION "bank6", DATA, BANK[$6] + dr $18000, $1c000, 1 + +SECTION "bank7", DATA, BANK[$7] + dr $1c000, $20000, 1 + +SECTION "bank8", DATA, BANK[$8] + dr $20000, $24000, 1 + +SECTION "bank9", DATA, BANK[$9] + dr $24000, $28000, 1 + +SECTION "banka", DATA, BANK[$a] + dr $28000, $2c000, 1 + +SECTION "bankb", DATA, BANK[$b] + dr $2c000, $30000, 1 + +SECTION "bankc", DATA, BANK[$c] + dr $30000, $34000, 1 + +SECTION "bankd", DATA, BANK[$d] + dr $34000, $38000, 1 + +SECTION "banke", DATA, BANK[$e] + dr $38000, $3c000, 1 + +SECTION "bankf", DATA, BANK[$f] + dr $3c000, $40000, 1 + +SECTION "bank10", DATA, BANK[$10] + dr $40000, $44000, 1 + +SECTION "bank11", DATA, BANK[$11] + dr $44000, $48000, 1 + +SECTION "bank12", DATA, BANK[$12] + dr $48000, $4c000, 1 + +SECTION "bank13", DATA, BANK[$13] + dr $4c000, $50000, 1 + +SECTION "bank14", DATA, BANK[$14] + dr $50000, $54000, 1 + +SECTION "bank15", DATA, BANK[$15] + dr $54000, $58000, 1 + +SECTION "bank16", DATA, BANK[$16] + dr $58000, $5c000, 1 + +SECTION "bank17", DATA, BANK[$17] + dr $5c000, $60000, 1 + +SECTION "bank18", DATA, BANK[$18] + dr $60000, $64000, 1 + +SECTION "bank19", DATA, BANK[$19] + dr $64000, $68000, 1 + +SECTION "bank1a", DATA, BANK[$1a] + dr $68000, $6c000, 1 + +SECTION "bank1b", DATA, BANK[$1b] + dr $6c000, $70000, 1 + +SECTION "bank1c", DATA, BANK[$1c] + dr $70000, $74000, 1 + +SECTION "bank1d", DATA, BANK[$1d] + dr $74000, $78000, 1 + +SECTION "bank1e", DATA, BANK[$1e] + dr $78000, $7c000, 1 + +SECTION "bank1f", DATA, BANK[$1f] + dr $7c000, $80000, 1 + +SECTION "bank20", DATA, BANK[$20] + dr $80000, $84000, 1 + +SECTION "bank21", DATA, BANK[$21] + dr $84000, $88000, 1 + +SECTION "bank22", DATA, BANK[$22] + dr $88000, $8c000, 1 + +SECTION "bank23", DATA, BANK[$23] + dr $8c000, $90000, 1 + +SECTION "bank24", DATA, BANK[$24] + dr $90000, $94000, 1 + +SECTION "bank25", DATA, BANK[$25] + dr $94000, $98000, 1 + +SECTION "bank26", DATA, BANK[$26] + dr $98000, $9c000, 1 + +SECTION "bank27", DATA, BANK[$27] + dr $9c000, $a0000, 1 + +SECTION "bank28", DATA, BANK[$28] + dr $a0000, $a4000, 1 + +SECTION "bank29", DATA, BANK[$29] + dr $a4000, $a8000, 1 + +SECTION "bank2a", DATA, BANK[$2a] + dr $a8000, $ac000, 1 + +SECTION "bank2b", DATA, BANK[$2b] + dr $ac000, $b0000, 1 + +SECTION "bank2c", DATA, BANK[$2c] + dr $b0000, $b4000, 1 + +SECTION "bank2d", DATA, BANK[$2d] + dr $b4000, $b8000, 1 + +SECTION "bank2e", DATA, BANK[$2e] + dr $b8000, $bc000, 1 + +SECTION "bank2f", DATA, BANK[$2f] + dr $bc000, $c0000, 1 + +SECTION "bank30", DATA, BANK[$30] + dr $c0000, $c4000, 1 + +SECTION "bank31", DATA, BANK[$31] + dr $c4000, $c8000, 1 + +SECTION "bank32", DATA, BANK[$32] + dr $c8000, $cc000, 1 + +SECTION "bank33", DATA, BANK[$33] + dr $cc000, $d0000, 1 + +SECTION "bank34", DATA, BANK[$34] + dr $d0000, $d4000, 1 + +SECTION "bank35", DATA, BANK[$35] + dr $d4000, $d8000, 1 + +SECTION "bank36", DATA, BANK[$36] + dr $d8000, $dc000, 1 + +SECTION "bank37", DATA, BANK[$37] + dr $dc000, $e0000, 1 + +SECTION "bank38", DATA, BANK[$38] + dr $e0000, $e4000, 1 + +SECTION "bank39", DATA, BANK[$39] + dr $e4000, $e8000, 1 + +SECTION "bank3a", DATA, BANK[$3a] + dr $e8000, $ec000, 1 + +SECTION "bank3b", DATA, BANK[$3b] + dr $ec000, $f0000, 1 + +SECTION "bank3c", DATA, BANK[$3c] + dr $f0000, $f4000, 1 + +SECTION "bank3d", DATA, BANK[$3d] + dr $f4000, $f8000, 1 + +SECTION "bank3e", DATA, BANK[$3e] + dr $f8000, $fc000, 1 + +SECTION "bank3f", DATA, BANK[$3f] + dr $fc000, $100000, 1 + +SECTION "bank40", DATA, BANK[$40] + dr $100000, $104000, 1 + +SECTION "bank41", DATA, BANK[$41] + dr $104000, $108000, 1 + +SECTION "bank42", DATA, BANK[$42] + dr $108000, $10c000, 1 + +SECTION "bank43", DATA, BANK[$43] + dr $10c000, $110000, 1 + +SECTION "bank44", DATA, BANK[$44] + dr $110000, $114000, 1 + +SECTION "bank45", DATA, BANK[$45] + dr $114000, $118000, 1 + +SECTION "bank46", DATA, BANK[$46] + dr $118000, $11c000, 1 + +SECTION "bank47", DATA, BANK[$47] + dr $11c000, $120000, 1 + +SECTION "bank48", DATA, BANK[$48] + dr $120000, $124000, 1 + +SECTION "bank49", DATA, BANK[$49] + dr $124000, $128000, 1 + +SECTION "bank4a", DATA, BANK[$4a] + dr $128000, $12c000, 1 + +SECTION "bank4b", DATA, BANK[$4b] + dr $12c000, $130000, 1 + +SECTION "bank4c", DATA, BANK[$4c] + dr $130000, $134000, 1 + +SECTION "bank4d", DATA, BANK[$4d] + dr $134000, $138000, 1 + +SECTION "bank4e", DATA, BANK[$4e] + dr $138000, $13c000, 1 + +SECTION "bank4f", DATA, BANK[$4f] + dr $13c000, $140000, 1 + +SECTION "bank50", DATA, BANK[$50] + dr $140000, $144000, 1 + +SECTION "bank51", DATA, BANK[$51] + dr $144000, $148000, 1 + +SECTION "bank52", DATA, BANK[$52] + dr $148000, $14c000, 1 + +SECTION "bank53", DATA, BANK[$53] + dr $14c000, $150000, 1 + +SECTION "bank54", DATA, BANK[$54] + dr $150000, $154000, 1 + +SECTION "bank55", DATA, BANK[$55] + dr $154000, $158000, 1 + +SECTION "bank56", DATA, BANK[$56] + dr $158000, $15c000, 1 + +SECTION "bank57", DATA, BANK[$57] + dr $15c000, $160000, 1 + +SECTION "bank58", DATA, BANK[$58] + dr $160000, $164000, 1 + +SECTION "bank59", DATA, BANK[$59] + dr $164000, $168000, 1 + +SECTION "bank5a", DATA, BANK[$5a] + dr $168000, $16c000, 1 + +SECTION "bank5b", DATA, BANK[$5b] + dr $16c000, $170000, 1 + +SECTION "bank5c", DATA, BANK[$5c] + dr $170000, $174000, 1 + +SECTION "bank5d", DATA, BANK[$5d] + dr $174000, $178000, 1 + +SECTION "bank5e", DATA, BANK[$5e] + dr $178000, $17c000, 1 + +SECTION "bank5f", DATA, BANK[$5f] + dr $17c000, $180000, 1 + +SECTION "bank60", DATA, BANK[$60] + dr $180000, $184000, 1 + +SECTION "bank61", DATA, BANK[$61] + dr $184000, $188000, 1 + +SECTION "bank62", DATA, BANK[$62] + dr $188000, $18c000, 1 + +SECTION "bank63", DATA, BANK[$63] + dr $18c000, $190000, 1 + +SECTION "bank64", DATA, BANK[$64] + dr $190000, $194000, 1 + +SECTION "bank65", DATA, BANK[$65] + dr $194000, $198000, 1 + +SECTION "bank66", DATA, BANK[$66] + dr $198000, $19c000, 1 + +SECTION "bank67", DATA, BANK[$67] + dr $19c000, $1a0000, 1 + +SECTION "bank68", DATA, BANK[$68] + dr $1a0000, $1a4000, 1 + +SECTION "bank69", DATA, BANK[$69] + dr $1a4000, $1a8000, 1 + +SECTION "bank6a", DATA, BANK[$6a] + dr $1a8000, $1ac000, 1 + +SECTION "bank6b", DATA, BANK[$6b] + dr $1ac000, $1b0000, 1 + +SECTION "bank6c", DATA, BANK[$6c] + dr $1b0000, $1b4000, 1 + +SECTION "bank6d", DATA, BANK[$6d] + dr $1b4000, $1b8000, 1 + +SECTION "bank6e", DATA, BANK[$6e] + dr $1b8000, $1bc000, 1 + +SECTION "bank6f", DATA, BANK[$6f] + dr $1bc000, $1c0000, 1 + +SECTION "bank70", DATA, BANK[$70] + dr $1c0000, $1c4000, 1 + +SECTION "bank71", DATA, BANK[$71] + dr $1c4000, $1c8000, 1 + +SECTION "bank72", DATA, BANK[$72] + dr $1c8000, $1cc000, 1 + +SECTION "bank73", DATA, BANK[$73] + dr $1cc000, $1d0000, 1 + +SECTION "bank74", DATA, BANK[$74] + dr $1d0000, $1d4000, 1 + +SECTION "bank75", DATA, BANK[$75] + dr $1d4000, $1d8000, 1 + +SECTION "bank76", DATA, BANK[$76] + dr $1d8000, $1dc000, 1 + +SECTION "bank77", DATA, BANK[$77] + dr $1dc000, $1e0000, 1 + +SECTION "bank78", DATA, BANK[$78] + dr $1e0000, $1e4000, 1 + +SECTION "bank79", DATA, BANK[$79] + dr $1e4000, $1e8000, 1 + +SECTION "bank7a", DATA, BANK[$7a] + dr $1e8000, $1ec000, 1 + +SECTION "bank7b", DATA, BANK[$7b] + dr $1ec000, $1f0000, 1 + +SECTION "bank7c", DATA, BANK[$7c] + dr $1f0000, $1f4000, 1 + +SECTION "bank7d", DATA, BANK[$7d] + dr $1f4000, $1f8000, 1 + +SECTION "bank7e", DATA, BANK[$7e] + dr $1f8000, $1fc000, 1 + +SECTION "bank7f", DATA, BANK[$7f] + dr $1fc000, $200000, 1 |