From d1c06357bd57ae586b79babce6006cd7dfce3651 Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Mon, 17 May 2021 16:29:51 +0700 Subject: Identify SGB functions, properly rip SGB border --- engine/dumps/bank01.asm | 4 +- engine/dumps/bank02.asm | 307 ++++++++++++++++++++++++------------------------ 2 files changed, 157 insertions(+), 154 deletions(-) (limited to 'engine') diff --git a/engine/dumps/bank01.asm b/engine/dumps/bank01.asm index 01f36da..03c93ba 100755 --- a/engine/dumps/bank01.asm +++ b/engine/dumps/bank01.asm @@ -3741,9 +3741,7 @@ Function78f0: ld a, [hl] xor $08 ld [hl], a - ld hl, Function96eb - ld a, BANK(Function96eb) - call FarCall_hl + callab UpdateSGBBorder call LoadFont call LoadFontExtra ld c, $70 diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm index 38042a4..c60c8e0 100755 --- a/engine/dumps/bank02.asm +++ b/engine/dumps/bank02.asm @@ -1684,9 +1684,9 @@ Data954f: Function955f: push de - call Function964b + call PushSGBPals pop hl - jp Function964b + jp PushSGBPals Function9567: bit 3, a @@ -1829,72 +1829,72 @@ Function9604: LoadMagikarpPalettes_Intro: ld hl, Data997c - jp Function964b + jp PushSGBPals LoadForestPalettes2_Intro: ld hl, Data986c - jp Function964b + jp PushSGBPals LoadVenusaurPalettes_Intro: ld hl, Data99ac - jp Function964b + jp PushSGBPals LoadCharizardPalettes_Intro: ld hl, Data99bc - jp Function964b + jp PushSGBPals Function9645: ld hl, wc51a - jp Function964b + jp PushSGBPals -Function964b: +PushSGBPals: ld a, [wJoypadFlags] push af set 7, a ld [wJoypadFlags], a - call Function965c + call _PushSGBPals pop af ld [wJoypadFlags], a ret -Function965c: +_PushSGBPals: ld a, [hl] - and $07 + and $7 ret z ld b, a -.sub_9661 +.loop push bc xor a ldh [rJOYP], a ld a, $30 ldh [rJOYP], a ld b, $10 -.sub_966b +.loop2 ld e, $08 ld a, [hli] ld d, a -.sub_966f +.loop3 bit 0, d ld a, $10 - jr nz, .sub_9677 + jr nz, .ok ld a, $20 -.sub_9677 +.ok ldh [rJOYP], a ld a, $30 ldh [rJOYP], a rr d dec e - jr nz, .sub_966f + jr nz, .loop3 dec b - jr nz, .sub_966b + jr nz, .loop2 ld a, $20 ldh [rJOYP], a ld a, $30 ldh [rJOYP], a - call Function9860 + call SGBDelayCycles pop bc dec b - jr nz, .sub_9661 + jr nz, .loop ret CheckSGB: @@ -1902,239 +1902,244 @@ CheckSGB: push af set 7, a ld [wJoypadFlags], a + xor a ldh [rJOYP], a ld [wSGB], a - call Function9730 - jr nc, .sub_96c0 - ld a, $01 + call PushSGBBorderPalsAndWait + jr nc, .skip + ld a, 1 ld [wSGB], a - call .sub_96c5 - call Function9704 - call Function979a - call Function9725 - ld hl, Data9abc - call Function965c -.sub_96c0 + call _InitSGBBorderPals + call PushSGBBorder + call SGBBorder_PushBGPals + call SGB_ClearVRAM + ld hl, MaskEnCancelPacket + call _PushSGBPals +.skip pop af ld [wJoypadFlags], a ret -.sub_96c5 - ld hl, Table96d9 - ld c, $09 -.sub_96ca + +_InitSGBBorderPals: + ld hl, .PacketPointerTable + ld c, 9 + +.loop push bc ld a, [hli] push hl ld h, [hl] ld l, a - call Function965c + call _PushSGBPals pop hl inc hl pop bc dec c - jr nz, .sub_96ca + jr nz, .loop ret -Table96d9: - dw Data9aac - dw Data9acc - dw Data9adc - dw Data9aec - dw Data9afc - dw Data9b0c - dw Data9b1c - dw Data9b2c - dw Data9b3c +.PacketPointerTable: + dw MaskEnFreezePacket + dw DataSndPacket1 + dw DataSndPacket2 + dw DataSndPacket3 + dw DataSndPacket4 + dw DataSndPacket5 + dw DataSndPacket6 + dw DataSndPacket7 + dw DataSndPacket8 -Function96eb: +UpdateSGBBorder: ld a, [wSGB] ret z di xor a ldh [rJOYP], a - ld hl, Data9aac - call Function965c - call Function9704 - ld hl, Data9abc - call Function965c + ld hl, MaskEnFreezePacket + call _PushSGBPals + call PushSGBBorder + ld hl, MaskEnCancelPacket + call _PushSGBPals ei ret -Function9704: - call Function9710 +PushSGBBorder: + call .LoadSGBBorderPointers push de - call Function980a + call SGBBorder_YetMorePalPushing pop hl - call Function97be + call SGBBorder_MorePalPushing ret -Function9710: +.LoadSGBBorderPointers: ld a, [wce5f] bit 3, a - jr nz, .sub_971e + jr nz, .spaceworld_border + +; load alternate border ld hl, UnusedSGBBorderGFX - ld de, Corrupted9e1cGFX + ld de, UnusedSGBBorderTilemap ret -.sub_971e + +.spaceworld_border ld hl, SGBBorderGFX - ld de, Corrupteda66cGFX + ld de, SGBBorderTilemap ret -Function9725: +SGB_ClearVRAM: ld hl, vChars0 ld bc, $2000 xor a call ByteFill ret -Function9730: - ld hl, Data9a7c - call Function965c - call Function9860 +PushSGBBorderPalsAndWait: + ld hl, MltReq2Packet + call _PushSGBPals + call SGBDelayCycles ldh a, [rJOYP] - and $03 - cp $03 - jr nz, .sub_978c + and $3 + cp $3 + jr nz, .carry ld a, $20 ldh [rJOYP], a ldh a, [rJOYP] ldh a, [rJOYP] - call Function9860 - call Function9860 + call SGBDelayCycles + call SGBDelayCycles ld a, $30 ldh [rJOYP], a - call Function9860 - call Function9860 + call SGBDelayCycles + call SGBDelayCycles ld a, $10 ldh [rJOYP], a +rept 6 ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - call Function9860 - call Function9860 +endr + call SGBDelayCycles + call SGBDelayCycles ld a, $30 ldh [rJOYP], a ldh a, [rJOYP] ldh a, [rJOYP] ldh a, [rJOYP] - call Function9860 - call Function9860 + call SGBDelayCycles + call SGBDelayCycles ldh a, [rJOYP] - and $03 - cp $03 - jr nz, .sub_978c - call .sub_9791 + and $3 + cp $3 + jr nz, .carry + call .FinalPush and a ret -.sub_978c - call .sub_9791 + +.carry + call .FinalPush scf ret -.sub_9791 - ld hl, Data9a6c - call Function965c - jp Function9860 -Function979a: +.FinalPush: + ld hl, MltReq1Packet + call _PushSGBPals + jp SGBDelayCycles + +SGBBorder_PushBGPals: call DisableLCD - ld a, $e4 + ld a, %11100100 ldh [rBGP], a ld hl, SuperPalettes ld de, vChars1 ld bc, $1000 - call Function9838 - call Function984a + call CopyData + call DrawDefaultTiles ld a, $e3 ldh [rLCDC], a - ld hl, Data9a5c - call Function965c + ld hl, PalTrnPacket + call _PushSGBPals xor a ldh [rBGP], a ret -Function97be: +SGBBorder_MorePalPushing: call DisableLCD - ld a, $e4 + ld a, %11100100 ldh [rBGP], a ld de, vChars1 - ld bc, $0140 - call Function9838 - ld b, $12 -.sub_97d0 + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld b, SCREEN_HEIGHT +.loop push bc - ld bc, $000c - call Function9838 - ld bc, $0028 - call Function9841 - ld bc, $000c - call Function9838 + ld bc, 6 * 2 + call CopyData + ld bc, SCREEN_WIDTH * 2 + call ClearBytes + ld bc, 6 * 2 + call CopyData pop bc dec b - jr nz, .sub_97d0 - ld bc, $0140 - call Function9838 - ld bc, $0100 - call Function9841 - ld bc, $0080 - call Function9838 - call Function984a + jr nz, .loop + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld bc, $100 + call ClearBytes + ld bc, $80 + call CopyData + call DrawDefaultTiles ld a, $e3 ldh [rLCDC], a - ld hl, Data9a9c - call Function965c + ld hl, PctTrnPacket + call _PushSGBPals xor a ldh [rBGP], a ret -Function980a: +SGBBorder_YetMorePalPushing: call DisableLCD ld a, $e4 ldh [rBGP], a ld de, vChars1 ld b, $80 -.sub_9816 +.loop push bc - ld bc, $0010 - call Function9838 - ld bc, $0010 - call Function9841 + ld bc, $10 + call CopyData + ld bc, $10 + call ClearBytes pop bc dec b - jr nz, .sub_9816 - call Function984a + jr nz, .loop + call DrawDefaultTiles ld a, $e3 ldh [rLCDC], a - ld hl, Data9a8c - call Function965c + ld hl, ChrTrnPacket + call _PushSGBPals xor a ldh [rBGP], a ret -Function9838: +CopyData: ld a, [hli] ld [de], a inc de dec bc ld a, c or b - jr nz, Function9838 + jr nz, CopyData ret -Function9841: +ClearBytes: xor a ld [de], a inc de dec bc ld a, c or b - jr nz, Function9841 + jr nz, ClearBytes ret -Function984a: +DrawDefaultTiles: ld hl, vBGMap0 ld de, $000c ld a, $80 @@ -2151,7 +2156,7 @@ Function984a: jr nz, .sub_9854 ret -Function9860: +SGBDelayCycles: ld de, $1b58 .sub_9863 nop @@ -2287,62 +2292,62 @@ Data9a4c: db $51, $29, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a5c: +PalTrnPacket: db $59, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a6c: +MltReq1Packet: db $89, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a7c: +MltReq2Packet: db $89, $01, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a8c: +ChrTrnPacket: db $99, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a9c: +PctTrnPacket: db $a1, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9aac: +MaskEnFreezePacket: db $b9, $01, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9abc: +MaskEnCancelPacket: db $b9, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9acc: +DataSndPacket1: db $79, $5d, $08, $00, $0b, $8c, $d0, $f4 db $60, $00, $00, $00, $00, $00, $00, $00 -Data9adc: +DataSndPacket2: db $79, $52, $08, $00, $0b, $a9, $e7, $9f db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 -Data9aec: +DataSndPacket3: db $79, $47, $08, $00, $0b, $c4, $d0, $16 db $a5, $cb, $c9, $05, $d0, $10, $a2, $28 -Data9afc: +DataSndPacket4: db $79, $3c, $08, $00, $0b, $f0, $12, $a5 db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 -Data9b0c: +DataSndPacket5: db $79, $31, $08, $00, $0b, $0c, $a5, $ca db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e -Data9b1c: +DataSndPacket6: db $79, $26, $08, $00, $0b, $39, $cd, $48 db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 -Data9b2c: +DataSndPacket7: db $79, $1b, $08, $00, $0b, $ea, $ea, $ea db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 -Data9b3c: +DataSndPacket8: db $79, $10, $08, $00, $0b, $4c, $20, $08 db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea -- cgit v1.2.3 From 84cc9c2e3821c3309e7e4dc93f7317c39f6d3dc2 Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Mon, 17 May 2021 17:43:37 +0700 Subject: Identify some more SGB stuff, rework SGB layout constants --- engine/dumps/bank02.asm | 348 +++++++++++++++++++------------------- engine/dumps/bank09.asm | 2 +- engine/games/pikachu_minigame.asm | 2 +- engine/movie/game_freak_intro.asm | 2 +- engine/movie/title.asm | 2 +- engine/trainer_gear.asm | 8 +- 6 files changed, 183 insertions(+), 181 deletions(-) (limited to 'engine') diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm index c60c8e0..dbe7866 100755 --- a/engine/dumps/bank02.asm +++ b/engine/dumps/bank02.asm @@ -1281,64 +1281,66 @@ Function91ef: SECTION "engine/dumps/bank02.asm@Function928b", ROMX -Function928b: +LoadSGBLayout: ld a, b cp $ff - jr nz, .sub_9293 + jr nz, .not_ram ld a, [wccd0] -.sub_9293 +.not_ram cp $fc - jp z, Function9604 + jp z, SGB_ApplyPartyMenuHPPals ld l, a - ld h, $00 + ld h, 0 add hl, hl - ld de, Table92a8 + ld de, .Jumptable add hl, de ld a, [hli] ld h, [hl] ld l, a - ld de, Function955f + ld de, _LoadSGBLayout_ReturnFromJumpTable push de jp hl -Table92a8: - dw Function92d4 - dw Function92db - dw Function934b - dw Function9352 - dw Function9382 - dw Function93a6 - dw Function93ad - dw Function93bb - dw Function93b4 - dw Function93fe - dw Function937b - dw Function941a - dw Function93d8 - dw Function9441 - dw Function932b - dw Function93e4 - dw Function939f - dw Function93eb - dw Function9448 - dw Function948e - dw Function94ab - dw Function94c8 - -Function92d4: - ld hl, Data99ec - ld de, Data988c - ret - -Function92db: - ld hl, Data995c +.Jumptable: + dw SGB_BattleGrayscale + dw SGB_BattleColors + dw SGB_TownMap + dw SGB_StatsScreenHPPals + dw SGB_Pokedex + dw SGB_SlotMachine + dw SGB_TitleScreen + dw SGB_GSIntro + dw SGB_Diploma + dw SGB_MapPals + dw SGB_PartyMenu + dw SGB_Evolution + dw SGB_GFIntro + dw SGB_TrainerCard + dw SGB0e + dw SGB_PikachuMinigame + dw SGB_PokedexSelection + dw SGB_Poker + dw SGB12 + dw SGB_TrainerGear + dw SGB_TrainerGearMap + dw SGB_TrainerGearRadio + +SGB_BattleGrayscale: + ld hl, PalPacket_BattleGrayscale + ld de, BlkPacket_Battle + ret + +SGB_BattleColors: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes + ld a, [wca3f] ld hl, wca02 call Function9567 jr c, .sub_92f7 + ld e, $00 call Function9599 .sub_92f7 @@ -1366,15 +1368,15 @@ Function92db: ld a, c ld [hl], a ld hl, wcce1 - ld de, Data988c + ld de, BlkPacket_Battle ld a, $01 ld [wccd0], a ret -Function932b: - ld hl, Data995c +SGB0e: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes ld hl, wcce2 ld [hl], $10 @@ -1384,18 +1386,18 @@ Function932b: add $23 ld [hl], a ld hl, wcce1 - ld de, Data98bc + ld de, BlkPacket_98bc ret -Function934b: +SGB_TownMap: ld hl, Data99fc - ld de, Data986c + ld de, BlkPacket_986c ret -Function9352: - ld hl, Data995c +SGB_StatsScreenHPPals: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes ld a, [wMonDexIndex] call Function956d @@ -1409,54 +1411,53 @@ Function9352: pop af ld [hl], a ld hl, wcce1 - ld de, Data98ac + ld de, BlkPacket_StatsScreen ret -Function937b: - ld hl, Data99dc +SGB_PartyMenu: + ld hl, PalPacket_PartyMenu ld de, wcce2 ret -Function9382: - ld hl, Data9a0c +SGB_Pokedex: + ld hl, PalPacket_Pokedex ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes ld a, [wMonDexIndex] call Function956d ld hl, wcce4 ld [hl], a ld hl, wcce1 - ld de, Data98cc + ld de, BlkPacket_Pokedex ret -Function939f: - ld hl, Data99bc - ld de, Data986c +SGB_PokedexSelection: + ld hl, PalPacket_99bc + ld de, BlkPacket_986c ret -Function93a6: - ld hl, Data9a1c - ld de, Data98dc +SGB_SlotMachine: + ld hl, PalPacket_SlotMachine + ld de, BlkPacket_SlotMachine ret -Function93ad: - ld hl, Data9a2c - ld de, Data993c +SGB_TitleScreen: + ld hl, PalPacket_TitleScreen + ld de, BlkPacket_TitleScreen ret -Function93b4: - ld hl, Data9a3c - ld de, Data986c +SGB_Diploma: + ld hl, PalPacket_9a3c + ld de, BlkPacket_986c ret -Function93bb: - ld b, $00 - ld hl, Table93cc - add hl, bc - add hl, bc - add hl, bc +SGB_GSIntro: + ld b, 0 + ld hl, .BlkPacketTable +rept 4 add hl, bc +endr ld e, [hl] inc hl ld d, [hl] @@ -1466,55 +1467,50 @@ Function93bb: ld l, a ret -Table93cc: - dw Data986c - dw Data996c - - dw Data987c - dw Data998c +.BlkPacketTable: + dw BlkPacket_986c, PalPacket_GSIntroShellderLapras + dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu + dw BlkPacket_986c, PalPacket_GSIntroStartersTransition - dw Data986c - dw Data999c - -Function93d8: - ld hl, Data9a4c - ld de, Data986c +SGB_GFIntro: + ld hl, PalPacket_GFIntro + ld de, BlkPacket_986c ld a, $08 ld [wccd0], a ret -Function93e4: - ld hl, Data99cc - ld de, Data986c +SGB_PikachuMinigame: + ld hl, PalPacket_PikachuMinigame + ld de, BlkPacket_986c ret -Function93eb: - ld hl, Data986c +SGB_Poker: + ld hl, BlkPacket_986c ld de, wc51a - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, Data994c - ld de, Data986c + ld hl, PalPacket_Poker + ld de, BlkPacket_986c ret -Function93fe: - ld hl, Data995c +SGB_MapPals: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes - call Function94e5 + call GetMapPalsIndex ld hl, wcce2 ld [hld], a - ld de, Data986c + ld de, BlkPacket_986c ld a, $09 ld [wccd0], a ret -Function941a: +SGB_Evolution: push bc - ld hl, Data995c + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes pop bc ld a, c @@ -1527,24 +1523,24 @@ Function941a: .sub_9437 ld [wcce2], a ld hl, wcce1 - ld de, Data986c + ld de, BlkPacket_986c ret -Function9441: - ld hl, Data9a3c - ld de, Data986c +SGB_TrainerCard: + ld hl, PalPacket_9a3c + ld de, BlkPacket_986c ret -Function9448: - ld hl, Data995c +SGB12: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes - ld hl, Data986c + ld hl, BlkPacket_986c ld de, wccf1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes - call Function94e5 + call GetMapPalsIndex ld hl, wcce2 ld [hl], a ld a, [wMonDexIndex] @@ -1566,82 +1562,88 @@ Function9448: ld de, wccf1 ret -Function948e: - ld hl, Data995c +SGB_TrainerGear: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes ld a, $16 ld [wcce2], a ld a, $30 ld [wcce4], a ld hl, wcce1 - ld de, Data992c + ld de, BlkPacket_TrainerGear ret -Function94ab: - ld hl, Data995c +SGB_TrainerGearMap: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes ld a, $16 ld [wcce2], a ld a, $26 ld [wcce4], a ld hl, wcce1 - ld de, Data992c + ld de, BlkPacket_TrainerGear ret -Function94c8: - ld hl, Data995c +SGB_TrainerGearRadio: + ld hl, PalPacket_995c ld de, wcce1 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes ld a, $16 ld [wcce2], a ld a, $39 ld [wcce4], a ld hl, wcce1 - ld de, Data992c + ld de, BlkPacket_TrainerGear ret -Function94e5: +GetMapPalsIndex: ld a, [wMapPermissions] - cp $02 - jr z, .sub_950e - cp $04 - jr z, .sub_9516 - cp $06 - jr z, .sub_951e - cp $05 - jr z, .sub_9521 - cp $03 - jr z, .sub_9505 + cp ROUTE + jr z, .is_route + cp CAVE + jr z, .is_cave + cp GATE + jr z, .is_gate + cp ENVIRONMENT_5 + jr z, .env5 + cp INDOOR + jr z, .indoors call Function9527 jr c, .sub_9524 call Function9543 ret -.sub_9505 + +.indoors call Function9536 jr c, .sub_9524 call Function9543 ret -.sub_950e + +.is_route call Function9527 jr c, .sub_9524 ld a, $00 ret -.sub_9516 + +.is_cave call Function9527 jr c, .sub_9524 ld a, $0c ret -.sub_951e + +.is_gate ld a, $03 ret -.sub_9521 + +.env5 ld a, $04 ret + .sub_9524 ld a, $0d ret @@ -1682,7 +1684,7 @@ Data954f: db $01, $07, $0c, $03, $08, $06, $0b, $04 db $05, $0a, $02, $03, $02, $02, $09, $01 -Function955f: +_LoadSGBLayout_ReturnFromJumpTable: push de call PushSGBPals pop hl @@ -1796,12 +1798,12 @@ Function95cc: ret Function95f8: - ld hl, Data98fc + ld hl, BlkPacket_98fc ld de, wcce2 ld bc, $0030 jp CopyBytes -Function9604: +SGB_ApplyPartyMenuHPPals: ld hl, wccd3 ld a, [wcce1] ld e, a @@ -1828,19 +1830,19 @@ Function9604: ret LoadMagikarpPalettes_Intro: - ld hl, Data997c + ld hl, PalPacket_MagikarpIntro jp PushSGBPals LoadForestPalettes2_Intro: - ld hl, Data986c + ld hl, BlkPacket_986c jp PushSGBPals LoadVenusaurPalettes_Intro: - ld hl, Data99ac + ld hl, PalPacket_VenusaurIntro jp PushSGBPals LoadCharizardPalettes_Intro: - ld hl, Data99bc + ld hl, PalPacket_99bc jp PushSGBPals Function9645: @@ -2168,15 +2170,15 @@ SGBDelayCycles: jr nz, .sub_9863 ret -Data986c: +BlkPacket_986c: db $21, $01, $03, $00, $00, $00, $13, $11 db $00, $00, $00, $00, $00, $00, $00, $00 -Data987c: +BlkPacket_GSIntroJigglypuffPikachu: db $21, $01, $07, $05, $00, $0a, $13, $0d db $00, $00, $00, $00, $00, $00, $00, $00 -Data988c: +BlkPacket_Battle: db $22, $05, $07, $0a, $00, $0c, $13, $11 db $03, $05, $01, $00, $0a, $03, $03, $00 @@ -2184,19 +2186,19 @@ Data989c: db $0a, $08, $13, $0a, $03, $0a, $00, $04 db $08, $0b, $03, $0f, $0b, $00, $13, $07 -Data98ac: +BlkPacket_StatsScreen: db $21, $01, $07, $05, $00, $01, $07, $07 db $00, $00, $00, $00, $00, $00, $00, $00 -Data98bc: +BlkPacket_98bc: db $21, $01, $07, $05, $0b, $01, $13, $02 db $00, $00, $00, $00, $00, $00, $00, $00 -Data98cc: +BlkPacket_Pokedex: db $21, $01, $07, $05, $01, $01, $08, $08 db $00, $00, $00, $00, $00, $00, $00, $00 -Data98dc: +BlkPacket_SlotMachine: db $22, $05, $03, $05, $00, $00, $13, $0b db $03, $0a, $00, $04, $13, $09, $02, $0f @@ -2204,7 +2206,7 @@ Data98ec: db $00, $06, $13, $07, $03, $00, $04, $04 db $0f, $09, $03, $00, $00, $0c, $13, $11 -Data98fc: +BlkPacket_98fc: db $23, $07, $07, $10, $00, $00, $02, $0c db $02, $00, $0c, $00, $12, $01, $02, $00 @@ -2216,55 +2218,55 @@ Data991c: db $02, $00, $0c, $08, $12, $09, $02, $00 db $0c, $0a, $12, $0b, $00, $00, $00, $00 -Data992c: +BlkPacket_TrainerGear: db $21, $01, $07, $10, $00, $00, $13, $02 db $00, $00, $00, $00, $00, $00, $00, $00 -Data993c: +BlkPacket_TitleScreen: db $21, $01, $07, $10, $00, $00, $13, $05 db $00, $00, $00, $00, $00, $00, $00, $00 -Data994c: +PalPacket_Poker: db $51, $35, $00, $36, $00, $37, $00, $38 db $00, $00, $00, $00, $00, $00, $00, $00 -Data995c: +PalPacket_995c: db $51, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data996c: +PalPacket_GSIntroShellderLapras: db $51, $2a, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data997c: +PalPacket_MagikarpIntro: db $51, $2b, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data998c: +PalPacket_GSIntroJigglypuffPikachu: db $51, $2c, $00, $2d, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data999c: +PalPacket_GSIntroStartersTransition: db $51, $2e, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data99ac: +PalPacket_VenusaurIntro: db $51, $2f, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data99bc: +PalPacket_99bc: db $51, $30, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data99cc: +PalPacket_PikachuMinigame: db $51, $2d, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data99dc: +PalPacket_PartyMenu: db $51, $22, $00, $23, $00, $24, $00, $25 db $00, $00, $00, $00, $00, $00, $00, $00 -Data99ec: +PalPacket_BattleGrayscale: db $51, $0e, $00, $0e, $00, $0e, $00, $0e db $00, $00, $00, $00, $00, $00, $00, $00 @@ -2272,23 +2274,23 @@ Data99fc: db $51, $26, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a0c: +PalPacket_Pokedex: db $51, $30, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a1c: +PalPacket_SlotMachine: db $51, $31, $00, $32, $00, $33, $00, $34 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a2c: +PalPacket_TitleScreen: db $51, $27, $00, $28, $00, $0f, $00, $13 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a3c: +PalPacket_9a3c: db $51, $0f, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 -Data9a4c: +PalPacket_GFIntro: db $51, $29, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 diff --git a/engine/dumps/bank09.asm b/engine/dumps/bank09.asm index 39d902e..8851fbb 100644 --- a/engine/dumps/bank09.asm +++ b/engine/dumps/bank09.asm @@ -354,7 +354,7 @@ Function2420b: call LoadMenuHeader call MenuBox call UpdateSprites - ld b, SGB_POKEPIC + ld b, SGB_12 call GetSGBLayout xor a ldh [hBGMapMode], a diff --git a/engine/games/pikachu_minigame.asm b/engine/games/pikachu_minigame.asm index de930da..4230771 100644 --- a/engine/games/pikachu_minigame.asm +++ b/engine/games/pikachu_minigame.asm @@ -36,7 +36,7 @@ PikachuMiniGame:: .Init: call DisableLCD - ld b, SGB_BETA_PIKACHU_MINIGAME + ld b, SGB_PIKACHU_MINIGAME call GetSGBLayout callab InitEffectObject call PikachuMiniGame_ClearBothTilemaps diff --git a/engine/movie/game_freak_intro.asm b/engine/movie/game_freak_intro.asm index 9ae95c9..e3474a2 100644 --- a/engine/movie/game_freak_intro.asm +++ b/engine/movie/game_freak_intro.asm @@ -23,7 +23,7 @@ GameFreakIntro:: ld c, 10 call DelayFrames - ld b, SGB_GS_TITLE_SCREEN + ld b, SGB_GF_INTRO call GetSGBLayout callab IntroCopyRightInfo diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 2323d38..8ddf260 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -118,7 +118,7 @@ TitleSequenceInit:: ld a, " " call ByteFill - ld b, $06 + ld b, SGB_TITLE_SCREEN call GetSGBLayout call EnableLCD ld a, $01 diff --git a/engine/trainer_gear.asm b/engine/trainer_gear.asm index 32e3a91..e7ef0db 100644 --- a/engine/trainer_gear.asm +++ b/engine/trainer_gear.asm @@ -89,7 +89,7 @@ TrainerGear_Init: call ClearBGPalettes call DisableLCD call ClearSprites - ld b, SGB_TRAINER_GEAR + ld b, SGB_TRAINERGEAR call GetSGBLayout ld hl, TrainerGearGFX @@ -282,7 +282,7 @@ TrainerGear_Map: call TrainerGear_Next call TrainerGear_ClearView call WaitForAutoBgMapTransfer - ld b, SGB_PACKPALS + ld b, SGB_TRAINERGEAR_MAP call GetSGBLayout ld de, TownMapGFX ld hl, vTilesetEnd @@ -312,7 +312,7 @@ TrainerGear_Radio: call TrainerGear_Next call TrainerGear_ClearView call WaitForAutoBgMapTransfer - ld b, SGB_TRAINER_CARD + ld b, SGB_TRAINERGEAR_RADIO call GetSGBLayout ld de, RadioGFX @@ -595,7 +595,7 @@ TrainerGear_Phone: call TrainerGear_Next call TrainerGear_ClearView call WaitForAutoBgMapTransfer - ld b, SGB_TRAINER_GEAR + ld b, SGB_TRAINERGEAR call GetSGBLayout call LoadFontExtra ld de, .OutOfRangeText -- cgit v1.2.3 From 3384ac5d7a7c8118d6701576680ea1e71624983c Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Mon, 17 May 2021 17:52:23 +0700 Subject: split SGB packet data --- engine/dumps/bank02.asm | 208 ++++-------------------------------------------- 1 file changed, 14 insertions(+), 194 deletions(-) (limited to 'engine') diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm index dbe7866..3afdd61 100755 --- a/engine/dumps/bank02.asm +++ b/engine/dumps/bank02.asm @@ -2142,214 +2142,34 @@ ClearBytes: ret DrawDefaultTiles: - ld hl, vBGMap0 - ld de, $000c + hlbgcoord 0, 0 + ld de, BG_MAP_WIDTH - SCREEN_WIDTH ld a, $80 - ld c, $0d -.sub_9854 - ld b, $14 -.sub_9856 + ld c, 12 + 1 +.line + ld b, SCREEN_WIDTH +.tile ld [hli], a inc a dec b - jr nz, .sub_9856 + jr nz, .tile add hl, de dec c - jr nz, .sub_9854 + jr nz, .line ret SGBDelayCycles: - ld de, $1b58 -.sub_9863 + ld de, 7000 +.wait nop nop nop dec de ld a, d or e - jr nz, .sub_9863 + jr nz, .wait ret -BlkPacket_986c: - db $21, $01, $03, $00, $00, $00, $13, $11 - db $00, $00, $00, $00, $00, $00, $00, $00 - -BlkPacket_GSIntroJigglypuffPikachu: - db $21, $01, $07, $05, $00, $0a, $13, $0d - db $00, $00, $00, $00, $00, $00, $00, $00 - -BlkPacket_Battle: - db $22, $05, $07, $0a, $00, $0c, $13, $11 - db $03, $05, $01, $00, $0a, $03, $03, $00 - -Data989c: - db $0a, $08, $13, $0a, $03, $0a, $00, $04 - db $08, $0b, $03, $0f, $0b, $00, $13, $07 - -BlkPacket_StatsScreen: - db $21, $01, $07, $05, $00, $01, $07, $07 - db $00, $00, $00, $00, $00, $00, $00, $00 - -BlkPacket_98bc: - db $21, $01, $07, $05, $0b, $01, $13, $02 - db $00, $00, $00, $00, $00, $00, $00, $00 - -BlkPacket_Pokedex: - db $21, $01, $07, $05, $01, $01, $08, $08 - db $00, $00, $00, $00, $00, $00, $00, $00 - -BlkPacket_SlotMachine: - db $22, $05, $03, $05, $00, $00, $13, $0b - db $03, $0a, $00, $04, $13, $09, $02, $0f - -Data98ec: - db $00, $06, $13, $07, $03, $00, $04, $04 - db $0f, $09, $03, $00, $00, $0c, $13, $11 - -BlkPacket_98fc: - db $23, $07, $07, $10, $00, $00, $02, $0c - db $02, $00, $0c, $00, $12, $01, $02, $00 - -Data990c: - db $0c, $02, $12, $03, $02, $00, $0c, $04 - db $12, $05, $02, $00, $0c, $06, $12, $07 - -Data991c: - db $02, $00, $0c, $08, $12, $09, $02, $00 - db $0c, $0a, $12, $0b, $00, $00, $00, $00 - -BlkPacket_TrainerGear: - db $21, $01, $07, $10, $00, $00, $13, $02 - db $00, $00, $00, $00, $00, $00, $00, $00 - -BlkPacket_TitleScreen: - db $21, $01, $07, $10, $00, $00, $13, $05 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_Poker: - db $51, $35, $00, $36, $00, $37, $00, $38 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_995c: - db $51, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_GSIntroShellderLapras: - db $51, $2a, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_MagikarpIntro: - db $51, $2b, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_GSIntroJigglypuffPikachu: - db $51, $2c, $00, $2d, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_GSIntroStartersTransition: - db $51, $2e, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_VenusaurIntro: - db $51, $2f, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_99bc: - db $51, $30, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_PikachuMinigame: - db $51, $2d, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_PartyMenu: - db $51, $22, $00, $23, $00, $24, $00, $25 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_BattleGrayscale: - db $51, $0e, $00, $0e, $00, $0e, $00, $0e - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99fc: - db $51, $26, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_Pokedex: - db $51, $30, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_SlotMachine: - db $51, $31, $00, $32, $00, $33, $00, $34 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_TitleScreen: - db $51, $27, $00, $28, $00, $0f, $00, $13 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_9a3c: - db $51, $0f, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalPacket_GFIntro: - db $51, $29, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PalTrnPacket: - db $59, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -MltReq1Packet: - db $89, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -MltReq2Packet: - db $89, $01, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -ChrTrnPacket: - db $99, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -PctTrnPacket: - db $a1, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -MaskEnFreezePacket: - db $b9, $01, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -MaskEnCancelPacket: - db $b9, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -DataSndPacket1: - db $79, $5d, $08, $00, $0b, $8c, $d0, $f4 - db $60, $00, $00, $00, $00, $00, $00, $00 - -DataSndPacket2: - db $79, $52, $08, $00, $0b, $a9, $e7, $9f - db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 - -DataSndPacket3: - db $79, $47, $08, $00, $0b, $c4, $d0, $16 - db $a5, $cb, $c9, $05, $d0, $10, $a2, $28 - -DataSndPacket4: - db $79, $3c, $08, $00, $0b, $f0, $12, $a5 - db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 - -DataSndPacket5: - db $79, $31, $08, $00, $0b, $0c, $a5, $ca - db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e - -DataSndPacket6: - db $79, $26, $08, $00, $0b, $39, $cd, $48 - db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 - -DataSndPacket7: - db $79, $1b, $08, $00, $0b, $ea, $ea, $ea - db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 - -DataSndPacket8: - db $79, $10, $08, $00, $0b, $4c, $20, $08 - db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea +INCLUDE "data/sgb/blk_packets.inc" +INCLUDE "data/sgb/pal_packets.inc" +INCLUDE "data/sgb/ctrl_packets.inc" -- cgit v1.2.3 From 437e556b3dd0d37609e1a629aed473f88c068be3 Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Mon, 17 May 2021 17:59:29 +0700 Subject: Split GFX routines --- engine/dumps/bank02.asm | 921 ------------------------------------ engine/gfx.asm | 139 ------ engine/gfx/load_gfx.asm | 139 ++++++ engine/gfx/set_title_decoration.asm | 33 ++ engine/gfx/sgb_layouts.asm | 897 +++++++++++++++++++++++++++++++++++ 5 files changed, 1069 insertions(+), 1060 deletions(-) delete mode 100644 engine/gfx.asm create mode 100644 engine/gfx/load_gfx.asm create mode 100644 engine/gfx/set_title_decoration.asm create mode 100644 engine/gfx/sgb_layouts.asm (limited to 'engine') diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm index 3afdd61..bb1528c 100755 --- a/engine/dumps/bank02.asm +++ b/engine/dumps/bank02.asm @@ -1252,924 +1252,3 @@ Data8a53: db $3c, $14, $3c, $20, $48, $14, $54, $1c db $54, $2c, $54, $38, $3c, $44, $48, $2c -SECTION "engine/dumps/bank02.asm@SetTitleBGDecorationBorder", ROMX - -SetTitleBGDecorationBorder: - ld de, TitleBGDecorationBorder - ld hl, vChars2 + $500 - lb bc, BANK(TitleBGDecorationBorder), $09 - call Request2bpp - coord hl, 0, 8 - ld b, $50 - call Function91ef - coord hl, 0, 16 - ld b, $54 - call Function91ef - ret - -Function91ef: - xor a - ld c, $14 -.sub_91f2 - and $03 - or b - ld [hli], a - inc a - dec c - jr nz, .sub_91f2 - ret - -SECTION "engine/dumps/bank02.asm@Function928b", ROMX - -LoadSGBLayout: - ld a, b - cp $ff - jr nz, .not_ram - ld a, [wccd0] -.not_ram - cp $fc - jp z, SGB_ApplyPartyMenuHPPals - ld l, a - ld h, 0 - add hl, hl - ld de, .Jumptable - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, _LoadSGBLayout_ReturnFromJumpTable - push de - jp hl - -.Jumptable: - dw SGB_BattleGrayscale - dw SGB_BattleColors - dw SGB_TownMap - dw SGB_StatsScreenHPPals - dw SGB_Pokedex - dw SGB_SlotMachine - dw SGB_TitleScreen - dw SGB_GSIntro - dw SGB_Diploma - dw SGB_MapPals - dw SGB_PartyMenu - dw SGB_Evolution - dw SGB_GFIntro - dw SGB_TrainerCard - dw SGB0e - dw SGB_PikachuMinigame - dw SGB_PokedexSelection - dw SGB_Poker - dw SGB12 - dw SGB_TrainerGear - dw SGB_TrainerGearMap - dw SGB_TrainerGearRadio - -SGB_BattleGrayscale: - ld hl, PalPacket_BattleGrayscale - ld de, BlkPacket_Battle - ret - -SGB_BattleColors: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - - ld a, [wca3f] - ld hl, wca02 - call Function9567 - jr c, .sub_92f7 - - ld e, $00 - call Function9599 -.sub_92f7 - ld b, a - ld a, [wca44] - ld hl, wcdd7 - call Function9567 - jr c, .sub_9308 - ld e, $01 - call Function9599 -.sub_9308 - ld c, a - ld hl, wcce2 - ld a, [wccd1] - add $23 - ld [hli], a - inc hl - ld a, [wccd2] - add $23 - ld [hli], a - inc hl - ld a, b - ld [hli], a - inc hl - ld a, c - ld [hl], a - ld hl, wcce1 - ld de, BlkPacket_Battle - ld a, $01 - ld [wccd0], a - ret - -SGB0e: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld hl, wcce2 - ld [hl], $10 - inc hl - inc hl - ld a, [wccd1] - add $23 - ld [hl], a - ld hl, wcce1 - ld de, BlkPacket_98bc - ret - -SGB_TownMap: - ld hl, Data99fc - ld de, BlkPacket_986c - ret - -SGB_StatsScreenHPPals: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld a, [wMonDexIndex] - call Function956d - call Function957e - push af - ld hl, wcce2 - ld a, [wccd9] - add $23 - ld [hli], a - inc hl - pop af - ld [hl], a - ld hl, wcce1 - ld de, BlkPacket_StatsScreen - ret - -SGB_PartyMenu: - ld hl, PalPacket_PartyMenu - ld de, wcce2 - ret - -SGB_Pokedex: - ld hl, PalPacket_Pokedex - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld a, [wMonDexIndex] - call Function956d - ld hl, wcce4 - ld [hl], a - ld hl, wcce1 - ld de, BlkPacket_Pokedex - ret - -SGB_PokedexSelection: - ld hl, PalPacket_99bc - ld de, BlkPacket_986c - ret - -SGB_SlotMachine: - ld hl, PalPacket_SlotMachine - ld de, BlkPacket_SlotMachine - ret - -SGB_TitleScreen: - ld hl, PalPacket_TitleScreen - ld de, BlkPacket_TitleScreen - ret - -SGB_Diploma: - ld hl, PalPacket_9a3c - ld de, BlkPacket_986c - ret - -SGB_GSIntro: - ld b, 0 - ld hl, .BlkPacketTable -rept 4 - add hl, bc -endr - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - ret - -.BlkPacketTable: - dw BlkPacket_986c, PalPacket_GSIntroShellderLapras - dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu - dw BlkPacket_986c, PalPacket_GSIntroStartersTransition - -SGB_GFIntro: - ld hl, PalPacket_GFIntro - ld de, BlkPacket_986c - ld a, $08 - ld [wccd0], a - ret - -SGB_PikachuMinigame: - ld hl, PalPacket_PikachuMinigame - ld de, BlkPacket_986c - ret - -SGB_Poker: - ld hl, BlkPacket_986c - ld de, wc51a - ld bc, PALPACKET_LENGTH - call CopyBytes - ld hl, PalPacket_Poker - ld de, BlkPacket_986c - ret - -SGB_MapPals: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - call GetMapPalsIndex - ld hl, wcce2 - ld [hld], a - ld de, BlkPacket_986c - ld a, $09 - ld [wccd0], a - ret - -SGB_Evolution: - push bc - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - pop bc - ld a, c - and a - ld a, $0e - jr nz, .sub_9437 - ld a, [wccd1] - call Function956d - call Function957e -.sub_9437 - ld [wcce2], a - ld hl, wcce1 - ld de, BlkPacket_986c - ret - -SGB_TrainerCard: - ld hl, PalPacket_9a3c - ld de, BlkPacket_986c - ret - -SGB12: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld hl, BlkPacket_986c - ld de, wccf1 - ld bc, PALPACKET_LENGTH - call CopyBytes - call GetMapPalsIndex - ld hl, wcce2 - ld [hl], a - ld a, [wMonDexIndex] - call Function956d - ld hl, wcce4 - ld [hl], a - ld hl, wccf4 - ld a, $05 - ld [hli], a - ld a, [wMenuBorderLeftCoord] - ld [hli], a - ld a, [wMenuBorderTopCoord] - ld [hli], a - ld a, [wMenuBorderRightCoord] - ld [hli], a - ld a, [wMenuBorderBottomCoord] - ld [hl], a - ld hl, wcce1 - ld de, wccf1 - ret - -SGB_TrainerGear: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld a, $16 - ld [wcce2], a - ld a, $30 - ld [wcce4], a - ld hl, wcce1 - ld de, BlkPacket_TrainerGear - ret - -SGB_TrainerGearMap: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld a, $16 - ld [wcce2], a - ld a, $26 - ld [wcce4], a - ld hl, wcce1 - ld de, BlkPacket_TrainerGear - ret - -SGB_TrainerGearRadio: - ld hl, PalPacket_995c - ld de, wcce1 - ld bc, PALPACKET_LENGTH - call CopyBytes - ld a, $16 - ld [wcce2], a - ld a, $39 - ld [wcce4], a - ld hl, wcce1 - ld de, BlkPacket_TrainerGear - ret - -GetMapPalsIndex: - ld a, [wMapPermissions] - cp ROUTE - jr z, .is_route - cp CAVE - jr z, .is_cave - cp GATE - jr z, .is_gate - cp ENVIRONMENT_5 - jr z, .env5 - cp INDOOR - jr z, .indoors - call Function9527 - jr c, .sub_9524 - call Function9543 - ret - -.indoors - call Function9536 - jr c, .sub_9524 - call Function9543 - ret - -.is_route - call Function9527 - jr c, .sub_9524 - ld a, $00 - ret - -.is_cave - call Function9527 - jr c, .sub_9524 - ld a, $0c - ret - -.is_gate - ld a, $03 - ret - -.env5 - ld a, $04 - ret - -.sub_9524 - ld a, $0d - ret - -Function9527: - ld a, [wTimeOfDay] - and $03 - jr z, .sub_9534 - cp $03 - jr z, .sub_9534 - scf - ret -.sub_9534 - and a - ret - -Function9536: - ld a, [wTimeOfDay] - and $03 - cp $02 - jr nz, .sub_9541 - scf - ret -.sub_9541 - and a - ret - -Function9543: - ld a, [wMapGroup] - ld e, a - ld d, $00 - ld hl, Data954f - add hl, de - ld a, [hl] - ret - -Data954f: - db $01, $07, $0c, $03, $08, $06, $0b, $04 - db $05, $0a, $02, $03, $02, $02, $09, $01 - -_LoadSGBLayout_ReturnFromJumpTable: - push de - call PushSGBPals - pop hl - jp PushSGBPals - -Function9567: - bit 3, a - ld a, $18 - ret nz - ld a, [hl] - -Function956d: - and a - jr z, .sub_957a - ld e, a - ld d, $00 - ld hl, PokemonPalettes - add hl, de - ld a, [hl] - and a - ret -.sub_957a - ld a, $0f - scf - ret - -Function957e: - push bc - push af - ld hl, wPartyMon1DVs - ld a, [wWhichPokemon] - ld bc, $0030 - call AddNTimes - call Function95b0 - ld b, $00 - jr nc, .sub_9595 - ld b, $0a -.sub_9595 - pop af - add b - pop bc - ret - -Function9599: - push bc - push af - ld a, e - and a - ld a, [wcae1] - jr z, .sub_95a4 - srl a -.sub_95a4 - srl a - ld b, $00 - jr nc, .sub_95ac - ld b, $0a -.sub_95ac - pop af - add b - pop bc - ret - -Function95b0: - ld a, [hl] - cp $a0 - jr c, .sub_95ca - ld a, [hli] - and $0f - cp $0a - jr c, .sub_95ca - ld a, [hl] - cp $a0 - jr c, .sub_95ca - ld a, [hl] - and $0f - cp $0a - jr c, .sub_95ca - scf - ret -.sub_95ca - and a - ret - -Function95cc: - ld hl, wcddf - ldh a, [hBattleTurn] - and a - jr nz, .sub_95d7 - ld hl, wca08 -.sub_95d7 - call Function95b0 - ld hl, wcae1 - jr nc, .sub_95ec - ldh a, [hBattleTurn] - and a - jr nz, .sub_95e8 - set 0, [hl] - jr .sub_95f7 -.sub_95e8 - set 1, [hl] - jr .sub_95f7 -.sub_95ec - ldh a, [hBattleTurn] - and a - jr nz, .sub_95f5 - res 0, [hl] - jr .sub_95f7 -.sub_95f5 - res 1, [hl] -.sub_95f7 - ret - -Function95f8: - ld hl, BlkPacket_98fc - ld de, wcce2 - ld bc, $0030 - jp CopyBytes - -SGB_ApplyPartyMenuHPPals: - ld hl, wccd3 - ld a, [wcce1] - ld e, a - ld d, $00 - add hl, de - ld e, l - ld d, h - ld a, [de] - and a - ld e, $05 - jr z, .sub_961d - dec a - ld e, $0a - jr z, .sub_961d - ld e, $0f -.sub_961d - push de - ld hl, wcceb - ld bc, $0006 - ld a, [wcce1] - call AddNTimes - pop de - ld [hl], e - ret - -LoadMagikarpPalettes_Intro: - ld hl, PalPacket_MagikarpIntro - jp PushSGBPals - -LoadForestPalettes2_Intro: - ld hl, BlkPacket_986c - jp PushSGBPals - -LoadVenusaurPalettes_Intro: - ld hl, PalPacket_VenusaurIntro - jp PushSGBPals - -LoadCharizardPalettes_Intro: - ld hl, PalPacket_99bc - jp PushSGBPals - -Function9645: - ld hl, wc51a - jp PushSGBPals - -PushSGBPals: - ld a, [wJoypadFlags] - push af - set 7, a - ld [wJoypadFlags], a - call _PushSGBPals - pop af - ld [wJoypadFlags], a - ret - -_PushSGBPals: - ld a, [hl] - and $7 - ret z - ld b, a -.loop - push bc - xor a - ldh [rJOYP], a - ld a, $30 - ldh [rJOYP], a - ld b, $10 -.loop2 - ld e, $08 - ld a, [hli] - ld d, a -.loop3 - bit 0, d - ld a, $10 - jr nz, .ok - ld a, $20 -.ok - ldh [rJOYP], a - ld a, $30 - ldh [rJOYP], a - rr d - dec e - jr nz, .loop3 - dec b - jr nz, .loop2 - ld a, $20 - ldh [rJOYP], a - ld a, $30 - ldh [rJOYP], a - call SGBDelayCycles - pop bc - dec b - jr nz, .loop - ret - -CheckSGB: - ld a, [wJoypadFlags] - push af - set 7, a - ld [wJoypadFlags], a - - xor a - ldh [rJOYP], a - ld [wSGB], a - call PushSGBBorderPalsAndWait - jr nc, .skip - ld a, 1 - ld [wSGB], a - call _InitSGBBorderPals - call PushSGBBorder - call SGBBorder_PushBGPals - call SGB_ClearVRAM - ld hl, MaskEnCancelPacket - call _PushSGBPals -.skip - pop af - ld [wJoypadFlags], a - ret - -_InitSGBBorderPals: - ld hl, .PacketPointerTable - ld c, 9 - -.loop - push bc - ld a, [hli] - push hl - ld h, [hl] - ld l, a - call _PushSGBPals - pop hl - inc hl - pop bc - dec c - jr nz, .loop - ret - -.PacketPointerTable: - dw MaskEnFreezePacket - dw DataSndPacket1 - dw DataSndPacket2 - dw DataSndPacket3 - dw DataSndPacket4 - dw DataSndPacket5 - dw DataSndPacket6 - dw DataSndPacket7 - dw DataSndPacket8 - -UpdateSGBBorder: - ld a, [wSGB] - ret z - di - xor a - ldh [rJOYP], a - ld hl, MaskEnFreezePacket - call _PushSGBPals - call PushSGBBorder - ld hl, MaskEnCancelPacket - call _PushSGBPals - ei - ret - -PushSGBBorder: - call .LoadSGBBorderPointers - push de - call SGBBorder_YetMorePalPushing - pop hl - call SGBBorder_MorePalPushing - ret - -.LoadSGBBorderPointers: - ld a, [wce5f] - bit 3, a - jr nz, .spaceworld_border - -; load alternate border - ld hl, UnusedSGBBorderGFX - ld de, UnusedSGBBorderTilemap - ret - -.spaceworld_border - ld hl, SGBBorderGFX - ld de, SGBBorderTilemap - ret - -SGB_ClearVRAM: - ld hl, vChars0 - ld bc, $2000 - xor a - call ByteFill - ret - -PushSGBBorderPalsAndWait: - ld hl, MltReq2Packet - call _PushSGBPals - call SGBDelayCycles - ldh a, [rJOYP] - and $3 - cp $3 - jr nz, .carry - ld a, $20 - ldh [rJOYP], a - ldh a, [rJOYP] - ldh a, [rJOYP] - call SGBDelayCycles - call SGBDelayCycles - ld a, $30 - ldh [rJOYP], a - call SGBDelayCycles - call SGBDelayCycles - ld a, $10 - ldh [rJOYP], a -rept 6 - ldh a, [rJOYP] -endr - call SGBDelayCycles - call SGBDelayCycles - ld a, $30 - ldh [rJOYP], a - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - call SGBDelayCycles - call SGBDelayCycles - ldh a, [rJOYP] - and $3 - cp $3 - jr nz, .carry - call .FinalPush - and a - ret - -.carry - call .FinalPush - scf - ret - -.FinalPush: - ld hl, MltReq1Packet - call _PushSGBPals - jp SGBDelayCycles - -SGBBorder_PushBGPals: - call DisableLCD - ld a, %11100100 - ldh [rBGP], a - ld hl, SuperPalettes - ld de, vChars1 - ld bc, $1000 - call CopyData - call DrawDefaultTiles - ld a, $e3 - ldh [rLCDC], a - ld hl, PalTrnPacket - call _PushSGBPals - xor a - ldh [rBGP], a - ret - -SGBBorder_MorePalPushing: - call DisableLCD - ld a, %11100100 - ldh [rBGP], a - ld de, vChars1 - ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 - call CopyData - ld b, SCREEN_HEIGHT -.loop - push bc - ld bc, 6 * 2 - call CopyData - ld bc, SCREEN_WIDTH * 2 - call ClearBytes - ld bc, 6 * 2 - call CopyData - pop bc - dec b - jr nz, .loop - ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 - call CopyData - ld bc, $100 - call ClearBytes - ld bc, $80 - call CopyData - call DrawDefaultTiles - ld a, $e3 - ldh [rLCDC], a - ld hl, PctTrnPacket - call _PushSGBPals - xor a - ldh [rBGP], a - ret - -SGBBorder_YetMorePalPushing: - call DisableLCD - ld a, $e4 - ldh [rBGP], a - ld de, vChars1 - ld b, $80 -.loop - push bc - ld bc, $10 - call CopyData - ld bc, $10 - call ClearBytes - pop bc - dec b - jr nz, .loop - call DrawDefaultTiles - ld a, $e3 - ldh [rLCDC], a - ld hl, ChrTrnPacket - call _PushSGBPals - xor a - ldh [rBGP], a - ret - -CopyData: - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, CopyData - ret - -ClearBytes: - xor a - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, ClearBytes - ret - -DrawDefaultTiles: - hlbgcoord 0, 0 - ld de, BG_MAP_WIDTH - SCREEN_WIDTH - ld a, $80 - ld c, 12 + 1 -.line - ld b, SCREEN_WIDTH -.tile - ld [hli], a - inc a - dec b - jr nz, .tile - add hl, de - dec c - jr nz, .line - ret - -SGBDelayCycles: - ld de, 7000 -.wait - nop - nop - nop - dec de - ld a, d - or e - jr nz, .wait - ret - -INCLUDE "data/sgb/blk_packets.inc" -INCLUDE "data/sgb/pal_packets.inc" -INCLUDE "data/sgb/ctrl_packets.inc" diff --git a/engine/gfx.asm b/engine/gfx.asm deleted file mode 100644 index 5700904..0000000 --- a/engine/gfx.asm +++ /dev/null @@ -1,139 +0,0 @@ -INCLUDE "constants.asm" - -SECTION "engine/gfx.asm", ROMX - -LoadFontGraphics:: - ld de, FontGFX - ld hl, $8800 - lb bc, BANK(FontGFX), ((FontGFX.End - FontGFX) / LEN_1BPP_TILE) - jp Get1bpp -LoadFontExtraGraphicsWithCursor:: - ld de, FontExtraCDEFGHIVSLM_GFX - ld hl, $9620 - lb bc, BANK(FontExtraCDEFGHIVSLM_GFX), ((FontSmallKanaPunctuationGFX.End - FontExtraCDEFGHIVSLM_GFX) / LEN_2BPP_TILE) - call Get2bpp - ld de, BlackTileAndCursor1bppGFX - ld hl, $9600 - lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFX.End - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE) - call Get1bpp - jr LoadActiveFrameGraphics -LoadPokemonMenuGraphics:: - ld de, BattleHPBarGFX - ld hl, $9600 - lb bc, BANK(BattleHPBarGFX), ((LevelUpGFX.End - BattleHPBarGFX) / LEN_2BPP_TILE) - call Get2bpp - jr LoadActiveFrameGraphics -LoadToolgearGraphicsDebug:: - call LoadActiveFrameGraphics - ld hl, $d153 - bit 0, [hl] - jr z, .loadToolgearGraphics - ld hl, $9660 - ld de, FontGFX + (("0" - "ア") * $08) - lb bc, BANK(FontGFX), ("9" - "0" + 1) - call Get1bpp - ld hl, $9700 - ld de, FontExtraAB_GFX - lb bc, BANK(FontExtraAB_GFX), ("F" - "A" + 1) - call Get2bpp - ret -.loadToolgearGraphics:: - ld hl, $9660 - ld de, FontGFX + (("0" - "ア") * $08) - lb bc, BANK(FontGFX), ("9" - "0" + 1) - call Get1bpp - ld hl, $9700 - ld de, TrainerCardColonGFX - lb bc, BANK(TrainerCardColonGFX), 1 ; tile - call Get2bpp - ld hl, $9710 - ld de, HUD_GFX - lb bc, BANK(HUD_GFX), ((HUD_GFX.End - HUD_GFX) / LEN_2BPP_TILE) - call Get2bpp - ret -LoadActiveFrameGraphics:: - ld a, [wActiveFrame] - ld bc, (FrameGFX.FirstEntryEnd - FrameGFX) - ld hl, FrameGFX - call AddNTimes - ld d, h - ld e, l - ld hl, $9790 - lb bc, BANK(FrameGFX), ((FrameGFX.FirstEntryEnd - FrameGFX) / LEN_1BPP_TILE) - call Get1bpp - ld hl, $97f0 - ld de, EmptyTile1bppGFX - lb bc, BANK(EmptyTile1bppGFX), ((EmptyTile1bppGFX.End - EmptyTile1bppGFX) / LEN_1BPP_TILE) - call Get1bpp - ret -LoadPokeDexGraphics:: - call LoadPokemonMenuGraphics - ld de, PokedexGFX - ld hl, $9600 - lb bc, BANK(PokedexGFX), ((PokedexGFX.End - PokedexGFX) / LEN_2BPP_TILE + 5) ; copies first 5 tiles of TownMapGFX - call Get2bpp - ld de, PokeBallsGFX - ld hl, $9720 - lb bc, BANK(PokeBallsGFX), 1 ; 1 of 4 tiles - jp Get2bpp -LoadBattleGraphics:: - ld de, BattleHPBarGFX - ld hl, $9600 - lb bc, BANK(BattleHPBarGFX), ((BattleHPBarGFX.End - BattleHPBarGFX) / LEN_2BPP_TILE) - call Get2bpp - ld hl, $9700 - ld de, BattleMarkersGFX - lb bc, BANK(BattleMarkersGFX), ((BattleMarkersGFX.End - BattleMarkersGFX) / LEN_2BPP_TILE) - call Get2bpp - call LoadActiveFrameGraphics - ld de, HpExpBarParts0GFX - ld hl, $96c0 - lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFX.End - HpExpBarParts0GFX) / LEN_1BPP_TILE) - call Get1bpp - ld de, HpExpBarParts1GFX - ld hl, $9730 - lb bc, BANK(HpExpBarParts1GFX), ((HpExpBarParts3GFX.End - HpExpBarParts1GFX) / LEN_1BPP_TILE) - call Get1bpp - ld de, ExpBarGFX - ld hl, $9550 - lb bc, BANK(ExpBarGFX), ((ExpBarGFX.End - ExpBarGFX) / LEN_2BPP_TILE) - call Get2bpp - ret -LoadPokemonStatsGraphics:: - call LoadPokemonMenuGraphics - ld de, HpExpBarParts0GFX - ld hl, $96c0 - lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFX.End - HpExpBarParts0GFX) / LEN_1BPP_TILE) - call Get1bpp - ld de, HpExpBarParts1GFX - ld hl, $9780 - lb bc, BANK(HpExpBarParts1GFX), 1 ; 1 of 6 tiles - call Get1bpp - ld de, HpExpBarParts2GFX - ld hl, $9760 - lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts2GFX.End - HpExpBarParts2GFX) / LEN_1BPP_TILE) - call Get1bpp - ld de, ExpBarGFX - ld hl, $9550 - lb bc, BANK(ExpBarGFX), ((ExpBarGFX.End - ExpBarGFX) / LEN_2BPP_TILE) - call Get2bpp -LoadOnlyPokemonStatsGraphics:: - ld de, StatsGFX - ld hl, $9310 - lb bc, BANK(StatsGFX), ((StatsGFX.End - StatsGFX) / LEN_2BPP_TILE) - call Get2bpp - ret -LoadBackpackGraphics:: - ld de, BlackTileAndCursor1bppGFX - ld hl, $9600 - lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFX.End - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE) - call Get1bpp - ld de, PackIconGFX - ld hl, $9620 - lb bc, BANK(PackIconGFX), 12 ; 12 of 15 tiles - call Get2bpp - ld de, FontSmallKanaPunctuationGFX - ld hl, $96e0 - lb bc, BANK(FontSmallKanaPunctuationGFX), ((FontSmallKanaPunctuationGFX.End - FontSmallKanaPunctuationGFX) / LEN_2BPP_TILE) - call Get2bpp - jp LoadActiveFrameGraphics diff --git a/engine/gfx/load_gfx.asm b/engine/gfx/load_gfx.asm new file mode 100644 index 0000000..c628c67 --- /dev/null +++ b/engine/gfx/load_gfx.asm @@ -0,0 +1,139 @@ +INCLUDE "constants.asm" + +SECTION "engine/gfx/load_gfx.asm", ROMX + +LoadFontGraphics:: + ld de, FontGFX + ld hl, $8800 + lb bc, BANK(FontGFX), ((FontGFX.End - FontGFX) / LEN_1BPP_TILE) + jp Get1bpp +LoadFontExtraGraphicsWithCursor:: + ld de, FontExtraCDEFGHIVSLM_GFX + ld hl, $9620 + lb bc, BANK(FontExtraCDEFGHIVSLM_GFX), ((FontSmallKanaPunctuationGFX.End - FontExtraCDEFGHIVSLM_GFX) / LEN_2BPP_TILE) + call Get2bpp + ld de, BlackTileAndCursor1bppGFX + ld hl, $9600 + lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFX.End - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE) + call Get1bpp + jr LoadActiveFrameGraphics +LoadPokemonMenuGraphics:: + ld de, BattleHPBarGFX + ld hl, $9600 + lb bc, BANK(BattleHPBarGFX), ((LevelUpGFX.End - BattleHPBarGFX) / LEN_2BPP_TILE) + call Get2bpp + jr LoadActiveFrameGraphics +LoadToolgearGraphicsDebug:: + call LoadActiveFrameGraphics + ld hl, $d153 + bit 0, [hl] + jr z, .loadToolgearGraphics + ld hl, $9660 + ld de, FontGFX + (("0" - "ア") * $08) + lb bc, BANK(FontGFX), ("9" - "0" + 1) + call Get1bpp + ld hl, $9700 + ld de, FontExtraAB_GFX + lb bc, BANK(FontExtraAB_GFX), ("F" - "A" + 1) + call Get2bpp + ret +.loadToolgearGraphics:: + ld hl, $9660 + ld de, FontGFX + (("0" - "ア") * $08) + lb bc, BANK(FontGFX), ("9" - "0" + 1) + call Get1bpp + ld hl, $9700 + ld de, TrainerCardColonGFX + lb bc, BANK(TrainerCardColonGFX), 1 ; tile + call Get2bpp + ld hl, $9710 + ld de, HUD_GFX + lb bc, BANK(HUD_GFX), ((HUD_GFX.End - HUD_GFX) / LEN_2BPP_TILE) + call Get2bpp + ret +LoadActiveFrameGraphics:: + ld a, [wActiveFrame] + ld bc, (FrameGFX.FirstEntryEnd - FrameGFX) + ld hl, FrameGFX + call AddNTimes + ld d, h + ld e, l + ld hl, $9790 + lb bc, BANK(FrameGFX), ((FrameGFX.FirstEntryEnd - FrameGFX) / LEN_1BPP_TILE) + call Get1bpp + ld hl, $97f0 + ld de, EmptyTile1bppGFX + lb bc, BANK(EmptyTile1bppGFX), ((EmptyTile1bppGFX.End - EmptyTile1bppGFX) / LEN_1BPP_TILE) + call Get1bpp + ret +LoadPokeDexGraphics:: + call LoadPokemonMenuGraphics + ld de, PokedexGFX + ld hl, $9600 + lb bc, BANK(PokedexGFX), ((PokedexGFX.End - PokedexGFX) / LEN_2BPP_TILE + 5) ; copies first 5 tiles of TownMapGFX + call Get2bpp + ld de, PokeBallsGFX + ld hl, $9720 + lb bc, BANK(PokeBallsGFX), 1 ; 1 of 4 tiles + jp Get2bpp +LoadBattleGraphics:: + ld de, BattleHPBarGFX + ld hl, $9600 + lb bc, BANK(BattleHPBarGFX), ((BattleHPBarGFX.End - BattleHPBarGFX) / LEN_2BPP_TILE) + call Get2bpp + ld hl, $9700 + ld de, BattleMarkersGFX + lb bc, BANK(BattleMarkersGFX), ((BattleMarkersGFX.End - BattleMarkersGFX) / LEN_2BPP_TILE) + call Get2bpp + call LoadActiveFrameGraphics + ld de, HpExpBarParts0GFX + ld hl, $96c0 + lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFX.End - HpExpBarParts0GFX) / LEN_1BPP_TILE) + call Get1bpp + ld de, HpExpBarParts1GFX + ld hl, $9730 + lb bc, BANK(HpExpBarParts1GFX), ((HpExpBarParts3GFX.End - HpExpBarParts1GFX) / LEN_1BPP_TILE) + call Get1bpp + ld de, ExpBarGFX + ld hl, $9550 + lb bc, BANK(ExpBarGFX), ((ExpBarGFX.End - ExpBarGFX) / LEN_2BPP_TILE) + call Get2bpp + ret +LoadPokemonStatsGraphics:: + call LoadPokemonMenuGraphics + ld de, HpExpBarParts0GFX + ld hl, $96c0 + lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFX.End - HpExpBarParts0GFX) / LEN_1BPP_TILE) + call Get1bpp + ld de, HpExpBarParts1GFX + ld hl, $9780 + lb bc, BANK(HpExpBarParts1GFX), 1 ; 1 of 6 tiles + call Get1bpp + ld de, HpExpBarParts2GFX + ld hl, $9760 + lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts2GFX.End - HpExpBarParts2GFX) / LEN_1BPP_TILE) + call Get1bpp + ld de, ExpBarGFX + ld hl, $9550 + lb bc, BANK(ExpBarGFX), ((ExpBarGFX.End - ExpBarGFX) / LEN_2BPP_TILE) + call Get2bpp +LoadOnlyPokemonStatsGraphics:: + ld de, StatsGFX + ld hl, $9310 + lb bc, BANK(StatsGFX), ((StatsGFX.End - StatsGFX) / LEN_2BPP_TILE) + call Get2bpp + ret +LoadBackpackGraphics:: + ld de, BlackTileAndCursor1bppGFX + ld hl, $9600 + lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFX.End - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE) + call Get1bpp + ld de, PackIconGFX + ld hl, $9620 + lb bc, BANK(PackIconGFX), 12 ; 12 of 15 tiles + call Get2bpp + ld de, FontSmallKanaPunctuationGFX + ld hl, $96e0 + lb bc, BANK(FontSmallKanaPunctuationGFX), ((FontSmallKanaPunctuationGFX.End - FontSmallKanaPunctuationGFX) / LEN_2BPP_TILE) + call Get2bpp + jp LoadActiveFrameGraphics diff --git a/engine/gfx/set_title_decoration.asm b/engine/gfx/set_title_decoration.asm new file mode 100644 index 0000000..1a4f2fe --- /dev/null +++ b/engine/gfx/set_title_decoration.asm @@ -0,0 +1,33 @@ +INCLUDE "constants.asm" + +SECTION "engine/gfx/set_title_decoration.asm", ROMX + +SetTitleBGDecorationBorder: + ld de, TitleBGDecorationBorder + ld hl, vChars2 + $500 + lb bc, BANK(TitleBGDecorationBorder), 9 + call Request2bpp + +; top row + coord hl, 0, 8 + ld b, $50 + call .PlaceRow + +; bottom row + coord hl, 0, 16 + ld b, $54 + call .PlaceRow + ret + +.PlaceRow: + xor a + ld c, SCREEN_WIDTH +.loop + and $03 + or b + ld [hli], a + inc a + dec c + jr nz, .loop + ret + diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm new file mode 100644 index 0000000..f825127 --- /dev/null +++ b/engine/gfx/sgb_layouts.asm @@ -0,0 +1,897 @@ +INCLUDE "constants.asm" + +SECTION "engine/gfx/sgb_layouts.asm", ROMX + +LoadSGBLayout: + ld a, b + cp $ff + jr nz, .not_ram + ld a, [wccd0] +.not_ram + cp $fc + jp z, SGB_ApplyPartyMenuHPPals + ld l, a + ld h, 0 + add hl, hl + ld de, .Jumptable + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, _LoadSGBLayout_ReturnFromJumpTable + push de + jp hl + +.Jumptable: + dw SGB_BattleGrayscale + dw SGB_BattleColors + dw SGB_TownMap + dw SGB_StatsScreenHPPals + dw SGB_Pokedex + dw SGB_SlotMachine + dw SGB_TitleScreen + dw SGB_GSIntro + dw SGB_Diploma + dw SGB_MapPals + dw SGB_PartyMenu + dw SGB_Evolution + dw SGB_GFIntro + dw SGB_TrainerCard + dw SGB0e + dw SGB_PikachuMinigame + dw SGB_PokedexSelection + dw SGB_Poker + dw SGB12 + dw SGB_TrainerGear + dw SGB_TrainerGearMap + dw SGB_TrainerGearRadio + +SGB_BattleGrayscale: + ld hl, PalPacket_BattleGrayscale + ld de, BlkPacket_Battle + ret + +SGB_BattleColors: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + + ld a, [wca3f] + ld hl, wca02 + call Function9567 + jr c, .sub_92f7 + + ld e, $00 + call Function9599 +.sub_92f7 + ld b, a + ld a, [wca44] + ld hl, wcdd7 + call Function9567 + jr c, .sub_9308 + ld e, $01 + call Function9599 +.sub_9308 + ld c, a + ld hl, wcce2 + ld a, [wccd1] + add $23 + ld [hli], a + inc hl + ld a, [wccd2] + add $23 + ld [hli], a + inc hl + ld a, b + ld [hli], a + inc hl + ld a, c + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_Battle + ld a, $01 + ld [wccd0], a + ret + +SGB0e: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld hl, wcce2 + ld [hl], $10 + inc hl + inc hl + ld a, [wccd1] + add $23 + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_98bc + ret + +SGB_TownMap: + ld hl, Data99fc + ld de, BlkPacket_986c + ret + +SGB_StatsScreenHPPals: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, [wMonDexIndex] + call Function956d + call Function957e + push af + ld hl, wcce2 + ld a, [wccd9] + add $23 + ld [hli], a + inc hl + pop af + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_StatsScreen + ret + +SGB_PartyMenu: + ld hl, PalPacket_PartyMenu + ld de, wcce2 + ret + +SGB_Pokedex: + ld hl, PalPacket_Pokedex + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, [wMonDexIndex] + call Function956d + ld hl, wcce4 + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_Pokedex + ret + +SGB_PokedexSelection: + ld hl, PalPacket_99bc + ld de, BlkPacket_986c + ret + +SGB_SlotMachine: + ld hl, PalPacket_SlotMachine + ld de, BlkPacket_SlotMachine + ret + +SGB_TitleScreen: + ld hl, PalPacket_TitleScreen + ld de, BlkPacket_TitleScreen + ret + +SGB_Diploma: + ld hl, PalPacket_9a3c + ld de, BlkPacket_986c + ret + +SGB_GSIntro: + ld b, 0 + ld hl, .BlkPacketTable +rept 4 + add hl, bc +endr + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ret + +.BlkPacketTable: + dw BlkPacket_986c, PalPacket_GSIntroShellderLapras + dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu + dw BlkPacket_986c, PalPacket_GSIntroStartersTransition + +SGB_GFIntro: + ld hl, PalPacket_GFIntro + ld de, BlkPacket_986c + ld a, $08 + ld [wccd0], a + ret + +SGB_PikachuMinigame: + ld hl, PalPacket_PikachuMinigame + ld de, BlkPacket_986c + ret + +SGB_Poker: + ld hl, BlkPacket_986c + ld de, wc51a + ld bc, PALPACKET_LENGTH + call CopyBytes + ld hl, PalPacket_Poker + ld de, BlkPacket_986c + ret + +SGB_MapPals: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + call GetMapPalsIndex + ld hl, wcce2 + ld [hld], a + ld de, BlkPacket_986c + ld a, $09 + ld [wccd0], a + ret + +SGB_Evolution: + push bc + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + pop bc + ld a, c + and a + ld a, $0e + jr nz, .sub_9437 + ld a, [wccd1] + call Function956d + call Function957e +.sub_9437 + ld [wcce2], a + ld hl, wcce1 + ld de, BlkPacket_986c + ret + +SGB_TrainerCard: + ld hl, PalPacket_9a3c + ld de, BlkPacket_986c + ret + +SGB12: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld hl, BlkPacket_986c + ld de, wccf1 + ld bc, PALPACKET_LENGTH + call CopyBytes + call GetMapPalsIndex + ld hl, wcce2 + ld [hl], a + ld a, [wMonDexIndex] + call Function956d + ld hl, wcce4 + ld [hl], a + ld hl, wccf4 + ld a, $05 + ld [hli], a + ld a, [wMenuBorderLeftCoord] + ld [hli], a + ld a, [wMenuBorderTopCoord] + ld [hli], a + ld a, [wMenuBorderRightCoord] + ld [hli], a + ld a, [wMenuBorderBottomCoord] + ld [hl], a + ld hl, wcce1 + ld de, wccf1 + ret + +SGB_TrainerGear: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, $16 + ld [wcce2], a + ld a, $30 + ld [wcce4], a + ld hl, wcce1 + ld de, BlkPacket_TrainerGear + ret + +SGB_TrainerGearMap: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, $16 + ld [wcce2], a + ld a, $26 + ld [wcce4], a + ld hl, wcce1 + ld de, BlkPacket_TrainerGear + ret + +SGB_TrainerGearRadio: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, $16 + ld [wcce2], a + ld a, $39 + ld [wcce4], a + ld hl, wcce1 + ld de, BlkPacket_TrainerGear + ret + +GetMapPalsIndex: + ld a, [wMapPermissions] + cp ROUTE + jr z, .is_route + cp CAVE + jr z, .is_cave + cp GATE + jr z, .is_gate + cp ENVIRONMENT_5 + jr z, .env5 + cp INDOOR + jr z, .indoors + call Function9527 + jr c, .sub_9524 + call Function9543 + ret + +.indoors + call Function9536 + jr c, .sub_9524 + call Function9543 + ret + +.is_route + call Function9527 + jr c, .sub_9524 + ld a, $00 + ret + +.is_cave + call Function9527 + jr c, .sub_9524 + ld a, $0c + ret + +.is_gate + ld a, $03 + ret + +.env5 + ld a, $04 + ret + +.sub_9524 + ld a, $0d + ret + +Function9527: + ld a, [wTimeOfDay] + and $03 + jr z, .sub_9534 + cp $03 + jr z, .sub_9534 + scf + ret +.sub_9534 + and a + ret + +Function9536: + ld a, [wTimeOfDay] + and $03 + cp $02 + jr nz, .sub_9541 + scf + ret +.sub_9541 + and a + ret + +Function9543: + ld a, [wMapGroup] + ld e, a + ld d, $00 + ld hl, Data954f + add hl, de + ld a, [hl] + ret + +Data954f: + db $01, $07, $0c, $03, $08, $06, $0b, $04 + db $05, $0a, $02, $03, $02, $02, $09, $01 + +_LoadSGBLayout_ReturnFromJumpTable: + push de + call PushSGBPals + pop hl + jp PushSGBPals + +Function9567: + bit 3, a + ld a, $18 + ret nz + ld a, [hl] + +Function956d: + and a + jr z, .sub_957a + ld e, a + ld d, $00 + ld hl, PokemonPalettes + add hl, de + ld a, [hl] + and a + ret +.sub_957a + ld a, $0f + scf + ret + +Function957e: + push bc + push af + ld hl, wPartyMon1DVs + ld a, [wWhichPokemon] + ld bc, $0030 + call AddNTimes + call Function95b0 + ld b, $00 + jr nc, .sub_9595 + ld b, $0a +.sub_9595 + pop af + add b + pop bc + ret + +Function9599: + push bc + push af + ld a, e + and a + ld a, [wcae1] + jr z, .sub_95a4 + srl a +.sub_95a4 + srl a + ld b, $00 + jr nc, .sub_95ac + ld b, $0a +.sub_95ac + pop af + add b + pop bc + ret + +Function95b0: + ld a, [hl] + cp $a0 + jr c, .sub_95ca + ld a, [hli] + and $0f + cp $0a + jr c, .sub_95ca + ld a, [hl] + cp $a0 + jr c, .sub_95ca + ld a, [hl] + and $0f + cp $0a + jr c, .sub_95ca + scf + ret +.sub_95ca + and a + ret + +Function95cc: + ld hl, wcddf + ldh a, [hBattleTurn] + and a + jr nz, .sub_95d7 + ld hl, wca08 +.sub_95d7 + call Function95b0 + ld hl, wcae1 + jr nc, .sub_95ec + ldh a, [hBattleTurn] + and a + jr nz, .sub_95e8 + set 0, [hl] + jr .sub_95f7 +.sub_95e8 + set 1, [hl] + jr .sub_95f7 +.sub_95ec + ldh a, [hBattleTurn] + and a + jr nz, .sub_95f5 + res 0, [hl] + jr .sub_95f7 +.sub_95f5 + res 1, [hl] +.sub_95f7 + ret + +Function95f8: + ld hl, BlkPacket_98fc + ld de, wcce2 + ld bc, $0030 + jp CopyBytes + +SGB_ApplyPartyMenuHPPals: + ld hl, wccd3 + ld a, [wcce1] + ld e, a + ld d, $00 + add hl, de + ld e, l + ld d, h + ld a, [de] + and a + ld e, $05 + jr z, .sub_961d + dec a + ld e, $0a + jr z, .sub_961d + ld e, $0f +.sub_961d + push de + ld hl, wcceb + ld bc, $0006 + ld a, [wcce1] + call AddNTimes + pop de + ld [hl], e + ret + +LoadMagikarpPalettes_Intro: + ld hl, PalPacket_MagikarpIntro + jp PushSGBPals + +LoadForestPalettes2_Intro: + ld hl, BlkPacket_986c + jp PushSGBPals + +LoadVenusaurPalettes_Intro: + ld hl, PalPacket_VenusaurIntro + jp PushSGBPals + +LoadCharizardPalettes_Intro: + ld hl, PalPacket_99bc + jp PushSGBPals + +Function9645: + ld hl, wc51a + jp PushSGBPals + +PushSGBPals: + ld a, [wJoypadFlags] + push af + set 7, a + ld [wJoypadFlags], a + call _PushSGBPals + pop af + ld [wJoypadFlags], a + ret + +_PushSGBPals: + ld a, [hl] + and $7 + ret z + ld b, a +.loop + push bc + xor a + ldh [rJOYP], a + ld a, $30 + ldh [rJOYP], a + ld b, $10 +.loop2 + ld e, $08 + ld a, [hli] + ld d, a +.loop3 + bit 0, d + ld a, $10 + jr nz, .ok + ld a, $20 +.ok + ldh [rJOYP], a + ld a, $30 + ldh [rJOYP], a + rr d + dec e + jr nz, .loop3 + dec b + jr nz, .loop2 + ld a, $20 + ldh [rJOYP], a + ld a, $30 + ldh [rJOYP], a + call SGBDelayCycles + pop bc + dec b + jr nz, .loop + ret + +CheckSGB: + ld a, [wJoypadFlags] + push af + set 7, a + ld [wJoypadFlags], a + + xor a + ldh [rJOYP], a + ld [wSGB], a + call PushSGBBorderPalsAndWait + jr nc, .skip + ld a, 1 + ld [wSGB], a + call _InitSGBBorderPals + call PushSGBBorder + call SGBBorder_PushBGPals + call SGB_ClearVRAM + ld hl, MaskEnCancelPacket + call _PushSGBPals +.skip + pop af + ld [wJoypadFlags], a + ret + +_InitSGBBorderPals: + ld hl, .PacketPointerTable + ld c, 9 + +.loop + push bc + ld a, [hli] + push hl + ld h, [hl] + ld l, a + call _PushSGBPals + pop hl + inc hl + pop bc + dec c + jr nz, .loop + ret + +.PacketPointerTable: + dw MaskEnFreezePacket + dw DataSndPacket1 + dw DataSndPacket2 + dw DataSndPacket3 + dw DataSndPacket4 + dw DataSndPacket5 + dw DataSndPacket6 + dw DataSndPacket7 + dw DataSndPacket8 + +UpdateSGBBorder: + ld a, [wSGB] + ret z + di + xor a + ldh [rJOYP], a + ld hl, MaskEnFreezePacket + call _PushSGBPals + call PushSGBBorder + ld hl, MaskEnCancelPacket + call _PushSGBPals + ei + ret + +PushSGBBorder: + call .LoadSGBBorderPointers + push de + call SGBBorder_YetMorePalPushing + pop hl + call SGBBorder_MorePalPushing + ret + +.LoadSGBBorderPointers: + ld a, [wce5f] + bit 3, a + jr nz, .spaceworld_border + +; load alternate border + ld hl, UnusedSGBBorderGFX + ld de, UnusedSGBBorderTilemap + ret + +.spaceworld_border + ld hl, SGBBorderGFX + ld de, SGBBorderTilemap + ret + +SGB_ClearVRAM: + ld hl, vChars0 + ld bc, $2000 + xor a + call ByteFill + ret + +PushSGBBorderPalsAndWait: + ld hl, MltReq2Packet + call _PushSGBPals + call SGBDelayCycles + ldh a, [rJOYP] + and $3 + cp $3 + jr nz, .carry + ld a, $20 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + call SGBDelayCycles + call SGBDelayCycles + ld a, $30 + ldh [rJOYP], a + call SGBDelayCycles + call SGBDelayCycles + ld a, $10 + ldh [rJOYP], a +rept 6 + ldh a, [rJOYP] +endr + call SGBDelayCycles + call SGBDelayCycles + ld a, $30 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + call SGBDelayCycles + call SGBDelayCycles + ldh a, [rJOYP] + and $3 + cp $3 + jr nz, .carry + call .FinalPush + and a + ret + +.carry + call .FinalPush + scf + ret + +.FinalPush: + ld hl, MltReq1Packet + call _PushSGBPals + jp SGBDelayCycles + +SGBBorder_PushBGPals: + call DisableLCD + ld a, %11100100 + ldh [rBGP], a + ld hl, SuperPalettes + ld de, vChars1 + ld bc, $1000 + call CopyData + call DrawDefaultTiles + ld a, $e3 + ldh [rLCDC], a + ld hl, PalTrnPacket + call _PushSGBPals + xor a + ldh [rBGP], a + ret + +SGBBorder_MorePalPushing: + call DisableLCD + ld a, %11100100 + ldh [rBGP], a + ld de, vChars1 + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld b, SCREEN_HEIGHT +.loop + push bc + ld bc, 6 * 2 + call CopyData + ld bc, SCREEN_WIDTH * 2 + call ClearBytes + ld bc, 6 * 2 + call CopyData + pop bc + dec b + jr nz, .loop + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld bc, $100 + call ClearBytes + ld bc, $80 + call CopyData + call DrawDefaultTiles + ld a, $e3 + ldh [rLCDC], a + ld hl, PctTrnPacket + call _PushSGBPals + xor a + ldh [rBGP], a + ret + +SGBBorder_YetMorePalPushing: + call DisableLCD + ld a, $e4 + ldh [rBGP], a + ld de, vChars1 + ld b, $80 +.loop + push bc + ld bc, $10 + call CopyData + ld bc, $10 + call ClearBytes + pop bc + dec b + jr nz, .loop + call DrawDefaultTiles + ld a, $e3 + ldh [rLCDC], a + ld hl, ChrTrnPacket + call _PushSGBPals + xor a + ldh [rBGP], a + ret + +CopyData: + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, CopyData + ret + +ClearBytes: + xor a + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, ClearBytes + ret + +DrawDefaultTiles: + hlbgcoord 0, 0 + ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld a, $80 + ld c, 12 + 1 +.line + ld b, SCREEN_WIDTH +.tile + ld [hli], a + inc a + dec b + jr nz, .tile + add hl, de + dec c + jr nz, .line + ret + +SGBDelayCycles: + ld de, 7000 +.wait + nop + nop + nop + dec de + ld a, d + or e + jr nz, .wait + ret + +INCLUDE "data/sgb/blk_packets.inc" +INCLUDE "data/sgb/pal_packets.inc" +INCLUDE "data/sgb/ctrl_packets.inc" + -- cgit v1.2.3 From 88b53cce31314345068ba89226ca68a22e74db4c Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Tue, 18 May 2021 15:01:10 +0700 Subject: label SGB layout $0E --- engine/gfx/sgb_layouts.asm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'engine') diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index f825127..5ab40e1 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -37,7 +37,7 @@ LoadSGBLayout: dw SGB_Evolution dw SGB_GFIntro dw SGB_TrainerCard - dw SGB0e + dw SGB_MoveList dw SGB_PikachuMinigame dw SGB_PokedexSelection dw SGB_Poker @@ -94,7 +94,7 @@ SGB_BattleColors: ld [wccd0], a ret -SGB0e: +SGB_MoveList: ld hl, PalPacket_995c ld de, wcce1 ld bc, PALPACKET_LENGTH @@ -107,7 +107,7 @@ SGB0e: add $23 ld [hl], a ld hl, wcce1 - ld de, BlkPacket_98bc + ld de, BlkPacket_MoveList ret SGB_TownMap: -- cgit v1.2.3 From 8a43aebe6e65e3d472085fb80c150d988075113a Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Tue, 18 May 2021 15:35:33 +0700 Subject: Decode SGB pal_packets --- engine/gfx/sgb_layouts.asm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'engine') diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index 5ab40e1..07820fc 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -111,7 +111,7 @@ SGB_MoveList: ret SGB_TownMap: - ld hl, Data99fc + ld hl, PalPacket_TownMap ld de, BlkPacket_986c ret @@ -154,7 +154,7 @@ SGB_Pokedex: ret SGB_PokedexSelection: - ld hl, PalPacket_99bc + ld hl, PalPacket_GSIntroCharizard ld de, BlkPacket_986c ret @@ -191,7 +191,7 @@ endr .BlkPacketTable: dw BlkPacket_986c, PalPacket_GSIntroShellderLapras dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu - dw BlkPacket_986c, PalPacket_GSIntroStartersTransition + dw BlkPacket_986c, PalPacket_GSIntroBlastoise SGB_GFIntro: ld hl, PalPacket_GFIntro @@ -559,11 +559,11 @@ LoadForestPalettes2_Intro: jp PushSGBPals LoadVenusaurPalettes_Intro: - ld hl, PalPacket_VenusaurIntro + ld hl, PalPacket_GSIntroVenusaur jp PushSGBPals LoadCharizardPalettes_Intro: - ld hl, PalPacket_99bc + ld hl, PalPacket_GSIntroCharizard jp PushSGBPals Function9645: -- cgit v1.2.3 From 9bde0a9ca74c140ca2ab9c5ac70bd57cf27ae334 Mon Sep 17 00:00:00 2001 From: Zumi Daxuya Date: Tue, 18 May 2021 15:36:48 +0700 Subject: Decode SGB border palettes Rename UnusedSGBBorder -> AlternateSGBBorder --- engine/gfx/sgb_layouts.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engine') diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index 07820fc..7097fd7 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -701,8 +701,8 @@ PushSGBBorder: jr nz, .spaceworld_border ; load alternate border - ld hl, UnusedSGBBorderGFX - ld de, UnusedSGBBorderTilemap + ld hl, AlternateSGBBorderGFX + ld de, AlternateSGBBorderTilemap ret .spaceworld_border -- cgit v1.2.3 From 5524f730e498462c39d18e685da47872f987b23c Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Sun, 20 Jun 2021 12:23:43 -0400 Subject: Use SGB_RAM constant --- engine/gfx/sgb_layouts.asm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'engine') diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index 7097fd7..ac98865 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -4,7 +4,7 @@ SECTION "engine/gfx/sgb_layouts.asm", ROMX LoadSGBLayout: ld a, b - cp $ff + cp SGB_RAM jr nz, .not_ram ld a, [wccd0] .not_ram @@ -894,4 +894,3 @@ SGBDelayCycles: INCLUDE "data/sgb/blk_packets.inc" INCLUDE "data/sgb/pal_packets.inc" INCLUDE "data/sgb/ctrl_packets.inc" - -- cgit v1.2.3 From f71062bc76bcc2c3cd1fb6a556862887b1fd3943 Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Sun, 20 Jun 2021 12:24:01 -0400 Subject: Use SGB_PARTY_MENU_HP_PALS constant --- engine/gfx/sgb_layouts.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine') diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index ac98865..a4faf2a 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -8,7 +8,7 @@ LoadSGBLayout: jr nz, .not_ram ld a, [wccd0] .not_ram - cp $fc + cp SGB_PARTY_MENU_HP_PALS jp z, SGB_ApplyPartyMenuHPPals ld l, a ld h, 0 -- cgit v1.2.3 From 90ed0237ae85aca7b8dd29bfe9118e36be056038 Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Sun, 20 Jun 2021 12:30:46 -0400 Subject: Identify Pokepic function --- engine/dumps/bank09.asm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'engine') diff --git a/engine/dumps/bank09.asm b/engine/dumps/bank09.asm index 8851fbb..5466c79 100644 --- a/engine/dumps/bank09.asm +++ b/engine/dumps/bank09.asm @@ -347,14 +347,14 @@ UpdateItemDescription:: callab ShowItemDescription ret -Function2420b: +Pokepic: ld a, $01 ldh [hBGMapMode], a - ld hl, .MenuHeader24262 + ld hl, .PokepicMenuHeader call LoadMenuHeader call MenuBox call UpdateSprites - ld b, SGB_12 + ld b, SGB_POKEPIC call GetSGBLayout xor a ldh [hBGMapMode], a @@ -372,7 +372,7 @@ Function2420b: call Coord2Tile ld a, $80 ldh [hGraphicStartTile], a - ld bc, $0707 + lb bc, 7, 7 predef PlaceGraphic ld a, $01 ldh [hBGMapMode], a @@ -384,7 +384,7 @@ Function2420b: call LoadFont ret -.MenuHeader24262: +.PokepicMenuHeader: db MENU_BACKUP_TILES menu_coords 6, 4, $e, $d dw 0 -- cgit v1.2.3