From 4781d9a809565804a4b99024a69a51156fd2749e Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 29 Dec 2014 10:23:22 -0800 Subject: [PATCH] Fix more static banks (trainers, mobile graphics). --- gfx/pics.asm | 17 ++--- main.asm | 164 ++++++++++++++++++++++-------------------- misc/crystal_misc.asm | 4 +- trainers/trainers.asm | 1 + 4 files changed, 94 insertions(+), 92 deletions(-) diff --git a/gfx/pics.asm b/gfx/pics.asm index 8c852ce2d..b29940e98 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -1,22 +1,17 @@ INCLUDE "includes.asm" -SECTION "Pic Pointers", ROMX, BANK[PIC_POINTERS] +; Unown pic pointers are assumed to start at the same address in a different bank. -PicPointers:: -INCLUDE "gfx/pics/pic_pointers.asm" +SECTION "Pic Pointers", ROMX[$4000], BANK[PIC_POINTERS] +PicPointers:: INCLUDE "gfx/pics/pic_pointers.asm" - -SECTION "Unown Pic Pointers", ROMX, BANK[UNOWN_PIC_POINTERS] - -UnownPicPointers:: -INCLUDE "gfx/pics/unown_pic_pointers.asm" +SECTION "Unown Pic Pointers", ROMX[$4000], BANK[UNOWN_PIC_POINTERS] +UnownPicPointers:: INCLUDE "gfx/pics/unown_pic_pointers.asm" SECTION "Trainer Pic Pointers", ROMX, BANK[TRAINER_PIC_POINTERS] - -TrainerPicPointers:: -INCLUDE "gfx/pics/trainer_pic_pointers.asm" +TrainerPicPointers:: INCLUDE "gfx/pics/trainer_pic_pointers.asm" diff --git a/main.asm b/main.asm index a20f698a2..e1c565d1e 100644 --- a/main.asm +++ b/main.asm @@ -7977,7 +7977,7 @@ SpecialsPointers: ; c029 dbw BANK(Function71ac), Function71ac dbw BANK(Function2a4ab), Function2a4ab dbw BANK(Function2a51f), Function2a51f - dbw BANK(Function2a567), Function2a567 + dbw BANK(RandomPhoneMon), RandomPhoneMon dbw BANK(Function14209), Function14209 dbw BANK(Functionfb841), Functionfb841 dbw BANK(SpecialSnorlaxAwake),SpecialSnorlaxAwake @@ -14051,7 +14051,7 @@ Functione3de: ; e3de pop hl ld de, StringBuffer1 call InitName - ld a, $4 + ld a, $4 ; XXX could this be in bank 4 in pokered? ld hl, Function2b4d rst FarCall ret @@ -41079,80 +41079,86 @@ Function2a51f: ; 2a51f jp CopyBytes ; 2a567 -Function2a567: ; 2a567 +RandomPhoneMon: ; 2a567 +; Get a random monster owned by the trainer who's calling. callba Function90439 - ld hl, $5999 + ld hl, TrainerGroups ld a, d dec a ld c, a - ld b, $0 + ld b, 0 add hl, bc add hl, bc - ld a, $e + ld a, BANK(TrainerGroups) call GetFarHalfword -.asm_2a57c + +.skip_trainer dec e - jr z, .asm_2a58b -.asm_2a57f - ld a, $e + jr z, .skipped +.skip + ld a, BANK(Trainers) call GetFarByte inc hl - cp $ff - jr nz, .asm_2a57f - jr .asm_2a57c + cp -1 + jr nz, .skip + jr .skip_trainer +.skipped -.asm_2a58b - ld a, $e +.skip_name + ld a, BANK(Trainers) call GetFarByte inc hl - cp $50 - jr nz, .asm_2a58b - ld a, $e - call GetFarByte - inc hl - ld bc, $0002 - cp $0 - jr z, .asm_2a5b3 - ld bc, $0006 - cp $1 - jr z, .asm_2a5b3 - ld bc, $0003 - cp $2 - jr z, .asm_2a5b3 - ld bc, $0007 + cp "@" + jr nz, .skip_name -.asm_2a5b3 - ld e, $0 + ld a, BANK(Trainers) + call GetFarByte + inc hl + ld bc, 2 + cp 0 + jr z, .got_mon_length + ld bc, 2 + NUM_MOVES + cp 1 + jr z, .got_mon_length + ld bc, 2 + 1 + cp 2 + jr z, .got_mon_length + ld bc, 2 + 1 + NUM_MOVES +.got_mon_length + + ld e, 0 push hl -.asm_2a5b6 +.count_mon inc e add hl, bc - ld a, $e + ld a, BANK(Trainers) call GetFarByte - cp $ff - jr nz, .asm_2a5b6 + cp -1 + jr nz, .count_mon pop hl -.asm_2a5c2 - call Random - and $7 - cp e - jr nc, .asm_2a5c2 - inc a -.asm_2a5cb - dec a - jr z, .asm_2a5d1 - add hl, bc - jr .asm_2a5cb -.asm_2a5d1 - inc hl - ld a, $e +.rand + call Random + and 7 + cp e + jr nc, .rand + + inc a +.get_mon + dec a + jr z, .got_mon + add hl, bc + jr .get_mon +.got_mon + + inc hl ; species + ld a, BANK(Trainers) call GetFarByte ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ld de, StringBuffer4 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH jp CopyBytes ; 2a5e9 @@ -46293,15 +46299,15 @@ Function41a2c: ; 41a2c call GetSRAMBank ld hl, UnownFont ld de, $a188 - ld bc, $0270 + ld bc, $270 ld a, BANK(UnownFont) call FarCopyBytes ld hl, $a188 - ld bc, $01b0 + ld bc, $1b0 call Function41504 ld de, $a188 ld hl, $9400 - lb bc, $10, $1b + lb bc, BANK(Function41a2c), $1b call Request2bpp call CloseSRAM ret @@ -64624,7 +64630,7 @@ Function84785: ; 84785 inc hl ld d, [hl] hlcoord 1, 7 - ld a, $77 + ld a, BANK(GBPrinterStrings) call FarString hlcoord 2, 15 ld de, String_847f5 @@ -66839,14 +66845,14 @@ INCBIN "baserom.gbc",$8940b,$8942b - $8940b Function8942b: ; 8942b (22:542b) ld de, $8020 - ld hl, $61bf + ld hl, MobileAdapterGFX + $7d0 ld bc, $80 - ld a, $5e + ld a, BANK(MobileAdapterGFX) call FarCopyBytes ld de, $80a0 - ld hl, $664f + ld hl, MobileAdapterGFX + $c60 ld bc, $40 - ld a, $5e + ld a, BANK(MobileAdapterGFX) call FarCopyBytes ret @@ -66863,23 +66869,23 @@ Function89448: ; 89448 (22:5448) ret Function89455: ; 89455 (22:5455) - ld hl, $61bf + ld hl, MobileAdapterGFX + $7d0 ld de, $90c0 ld bc, $490 - ld a, $5e + ld a, BANK(MobileAdapterGFX) call FarCopyBytes ret Function89464: ; 89464 - ld hl, $59ef + ld hl, MobileAdapterGFX ld de, VTiles2 - ld bc, $0200 - ld a, $5e + ld bc, $200 + ld a, BANK(MobileAdapterGFX) call FarCopyBytes - ld hl, $604f + ld hl, MobileAdapterGFX + $660 ld de, $9200 - ld bc, $0170 - ld a, $5e + ld bc, $170 + ld a, BANK(MobileAdapterGFX) call FarCopyBytes ret ; 89481 @@ -67547,16 +67553,16 @@ Function897d5: ; 897d5 Function89807: ; 89807 (22:5807) - ld hl, $5bef + ld hl, MobileAdapterGFX + $200 ld a, [PlayerGender] ; $d472 bit 0, a jr z, .asm_89814 - ld hl, $5e1f + ld hl, MobileAdapterGFX + $200 + $230 .asm_89814 call DisableLCD ld de, $9370 ld bc, $230 - ld a, $5e + ld a, BANK(MobileAdapterGFX) call FarCopyBytes call EnableLCD call DelayFrame @@ -72277,20 +72283,20 @@ Function8b677: ; 8b677 ; 8b690 Function8b690: ; 8b690 - ld hl, $74b9 + ld hl, GFX_17afa5 + $514 ld de, VTiles2 - ld bc, $0160 - ld a, $5e + ld bc, $160 + ld a, BANK(GFX_17afa5) call FarCopyBytes - ld hl, $7609 + ld hl, GFX_17afa5 + $514 + $160 - $10 ld de, $9610 - ld bc, $0010 - ld a, $5e + ld bc, $10 + ld a, BANK(GFX_17afa5) call FarCopyBytes - ld hl, $7619 + ld hl, GFX_17afa5 + $514 + $160 ld de, $8ee0 - ld bc, $0010 - ld a, $5e + ld bc, $10 + ld a, BANK(GFX_17afa5) call FarCopyBytes ret ; 8b6bb diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index 12c20e965..88a22043d 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -3,7 +3,7 @@ INCLUDE "includes.asm" SECTION "Misc Crystal", ROMX, BANK[MISC_CRYSTAL] -MobileAdapterGFX: +MobileAdapterGFX:: INCBIN "gfx/misc/mobile_adapter.2bpp" @@ -817,5 +817,5 @@ INCBIN "baserom.gbc",$17acd5,$17ae3d - $17acd5 Tilemap_17ae3d: ; 17ae3d INCBIN "baserom.gbc",$17ae3d,$17afa5 - $17ae3d -GFX_17afa5: ; 17afa5 +GFX_17afa5:: ; 17afa5 INCBIN "baserom.gbc",$17afa5,$17b7a5 - $17afa5 diff --git a/trainers/trainers.asm b/trainers/trainers.asm index f1d1b75eb..6337be07c 100644 --- a/trainers/trainers.asm +++ b/trainers/trainers.asm @@ -1,3 +1,4 @@ +Trainers: ; All trainers follow a basic structure: ; Name