diff options
author | dannye <33dannye@gmail.com> | 2021-02-14 00:52:05 -0600 |
---|---|---|
committer | dannye <33dannye@gmail.com> | 2021-02-14 00:52:05 -0600 |
commit | 0955275fd9fd2b05d712f4c425e1a802130d02f7 (patch) | |
tree | e28a7e246c620789dd0f659dd8571fd1a2bed64e /src/engine | |
parent | bc25764d6c32bcabc756034123731ca9d1545504 (diff) |
Disassemble scene data
still a WIP
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/bank01.asm | 4 | ||||
-rw-r--r-- | src/engine/bank04.asm | 662 | ||||
-rw-r--r-- | src/engine/bank06.asm | 4 | ||||
-rw-r--r-- | src/engine/bank07.asm | 6 | ||||
-rw-r--r-- | src/engine/bank1c.asm | 116 | ||||
-rw-r--r-- | src/engine/bank20.asm | 1 | ||||
-rw-r--r-- | src/engine/effect_functions.asm | 2 | ||||
-rw-r--r-- | src/engine/home.asm | 8 |
8 files changed, 771 insertions, 32 deletions
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index 45fc576..adc73bb 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -8436,8 +8436,8 @@ Func_7594: ; 7594 (1:7594) farcall Func_1a61f ret -Func_7599: ; 7599 (1:7599) - farcall Func_1a68d +OpenBoosterPack: ; 7599 (1:7599) + farcall _OpenBoosterPack ret rept $a62 diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index 19d60f1..767e133 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -125,20 +125,20 @@ GiveBoosterPack: ; 1031b (4:431b) ld [wTextBoxFrameType], a pop bc push bc - ld b, $0 - ld hl, Unknown_103a5 + ld b, 0 + ld hl, BoosterTypes add hl, bc ld a, [hl] ld c, a add a add a ld c, a - ld hl, Unknown_103c2 + ld hl, BoosterScenesAndNameTexts add hl, bc ld a, [hli] push hl - ld bc, $0600 - call Func_130ca + lb bc, 6, 0 + call LoadBoosterGfx pop hl ld a, [hli] ld [wTxRam3], a @@ -157,10 +157,10 @@ GiveBoosterPack: ; 1031b (4:431b) farcall GenerateBoosterPack ldtx hl, ReceivedBoosterPackText ld a, [wAnotherBoosterPack] - cp $1 - jr nz, .asm_10373 + cp TRUE + jr nz, .first_booster ldtx hl, AndAnotherBoosterPackText -.asm_10373 +.first_booster call PrintScrollableText_NoTextBoxLabel call WaitForSongToFinish call ResumeSong @@ -173,18 +173,56 @@ GiveBoosterPack: ; 1031b (4:431b) ld [wVBlankOAMCopyToggle], a ld a, $4 ld [wTextBoxFrameType], a - farcall Func_7599 + farcall OpenBoosterPack farcall WhiteOutDMGPals call DoFrameIfLCDEnabled pop af ld [wd291], a ret -Unknown_103a5: ; 103a5 (4:43a5) - INCROM $103a5, $103c2 - -Unknown_103c2: ; 103c2 (4:43c2) - INCROM $103c2, $103d2 +BoosterTypes: ; 103a5 (4:43a5) + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_NEUTRAL + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_GRASS + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_FIRE + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_WATER + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_LIGHTNING + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_FIGHTING + db BOOSTER_COLOSSEUM ; BOOSTER_COLOSSEUM_TRAINER + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_NEUTRAL + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_GRASS + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_FIRE + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_WATER + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_FIGHTING + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_PSYCHIC + db BOOSTER_EVOLUTION ; BOOSTER_EVOLUTION_TRAINER + db BOOSTER_MYSTERY ; BOOSTER_MYSTERY_NEUTRAL + db BOOSTER_MYSTERY ; BOOSTER_MYSTERY_GRASS_COLORLESS + db BOOSTER_MYSTERY ; BOOSTER_MYSTERY_WATER_COLORLESS + db BOOSTER_MYSTERY ; BOOSTER_MYSTERY_LIGHTNING_COLORLESS + db BOOSTER_MYSTERY ; BOOSTER_MYSTERY_FIGHTING_COLORLESS + db BOOSTER_MYSTERY ; BOOSTER_MYSTERY_TRAINER_COLORLESS + db BOOSTER_LABORATORY ; BOOSTER_LABORATORY_NEUTRAL + db BOOSTER_LABORATORY ; BOOSTER_LABORATORY_GRASS + db BOOSTER_LABORATORY ; BOOSTER_LABORATORY_WATER + db BOOSTER_LABORATORY ; BOOSTER_LABORATORY_PSYCHIC + db BOOSTER_LABORATORY ; BOOSTER_LABORATORY_TRAINER + db BOOSTER_COLOSSEUM ; BOOSTER_ENERGY_LIGHTNING_FIRE + db BOOSTER_COLOSSEUM ; BOOSTER_ENERGY_WATER_FIGHTING + db BOOSTER_COLOSSEUM ; BOOSTER_ENERGY_GRASS_PSYCHIC + db BOOSTER_COLOSSEUM ; BOOSTER_ENERGY_RANDOM + +BoosterScenesAndNameTexts: ; 103c2 (4:43c2) + db SCENE_COLOSSEUM_BOOSTER, SCENE_COLOSSEUM_BOOSTER + tx ColosseumBoosterText + + db SCENE_EVOLUTION_BOOSTER, SCENE_EVOLUTION_BOOSTER + tx EvolutionBoosterText + + db SCENE_MYSTERY_BOOSTER, SCENE_MYSTERY_BOOSTER + tx MysteryBoosterText + + db SCENE_LABORATORY_BOOSTER, SCENE_LABORATORY_BOOSTER + tx LaboratoryBoosterText Func_103d2: ; 103d2 (4:43d2) INCROM $103d2, $103d3 @@ -552,7 +590,7 @@ OverworldMap_CursorTransitions: ; 10ebc (4:4ebc) Func_10ef0: ; 10ef0 (4:4ef0) call Func_10efd - ld c, $02 + ld c, SPRITE_ANIM_COORD_X call GetSpriteAnimBufferProperty ld a, d ld [hli], a @@ -2000,14 +2038,600 @@ Func_12c4f: ; 12c4f (4:6c4f) Func_12c5e: ; 12c5e (4:6c5e) INCROM $12c5e, $12c7f -Func_12c7f: ; 12c7f (4:6c7f) - INCROM $12c7f, $12fc6 +; input: +; a = scene ID (SCENE_* constant) +; b = base X position of scene in tiles +; c = base Y position of scene in tiles +_LoadScene: ; 12c7f (4:6c7f) + push hl + push bc + push de + ld e, a + ld a, [wCurTilemap] + push af + ld a, [wd291] + push af + ld a, e + push bc + push af + ld a, b + add a + add a + add a + add $08 + ld [wSceneBaseX], a + ld a, c + add a + add a + add a + add $10 + ld [wSceneBaseY], a + pop af + add a + ld c, a + ld b, 0 + ld hl, ScenePointers + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld [wSceneSGBPacketPtr], a + ld a, [hli] + ld [wSceneSGBPacketPtr + 1], a + ld a, [hli] + ld [wSceneSGBRoutinePtr], a + ld a, [hli] + ld [wSceneSGBRoutinePtr + 1], a + call Func_12f45 + ld a, %11100100 + ld [wBGP], a + ld a, [wConsole] + cp CONSOLE_CGB + ld a, [hli] + jr nz, .not_cgb_1 + ld a, [hl] +.not_cgb_1 + inc hl + push af + xor a + ld [wd4ca], a + ld a, [hli] + ld [wd4cb], a + ld [wd291], a + pop af + farcall Func_803c9 + ld a, [wConsole] + cp CONSOLE_CGB + ld a, [hli] + jr nz, .not_cgb_2 + ld a, [hl] +.not_cgb_2 + inc hl + ld [wCurTilemap], a + pop bc + push bc + farcall Func_8007e + pop bc + call Func_12f5b + ld a, [hli] + ld [wd4ca], a + ld a, [hli] + ld [wd4cb], a + farcall LoadTilesetGfx +.asm_12d02 + ld a, [hli] + or a + jr z, .done + ld [wSceneSprite], a + ld a, [wConsole] + cp CONSOLE_CGB + ld a, [hli] + jr nz, .not_cgb_3 + ld a, [hl] +.not_cgb_3 + inc hl + push af + xor a + ld [wd4ca], a + ld a, [hli] + ld [wd4cb], a + pop af + farcall LoadPaletteData +.asm_12d21 + ld a, [hli] + or a + jr z, .asm_12d02 + dec hl + ld a, [wConsole] + cp CONSOLE_CGB + ld a, [hli] + jr nz, .not_cgb_4 + ld a, [hl] +.not_cgb_4 + inc hl + ld [wSceneSpriteAnimation], a + ld a, [wSceneSprite] + farcall CreateSpriteAndAnimBufferEntry + ld a, [wWhichSprite] + ld [wSceneSpriteIndex], a + push hl + ld c, SPRITE_ANIM_COORD_X + call GetSpriteAnimBufferProperty + ld e, l + ld d, h + pop hl + ld a, [wSceneBaseX] + add [hl] + ld [de], a + inc hl + inc de + ld a, [wSceneBaseY] + add [hl] + ld [de], a + inc hl + ld a, [wSceneSpriteAnimation] + cp $ff + jr z, .no_animation + farcall StartSpriteAnimation +.no_animation + jr .asm_12d21 +.done + pop af + ld [wd291], a + pop af + ld [wCurTilemap], a + pop de + pop bc + pop hl + ret + +ScenePointers: ; 12d6f (4:6d6f) + dw Scene_TitleScreen + dw Scene_ColosseumBooster + dw Scene_EvolutionBooster + dw Scene_MysteryBooster + dw Scene_LaboratoryBooster + dw Scene_CharizardIntro + dw Scene_ScytherIntro + dw Scene_AerodactylIntro + dw Scene_GradientBlackAndRed + dw Scene_GradientWhiteAndRed + dw Scene_GradientBlackAndGreen + dw Scene_GradientWhiteAndGreen + dw Scene_ColorWheel + dw Scene_ColorTest + dw Scene_GameBoyLinkConnecting + dw Scene_GameBoyLinkTransmitting + dw Scene_GameBoyLinkNotConnected + dw Scene_GameBoyPrinterTransmitting + dw Scene_GameBoyPrinterNotConnected + dw Scene_CardPop + dw Scene_CardPopError + dw Scene_JapaneseTitleScreen + dw Scene_Nintendo + dw Scene_Companies + dw Scene_JapaneseTitleScreen2 + dw Scene_Copyright + dw Scene_JapaneseTitleScreen2 + dw Scene_ColorPalette + +; format: +; dw compressed sgb packet +; dw custom sgb packet loading routine +; db palette (non-cgb), palette (cgb), palette offset +; db tilemap (non-cgb), tilemap (cgb), vram tile offset, vram0 or vram1 +; db sprite +; +; if sprite is non-zero: +; db palette (non-cgb), palette (cgb), palette offset +; db animation (non-cgb), animation (cgb), x offset, y offset +; dw 0-terminator + +Scene_TitleScreen: ; 12da7 (4:6da7) + dw SGBData_TitleScreen + dw NULL + db PALETTE_25, PALETTE_25, $00 + db TILEMAP_TITLE_SCREEN_5, TILEMAP_TITLE_SCREEN_6, $00, $00 + db $00 + +Scene_JapaneseTitleScreen: ; 12db3 (4:6db3) + dw SGBData_TitleScreen + dw NULL + db PALETTE_25, PALETTE_25, $00 + db TILEMAP_TITLE_SCREEN_1, TILEMAP_TITLE_SCREEN_2, $80, $00 + db $00 + +Scene_ColosseumBooster: ; 12dbf (4:6dbf) + dw SGBData_ColosseumBooster + dw NULL + db PALETTE_108, PALETTE_101, $01 + db TILEMAP_COLOSSEUM, TILEMAP_COLOSSEUM_CGB, $80, $00 + db SPRITE_BOOSTER_PACK_OAM + db PALETTE_117, PALETTE_117, $00 + db $ff, $bd, $00, $00 + dw $00 + +Scene_EvolutionBooster: ; 12dd4 (4:6dd4) + dw SGBData_EvolutionBooster + dw NULL + db PALETTE_108, PALETTE_102, $01 + db TILEMAP_EVOLUTION, TILEMAP_EVOLUTION_CGB, $80, $00 + db SPRITE_BOOSTER_PACK_OAM + db PALETTE_117, PALETTE_117, $00 + db $ff, $bd, $00, $00 + dw $00 + +Scene_MysteryBooster: ; 12de9 (4:6de9) + dw SGBData_MysteryBooster + dw NULL + db PALETTE_108, PALETTE_103, $01 + db TILEMAP_MYSTERY, TILEMAP_MYSTERY_CGB, $80, $00 + db SPRITE_BOOSTER_PACK_OAM + db PALETTE_117, PALETTE_117, $00 + db $ff, $bd, $00, $00 + dw $00 + +Scene_LaboratoryBooster: ; 12dfe (4:6dfe) + dw SGBData_LaboratoryBooster + dw NULL + db PALETTE_108, PALETTE_104, $01 + db TILEMAP_LABORATORY, TILEMAP_LABORATORY_CGB, $80, $00 + db SPRITE_BOOSTER_PACK_OAM + db PALETTE_117, PALETTE_117, $00 + db $ff, $bd, $00, $00 + dw $00 + +Scene_CharizardIntro: ; 12e13 (4:6e13) + dw SGBData_CharizardIntro + dw NULL + db PALETTE_108, PALETTE_105, $01 + db TILEMAP_CHARIZARD_INTRO, TILEMAP_CHARIZARD_INTRO_CGB, $80, $00 + db $00 + +Scene_ScytherIntro: ; 12e1f (4:6e1f) + dw SGBData_ScytherIntro + dw NULL + db PALETTE_108, PALETTE_106, $01 + db TILEMAP_SCYTHER_INTRO, TILEMAP_SCYTHER_INTRO_CGB, $80, $00 + db $00 + +Scene_AerodactylIntro: ; 12e2b (4:6e2b) + dw SGBData_AerodactylIntro + dw NULL + db PALETTE_108, PALETTE_107, $01 + db TILEMAP_AERODACTYL_INTRO, TILEMAP_AERODACTYL_INTRO_CGB, $80, $00 + db $00 + +Scene_GradientBlackAndRed: ; 12e37 (4:6e37) + dw NULL + dw NULL + db PALETTE_94, PALETTE_94, $00 + db TILEMAP_SOLID_TILES_1, TILEMAP_SOLID_TILES_1, $01, $00 + db $00 + +Scene_GradientWhiteAndRed: ; 12e43 (4:6e43) + dw NULL + dw NULL + db PALETTE_95, PALETTE_95, $00 + db TILEMAP_SOLID_TILES_1, TILEMAP_SOLID_TILES_1, $01, $00 + db $00 + +Scene_GradientBlackAndGreen: ; 12e4f (4:6e4f) + dw NULL + dw NULL + db PALETTE_96, PALETTE_96, $00 + db TILEMAP_SOLID_TILES_1, TILEMAP_SOLID_TILES_1, $01, $00 + db $00 + +Scene_GradientWhiteAndGreen: ; 12e5b (4:6e5b) + dw NULL + dw NULL + db PALETTE_97, PALETTE_97, $00 + db TILEMAP_SOLID_TILES_1, TILEMAP_SOLID_TILES_1, $01, $00 + db $00 + +Scene_ColorWheel: ; 12e67 (4:6e67) + dw NULL + dw NULL + db PALETTE_98, PALETTE_98, $00 + db TILEMAP_SOLID_TILES_2, TILEMAP_SOLID_TILES_2, $01, $00 + db $00 + +Scene_ColorTest: ; 12e73 (4:6e73) + dw NULL + dw NULL + db PALETTE_99, PALETTE_99, $00 + db TILEMAP_SOLID_TILES_3, TILEMAP_SOLID_TILES_3, $01, $00 + db $00 + +Scene_ColorPalette: ; 12e7f (4:6e7f) + dw NULL + dw NULL + db PALETTE_110, PALETTE_110, $00 + db TILEMAP_SOLID_TILES_4, TILEMAP_SOLID_TILES_4, $fc, $01 + db $00 + +Scene_GameBoyLinkConnecting: ; 12e8b (4:6e8b) + dw SGBData_GameBoyLink + dw NULL + db PALETTE_111, PALETTE_111, $00 + db TILEMAP_CARD_POP_2_UNKNOWN_2, TILEMAP_CARD_POP_2_UNKNOWN_1, $90, $00 + db $00 + +Scene_GameBoyLinkTransmitting: ; 12e97 (4:6e97) + dw SGBData_GameBoyLink + dw NULL + db PALETTE_111, PALETTE_111, $00 + db TILEMAP_CARD_POP_2_CGB, TILEMAP_CARD_POP_2, $90, $00 + db SPRITE_DUEL_52 + db PALETTE_114, PALETTE_114, $00 + db $b3, $b0, $50, $50 + dw $00 + +Scene_GameBoyLinkNotConnected: ; 12eac (4:6eac) + dw SGBData_GameBoyLink + dw NULL + db PALETTE_111, PALETTE_111, $00 + db TILEMAP_CARD_POP_2_CGB, TILEMAP_CARD_POP_2, $90, $00 + db SPRITE_DUEL_52 + db PALETTE_114, PALETTE_114, $00 + db $b4, $b1, $50, $50 + dw $00 + +Scene_GameBoyPrinterTransmitting: ; 12ec1 (4:6ec1) + dw SGBData_GameBoyPrinter + dw Func_12f8c + db PALETTE_112, PALETTE_112, $00 + db TILEMAP_CARD_POP_3_CGB, TILEMAP_CARD_POP_3, $90, $00 + db SPRITE_DUEL_53 + db PALETTE_115, PALETTE_115, $00 + db $b7, $b5, $50, $30 + dw $00 + +Scene_GameBoyPrinterNotConnected: ; 12ed6 (4:6ed6) + dw SGBData_GameBoyPrinter + dw Func_12f8c + db PALETTE_112, PALETTE_112, $00 + db TILEMAP_CARD_POP_3_CGB, TILEMAP_CARD_POP_3, $90, $00 + db SPRITE_DUEL_53 + db PALETTE_115, PALETTE_115, $00 + db $b8, $b6, $50, $30 + dw $00 + +Scene_CardPop: ; 12eeb (4:6eeb) + dw SGBData_CardPop + dw Func_12fa9 + db PALETTE_113, PALETTE_113, $00 + db TILEMAP_CARD_POP_1_CGB, TILEMAP_CARD_POP_1, $80, $00 + db SPRITE_DUEL_54 + db PALETTE_116, PALETTE_116, $00 + db $bb, $b9, $50, $40 + dw $00 + +Scene_CardPopError: ; 12f00 (4:6f00) + dw SGBData_CardPop + dw Func_12fa9 + db PALETTE_113, PALETTE_113, $00 + db TILEMAP_CARD_POP_1_CGB, TILEMAP_CARD_POP_1, $80, $00 + db SPRITE_DUEL_54 + db PALETTE_116, PALETTE_116, $00 + db $bc, $ba, $50, $40 + dw $00 + +Scene_Nintendo: ; 12f15 (4:6f15) + dw NULL + dw NULL + db PALETTE_27, PALETTE_27, $00 + db TILEMAP_NINTENDO, TILEMAP_NINTENDO, $00, $00 + db $00 + +Scene_Companies: ; 12f21 (4:6f21) + dw NULL + dw NULL + db PALETTE_28, PALETTE_28, $00 + db TILEMAP_COMPANIES, TILEMAP_COMPANIES, $00, $00 + db $00 + +Scene_Copyright: ; 12f2d (4:6f2d) + dw NULL + dw NULL + db PALETTE_26, PALETTE_26, $00 + db TILEMAP_COPYRIGHT, TILEMAP_COPYRIGHT_CGB, $00, $00 + db $00 + +Scene_JapaneseTitleScreen2: ; 12f39 (4:6f39) + dw NULL + dw NULL + db PALETTE_109, PALETTE_100, $00 + db TILEMAP_TITLE_SCREEN_3, TILEMAP_TITLE_SCREEN_4, $01, $00 + db $00 + +Func_12f45: ; 12f45 (4:6f45) + ld a, [wConsole] + cp CONSOLE_SGB + ret nz + push hl + ld hl, wSceneSGBPacketPtr + ld a, [hli] + ld h, [hl] + ld l, a + or h + jr z, .skip + farcall Func_703cb +.skip + pop hl + ret + +Func_12f5b: ; 12f5b (4:6f5b) + ld a, [wConsole] + cp CONSOLE_SGB + ret nz + push hl + push bc + push de + ld hl, wSceneSGBPacketPtr + ld a, [hli] + or [hl] + jr z, .asm_12f88 + ld hl, wSceneSGBRoutinePtr + 1 + ld a, [hld] + or [hl] + jr z, .asm_12f7a + ld a, [hli] + ld h, [hl] + ld l, a + call CallHL2 + jr .asm_12f88 +.asm_12f7a + ld l, $0a + ld a, [wBGMapWidth] + ld d, a + ld a, [wBGMapHeight] + ld e, a + farcall Func_70498 +.asm_12f88 + pop de + pop bc + pop hl + ret + +Func_12f8c: ; 12f8c (4:6f8c) + push hl + push bc + push de + ld hl, SGCPacket_GameBoyPrinter + call SendSGB + pop de + pop bc + pop hl + ret + +SGCPacket_GameBoyPrinter: ; 12f99 (4:6f99) + INCROM $12f99, $12fa9 + +Func_12fa9: ; 12fa9 (4:6fa9) + push hl + push bc + push de + ld hl, SGCPacket_CardPop + call SendSGB + pop de + pop bc + pop hl + ret + +SGCPacket_CardPop: ; 12fb6 (4:6fb6) + INCROM $12fb6, $12fc6 Func_12fc6: ; 12fc6 (4:6fc6) INCROM $12fc6, $130ca -Func_130ca: ; 130ca (4:70ca) - INCROM $130ca, $131b3 +LoadBoosterGfx: ; 130ca (4:70ca) + push hl + push bc + push de + ld e, a + ld a, [wCurTilemap] + push af + push bc + ld a, e + call _LoadScene + call FlushAllPalettes + call SetBoosterLogoOAM + pop bc + pop af + ld [wCurTilemap], a + pop de + pop bc + pop hl + ret + +SetBoosterLogoOAM: ; 130e6 (4:70e6) + ld a, [wConsole] + cp CONSOLE_CGB + ret nz + push hl + push bc + push de + push bc + xor a + ld [wd4cb], a + ld [wd4ca], a + ld a, SPRITE_BOOSTER_PACK_OAM + farcall Func_8025b + pop bc + call ZeroObjectPositions + ld hl, BoosterLogoOAM + ld c, [hl] + inc hl +.oam_loop + push bc + ldh a, [hSCX] + ld d, a + ldh a, [hSCY] + ld e, a + ld a, [wSceneBaseY] + sub e + add [hl] + ld e, a + inc hl + ld a, [wSceneBaseX] + sub d + add [hl] + ld d, a + inc hl + ld a, [wd61f] + add [hl] + ld c, a + inc hl + ld b, [hl] + inc hl + call SetOneObjectAttributes + pop bc + dec c + jr nz, .oam_loop + ld hl, wVBlankOAMCopyToggle + inc [hl] + pop de + pop bc + pop hl + ret + +BoosterLogoOAM: ; 13132 (4:7132) + db $20 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $02, $00 + db $00, $18, $03, $00 + db $00, $20, $04, $00 + db $00, $28, $05, $00 + db $00, $30, $06, $00 + db $00, $38, $07, $00 + db $08, $00, $10, $00 + db $08, $08, $11, $00 + db $08, $10, $12, $00 + db $08, $18, $13, $00 + db $08, $20, $14, $00 + db $08, $28, $15, $00 + db $08, $30, $16, $00 + db $08, $38, $17, $00 + db $10, $00, $08, $00 + db $10, $08, $09, $00 + db $10, $10, $0A, $00 + db $10, $18, $0B, $00 + db $10, $20, $0C, $00 + db $10, $28, $0D, $00 + db $10, $30, $0E, $00 + db $10, $38, $0F, $00 + db $18, $00, $18, $00 + db $18, $08, $19, $00 + db $18, $10, $1A, $00 + db $18, $18, $1B, $00 + db $18, $20, $1C, $00 + db $18, $28, $1D, $00 + db $18, $30, $1E, $00 + db $18, $38, $1F, $00 Func_131b3: ; 131b3 (4:71b3) INCROM $131b3, $131d3 diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index fb5b6b6..c96d2a1 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -1626,8 +1626,8 @@ Func_1a61f: ; 1a61f (6:661f) bank1call OpenCardPage_FromHand ret -Func_1a68d: ; 1a68d (6:668d) - ld a, $c2 ; player's turn +_OpenBoosterPack: ; 1a68d (6:668d) + ld a, PLAYER_TURN ldh [hWhoseTurn], a ld h, a ld l, $00 diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 3755410..376f2f1 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -1668,9 +1668,9 @@ Titlescreen_1d386: ; 1d386 (7:5386) call DisableLCD ld a, MUSIC_TITLESCREEN call PlaySong - ld bc, $0000 - ld a, $0 - call Func_3df3 + lb bc, 0, 0 + ld a, SCENE_TITLE_SCREEN + call LoadScene call Func_1d59c .asm_1d39f call Func_3ca0 diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index 08c607f..e9639a7 100644 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -331,4 +331,118 @@ Unknown_7024a: ; 7024a (1c:424a) INCROM $7024a, $7036a Func_7036a: ; 7036a (1c:436a) - INCROM $7036a, $74000 + INCROM $7036a, $703cb + +Func_703cb: ; 703cb (1c:43cb) + ld a, [wConsole] + cp CONSOLE_SGB + ret nz + push hl + push bc + push de + call Func_70403 + ld hl, wBGMapBuffer + ld de, wTempSGBPacket + $1 + ld bc, $8 + call CopyDataHLtoDE + ld hl, wBGMapBuffer + $22 + ld de, wTempSGBPacket + $9 + ld bc, $6 + call CopyDataHLtoDE + xor a + ld [wTempSGBPacket + $f], a + ld hl, wTempSGBPacket + ld a, $09 + ld [hl], a + call Func_704c7 + call SendSGB + pop de + pop bc + pop hl + ret + +Func_70403: ; 70403 (1c:4403) + push hl + push bc + push de + ld c, [hl] + inc hl + ld b, [hl] + inc hl + push bc + ld e, l + ld d, h + ld b, HIGH(wc000) + call InitBGMapDecompression + pop bc + ld de, wBGMapBuffer + call DecompressBGMap + pop de + pop bc + pop hl + ret +; 0x7041d + + INCROM $7041d, $70498 + +Func_70498: ; 70498 (1c:4498) + INCROM $70498, $704c7 + +Func_704c7: ; 704c7 (1c:44c7) + push af + push hl + inc hl + ld a, $9c + ld [hli], a + ld a, $63 + ld [hl], a + pop hl + pop af + ret +; 0x704d3 + + INCROM $704d3, $73393 + +SGBData_CharizardIntro: ; 73393 (1c:7393) + dw $20 ; width + INCROM $73395, $733b8 + +SGBData_ScytherIntro: ; 733b8 (1c:73b8) + dw $20 ; width + INCROM $733ba, $733dd + +SGBData_AerodactylIntro: ; 733dd (1c:73dd) + dw $20 ; width + INCROM $733df, $73402 + +SGBData_ColosseumBooster: ; 73402 (1c:7402) + dw $20 ; width + INCROM $73404, $73427 + +SGBData_EvolutionBooster: ; 73427 (1c:7427) + dw $20 ; width + INCROM $73429, $7344c + +SGBData_MysteryBooster: ; 7344c (1c:744c) + dw $20 ; width + INCROM $7344e, $73471 + +SGBData_LaboratoryBooster: ; 73471 (1c:7471) + dw $20 ; width + INCROM $73473, $73aa8 + +SGBData_GameBoyLink: ; 73aa8 (1c:7aa8) + dw $40 ; width + INCROM $73aaa, $73ad8 + +SGBData_CardPop: ; 73ad8 (1c:7ad8) + dw $40 ; width + INCROM $73ada, $73b05 + +SGBData_GameBoyPrinter: ; 73b05 (1c:7b05) + dw $40 ; width + INCROM $73b07, $73b33 + +SGBData_TitleScreen: ; 73b33 (1c:7b33) + dw $40 ; width + INCROM $73b35, $74000 diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index e4cadba..12bdd54 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -42,6 +42,7 @@ Func_80077: ; 80077 (20:4077) ld [wBGMapCopyMode], a jr Func_80082 +Func_8007e: ; 8007e (20:407e) xor a ld [wBGMapCopyMode], a ; fallthrough diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index daaf402..f102910 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -7333,7 +7333,7 @@ Gigashock_AISelectEffect: ; 2e6c3 (b:66c3) ret .start_selection -; has more than 3 Bench cards,proceed to sort them +; has more than 3 Bench cards, proceed to sort them ; by lowest remaining HP to highest, and pick first 3. call SwapTurn dec a diff --git a/src/engine/home.asm b/src/engine/home.asm index 13089d7..56f4f68 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -11644,22 +11644,22 @@ Func_3de7: ; 3de7 (0:3de7) pop hl ret -Func_3df3: ; 3df3 (0:3df3) +LoadScene: ; 3df3 (0:3df3) push af ldh a, [hBankROM] push af push hl - ld a, BANK(Func_12c7f) + ld a, BANK(_LoadScene) call BankswitchROM ld hl, sp+$5 ld a, [hl] - call Func_12c7f + call _LoadScene call FlushAllPalettes pop hl pop af call BankswitchROM pop af - ld a, [wd61b] + ld a, [wSceneSpriteIndex] ret ; draws player's portrait at b,c |