diff options
-rwxr-xr-x | engine/pokedex/variable_width_font_character.asm | 321 | ||||
-rwxr-xr-x | main.asm | 323 |
2 files changed, 322 insertions, 322 deletions
diff --git a/engine/pokedex/variable_width_font_character.asm b/engine/pokedex/variable_width_font_character.asm new file mode 100755 index 0000000..9dba2d8 --- /dev/null +++ b/engine/pokedex/variable_width_font_character.asm @@ -0,0 +1,321 @@ +LoadDexVWFCharacter_: ; 0x8d17
+; Loads a single variable-width-font character used in various parts of the Pokedex screen.
+ ld a, [$ff92]
+ cp $80
+ jp c, Func_8e01
+ ld a, [$ff90]
+ ld c, a
+ ld a, [$ff91]
+ ld b, a
+ ld a, [$ff93]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, [$ff8e]
+ cp h
+ jr nz, .asm_8d32
+ ld a, [$ff8d]
+ cp l
+.asm_8d32
+ jr nc, .asm_8d5c
+ ld a, [$ff8d]
+ ld [$ff90], a
+ ld a, [$ff8e]
+ ld [$ff91], a
+ ld a, [$ff8d]
+ ld c, a
+ ld a, [$ff8e]
+ ld b, a
+ ld a, [$ff8c]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, l
+ ld [$ff8d], a
+ ld a, h
+ ld [$ff8e], a
+ srl h
+ rr l
+ srl h
+ rr l
+ ld a, [$ff8f]
+ cp l
+ jp c, Func_8df7
+.asm_8d5c
+ ld a, [$ff90]
+ and $f8
+ ld c, a
+ ld a, [$ff91]
+ ld b, a
+ sla c
+ rl b
+ sla c
+ rl b
+ ld hl, wc010
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [$ff92]
+ swap a
+ ld c, a
+ and $f
+ ld b, a
+ ld a, c
+ and $f0
+ ld c, a
+ sla c
+ rl b
+ ld hl, PokedexCharactersGfx
+ add hl, bc
+ push hl
+ ld a, [$ff90]
+ and $7
+ ld c, a
+ ld b, $0
+ ld hl, Data_8df9
+ add hl, bc
+ ld a, [hl]
+ ld [wd85e], a
+ cpl
+ ld [wd85f], a
+ ld a, c
+ add $58
+ ld b, a
+ pop hl
+ push hl
+ ld c, $10
+.asm_8da2
+ push bc
+ ld a, [hli]
+ ld c, a
+ ld a, [bc]
+ ld c, a
+ ld a, [wd85e]
+ and c
+ ld c, a
+ ld a, [wd860]
+ ld b, a
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_8da2
+ pop hl
+ ld c, $10
+.asm_8dc4
+ push bc
+ ld a, [hli]
+ ld c, a
+ ld a, [bc]
+ ld c, a
+ ld a, [wd85f]
+ and c
+ ld c, a
+ ld a, [wd860]
+ ld b, a
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_8dc4
+ ld a, [$ff90]
+ ld c, a
+ ld a, [$ff91]
+ ld b, a
+ ld a, [$ff93]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, l
+ ld [$ff90], a
+ ld a, h
+ ld [$ff91], a
+ and a
+ ret
+
+Func_8df7: ; 0x8df7
+ scf
+ ret
+
+Data_8df9: ; 0x8df9
+ db $FF, $7F, $3F, $1F, $0F, $07, $03, $01
+
+Func_8e01: ; 0x8e01
+ ld a, [$ff90]
+ ld c, a
+ ld a, [$ff91]
+ ld b, a
+ ld a, [$ff93]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, [$ff8e]
+ cp h
+ jr nz, .asm_8e15
+ ld a, [$ff8d]
+ cp l
+.asm_8e15
+ jr nc, .asm_8e3f
+ ld a, [$ff8d]
+ ld [$ff90], a
+ ld a, [$ff8e]
+ ld [$ff91], a
+ ld a, [$ff8d]
+ ld c, a
+ ld a, [$ff8e]
+ ld b, a
+ ld a, [$ff8c]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, l
+ ld [$ff8d], a
+ ld a, h
+ ld [$ff8e], a
+ srl h
+ rr l
+ srl h
+ rr l
+ ld a, [$ff8f]
+ cp l
+ jp c, Func_8ed6
+.asm_8e3f
+ ld a, [$ff90]
+ and $f8
+ ld c, a
+ ld a, [$ff91]
+ ld b, a
+ sla c
+ rl b
+ ld hl, wc010
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [$ff92]
+ swap a
+ ld c, a
+ and $f
+ ld b, a
+ ld a, c
+ and $f0
+ ld c, a
+ sla c
+ rl b
+ ld hl, PokedexCharactersGfx + $8
+ add hl, bc
+ push hl
+ ld a, [$ff90]
+ and $7
+ ld c, a
+ ld b, $0
+ ld hl, Data_8ed8
+ add hl, bc
+ ld a, [hl]
+ ld [wd85e], a
+ cpl
+ ld [wd85f], a
+ ld a, c
+ add $58
+ ld b, a
+ pop hl
+ push hl
+ ld c, $8
+.asm_8e81
+ push bc
+ ld a, [hli]
+ ld c, a
+ ld a, [bc]
+ ld c, a
+ ld a, [wd85e]
+ and c
+ ld c, a
+ ld a, [wd860]
+ ld b, a
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_8e81
+ pop hl
+ ld c, $8
+.asm_8ea3
+ push bc
+ ld a, [hli]
+ ld c, a
+ ld a, [bc]
+ ld c, a
+ ld a, [wd85f]
+ and c
+ ld c, a
+ ld a, [wd860]
+ ld b, a
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ ld a, [de]
+ xor b
+ or c
+ xor b
+ ld [de], a
+ inc de
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_8ea3
+ ld a, [$ff90]
+ ld c, a
+ ld a, [$ff91]
+ ld b, a
+ ld a, [$ff93]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, l
+ ld [$ff90], a
+ ld a, h
+ ld [$ff91], a
+ and a
+ ret
+
+Func_8ed6: ; 0x8ed6
+ scf
+ ret
+
+Data_8ed8: ; 0x8ed8
+ db $FF, $7F, $3F, $1F, $0F, $07, $03, $01
@@ -50,328 +50,7 @@ INCLUDE "engine/pinball_game/score.asm" INCLUDE "engine/pinball_game/timer.asm" INCLUDE "engine/pinball_game/menu.asm" INCLUDE "data/collision/collision_deltas.asm" - -LoadDexVWFCharacter_: ; 0x8d17 -; Loads a single variable-width-font character used in various parts of the Pokedex screen. - ld a, [$ff92] - cp $80 - jp c, Func_8e01 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, [$ff8e] - cp h - jr nz, .asm_8d32 - ld a, [$ff8d] - cp l -.asm_8d32 - jr nc, .asm_8d5c - ld a, [$ff8d] - ld [$ff90], a - ld a, [$ff8e] - ld [$ff91], a - ld a, [$ff8d] - ld c, a - ld a, [$ff8e] - ld b, a - ld a, [$ff8c] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff8d], a - ld a, h - ld [$ff8e], a - srl h - rr l - srl h - rr l - ld a, [$ff8f] - cp l - jp c, Func_8df7 -.asm_8d5c - ld a, [$ff90] - and $f8 - ld c, a - ld a, [$ff91] - ld b, a - sla c - rl b - sla c - rl b - ld hl, wc010 - add hl, bc - ld d, h - ld e, l - ld a, [$ff92] - swap a - ld c, a - and $f - ld b, a - ld a, c - and $f0 - ld c, a - sla c - rl b - ld hl, PokedexCharactersGfx - add hl, bc - push hl - ld a, [$ff90] - and $7 - ld c, a - ld b, $0 - ld hl, Data_8df9 - add hl, bc - ld a, [hl] - ld [wd85e], a - cpl - ld [wd85f], a - ld a, c - add $58 - ld b, a - pop hl - push hl - ld c, $10 -.asm_8da2 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [wd85e] - and c - ld c, a - ld a, [wd860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8da2 - pop hl - ld c, $10 -.asm_8dc4 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [wd85f] - and c - ld c, a - ld a, [wd860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8dc4 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff90], a - ld a, h - ld [$ff91], a - and a - ret - -Func_8df7: ; 0x8df7 - scf - ret - -Data_8df9: ; 0x8df9 - db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 - -Func_8e01: ; 0x8e01 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, [$ff8e] - cp h - jr nz, .asm_8e15 - ld a, [$ff8d] - cp l -.asm_8e15 - jr nc, .asm_8e3f - ld a, [$ff8d] - ld [$ff90], a - ld a, [$ff8e] - ld [$ff91], a - ld a, [$ff8d] - ld c, a - ld a, [$ff8e] - ld b, a - ld a, [$ff8c] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff8d], a - ld a, h - ld [$ff8e], a - srl h - rr l - srl h - rr l - ld a, [$ff8f] - cp l - jp c, Func_8ed6 -.asm_8e3f - ld a, [$ff90] - and $f8 - ld c, a - ld a, [$ff91] - ld b, a - sla c - rl b - ld hl, wc010 - add hl, bc - ld d, h - ld e, l - ld a, [$ff92] - swap a - ld c, a - and $f - ld b, a - ld a, c - and $f0 - ld c, a - sla c - rl b - ld hl, PokedexCharactersGfx + $8 - add hl, bc - push hl - ld a, [$ff90] - and $7 - ld c, a - ld b, $0 - ld hl, Data_8ed8 - add hl, bc - ld a, [hl] - ld [wd85e], a - cpl - ld [wd85f], a - ld a, c - add $58 - ld b, a - pop hl - push hl - ld c, $8 -.asm_8e81 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [wd85e] - and c - ld c, a - ld a, [wd860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8e81 - pop hl - ld c, $8 -.asm_8ea3 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [wd85f] - and c - ld c, a - ld a, [wd860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8ea3 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff90], a - ld a, h - ld [$ff91], a - and a - ret - -Func_8ed6: ; 0x8ed6 - scf - ret - -Data_8ed8: ; 0x8ed8 - db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 +INCLUDE "engine/pokedex/variable_width_font_character.asm" Func_8ee0: ; 0x8ee0 ld a, [$ff8d] |