summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/bank_00.asm131
-rw-r--r--source/bank_01.asm27
-rw-r--r--source/bank_28.asm20
-rw-r--r--source/bank_64.asm14
-rw-r--r--source/bank_65.asm4
-rw-r--r--source/bank_66.asm121
-rw-r--r--source/bank_68.asm121
7 files changed, 405 insertions, 33 deletions
diff --git a/source/bank_00.asm b/source/bank_00.asm
index 9e967ae..21d3160 100644
--- a/source/bank_00.asm
+++ b/source/bank_00.asm
@@ -145,7 +145,7 @@ _start::
ld a, [w_c358]
push af
ld hl, _RAM
- ld bc, $1fff
+ ld bc, $2000 - 1
call clear_mem
pop af
ld [w_c358], a
@@ -487,26 +487,26 @@ function_00_0458::
SECTION "vwf_draw_char", ROM0[$0723]
vwf_char_draw::
ld a, [w_vwf_char_start_x]
- and $07
+ and %00000111
ld c, a
- ld b, $00
+ ld b, 0
ld hl, .pixel_masks_right
add hl, bc
ld a, [hl]
ld [w_c363], a
ld a, [w_vwf_char_end_x]
- and $07
+ and %00000111
ld c, a
- ld b, $00
+ ld b, 0
ld hl, .pixel_masks_left
add hl, bc
ld a, [hl]
ld [w_c364], a
ld a, [w_vwf_char_start_x]
- and $f8
+ and %11111000
ld c, a
ld a, [w_vwf_char_end_x]
- and $f8
+ and %11111000
sub c
srl a
srl a
@@ -522,11 +522,11 @@ vwf_char_draw::
inc a
ld [w_c366], a
ld a, [w_vwf_char_start_x]
- and $07
+ and %00000111
ld c, a
add $38
ld [w_c368], a
- ld b, $00
+ ld b, 0
ld hl, .pixel_masks_right
add hl, bc
ld a, [hl]
@@ -549,7 +549,7 @@ vwf_char_draw::
ld a, [w_vwf_char_start_y]
ld l, a
ld a, [w_vwf_char_start_x]
- and $f8
+ and %11111000
ld h, a
.jump_000_07a9
@@ -586,11 +586,11 @@ vwf_char_draw::
ld b, h
ld c, l
ld a, l
- and $f8
+ and %11111000
srl a
srl a
ld e, a
- ld d, $00
+ ld d, 0
ld a, [w_cd6d]
ld l, a
ld a, [w_cd6e]
@@ -600,17 +600,17 @@ vwf_char_draw::
ld h, [hl]
ld l, a
ld a, b
- and $f8
+ and %11111000
srl a
srl a
ld e, a
- ld d, $00
+ ld d, 0
add hl, de
ld a, [hl+]
ld h, [hl]
ld l, a
ld a, c
- and $07
+ and %00000111
sla a
add l
ld l, a
@@ -652,7 +652,7 @@ vwf_char_draw::
add $0f
ld c, a
ld a, b
- adc $00
+ adc 0
ld b, a
inc de
pop hl
@@ -679,11 +679,11 @@ vwf_char_draw::
ld b, h
ld c, l
ld a, l
- and $f8
+ and %11111000
srl a
srl a
ld e, a
- ld d, $00
+ ld d, 0
ld a, [w_cd6d]
ld l, a
ld a, [w_cd6e]
@@ -693,17 +693,17 @@ vwf_char_draw::
ld h, [hl]
ld l, a
ld a, b
- and $f8
+ and %11111000
srl a
srl a
ld e, a
- ld d, $00
+ ld d, 0
add hl, de
ld a, [hl+]
ld h, [hl]
ld l, a
ld a, c
- and $07
+ and %00000111
sla a
add l
ld l, a
@@ -754,7 +754,7 @@ vwf_char_draw::
add $0f
ld c, a
ld a, b
- adc $00
+ adc 0
ld b, a
pop af
@@ -800,11 +800,11 @@ vwf_char_draw::
ld b, h
ld c, l
ld a, l
- and $f8
+ and %11111000
srl a
srl a
ld e, a
- ld d, $00
+ ld d, 0
ld a, [w_cd6d]
ld l, a
ld a, [w_cd6e]
@@ -814,17 +814,17 @@ vwf_char_draw::
ld h, [hl]
ld l, a
ld a, b
- and $f8
+ and %11111000
srl a
srl a
ld e, a
- ld d, $00
+ ld d, 0
add hl, de
ld a, [hl+]
ld h, [hl]
ld l, a
ld a, c
- and $07
+ and %00000111
sla a
add l
ld l, a
@@ -875,7 +875,7 @@ vwf_char_draw::
add $0f
ld c, a
ld a, b
- adc $00
+ adc 0
ld b, a
pop af
@@ -900,14 +900,14 @@ vwf_char_draw::
inc bc
inc bc
ld a, c
- and $0f
+ and %00001111
jr nz, .jr_000_09bc
ld a, c
add $f0
ld c, a
ld a, b
- adc $00
+ adc 0
ld b, a
.jr_000_09bc
@@ -1150,7 +1150,7 @@ function_00_0d91::
ld [rROMB0], a
ld a, l
.skip_bankswitch
- call $4000
+ call $4000 ; ???
pop hl
pop bc
jr nc, .done
@@ -1209,12 +1209,12 @@ vram_copy::
.wait_vblank
ldh a, [rSTAT]
- and $03
+ and STATF_LCD
jr z, .wait_vblank
.in_vblank
ldh a, [rSTAT]
- and $03
+ and STATF_LCD
jr nz, .in_vblank
ld a, [hl+]
@@ -1472,6 +1472,71 @@ text_draw_char:
ld a, e
ret
+SECTION "decompress", ROM0[$20cf]
+decompress::
+; Parameters:
+; hl - source
+; de - dest
+; bc - length (not the actual source or dest length)
+ ld [w_bank_temp], a
+ ld a, [w_bank_rom]
+ push af
+ ld a, [w_bank_temp]
+ ld [w_bank_rom], a
+ ld [rROMB0], a
+
+ xor a
+ ld [w_c300], a
+
+.main_loop
+ push bc
+ ld a, [hl+]
+ bit 7, a
+ jr nz, .alternating
+
+; uses the next a + 1 bytes of compressed data
+; to output a + 1 bytes of decompressed data
+ inc a
+ ld c, a
+ ld a, [w_c300]
+.seq_loop
+ xor [hl]
+ ld [de], a
+ inc hl
+ inc de
+ dec c
+ jr nz, .seq_loop
+ ld [w_c300], a
+ jr .next
+
+; uses the next one byte of compressed data
+; to output a - $7e bytes of decompressed data,
+; alternating between two different values
+.alternating
+ sub $7e
+ ld c, a
+ ld a, [w_c300]
+.alt_loop
+ xor [hl]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .alt_loop
+ ld [w_c300], a
+ inc hl
+
+.next
+ pop bc
+ dec bc
+ ld a, c
+ or b
+ jr nz, .main_loop
+
+ pop af
+ ld [w_bank_rom], a
+ ld [rROMB0], a
+ ret
+
SECTION "function_00_24b7", ROM0[$24b7]
function_00_24b7::
xor a
diff --git a/source/bank_01.asm b/source/bank_01.asm
index e1371c5..80e88a7 100644
--- a/source/bank_01.asm
+++ b/source/bank_01.asm
@@ -30,3 +30,30 @@ level_name_textbox_clear:
cp 11
jp nz, .loop
ret
+
+SECTION "function_01_6306", ROMX[$6306], BANK[$01]
+function_01_6306::
+ ld c, 16
+.loop
+ push bc
+ push hl
+ push de
+ push af
+ ld bc, 8 tiles
+ call vram_copy
+ farcall function_05_7089
+ pop af
+ pop de
+ pop hl
+ push hl
+ ld hl, 8 tiles
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ld bc, 8 tiles
+ add hl, bc
+ pop bc
+ dec c
+ jp nz, .loop
+ ret
diff --git a/source/bank_28.asm b/source/bank_28.asm
new file mode 100644
index 0000000..d798744
--- /dev/null
+++ b/source/bank_28.asm
@@ -0,0 +1,20 @@
+INCLUDE "hardware.inc"
+INCLUDE "macros.inc"
+
+SECTION "function_28_426a", ROMX[$426a], BANK[$28]
+
+function_28_426a::
+ ld a, $01
+ ld [w_d6b5], a
+ ld a, BANK(compressed_gfx_75_7d35)
+ ld hl, compressed_gfx_75_7d35
+ ld de, _VRAM8800
+ ld bc, 182
+ call decompress
+ ld a, BANK(compressed_tilemap_6c_7eec)
+ ld hl, compressed_tilemap_6c_7eec
+ ld de, _SCRN0
+ ld bc, 82
+ call decompress
+ call function_00_1085
+ ; TBC
diff --git a/source/bank_64.asm b/source/bank_64.asm
new file mode 100644
index 0000000..e29534f
--- /dev/null
+++ b/source/bank_64.asm
@@ -0,0 +1,14 @@
+SECTION "gfx_font_striped_dark", ROMX[$4d00], BANK[$64]
+gfx_font_striped_dark::
+INCBIN "gfx/fonts/font_striped_dark.bin"
+.end::
+
+SECTION "gfx_font_striped_light", ROMX[$6500], BANK[$64]
+gfx_font_striped_light::
+INCBIN "gfx/fonts/font_striped_light.bin"
+.end::
+
+SECTION "gfx_font_1", ROMX[$7000], BANK[$64]
+gfx_font_1::
+INCBIN "gfx/fonts/font_1.bin"
+.end::
diff --git a/source/bank_65.asm b/source/bank_65.asm
new file mode 100644
index 0000000..1aa9d0d
--- /dev/null
+++ b/source/bank_65.asm
@@ -0,0 +1,4 @@
+SECTION "gfx_font_2", ROMX[$7000], BANK[$65]
+gfx_font_2::
+INCBIN "gfx/fonts/font_2.bin"
+.end::
diff --git a/source/bank_66.asm b/source/bank_66.asm
new file mode 100644
index 0000000..f4b590d
--- /dev/null
+++ b/source/bank_66.asm
@@ -0,0 +1,121 @@
+SECTION "bank66", ROMX[$4000], BANK[$66]
+
+gfx_bgm_pikachu_1::
+INCBIN "gfx/bgm/pikachu_blink.bin"
+INCBIN "gfx/bgm/pikachu_1.bin"
+.end::
+
+gfx_bgm_pikachu_2::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/pikachu_2.bin"
+.end::
+
+gfx_bgm_pikachu_3::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/pikachu_3.bin"
+.end::
+
+gfx_bgm_pikachu_4::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/pikachu_4.bin"
+.end::
+
+gfx_bgm_bulbasaur_1::
+INCBIN "gfx/bgm/bulbasaur_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_1.bin"
+.end::
+
+gfx_bgm_bulbasaur_2::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_2.bin"
+.end::
+
+gfx_bgm_bulbasaur_3::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_3.bin"
+.end::
+
+gfx_bgm_bulbasaur_4::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_4.bin"
+.end::
+
+gfx_bgm_charmander_1::
+INCBIN "gfx/bgm/charmander_blink.bin"
+INCBIN "gfx/bgm/charmander_1.bin"
+.end::
+
+gfx_bgm_charmander_2::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/charmander_2.bin"
+.end::
+
+gfx_bgm_charmander_3::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/charmander_3.bin"
+.end::
+
+gfx_bgm_charmander_4::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/charmander_4.bin"
+.end::
+
+gfx_bgm_squirtle_1::
+INCBIN "gfx/bgm/squirtle_blink.bin"
+INCBIN "gfx/bgm/squirtle_1.bin"
+.end::
+
+gfx_bgm_squirtle_2::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/squirtle_2.bin"
+.end::
+
+gfx_bgm_squirtle_3::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/squirtle_3.bin"
+.end::
+
+gfx_bgm_squirtle_4::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/squirtle_4.bin"
+.end::
+
+gfx_bgm_clefairy_1::
+INCBIN "gfx/bgm/clefairy_blink.bin"
+INCBIN "gfx/bgm/clefairy_1.bin"
+.end::
+
+gfx_bgm_clefairy_2::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/clefairy_2.bin"
+.end::
+
+gfx_bgm_clefairy_3::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/clefairy_3.bin"
+.end::
+
+gfx_bgm_clefairy_4::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/clefairy_4.bin"
+.end::
+
+gfx_bgm_jigglypuff_1::
+INCBIN "gfx/bgm/jigglypuff_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_1.bin"
+.end::
+
+gfx_bgm_jigglypuff_2::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_2.bin"
+.end::
+
+gfx_bgm_jigglypuff_3::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_3.bin"
+.end::
+
+gfx_bgm_jigglypuff_4::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_4.bin"
+.end::
diff --git a/source/bank_68.asm b/source/bank_68.asm
new file mode 100644
index 0000000..b20508b
--- /dev/null
+++ b/source/bank_68.asm
@@ -0,0 +1,121 @@
+SECTION "bank68", ROMX[$4000], BANK[$68]
+
+gfx_bgm_pikachu_1_sgb::
+INCBIN "gfx/bgm/pikachu_blink.bin"
+INCBIN "gfx/bgm/pikachu_1_sgb.bin"
+.end::
+
+gfx_bgm_pikachu_2_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/pikachu_2_sgb.bin"
+.end::
+
+gfx_bgm_pikachu_3_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/pikachu_3_sgb.bin"
+.end::
+
+gfx_bgm_pikachu_4_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/pikachu_4_sgb.bin"
+.end::
+
+gfx_bgm_bulbasaur_1_sgb::
+INCBIN "gfx/bgm/bulbasaur_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_1_sgb.bin"
+.end::
+
+gfx_bgm_bulbasaur_2_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_2_sgb.bin"
+.end::
+
+gfx_bgm_bulbasaur_3_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_3_sgb.bin"
+.end::
+
+gfx_bgm_bulbasaur_4_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/bulbasaur_4_sgb.bin"
+.end::
+
+gfx_bgm_charmander_1_sgb::
+INCBIN "gfx/bgm/charmander_blink.bin"
+INCBIN "gfx/bgm/charmander_1_sgb.bin"
+.end::
+
+gfx_bgm_charmander_2_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/charmander_2_sgb.bin"
+.end::
+
+gfx_bgm_charmander_3_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/charmander_3_sgb.bin"
+.end::
+
+gfx_bgm_charmander_4_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/charmander_4_sgb.bin"
+.end::
+
+gfx_bgm_squirtle_1_sgb::
+INCBIN "gfx/bgm/squirtle_blink.bin"
+INCBIN "gfx/bgm/squirtle_1_sgb.bin"
+.end::
+
+gfx_bgm_squirtle_2_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/squirtle_2_sgb.bin"
+.end::
+
+gfx_bgm_squirtle_3_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/squirtle_3_sgb.bin"
+.end::
+
+gfx_bgm_squirtle_4_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/squirtle_4_sgb.bin"
+.end::
+
+gfx_bgm_clefairy_1_sgb::
+INCBIN "gfx/bgm/clefairy_blink.bin"
+INCBIN "gfx/bgm/clefairy_1_sgb.bin"
+.end::
+
+gfx_bgm_clefairy_2_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/clefairy_2_sgb.bin"
+.end::
+
+gfx_bgm_clefairy_3_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/clefairy_3_sgb.bin"
+.end::
+
+gfx_bgm_clefairy_4_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/clefairy_4_sgb.bin"
+.end::
+
+gfx_bgm_jigglypuff_1_sgb::
+INCBIN "gfx/bgm/jigglypuff_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_1_sgb.bin"
+.end::
+
+gfx_bgm_jigglypuff_2_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_2_sgb.bin"
+.end::
+
+gfx_bgm_jigglypuff_3_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_3_sgb.bin"
+.end::
+
+gfx_bgm_jigglypuff_4_sgb::
+INCBIN "gfx/bgm/no_blink.bin"
+INCBIN "gfx/bgm/jigglypuff_4_sgb.bin"
+.end::