diff --git a/Items/all_items.asm b/Items/all_items.asm index e17aa43..4b41318 100644 --- a/Items/all_items.asm +++ b/Items/all_items.asm @@ -11,7 +11,7 @@ incsrc "Items/portal_rod.asm" incsrc "Items/fishing_rod.asm" incsrc "Items/magic_rings.asm" incsrc "Items/fist_damage.asm" -print "End of Items/fist_damage.asm ", pc +%print_debug("End of Items/fist_damage.asm ") MagicBeanGfx: incbin "gfx/magic_bean.bin" @@ -80,5 +80,5 @@ Link_ConsumeMagicBagItem: pushpc ; League of its own incsrc "Items/ice_rod.asm" -print "End of Items/ice_rod.asm ", pc +%print_debug("End of Items/ice_rod.asm ") pullpc diff --git a/Menu/menu.asm b/Menu/menu.asm index 4d07174..7d38a5a 100644 --- a/Menu/menu.asm +++ b/Menu/menu.asm @@ -762,9 +762,9 @@ Submenu_Return: menu_frame: incbin "tilemaps/menu_frame.tilemap" quest_icons: incbin "tilemaps/quest_icons.tilemap" incsrc "menu_map_names.asm" -print "End of Menu/menu.asm ", pc +%print_debug("End of Menu/menu.asm ") incsrc "menu_hud.asm" -print "End of Menu/menu_hud.asm ", pc +%print_debug("End of Menu/menu_hud.asm ") incsrc "menu_journal.asm" -print "End of Menu/menu_journal.asm ", pc +%print_debug("End of Menu/menu_journal.asm ") diff --git a/Oracle_main.asm b/Oracle_main.asm index a6f216f..e8aaffc 100644 --- a/Oracle_main.asm +++ b/Oracle_main.asm @@ -27,8 +27,10 @@ ; 41 - DW World Map ; ========================================================= +incsrc "Util/macros.asm" + incsrc "Overworld/ZSCustomOverworld.asm" -print "End of ZSCustomOverworld.asm ", pc +%print_debug("End of ZSCustomOverworld.asm ") ; Vanilla WRAM and SRAM incsrc "Core/ram.asm" @@ -40,42 +42,43 @@ namespace Oracle incsrc "Core/symbols.asm" incsrc "Core/message.asm" - print " -- Music -- " - print "" + %print_debug(" -- Music -- ") + %print_debug("") incsrc "Music/all_music.asm" - print "" + %print_debug("") - print " -- Overworld -- " - print "" + %print_debug(" -- Overworld -- ") + %print_debug("") incsrc "Overworld/overworld.asm" - print "" + %print_debug("") - print " -- Dungeon -- " - print "" + %print_debug(" -- Dungeon -- ") + %print_debug("") incsrc "Dungeons/dungeons.asm" - print "" + %print_debug("") - print " -- Sprites -- " - print "" + %print_debug(" -- Sprites -- ") + %print_debug("") incsrc "Sprites/all_sprites.asm" - print "" + %print_debug("") - print " -- Masks -- " - print "" + %print_debug(" -- Masks -- ") + %print_debug("") incsrc "Masks/all_masks.asm" - print "" + %print_debug("") - print " -- Items -- " - print "" + %print_debug(" -- Items -- ") + %print_debug("") incsrc "Items/all_items.asm" - print "" + %print_debug("") - print " -- Menu -- " - print "" + %print_debug(" -- Menu -- ") + %print_debug("") incsrc "Menu/menu.asm" incsrc "Util/item_cheat.asm" + incsrc "Core/patches.asm" - print "" - print "Finished applying patches" + %print_debug("") + %print_debug("Finished applying patches") } namespace off diff --git a/Overworld/ZSCustomOverworld.asm b/Overworld/ZSCustomOverworld.asm index 3a0efe7..5375d6b 100644 --- a/Overworld/ZSCustomOverworld.asm +++ b/Overworld/ZSCustomOverworld.asm @@ -3121,13 +3121,13 @@ BlockGFXCheck: db $03, $04, $05, $06, $00, $01, $02, $07 .sheetTarget - dw #$2000, #$2400, #$2800, #$2C00, #$3000, #$3400, #$3800, #$3E00 + dw $2000, $2400, $2800, $2C00, $3000, $3400, $3800, $3E00 .sheetSource - dw #$2000, #$2800, #$3000, #$0000, #$0800, #$1000, #$1800, #$3C00 + dw $2000, $2800, $3000, $0000, $0800, $1000, $1800, $3C00 .sheetCount - dw #$0800, #$0800, #$0800, #$0800, #$0800, #$0800, #$0800, #$0400 + dw $0800, $0800, $0800, $0800, $0800, $0800, $0800, $0400 ; Only copy the latter half of the sheet to prevent the animated tiles ; from flickering on transition. diff --git a/Sprites/all_sprites.asm b/Sprites/all_sprites.asm index 3370a2b..6fae983 100644 --- a/Sprites/all_sprites.asm +++ b/Sprites/all_sprites.asm @@ -7,83 +7,83 @@ incsrc Core/sprite_new_table.asm Sprite_Farore = $73 incsrc "Sprites/NPCs/farore.asm" -print "End of farore.asm ", pc +%print_debug("End of farore.asm ") incsrc "Sprites/NPCs/hyrule_dream.asm" -print "End of hyrule_dream.asm ", pc +%print_debug("End of hyrule_dream.asm ") Sprite_KydrogNPC = $7B incsrc "Sprites/Bosses/kydrog.asm" -print "End of kydrog.asm ", pc +%print_debug("End of kydrog.asm ") Sprite_MakuTree = $9E incsrc "Sprites/NPCs/maku_tree.asm" -print "End of maku_tree.asm ", pc +%print_debug("End of maku_tree.asm ") Sprite_MaskSalesman = $E8 incsrc "Sprites/NPCs/mask_salesman.asm" -print "End of mask_salesman.asm ", pc +%print_debug("End of mask_salesman.asm ") Sprite_BeanVendor = $07 Sprite_VillageElder = $07 incsrc "Sprites/NPCs/village_elder.asm" incsrc "Sprites/NPCs/bean_vendor.asm" -print "End of bean_vendor.asm ", pc +%print_debug("End of bean_vendor.asm ") incsrc "Sprites/Bosses/octoboss.asm" -print "End of octoboss.asm ", pc +%print_debug("End of octoboss.asm ") Sprite_Mermaid = $F0 Sprite_Maple = $F0 ; Subtype 1 Sprite_Librarian = $F0 ; Subtype 2 incsrc "Sprites/NPCs/mermaid.asm" -print "End of mermaid.asm ", pc +%print_debug("End of mermaid.asm ") incsrc "Sprites/NPCs/maple.asm" -print "End of maple.asm ", pc +%print_debug("End of maple.asm ") Sprite_Manhandla = $88 incsrc "Sprites/Bosses/manhandla.asm" -print "End of manhandla.asm ", pc +%print_debug("End of manhandla.asm ") Sprite_BusinessScrub = $14 incsrc "Sprites/Enemies/business_scrub.asm" -print "End of business_scrub.asm ", pc +%print_debug("End of business_scrub.asm ") incsrc "Sprites/Enemies/eon_scrub.asm" -print "End of eon_scrub.asm ", pc +%print_debug("End of eon_scrub.asm ") Sprite_Goriya = $2C incsrc "Sprites/Enemies/goriya.asm" -print "End of goriya.asm ", pc +%print_debug("End of goriya.asm ") Sprite_Darknut = $1D incsrc "Sprites/Enemies/darknut.asm" -print "End of darknut.asm ", pc +%print_debug("End of darknut.asm ") Sprite_SeaUrchin = $AE incsrc "Sprites/Enemies/sea_urchin.asm" -print "End of sea_urchin.asm ", pc +%print_debug("End of sea_urchin.asm ") Sprite_Korok = $F1 incsrc "Sprites/NPCs/korok.asm" -print "End of korok.asm ", pc +%print_debug("End of korok.asm ") Sprite_Vasu = $D7 incsrc "Sprites/NPCs/vasu.asm" -print "End of vasu.asm ", pc +%print_debug("End of vasu.asm ") incsrc "Sprites/Enemies/keese.asm" -print "End of keese.asm ", pc +%print_debug("End of keese.asm ") incsrc "Sprites/Bosses/vampire_bat.asm" -print "End of vampire_bat.asm ", pc +%print_debug("End of vampire_bat.asm ") incsrc "Sprites/NPCs/bottle_vendor.asm" -print "End of bottle_vendor.asm ", pc +%print_debug("End of bottle_vendor.asm ") incsrc "Sprites/Enemies/leever.asm" -print "End of leever.asm ", pc +%print_debug("End of leever.asm ") incsrc "Sprites/Objects/pedestal.asm" -print "End of pedestal.asm ", pc +%print_debug("End of pedestal.asm ") DontTeleportWithoutFlippers: { @@ -112,329 +112,174 @@ Graphics_Transfer: RTL } -print "End of Sprites Bank 30 ", pc - -; UnderworldTransition_ScrollRoom -org $02BE5E : JSL Graphics_Transfer - -; Whirlpool -org $1EEEE4 : JSL DontTeleportWithoutFlippers - -; SpriteDraw_Roller -org $058EE6 : JSL PutRollerBeneathLink +%print_debug("End of Sprites Bank 30 ") ; ========================================================= -print "" -print "Bank 31 Sprites" -print "" +%print_debug("") +%print_debug("Bank 31 Sprites") +%print_debug("") org $318000 incsrc Core/sprite_functions.asm -print "End of sprite_functions.asm ", pc +%print_debug("End of sprite_functions.asm ") Sprite_KydrogBoss = $CB incsrc "Sprites/Bosses/kydrog_boss.asm" -print "End of kydrog_boss.asm ", pc +%print_debug("End of kydrog_boss.asm ") Sprite_DekuScrubNPCs = $A0 incsrc "Sprites/NPCs/deku_scrub.asm" -print "End of deku_scrub.asm ", pc +%print_debug("End of deku_scrub.asm ") Sprite_AntiKirby = $A8 incsrc "Sprites/Enemies/anti_kirby.asm" -print "End of anti_kirby.asm ", pc +%print_debug("End of anti_kirby.asm ") Sprite_HelmetChuchu = $05 incsrc "Sprites/Enemies/helmet_chuchu.asm" -print "End of helmet_chuchu.asm ", pc +%print_debug("End of helmet_chuchu.asm ") Sprite_Booki = $CC incsrc "Sprites/Enemies/booki.asm" -print "End of booki.asm ", pc +%print_debug("End of booki.asm ") Sprite_ThunderGhost = $CD incsrc "Sprites/Enemies/thunder_ghost.asm" -print "End of thunder_ghost.asm ", pc +%print_debug("End of thunder_ghost.asm ") Sprite_SwitchTrack = $B0 incsrc "Sprites/Objects/switch_track.asm" -print "End of switch_track.asm ", pc +%print_debug("End of switch_track.asm ") Sprite_Mineswitch = $AF incsrc "Sprites/Objects/mineswitch.asm" -print "End of mineswitch.asm ", pc +%print_debug("End of mineswitch.asm ") Sprite_VillageDog = $25 incsrc "Sprites/NPCs/village_dog.asm" -print "End of village_dog.asm ", pc +%print_debug("End of village_dog.asm ") Sprite_Minecart = $A3 incsrc "Sprites/Objects/minecart.asm" -print "End of minecart.asm ", pc +%print_debug("End of minecart.asm ") Sprite_DarkLink = $C1 incsrc "Sprites/Bosses/dark_link.asm" -print "End of dark_link.asm ", pc +%print_debug("End of dark_link.asm ") Sprite_Puffstool = $B1 incsrc "Sprites/Enemies/puffstool.asm" -print "End of puffstool.asm ", pc +%print_debug("End of puffstool.asm ") ; Also beach whirlpool Sprite_DekuLeaf = $77 incsrc "Sprites/Objects/deku_leaf.asm" -print "End of deku_leaf.asm ", pc +%print_debug("End of deku_leaf.asm ") Sprite_Portal = $03 incsrc "Sprites/Objects/portal_sprite.asm" -print "End of portal_sprite.asm ", pc +%print_debug("End of portal_sprite.asm ") incsrc "Sprites/NPCs/impa.asm" -print "End of impa.asm ", pc +%print_debug("End of impa.asm ") Sprite_Poltergeist = $EF incsrc "Sprites/Enemies/poltergeist.asm" -print "End of poltergeist.asm ", pc +%print_debug("End of poltergeist.asm ") Sprite_PolsVoice = $A4 incsrc "Sprites/Enemies/pols_voice.asm" -print "End of pols_voice.asm ", pc +%print_debug("End of pols_voice.asm ") Sprite_Wolfos = $A9 incsrc "Sprites/Bosses/wolfos.asm" -print "End of wolfos.asm ", pc +%print_debug("End of wolfos.asm ") ; TODO: Change from digging game guy? Sprite_IceBlock = $D5 incsrc "Sprites/Objects/ice_block.asm" -print "End of ice_block.asm ", pc +%print_debug("End of ice_block.asm ") incsrc "Sprites/NPCs/ranch_girl.asm" -print "End of Ranch Girl.asm ", pc +%print_debug("End of Ranch Girl.asm ") assert pc() <= $328000 ; ========================================================= -print "" -print "Bank 32 Sprites" -print "" +%print_debug("") +%print_debug("Bank 32 Sprites") +%print_debug("") org $328000 Sprite_Twinrova = $CE incsrc "Sprites/Bosses/twinrova.asm" -print "End of twinrova.asm ", pc +%print_debug("End of twinrova.asm ") Sprite_Kydreeok = $7A incsrc "Sprites/Bosses/kydreeok.asm" -print "End of kydreeok.asm ", pc +%print_debug("End of kydreeok.asm ") Sprite_KydreeokHead = $CF incsrc "Sprites/Bosses/kydreeok_head.asm" -print "End of kydreeok_head.asm ", pc +%print_debug("End of kydreeok_head.asm ") ; ========================================================= incsrc "Sprites/NPCs/bug_net_kid.asm" -print "End of bug_net_kid.asm ", pc +%print_debug("End of bug_net_kid.asm ") incsrc "Sprites/Bosses/king_dodongo.asm" -print "End of king_dodongo.asm ", pc +%print_debug("End of king_dodongo.asm ") incsrc "Sprites/Bosses/arrghus.asm" -print "End of arrghus.asm ", pc +%print_debug("End of arrghus.asm ") incsrc "Sprites/NPCs/fortune_teller.asm" -print "End of fortune_teller.asm ", pc +%print_debug("End of fortune_teller.asm ") ; ========================================================= -print "" -print "Bank 2C Sprites" -print "" +%print_debug("") +%print_debug("Bank 2C Sprites") +%print_debug("") incsrc "Sprites/Bosses/lanmola.asm" -print "End of Lanmola.asm ", pc +%print_debug("End of Lanmola.asm ") incsrc "Sprites/Bosses/lanmola_Expanded.asm" -print "End of Lanmola_Expanded.asm ", pc +%print_debug("End of Lanmola_Expanded.asm ") incsrc "Sprites/NPCs/followers.asm" -print "End of followers.asm ", pc +%print_debug("End of followers.asm ") incsrc "Sprites/Enemies/octorok.asm" -print "End of octorok.asm ", pc +%print_debug("End of octorok.asm ") incsrc "Sprites/NPCs/piratian.asm" -print "End of piratian.asm ", pc +%print_debug("End of piratian.asm ") incsrc "Sprites/Objects/collectible.asm" -print "End of collectible.asm ", pc +%print_debug("End of collectible.asm ") Sprite_EonOwl = $0A Sprite_KaeporaGaebora = $0A incsrc "Sprites/NPCs/eon_owl.asm" -print "End of eon_owl.asm ", pc +%print_debug("End of eon_owl.asm ") Sprite_ZoraPrincess = $B8 incsrc "Sprites/NPCs/eon_zora.asm" incsrc "Sprites/NPCs/eon_zora_elder.asm" incsrc "Sprites/NPCs/zora.asm" incsrc "Sprites/NPCs/zora_princess.asm" -print "End of zora_princess.asm ", pc +%print_debug("End of zora_princess.asm ") incsrc "Sprites/NPCs/tingle.asm" -print "End of tingle.asm ", pc +%print_debug("End of tingle.asm ") incsrc "Sprites/NPCs/goron.asm" -print "End of goron.asm ", pc +%print_debug("End of goron.asm ") -; ========================================================= - -; Sprite Recoil and Death -; TODO: Sprite_AttemptKillingOfKin -; Kydreeok Head die like Sidenexx -org $06F003 : CMP.b #$CF - -; Remove sidenexx death from booki -org $06EFFF : NOP #4 - -; Make Dark Link die like sidenexx -org $06F003 : CMP.b #$C1 - -; Make Helmet ChuChu recoil link -org $06F37D : CMP.b #$05 - -; Make Kydreeok head recoil Link -org $06F381 : CMP.b #$CF - -; ========================================================= - -InCutScene = $7EF303 - -; Player2JoypadReturn -org $0083F8 - LDA InCutScene : BEQ .notInCutscene - STZ $F0 - STZ $F2 - STZ $F4 - STZ $F6 - STZ $F8 - STZ $FA ; kill all input - .notInCutscene - RTS - -assert pc() <= $00841E - -; ========================================================= - -org $1EF27D -ShopItem_Banana: -{ - JSR $F4CE ; SpriteDraw_ShopItem - JSR $FE78 ; Sprite_CheckIfActive_Bank1E - JSL $1EF4F3 ; Sprite_BehaveAsBarrier - JSR $F391 ; ShopItem_CheckForAPress - BCC .exit - - LDA.l Bananas : CMP.b #$0A : BCS .error - LDA.b #$1E : LDY.b #$00 - JSR $F39E ; ShopItem_HandleCost - BCC $F1A1 ; ShopItem_GiveFailureMessage - - STZ.w SprState,X - INC.b Bananas - - LDY.b #$42 : JSR $F366 ; ShopItem_HandleReceipt - - .exit - RTS - .error - JSR $F38A ; ShopItem_PlayBeep -} -assert pc() <= $1EF2AB - -; ========================================================= - -; Shop item heart OAM -; SpriteDraw_ShopItem -org $1EF42E - dw -4, 16 : db $03, $02, $00, $00 ; 3 - dw -4, 16 : db $03, $02, $00, $00 ; 3 - dw 4, 16 : db $30, $02, $00, $00 ; 0 - dw 0, 0 : db $E5, $03, $00, $02 ; item - dw 4, 11 : db $38, $03, $00, $00 ; shadow - -; ========================================================= - -; Octoballoon_FormBabby -; Reduce by half the number of babies spawned -org $06D814 : LDA.b #$02 - -; SpritePrep_HauntedGroveOstritch -org $068BB2 : NOP #11 - -; HauntedGroveRabbit_Idle -org $1E9A8F : NOP #5 - -; MedallionTablet (Goron) -org $05F274 : LDA.l $7EF378 ; Unused SRAM - -org $08C2E3 : dw $006F ; BUTTER SWORD DIALOGUE - -; Fix the capital 'B' debug item cheat. -org $0CDC26 : db $80 ; replace a $F0 (BEQ) with a $80 (BRA). - -; Update Catfish Item Get to Bottle -org $1DE184 : LDA.b #$16 : STA.w $0D90, X - -; Follower_Disable -; Don't disable Kiki so we can switch maps with him. -org $09ACF3 : LDA.l $7EF3CC : CMP.b #$0E - -; Kiki, don't care if we're not in dark world -org $099FEB : LDA.b $8A : AND.b #$FF - -org $1EE48E : NOP #6 - -; Kiki activate cutscene 3 (tail palace) -org $1EE630 : LDA.b #$03 : STA.w $04C6 - -; Kid at ranch checks for flute -org $05FF7D : LDA.l $7EF34C : CMP.b #$01 - -; Raven Damage (LW/DW) -org $068963 : db $81, $84 - -; Running Man draw palette -org $05E9CD -SpriteDraw_RunningBoy: - #_05E9CD: dw 0, -8 : db $2C, $00, $00, $02 - #_05E9D5: dw 0, 0 : db $EE, $0E, $00, $02 - - #_05E9DD: dw 0, -7 : db $2C, $00, $00, $02 - #_05E9E5: dw 0, 1 : db $EE, $4E, $00, $02 - - #_05E9ED: dw 0, -8 : db $2A, $00, $00, $02 - #_05E9F5: dw 0, 0 : db $CA, $0E, $00, $02 - - #_05E9FD: dw 0, -7 : db $2A, $00, $00, $02 - #_05EA05: dw 0, 1 : db $CA, $4E, $00, $02 - - #_05EA0D: dw 0, -8 : db $2E, $00, $00, $02 - #_05EA15: dw 0, 0 : db $CC, $0E, $00, $02 - - #_05EA1D: dw 0, -7 : db $2E, $00, $00, $02 - #_05EA25: dw 0, 1 : db $CE, $0E, $00, $02 - - #_05EA2D: dw 0, -8 : db $2E, $40, $00, $02 - #_05EA35: dw 0, 0 : db $CC, $4E, $00, $02 - - #_05EA3D: dw 0, -7 : db $2E, $40, $00, $02 - #_05EA45: dw 0, 1 : db $CE, $4E, $00, $02 - -; Sword Barrier Sprite Prep -; Skip overworld flag check, sprite is indoors now -org $06891B : NOP #12 +; ========================================================= \ No newline at end of file diff --git a/Util/macros.asm b/Util/macros.asm new file mode 100644 index 0000000..cd63bd5 --- /dev/null +++ b/Util/macros.asm @@ -0,0 +1,12 @@ +; Defines common macros for the project. + +; Set to 1 to enable debug printing, 0 to disable. +!DEBUG = 1 + +; Prints a message and the current PC value during assembly, but only if !DEBUG is enabled. +; Usage: %print_debug("My message") +macro print_debug(message) + if !DEBUG == 1 + print " ", pc + endif +endmacro