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 | |
parent | bc25764d6c32bcabc756034123731ca9d1545504 (diff) |
Disassemble scene data
still a WIP
Diffstat (limited to 'src')
-rw-r--r-- | src/constants.asm | 1 | ||||
-rw-r--r-- | src/constants/booster_constants.asm | 6 | ||||
-rw-r--r-- | src/constants/scene_constants.asm | 29 | ||||
-rw-r--r-- | src/data/overworld_indexes.asm | 26 | ||||
-rw-r--r-- | src/data/warps.asm | 282 | ||||
-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 | ||||
-rw-r--r-- | src/text/text3.asm | 8 | ||||
-rw-r--r-- | src/text/text_offsets.asm | 8 | ||||
-rw-r--r-- | src/wram.asm | 25 |
16 files changed, 990 insertions, 198 deletions
diff --git a/src/constants.asm b/src/constants.asm index 733dd8c..5fcb2ac 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -13,6 +13,7 @@ INCLUDE "constants/music_constants.asm" INCLUDE "constants/name_constants.asm" INCLUDE "constants/npc_constants.asm" INCLUDE "constants/palette_constants.asm" +INCLUDE "constants/scene_constants.asm" INCLUDE "constants/script_constants.asm" INCLUDE "constants/sgb_constants.asm" INCLUDE "constants/sfx_constants.asm" diff --git a/src/constants/booster_constants.asm b/src/constants/booster_constants.asm index f5efb9b..9bc9f09 100644 --- a/src/constants/booster_constants.asm +++ b/src/constants/booster_constants.asm @@ -13,6 +13,12 @@ NUM_CARDS_IN_BOOSTER EQU 10 NUM_BOOSTER_CARD_TYPES EQU const_value const_def + const BOOSTER_COLOSSEUM ; $00 + const BOOSTER_EVOLUTION ; $01 + const BOOSTER_MYSTERY ; $02 + const BOOSTER_LABORATORY ; $03 + + const_def const BOOSTER_COLOSSEUM_NEUTRAL ; $00 const BOOSTER_COLOSSEUM_GRASS ; $01 const BOOSTER_COLOSSEUM_FIRE ; $02 diff --git a/src/constants/scene_constants.asm b/src/constants/scene_constants.asm new file mode 100644 index 0000000..1a4a5be --- /dev/null +++ b/src/constants/scene_constants.asm @@ -0,0 +1,29 @@ + const_def + const SCENE_TITLE_SCREEN ; $00 + const SCENE_COLOSSEUM_BOOSTER ; $01 + const SCENE_EVOLUTION_BOOSTER ; $02 + const SCENE_MYSTERY_BOOSTER ; $03 + const SCENE_LABORATORY_BOOSTER ; $04 + const SCENE_CHARIZARD_INTRO ; $05 + const SCENE_SCYTHER_INTRO ; $06 + const SCENE_AERODACTYL_INTRO ; $07 + const SCENE_GRADIENT_BLACK_AND_RED ; $08 + const SCENE_GRADIENT_WHITE_AND_RED ; $09 + const SCENE_GRADIENT_BLACK_AND_GREEN ; $0a + const SCENE_GRADIENT_WHITE_AND_GREEN ; $0b + const SCENE_COLOR_WHEEL ; $0c + const SCENE_COLOR_TEST ; $0d + const SCENE_GAMEBOY_LINK_CONNECTING ; $0e + const SCENE_GAMEBOY_LINK_TRANSMITTING ; $0f + const SCENE_GAMEBOY_LINK_NOT_CONNECTED ; $10 + const SCENE_GAMEBOY_PRINTER_TRANSMITTING ; $11 + const SCENE_GAMEBOY_PRINTER_NOT_CONNECTED ; $12 + const SCENE_CARD_POP ; $13 + const SCENE_CARD_POP_ERROR ; $14 + const SCENE_JAPANESE_TITLE_SCREEN ; $15 + const SCENE_NINTENDO ; $16 + const SCENE_COMPANIES ; $17 + const SCENE_JAPANESE_TITLE_SCREEN_2 ; $18 + const SCENE_COPYRIGHT ; $19 + const SCENE_JAPANESE_TITLE_SCREEN_2_COPY ; $1a + const SCENE_COLOR_PALETTE ; $1b diff --git a/src/data/overworld_indexes.asm b/src/data/overworld_indexes.asm index 7df99de..86f20c2 100644 --- a/src/data/overworld_indexes.asm +++ b/src/data/overworld_indexes.asm @@ -4,16 +4,16 @@ ; 2: player's y coordinate when entering the map ; 4: 00 OverworldMapIndexes: ; 10f88 (4:4f88) - db $00,$00,$00,$00 - db MASON_LABORATORY, $0E,$1A,$00 - db ISHIHARAS_HOUSE, $08,$14,$00 - db FIGHTING_CLUB_ENTRANCE, $08,$0E,$00 - db ROCK_CLUB_ENTRANCE, $08,$0E,$00 - db WATER_CLUB_ENTRANCE, $08,$0E,$00 - db LIGHTNING_CLUB_ENTRANCE,$08,$0E,$00 - db GRASS_CLUB_ENTRANCE, $08,$0E,$00 - db PSYCHIC_CLUB_ENTRANCE, $08,$0E,$00 - db SCIENCE_CLUB_ENTRANCE, $08,$0E,$00 - db FIRE_CLUB_ENTRANCE, $08,$0E,$00 - db CHALLENGE_HALL_ENTRANCE,$08,$0E,$00 - db POKEMON_DOME_ENTRANCE, $0E,$0E,$00 + db $00, $00, $00, $00 + db MASON_LABORATORY, $0E, $1A, $00 + db ISHIHARAS_HOUSE, $08, $14, $00 + db FIGHTING_CLUB_ENTRANCE, $08, $0E, $00 + db ROCK_CLUB_ENTRANCE, $08, $0E, $00 + db WATER_CLUB_ENTRANCE, $08, $0E, $00 + db LIGHTNING_CLUB_ENTRANCE, $08, $0E, $00 + db GRASS_CLUB_ENTRANCE, $08, $0E, $00 + db PSYCHIC_CLUB_ENTRANCE, $08, $0E, $00 + db SCIENCE_CLUB_ENTRANCE, $08, $0E, $00 + db FIRE_CLUB_ENTRANCE, $08, $0E, $00 + db CHALLENGE_HALL_ENTRANCE, $08, $0E, $00 + db POKEMON_DOME_ENTRANCE, $0E, $0E, $00 diff --git a/src/data/warps.asm b/src/data/warps.asm index cba8053..828db63 100644 --- a/src/data/warps.asm +++ b/src/data/warps.asm @@ -43,208 +43,208 @@ WarpDataPointers: ; 1c099 (7:4099) ; 5: y coordinate of connected map ; double null terminated MasonLaboratoryWarpData: ; 1c0dd (7:40dd) - db $0E,$1C,OVERWORLD_MAP, $00,$00 - db $10,$1C,OVERWORLD_MAP, $00,$00 - db $1A,$0A,DECK_MACHINE_ROOM,$02,$0A - db $1A,$0C,DECK_MACHINE_ROOM,$02,$0C - db $00,$00 + db $0E, $1C, OVERWORLD_MAP, $00, $00 + db $10, $1C, OVERWORLD_MAP, $00, $00 + db $1A, $0A, DECK_MACHINE_ROOM, $02, $0A + db $1A, $0C, DECK_MACHINE_ROOM, $02, $0C + db $00, $00 DeckMachineRoomWarpData: ; 1c0f3 (7:40f3) - db $00,$0A,MASON_LABORATORY,$18,$0A - db $00,$0C,MASON_LABORATORY,$18,$0C - db $00,$00 + db $00, $0A, MASON_LABORATORY, $18, $0A + db $00, $0C, MASON_LABORATORY, $18, $0C + db $00, $00 IshiharasHouseWarpData: ; 1c0ff (7:40ff) - db $08,$16,OVERWORLD_MAP,$00,$00 - db $0A,$16,OVERWORLD_MAP,$00,$00 - db $00,$00 + db $08, $16, OVERWORLD_MAP, $00, $00 + db $0A, $16, OVERWORLD_MAP, $00, $00 + db $00, $00 FightingClubEntranceWarpData: ; 1c10b (7:410b) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,FIGHTING_CLUB_LOBBY,$18,$0A - db $00,$08,FIGHTING_CLUB_LOBBY,$18,$0C - db $08,$00,FIGHTING_CLUB, $0A,$0E - db $0A,$00,FIGHTING_CLUB, $0C,$0E - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, FIGHTING_CLUB_LOBBY, $18, $0A + db $00, $08, FIGHTING_CLUB_LOBBY, $18, $0C + db $08, $00, FIGHTING_CLUB, $0A, $0E + db $0A, $00, FIGHTING_CLUB, $0C, $0E + db $00, $00 FightingClubLobbyWarpData: ; 1c12b (7:412b) - db $1A,$0A,FIGHTING_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,FIGHTING_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, FIGHTING_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, FIGHTING_CLUB_ENTRANCE, $02, $08 + db $00, $00 FightingClubWarpData: ; 1c137 (7:4137) - db $0A,$10,FIGHTING_CLUB_ENTRANCE,$08,$02 - db $0C,$10,FIGHTING_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0A, $10, FIGHTING_CLUB_ENTRANCE, $08, $02 + db $0C, $10, FIGHTING_CLUB_ENTRANCE, $0A, $02 + db $00, $00 RockClubEntranceWarpData: ; 1c143 (7:4143) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,ROCK_CLUB_LOBBY,$18,$0A - db $00,$08,ROCK_CLUB_LOBBY,$18,$0C - db $08,$00,ROCK_CLUB, $0C,$1A - db $0A,$00,ROCK_CLUB, $0E,$1A - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, ROCK_CLUB_LOBBY, $18, $0A + db $00, $08, ROCK_CLUB_LOBBY, $18, $0C + db $08, $00, ROCK_CLUB, $0C, $1A + db $0A, $00, ROCK_CLUB, $0E, $1A + db $00, $00 RockClubLobbyWarpData: ; 1c163 (7:4163) - db $1A,$0A,ROCK_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,ROCK_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, ROCK_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, ROCK_CLUB_ENTRANCE, $02, $08 + db $00, $00 RockClubWarpData: ; 1c16f (7:416f) - db $0C,$1C,ROCK_CLUB_ENTRANCE,$08,$02 - db $0E,$1C,ROCK_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1C, ROCK_CLUB_ENTRANCE, $08, $02 + db $0E, $1C, ROCK_CLUB_ENTRANCE, $0A, $02 + db $00, $00 WaterClubEntranceWarpData: ; 1c17b (7:417b) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,WATER_CLUB_LOBBY,$18,$0A - db $00,$08,WATER_CLUB_LOBBY,$18,$0C - db $08,$00,WATER_CLUB, $0C,$1C - db $0A,$00,WATER_CLUB, $0E,$1C - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, WATER_CLUB_LOBBY, $18, $0A + db $00, $08, WATER_CLUB_LOBBY, $18, $0C + db $08, $00, WATER_CLUB, $0C, $1C + db $0A, $00, WATER_CLUB, $0E, $1C + db $00, $00 WaterClubLobbyWarpData: ; 1c19b (7:419b) - db $1A,$0A,WATER_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,WATER_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, WATER_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, WATER_CLUB_ENTRANCE, $02, $08 + db $00, $00 WaterClubWarpData: ; 1c1a7 (7:41a7) - db $0C,$1E,WATER_CLUB_ENTRANCE,$08,$02 - db $0E,$1E,WATER_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1E, WATER_CLUB_ENTRANCE, $08, $02 + db $0E, $1E, WATER_CLUB_ENTRANCE, $0A, $02 + db $00, $00 LightningClubEntranceWarpData: ; 1c1b3 (7:41b3) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,LIGHTNING_CLUB_LOBBY,$18,$0A - db $00,$08,LIGHTNING_CLUB_LOBBY,$18,$0C - db $08,$00,LIGHTNING_CLUB, $0C,$1C - db $0A,$00,LIGHTNING_CLUB, $0E,$1C - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, LIGHTNING_CLUB_LOBBY, $18, $0A + db $00, $08, LIGHTNING_CLUB_LOBBY, $18, $0C + db $08, $00, LIGHTNING_CLUB, $0C, $1C + db $0A, $00, LIGHTNING_CLUB, $0E, $1C + db $00, $00 LightningClubLobbyWarpData: ; 1c1d3 (7:41d3) - db $1A,$0A,LIGHTNING_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,LIGHTNING_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, LIGHTNING_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, LIGHTNING_CLUB_ENTRANCE, $02, $08 + db $00, $00 LightningClubWarpData: ; 1c1df (7:41df) - db $0C,$1E,LIGHTNING_CLUB_ENTRANCE,$08,$02 - db $0E,$1E,LIGHTNING_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1E, LIGHTNING_CLUB_ENTRANCE, $08, $02 + db $0E, $1E, LIGHTNING_CLUB_ENTRANCE, $0A, $02 + db $00, $00 GrassClubEntranceWarpData: ; 1c1eb (7:41eb) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,GRASS_CLUB_LOBBY,$18,$0A - db $00,$08,GRASS_CLUB_LOBBY,$18,$0C - db $08,$00,GRASS_CLUB, $0C,$1C - db $0A,$00,GRASS_CLUB, $0E,$1C - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, GRASS_CLUB_LOBBY, $18, $0A + db $00, $08, GRASS_CLUB_LOBBY, $18, $0C + db $08, $00, GRASS_CLUB, $0C, $1C + db $0A, $00, GRASS_CLUB, $0E, $1C + db $00, $00 GrassClubLobbyWarpData: ; 1c20b (7:420b) - db $1A,$0A,GRASS_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,GRASS_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, GRASS_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, GRASS_CLUB_ENTRANCE, $02, $08 + db $00, $00 GrassClubWarpData: ; 1c217 (7:4217) - db $0C,$1E,GRASS_CLUB_ENTRANCE,$08,$02 - db $0E,$1E,GRASS_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1E, GRASS_CLUB_ENTRANCE, $08, $02 + db $0E, $1E, GRASS_CLUB_ENTRANCE, $0A, $02 + db $00, $00 PsychicClubEntranceWarpData: ; 1c223 (7:4223) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,PSYCHIC_CLUB_LOBBY,$18,$0A - db $00,$08,PSYCHIC_CLUB_LOBBY,$18,$0C - db $08,$00,PSYCHIC_CLUB, $0C,$18 - db $0A,$00,PSYCHIC_CLUB, $0E,$18 - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, PSYCHIC_CLUB_LOBBY, $18, $0A + db $00, $08, PSYCHIC_CLUB_LOBBY, $18, $0C + db $08, $00, PSYCHIC_CLUB, $0C, $18 + db $0A, $00, PSYCHIC_CLUB, $0E, $18 + db $00, $00 PsychicClubLobbyWarpData: ; 1c243 (7:4243) - db $1A,$0A,PSYCHIC_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,PSYCHIC_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, PSYCHIC_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, PSYCHIC_CLUB_ENTRANCE, $02, $08 + db $00, $00 PsychicClubWarpData: ; 1c24f (7:424f) - db $0C,$1A,PSYCHIC_CLUB_ENTRANCE,$08,$02 - db $0E,$1A,PSYCHIC_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1A, PSYCHIC_CLUB_ENTRANCE, $08, $02 + db $0E, $1A, PSYCHIC_CLUB_ENTRANCE, $0A, $02 + db $00, $00 ScienceClubEntranceWarpData: ; 1c25b (7:425b) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,SCIENCE_CLUB_LOBBY,$18,$0A - db $00,$08,SCIENCE_CLUB_LOBBY,$18,$0C - db $08,$00,SCIENCE_CLUB, $0C,$1C - db $0A,$00,SCIENCE_CLUB, $0E,$1C - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, SCIENCE_CLUB_LOBBY, $18, $0A + db $00, $08, SCIENCE_CLUB_LOBBY, $18, $0C + db $08, $00, SCIENCE_CLUB, $0C, $1C + db $0A, $00, SCIENCE_CLUB, $0E, $1C + db $00, $00 ScienceClubLobbyWarpData: ; 1c27b (7:427b) - db $1A,$0A,SCIENCE_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,SCIENCE_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, SCIENCE_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, SCIENCE_CLUB_ENTRANCE, $02, $08 + db $00, $00 ScienceClubWarpData: ; 1c287 (7:4287) - db $0C,$1E,SCIENCE_CLUB_ENTRANCE,$08,$02 - db $0E,$1E,SCIENCE_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1E, SCIENCE_CLUB_ENTRANCE, $08, $02 + db $0E, $1E, SCIENCE_CLUB_ENTRANCE, $0A, $02 + db $00, $00 FireClubEntranceWarpData: ; 1c293 (7:4293) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,FIRE_CLUB_LOBBY,$18,$0A - db $00,$08,FIRE_CLUB_LOBBY,$18,$0C - db $08,$00,FIRE_CLUB, $0C,$1C - db $0A,$00,FIRE_CLUB, $0E,$1C - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, FIRE_CLUB_LOBBY, $18, $0A + db $00, $08, FIRE_CLUB_LOBBY, $18, $0C + db $08, $00, FIRE_CLUB, $0C, $1C + db $0A, $00, FIRE_CLUB, $0E, $1C + db $00, $00 FireClubLobbyWarpData: ; 1c2b3 (7:42b3) - db $1A,$0A,FIRE_CLUB_ENTRANCE,$02,$06 - db $1A,$0C,FIRE_CLUB_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, FIRE_CLUB_ENTRANCE, $02, $06 + db $1A, $0C, FIRE_CLUB_ENTRANCE, $02, $08 + db $00, $00 FireClubWarpData: ; 1c2bf (7:42bf) - db $0C,$1E,FIRE_CLUB_ENTRANCE,$08,$02 - db $0E,$1E,FIRE_CLUB_ENTRANCE,$0A,$02 - db $00,$00 + db $0C, $1E, FIRE_CLUB_ENTRANCE, $08, $02 + db $0E, $1E, FIRE_CLUB_ENTRANCE, $0A, $02 + db $00, $00 ChallengeHallEntranceWarpData: ; 1c2cb (7:42cb) - db $08,$10,OVERWORLD_MAP, $00,$00 - db $0A,$10,OVERWORLD_MAP, $00,$00 - db $00,$06,CHALLENGE_HALL_LOBBY,$18,$0A - db $00,$08,CHALLENGE_HALL_LOBBY,$18,$0C - db $08,$00,CHALLENGE_HALL, $0E,$1C - db $0A,$00,CHALLENGE_HALL, $10,$1C - db $00,$00 + db $08, $10, OVERWORLD_MAP, $00, $00 + db $0A, $10, OVERWORLD_MAP, $00, $00 + db $00, $06, CHALLENGE_HALL_LOBBY, $18, $0A + db $00, $08, CHALLENGE_HALL_LOBBY, $18, $0C + db $08, $00, CHALLENGE_HALL, $0E, $1C + db $0A, $00, CHALLENGE_HALL, $10, $1C + db $00, $00 ChallengeHallLobbyWarpData: ; 1c2eb (7:42eb) - db $1A,$0A,CHALLENGE_HALL_ENTRANCE,$02,$06 - db $1A,$0C,CHALLENGE_HALL_ENTRANCE,$02,$08 - db $00,$00 + db $1A, $0A, CHALLENGE_HALL_ENTRANCE, $02, $06 + db $1A, $0C, CHALLENGE_HALL_ENTRANCE, $02, $08 + db $00, $00 ChallengeHallWarpData: ; 1c2f7 (7:42f7) - db $0E,$1E,CHALLENGE_HALL_ENTRANCE,$08,$02 - db $10,$1E,CHALLENGE_HALL_ENTRANCE,$0A,$02 - db $00,$00 + db $0E, $1E, CHALLENGE_HALL_ENTRANCE, $08, $02 + db $10, $1E, CHALLENGE_HALL_ENTRANCE, $0A, $02 + db $00, $00 PokemonDomeEntranceWarpData: ; 1c303 (7:4303) - db $0E,$10,OVERWORLD_MAP,$00,$00 - db $10,$10,OVERWORLD_MAP,$00,$00 - db $16,$00,POKEMON_DOME, $0E,$1C - db $18,$00,POKEMON_DOME, $10,$1C - db $00,$00 + db $0E, $10, OVERWORLD_MAP, $00, $00 + db $10, $10, OVERWORLD_MAP, $00, $00 + db $16, $00, POKEMON_DOME, $0E, $1C + db $18, $00, POKEMON_DOME, $10, $1C + db $00, $00 PokemonDomeWarpData: ; 1c319 (7:4319) - db $0E,$1E,POKEMON_DOME_ENTRANCE,$16,$02 - db $10,$1E,POKEMON_DOME_ENTRANCE,$18,$02 - db $0E,$00,HALL_OF_HONOR, $0A,$16 - db $10,$00,HALL_OF_HONOR, $0C,$16 - db $00,$00 + db $0E, $1E, POKEMON_DOME_ENTRANCE, $16, $02 + db $10, $1E, POKEMON_DOME_ENTRANCE, $18, $02 + db $0E, $00, HALL_OF_HONOR, $0A, $16 + db $10, $00, HALL_OF_HONOR, $0C, $16 + db $00, $00 HallOfHonorWarpData: ; 1c32f (7:432f) - db $0A,$18,POKEMON_DOME,$0E,$02 - db $0C,$18,POKEMON_DOME,$10,$02 - db $00,$00 + db $0A, $18, POKEMON_DOME, $0E, $02 + db $0C, $18, POKEMON_DOME, $10, $02 + db $00, $00 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 diff --git a/src/text/text3.asm b/src/text/text3.asm index 7699e08..a05ca19 100644 --- a/src/text/text3.asm +++ b/src/text/text3.asm @@ -1604,19 +1604,19 @@ Text03a6: ; 3f631 (f:7631) Text03a7: ; 3f643 (f:7643) done -Text03a8: ; 3f644 (f:7644) +ColosseumBoosterText: ; 3f644 (f:7644) text "COLOSSEUM" done -Text03a9: ; 3f64f (f:764f) +EvolutionBoosterText: ; 3f64f (f:764f) text "EVOLUTION" done -Text03aa: ; 3f65a (f:765a) +MysteryBoosterText: ; 3f65a (f:765a) text "MYSTERY" done -Text03ab: ; 3f663 (f:7663) +LaboratoryBoosterText: ; 3f663 (f:7663) text "LABORATORY" done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index ff757fe..3f1d87d 100644 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -937,10 +937,10 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text03a5 ; 0x03a5 textpointer Text03a6 ; 0x03a6 textpointer Text03a7 ; 0x03a7 - textpointer Text03a8 ; 0x03a8 - textpointer Text03a9 ; 0x03a9 - textpointer Text03aa ; 0x03aa - textpointer Text03ab ; 0x03ab + textpointer ColosseumBoosterText ; 0x03a8 + textpointer EvolutionBoosterText ; 0x03a9 + textpointer MysteryBoosterText ; 0x03aa + textpointer LaboratoryBoosterText ; 0x03ab textpointer DrMasonNPCName ; 0x03ac textpointer RonaldNPCName ; 0x03ad textpointer IshiharaNPCName ; 0x03ae diff --git a/src/wram.asm b/src/wram.asm index 46345f9..8ccd57b 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -2583,17 +2583,34 @@ wSpriteVRAMBuffer:: ; d5d8 wSpriteVRAMBufferSize:: ; d618 ds $1 - ds $2 +wSceneSprite:: ; d619 + ds $1 -wd61b:: ; d61b +wSceneSpriteAnimation:: ; d61a ds $1 - ds $2 +wSceneSpriteIndex:: ; d61b + ds $1 + +; base X position in pixels of loaded scene +wSceneBaseX:: ; d61c + ds $1 + +; base Y position in pixels of loaded scene +wSceneBaseY:: ; d61d + ds $1 wd61e:: ; d61e ds $1 - ds $5 +wd61f:: ; d61f + ds $1 + +wSceneSGBPacketPtr:: ; d620 + ds $2 + +wSceneSGBRoutinePtr:: ; d622 + ds $2 wd624:: ; d624 ds $1 |