From dd79fb04cd8ec20474cfd290cd34f80ab2a42e97 Mon Sep 17 00:00:00 2001 From: dannye <33dannye@gmail.com> Date: Mon, 6 Oct 2025 17:47:55 -0500 Subject: [PATCH] Misc section refactoring - Finish bank 4b - Move bank4b.asm and bank4c.asm to gfx.o - Reorder things to be more linear - Other minor cleanup --- src/engine/bank04.asm | 14 ++++++++------ src/engine/bank09.asm | 3 +++ src/engine/bank0b.asm | 6 ++---- src/engine/bank0f.asm | 2 -- src/engine/bank16.asm | 2 ++ src/engine/bank4b.asm | 36 +++++++++++++++++++++--------------- src/gfx.asm | 42 +++++++++++++++++++++++------------------- src/layout.link | 41 ++++++++++++++--------------------------- src/main.asm | 26 -------------------------- src/wram.asm | 20 +++++++++----------- 10 files changed, 82 insertions(+), 110 deletions(-) diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index 0267c42..4b85a30 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -757,7 +757,7 @@ SetInitialGraphicsConfiguration: pop af ret -SetFontAndTextBoxFrameColor_PreserveRegisters: +SetFontAndTextBoxFrameColor_PreserveRegisters:: push af push bc push de @@ -1290,7 +1290,7 @@ ENDR ret ; b = direction -SetSpriteAnimDirection: +SetSpriteAnimDirection:: push af push bc push de @@ -1772,7 +1772,7 @@ SetSpriteAnimFrameset: ret ; bc = OWFRAMEGROUP_* -SetSpriteAnimOWFrameGroup: +SetSpriteAnimOWFrameGroup:: push af push bc push de @@ -2844,7 +2844,7 @@ InitOWObjects: pop af ret -_GetNextInactiveOWObject: +_GetNextInactiveOWObject:: push af push bc push de @@ -2925,7 +2925,7 @@ Func_1126b: ld [hl], a ret -ConvertToSpriteAnimPosition: +ConvertToSpriteAnimPosition:: push af ld a, d add $08 @@ -5006,7 +5006,8 @@ SetCthSpriteAnimAnimating: call SetSpriteAnimAnimating pop hl ret -; 0x12eb9 + +INCLUDE "engine/scenes.asm" SECTION "Bank 4@73f0", ROMX[$73f0], BANK[$4] @@ -5215,6 +5216,7 @@ DrawLoadedCard: ; 0x1352a SECTION "Bank 4@7890", ROMX[$7890], BANK[$4] + INCLUDE "engine/credits_commands.asm" ShowProloguePortraitAndText_WithFade: diff --git a/src/engine/bank09.asm b/src/engine/bank09.asm index f6a233c..81d47e9 100644 --- a/src/engine/bank09.asm +++ b/src/engine/bank09.asm @@ -4786,3 +4786,6 @@ CountIfListedCardsInDeck: or a ret ; 0x260e7 + +SECTION "GBC Only Disclaimer", ROMX[$64fd], BANK[$9] +INCLUDE "engine/gbc_only_disclaimer.asm" diff --git a/src/engine/bank0b.asm b/src/engine/bank0b.asm index eabd939..54c8097 100644 --- a/src/engine/bank0b.asm +++ b/src/engine/bank0b.asm @@ -1,5 +1,3 @@ -SECTION "Bank b@4000", ROMX[$4000], BANK[$b] - IshiharasHouse_MapHeader: db MAP_GFX_ISHIHARAS_HOUSE dba IshiharasHouse_MapScripts @@ -329,8 +327,8 @@ PsychicClubEntrance_StepEvents: map_exit 0, 4, MAP_PSYCHIC_CLUB_LOBBY, 14, 7, WEST map_exit 4, 0, MAP_PSYCHIC_CLUB, 6, 12, NORTH map_exit 5, 0, MAP_PSYCHIC_CLUB, 7, 12, NORTH - ow_script 4, 2, $0b, Func_2ca3e - ow_script 5, 2, $0b, Func_2ca3e + ow_script 4, 2, Func_2ca3e + ow_script 5, 2, Func_2ca3e db $ff PsychicClubEntrance_NPCs: diff --git a/src/engine/bank0f.asm b/src/engine/bank0f.asm index a29bf8f..c5b6045 100644 --- a/src/engine/bank0f.asm +++ b/src/engine/bank0f.asm @@ -1,5 +1,3 @@ -SECTION "Bank f@4000", ROMX[$4000], BANK[$f] - Prologue:: xor a ; MUSIC_STOP ld [wCurMusic], a diff --git a/src/engine/bank16.asm b/src/engine/bank16.asm index 8ba4b57..3af70a8 100644 --- a/src/engine/bank16.asm +++ b/src/engine/bank16.asm @@ -3923,3 +3923,5 @@ EffectCommands_594a1: dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7813 dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $782a db $00 + +INCLUDE "data/decks.asm" diff --git a/src/engine/bank4b.asm b/src/engine/bank4b.asm index 0eaffd4..9387fb1 100644 --- a/src/engine/bank4b.asm +++ b/src/engine/bank4b.asm @@ -1,5 +1,3 @@ -SECTION "Bank 4B@4000", ROMX[$4000], BANK[$4b] - ; input: ; bc = PALETTE_* constant ; outputs pointer as b:hl @@ -41,7 +39,7 @@ GetTilesetGfxPointer:: ; bc = TILEMAP_* constant ; outputs pointer as b:hl -GetTilemapGfxPointer: +GetTilemapGfxPointer:: push af sla c rl b @@ -133,7 +131,7 @@ GetFramesetPointer: ; bc = OWFRAMEGROUP_* ; a = direction -GetOWObjectFrameset: +GetOWObjectFrameset:: push af push hl sla c @@ -176,7 +174,7 @@ Func_12c0b7: ; bc = TILEMAP_* constant ; de = OW coordinates -Func_12c0ce: +Func_12c0ce:: push af push bc push de @@ -235,7 +233,7 @@ Func_12c0fc: ; output: ; b = tilemap width ; c = tilemap height -LoadTilemap: +LoadTilemap:: push af push de push hl @@ -405,7 +403,7 @@ Func_12c1c1: ret ; bc = MAP_GFX_* ID -LoadOWMap: +LoadOWMap:: ld a, c ld [wOWMap + 0], a ld a, b @@ -554,7 +552,7 @@ LoadSpriteAnimGfx:: pop bc ret -UpdateSpriteAnim: +UpdateSpriteAnim:: push af push bc push de @@ -702,14 +700,15 @@ WriteCurSpriteAnim: ld bc, (SPRITEANIMSTRUCT_START_DELAY - SPRITEANIMSTRUCT_FLAGS) + 1 call CopyDataHLtoDE_SaveRegisters ret -; 0x12c3dc -SECTION "Bank 4B@43e0", ROMX[$43e0], BANK[$4b] +Func_12c3dc: + call Func_3bc1 + ret ; input: ; b:hl = tilemap pointer ; de = coordinates -LoadPortraitAttributeMap: +LoadPortraitAttributeMap:: push af push bc push de @@ -744,7 +743,7 @@ LoadPortraitAttributeMap: ; a = ? ; b = direction ; de = coordinates -_LoadOWObject: +_LoadOWObject:: push af push bc push de @@ -838,7 +837,7 @@ _LoadOWObject: pop af ret -Func_12c49b: +Func_12c49b:: push af push bc push de @@ -937,9 +936,16 @@ Func_12c535: pop bc pop af ret -; 0x12c545 -SECTION "Bank 4B@707f", ROMX[$707f], BANK[$4b] +INCLUDE "data/gfx_pointers/tilemaps.asm" +INCLUDE "data/gfx_pointers/tilesets.asm" +INCLUDE "data/gfx_pointers/palettes.asm" +INCLUDE "data/gfx_pointers/sprite_animations.asm" +INCLUDE "data/gfx_pointers/framesets.asm" +INCLUDE "data/gfx_pointers/ow_tile_frames.asm" +INCLUDE "data/gfx_pointers/ow_animations.asm" + +INCLUDE "data/map_gfx.asm" Data_12f07f: dw TILESET_MARK, SPRITE_ANIM_67, OWFRAMEGROUP_0E ; OWSPRITE_MARK diff --git a/src/gfx.asm b/src/gfx.asm index 440a96e..7c8bb3a 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -19,8 +19,6 @@ INCBIN "gfx/fonts/full_width/extra.1bpp" HalfWidthFont:: INCBIN "gfx/fonts/half_width.1bpp" -SECTION "Gfx 1@70b0", ROMX - Pals_6f0b0:: rgb 31, 31, 31 rgb 21, 21, 16 @@ -62,7 +60,7 @@ Pals_6f0b0:: rgb 27, 7, 3 rgb 0, 0, 0 -SECTION "Gfx 1@7150", ROMX +SECTION "Gfx 1@7150", ROMX[$7150], BANK[$1b] SymbolsFont:: INCBIN "gfx/fonts/symbols.2bpp" @@ -71,9 +69,15 @@ SECTION "Card Gfx 1", ROMX CardGraphics:: -SECTION "Tilemaps 1", ROMX[$74f5], BANK[$4b] +SECTION "Bank 4b", ROMX +INCLUDE "engine/bank4b.asm" + +SECTION "Tilemaps 1", ROMX INCLUDE "data/maps/tilemaps1.asm" +SECTION "Bank 4c", ROMX +INCLUDE "engine/bank4c.asm" + SECTION "Tilemaps 2", ROMX INCLUDE "data/maps/tilemaps2.asm" @@ -2467,21 +2471,6 @@ Frameset10A:: oamframe 3, 1, 0, 0 oamreset -SECTION "Framesets 1", ROMX -INCLUDE "data/framesets1.asm" - -SECTION "Framesets 2", ROMX -INCLUDE "data/framesets2.asm" - -SECTION "OW Tile Frames 1", ROMX -INCLUDE "data/ow_tile_frames1.asm" - -SECTION "OW Animations", ROMX -INCLUDE "data/ow_animations.asm" - -SECTION "OW Tile Frames 2", ROMX -INCLUDE "data/ow_tile_frames2.asm" - SECTION "Palettes 2", ROMX INCLUDE "data/palettes2.asm" @@ -2499,3 +2488,18 @@ INCLUDE "data/oam4.asm" SECTION "OAM 5", ROMX INCLUDE "data/oam5.asm" + +SECTION "Framesets 1", ROMX +INCLUDE "data/framesets1.asm" + +SECTION "Framesets 2", ROMX +INCLUDE "data/framesets2.asm" + +SECTION "OW Tile Frames 1", ROMX +INCLUDE "data/ow_tile_frames1.asm" + +SECTION "OW Animations", ROMX +INCLUDE "data/ow_animations.asm" + +SECTION "OW Tile Frames 2", ROMX +INCLUDE "data/ow_tile_frames2.asm" diff --git a/src/layout.link b/src/layout.link index e17887c..ba2f225 100644 --- a/src/layout.link +++ b/src/layout.link @@ -70,22 +70,22 @@ ROMX $12 "Bank 12" ROMX $13 "Bank 13" +; ROMX $14 and $15 are empty ROMX $16 "Bank 16" ROMX $17 "Bank 17" ROMX $18 "Bank 18" +; ROMX $19 not started ROMX $1a "Bank 1a" ROMX $1b "Gfx 1" - org $70b0 - "Gfx 1@70b0" - org $7150 - "Gfx 1@7150" +; ROMX $1c not started ROMX $1d "Card Gfx 1" +; ROMX $1e-$36 not started ROMX $37 "Text Offsets" ROMX $38 @@ -123,9 +123,12 @@ ROMX $47 "Text 16" ROMX $48 "Text 17" +; ROMX $49 and $4a are empty +ROMX $4b + "Bank 4b" + "Tilemaps 1" ROMX $4c "Bank 4c" - org $45ed "Tilemaps 2" ROMX $4d "Tilemaps 3" @@ -199,8 +202,6 @@ ROMX $6e ROMX $6f "Tilesets 32" "Palettes 1" -ROMX $77 - "Audio 1" ROMX $70 "Palettes 2" "OAM 1" @@ -219,6 +220,8 @@ ROMX $75 ROMX $76 "OW Animations" "OW Tile Frames 2" +ROMX $77 + "Audio 1" ROMX $78 "Audio 2" ROMX $79 @@ -237,36 +240,20 @@ ROMX $7f "Audio 9" WRAM0 "WRAM0" + org $c200 "WRAM0 Duels 1" org $c600 "WRAM0 Text Engine" + org $ca00 "WRAM0 1" - org $cb6e "WRAM0 Serial Transfer" - org $cbda - "WRAM0 Duels 2" - org $cc21 - "WRAM0 Duels 2@cc21" - org $cd5b "WRAM0 2" + "WRAM0 Duels 2" + "WRAM0 3" WRAMX 1 "WRAM1" - org $d0e1 - "WRAM1@d0e1" - org $d380 - "WRAM1@d380" - org $d4c8 - "WRAM1@d4c8" - org $d548 - "WRAM1@d548" - org $dc06 - "WRAM1@dc06" - org $dd02 - "WRAM1@dd02" WRAMX 2 "WRAM2" - org $d58e - "WRAM2@d58e" WRAMX 3 "WRAM3" WRAMX 7 diff --git a/src/main.asm b/src/main.asm index 94423ff..0f70183 100644 --- a/src/main.asm +++ b/src/main.asm @@ -16,9 +16,6 @@ INCLUDE "engine/bank03.asm" SECTION "Bank 4", ROMX INCLUDE "engine/bank04.asm" -SECTION "Scenes", ROMX[$6eb9], BANK[$4] -INCLUDE "engine/scenes.asm" - SECTION "Bank 5", ROMX INCLUDE "engine/bank05.asm" @@ -34,9 +31,6 @@ INCLUDE "engine/bank08.asm" SECTION "Bank 9", ROMX INCLUDE "engine/bank09.asm" -SECTION "GBC Only Disclaimer", ROMX[$64fd], BANK[$9] -INCLUDE "engine/gbc_only_disclaimer.asm" - SECTION "Bank a", ROMX INCLUDE "engine/bank0a.asm" @@ -77,25 +71,5 @@ INCLUDE "data/cards1.asm" SECTION "Bank 18", ROMX INCLUDE "data/cards2.asm" -SECTION "Decks", ROMX[$54ac], BANK[$16] -INCLUDE "data/decks.asm" - SECTION "Bank 1a", ROMX INCLUDE "engine/bank1a.asm" - -INCLUDE "engine/bank4b.asm" - -SECTION "Gfx Pointers", ROMX[$4545], BANK[$4b] -INCLUDE "data/gfx_pointers/tilemaps.asm" -INCLUDE "data/gfx_pointers/tilesets.asm" -INCLUDE "data/gfx_pointers/palettes.asm" -INCLUDE "data/gfx_pointers/sprite_animations.asm" -INCLUDE "data/gfx_pointers/framesets.asm" -INCLUDE "data/gfx_pointers/ow_tile_frames.asm" -INCLUDE "data/gfx_pointers/ow_animations.asm" - -SECTION "Map Gfx", ROMX[$6c59], BANK[$4b] -INCLUDE "data/map_gfx.asm" - -SECTION "Bank 4c", ROMX -INCLUDE "engine/bank4c.asm" diff --git a/src/wram.asm b/src/wram.asm index 79be8ed..6fa7c6d 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -349,6 +349,8 @@ wSerialRecvBuf:: ; cb9f wSerialEnd:: ; cbbf +SECTION "WRAM0 2", WRAM0 + ; In a duel, the main menu current or last selected menu item ; From 0 to 5: Hand, Attack, Check, Pkmn Power, Retreat, Done wCurrentDuelMenuItem:: ; cbbf @@ -654,7 +656,7 @@ wcc1a:: ; cc1a wcc1b:: ; cc1b ds $1 -SECTION "WRAM0 Duels 2@cc21", WRAM0 + ds $5 wAttackEnergyCost:: ; cc21 ds NUM_TYPES @@ -985,7 +987,7 @@ wDeckCheckCurStage1Count:: ; cd59 wDeckCheckCurStage2Count:: ; cd5a ds $1 -SECTION "WRAM0 2", WRAM0 +SECTION "WRAM0 3", WRAM0 ; on CGB, attributes of the text box borders. (values 0-7 seem to be used, which only affect palette) ; on SGB, colorize text box border with SGB1 if non-0 @@ -1795,8 +1797,6 @@ wDamageAnimPlayAreaSide:: ; d0d8 wIRDataBuffer:: ; d0d9 ds $8 -SECTION "WRAM1@d0e1", WRAMX - wScrollMenuScrollOffset:: ; d0e1 ds $1 @@ -1985,7 +1985,7 @@ wBoosterPackCardListPrefixBuffer:: ; d2e0 wTempSavedDeckCards:: ; d2fe ds 2 * DECK_SIZE -SECTION "WRAM1@d380", WRAMX + ds $a ; max number of cards that are allowed ; to include when building a deck configuration @@ -2128,13 +2128,11 @@ wd49e:: ; d49e wd49f:: ; d49f ds $1 -SECTION "WRAM1@d4c8", WRAMX + ds $28 wd4c8:: ; d4c8 ds $80 -SECTION "WRAM1@d548", WRAMX - wd548:: ; d548 ds $2 @@ -2849,7 +2847,7 @@ wTotalNumCardsCollected:: ; db15 wdb1f:: ; db1f ds $1 -SECTION "WRAM1@dc06", WRAMX + ds $e6 wdc06:: ; dc06 ds $1 @@ -3014,7 +3012,7 @@ wAnimationSFX:: ; dcfa wAnimationUnknownParam:: ; dcfb ds $1 -SECTION "WRAM1@dd02", WRAMX + ds $6 ; stores the player's result in a duel (0: win, 1: loss, 2: ???, -1: transmission error?) ; to be read by the overworld caller @@ -3211,7 +3209,7 @@ SECTION "WRAM2", WRAMX wScratchCardCollection:: ; d000 ds CARD_COLLECTION_SIZE -SECTION "WRAM2@d58e", WRAMX +SECTION "WRAM2@d58e", WRAMX[$d58e], BANK[$2] w2d58e:: ; d58e ds $80