diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/bank_00.asm | 131 | ||||
-rw-r--r-- | source/bank_01.asm | 27 | ||||
-rw-r--r-- | source/bank_28.asm | 20 | ||||
-rw-r--r-- | source/bank_64.asm | 14 | ||||
-rw-r--r-- | source/bank_65.asm | 4 | ||||
-rw-r--r-- | source/bank_66.asm | 121 | ||||
-rw-r--r-- | source/bank_68.asm | 121 |
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:: |