From b4bae4a5d5abd3f44a49028f550c1eb475ac280b Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Sat, 31 May 2025 15:08:23 -0400 Subject: [PATCH 01/12] Add a `CANNOT_MOVE` constant (#508) --- constants/move_constants.asm | 2 ++ engine/battle/core.asm | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/constants/move_constants.asm b/constants/move_constants.asm index 3376c1af..1dccabfd 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -173,6 +173,8 @@ const STRUGGLE ; a5 DEF NUM_ATTACKS EQU const_value - 1 +DEF CANNOT_MOVE EQU $ff + ; Moves do double duty as animation identifiers. const SHOWPIC_ANIM diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 4fe7880f..c833fc71 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -317,7 +317,7 @@ MainInBattleLoop: bit USING_TRAPPING_MOVE, a ; check if enemy is using a multi-turn attack like wrap jr z, .selectPlayerMove ; if not, jump ; enemy is using a multi-turn attack like wrap, so player is trapped and cannot execute a move - ld a, $ff + ld a, CANNOT_MOVE ld [wPlayerSelectedMove], a jr .selectEnemyMove .selectPlayerMove @@ -3018,7 +3018,8 @@ LinkBattleExchangeData: ld b, LINKBATTLE_STRUGGLE jr z, .next dec b ; LINKBATTLE_NO_ACTION - inc a ; does move equal -1 (i.e. no action)? + ASSERT CANNOT_MOVE == $ff + inc a jr z, .next ld a, [wPlayerMoveListIndex] jr .doExchange @@ -3071,8 +3072,9 @@ ExecutePlayerMove: xor a ldh [hWhoseTurn], a ; set player's turn ld a, [wPlayerSelectedMove] + ASSERT CANNOT_MOVE == $ff inc a - jp z, ExecutePlayerMoveDone ; for selected move = FF, skip most of player's turn + jp z, ExecutePlayerMoveDone ; if the player cannot move, skip most of their turn xor a ld [wMoveMissed], a ld [wMonIsDisobedient], a @@ -5584,6 +5586,7 @@ RandomizeDamage: ; for more detailed commentary, see equivalent function for player side (ExecutePlayerMove) ExecuteEnemyMove: ld a, [wEnemySelectedMove] + ASSERT CANNOT_MOVE == $ff inc a jp z, ExecuteEnemyMoveDone call PrintGhostText From fd043a66c2096343d0ce9cb4aec89b20743ef89f Mon Sep 17 00:00:00 2001 From: dannye <33dannye@gmail.com> Date: Tue, 3 Jun 2025 23:48:35 -0500 Subject: [PATCH 02/12] Fix typos --- engine/battle/core.asm | 6 +++--- engine/battle/effects.asm | 2 +- engine/events/hidden_objects/vermilion_gym_trash.asm | 2 +- engine/gfx/palettes.asm | 2 +- engine/menus/naming_screen.asm | 4 ++-- home/text.asm | 2 +- home/uncompress.asm | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/engine/battle/core.asm b/engine/battle/core.asm index c833fc71..8aa27cce 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -2375,10 +2375,10 @@ PartyMenuOrRockOrRun: jr nz, .doEnemyMonAnimation ; enemy mon doesn't have substitute ld a, [wEnemyMonMinimized] - and a ; has the enemy mon used Minimise? + and a ; has the enemy mon used Minimize? ld hl, AnimationMinimizeMon jr nz, .doEnemyMonAnimation -; enemy mon is not minimised +; enemy mon is not minimized ld a, [wEnemyMonSpecies] ld [wCurPartySpecies], a ld [wCurSpecies], a @@ -2994,7 +2994,7 @@ SelectEnemyMove: pop hl jr z, .chooseRandomMove ; move disabled, try again and a - jr z, .chooseRandomMove ; move non-existant, try again + jr z, .chooseRandomMove ; move non-existent, try again .done ld [wEnemySelectedMove], a ret diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm index 5782a3f0..a3a552e7 100644 --- a/engine/battle/effects.asm +++ b/engine/battle/effects.asm @@ -295,7 +295,7 @@ FreezeBurnParalyzeEffect: ld hl, BurnedText jp PrintText .freeze2 -; hyper beam bits aren't reseted for opponent's side +; hyper beam bits aren't reset for opponent's side ld a, 1 << FRZ ld [wBattleMonStatus], a ld hl, FrozenText diff --git a/engine/events/hidden_objects/vermilion_gym_trash.asm b/engine/events/hidden_objects/vermilion_gym_trash.asm index 28cb15a6..73e50cca 100644 --- a/engine/events/hidden_objects/vermilion_gym_trash.asm +++ b/engine/events/hidden_objects/vermilion_gym_trash.asm @@ -142,7 +142,7 @@ VermilionGymTrashSuccessText2:: text_end ; unused -VermilionGymTrashSuccesPlaySfx: +VermilionGymTrashSuccessPlaySfx: text_asm call WaitForSoundToFinish ld a, SFX_SWITCH diff --git a/engine/gfx/palettes.asm b/engine/gfx/palettes.asm index f69eeba9..ef532c66 100644 --- a/engine/gfx/palettes.asm +++ b/engine/gfx/palettes.asm @@ -213,7 +213,7 @@ SetPal_TrainerCard: srl a push af jr c, .haveBadge -; The player doens't have the badge, so zero the badge's blk data. +; The player doesn't have the badge, so zero the badge's blk data. push bc ld a, [de] ld c, a diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm index 33556e26..14eb0b28 100644 --- a/engine/menus/naming_screen.asm +++ b/engine/menus/naming_screen.asm @@ -217,11 +217,11 @@ DisplayNamingScreen: .didNotPressED ld a, [wCurrentMenuItem] cp $6 ; case switch row - jr nz, .didNotPressCaseSwtich + jr nz, .didNotPressCaseSwitch ld a, [wTopMenuItemX] cp $1 ; case switch column jr z, .pressedA_changedCase -.didNotPressCaseSwtich +.didNotPressCaseSwitch ld hl, wMenuCursorLocation ld a, [hli] ld h, [hl] diff --git a/home/text.asm b/home/text.asm index 112956da..df5cfe51 100644 --- a/home/text.asm +++ b/home/text.asm @@ -278,7 +278,7 @@ _ContTextNoPause:: ; move both rows of text in the normal text box up one row ; always called twice in a row -; first time, copy the two rows of text to the "in between" rows that are usually emtpy +; first time, copy the two rows of text to the "in between" rows that are usually empty ; second time, copy the bottom row of text into the top row of text ScrollTextUpOneLine:: hlcoord 0, 14 ; top row of text diff --git a/home/uncompress.asm b/home/uncompress.asm index 9e434497..b6cb1e8d 100644 --- a/home/uncompress.asm +++ b/home/uncompress.asm @@ -466,7 +466,7 @@ DecodeNybble1TableFlipped:: dn $e, $6 dn $2, $a -; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differeintial decoded beforehand. +; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differential decoded beforehand. XorSpriteChunks:: xor a ld [wSpriteCurPosX], a @@ -568,7 +568,7 @@ ResetSpriteBufferPointers:: NybbleReverseTable:: db $0, $8, $4, $c, $2, $a, $6, $e, $1, $9, $5, $d, $3, $b, $7, $f -; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differeintial decoded beforehand. +; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differential decoded beforehand. UnpackSpriteMode2:: call ResetSpriteBufferPointers ld a, [wSpriteFlipped] From 0520dce9fb931d8ca00db904f928eaa0dce4b59f Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Sat, 7 Jun 2025 18:11:11 -0400 Subject: [PATCH 03/12] Add .rgbds-version file for rgbenv compatibility --- .rgbds-version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .rgbds-version diff --git a/.rgbds-version b/.rgbds-version new file mode 100644 index 00000000..2003b639 --- /dev/null +++ b/.rgbds-version @@ -0,0 +1 @@ +0.9.2 From 663b0612a7275da838585d8719bdf075c60a8abb Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Wed, 11 Jun 2025 15:44:17 -0400 Subject: [PATCH 04/12] Simplify `li` macro --- macros/asserts.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macros/asserts.asm b/macros/asserts.asm index 402d97dd..7ca47892 100644 --- a/macros/asserts.asm +++ b/macros/asserts.asm @@ -44,7 +44,7 @@ MACRO list_start ENDM MACRO li - ASSERT STRFIND(\1, "@") == -1, STRCAT("String terminator \"@\" in list entry: ", \1) + ASSERT STRFIND(\1, "@") == -1, "String terminator \"@\" in list entry: \1" db \1, "@" DEF list_index += 1 ENDM From 5e5a498cc64d326786212a38749ec2af8905dc60 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Wed, 25 Jun 2025 11:27:38 -0400 Subject: [PATCH 05/12] Fishing graphics make more sense horizontally --- gfx/overworld/red_fish_back.png | Bin 114 -> 115 bytes gfx/overworld/red_fish_front.png | Bin 107 -> 107 bytes gfx/overworld/red_fish_side.png | Bin 111 -> 113 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/gfx/overworld/red_fish_back.png b/gfx/overworld/red_fish_back.png index 0972377cb029699829fd9680c1dc97e015598402..fd29ddab8868985f7d11940ce9ec10899f8212fa 100644 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c1SA;dueEpuq^vw$978G?d5>%qJfOhAdSSkI z#wC^BbR~4X!NPrmY>j;`&MHwvGTw__Xnj0b4;?suW>8C6J_Vj<$alVwDUg5 NG*4GQmvv4FO#tY-Bv$|c literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^96&6<1SA+-0xLn3rKgKyNX4z>9~&ATDr+BhXKb@i z;;E02{AXeChcofV`7;NOo)>s<{=lR221n;99+=m7ah~Iqc@GcNGgL0-efgEo&;n$N Mr>mdKI;Vst0CIsS!vFvP diff --git a/gfx/overworld/red_fish_front.png b/gfx/overworld/red_fish_front.png index e18a27d811c054392c16a8a30fc14a76555c2327..0d76b4284d2ba87ac31472b783c64688530c669b 100644 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c1SA;dueEpuq>MaW978G?b&nVdGAM93T=Zwk zE|}K9_Qj}e^2e0teB$>%?5O6=l2cann7$z7?eip)FU)e4yj@E+m~8@?;_2$=vd$@? F2>^%FAMyYI literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^96&6<1SA+-0xLn3k*AAeNX4z>9~(Lz_KO{MXKU-{ z{J+rg8{b8-6WKa}vJy>3_ zFd@%$n!=3<3g48zCE9my{BSo#;?S(7E3JV?ByVQ!-!b2Rx0TpehODc?n~&Mb=!4Ai MboFyt=akR{0O7SIN&o-= literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96&6<1SA+-0xLn3nWu|mNX4z>2a!h)C>;IJ*!VD5 z`|xtMHv1l)|NTaP{vX)z$lm#LeOtqS9=`vQ5eHH})U*Bj&#+5Yc=LY0`)ff)c)I$z JtaD0e0st}6C?Ws= From fcb61ae0e4724e8901562d9f89f69ff70822886c Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Wed, 25 Jun 2025 23:59:47 -0400 Subject: [PATCH 06/12] Distinguish single trainer pics section from Pokemon pics --- engine/battle/core.asm | 2 +- gfx/pics.asm | 2 +- layout.link | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 8aa27cce..114e715b 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6919,7 +6919,7 @@ _LoadTrainerPic: ld d, a ; de contains pointer to trainer pic ld a, [wLinkState] and a - ld a, BANK("Pics 6") ; this is where all the trainer pics are (not counting Red's) + ld a, BANK("Trainer Pics") jr z, .loadSprite ld a, BANK(RedPicFront) .loadSprite diff --git a/gfx/pics.asm b/gfx/pics.asm index 134516cd..71dd9309 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -325,7 +325,7 @@ VictreebelPicFront:: INCBIN "gfx/pokemon/front/victreebel.pic" VictreebelPicBack:: INCBIN "gfx/pokemon/back/victreebelb.pic" -SECTION "Pics 6", ROMX +SECTION "Trainer Pics", ROMX YoungsterPic:: INCBIN "gfx/trainers/youngster.pic" BugCatcherPic:: INCBIN "gfx/trainers/bugcatcher.pic" diff --git a/layout.link b/layout.link index 0c7096cb..454b3bec 100644 --- a/layout.link +++ b/layout.link @@ -99,7 +99,7 @@ ROMX $12 "Screen Effects" "Maps 8" ROMX $13 - "Pics 6" + "Trainer Pics" "Maps 9" "Predefs" ROMX $14 From 56c405de09ce267c4cfbc68a15c37b2ff51c635a Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Mon, 30 Jun 2025 12:47:22 -0400 Subject: [PATCH 07/12] Replace hardware_constants.asm with hardware.inc (#511) --- audio/engine_1.asm | 78 +- audio/engine_2.asm | 78 +- audio/engine_3.asm | 78 +- audio/low_health_alarm.asm | 2 +- audio/wave_samples.asm | 2 +- constants/audio_constants.asm | 8 +- constants/gfx_constants.asm | 17 +- constants/hardware.inc | 1065 +++++++++++++++++ constants/hardware_constants.asm | 126 -- constants/input_constants.asm | 20 - constants/misc_constants.asm | 3 + constants/oam_constants.asm | 15 - data/battle_anims/frame_blocks.asm | 676 +++++------ data/sprites/facings.asm | 8 +- data/tilesets/ledge_tiles.asm | 16 +- engine/battle/animations.asm | 20 +- engine/battle/core.asm | 38 +- engine/battle/ghost_marowak_anim.asm | 2 +- engine/debug/debug_menu.asm | 4 +- engine/events/black_out.asm | 2 +- engine/events/cinnabar_lab.asm | 4 +- .../events/hidden_objects/bills_house_pc.asm | 4 +- .../hidden_objects/school_blackboard.asm | 12 +- engine/events/pewter_guys.asm | 18 +- engine/events/prize_menu.asm | 4 +- engine/events/vending_machine.asm | 4 +- engine/items/item_effects.asm | 8 +- engine/items/town_map.asm | 24 +- engine/joypad.asm | 2 +- engine/link/cable_club.asm | 40 +- engine/link/cable_club_npc.asm | 6 +- engine/menus/draw_start_menu.asm | 2 +- engine/menus/league_pc.asm | 2 +- engine/menus/main_menu.asm | 48 +- engine/menus/pc.asm | 2 +- engine/menus/players_pc.asm | 4 +- engine/menus/pokedex.asm | 22 +- engine/menus/save.asm | 142 +-- engine/menus/start_sub_menus.asm | 8 +- engine/menus/text_box.asm | 12 +- engine/movie/evolution.asm | 2 +- engine/movie/hall_of_fame.asm | 4 +- engine/movie/intro.asm | 18 +- engine/movie/oak_speech/oak_speech.asm | 4 +- engine/movie/oak_speech/oak_speech2.asm | 2 +- engine/movie/splash.asm | 10 +- engine/movie/title.asm | 6 +- engine/movie/trade.asm | 38 +- engine/overworld/auto_movement.asm | 32 +- engine/overworld/cut.asm | 8 +- engine/overworld/healing_machine.asm | 14 +- engine/overworld/ledges.asm | 10 +- engine/overworld/movement.asm | 4 +- engine/overworld/pathfinding.asm | 8 +- engine/overworld/player_animations.asm | 2 +- engine/overworld/push_boulder.asm | 10 +- engine/overworld/update_map.asm | 4 +- engine/pokemon/bills_pc.asm | 10 +- engine/pokemon/learn_move.asm | 4 +- engine/pokemon/status_screen.asm | 4 +- engine/slots/slot_machine.asm | 6 +- home/audio.asm | 4 +- home/bankswitch.asm | 8 +- home/copy.asm | 4 +- home/copy2.asm | 20 +- home/fade_audio.asm | 6 +- home/hidden_objects.asm | 8 +- home/init.asm | 12 +- home/item.asm | 4 +- home/item_price.asm | 6 +- home/joypad2.asm | 4 +- home/lcd.asm | 8 +- home/list_menu.asm | 18 +- home/load_font.asm | 6 +- home/names.asm | 4 +- home/names2.asm | 4 +- home/npc_movement.asm | 8 +- home/overworld.asm | 50 +- home/pics.asm | 4 +- home/pokemon.asm | 16 +- home/predef.asm | 6 +- home/print_text.asm | 4 +- home/reload_tiles.asm | 4 +- home/serial.asm | 24 +- home/start.asm | 2 +- home/start_menu.asm | 10 +- home/text.asm | 8 +- home/text_script.asm | 6 +- home/trainers.asm | 6 +- home/uncompress.asm | 10 +- home/vblank.asm | 6 +- home/vcopy.asm | 12 +- home/window.asm | 6 +- includes.asm | 3 +- macros/coords.asm | 6 +- macros/farcall.asm | 8 +- macros/gfx.asm | 10 +- ram/vram.asm | 4 +- ram/wram.asm | 6 +- scripts/AgathasRoom.asm | 4 +- scripts/BikeShop.asm | 4 +- scripts/BillsHouse.asm | 2 +- scripts/BrunosRoom.asm | 4 +- scripts/CeladonGym.asm | 2 +- scripts/CeladonMartRoof.asm | 4 +- scripts/CeruleanCity.asm | 6 +- scripts/CeruleanGym.asm | 2 +- scripts/ChampionsRoom.asm | 20 +- scripts/CinnabarGym.asm | 2 +- scripts/CinnabarIsland.asm | 2 +- scripts/FightingDojo.asm | 2 +- scripts/FuchsiaGym.asm | 2 +- scripts/GameCorner.asm | 2 +- scripts/HallOfFame.asm | 6 +- scripts/LancesRoom.asm | 10 +- scripts/LoreleisRoom.asm | 4 +- scripts/MtMoonB2F.asm | 2 +- scripts/Museum1F.asm | 2 +- scripts/OaksLab.asm | 14 +- scripts/PalletTown.asm | 10 +- scripts/PewterCity.asm | 2 +- scripts/PewterGym.asm | 2 +- scripts/PokemonTower2F.asm | 2 +- scripts/PokemonTower5F.asm | 2 +- scripts/PokemonTower6F.asm | 6 +- scripts/PokemonTower7F.asm | 4 +- scripts/RocketHideoutB2F.asm | 134 +-- scripts/RocketHideoutB3F.asm | 46 +- scripts/RocketHideoutB4F.asm | 2 +- scripts/Route16Gate1F.asm | 6 +- scripts/Route18Gate1F.asm | 6 +- scripts/Route22.asm | 6 +- scripts/Route22Gate.asm | 2 +- scripts/Route23.asm | 2 +- scripts/Route24.asm | 4 +- scripts/Route5Gate.asm | 2 +- scripts/Route6Gate.asm | 2 +- scripts/Route7Gate.asm | 2 +- scripts/Route8Gate.asm | 2 +- scripts/SSAnne2F.asm | 4 +- scripts/SafariZoneGate.asm | 20 +- scripts/SaffronGym.asm | 2 +- scripts/SeafoamIslandsB3F.asm | 20 +- scripts/SeafoamIslandsB4F.asm | 14 +- scripts/SilphCo11F.asm | 4 +- scripts/SilphCo7F.asm | 4 +- scripts/VermilionCity.asm | 6 +- scripts/VermilionDock.asm | 2 +- scripts/VermilionGym.asm | 2 +- scripts/ViridianCity.asm | 2 +- scripts/ViridianGym.asm | 28 +- scripts/ViridianMart.asm | 4 +- 152 files changed, 2253 insertions(+), 1360 deletions(-) create mode 100644 constants/hardware.inc delete mode 100644 constants/hardware_constants.asm delete mode 100644 constants/input_constants.asm diff --git a/audio/engine_1.asm b/audio/engine_1.asm index e9642b32..57eb12ed 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -20,10 +20,10 @@ Audio1_UpdateMusic:: set BIT_MUTE_AUDIO, a ld [wMuteAudioAndPauseMusic], a xor a ; disable all channels' output - ldh [rNR51], a - ldh [rNR30], a + ldh [rAUDTERM], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a jr .nextChannel .applyAffects call Audio1_ApplyMusicAffects @@ -183,9 +183,9 @@ Audio1_sound_ret: jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output ld a, $0 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a .skipSfxChannel3 jr nz, .dontDisable ld a, [wDisableChannelOutputWhenSfxEnds] @@ -219,9 +219,9 @@ Audio1_sound_ret: .disableChannelOutput ld hl, Audio1_HWChannelDisableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] and [hl] - ldh [rNR51], a + ldh [rAUDTERM], a .afterDisable ld a, [wChannelSoundIDs + CHAN5] cp CRY_SFX_START @@ -241,7 +241,7 @@ Audio1_sound_ret: ret c .skipRewind ld a, [wSavedVolume] - ldh [rNR50], a + ldh [rAUDVOL], a xor a ld [wSavedVolume], a .skipCry @@ -548,7 +548,7 @@ Audio1_volume: cp volume_cmd jr nz, Audio1_execute_music call Audio1_GetNextMusicByte - ldh [rNR50], a ; store volume + ldh [rAUDVOL], a ; store volume jp Audio1_sound_ret Audio1_execute_music: @@ -638,7 +638,7 @@ Audio1_pitch_sweep: bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio1_note ; no call Audio1_GetNextMusicByte - ldh [rNR10], a + ldh [rAUD1SWEEP], a jp Audio1_sound_ret Audio1_note: @@ -770,9 +770,9 @@ Audio1_note_pitch: ld b, 0 ld hl, Audio1_HWChannelDisableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] and [hl] - ldh [rNR51], a ; disable hardware channel 3's output + ldh [rAUDTERM], a ; disable hardware channel 3's output jr .done .notChannel3 ld b, REG_VOLUME_ENVELOPE @@ -845,7 +845,7 @@ Audio1_EnableChannelOutput: ld b, 0 ld hl, Audio1_HWChannelEnableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] or [hl] ; set this channel's bits ld d, a ld a, c @@ -867,7 +867,7 @@ Audio1_EnableChannelOutput: add hl, bc and [hl] ld d, a - ldh a, [rNR51] + ldh a, [rAUDTERM] ld hl, Audio1_HWChannelDisableMasks add hl, bc and [hl] ; reset this channel's output bits @@ -875,7 +875,7 @@ Audio1_EnableChannelOutput: ld d, a .skip ld a, d - ldh [rNR51], a + ldh [rAUDTERM], a ret Audio1_ApplyDutyCycleAndSoundLength: @@ -926,10 +926,10 @@ Audio1_ApplyWavePatternAndFrequency: ld e, [hl] inc hl ld d, [hl] - ld hl, rWave_0 + ld hl, _AUD3WAVERAM ld b, $f ld a, $0 ; stop hardware channel 3 - ldh [rNR30], a + ldh [rAUD3ENA], a .loop ld a, [de] inc de @@ -939,7 +939,7 @@ Audio1_ApplyWavePatternAndFrequency: and a jr nz, .loop ld a, $80 ; start hardware channel 3 - ldh [rNR30], a + ldh [rAUD3ENA], a pop de .notChannel3 ld a, d @@ -1400,17 +1400,17 @@ Audio1_PlaySound:: ld a, $ff ld [wStereoPanning], a xor a - ldh [rNR50], a + ldh [rAUDVOL], a ld a, $8 - ldh [rNR10], a + ldh [rAUD1SWEEP], a ld a, 0 - ldh [rNR51], a + ldh [rAUDTERM], a xor a - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $77 - ldh [rNR50], a + ldh [rAUDVOL], a jp .playSoundCommon .playSfx @@ -1556,7 +1556,7 @@ Audio1_PlaySound:: cp CHAN5 jr nz, .skipSweepDisable ld a, $8 - ldh [rNR10], a ; sweep off + ldh [rAUD1SWEEP], a ; sweep off .skipSweepDisable ld a, c and a @@ -1566,22 +1566,22 @@ Audio1_PlaySound:: .stopAllAudio ld a, $80 - ldh [rNR52], a ; sound hardware on - ldh [rNR30], a ; wave playback on + ldh [rAUDENA], a ; sound hardware on + ldh [rAUD3ENA], a ; wave playback on xor a - ldh [rNR51], a ; no sound output - ldh [rNR32], a ; mute channel 3 (wave channel) + ldh [rAUDTERM], a ; no sound output + ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel) ld a, $8 - ldh [rNR10], a ; sweep off - ldh [rNR12], a ; mute channel 1 (pulse channel 1) - ldh [rNR22], a ; mute channel 2 (pulse channel 2) - ldh [rNR42], a ; mute channel 4 (noise channel) + ldh [rAUD1SWEEP], a ; sweep off + ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1) + ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2) + ldh [rAUD4ENV], a ; mute channel 4 (noise channel) ld a, $40 - ldh [rNR14], a ; counter mode - ldh [rNR24], a - ldh [rNR44], a + ldh [rAUD1HIGH], a ; counter mode + ldh [rAUD2HIGH], a + ldh [rAUD4GO], a ld a, $77 - ldh [rNR50], a ; full volume + ldh [rAUDVOL], a ; full volume xor a ld [wUnusedMusicByte], a ld [wDisableChannelOutputWhenSfxEnds], a @@ -1700,10 +1700,10 @@ Audio1_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ldh a, [rNR50] + ldh a, [rAUDVOL] ld [wSavedVolume], a ld a, $77 - ldh [rNR50], a ; full volume + ldh [rAUDVOL], a ; full volume .done ret diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 2f11c027..a7c8692a 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -22,10 +22,10 @@ Audio2_UpdateMusic:: set BIT_MUTE_AUDIO, a ld [wMuteAudioAndPauseMusic], a xor a ; disable all channels' output - ldh [rNR51], a - ldh [rNR30], a + ldh [rAUDTERM], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a jr .nextChannel .applyAffects call Audio2_ApplyMusicAffects @@ -194,9 +194,9 @@ Audio2_sound_ret: jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output ld a, $0 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a .skipSfxChannel3 jr nz, .dontDisable ld a, [wDisableChannelOutputWhenSfxEnds] @@ -230,9 +230,9 @@ Audio2_sound_ret: .disableChannelOutput ld hl, Audio2_HWChannelDisableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] and [hl] - ldh [rNR51], a + ldh [rAUDTERM], a .afterDisable ld a, [wChannelSoundIDs + CHAN5] cp CRY_SFX_START @@ -252,7 +252,7 @@ Audio2_sound_ret: ret c .skipRewind ld a, [wSavedVolume] - ldh [rNR50], a + ldh [rAUDVOL], a xor a ld [wSavedVolume], a .skipCry @@ -559,7 +559,7 @@ Audio2_volume: cp volume_cmd jr nz, Audio2_execute_music call Audio2_GetNextMusicByte - ldh [rNR50], a ; store volume + ldh [rAUDVOL], a ; store volume jp Audio2_sound_ret Audio2_execute_music: @@ -649,7 +649,7 @@ Audio2_pitch_sweep: bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio2_note ; no call Audio2_GetNextMusicByte - ldh [rNR10], a + ldh [rAUD1SWEEP], a jp Audio2_sound_ret Audio2_note: @@ -781,9 +781,9 @@ Audio2_note_pitch: ld b, 0 ld hl, Audio2_HWChannelDisableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] and [hl] - ldh [rNR51], a ; disable hardware channel 3's output + ldh [rAUDTERM], a ; disable hardware channel 3's output jr .done .notChannel3 ld b, REG_VOLUME_ENVELOPE @@ -856,7 +856,7 @@ Audio2_EnableChannelOutput: ld b, 0 ld hl, Audio2_HWChannelEnableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] or [hl] ; set this channel's bits ld d, a ld a, c @@ -878,7 +878,7 @@ Audio2_EnableChannelOutput: add hl, bc and [hl] ld d, a - ldh a, [rNR51] + ldh a, [rAUDTERM] ld hl, Audio2_HWChannelDisableMasks add hl, bc and [hl] ; reset this channel's output bits @@ -886,7 +886,7 @@ Audio2_EnableChannelOutput: ld d, a .skip ld a, d - ldh [rNR51], a + ldh [rAUDTERM], a ret Audio2_ApplyDutyCycleAndSoundLength: @@ -937,10 +937,10 @@ Audio2_ApplyWavePatternAndFrequency: ld e, [hl] inc hl ld d, [hl] - ld hl, rWave_0 + ld hl, _AUD3WAVERAM ld b, $f ld a, $0 ; stop hardware channel 3 - ldh [rNR30], a + ldh [rAUD3ENA], a .loop ld a, [de] inc de @@ -950,7 +950,7 @@ Audio2_ApplyWavePatternAndFrequency: and a jr nz, .loop ld a, $80 ; start hardware channel 3 - ldh [rNR30], a + ldh [rAUD3ENA], a pop de .notChannel3 ld a, d @@ -1463,17 +1463,17 @@ Audio2_PlaySound:: ld a, $ff ld [wStereoPanning], a xor a - ldh [rNR50], a + ldh [rAUDVOL], a ld a, $8 - ldh [rNR10], a + ldh [rAUD1SWEEP], a ld a, 0 - ldh [rNR51], a + ldh [rAUDTERM], a xor a - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $77 - ldh [rNR50], a + ldh [rAUDVOL], a jp .playSoundCommon .playSfx @@ -1619,7 +1619,7 @@ Audio2_PlaySound:: cp CHAN5 jr nz, .skipSweepDisable ld a, $8 - ldh [rNR10], a ; sweep off + ldh [rAUD1SWEEP], a ; sweep off .skipSweepDisable ld a, c and a @@ -1629,22 +1629,22 @@ Audio2_PlaySound:: .stopAllAudio ld a, $80 - ldh [rNR52], a ; sound hardware on - ldh [rNR30], a ; wave playback on + ldh [rAUDENA], a ; sound hardware on + ldh [rAUD3ENA], a ; wave playback on xor a - ldh [rNR51], a ; no sound output - ldh [rNR32], a ; mute channel 3 (wave channel) + ldh [rAUDTERM], a ; no sound output + ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel) ld a, $8 - ldh [rNR10], a ; sweep off - ldh [rNR12], a ; mute channel 1 (pulse channel 1) - ldh [rNR22], a ; mute channel 2 (pulse channel 2) - ldh [rNR42], a ; mute channel 4 (noise channel) + ldh [rAUD1SWEEP], a ; sweep off + ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1) + ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2) + ldh [rAUD4ENV], a ; mute channel 4 (noise channel) ld a, $40 - ldh [rNR14], a ; counter mode - ldh [rNR24], a - ldh [rNR44], a + ldh [rAUD1HIGH], a ; counter mode + ldh [rAUD2HIGH], a + ldh [rAUD4GO], a ld a, $77 - ldh [rNR50], a ; full volume + ldh [rAUDVOL], a ; full volume xor a ld [wUnusedMusicByte], a ld [wDisableChannelOutputWhenSfxEnds], a @@ -1763,10 +1763,10 @@ Audio2_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ldh a, [rNR50] + ldh a, [rAUDVOL] ld [wSavedVolume], a ld a, $77 - ldh [rNR50], a ; full volume + ldh [rAUDVOL], a ; full volume .done ret diff --git a/audio/engine_3.asm b/audio/engine_3.asm index f524875f..76115420 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -20,10 +20,10 @@ Audio3_UpdateMusic:: set BIT_MUTE_AUDIO, a ld [wMuteAudioAndPauseMusic], a xor a ; disable all channels' output - ldh [rNR51], a - ldh [rNR30], a + ldh [rAUDTERM], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a jr .nextChannel .applyAffects call Audio3_ApplyMusicAffects @@ -183,9 +183,9 @@ Audio3_sound_ret: jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output ld a, $0 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a .skipSfxChannel3 jr nz, .dontDisable ld a, [wDisableChannelOutputWhenSfxEnds] @@ -219,9 +219,9 @@ Audio3_sound_ret: .disableChannelOutput ld hl, Audio3_HWChannelDisableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] and [hl] - ldh [rNR51], a + ldh [rAUDTERM], a .afterDisable ld a, [wChannelSoundIDs + CHAN5] cp CRY_SFX_START @@ -241,7 +241,7 @@ Audio3_sound_ret: ret c .skipRewind ld a, [wSavedVolume] - ldh [rNR50], a + ldh [rAUDVOL], a xor a ld [wSavedVolume], a .skipCry @@ -548,7 +548,7 @@ Audio3_volume: cp volume_cmd jr nz, Audio3_execute_music call Audio3_GetNextMusicByte - ldh [rNR50], a ; store volume + ldh [rAUDVOL], a ; store volume jp Audio3_sound_ret Audio3_execute_music: @@ -638,7 +638,7 @@ Audio3_pitch_sweep: bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio3_note ; no call Audio3_GetNextMusicByte - ldh [rNR10], a + ldh [rAUD1SWEEP], a jp Audio3_sound_ret Audio3_note: @@ -770,9 +770,9 @@ Audio3_note_pitch: ld b, 0 ld hl, Audio3_HWChannelDisableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] and [hl] - ldh [rNR51], a ; disable hardware channel 3's output + ldh [rAUDTERM], a ; disable hardware channel 3's output jr .done .notChannel3 ld b, REG_VOLUME_ENVELOPE @@ -845,7 +845,7 @@ Audio3_EnableChannelOutput: ld b, 0 ld hl, Audio3_HWChannelEnableMasks add hl, bc - ldh a, [rNR51] + ldh a, [rAUDTERM] or [hl] ; set this channel's bits ld d, a ld a, c @@ -867,7 +867,7 @@ Audio3_EnableChannelOutput: add hl, bc and [hl] ld d, a - ldh a, [rNR51] + ldh a, [rAUDTERM] ld hl, Audio3_HWChannelDisableMasks add hl, bc and [hl] ; reset this channel's output bits @@ -875,7 +875,7 @@ Audio3_EnableChannelOutput: ld d, a .skip ld a, d - ldh [rNR51], a + ldh [rAUDTERM], a ret Audio3_ApplyDutyCycleAndSoundLength: @@ -926,10 +926,10 @@ Audio3_ApplyWavePatternAndFrequency: ld e, [hl] inc hl ld d, [hl] - ld hl, rWave_0 + ld hl, _AUD3WAVERAM ld b, $f ld a, $0 ; stop hardware channel 3 - ldh [rNR30], a + ldh [rAUD3ENA], a .loop ld a, [de] inc de @@ -939,7 +939,7 @@ Audio3_ApplyWavePatternAndFrequency: and a jr nz, .loop ld a, $80 ; start hardware channel 3 - ldh [rNR30], a + ldh [rAUD3ENA], a pop de .notChannel3 ld a, d @@ -1400,17 +1400,17 @@ Audio3_PlaySound:: ld a, $ff ld [wStereoPanning], a xor a - ldh [rNR50], a + ldh [rAUDVOL], a ld a, $8 - ldh [rNR10], a + ldh [rAUD1SWEEP], a ld a, 0 - ldh [rNR51], a + ldh [rAUDTERM], a xor a - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $80 - ldh [rNR30], a + ldh [rAUD3ENA], a ld a, $77 - ldh [rNR50], a + ldh [rAUDVOL], a jp .playSoundCommon .playSfx @@ -1556,7 +1556,7 @@ Audio3_PlaySound:: cp CHAN5 jr nz, .skipSweepDisable ld a, $8 - ldh [rNR10], a ; sweep off + ldh [rAUD1SWEEP], a ; sweep off .skipSweepDisable ld a, c and a @@ -1566,22 +1566,22 @@ Audio3_PlaySound:: .stopAllAudio ld a, $80 - ldh [rNR52], a ; sound hardware on - ldh [rNR30], a ; wave playback on + ldh [rAUDENA], a ; sound hardware on + ldh [rAUD3ENA], a ; wave playback on xor a - ldh [rNR51], a ; no sound output - ldh [rNR32], a ; mute channel 3 (wave channel) + ldh [rAUDTERM], a ; no sound output + ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel) ld a, $8 - ldh [rNR10], a ; sweep off - ldh [rNR12], a ; mute channel 1 (pulse channel 1) - ldh [rNR22], a ; mute channel 2 (pulse channel 2) - ldh [rNR42], a ; mute channel 4 (noise channel) + ldh [rAUD1SWEEP], a ; sweep off + ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1) + ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2) + ldh [rAUD4ENV], a ; mute channel 4 (noise channel) ld a, $40 - ldh [rNR14], a ; counter mode - ldh [rNR24], a - ldh [rNR44], a + ldh [rAUD1HIGH], a ; counter mode + ldh [rAUD2HIGH], a + ldh [rAUD4GO], a ld a, $77 - ldh [rNR50], a ; full volume + ldh [rAUDVOL], a ; full volume xor a ld [wUnusedMusicByte], a ld [wDisableChannelOutputWhenSfxEnds], a @@ -1700,10 +1700,10 @@ Audio3_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ldh a, [rNR50] + ldh a, [rAUDVOL] ld [wSavedVolume], a ld a, $77 - ldh [rNR50], a ; full volume + ldh [rAUDVOL], a ; full volume .done ret diff --git a/audio/low_health_alarm.asm b/audio/low_health_alarm.asm index 728f5f65..e14e21cb 100644 --- a/audio/low_health_alarm.asm +++ b/audio/low_health_alarm.asm @@ -49,7 +49,7 @@ Music_DoLowHealthAlarm:: ;update sound channel 1 to play the alarm, overriding all other sounds. .playTone - ld hl, rNR10 ;channel 1 sound register + ld hl, rAUD1SWEEP ;channel 1 sound register ld c, $5 xor a diff --git a/audio/wave_samples.asm b/audio/wave_samples.asm index 941ced53..166f79e5 100644 --- a/audio/wave_samples.asm +++ b/audio/wave_samples.asm @@ -13,7 +13,7 @@ ; these are the definitions for the channel 3 instruments ; each instrument definition is made up of 32 points (nibbles) that form ; the graph of the wave -; the current instrument is copied to rWave_0--rWave_f +; the current instrument is copied to _AUD3WAVERAM .wave0 dn 0, 2, 4, 6, 8, 10, 12, 14, 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1 diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm index 99b899d1..36c35006 100644 --- a/constants/audio_constants.asm +++ b/constants/audio_constants.asm @@ -32,10 +32,10 @@ DEF NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS DEF NUM_CHANNELS EQU const_value ; HW sound channel register base addresses -DEF HW_CH1_BASE EQU LOW(rNR10) -DEF HW_CH2_BASE EQU LOW(rNR21) - 1 -DEF HW_CH3_BASE EQU LOW(rNR30) -DEF HW_CH4_BASE EQU LOW(rNR41) - 1 +DEF HW_CH1_BASE EQU LOW(rAUD1SWEEP) +DEF HW_CH2_BASE EQU LOW(rAUD2LEN) - 1 +DEF HW_CH3_BASE EQU LOW(rAUD3ENA) +DEF HW_CH4_BASE EQU LOW(rAUD4LEN) - 1 ; HW sound channel enable bit masks DEF HW_CH1_ENABLE_MASK EQU %00010001 diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm index 08cf8dc7..1a06238c 100644 --- a/constants/gfx_constants.asm +++ b/constants/gfx_constants.asm @@ -1,14 +1,4 @@ -DEF TILE_WIDTH EQU 8 ; pixels -DEF LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes -DEF LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes - -DEF SCREEN_WIDTH EQU 20 -DEF SCREEN_HEIGHT EQU 18 -DEF SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels -DEF SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels - -DEF BG_MAP_WIDTH EQU 32 ; tiles -DEF BG_MAP_HEIGHT EQU 32 ; tiles +DEF TILE_1BPP_SIZE EQU TILE_SIZE / 2 ; bytes DEF BLOCK_WIDTH EQU 4 ; tiles DEF BLOCK_HEIGHT EQU BLOCK_WIDTH ; tiles @@ -17,16 +7,13 @@ DEF SCREEN_BLOCK_HEIGHT EQU 5 ; blocks DEF SURROUNDING_WIDTH EQU SCREEN_BLOCK_WIDTH * BLOCK_WIDTH ; tiles DEF SURROUNDING_HEIGHT EQU SCREEN_BLOCK_HEIGHT * BLOCK_HEIGHT ; tiles -DEF SPRITEBUFFERSIZE EQU 7 * 7 * LEN_1BPP_TILE +DEF SPRITEBUFFERSIZE EQU 7 * 7 * TILE_1BPP_SIZE ; HP bar DEF HP_BAR_GREEN EQU 0 DEF HP_BAR_YELLOW EQU 1 DEF HP_BAR_RED EQU 2 -; wShadowOAM -DEF NUM_SPRITE_OAM_STRUCTS EQU 40 - ; hAutoBGTransferEnabled DEF TRANSFERTOP EQU 0 DEF TRANSFERMIDDLE EQU 1 diff --git a/constants/hardware.inc b/constants/hardware.inc new file mode 100644 index 00000000..628b6820 --- /dev/null +++ b/constants/hardware.inc @@ -0,0 +1,1065 @@ +;****************************************************************************** +; Game Boy hardware constant definitions +; https://github.com/gbdev/hardware.inc +;****************************************************************************** + +; To the extent possible under law, the authors of this work have +; waived all copyright and related or neighboring rights to the work. +; See https://creativecommons.org/publicdomain/zero/1.0/ for details. +; SPDX-License-Identifier: CC0-1.0 + +; If this file was already included, don't do it again +if !def(HARDWARE_INC) + +; Check for the minimum supported RGBDS version +if !def(__RGBDS_MAJOR__) || !def(__RGBDS_MINOR__) || !def(__RGBDS_PATCH__) + fail "This version of 'hardware.inc' requires RGBDS version 0.5.0 or later" +endc +if __RGBDS_MAJOR__ == 0 && __RGBDS_MINOR__ < 5 + fail "This version of 'hardware.inc' requires RGBDS version 0.5.0 or later." +endc + +; Define the include guard and the current hardware.inc version +; (do this after the RGBDS version check since the `def` syntax depends on it) +def HARDWARE_INC equ 1 +def HARDWARE_INC_VERSION equs "5.1.0" + +; Usage: rev_Check_hardware_inc +; Examples: +; rev_Check_hardware_inc 1.2.3 +; rev_Check_hardware_inc 1.2 (equivalent to 1.2.0) +; rev_Check_hardware_inc 1 (equivalent to 1.0.0) +MACRO rev_Check_hardware_inc + if _NARG == 1 ; Actual invocation by the user + def hw_inc_cur_ver\@ equs strrpl("{HARDWARE_INC_VERSION}", ".", ",") + def hw_inc_min_ver\@ equs strrpl("\1", ".", ",") + rev_Check_hardware_inc {hw_inc_cur_ver\@}, {hw_inc_min_ver\@}, 0, 0 + purge hw_inc_cur_ver\@, hw_inc_min_ver\@ + else ; Recursive invocation + if \1 != \4 || (\2 < \5 || (\2 == \5 && \3 < \6)) + fail "Version \1.\2.\3 of 'hardware.inc' is incompatible with requested version \4.\5.\6" + endc + endc +ENDM + + +;****************************************************************************** +; Memory-mapped registers ($FFxx range) +;****************************************************************************** + +; -- JOYP / P1 ($FF00) -------------------------------------------------------- +; Joypad face buttons +def rJOYP equ $FF00 + +def B_JOYP_GET_BUTTONS equ 5 ; 0 = reading buttons [r/w] +def B_JOYP_GET_CTRL_PAD equ 4 ; 0 = reading Control Pad [r/w] + def JOYP_GET equ %00_11_0000 ; select which inputs to read from the lower nybble + def JOYP_GET_BUTTONS equ %00_01_0000 ; reading A/B/Select/Start buttons + def JOYP_GET_CTRL_PAD equ %00_10_0000 ; reading Control Pad directions + def JOYP_GET_NONE equ %00_11_0000 ; reading nothing + +def B_JOYP_START equ 3 ; 0 = Start is pressed (if reading buttons) [ro] +def B_JOYP_SELECT equ 2 ; 0 = Select is pressed (if reading buttons) [ro] +def B_JOYP_B equ 1 ; 0 = B is pressed (if reading buttons) [ro] +def B_JOYP_A equ 0 ; 0 = A is pressed (if reading buttons) [ro] +def B_JOYP_DOWN equ 3 ; 0 = Down is pressed (if reading Control Pad) [ro] +def B_JOYP_UP equ 2 ; 0 = Up is pressed (if reading Control Pad) [ro] +def B_JOYP_LEFT equ 1 ; 0 = Left is pressed (if reading Control Pad) [ro] +def B_JOYP_RIGHT equ 0 ; 0 = Right is pressed (if reading Control Pad) [ro] + def JOYP_INPUTS equ %0000_1111 + def JOYP_START equ 1 << B_JOYP_START + def JOYP_SELECT equ 1 << B_JOYP_SELECT + def JOYP_B equ 1 << B_JOYP_B + def JOYP_A equ 1 << B_JOYP_A + def JOYP_DOWN equ 1 << B_JOYP_DOWN + def JOYP_UP equ 1 << B_JOYP_UP + def JOYP_LEFT equ 1 << B_JOYP_LEFT + def JOYP_RIGHT equ 1 << B_JOYP_RIGHT + +; Combined input byte, with Control Pad in high nybble (conventional order) +def B_PAD_DOWN equ 7 +def B_PAD_UP equ 6 +def B_PAD_LEFT equ 5 +def B_PAD_RIGHT equ 4 +def B_PAD_START equ 3 +def B_PAD_SELECT equ 2 +def B_PAD_B equ 1 +def B_PAD_A equ 0 + def PAD_CTRL_PAD equ %1111_0000 + def PAD_BUTTONS equ %0000_1111 + def PAD_DOWN equ 1 << B_PAD_DOWN + def PAD_UP equ 1 << B_PAD_UP + def PAD_LEFT equ 1 << B_PAD_LEFT + def PAD_RIGHT equ 1 << B_PAD_RIGHT + def PAD_START equ 1 << B_PAD_START + def PAD_SELECT equ 1 << B_PAD_SELECT + def PAD_B equ 1 << B_PAD_B + def PAD_A equ 1 << B_PAD_A + + +; Combined input byte, with Control Pad in low nybble (swapped order) +def B_PAD_SWAP_START equ 7 +def B_PAD_SWAP_SELECT equ 6 +def B_PAD_SWAP_B equ 5 +def B_PAD_SWAP_A equ 4 +def B_PAD_SWAP_DOWN equ 3 +def B_PAD_SWAP_UP equ 2 +def B_PAD_SWAP_LEFT equ 1 +def B_PAD_SWAP_RIGHT equ 0 + def PAD_SWAP_CTRL_PAD equ %0000_1111 + def PAD_SWAP_BUTTONS equ %1111_0000 + def PAD_SWAP_START equ 1 << B_PAD_SWAP_START + def PAD_SWAP_SELECT equ 1 << B_PAD_SWAP_SELECT + def PAD_SWAP_B equ 1 << B_PAD_SWAP_B + def PAD_SWAP_A equ 1 << B_PAD_SWAP_A + def PAD_SWAP_DOWN equ 1 << B_PAD_SWAP_DOWN + def PAD_SWAP_UP equ 1 << B_PAD_SWAP_UP + def PAD_SWAP_LEFT equ 1 << B_PAD_SWAP_LEFT + def PAD_SWAP_RIGHT equ 1 << B_PAD_SWAP_RIGHT + +; -- SB ($FF01) --------------------------------------------------------------- +; Serial transfer data [r/w] +def rSB equ $FF01 + +; -- SC ($FF02) --------------------------------------------------------------- +; Serial transfer control +def rSC equ $FF02 + +def B_SC_START equ 7 ; reading 1 = transfer in progress, writing 1 = start transfer [r/w] +def B_SC_SPEED equ 1 ; (CGB only) 1 = use faster internal clock [r/w] +def B_SC_SOURCE equ 0 ; 0 = use external clock ("slave"), 1 = use internal clock ("master") [r/w] + def SC_START equ 1 << B_SC_START + def SC_SPEED equ 1 << B_SC_SPEED + def SC_SLOW equ 0 << B_SC_SPEED + def SC_FAST equ 1 << B_SC_SPEED + def SC_SOURCE equ 1 << B_SC_SOURCE + def SC_EXTERNAL equ 0 << B_SC_SOURCE + def SC_INTERNAL equ 1 << B_SC_SOURCE + +; -- $FF03 is unused ---------------------------------------------------------- + +; -- DIV ($FF04) -------------------------------------------------------------- +; Divider register [r/w] +def rDIV equ $FF04 + +; -- TIMA ($FF05) ------------------------------------------------------------- +; Timer counter [r/w] +def rTIMA equ $FF05 + +; -- TMA ($FF06) -------------------------------------------------------------- +; Timer modulo [r/w] +def rTMA equ $FF06 + +; -- TAC ($FF07) -------------------------------------------------------------- +; Timer control +def rTAC equ $FF07 + +def B_TAC_START equ 2 ; enable incrementing TIMA [r/w] + def TAC_STOP equ 0 << B_TAC_START + def TAC_START equ 1 << B_TAC_START + +def TAC_CLOCK equ %000000_11 ; the frequency at which TIMA increments [r/w] + def TAC_4KHZ equ %000000_00 ; every 256 M-cycles = ~4 KHz on DMG + def TAC_262KHZ equ %000000_01 ; every 4 M-cycles = ~262 KHz on DMG + def TAC_65KHZ equ %000000_10 ; every 16 M-cycles = ~65 KHz on DMG + def TAC_16KHZ equ %000000_11 ; every 64 M-cycles = ~16 KHz on DMG + +; -- $FF08-$FF0E are unused --------------------------------------------------- + +; -- IF ($FF0F) --------------------------------------------------------------- +; Pending interrupts +def rIF equ $FF0F + +def B_IF_JOYPAD equ 4 ; 1 = joypad interrupt is pending [r/w] +def B_IF_SERIAL equ 3 ; 1 = serial interrupt is pending [r/w] +def B_IF_TIMER equ 2 ; 1 = timer interrupt is pending [r/w] +def B_IF_STAT equ 1 ; 1 = STAT interrupt is pending [r/w] +def B_IF_VBLANK equ 0 ; 1 = VBlank interrupt is pending [r/w] + def IF_JOYPAD equ 1 << B_IF_JOYPAD + def IF_SERIAL equ 1 << B_IF_SERIAL + def IF_TIMER equ 1 << B_IF_TIMER + def IF_STAT equ 1 << B_IF_STAT + def IF_VBLANK equ 1 << B_IF_VBLANK + +; -- AUD1SWEEP / NR10 ($FF10) ------------------------------------------------- +; Audio channel 1 sweep +def rAUD1SWEEP equ $FF10 + +def AUD1SWEEP_TIME equ %0_111_0000 ; how long between sweep iterations + ; (in 128 Hz ticks, ~7.8 ms apart) [r/w] + +def B_AUD1SWEEP_DIR equ 3 ; sweep direction [r/w] + def AUD1SWEEP_DIR equ 1 << B_AUD1SWEEP_DIR + def AUD1SWEEP_UP equ 0 << B_AUD1SWEEP_DIR + def AUD1SWEEP_DOWN equ 1 << B_AUD1SWEEP_DIR + +def AUD1SWEEP_SHIFT equ %00000_111 ; how much the period increases/decreases per iteration [r/w] + +; -- AUD1LEN / NR11 ($FF11) --------------------------------------------------- +; Audio channel 1 length timer and duty cycle +def rAUD1LEN equ $FF11 + +def AUD1LEN_DUTY equ %11_000000 ; ratio of time spent high vs. time spent low [r/w] + def AUD1LEN_DUTY_12_5 equ %00_000000 ; 12.5% + def AUD1LEN_DUTY_25 equ %01_000000 ; 25% + def AUD1LEN_DUTY_50 equ %10_000000 ; 50% + def AUD1LEN_DUTY_75 equ %11_000000 ; 75% + +def AUD1LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo] + +; -- AUD1ENV / NR12 ($FF12) --------------------------------------------------- +; Audio channel 1 volume and envelope +def rAUD1ENV equ $FF12 + +def AUD1ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w] + +def B_AUD1ENV_DIR equ 3 ; direction of volume envelope [r/w] + def AUD1ENV_DIR equ 1 << B_AUD1ENV_DIR + def AUD1ENV_DOWN equ 0 << B_AUD1ENV_DIR + def AUD1ENV_UP equ 1 << B_AUD1ENV_DIR + +def AUD1ENV_PACE equ %00000_111 ; how long between envelope iterations + ; (in 64 Hz ticks, ~15.6 ms apart) [r/w] + +; -- AUD1LOW / NR13 ($FF13) --------------------------------------------------- +; Audio channel 1 period (low 8 bits) [r/w] +def rAUD1LOW equ $FF13 + +; -- AUD1HIGH / NR14 ($FF14) -------------------------------------------------- +; Audio channel 1 period (high 3 bits) and control +def rAUD1HIGH equ $FF14 + +def B_AUD1HIGH_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD1HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD1HIGH_RESTART equ 1 << B_AUD1HIGH_RESTART + def AUD1HIGH_LENGTH_OFF equ 0 << B_AUD1HIGH_LEN_ENABLE + def AUD1HIGH_LENGTH_ON equ 1 << B_AUD1HIGH_LEN_ENABLE + +def AUD1HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w] + +; -- $FF15 is unused ---------------------------------------------------------- + +; -- AUD2LEN / NR21 ($FF16) --------------------------------------------------- +; Audio channel 2 length timer and duty cycle +def rAUD2LEN equ $FF16 + +def AUD2LEN_DUTY equ %11_000000 ; ratio of time spent high vs. time spent low [r/w] + def AUD2LEN_DUTY_12_5 equ %00_000000 ; 12.5% + def AUD2LEN_DUTY_25 equ %01_000000 ; 25% + def AUD2LEN_DUTY_50 equ %10_000000 ; 50% + def AUD2LEN_DUTY_75 equ %11_000000 ; 75% + +def AUD2LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo] + +; -- AUD2ENV / NR22 ($FF17) --------------------------------------------------- +; Audio channel 2 volume and envelope +def rAUD2ENV equ $FF17 + +def AUD2ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w] + +def B_AUD2ENV_DIR equ 3 ; direction of volume envelope [r/w] + def AUD2ENV_DIR equ 1 << B_AUD2ENV_DIR + def AUD2ENV_DOWN equ 0 << B_AUD2ENV_DIR + def AUD2ENV_UP equ 1 << B_AUD2ENV_DIR + +def AUD2ENV_PACE equ %00000_111 ; how long between envelope iterations + ; (in 64 Hz ticks, ~15.6 ms apart) [r/w] + +; -- AUD2LOW / NR23 ($FF18) --------------------------------------------------- +; Audio channel 2 period (low 8 bits) [r/w] +def rAUD2LOW equ $FF18 + +; -- AUD2HIGH / NR24 ($FF19) -------------------------------------------------- +; Audio channel 2 period (high 3 bits) and control +def rAUD2HIGH equ $FF19 + +def B_AUD2HIGH_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD2HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD2HIGH_RESTART equ 1 << B_AUD2HIGH_RESTART + def AUD2HIGH_LENGTH_OFF equ 0 << B_AUD2HIGH_LEN_ENABLE + def AUD2HIGH_LENGTH_ON equ 1 << B_AUD2HIGH_LEN_ENABLE + +def AUD2HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w] + +; -- AUD3ENA / NR30 ($FF1A) --------------------------------------------------- +; Audio channel 3 enable +def rAUD3ENA equ $FF1A + +def B_AUD3ENA_ENABLE equ 7 ; 1 = channel is active [r/w] + def AUD3ENA_OFF equ 0 << B_AUD3ENA_ENABLE + def AUD3ENA_ON equ 1 << B_AUD3ENA_ENABLE + +; -- AUD3LEN / NR31 ($FF1B) --------------------------------------------------- +; Audio channel 3 length timer [wo] +def rAUD3LEN equ $FF1B + +; -- AUD3LEVEL / NR32 ($FF1C) ------------------------------------------------- +; Audio channel 3 volume +def rAUD3LEVEL equ $FF1C + +def AUD3LEVEL_VOLUME equ %0_11_00000 ; volume level [r/w] + def AUD3LEVEL_MUTE equ %0_00_00000 ; 0% (muted) + def AUD3LEVEL_100 equ %0_01_00000 ; 100% + def AUD3LEVEL_50 equ %0_10_00000 ; 50% + def AUD3LEVEL_25 equ %0_11_00000 ; 25% + +; -- AUD3LOW / NR33 ($FF1D) --------------------------------------------------- +; Audio channel 3 period (low 8 bits) [r/w] +def rAUD3LOW equ $FF1D + +; -- AUD3HIGH / NR34 ($FF1E) -------------------------------------------------- +; Audio channel 3 period (high 3 bits) and control +def rAUD3HIGH equ $FF1E + +def B_AUD3HIGH_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD3HIGH_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD3HIGH_RESTART equ 1 << B_AUD3HIGH_RESTART + def AUD3HIGH_LENGTH_OFF equ 0 << B_AUD3HIGH_LEN_ENABLE + def AUD3HIGH_LENGTH_ON equ 1 << B_AUD3HIGH_LEN_ENABLE + +def AUD3HIGH_PERIOD_HIGH equ %00000_111 ; upper 3 bits of the channel's period [r/w] + +; -- $FF1F is unused ---------------------------------------------------------- + +; -- AUD4LEN / NR41 ($FF20) --------------------------------------------------- +; Audio channel 4 length timer +def rAUD4LEN equ $FF20 + +def AUD4LEN_TIMER equ %00_111111 ; initial length timer (0-63) [wo] + +; -- AUD4ENV / NR42 ($FF21) --------------------------------------------------- +; Audio channel 4 volume and envelope +def rAUD4ENV equ $FF21 + +def AUD4ENV_INIT_VOLUME equ %1111_0000 ; initial volume [r/w] + +def B_AUD4ENV_DIR equ 3 ; direction of volume envelope [r/w] + def AUD4ENV_DIR equ 1 << B_AUD4ENV_DIR + def AUD4ENV_DOWN equ 0 << B_AUD4ENV_DIR + def AUD4ENV_UP equ 1 << B_AUD4ENV_DIR + +def AUD4ENV_PACE equ %00000_111 ; how long between envelope iterations + ; (in 64 Hz ticks, ~15.6 ms apart) [r/w] + +; -- AUD4POLY / NR43 ($FF22) -------------------------------------------------- +; Audio channel 4 period and randomness +def rAUD4POLY equ $FF22 + +def AUD4POLY_SHIFT equ %1111_0000 ; coarse control of the channel's period [r/w] + +def B_AUD4POLY_WIDTH equ 3 ; controls the noise generator (LFSR)'s step width [r/w] + def AUD4POLY_15STEP equ 0 << B_AUD4POLY_WIDTH + def AUD4POLY_7STEP equ 1 << B_AUD4POLY_WIDTH + +def AUD4POLY_DIV equ %00000_111 ; fine control of the channel's period [r/w] + +; -- AUD4GO / NR44 ($FF23) ---------------------------------------------------- +; Audio channel 4 control +def rAUD4GO equ $FF23 + +def B_AUD4GO_RESTART equ 7 ; 1 = restart the channel [wo] +def B_AUD4GO_LEN_ENABLE equ 6 ; 1 = reset the channel after the length timer expires [r/w] + def AUD4GO_RESTART equ 1 << B_AUD4GO_RESTART + def AUD4GO_LENGTH_OFF equ 0 << B_AUD4GO_LEN_ENABLE + def AUD4GO_LENGTH_ON equ 1 << B_AUD4GO_LEN_ENABLE + +; -- AUDVOL / NR50 ($FF24) ---------------------------------------------------- +; Audio master volume and VIN mixer +def rAUDVOL equ $FF24 + +def B_AUDVOL_VIN_LEFT equ 7 ; 1 = output VIN to left ear (SO2, speaker 2) [r/w] + def AUDVOL_VIN_LEFT equ 1 << B_AUDVOL_VIN_LEFT + +def AUDVOL_LEFT equ %0_111_0000 ; 0 = barely audible, 7 = full volume [r/w] + +def B_AUDVOL_VIN_RIGHT equ 3 ; 1 = output VIN to right ear (SO1, speaker 1) [r/w] + def AUDVOL_VIN_RIGHT equ 1 << B_AUDVOL_VIN_RIGHT + +def AUDVOL_RIGHT equ %00000_111 ; 0 = barely audible, 7 = full volume [r/w] + +; -- AUDTERM / NR51 ($FF25) --------------------------------------------------- +; Audio channel mixer +def rAUDTERM equ $FF25 + +def B_AUDTERM_4_LEFT equ 7 ; 1 = output channel 4 to left ear [r/w] +def B_AUDTERM_3_LEFT equ 6 ; 1 = output channel 3 to left ear [r/w] +def B_AUDTERM_2_LEFT equ 5 ; 1 = output channel 2 to left ear [r/w] +def B_AUDTERM_1_LEFT equ 4 ; 1 = output channel 1 to left ear [r/w] +def B_AUDTERM_4_RIGHT equ 3 ; 1 = output channel 4 to right ear [r/w] +def B_AUDTERM_3_RIGHT equ 2 ; 1 = output channel 3 to right ear [r/w] +def B_AUDTERM_2_RIGHT equ 1 ; 1 = output channel 2 to right ear [r/w] +def B_AUDTERM_1_RIGHT equ 0 ; 1 = output channel 1 to right ear [r/w] + def AUDTERM_4_LEFT equ 1 << B_AUDTERM_4_LEFT + def AUDTERM_3_LEFT equ 1 << B_AUDTERM_3_LEFT + def AUDTERM_2_LEFT equ 1 << B_AUDTERM_2_LEFT + def AUDTERM_1_LEFT equ 1 << B_AUDTERM_1_LEFT + def AUDTERM_4_RIGHT equ 1 << B_AUDTERM_4_RIGHT + def AUDTERM_3_RIGHT equ 1 << B_AUDTERM_3_RIGHT + def AUDTERM_2_RIGHT equ 1 << B_AUDTERM_2_RIGHT + def AUDTERM_1_RIGHT equ 1 << B_AUDTERM_1_RIGHT + +; -- AUDENA / NR52 ($FF26) ---------------------------------------------------- +; Audio master enable +def rAUDENA equ $FF26 + +def B_AUDENA_ENABLE equ 7 ; 0 = disable the APU (resets all audio registers to 0!) [r/w] +def B_AUDENA_ENABLE_CH4 equ 3 ; 1 = channel 4 is running [ro] +def B_AUDENA_ENABLE_CH3 equ 2 ; 1 = channel 3 is running [ro] +def B_AUDENA_ENABLE_CH2 equ 1 ; 1 = channel 2 is running [ro] +def B_AUDENA_ENABLE_CH1 equ 0 ; 1 = channel 1 is running [ro] + def AUDENA_OFF equ 0 << B_AUDENA_ENABLE + def AUDENA_ON equ 1 << B_AUDENA_ENABLE + def AUDENA_CH4_OFF equ 0 << B_AUDENA_ENABLE_CH4 + def AUDENA_CH4_ON equ 1 << B_AUDENA_ENABLE_CH4 + def AUDENA_CH3_OFF equ 0 << B_AUDENA_ENABLE_CH3 + def AUDENA_CH3_ON equ 1 << B_AUDENA_ENABLE_CH3 + def AUDENA_CH2_OFF equ 0 << B_AUDENA_ENABLE_CH2 + def AUDENA_CH2_ON equ 1 << B_AUDENA_ENABLE_CH2 + def AUDENA_CH1_OFF equ 0 << B_AUDENA_ENABLE_CH1 + def AUDENA_CH1_ON equ 1 << B_AUDENA_ENABLE_CH1 + +; -- $FF27-$FF2F are unused --------------------------------------------------- + +; -- AUD3WAVE ($FF30-$FF3F) --------------------------------------------------- +; Audio channel 3 wave pattern RAM [r/w] +def _AUD3WAVERAM equ $FF30 ; $FF30-$FF3F + +def rAUD3WAVE_0 equ $FF30 +def rAUD3WAVE_1 equ $FF31 +def rAUD3WAVE_2 equ $FF32 +def rAUD3WAVE_3 equ $FF33 +def rAUD3WAVE_4 equ $FF34 +def rAUD3WAVE_5 equ $FF35 +def rAUD3WAVE_6 equ $FF36 +def rAUD3WAVE_7 equ $FF37 +def rAUD3WAVE_8 equ $FF38 +def rAUD3WAVE_9 equ $FF39 +def rAUD3WAVE_A equ $FF3A +def rAUD3WAVE_B equ $FF3B +def rAUD3WAVE_C equ $FF3C +def rAUD3WAVE_D equ $FF3D +def rAUD3WAVE_E equ $FF3E +def rAUD3WAVE_F equ $FF3F + +def AUD3WAVE_SIZE equ 16 + +; -- LCDC ($FF40) ------------------------------------------------------------- +; PPU graphics control +def rLCDC equ $FF40 + +def B_LCDC_ENABLE equ 7 ; whether the PPU (and LCD) are turned on [r/w] +def B_LCDC_WIN_MAP equ 6 ; which tilemap the Window reads from [r/w] +def B_LCDC_WINDOW equ 5 ; whether the Window is enabled [r/w] +def B_LCDC_BLOCKS equ 4 ; which "tile blocks" the BG and Window use [r/w] +def B_LCDC_BG_MAP equ 3 ; which tilemap the BG reads from [r/w] +def B_LCDC_OBJ_SIZE equ 2 ; how many pixels tall each OBJ is [r/w] +def B_LCDC_OBJS equ 1 ; whether OBJs are enabled [r/w] +def B_LCDC_BG equ 0 ; (DMG only) whether the BG is enabled [r/w] +def B_LCDC_PRIO equ 0 ; (CGB only) whether OBJ priority bits are enabled [r/w] + def LCDC_ENABLE equ 1 << B_LCDC_ENABLE + def LCDC_OFF equ 0 << B_LCDC_ENABLE + def LCDC_ON equ 1 << B_LCDC_ENABLE + def LCDC_WIN_MAP equ 1 << B_LCDC_WIN_MAP + def LCDC_WIN_9800 equ 0 << B_LCDC_WIN_MAP + def LCDC_WIN_9C00 equ 1 << B_LCDC_WIN_MAP + def LCDC_WINDOW equ 1 << B_LCDC_WINDOW + def LCDC_WIN_OFF equ 0 << B_LCDC_WINDOW + def LCDC_WIN_ON equ 1 << B_LCDC_WINDOW + def LCDC_BLOCKS equ 1 << B_LCDC_BLOCKS + def LCDC_BLOCK21 equ 0 << B_LCDC_BLOCKS + def LCDC_BLOCK01 equ 1 << B_LCDC_BLOCKS + def LCDC_BG_MAP equ 1 << B_LCDC_BG_MAP + def LCDC_BG_9800 equ 0 << B_LCDC_BG_MAP + def LCDC_BG_9C00 equ 1 << B_LCDC_BG_MAP + def LCDC_OBJ_SIZE equ 1 << B_LCDC_OBJ_SIZE + def LCDC_OBJ_8 equ 0 << B_LCDC_OBJ_SIZE + def LCDC_OBJ_16 equ 1 << B_LCDC_OBJ_SIZE + def LCDC_OBJS equ 1 << B_LCDC_OBJS + def LCDC_OBJ_OFF equ 0 << B_LCDC_OBJS + def LCDC_OBJ_ON equ 1 << B_LCDC_OBJS + def LCDC_BG equ 1 << B_LCDC_BG + def LCDC_BG_OFF equ 0 << B_LCDC_BG + def LCDC_BG_ON equ 1 << B_LCDC_BG + def LCDC_PRIO equ 1 << B_LCDC_PRIO + def LCDC_PRIO_OFF equ 0 << B_LCDC_PRIO + def LCDC_PRIO_ON equ 1 << B_LCDC_PRIO + +; -- STAT ($FF41) ------------------------------------------------------------- +; Graphics status and interrupt control +def rSTAT equ $FF41 + +def B_STAT_LYC equ 6 ; 1 = LY match triggers the STAT interrupt [r/w] +def B_STAT_MODE_2 equ 5 ; 1 = OAM Scan triggers the PPU interrupt [r/w] +def B_STAT_MODE_1 equ 4 ; 1 = VBlank triggers the PPU interrupt [r/w] +def B_STAT_MODE_0 equ 3 ; 1 = HBlank triggers the PPU interrupt [r/w] +def B_STAT_LYCF equ 2 ; 1 = LY is currently equal to LYC [ro] +def B_STAT_BUSY equ 1 ; 1 = the PPU is currently accessing VRAM [ro] + def STAT_LYC equ 1 << B_STAT_LYC + def STAT_MODE_2 equ 1 << B_STAT_MODE_2 + def STAT_MODE_1 equ 1 << B_STAT_MODE_1 + def STAT_MODE_0 equ 1 << B_STAT_MODE_0 + def STAT_LYCF equ 1 << B_STAT_LYCF + def STAT_BUSY equ 1 << B_STAT_BUSY + +def STAT_MODE equ %000000_11 ; PPU's current status [ro] + def STAT_HBLANK equ %000000_00 ; waiting after a line's rendering (HBlank) + def STAT_VBLANK equ %000000_01 ; waiting between frames (VBlank) + def STAT_OAM equ %000000_10 ; checking which OBJs will be rendered on this line (OAM scan) + def STAT_LCD equ %000000_11 ; pushing pixels to the LCD + +; -- SCY ($FF42) -------------------------------------------------------------- +; Background Y scroll offset (in pixels) [r/w] +def rSCY equ $FF42 + +; -- SCX ($FF43) -------------------------------------------------------------- +; Background X scroll offset (in pixels) [r/w] +def rSCX equ $FF43 + +; -- LY ($FF44) --------------------------------------------------------------- +; Y coordinate of the line currently processed by the PPU (0-153) [ro] +def rLY equ $FF44 + +def LY_VBLANK equ 144 ; 144-153 is the VBlank period + +; -- LYC ($FF45) -------------------------------------------------------------- +; Value that LY is constantly compared to [r/w] +def rLYC equ $FF45 + +; -- DMA ($FF46) -------------------------------------------------------------- +; OAM DMA start address (high 8 bits) and start [wo] +def rDMA equ $FF46 + +; -- BGP ($FF47) -------------------------------------------------------------- +; (DMG only) Background color mapping [r/w] +def rBGP equ $FF47 + +def BGP_SGB_TRANSFER equ %11_10_01_00 ; set BGP to this value before SGB VRAM transfer + +; -- OBP0 ($FF48) ------------------------------------------------------------- +; (DMG only) OBJ color mapping #0 [r/w] +def rOBP0 equ $FF48 + +; -- OBP1 ($FF49) ------------------------------------------------------------- +; (DMG only) OBJ color mapping #1 [r/w] +def rOBP1 equ $FF49 + +; -- WY ($FF4A) --------------------------------------------------------------- +; Y coordinate of the Window's top-left pixel (0-143) [r/w] +def rWY equ $FF4A + +; -- WX ($FF4B) --------------------------------------------------------------- +; X coordinate of the Window's top-left pixel, plus 7 (7-166) [r/w] +def rWX equ $FF4B + +def WX_OFS equ 7 ; subtract this to get the actual Window Y coordinate + +; -- SYS / KEY0 ($FF4C) ------------------------------------------------------- +; (CGB boot ROM only) CPU mode select +def rSYS equ $FF4C + +; This is known as the "CPU mode register" in Fig. 11 of this patent: +; https://patents.google.com/patent/US6322447B1/en?oq=US6322447bi +; "OBJ priority mode designating register" in the same patent +; Credit to @mattcurrie for this finding! + +def SYS_MODE equ %0000_11_00 ; current system mode [r/w] + def SYS_CGB equ %0000_00_00 ; CGB mode + def SYS_DMG equ %0000_01_00 ; DMG compatibility mode + def SYS_PGB1 equ %0000_10_00 ; LCD is driven externally, CPU is stopped + def SYS_PGB2 equ %0000_11_00 ; LCD is driven externally, CPU is running + +; -- SPD / KEY1 ($FF4D) ------------------------------------------------------- +; (CGB only) Double-speed mode control +def rSPD equ $FF4D + +def B_SPD_DOUBLE equ 7 ; current clock speed [ro] +def B_SPD_PREPARE equ 0 ; 1 = next `stop` instruction will switch clock speeds [r/w] + def SPD_SINGLE equ 0 << B_SPD_DOUBLE + def SPD_DOUBLE equ 1 << B_SPD_DOUBLE + def SPD_PREPARE equ 1 << B_SPD_PREPARE + +; -- $FF4E is unused ---------------------------------------------------------- + +; -- VBK ($FF4F) -------------------------------------------------------------- +; (CGB only) VRAM bank number (0 or 1) +def rVBK equ $FF4F + +def VBK_BANK equ %0000000_1 ; mapped VRAM bank [r/w] + +; -- BANK ($FF50) ------------------------------------------------------------- +; (boot ROM only) Boot ROM mapping control +def rBANK equ $FF50 + +def B_BANK_ON equ 0 ; whether the boot ROM is mapped [wo] + def BANK_ON equ 0 << B_BANK_ON + def BANK_OFF equ 1 << B_BANK_ON + +; -- VDMA_SRC_HIGH / HDMA1 ($FF51) -------------------------------------------- +; (CGB only) VRAM DMA source address (high 8 bits) [wo] +def rVDMA_SRC_HIGH equ $FF51 + +; -- VDMA_SRC_LOW / HDMA2 ($FF52) --------------------------------------------- +; (CGB only) VRAM DMA source address (low 8 bits) [wo] +def rVDMA_SRC_LOW equ $FF52 + +; -- VDMA_DEST_HIGH / HDMA3 ($FF53) ------------------------------------------- +; (CGB only) VRAM DMA destination address (high 8 bits) [wo] +def rVDMA_DEST_HIGH equ $FF53 + +; -- VDMA_DEST_LOW / HDMA3 ($FF54) -------------------------------------------- +; (CGB only) VRAM DMA destination address (low 8 bits) [wo] +def rVDMA_DEST_LOW equ $FF54 + +; -- VDMA_LEN / HDMA5 ($FF55) ------------------------------------------------- +; (CGB only) VRAM DMA length, mode, and start +def rVDMA_LEN equ $FF55 + +def B_VDMA_LEN_MODE equ 7 ; on write: VRAM DMA mode [wo] + def VDMA_LEN_MODE equ 1 << B_VDMA_LEN_MODE + def VDMA_LEN_MODE_GENERAL equ 0 << B_VDMA_LEN_MODE ; GDMA (general-purpose) + def VDMA_LEN_MODE_HBLANK equ 1 << B_VDMA_LEN_MODE ; HDMA (HBlank) + +def B_VDMA_LEN_BUSY equ 7 ; on read: is a VRAM DMA active? + def VDMA_LEN_BUSY equ 1 << B_VDMA_LEN_BUSY + def VDMA_LEN_NO equ 0 << B_VDMA_LEN_BUSY + def VDMA_LEN_YES equ 1 << B_VDMA_LEN_BUSY + +def VDMA_LEN_SIZE equ %0_1111111 ; how many 16-byte blocks (minus 1) to transfer [r/w] + +; -- RP ($FF56) --------------------------------------------------------------- +; (CGB only) Infrared communications port +def rRP equ $FF56 + +def RP_READ equ %11_000000 ; whether the IR read is enabled [r/w] + def RP_DISABLE equ %00_000000 + def RP_ENABLE equ %11_000000 + +def B_RP_DATA_IN equ 1 ; 0 = IR light is being received [ro] +def B_RP_LED_ON equ 0 ; 1 = IR light is being sent [r/w] + def RP_DATA_IN equ 1 << B_RP_DATA_IN + def RP_LED_ON equ 1 << B_RP_LED_ON + def RP_WRITE_LOW equ 0 << B_RP_LED_ON + def RP_WRITE_HIGH equ 1 << B_RP_LED_ON + +; -- $FF57-$FF67 are unused --------------------------------------------------- + +; -- BGPI / BCPS ($FF68) ------------------------------------------------------ +; (CGB only) Background palette I/O index +def rBGPI equ $FF68 + +def B_BGPI_AUTOINC equ 7 ; whether the index field is incremented after each write to BCPD [r/w] + def BGPI_AUTOINC equ 1 << B_BGPI_AUTOINC + +def BGPI_INDEX equ %00_111111 ; the index within Palette RAM accessed via BCPD [r/w] + +; -- BGPD / BCPD ($FF69) ------------------------------------------------------ +; (CGB only) Background palette I/O access [r/w] +def rBGPD equ $FF69 + +; -- OBPI / OCPS ($FF6A) ------------------------------------------------------ +; (CGB only) OBJ palette I/O index +def rOBPI equ $FF6A + +def B_OBPI_AUTOINC equ 7 ; whether the index field is incremented after each write to OBPD [r/w] + def OBPI_AUTOINC equ 1 << B_OBPI_AUTOINC + +def OBPI_INDEX equ %00_111111 ; the index within Palette RAM accessed via OBPD [r/w] + +; -- OBPD / OCPD ($FF6B) ------------------------------------------------------ +; (CGB only) OBJ palette I/O access [r/w] +def rOBPD equ $FF6B + +; -- OPRI ($FF6C) ------------------------------------------------------------- +; (CGB boot ROM only) OBJ draw priority mode +def rOPRI equ $FF6C + +def B_OPRI_PRIORITY equ 0 ; which drawing priority is used for OBJs [r/w] + def OPRI_PRIORITY equ 1 << B_OPRI_PRIORITY + def OPRI_OAM equ 0 << B_OPRI_PRIORITY ; CGB mode default: earliest OBJ in OAM wins + def OPRI_COORD equ 1 << B_OPRI_PRIORITY ; DMG mode default: leftmost OBJ wins + +; -- $FF6D-$FF6F are unused --------------------------------------------------- + +; -- WBK / SVBK ($FF70) ------------------------------------------------------- +; (CGB only) WRAM bank number +def rWBK equ $FF70 + +def WBK_BANK equ %00000_111 ; mapped WRAM bank (0-7) [r/w] + +; -- $FF71-$FF75 are unused --------------------------------------------------- + +; -- PCM12 ($FF76) ------------------------------------------------------------ +; Audio channels 1 and 2 output +def rPCM12 equ $FF76 + +def PCM12_CH2 equ %1111_0000 ; audio channel 2 output [ro] +def PCM12_CH1 equ %0000_1111 ; audio channel 1 output [ro] + +; -- PCM34 ($FF77) ------------------------------------------------------------ +; Audio channels 3 and 4 output +def rPCM34 equ $FF77 + +def PCM34_CH4 equ %1111_0000 ; audio channel 4 output [ro] +def PCM34_CH3 equ %0000_1111 ; audio channel 3 output [ro] + +; -- $FF78-$FF7F are unused --------------------------------------------------- + +; -- IE ($FFFF) --------------------------------------------------------------- +; Interrupt enable +def rIE equ $FFFF + +def B_IE_JOYPAD equ 4 ; 1 = joypad interrupt is enabled [r/w] +def B_IE_SERIAL equ 3 ; 1 = serial interrupt is enabled [r/w] +def B_IE_TIMER equ 2 ; 1 = timer interrupt is enabled [r/w] +def B_IE_STAT equ 1 ; 1 = STAT interrupt is enabled [r/w] +def B_IE_VBLANK equ 0 ; 1 = VBlank interrupt is enabled [r/w] + def IE_JOYPAD equ 1 << B_IE_JOYPAD + def IE_SERIAL equ 1 << B_IE_SERIAL + def IE_TIMER equ 1 << B_IE_TIMER + def IE_STAT equ 1 << B_IE_STAT + def IE_VBLANK equ 1 << B_IE_VBLANK + + +;****************************************************************************** +; Cartridge registers (MBC) +;****************************************************************************** + +; Note that these "registers" are each actually accessible at an entire address range; +; however, one address for each of these ranges is considered the "canonical" one, and +; these addresses are what's provided here. + + +; ** Common to most MBCs ****************************************************** + +; -- RAMG ($0000-$1FFF) ------------------------------------------------------- +; Whether SRAM can be accessed [wo] +def rRAMG equ $0000 + +; Common values (not for HuC1 or HuC-3) +def RAMG_SRAM_DISABLE equ $00 +def RAMG_SRAM_ENABLE equ $0A ; some MBCs accept any value whose low nybble is $A + +; (HuC-3 only) switch SRAM to map cartridge RAM, RTC, or IR +def RAMG_CART_RAM_RO equ $00 ; select cartridge RAM [ro] +def RAMG_CART_RAM equ $0A ; select cartridge RAM [r/w] +def RAMG_RTC_IN equ $0B ; select RTC command/argument [wo] + def RAMG_RTC_IN_CMD equ %0_111_0000 ; command + def RAMG_RTC_IN_ARG equ %0_000_1111 ; argument +def RAMG_RTC_OUT equ $0C ; select RTC command/response [ro] + def RAMG_RTC_OUT_CMD equ %0_111_0000 ; command + def RAMG_RTC_OUT_RESULT equ %0_000_1111 ; result +def RAMG_RTC_SEMAPHORE equ $0D ; select RTC semaphore [r/w] +def RAMG_IR equ $0E ; (HuC1 and HuC-3 only) select IR [r/w] + +; -- ROMB ($2000-$3FFF) ------------------------------------------------------- +; ROM bank number (not for MBC5 or MBC6) [wo] +def rROMB equ $2000 + +; -- RAMB ($4000-$5FFF) ------------------------------------------------------- +; SRAM bank number (not for MBC2, MBC6, or MBC7) [wo] +def rRAMB equ $4000 + +; (MBC3 only) Special RAM bank numbers that actually map values into RTCREG +def RAMB_RTC_S equ $08 ; seconds counter (0-59) +def RAMB_RTC_M equ $09 ; minutes counter (0-59) +def RAMB_RTC_H equ $0A ; hours counter (0-23) +def RAMB_RTC_DL equ $0B ; days counter, low byte (0-255) +def RAMB_RTC_DH equ $0C ; days counter, high bit and other flags + def B_RAMB_RTC_DH_CARRY equ 7 ; 1 = days counter overflowed [wo] + def B_RAMB_RTC_DH_HALT equ 6 ; 0 = run timer, 1 = stop timer [wo] + def B_RAMB_RTC_DH_HIGH equ 0 ; days counter, high bit (bit 8) [wo] + def RAMB_RTC_DH_CARRY equ 1 << B_RAMB_RTC_DH_CARRY + def RAMB_RTC_DH_HALT equ 1 << B_RAMB_RTC_DH_HALT + def RAMB_RTC_DH_HIGH equ 1 << B_RAMB_RTC_DH_HIGH + +def B_RAMB_RUMBLE equ 3 ; (MBC5 and MBC7 only) enable the rumble motor (if any) + def RAMB_RUMBLE equ 1 << B_RAMB_RUMBLE + def RAMB_RUMBLE_OFF equ 0 << B_RAMB_RUMBLE + def RAMB_RUMBLE_ON equ 1 << B_RAMB_RUMBLE + + +; ** MBC1 and MMM01 only ****************************************************** + +; -- BMODE ($6000-$7FFF) ------------------------------------------------------ +; Banking mode select [wo] +def rBMODE equ $6000 + +def BMODE_SIMPLE equ $00 ; locks ROMB and RAMB to bank 0 +def BMODE_ADVANCED equ $01 ; allows bank-switching with RAMB + + +; ** MBC2 only **************************************************************** + +; -- ROM2B ($0000-$3FFF with bit 8 set) --------------------------------------- +; ROM bank number [wo] +def rROM2B equ $2100 + + +; ** MBC3 only **************************************************************** + +; -- RTCLATCH ($6000-$7FFF) --------------------------------------------------- +; RTC latch clock data [wo] +def rRTCLATCH equ $6000 + +; Write $00 then $01 to latch the current time into RTCREG +def RTCLATCH_START equ $00 +def RTCLATCH_FINISH equ $01 + +; -- RTCREG ($A000-$BFFF) ----------------------------------------------------- +; RTC register [r/w] +def rRTCREG equ $A000 + + +; ** MBC5 only **************************************************************** + +; -- ROMB0 ($2000-$3FFF) ------------------------------------------------------ +; ROM bank number low byte (bits 0-7) [wo] +def rROMB0 equ $2000 + +; -- ROMB1 ($3000-$3FFF) ------------------------------------------------------ +; ROM bank number high bit (bit 8) [wo] +def rROMB1 equ $3000 + + +; ** MBC6 only **************************************************************** + +; -- RAMBA ($0400-$07FF) ------------------------------------------------------ +; RAM bank A number [wo] +def rRAMBA equ $0400 + +; -- RAMBB ($0800-$0BFF) ------------------------------------------------------ +; RAM bank B number [wo] +def rRAMBB equ $0800 + +; -- FLASH ($0C00-$0FFF) ------------------------------------------------------ +; Whether the flash chip can be accessed [wo] +def rFLASH equ $0C00 + +; -- FMODE ($1000) ------------------------------------------------------------ +; Write mode select for the flash chip +def rFMODE equ $1000 + +; -- ROMBA ($2000-$27FF) ------------------------------------------------------ +; ROM/Flash bank A number [wo] +def rROMBA equ $2000 + +; -- FLASHA ($2800-$2FFF) ----------------------------------------------------- +; ROM/Flash bank A select [wo] +def rFLASHA equ $2800 + +; -- ROMBB ($3000-$37FF) ------------------------------------------------------ +; ROM/Flash bank B number [wo] +def rROMBB equ $3000 + +; -- FLASHB ($3800-$3FFF) ----------------------------------------------------- +; ROM/Flash bank B select [wo] +def rFLASHB equ $3800 + + +; ** MBC7 only **************************************************************** + +; -- RAMREG ($4000-$5FFF) ----------------------------------------------------- +; Enable RAM register access [wo] +def rRAMREG equ $4000 + +def RAMREG_ENABLE equ $40 + +; -- ACCLATCH0 ($Ax0x) -------------------------------------------------------- +; Latch accelerometer start [wo] +def rACCLATCH0 equ $A000 + +def ACCLATCH0_START equ $55 + +; -- ACCLATCH1 ($Ax1x) -------------------------------------------------------- +; Latch accelerometer finish [wo] +def rACCLATCH1 equ $A010 + +def ACCLATCH1_FINISH equ $AA + +; -- ACCELX0 ($Ax2x) ---------------------------------------------------------- +; Accelerometer X value low byte [ro] +def rACCELX0 equ $A020 + +; -- ACCELX1 ($Ax3x) ---------------------------------------------------------- +; Accelerometer X value high byte [ro] +def rACCELX1 equ $A030 + +; -- ACCELY0 ($Ax4x) ---------------------------------------------------------- +; Accelerometer Y value low byte [ro] +def rACCELY0 equ $A040 + +; -- ACCELY1 ($Ax5x) ---------------------------------------------------------- +; Accelerometer Y value high byte [ro] +def rACCELY1 equ $A050 + +; -- EEPROM ($Ax8x) ----------------------------------------------------------- +; EEPROM access [r/w] +def rEEPROM equ $A080 + + +; ** HuC1 only **************************************************************** + +; -- IRREG ($A000-$BFFF) ------------------------------------------------------ +; IR register [r/w] +def rIRREG equ $A000 + +def IR_LED_OFF equ $C0 +def IR_LED_ON equ $C1 + + +;****************************************************************************** +; Screen-related constants +;****************************************************************************** + +def SCREEN_WIDTH_PX equ 160 ; width of screen in pixels +def SCREEN_HEIGHT_PX equ 144 ; height of screen in pixels +def SCREEN_WIDTH equ 20 ; width of screen in bytes +def SCREEN_HEIGHT equ 18 ; height of screen in bytes +def SCREEN_AREA equ SCREEN_WIDTH * SCREEN_HEIGHT ; size of screen in bytes + +def TILEMAP_WIDTH_PX equ 256 ; width of tilemap in pixels +def TILEMAP_HEIGHT_PX equ 256 ; height of tilemap in pixels +def TILEMAP_WIDTH equ 32 ; width of tilemap in bytes +def TILEMAP_HEIGHT equ 32 ; height of tilemap in bytes +def TILEMAP_AREA equ TILEMAP_WIDTH * TILEMAP_HEIGHT ; size of tilemap in bytes + +def TILE_WIDTH equ 8 ; width of tile in pixels +def TILE_HEIGHT equ 8 ; height of tile in pixels +def TILE_SIZE equ 16 ; size of tile in bytes (2 bits/pixel) + +def COLOR_SIZE equ 2 ; size of color in bytes (little-endian BGR555) + def B_COLOR_RED equ 0 ; bits 4-0 + def B_COLOR_GREEN equ 5 ; bits 9-5 + def B_COLOR_BLUE equ 10 ; bits 14-10 + def COLOR_RED equ %000_11111 ; for the low byte + def COLOR_GREEN_LOW equ %111_00000 ; for the low byte + def COLOR_GREEN_HIGH equ %0_00000_11 ; for the high byte + def COLOR_BLUE equ %0_11111_00 ; for the high byte +def PAL_COLORS equ 4 ; colors per palette +def PAL_SIZE equ COLOR_SIZE * PAL_COLORS ; size of palette in bytes + +; Tilemaps the BG or Window can read from (controlled by LCDC) +def TILEMAP0 equ $9800 ; $9800-$9BFF +def TILEMAP1 equ $9C00 ; $9C00-$9FFF + +; (CGB only) BG tile attribute fields +def B_BG_PRIO equ 7 ; whether the BG tile colors 1-3 are drawn above OBJs +def B_BG_YFLIP equ 6 ; whether the whole BG tile is flipped vertically +def B_BG_XFLIP equ 5 ; whether the whole BG tile is flipped horizontally +def B_BG_BANK1 equ 3 ; which VRAM bank the BG tile is taken from +def BG_PALETTE equ %00000_111 ; which palette the BG tile uses + def BG_PRIO equ 1 << B_BG_PRIO + def BG_YFLIP equ 1 << B_BG_YFLIP + def BG_XFLIP equ 1 << B_BG_XFLIP + def BG_BANK0 equ 0 << B_BG_BANK1 + def BG_BANK1 equ 1 << B_BG_BANK1 + + +;****************************************************************************** +; OBJ-related constants +;****************************************************************************** + +; OAM attribute field offsets +rsreset +def OAMA_Y rb ; 0 + def OAM_Y_OFS equ 16 ; subtract 16 from what's written to OAM to get the real Y position +def OAMA_X rb ; 1 + def OAM_X_OFS equ 8 ; subtract 8 from what's written to OAM to get the real X position +def OAMA_TILEID rb ; 2 +def OAMA_FLAGS rb ; 3 + def B_OAM_PRIO equ 7 ; whether the OBJ is drawn below BG colors 1-3 + def B_OAM_YFLIP equ 6 ; whether the whole OBJ is flipped vertically + def B_OAM_XFLIP equ 5 ; whether the whole OBJ is flipped horizontally + def B_OAM_PAL1 equ 4 ; (DMG only) which of the two palettes the OBJ uses + def B_OAM_BANK1 equ 3 ; (CGB only) which VRAM bank the OBJ takes its tile(s) from + def OAM_PALETTE equ %00000_111 ; (CGB only) which palette the OBJ uses + def OAM_PRIO equ 1 << B_OAM_PRIO + def OAM_YFLIP equ 1 << B_OAM_YFLIP + def OAM_XFLIP equ 1 << B_OAM_XFLIP + def OAM_PAL0 equ 0 << B_OAM_PAL1 + def OAM_PAL1 equ 1 << B_OAM_PAL1 + def OAM_BANK0 equ 0 << B_OAM_BANK1 + def OAM_BANK1 equ 1 << B_OAM_BANK1 +def OBJ_SIZE rb 0 ; size of OBJ in bytes = 4 + +def OAM_COUNT equ 40 ; how many OBJs there are room for in OAM +def OAM_SIZE equ OBJ_SIZE * OAM_COUNT + + +;****************************************************************************** +; Interrupt vector addresses +;****************************************************************************** + +def INT_HANDLER_VBLANK equ $0040 ; VBlank interrupt handler address +def INT_HANDLER_STAT equ $0048 ; STAT interrupt handler address +def INT_HANDLER_TIMER equ $0050 ; timer interrupt handler address +def INT_HANDLER_SERIAL equ $0058 ; serial interrupt handler address +def INT_HANDLER_JOYPAD equ $0060 ; joypad interrupt handler address + + +;****************************************************************************** +; Boot-up register values +;****************************************************************************** + +; Register A = CPU type +def BOOTUP_A_DMG equ $01 +def BOOTUP_A_CGB equ $11 ; CGB or AGB +def BOOTUP_A_MGB equ $FF + def BOOTUP_A_SGB equ BOOTUP_A_DMG + def BOOTUP_A_SGB2 equ BOOTUP_A_MGB + +; Register B = CPU qualifier (if A is BOOTUP_A_CGB) +def B_BOOTUP_B_AGB equ 0 + def BOOTUP_B_CGB equ 0 << B_BOOTUP_B_AGB + def BOOTUP_B_AGB equ 1 << B_BOOTUP_B_AGB + + +;****************************************************************************** +; Aliases +;****************************************************************************** + +; Prefer the standard names to these aliases, which may be official but are +; less directly meaningful or human-readable. + +def rP1 equ rJOYP + +def rNR10 equ rAUD1SWEEP +def rNR11 equ rAUD1LEN +def rNR12 equ rAUD1ENV +def rNR13 equ rAUD1LOW +def rNR14 equ rAUD1HIGH +def rNR21 equ rAUD2LEN +def rNR22 equ rAUD2ENV +def rNR23 equ rAUD2LOW +def rNR24 equ rAUD2HIGH +def rNR30 equ rAUD3ENA +def rNR31 equ rAUD3LEN +def rNR32 equ rAUD3LEVEL +def rNR33 equ rAUD3LOW +def rNR34 equ rAUD3HIGH +def rNR41 equ rAUD4LEN +def rNR42 equ rAUD4ENV +def rNR43 equ rAUD4POLY +def rNR44 equ rAUD4GO +def rNR50 equ rAUDVOL +def rNR51 equ rAUDTERM +def rNR52 equ rAUDENA + +def rKEY0 equ rSYS +def rKEY1 equ rSPD + +def rHDMA1 equ rVDMA_SRC_HIGH +def rHDMA2 equ rVDMA_SRC_LOW +def rHDMA3 equ rVDMA_DEST_HIGH +def rHDMA4 equ rVDMA_DEST_LOW +def rHDMA5 equ rVDMA_LEN + +def rBCPS equ rBGPI +def rBCPD equ rBGPD + +def rOCPS equ rOBPI +def rOCPD equ rOBPD + +def rSVBK equ rWBK + +endc ; HARDWARE_INC diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm deleted file mode 100644 index 6c5d43c1..00000000 --- a/constants/hardware_constants.asm +++ /dev/null @@ -1,126 +0,0 @@ -; Reference documents: -; https://gbdev.io/pandocs/ -; https://github.com/gbdev/hardware.inc - -DEF CGB EQU $11 - -; MBC1 -DEF MBC1SRamEnable EQU $0000 -DEF MBC1RomBank EQU $2000 -DEF MBC1SRamBank EQU $4000 -DEF MBC1SRamBankingMode EQU $6000 - -DEF SRAM_DISABLE EQU $00 -DEF SRAM_ENABLE EQU $0a - -DEF NUM_SRAM_BANKS EQU 4 - -; interrupt flags -DEF VBLANK EQU 0 -DEF LCD_STAT EQU 1 -DEF TIMER EQU 2 -DEF SERIAL EQU 3 -DEF JOYPAD EQU 4 - -DEF LY_VBLANK EQU 145 - -; serial -DEF START_TRANSFER_EXTERNAL_CLOCK EQU $80 -DEF START_TRANSFER_INTERNAL_CLOCK EQU $81 - -; Hardware registers -DEF rJOYP EQU $ff00 ; Joypad (R/W) -DEF rSB EQU $ff01 ; Serial transfer data (R/W) -DEF rSC EQU $ff02 ; Serial Transfer Control (R/W) -DEF rSC_ON EQU 7 -DEF rSC_CGB EQU 1 -DEF rSC_CLOCK EQU 0 -DEF rDIV EQU $ff04 ; Divider Register (R/W) -DEF rTIMA EQU $ff05 ; Timer counter (R/W) -DEF rTMA EQU $ff06 ; Timer Modulo (R/W) -DEF rTAC EQU $ff07 ; Timer Control (R/W) -DEF rTAC_ON EQU 2 -DEF rTAC_4096_HZ EQU 0 -DEF rTAC_262144_HZ EQU 1 -DEF rTAC_65536_HZ EQU 2 -DEF rTAC_16384_HZ EQU 3 -DEF rIF EQU $ff0f ; Interrupt Flag (R/W) -DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W) -DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) -DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) -DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) -DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) -DEF rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) -DEF rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) -DEF rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) -DEF rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W) -DEF rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W) -DEF rNR31 EQU $ff1b ; Channel 3 Sound Length -DEF rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) -DEF rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) -DEF rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) -DEF rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) -DEF rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) -DEF rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) -DEF rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (R/W) -DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) -DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) -DEF rNR52 EQU $ff26 ; Sound on/off -DEF rWave_0 EQU $ff30 -DEF rWave_1 EQU $ff31 -DEF rWave_2 EQU $ff32 -DEF rWave_3 EQU $ff33 -DEF rWave_4 EQU $ff34 -DEF rWave_5 EQU $ff35 -DEF rWave_6 EQU $ff36 -DEF rWave_7 EQU $ff37 -DEF rWave_8 EQU $ff38 -DEF rWave_9 EQU $ff39 -DEF rWave_a EQU $ff3a -DEF rWave_b EQU $ff3b -DEF rWave_c EQU $ff3c -DEF rWave_d EQU $ff3d -DEF rWave_e EQU $ff3e -DEF rWave_f EQU $ff3f -DEF rLCDC EQU $ff40 ; LCD Control (R/W) -DEF rLCDC_BG_PRIORITY EQU 0 -DEF rLCDC_SPRITES_ENABLE EQU 1 -DEF rLCDC_SPRITE_SIZE EQU 2 -DEF rLCDC_BG_TILEMAP EQU 3 -DEF rLCDC_TILE_DATA EQU 4 -DEF rLCDC_WINDOW_ENABLE EQU 5 -DEF rLCDC_WINDOW_TILEMAP EQU 6 -DEF rLCDC_ENABLE EQU 7 -DEF rSTAT EQU $ff41 ; LCDC Status (R/W) -DEF rSCY EQU $ff42 ; Scroll Y (R/W) -DEF rSCX EQU $ff43 ; Scroll X (R/W) -DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R) -DEF rLYC EQU $ff45 ; LY Compare (R/W) -DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W) -DEF rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only -DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only -DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only -DEF rWY EQU $ff4a ; Window Y Position (R/W) -DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W) -DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch -DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank -DEF rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High -DEF rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low -DEF rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High -DEF rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low -DEF rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start -DEF rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port -DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index -DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data -DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index -DEF rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data -DEF rOPRI EQU $ff6c ; CGB Mode Only - Object Priority Mode -DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank -DEF rPCM12 EQU $ff76 ; Channels 1 & 2 Amplitude (R) -DEF rPCM34 EQU $ff77 ; Channels 3 & 4 Amplitude (R) -DEF rIE EQU $ffff ; Interrupt Enable (R/W) -DEF rIE_VBLANK EQU 0 -DEF rIE_LCD EQU 1 -DEF rIE_TIMER EQU 2 -DEF rIE_SERIAL EQU 3 -DEF rIE_JOYPAD EQU 4 diff --git a/constants/input_constants.asm b/constants/input_constants.asm deleted file mode 100644 index 68233dea..00000000 --- a/constants/input_constants.asm +++ /dev/null @@ -1,20 +0,0 @@ -; joypad buttons - const_def - const BIT_A_BUTTON ; 0 - const BIT_B_BUTTON ; 1 - const BIT_SELECT ; 2 - const BIT_START ; 3 - const BIT_D_RIGHT ; 4 - const BIT_D_LEFT ; 5 - const BIT_D_UP ; 6 - const BIT_D_DOWN ; 7 - -DEF NO_INPUT EQU 0 -DEF A_BUTTON EQU 1 << BIT_A_BUTTON -DEF B_BUTTON EQU 1 << BIT_B_BUTTON -DEF SELECT EQU 1 << BIT_SELECT -DEF START EQU 1 << BIT_START -DEF D_RIGHT EQU 1 << BIT_D_RIGHT -DEF D_LEFT EQU 1 << BIT_D_LEFT -DEF D_UP EQU 1 << BIT_D_UP -DEF D_DOWN EQU 1 << BIT_D_DOWN diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 3562042b..a542b4a7 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -7,3 +7,6 @@ DEF TRUE EQU 1 const FLAG_RESET ; 0 const FLAG_SET ; 1 const FLAG_TEST ; 2 + +; input +DEF NO_INPUT EQU 0 diff --git a/constants/oam_constants.asm b/constants/oam_constants.asm index e87e54a0..93d5b877 100644 --- a/constants/oam_constants.asm +++ b/constants/oam_constants.asm @@ -6,18 +6,3 @@ ; Used in SpriteFacingAndAnimationTable (see data/sprites/facings.asm) DEF FACING_END EQU 1 << BIT_END_OF_OAM_DATA DEF UNDER_GRASS EQU 1 << BIT_SPRITE_UNDER_GRASS - -; OAM attribute flags -DEF OAM_PALETTE EQU %111 - const_def 3 - const OAM_TILE_BANK ; 3 - const OAM_OBP_NUM ; 4 ; Non CGB Mode Only - const OAM_X_FLIP ; 5 - const OAM_Y_FLIP ; 6 - const OAM_PRIORITY ; 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) - -; OAM attribute masks -DEF OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1 -DEF OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip -DEF OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip -DEF OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0) diff --git a/data/battle_anims/frame_blocks.asm b/data/battle_anims/frame_blocks.asm index 0e0de32f..daedfc06 100644 --- a/data/battle_anims/frame_blocks.asm +++ b/data/battle_anims/frame_blocks.asm @@ -128,39 +128,39 @@ FrameBlock01: db 9 ; # dbsprite 0, 0, 0, 0, $2c, 0 dbsprite 1, 0, 0, 0, $2d, 0 - dbsprite 2, 0, 0, 0, $2c, OAM_HFLIP + dbsprite 2, 0, 0, 0, $2c, OAM_XFLIP dbsprite 0, 1, 0, 0, $3c, 0 dbsprite 1, 1, 0, 0, $3d, 0 - dbsprite 2, 1, 0, 0, $3c, OAM_HFLIP - dbsprite 0, 2, 0, 0, $2c, OAM_VFLIP - dbsprite 1, 2, 0, 0, $2d, OAM_VFLIP - dbsprite 2, 2, 0, 0, $2c, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $3c, OAM_XFLIP + dbsprite 0, 2, 0, 0, $2c, OAM_YFLIP + dbsprite 1, 2, 0, 0, $2d, OAM_YFLIP + dbsprite 2, 2, 0, 0, $2c, OAM_XFLIP | OAM_YFLIP FrameBlock02: db 16 ; # dbsprite 0, 0, 0, 0, $20, 0 dbsprite 1, 0, 0, 0, $21, 0 - dbsprite 2, 0, 0, 0, $21, OAM_HFLIP - dbsprite 3, 0, 0, 0, $20, OAM_HFLIP + dbsprite 2, 0, 0, 0, $21, OAM_XFLIP + dbsprite 3, 0, 0, 0, $20, OAM_XFLIP dbsprite 0, 1, 0, 0, $30, 0 dbsprite 1, 1, 0, 0, $31, 0 - dbsprite 2, 1, 0, 0, $31, OAM_HFLIP - dbsprite 3, 1, 0, 0, $30, OAM_HFLIP - dbsprite 0, 2, 0, 0, $30, OAM_VFLIP - dbsprite 1, 2, 0, 0, $31, OAM_VFLIP - dbsprite 2, 2, 0, 0, $31, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 2, 0, 0, $30, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 3, 0, 0, $20, OAM_VFLIP - dbsprite 1, 3, 0, 0, $21, OAM_VFLIP - dbsprite 2, 3, 0, 0, $21, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 3, 0, 0, $20, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $31, OAM_XFLIP + dbsprite 3, 1, 0, 0, $30, OAM_XFLIP + dbsprite 0, 2, 0, 0, $30, OAM_YFLIP + dbsprite 1, 2, 0, 0, $31, OAM_YFLIP + dbsprite 2, 2, 0, 0, $31, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 2, 0, 0, $30, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 3, 0, 0, $20, OAM_YFLIP + dbsprite 1, 3, 0, 0, $21, OAM_YFLIP + dbsprite 2, 3, 0, 0, $21, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 3, 0, 0, $20, OAM_XFLIP | OAM_YFLIP FrameBlock03: db 4 ; # dbsprite 0, 0, 0, 0, $02, 0 - dbsprite 1, 0, 0, 0, $02, OAM_HFLIP + dbsprite 1, 0, 0, 0, $02, OAM_XFLIP dbsprite 0, 1, 0, 0, $12, 0 - dbsprite 1, 1, 0, 0, $12, OAM_HFLIP + dbsprite 1, 1, 0, 0, $12, OAM_XFLIP FrameBlock04: db 4 ; # @@ -171,25 +171,25 @@ FrameBlock04: FrameBlock05: db 4 ; # - dbsprite 0, 0, 0, 0, $07, OAM_HFLIP - dbsprite 1, 0, 0, 0, $06, OAM_HFLIP - dbsprite 0, 1, 0, 0, $17, OAM_HFLIP - dbsprite 1, 1, 0, 0, $16, OAM_HFLIP + dbsprite 0, 0, 0, 0, $07, OAM_XFLIP + dbsprite 1, 0, 0, 0, $06, OAM_XFLIP + dbsprite 0, 1, 0, 0, $17, OAM_XFLIP + dbsprite 1, 1, 0, 0, $16, OAM_XFLIP FrameBlock06: db 12 ; # dbsprite 1, 0, 0, 0, $23, 0 dbsprite 0, 1, 0, 0, $32, 0 dbsprite 1, 1, 0, 0, $33, 0 - dbsprite 2, 0, 0, 0, $23, OAM_HFLIP - dbsprite 2, 1, 0, 0, $33, OAM_HFLIP - dbsprite 3, 1, 0, 0, $32, OAM_HFLIP - dbsprite 0, 2, 0, 0, $32, OAM_VFLIP - dbsprite 1, 2, 0, 0, $33, OAM_VFLIP - dbsprite 1, 3, 0, 0, $23, OAM_VFLIP - dbsprite 2, 2, 0, 0, $33, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP - dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 0, $23, OAM_XFLIP + dbsprite 2, 1, 0, 0, $33, OAM_XFLIP + dbsprite 3, 1, 0, 0, $32, OAM_XFLIP + dbsprite 0, 2, 0, 0, $32, OAM_YFLIP + dbsprite 1, 2, 0, 0, $33, OAM_YFLIP + dbsprite 1, 3, 0, 0, $23, OAM_YFLIP + dbsprite 2, 2, 0, 0, $33, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 2, 0, 0, $32, OAM_XFLIP | OAM_YFLIP + dbsprite 2, 3, 0, 0, $23, OAM_XFLIP | OAM_YFLIP FrameBlock07: db 16 ; # @@ -197,18 +197,18 @@ FrameBlock07: dbsprite 1, 0, 0, 0, $21, 0 dbsprite 0, 1, 0, 0, $30, 0 dbsprite 1, 1, 0, 0, $31, 0 - dbsprite 2, 0, 0, 0, $21, OAM_HFLIP - dbsprite 3, 0, 0, 0, $20, OAM_HFLIP - dbsprite 2, 1, 0, 0, $31, OAM_HFLIP - dbsprite 3, 1, 0, 0, $30, OAM_HFLIP - dbsprite 0, 2, 0, 0, $30, OAM_VFLIP - dbsprite 1, 2, 0, 0, $31, OAM_VFLIP - dbsprite 0, 3, 0, 0, $20, OAM_VFLIP - dbsprite 1, 3, 0, 0, $21, OAM_VFLIP - dbsprite 2, 2, 0, 0, $31, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 2, 0, 0, $30, OAM_HFLIP | OAM_VFLIP - dbsprite 2, 3, 0, 0, $21, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 3, 0, 0, $20, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 0, $21, OAM_XFLIP + dbsprite 3, 0, 0, 0, $20, OAM_XFLIP + dbsprite 2, 1, 0, 0, $31, OAM_XFLIP + dbsprite 3, 1, 0, 0, $30, OAM_XFLIP + dbsprite 0, 2, 0, 0, $30, OAM_YFLIP + dbsprite 1, 2, 0, 0, $31, OAM_YFLIP + dbsprite 0, 3, 0, 0, $20, OAM_YFLIP + dbsprite 1, 3, 0, 0, $21, OAM_YFLIP + dbsprite 2, 2, 0, 0, $31, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 2, 0, 0, $30, OAM_XFLIP | OAM_YFLIP + dbsprite 2, 3, 0, 0, $21, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 3, 0, 0, $20, OAM_XFLIP | OAM_YFLIP FrameBlock08: db 16 ; # @@ -216,62 +216,62 @@ FrameBlock08: dbsprite 1, 0, 0, 0, $21, 0 dbsprite 0, 1, 0, 0, $30, 0 dbsprite 1, 1, 0, 0, $31, 0 - dbsprite 3, 0, 0, 0, $21, OAM_HFLIP - dbsprite 4, 0, 0, 0, $20, OAM_HFLIP - dbsprite 3, 1, 0, 0, $31, OAM_HFLIP - dbsprite 4, 1, 0, 0, $30, OAM_HFLIP - dbsprite 0, 3, 0, 0, $30, OAM_VFLIP - dbsprite 1, 3, 0, 0, $31, OAM_VFLIP - dbsprite 0, 4, 0, 0, $20, OAM_VFLIP - dbsprite 1, 4, 0, 0, $21, OAM_VFLIP - dbsprite 3, 3, 0, 0, $31, OAM_HFLIP | OAM_VFLIP - dbsprite 4, 3, 0, 0, $30, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 4, 0, 0, $21, OAM_HFLIP | OAM_VFLIP - dbsprite 4, 4, 0, 0, $20, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $21, OAM_XFLIP + dbsprite 4, 0, 0, 0, $20, OAM_XFLIP + dbsprite 3, 1, 0, 0, $31, OAM_XFLIP + dbsprite 4, 1, 0, 0, $30, OAM_XFLIP + dbsprite 0, 3, 0, 0, $30, OAM_YFLIP + dbsprite 1, 3, 0, 0, $31, OAM_YFLIP + dbsprite 0, 4, 0, 0, $20, OAM_YFLIP + dbsprite 1, 4, 0, 0, $21, OAM_YFLIP + dbsprite 3, 3, 0, 0, $31, OAM_XFLIP | OAM_YFLIP + dbsprite 4, 3, 0, 0, $30, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 4, 0, 0, $21, OAM_XFLIP | OAM_YFLIP + dbsprite 4, 4, 0, 0, $20, OAM_XFLIP | OAM_YFLIP FrameBlock09: db 12 ; # dbsprite 0, 0, 0, 0, $24, 0 dbsprite 1, 0, 0, 0, $25, 0 dbsprite 0, 1, 0, 0, $34, 0 - dbsprite 3, 0, 0, 0, $25, OAM_HFLIP - dbsprite 4, 0, 0, 0, $24, OAM_HFLIP - dbsprite 4, 1, 0, 0, $34, OAM_HFLIP - dbsprite 0, 3, 0, 0, $34, OAM_VFLIP - dbsprite 0, 4, 0, 0, $24, OAM_VFLIP - dbsprite 1, 4, 0, 0, $25, OAM_VFLIP - dbsprite 4, 3, 0, 0, $34, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 4, 0, 0, $25, OAM_HFLIP | OAM_VFLIP - dbsprite 4, 4, 0, 0, $24, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $25, OAM_XFLIP + dbsprite 4, 0, 0, 0, $24, OAM_XFLIP + dbsprite 4, 1, 0, 0, $34, OAM_XFLIP + dbsprite 0, 3, 0, 0, $34, OAM_YFLIP + dbsprite 0, 4, 0, 0, $24, OAM_YFLIP + dbsprite 1, 4, 0, 0, $25, OAM_YFLIP + dbsprite 4, 3, 0, 0, $34, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 4, 0, 0, $25, OAM_XFLIP | OAM_YFLIP + dbsprite 4, 4, 0, 0, $24, OAM_XFLIP | OAM_YFLIP FrameBlock0a: db 12 ; # dbsprite 0, 0, 0, 0, $24, 0 dbsprite 1, 0, 0, 0, $25, 0 dbsprite 0, 1, 0, 0, $34, 0 - dbsprite 4, 0, 0, 0, $25, OAM_HFLIP - dbsprite 5, 0, 0, 0, $24, OAM_HFLIP - dbsprite 5, 1, 0, 0, $34, OAM_HFLIP - dbsprite 0, 4, 0, 0, $34, OAM_VFLIP - dbsprite 0, 5, 0, 0, $24, OAM_VFLIP - dbsprite 1, 5, 0, 0, $25, OAM_VFLIP - dbsprite 5, 4, 0, 0, $34, OAM_HFLIP | OAM_VFLIP - dbsprite 4, 5, 0, 0, $25, OAM_HFLIP | OAM_VFLIP - dbsprite 5, 5, 0, 0, $24, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 0, 0, 0, $25, OAM_XFLIP + dbsprite 5, 0, 0, 0, $24, OAM_XFLIP + dbsprite 5, 1, 0, 0, $34, OAM_XFLIP + dbsprite 0, 4, 0, 0, $34, OAM_YFLIP + dbsprite 0, 5, 0, 0, $24, OAM_YFLIP + dbsprite 1, 5, 0, 0, $25, OAM_YFLIP + dbsprite 5, 4, 0, 0, $34, OAM_XFLIP | OAM_YFLIP + dbsprite 4, 5, 0, 0, $25, OAM_XFLIP | OAM_YFLIP + dbsprite 5, 5, 0, 0, $24, OAM_XFLIP | OAM_YFLIP FrameBlock0b: db 4 ; # dbsprite 0, 0, 0, 0, $05, 0 - dbsprite 1, 0, 0, 0, $05, OAM_HFLIP + dbsprite 1, 0, 0, 0, $05, OAM_XFLIP dbsprite 0, 1, 0, 0, $15, 0 - dbsprite 1, 1, 0, 0, $15, OAM_HFLIP + dbsprite 1, 1, 0, 0, $15, OAM_XFLIP FrameBlock0c: db 4 ; # dbsprite 0, 0, 0, 0, $04, 0 - dbsprite 1, 0, 0, 0, $04, OAM_HFLIP + dbsprite 1, 0, 0, 0, $04, OAM_XFLIP dbsprite 0, 1, 0, 0, $14, 0 - dbsprite 1, 1, 0, 0, $14, OAM_HFLIP + dbsprite 1, 1, 0, 0, $14, OAM_XFLIP FrameBlock0d: db 8 ; # @@ -279,10 +279,10 @@ FrameBlock0d: dbsprite 1, 0, 0, 0, $0d, 0 dbsprite 0, 1, 0, 0, $1c, 0 dbsprite 1, 1, 0, 0, $1d, 0 - dbsprite 0, 2, 0, 0, $1d, OAM_HFLIP | OAM_VFLIP - dbsprite 1, 2, 0, 0, $1c, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 3, 0, 0, $0d, OAM_HFLIP | OAM_VFLIP - dbsprite 1, 3, 0, 0, $0c, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 2, 0, 0, $1d, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 2, 0, 0, $1c, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 3, 0, 0, $0d, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 3, 0, 0, $0c, OAM_XFLIP | OAM_YFLIP FrameBlock0e: db 4 ; # @@ -293,10 +293,10 @@ FrameBlock0e: FrameBlock0f: db 4 ; # - dbsprite 0, 6, 0, 0, $1d, OAM_HFLIP | OAM_VFLIP - dbsprite 1, 6, 0, 0, $1c, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 7, 0, 0, $0d, OAM_HFLIP | OAM_VFLIP - dbsprite 1, 7, 0, 0, $0c, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 6, 0, 0, $1d, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 6, 0, 0, $1c, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 7, 0, 0, $0d, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 7, 0, 0, $0c, OAM_XFLIP | OAM_YFLIP FrameBlock10: db 8 ; # @@ -304,10 +304,10 @@ FrameBlock10: dbsprite 1, 0, 0, 0, $0f, 0 dbsprite 0, 1, 0, 0, $1e, 0 dbsprite 1, 1, 0, 0, $1f, 0 - dbsprite 2, 0, 0, 0, $0f, OAM_HFLIP - dbsprite 3, 0, 0, 0, $0e, OAM_HFLIP - dbsprite 2, 1, 0, 0, $1f, OAM_HFLIP - dbsprite 3, 1, 0, 0, $1e, OAM_HFLIP + dbsprite 2, 0, 0, 0, $0f, OAM_XFLIP + dbsprite 3, 0, 0, 0, $0e, OAM_XFLIP + dbsprite 2, 1, 0, 0, $1f, OAM_XFLIP + dbsprite 3, 1, 0, 0, $1e, OAM_XFLIP FrameBlock11: db 8 ; # @@ -315,10 +315,10 @@ FrameBlock11: dbsprite 1, 0, 0, 0, $0f, 0 dbsprite 0, 1, 0, 0, $1e, 0 dbsprite 1, 1, 0, 0, $1f, 0 - dbsprite 4, 0, 0, 0, $0f, OAM_HFLIP - dbsprite 5, 0, 0, 0, $0e, OAM_HFLIP - dbsprite 4, 1, 0, 0, $1f, OAM_HFLIP - dbsprite 5, 1, 0, 0, $1e, OAM_HFLIP + dbsprite 4, 0, 0, 0, $0f, OAM_XFLIP + dbsprite 5, 0, 0, 0, $0e, OAM_XFLIP + dbsprite 4, 1, 0, 0, $1f, OAM_XFLIP + dbsprite 5, 1, 0, 0, $1e, OAM_XFLIP FrameBlock12: db 3 ; # @@ -329,46 +329,46 @@ FrameBlock12: FrameBlock13: db 4 ; # dbsprite 0, 0, 0, 0, $36, 0 - dbsprite 1, 0, 0, 0, $36, OAM_HFLIP - dbsprite 0, 1, 0, 0, $36, OAM_VFLIP - dbsprite 1, 1, 0, 0, $36, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $36, OAM_XFLIP + dbsprite 0, 1, 0, 0, $36, OAM_YFLIP + dbsprite 1, 1, 0, 0, $36, OAM_XFLIP | OAM_YFLIP FrameBlock14: db 8 ; # dbsprite 2, 0, 0, 0, $28, 0 - dbsprite 3, 0, 0, 0, $28, OAM_HFLIP + dbsprite 3, 0, 0, 0, $28, OAM_XFLIP dbsprite 2, 1, 0, 0, $38, 0 - dbsprite 3, 1, 0, 0, $38, OAM_HFLIP + dbsprite 3, 1, 0, 0, $38, OAM_XFLIP dbsprite 4, 0, 0, 0, $36, 0 - dbsprite 5, 0, 0, 0, $36, OAM_HFLIP - dbsprite 4, 1, 0, 0, $36, OAM_VFLIP - dbsprite 5, 1, 0, 0, $36, OAM_HFLIP | OAM_VFLIP + dbsprite 5, 0, 0, 0, $36, OAM_XFLIP + dbsprite 4, 1, 0, 0, $36, OAM_YFLIP + dbsprite 5, 1, 0, 0, $36, OAM_XFLIP | OAM_YFLIP FrameBlock15: db 12 ; # dbsprite 0, 0, 0, 0, $28, 0 - dbsprite 1, 0, 0, 0, $28, OAM_HFLIP + dbsprite 1, 0, 0, 0, $28, OAM_XFLIP dbsprite 0, 1, 0, 0, $38, 0 - dbsprite 1, 1, 0, 0, $38, OAM_HFLIP + dbsprite 1, 1, 0, 0, $38, OAM_XFLIP dbsprite 2, 0, 0, 0, $29, 0 - dbsprite 3, 0, 0, 0, $29, OAM_HFLIP + dbsprite 3, 0, 0, 0, $29, OAM_XFLIP dbsprite 2, 1, 0, 0, $39, 0 - dbsprite 3, 1, 0, 0, $39, OAM_HFLIP + dbsprite 3, 1, 0, 0, $39, OAM_XFLIP dbsprite 4, 0, 0, 0, $28, 0 - dbsprite 5, 0, 0, 0, $28, OAM_HFLIP + dbsprite 5, 0, 0, 0, $28, OAM_XFLIP dbsprite 4, 1, 0, 0, $38, 0 - dbsprite 5, 1, 0, 0, $38, OAM_HFLIP + dbsprite 5, 1, 0, 0, $38, OAM_XFLIP FrameBlock16: db 8 ; # dbsprite 0, 0, 0, 0, $29, 0 - dbsprite 1, 0, 0, 0, $29, OAM_HFLIP + dbsprite 1, 0, 0, 0, $29, OAM_XFLIP dbsprite 0, 1, 0, 0, $39, 0 - dbsprite 1, 1, 0, 0, $39, OAM_HFLIP + dbsprite 1, 1, 0, 0, $39, OAM_XFLIP dbsprite 4, 0, 0, 0, $29, 0 - dbsprite 5, 0, 0, 0, $29, OAM_HFLIP + dbsprite 5, 0, 0, 0, $29, OAM_XFLIP dbsprite 4, 1, 0, 0, $39, 0 - dbsprite 5, 1, 0, 0, $39, OAM_HFLIP + dbsprite 5, 1, 0, 0, $39, OAM_XFLIP FrameBlock17: db 4 ; # @@ -379,73 +379,73 @@ FrameBlock17: FrameBlock18: db 1 ; # - dbsprite 0, 3, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 3, 0, 0, $45, OAM_XFLIP | OAM_YFLIP FrameBlock19: db 2 ; # dbsprite 1, 3, 0, 0, $45, 0 - dbsprite 1, 2, 0, 0, $46, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 2, 0, 0, $46, OAM_XFLIP | OAM_YFLIP FrameBlock1a: db 2 ; # - dbsprite 2, 2, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 2, 0, 0, $45, OAM_XFLIP | OAM_YFLIP dbsprite 2, 3, 0, 0, $46, 0 FrameBlock1b: db 2 ; # dbsprite 3, 2, 0, 0, $45, 0 - dbsprite 3, 1, 0, 0, $46, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 1, 0, 0, $46, OAM_XFLIP | OAM_YFLIP FrameBlock1c: db 2 ; # - dbsprite 4, 1, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 1, 0, 0, $45, OAM_XFLIP | OAM_YFLIP dbsprite 4, 2, 0, 0, $46, 0 FrameBlock1d: db 2 ; # dbsprite 5, 1, 0, 0, $45, 0 - dbsprite 5, 0, 0, 0, $46, OAM_HFLIP | OAM_VFLIP + dbsprite 5, 0, 0, 0, $46, OAM_XFLIP | OAM_YFLIP FrameBlock1e: db 2 ; # - dbsprite 6, 0, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 6, 0, 0, 0, $45, OAM_XFLIP | OAM_YFLIP dbsprite 6, 1, 0, 0, $46, 0 FrameBlock75: db 4 ; # dbsprite 0, 0, 0, 0, $43, 0 - dbsprite 1, 0, 0, 0, $43, OAM_HFLIP + dbsprite 1, 0, 0, 0, $43, OAM_XFLIP dbsprite 0, 1, 0, 0, $22, 0 - dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP FrameBlock1f: db 2 ; # dbsprite 0, 0, 0, 0, $03, 0 - dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + dbsprite 6, 0, 0, 0, $03, OAM_XFLIP FrameBlock20: db 6 ; # dbsprite 0, 0, 0, 0, $03, 0 - dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + dbsprite 6, 0, 0, 0, $03, OAM_XFLIP dbsprite 1, 1, 0, 0, $03, 0 - dbsprite 5, 1, 0, 0, $03, OAM_HFLIP + dbsprite 5, 1, 0, 0, $03, OAM_XFLIP dbsprite 0, 1, 0, 0, $13, 0 - dbsprite 6, 1, 0, 0, $13, OAM_HFLIP + dbsprite 6, 1, 0, 0, $13, OAM_XFLIP FrameBlock21: db 12 ; # dbsprite 0, 0, 0, 0, $03, 0 - dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + dbsprite 6, 0, 0, 0, $03, OAM_XFLIP dbsprite 1, 1, 0, 0, $03, 0 - dbsprite 5, 1, 0, 0, $03, OAM_HFLIP + dbsprite 5, 1, 0, 0, $03, OAM_XFLIP dbsprite 0, 1, 0, 0, $13, 0 - dbsprite 6, 1, 0, 0, $13, OAM_HFLIP + dbsprite 6, 1, 0, 0, $13, OAM_XFLIP dbsprite 2, 2, 0, 0, $03, 0 - dbsprite 4, 2, 0, 0, $03, OAM_HFLIP + dbsprite 4, 2, 0, 0, $03, OAM_XFLIP dbsprite 1, 2, 0, 0, $13, 0 - dbsprite 5, 2, 0, 0, $13, OAM_HFLIP + dbsprite 5, 2, 0, 0, $13, OAM_XFLIP dbsprite 0, 2, 0, 0, $03, 0 - dbsprite 6, 2, 0, 0, $03, OAM_HFLIP + dbsprite 6, 2, 0, 0, $03, OAM_XFLIP FrameBlock22: db 19 ; # @@ -459,15 +459,15 @@ FrameBlock22: dbsprite 2, 2, 0, 0, $03, 0 dbsprite 2, 3, 0, 0, $13, 0 dbsprite 3, 3, 0, 0, $03, 0 - dbsprite 4, 2, 0, 0, $03, OAM_HFLIP - dbsprite 4, 3, 0, 0, $13, OAM_HFLIP - dbsprite 5, 1, 0, 0, $03, OAM_HFLIP - dbsprite 5, 2, 0, 0, $13, OAM_HFLIP - dbsprite 5, 3, 0, 0, $03, OAM_HFLIP - dbsprite 6, 0, 0, 0, $03, OAM_HFLIP - dbsprite 6, 1, 0, 0, $13, OAM_HFLIP - dbsprite 6, 2, 0, 0, $03, OAM_HFLIP - dbsprite 6, 3, 0, 0, $13, OAM_HFLIP + dbsprite 4, 2, 0, 0, $03, OAM_XFLIP + dbsprite 4, 3, 0, 0, $13, OAM_XFLIP + dbsprite 5, 1, 0, 0, $03, OAM_XFLIP + dbsprite 5, 2, 0, 0, $13, OAM_XFLIP + dbsprite 5, 3, 0, 0, $03, OAM_XFLIP + dbsprite 6, 0, 0, 0, $03, OAM_XFLIP + dbsprite 6, 1, 0, 0, $13, OAM_XFLIP + dbsprite 6, 2, 0, 0, $03, OAM_XFLIP + dbsprite 6, 3, 0, 0, $13, OAM_XFLIP FrameBlock23: db 4 ; # @@ -499,24 +499,24 @@ FrameBlock25: FrameBlock26: db 4 ; # dbsprite 2, 0, 0, 0, $44, 0 - dbsprite 3, 0, 0, 0, $44, OAM_HFLIP - dbsprite 2, 1, 0, 0, $44, OAM_VFLIP - dbsprite 3, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $44, OAM_XFLIP + dbsprite 2, 1, 0, 0, $44, OAM_YFLIP + dbsprite 3, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP FrameBlock27: db 5 ; # dbsprite 1, 1, 0, 0, $44, 0 - dbsprite 2, 1, 0, 0, $44, OAM_HFLIP - dbsprite 1, 2, 0, 0, $44, OAM_VFLIP - dbsprite 2, 2, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $44, OAM_XFLIP + dbsprite 1, 2, 0, 0, $44, OAM_YFLIP + dbsprite 2, 2, 0, 0, $44, OAM_XFLIP | OAM_YFLIP dbsprite 3, 0, 0, 0, $47, 0 FrameBlock28: db 6 ; # dbsprite 0, 2, 0, 0, $44, 0 - dbsprite 1, 2, 0, 0, $44, OAM_HFLIP - dbsprite 0, 3, 0, 0, $44, OAM_VFLIP - dbsprite 1, 3, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 2, 0, 0, $44, OAM_XFLIP + dbsprite 0, 3, 0, 0, $44, OAM_YFLIP + dbsprite 1, 3, 0, 0, $44, OAM_XFLIP | OAM_YFLIP dbsprite 2, 1, 0, 0, $47, 0 dbsprite 2, 0, 6, 2, $47, 0 @@ -530,9 +530,9 @@ FrameBlock29: FrameBlock2a: db 4 ; # dbsprite 0, 0, 0, 0, $44, 0 - dbsprite 1, 0, 0, 0, $44, OAM_HFLIP - dbsprite 0, 1, 0, 0, $44, OAM_VFLIP - dbsprite 1, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $44, OAM_XFLIP + dbsprite 0, 1, 0, 0, $44, OAM_YFLIP + dbsprite 1, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP FrameBlock2b: db 2 ; # @@ -556,28 +556,28 @@ FrameBlock2d: FrameBlock2e: db 8 ; # - dbsprite 0, 0, 0, 0, $27, OAM_HFLIP - dbsprite 1, 0, 0, 0, $26, OAM_HFLIP - dbsprite 0, 1, 0, 0, $37, OAM_HFLIP - dbsprite 1, 1, 0, 0, $36, OAM_HFLIP - dbsprite 0, 2, 0, 0, $29, OAM_HFLIP - dbsprite 1, 2, 0, 0, $28, OAM_HFLIP - dbsprite 0, 3, 0, 0, $39, OAM_HFLIP - dbsprite 1, 3, 0, 0, $38, OAM_HFLIP + dbsprite 0, 0, 0, 0, $27, OAM_XFLIP + dbsprite 1, 0, 0, 0, $26, OAM_XFLIP + dbsprite 0, 1, 0, 0, $37, OAM_XFLIP + dbsprite 1, 1, 0, 0, $36, OAM_XFLIP + dbsprite 0, 2, 0, 0, $29, OAM_XFLIP + dbsprite 1, 2, 0, 0, $28, OAM_XFLIP + dbsprite 0, 3, 0, 0, $39, OAM_XFLIP + dbsprite 1, 3, 0, 0, $38, OAM_XFLIP FrameBlock2f: db 4 ; # dbsprite 0, 0, 0, 0, $0c, 0 dbsprite 1, 0, 0, 0, $0d, 0 - dbsprite 0, 1, 0, 0, $0c, OAM_VFLIP - dbsprite 1, 1, 0, 0, $0d, OAM_VFLIP + dbsprite 0, 1, 0, 0, $0c, OAM_YFLIP + dbsprite 1, 1, 0, 0, $0d, OAM_YFLIP FrameBlock30: db 4 ; # dbsprite 0, 0, 0, 0, $44, 0 - dbsprite 1, 0, 0, 0, $44, OAM_HFLIP - dbsprite 0, 1, 0, 0, $44, OAM_VFLIP - dbsprite 1, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $44, OAM_XFLIP + dbsprite 0, 1, 0, 0, $44, OAM_YFLIP + dbsprite 1, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP FrameBlock31: db 1 ; # @@ -587,34 +587,34 @@ FrameBlock32: db 7 ; # dbsprite 0, 0, 0, 0, $4d, 0 dbsprite 1, 0, 0, 0, $2f, 0 - dbsprite 2, 0, 0, 0, $4d, OAM_HFLIP + dbsprite 2, 0, 0, 0, $4d, OAM_XFLIP dbsprite 0, 1, 0, 0, $4e, 0 dbsprite 1, 1, 0, 0, $07, 0 - dbsprite 2, 1, 0, 0, $4e, OAM_HFLIP + dbsprite 2, 1, 0, 0, $4e, OAM_XFLIP dbsprite 1, 2, 0, 0, $3f, 0 FrameBlock33: db 7 ; # - dbsprite 1, 0, 0, 0, $3f, OAM_VFLIP - dbsprite 0, 1, 0, 0, $4e, OAM_VFLIP - dbsprite 1, 1, 0, 0, $07, OAM_VFLIP - dbsprite 2, 1, 0, 0, $4e, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 2, 0, 0, $4d, OAM_VFLIP - dbsprite 1, 2, 0, 0, $2f, OAM_VFLIP - dbsprite 2, 2, 0, 0, $4d, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $3f, OAM_YFLIP + dbsprite 0, 1, 0, 0, $4e, OAM_YFLIP + dbsprite 1, 1, 0, 0, $07, OAM_YFLIP + dbsprite 2, 1, 0, 0, $4e, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 2, 0, 0, $4d, OAM_YFLIP + dbsprite 1, 2, 0, 0, $2f, OAM_YFLIP + dbsprite 2, 2, 0, 0, $4d, OAM_XFLIP | OAM_YFLIP FrameBlock34: db 1 ; # - dbsprite 0, 20, 0, 0, $00, OAM_OBP1 + dbsprite 0, 20, 0, 0, $00, OAM_PAL1 FrameBlock35: db 6 ; # dbsprite 0, 0, 0, 0, $2a, 0 dbsprite 1, 0, 0, 0, $2b, 0 dbsprite 0, 1, 0, 0, $3a, 0 - dbsprite 0, 2, 0, 0, $3a, OAM_VFLIP - dbsprite 0, 3, 0, 0, $2a, OAM_VFLIP - dbsprite 1, 3, 0, 0, $2b, OAM_VFLIP + dbsprite 0, 2, 0, 0, $3a, OAM_YFLIP + dbsprite 0, 3, 0, 0, $2a, OAM_YFLIP + dbsprite 1, 3, 0, 0, $2b, OAM_YFLIP FrameBlock36: db 4 ; # @@ -625,10 +625,10 @@ FrameBlock36: FrameBlock37: db 4 ; # - dbsprite 0, 0, 0, 0, $01, OAM_BEHIND_BG | OAM_HFLIP - dbsprite 1, 0, 0, 0, $00, OAM_BEHIND_BG | OAM_HFLIP - dbsprite 0, 1, 0, 0, $11, OAM_BEHIND_BG | OAM_HFLIP - dbsprite 1, 1, 0, 0, $10, OAM_BEHIND_BG | OAM_HFLIP + dbsprite 0, 0, 0, 0, $01, OAM_PRIO | OAM_XFLIP + dbsprite 1, 0, 0, 0, $00, OAM_PRIO | OAM_XFLIP + dbsprite 0, 1, 0, 0, $11, OAM_PRIO | OAM_XFLIP + dbsprite 1, 1, 0, 0, $10, OAM_PRIO | OAM_XFLIP FrameBlock38: db 4 ; # @@ -639,41 +639,41 @@ FrameBlock38: FrameBlock39: db 4 ; # - dbsprite 0, 0, 0, 0, $0b, OAM_HFLIP - dbsprite 1, 0, 0, 0, $0a, OAM_HFLIP - dbsprite 0, 1, 0, 0, $1b, OAM_HFLIP - dbsprite 1, 1, 0, 0, $1a, OAM_HFLIP + dbsprite 0, 0, 0, 0, $0b, OAM_XFLIP + dbsprite 1, 0, 0, 0, $0a, OAM_XFLIP + dbsprite 0, 1, 0, 0, $1b, OAM_XFLIP + dbsprite 1, 1, 0, 0, $1a, OAM_XFLIP FrameBlock3a: db 4 ; # dbsprite 0, 4, 0, 0, $05, 0 - dbsprite 1, 4, 0, 0, $05, OAM_HFLIP + dbsprite 1, 4, 0, 0, $05, OAM_XFLIP dbsprite 0, 5, 0, 0, $15, 0 - dbsprite 1, 5, 0, 0, $15, OAM_HFLIP + dbsprite 1, 5, 0, 0, $15, OAM_XFLIP FrameBlock3b: db 5 ; # dbsprite 0, 3, 0, 0, $04, 0 - dbsprite 1, 3, 0, 0, $04, OAM_HFLIP + dbsprite 1, 3, 0, 0, $04, OAM_XFLIP dbsprite 0, 4, 0, 0, $14, 0 - dbsprite 1, 4, 0, 0, $14, OAM_HFLIP + dbsprite 1, 4, 0, 0, $14, OAM_XFLIP dbsprite 0, 5, 4, 0, $41, 0 FrameBlock3c: db 6 ; # dbsprite 0, 2, 0, 0, $05, 0 - dbsprite 1, 2, 0, 0, $05, OAM_HFLIP + dbsprite 1, 2, 0, 0, $05, OAM_XFLIP dbsprite 0, 3, 0, 0, $15, 0 - dbsprite 1, 3, 0, 0, $15, OAM_HFLIP + dbsprite 1, 3, 0, 0, $15, OAM_XFLIP dbsprite 0, 4, 4, 0, $42, 0 dbsprite 0, 5, 4, 0, $42, 0 FrameBlock3d: db 7 ; # dbsprite 0, 1, 0, 0, $04, 0 - dbsprite 1, 1, 0, 0, $04, OAM_HFLIP + dbsprite 1, 1, 0, 0, $04, OAM_XFLIP dbsprite 0, 2, 0, 0, $14, 0 - dbsprite 1, 2, 0, 0, $14, OAM_HFLIP + dbsprite 1, 2, 0, 0, $14, OAM_XFLIP dbsprite 0, 3, 4, 0, $41, 0 dbsprite 0, 4, 4, 0, $41, 0 dbsprite 0, 5, 4, 0, $41, 0 @@ -681,9 +681,9 @@ FrameBlock3d: FrameBlock3e: db 8 ; # dbsprite 0, 0, 0, 0, $05, 0 - dbsprite 1, 0, 0, 0, $05, OAM_HFLIP + dbsprite 1, 0, 0, 0, $05, OAM_XFLIP dbsprite 0, 1, 0, 0, $15, 0 - dbsprite 1, 1, 0, 0, $15, OAM_HFLIP + dbsprite 1, 1, 0, 0, $15, OAM_XFLIP dbsprite 0, 2, 4, 0, $42, 0 dbsprite 0, 3, 4, 0, $42, 0 dbsprite 0, 4, 4, 0, $42, 0 @@ -692,9 +692,9 @@ FrameBlock3e: FrameBlock3f: db 8 ; # dbsprite 0, 0, 0, 0, $04, 0 - dbsprite 1, 0, 0, 0, $04, OAM_HFLIP + dbsprite 1, 0, 0, 0, $04, OAM_XFLIP dbsprite 0, 1, 0, 0, $14, 0 - dbsprite 1, 1, 0, 0, $14, OAM_HFLIP + dbsprite 1, 1, 0, 0, $14, OAM_XFLIP dbsprite 0, 2, 4, 0, $41, 0 dbsprite 0, 3, 4, 0, $41, 0 dbsprite 0, 4, 4, 0, $41, 0 @@ -709,7 +709,7 @@ FrameBlock40: FrameBlock41: db 4 ; # dbsprite 0, 0, 0, 0, $06, 0 - dbsprite 1, 0, 0, 0, $06, OAM_HFLIP + dbsprite 1, 0, 0, 0, $06, OAM_XFLIP dbsprite 0, 1, 0, 0, $16, 0 dbsprite 1, 1, 0, 0, $17, 0 @@ -765,139 +765,139 @@ FrameBlock46: FrameBlock47: db 4 ; # dbsprite 0, 0, 0, 0, $43, 0 - dbsprite 1, 0, 0, 0, $43, OAM_HFLIP - dbsprite 0, 1, 0, 0, $43, OAM_VFLIP - dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $43, OAM_XFLIP + dbsprite 0, 1, 0, 0, $43, OAM_YFLIP + dbsprite 1, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP SmallBlackCircleFrameBlock: db 4 ; # dbsprite 1, 1, 0, 0, $33, 0 - dbsprite 2, 1, 0, 0, $33, OAM_HFLIP - dbsprite 1, 2, 0, 0, $33, OAM_VFLIP - dbsprite 2, 2, 0, 0, $33, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $33, OAM_XFLIP + dbsprite 1, 2, 0, 0, $33, OAM_YFLIP + dbsprite 2, 2, 0, 0, $33, OAM_XFLIP | OAM_YFLIP LargeBlackCircleFrameBlock: db 16 ; # dbsprite 0, 0, 0, 0, $22, 0 dbsprite 1, 0, 0, 0, $23, 0 - dbsprite 2, 0, 0, 0, $23, OAM_HFLIP - dbsprite 3, 0, 0, 0, $22, OAM_HFLIP + dbsprite 2, 0, 0, 0, $23, OAM_XFLIP + dbsprite 3, 0, 0, 0, $22, OAM_XFLIP dbsprite 0, 1, 0, 0, $32, 0 dbsprite 1, 1, 0, 0, $43, 0 - dbsprite 2, 1, 0, 0, $43, OAM_HFLIP - dbsprite 3, 1, 0, 0, $32, OAM_HFLIP - dbsprite 0, 2, 0, 0, $32, OAM_VFLIP - dbsprite 1, 2, 0, 0, $43, OAM_VFLIP - dbsprite 2, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 3, 0, 0, $22, OAM_VFLIP - dbsprite 1, 3, 0, 0, $23, OAM_VFLIP - dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 3, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $43, OAM_XFLIP + dbsprite 3, 1, 0, 0, $32, OAM_XFLIP + dbsprite 0, 2, 0, 0, $32, OAM_YFLIP + dbsprite 1, 2, 0, 0, $43, OAM_YFLIP + dbsprite 2, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 2, 0, 0, $32, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 3, 0, 0, $22, OAM_YFLIP + dbsprite 1, 3, 0, 0, $23, OAM_YFLIP + dbsprite 2, 3, 0, 0, $23, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 3, 0, 0, $22, OAM_XFLIP | OAM_YFLIP FrameBlock71: db 16 ; # dbsprite 0, 0, 0, 0, $22, 0 dbsprite 1, 0, 0, 0, $3b, 0 - dbsprite 2, 0, 0, 0, $23, OAM_HFLIP - dbsprite 3, 0, 0, 0, $22, OAM_HFLIP + dbsprite 2, 0, 0, 0, $23, OAM_XFLIP + dbsprite 3, 0, 0, 0, $22, OAM_XFLIP dbsprite 0, 1, 0, 0, $32, 0 dbsprite 1, 1, 0, 0, $43, 0 - dbsprite 2, 1, 0, 0, $43, OAM_HFLIP - dbsprite 3, 1, 0, 0, $32, OAM_HFLIP - dbsprite 0, 2, 0, 0, $32, OAM_VFLIP - dbsprite 1, 2, 0, 0, $43, OAM_VFLIP - dbsprite 2, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 3, 0, 0, $22, OAM_VFLIP - dbsprite 1, 3, 0, 0, $23, OAM_VFLIP - dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 3, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $43, OAM_XFLIP + dbsprite 3, 1, 0, 0, $32, OAM_XFLIP + dbsprite 0, 2, 0, 0, $32, OAM_YFLIP + dbsprite 1, 2, 0, 0, $43, OAM_YFLIP + dbsprite 2, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 2, 0, 0, $32, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 3, 0, 0, $22, OAM_YFLIP + dbsprite 1, 3, 0, 0, $23, OAM_YFLIP + dbsprite 2, 3, 0, 0, $23, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 3, 0, 0, $22, OAM_XFLIP | OAM_YFLIP FrameBlock72: db 12 ; # dbsprite 0, 0, 0, 0, $32, 0 dbsprite 1, 0, 0, 0, $43, 0 - dbsprite 2, 0, 0, 0, $43, OAM_HFLIP - dbsprite 3, 0, 0, 0, $32, OAM_HFLIP - dbsprite 0, 1, 0, 0, $32, OAM_VFLIP - dbsprite 1, 1, 0, 0, $43, OAM_VFLIP - dbsprite 2, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 1, 0, 0, $32, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 2, 0, 0, $22, OAM_VFLIP - dbsprite 1, 2, 0, 0, $23, OAM_VFLIP - dbsprite 2, 2, 0, 0, $23, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 2, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 0, $43, OAM_XFLIP + dbsprite 3, 0, 0, 0, $32, OAM_XFLIP + dbsprite 0, 1, 0, 0, $32, OAM_YFLIP + dbsprite 1, 1, 0, 0, $43, OAM_YFLIP + dbsprite 2, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 1, 0, 0, $32, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 2, 0, 0, $22, OAM_YFLIP + dbsprite 1, 2, 0, 0, $23, OAM_YFLIP + dbsprite 2, 2, 0, 0, $23, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 2, 0, 0, $22, OAM_XFLIP | OAM_YFLIP FrameBlock73: db 8 ; # - dbsprite 0, 0, 0, 0, $32, OAM_VFLIP - dbsprite 1, 0, 0, 0, $43, OAM_VFLIP - dbsprite 2, 0, 0, 0, $43, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 0, 0, 0, $32, OAM_HFLIP | OAM_VFLIP - dbsprite 0, 1, 0, 0, $22, OAM_VFLIP - dbsprite 1, 1, 0, 0, $23, OAM_VFLIP - dbsprite 2, 1, 0, 0, $23, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 1, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 0, 0, 0, $32, OAM_YFLIP + dbsprite 1, 0, 0, 0, $43, OAM_YFLIP + dbsprite 2, 0, 0, 0, $43, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 0, 0, 0, $32, OAM_XFLIP | OAM_YFLIP + dbsprite 0, 1, 0, 0, $22, OAM_YFLIP + dbsprite 1, 1, 0, 0, $23, OAM_YFLIP + dbsprite 2, 1, 0, 0, $23, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 1, 0, 0, $22, OAM_XFLIP | OAM_YFLIP FrameBlock74: db 4 ; # - dbsprite 0, 0, 0, 0, $22, OAM_VFLIP - dbsprite 1, 0, 0, 0, $23, OAM_VFLIP - dbsprite 2, 0, 0, 0, $23, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 0, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 0, 0, 0, $22, OAM_YFLIP + dbsprite 1, 0, 0, 0, $23, OAM_YFLIP + dbsprite 2, 0, 0, 0, $23, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 0, 0, 0, $22, OAM_XFLIP | OAM_YFLIP FrameBlock4a: db 4 ; # - dbsprite 3, 1, 0, 0, $4c, OAM_HFLIP + dbsprite 3, 1, 0, 0, $4c, OAM_XFLIP dbsprite 1, 4, 0, 0, $4b, 0 dbsprite 4, 6, 0, 0, $4c, 0 - dbsprite 6, 3, 0, 0, $4b, OAM_VFLIP + dbsprite 6, 3, 0, 0, $4b, OAM_YFLIP FrameBlock4b: db 4 ; # dbsprite 3, 0, 0, 0, $4c, 0 - dbsprite 0, 4, 0, 0, $4b, OAM_VFLIP - dbsprite 4, 7, 0, 0, $4c, OAM_HFLIP + dbsprite 0, 4, 0, 0, $4b, OAM_YFLIP + dbsprite 4, 7, 0, 0, $4c, OAM_XFLIP dbsprite 7, 3, 0, 0, $4b, 0 FrameBlock4c: db 4 ; # - dbsprite 1, 2, 0, 0, $4a, OAM_VFLIP + dbsprite 1, 2, 0, 0, $4a, OAM_YFLIP dbsprite 2, 6, 0, 0, $4a, 0 - dbsprite 6, 5, 0, 0, $4a, OAM_HFLIP - dbsprite 5, 1, 0, 0, $4a, OAM_HFLIP | OAM_VFLIP + dbsprite 6, 5, 0, 0, $4a, OAM_XFLIP + dbsprite 5, 1, 0, 0, $4a, OAM_XFLIP | OAM_YFLIP FrameBlock4d: db 4 ; # - dbsprite 0, 1, 0, 0, $4a, OAM_HFLIP - dbsprite 1, 7, 0, 0, $4a, OAM_HFLIP | OAM_VFLIP - dbsprite 7, 6, 0, 0, $4a, OAM_VFLIP + dbsprite 0, 1, 0, 0, $4a, OAM_XFLIP + dbsprite 1, 7, 0, 0, $4a, OAM_XFLIP | OAM_YFLIP + dbsprite 7, 6, 0, 0, $4a, OAM_YFLIP dbsprite 6, 0, 0, 0, $4a, 0 FrameBlock4e: db 8 ; # dbsprite 6, 0, 0, 0, $44, 0 - dbsprite 7, 0, 0, 0, $44, OAM_HFLIP - dbsprite 6, 1, 0, 0, $44, OAM_VFLIP - dbsprite 7, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 7, 0, 0, 0, $44, OAM_XFLIP + dbsprite 6, 1, 0, 0, $44, OAM_YFLIP + dbsprite 7, 1, 0, 0, $44, OAM_XFLIP | OAM_YFLIP dbsprite 1, 4, 2, 6, $44, 0 - dbsprite 2, 4, 2, 6, $44, OAM_HFLIP - dbsprite 1, 5, 2, 6, $44, OAM_VFLIP - dbsprite 2, 5, 2, 6, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 4, 2, 6, $44, OAM_XFLIP + dbsprite 1, 5, 2, 6, $44, OAM_YFLIP + dbsprite 2, 5, 2, 6, $44, OAM_XFLIP | OAM_YFLIP FrameBlock4f: db 12 ; # dbsprite 4, 1, 2, 6, $44, 0 - dbsprite 5, 1, 2, 6, $44, OAM_HFLIP - dbsprite 4, 2, 2, 6, $44, OAM_VFLIP - dbsprite 5, 2, 2, 6, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 5, 1, 2, 6, $44, OAM_XFLIP + dbsprite 4, 2, 2, 6, $44, OAM_YFLIP + dbsprite 5, 2, 2, 6, $44, OAM_XFLIP | OAM_YFLIP dbsprite 6, 0, 2, 6, $47, 0 dbsprite 7, 0, 0, 0, $47, 0 dbsprite 2, 3, 6, 2, $44, 0 - dbsprite 3, 3, 6, 2, $44, OAM_HFLIP - dbsprite 2, 4, 6, 2, $44, OAM_VFLIP - dbsprite 3, 4, 6, 2, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 3, 6, 2, $44, OAM_XFLIP + dbsprite 2, 4, 6, 2, $44, OAM_YFLIP + dbsprite 3, 4, 6, 2, $44, OAM_XFLIP | OAM_YFLIP dbsprite 1, 6, 0, 0, $47, 0 dbsprite 1, 5, 6, 2, $47, 0 @@ -914,14 +914,14 @@ FrameBlock50: FrameBlock51: db 8 ; # - dbsprite 0, 0, 0, 0, $35, OAM_HFLIP - dbsprite 0, 1, 0, 0, $35, OAM_VFLIP + dbsprite 0, 0, 0, 0, $35, OAM_XFLIP + dbsprite 0, 1, 0, 0, $35, OAM_YFLIP dbsprite 0, 2, 0, 0, $35, 0 - dbsprite 0, 3, 0, 0, $35, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 3, 0, 0, $35, OAM_XFLIP | OAM_YFLIP dbsprite 8, 0, 0, 0, $35, 0 - dbsprite 8, 1, 0, 0, $35, OAM_HFLIP | OAM_VFLIP - dbsprite 8, 2, 0, 0, $35, OAM_HFLIP - dbsprite 8, 3, 0, 0, $35, OAM_VFLIP + dbsprite 8, 1, 0, 0, $35, OAM_XFLIP | OAM_YFLIP + dbsprite 8, 2, 0, 0, $35, OAM_XFLIP + dbsprite 8, 3, 0, 0, $35, OAM_YFLIP FrameBlock52: db 4 ; # @@ -939,9 +939,9 @@ FrameBlock53: FrameBlock54: db 4 ; # dbsprite 0, 0, 0, 0, $0e, 0 - dbsprite 1, 0, 0, 0, $0e, OAM_HFLIP + dbsprite 1, 0, 0, 0, $0e, OAM_XFLIP dbsprite 0, 1, 0, 0, $0f, 0 - dbsprite 1, 1, 0, 0, $0f, OAM_HFLIP + dbsprite 1, 1, 0, 0, $0f, OAM_XFLIP FrameBlock55: db 3 ; # @@ -989,22 +989,22 @@ FrameBlock5a: dbsprite 0, 0, 0, 0, $24, 0 dbsprite 1, 0, 0, 0, $25, 0 dbsprite 0, 1, 0, 0, $34, 0 - dbsprite 2, 0, 0, 0, $25, OAM_HFLIP - dbsprite 3, 0, 0, 0, $24, OAM_HFLIP - dbsprite 3, 1, 0, 0, $34, OAM_HFLIP - dbsprite 0, 2, 0, 0, $34, OAM_VFLIP - dbsprite 0, 3, 0, 0, $24, OAM_VFLIP - dbsprite 1, 3, 0, 0, $25, OAM_VFLIP - dbsprite 3, 2, 0, 0, $34, OAM_HFLIP | OAM_VFLIP - dbsprite 2, 3, 0, 0, $25, OAM_HFLIP | OAM_VFLIP - dbsprite 3, 3, 0, 0, $24, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 0, $25, OAM_XFLIP + dbsprite 3, 0, 0, 0, $24, OAM_XFLIP + dbsprite 3, 1, 0, 0, $34, OAM_XFLIP + dbsprite 0, 2, 0, 0, $34, OAM_YFLIP + dbsprite 0, 3, 0, 0, $24, OAM_YFLIP + dbsprite 1, 3, 0, 0, $25, OAM_YFLIP + dbsprite 3, 2, 0, 0, $34, OAM_XFLIP | OAM_YFLIP + dbsprite 2, 3, 0, 0, $25, OAM_XFLIP | OAM_YFLIP + dbsprite 3, 3, 0, 0, $24, OAM_XFLIP | OAM_YFLIP FrameBlock5b: db 4 ; # dbsprite 0, 0, 0, 0, $43, 0 - dbsprite 1, 0, 0, 0, $43, OAM_HFLIP - dbsprite 0, 1, 0, 0, $43, OAM_VFLIP - dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $43, OAM_XFLIP + dbsprite 0, 1, 0, 0, $43, OAM_YFLIP + dbsprite 1, 1, 0, 0, $43, OAM_XFLIP | OAM_YFLIP FrameBlock5c: db 8 ; # @@ -1013,9 +1013,9 @@ FrameBlock5c: dbsprite 0, 3, 0, 0, $49, 0 dbsprite 2, 2, 0, 0, $49, 0 dbsprite 0, 1, 0, 0, $43, 0 - dbsprite 1, 1, 0, 0, $43, OAM_HFLIP - dbsprite 0, 2, 0, 0, $43, OAM_VFLIP - dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 1, 0, 0, $43, OAM_XFLIP + dbsprite 0, 2, 0, 0, $43, OAM_YFLIP + dbsprite 1, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP FrameBlock5d: db 11 ; # @@ -1023,13 +1023,13 @@ FrameBlock5d: dbsprite 0, 3, 2, 0, $49, 0 dbsprite 2, 2, 0, 4, $49, 0 dbsprite 0, 1, 0, 0, $43, 0 - dbsprite 1, 0, 0, 0, $43, OAM_HFLIP - dbsprite 0, 2, 0, 0, $43, OAM_VFLIP - dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $43, OAM_XFLIP + dbsprite 0, 2, 0, 0, $43, OAM_YFLIP + dbsprite 1, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP dbsprite 1, 0, 0, 4, $43, 0 - dbsprite 2, 0, 0, 4, $43, OAM_HFLIP - dbsprite 1, 1, 0, 4, $43, OAM_VFLIP - dbsprite 2, 1, 0, 4, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 4, $43, OAM_XFLIP + dbsprite 1, 1, 0, 4, $43, OAM_YFLIP + dbsprite 2, 1, 0, 4, $43, OAM_XFLIP | OAM_YFLIP FrameBlock5e: db 15 ; # @@ -1037,17 +1037,17 @@ FrameBlock5e: dbsprite 2, 1, 0, 0, $49, 0 dbsprite 0, 4, 0, 0, $49, 0 dbsprite 0, 1, 0, 0, $43, 0 - dbsprite 1, 1, 0, 0, $43, OAM_HFLIP - dbsprite 0, 2, 0, 0, $43, OAM_VFLIP - dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 1, 0, 0, $43, OAM_XFLIP + dbsprite 0, 2, 0, 0, $43, OAM_YFLIP + dbsprite 1, 2, 0, 0, $43, OAM_XFLIP | OAM_YFLIP dbsprite 2, 2, 0, 0, $43, 0 - dbsprite 3, 2, 0, 0, $43, OAM_HFLIP - dbsprite 2, 3, 0, 0, $43, OAM_VFLIP - dbsprite 3, 3, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $43, OAM_XFLIP + dbsprite 2, 3, 0, 0, $43, OAM_YFLIP + dbsprite 3, 3, 0, 0, $43, OAM_XFLIP | OAM_YFLIP dbsprite 1, 4, 0, 0, $43, 0 - dbsprite 2, 4, 0, 0, $43, OAM_HFLIP - dbsprite 1, 5, 0, 0, $43, OAM_VFLIP - dbsprite 2, 5, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 4, 0, 0, $43, OAM_XFLIP + dbsprite 1, 5, 0, 0, $43, OAM_YFLIP + dbsprite 2, 5, 0, 0, $43, OAM_XFLIP | OAM_YFLIP FrameBlock5f: db 4 ; # @@ -1140,9 +1140,9 @@ FrameBlock67: FrameBlock68: db 4 ; # dbsprite 0, 0, 0, 0, $03, 0 - dbsprite 1, 0, 0, 0, $03, OAM_HFLIP + dbsprite 1, 0, 0, 0, $03, OAM_XFLIP dbsprite 0, 1, 0, 0, $13, 0 - dbsprite 1, 1, 0, 0, $13, OAM_HFLIP + dbsprite 1, 1, 0, 0, $13, OAM_XFLIP FrameBlock69: db 1 ; # @@ -1151,35 +1151,35 @@ FrameBlock69: FrameBlock6a: db 8 ; # dbsprite 0, 0, 0, 0, $2e, 0 - dbsprite 6, 0, 0, 0, $2e, OAM_HFLIP - dbsprite 0, 6, 0, 0, $2e, OAM_VFLIP - dbsprite 6, 6, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP + dbsprite 6, 0, 0, 0, $2e, OAM_XFLIP + dbsprite 0, 6, 0, 0, $2e, OAM_YFLIP + dbsprite 6, 6, 0, 0, $2e, OAM_XFLIP | OAM_YFLIP dbsprite 3, 0, 0, 0, $2f, 0 - dbsprite 3, 6, 0, 0, $2f, OAM_VFLIP + dbsprite 3, 6, 0, 0, $2f, OAM_YFLIP dbsprite 0, 3, 0, 0, $3e, 0 - dbsprite 6, 3, 0, 0, $3e, OAM_HFLIP + dbsprite 6, 3, 0, 0, $3e, OAM_XFLIP FrameBlock6b: db 8 ; # dbsprite 0, 0, 0, 0, $2e, 0 - dbsprite 4, 0, 0, 0, $2e, OAM_HFLIP - dbsprite 0, 4, 0, 0, $2e, OAM_VFLIP - dbsprite 4, 4, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 0, 0, 0, $2e, OAM_XFLIP + dbsprite 0, 4, 0, 0, $2e, OAM_YFLIP + dbsprite 4, 4, 0, 0, $2e, OAM_XFLIP | OAM_YFLIP dbsprite 2, 0, 0, 0, $2f, 0 - dbsprite 2, 4, 0, 0, $2f, OAM_VFLIP + dbsprite 2, 4, 0, 0, $2f, OAM_YFLIP dbsprite 0, 2, 0, 0, $3e, 0 - dbsprite 4, 2, 0, 0, $3e, OAM_HFLIP + dbsprite 4, 2, 0, 0, $3e, OAM_XFLIP FrameBlock6c: db 8 ; # dbsprite 0, 0, 0, 0, $2e, 0 - dbsprite 2, 0, 0, 0, $2e, OAM_HFLIP - dbsprite 0, 2, 0, 0, $2e, OAM_VFLIP - dbsprite 2, 2, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 0, $2e, OAM_XFLIP + dbsprite 0, 2, 0, 0, $2e, OAM_YFLIP + dbsprite 2, 2, 0, 0, $2e, OAM_XFLIP | OAM_YFLIP dbsprite 1, 0, 0, 0, $2f, 0 - dbsprite 1, 2, 0, 0, $2f, OAM_VFLIP + dbsprite 1, 2, 0, 0, $2f, OAM_YFLIP dbsprite 0, 1, 0, 0, $3e, 0 - dbsprite 2, 1, 0, 0, $3e, OAM_HFLIP + dbsprite 2, 1, 0, 0, $3e, OAM_XFLIP FrameBlock6d: db 2 ; # @@ -1189,9 +1189,9 @@ FrameBlock6d: FrameBlock6e: db 4 ; # dbsprite 0, 0, 0, 0, $48, 0 - dbsprite 1, 0, 0, 0, $48, OAM_HFLIP + dbsprite 1, 0, 0, 0, $48, OAM_XFLIP dbsprite 0, 1, 0, 0, $12, 0 - dbsprite 1, 1, 0, 0, $12, OAM_HFLIP + dbsprite 1, 1, 0, 0, $12, OAM_XFLIP FrameBlock6f: db 4 ; # @@ -1202,10 +1202,10 @@ FrameBlock6f: FrameBlock70: db 4 ; # - dbsprite 0, 0, 0, 0, $07, OAM_HFLIP - dbsprite 1, 0, 0, 0, $4a, OAM_HFLIP - dbsprite 0, 1, 0, 0, $17, OAM_HFLIP - dbsprite 1, 1, 0, 0, $16, OAM_HFLIP + dbsprite 0, 0, 0, 0, $07, OAM_XFLIP + dbsprite 1, 0, 0, 0, $4a, OAM_XFLIP + dbsprite 0, 1, 0, 0, $17, OAM_XFLIP + dbsprite 1, 1, 0, 0, $16, OAM_XFLIP FrameBlock76: db 7 ; # @@ -1213,16 +1213,16 @@ FrameBlock76: dbsprite 1, 0, 0, 1, $2f, 0 dbsprite 3, 0, 0, 1, $2f, 0 dbsprite 0, 0, 0, 2, $2e, 0 - dbsprite 4, 0, 0, 2, $2e, OAM_HFLIP + dbsprite 4, 0, 0, 2, $2e, OAM_XFLIP dbsprite 0, 1, 0, 2, $3e, 0 - dbsprite 4, 1, 0, 2, $3e, OAM_HFLIP + dbsprite 4, 1, 0, 2, $3e, OAM_XFLIP FrameBlock77: db 4 ; # dbsprite 0, 0, 2, 0, $4b, 0 dbsprite 1, 0, 2, 0, $4c, 0 - dbsprite 0, 1, 0, 0, $4c, OAM_HFLIP | OAM_VFLIP - dbsprite 1, 1, 0, 0, $4b, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 1, 0, 0, $4c, OAM_XFLIP | OAM_YFLIP + dbsprite 1, 1, 0, 0, $4b, OAM_XFLIP | OAM_YFLIP FrameBlock78: db 1 ; # diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm index 54fd7ed0..1741f259 100644 --- a/data/sprites/facings.asm +++ b/data/sprites/facings.asm @@ -53,7 +53,7 @@ SpriteFacingAndAnimationTable: .FlippedOAM: ; y, x, attributes - db 0, 8, OAM_HFLIP ; top left - db 0, 0, OAM_HFLIP ; top right - db 8, 8, OAM_HFLIP | UNDER_GRASS ; bottom left - db 8, 0, OAM_HFLIP | UNDER_GRASS | FACING_END ; bottom right + db 0, 8, OAM_XFLIP ; top left + db 0, 0, OAM_XFLIP ; top right + db 8, 8, OAM_XFLIP | UNDER_GRASS ; bottom left + db 8, 0, OAM_XFLIP | UNDER_GRASS | FACING_END ; bottom right diff --git a/data/tilesets/ledge_tiles.asm b/data/tilesets/ledge_tiles.asm index db293800..8c5bff7f 100644 --- a/data/tilesets/ledge_tiles.asm +++ b/data/tilesets/ledge_tiles.asm @@ -1,11 +1,11 @@ LedgeTiles: ; player direction, tile player standing on, ledge tile, input required - db SPRITE_FACING_DOWN, $2C, $37, D_DOWN - db SPRITE_FACING_DOWN, $39, $36, D_DOWN - db SPRITE_FACING_DOWN, $39, $37, D_DOWN - db SPRITE_FACING_LEFT, $2C, $27, D_LEFT - db SPRITE_FACING_LEFT, $39, $27, D_LEFT - db SPRITE_FACING_RIGHT, $2C, $0D, D_RIGHT - db SPRITE_FACING_RIGHT, $2C, $1D, D_RIGHT - db SPRITE_FACING_RIGHT, $39, $0D, D_RIGHT + db SPRITE_FACING_DOWN, $2C, $37, PAD_DOWN + db SPRITE_FACING_DOWN, $39, $36, PAD_DOWN + db SPRITE_FACING_DOWN, $39, $37, PAD_DOWN + db SPRITE_FACING_LEFT, $2C, $27, PAD_LEFT + db SPRITE_FACING_LEFT, $39, $27, PAD_LEFT + db SPRITE_FACING_RIGHT, $2C, $0D, PAD_RIGHT + db SPRITE_FACING_RIGHT, $2C, $1D, PAD_RIGHT + db SPRITE_FACING_RIGHT, $39, $0D, PAD_RIGHT db -1 ; end diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index ce6c6d5d..6f255dd6 100644 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -80,13 +80,13 @@ DrawFrameBlock: ; toggle horizontal and vertical flip ld a, [hli] ; flags and a - ld b, OAM_VFLIP | OAM_HFLIP + ld b, OAM_YFLIP | OAM_XFLIP jr z, .storeFlags1 - cp OAM_HFLIP - ld b, OAM_VFLIP + cp OAM_XFLIP + ld b, OAM_YFLIP jr z, .storeFlags1 - cp OAM_VFLIP - ld b, OAM_HFLIP + cp OAM_YFLIP + ld b, OAM_XFLIP jr z, .storeFlags1 ld b, 0 .storeFlags1 @@ -114,13 +114,13 @@ DrawFrameBlock: ld [de], a ; store tile ID inc de ld a, [hli] - bit OAM_X_FLIP, a + bit B_OAM_XFLIP, a jr nz, .disableHorizontalFlip .enableHorizontalFlip - set OAM_X_FLIP, a + set B_OAM_XFLIP, a jr .storeFlags2 .disableHorizontalFlip - res OAM_X_FLIP, a + res B_OAM_XFLIP, a .storeFlags2 ld [de], a inc de @@ -726,7 +726,7 @@ DoBallTossSpecialEffects: dec b jr nz, .loop ld a, %00001000 - ldh [rNR10], a ; Channel 1 sweep register + ldh [rAUD1SWEEP], a ; Channel 1 sweep register ret .isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame ld a, [wSubAnimCounter] @@ -2408,7 +2408,7 @@ FallingObjects_UpdateOAMEntry: sub b ld [hli], a ; X inc hl - ld a, 1 << OAM_X_FLIP + ld a, OAM_XFLIP .next2 ld [hl], a ; attribute ret diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 114e715b..f9b45a88 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -18,7 +18,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: call LoadFontTilePatterns call LoadHudAndHpBarAndStatusTilePatterns ld hl, vBGMap0 - ld bc, BG_MAP_WIDTH * BG_MAP_HEIGHT + ld bc, TILEMAP_WIDTH * TILEMAP_HEIGHT .clearBackgroundLoop ld a, " " ld [hli], a @@ -2086,9 +2086,9 @@ DisplayBattleMenu:: inc hl ld a, $1 ld [hli], a ; wMaxMenuItem - ld [hl], D_RIGHT | A_BUTTON ; wMenuWatchedKeys + ld [hl], PAD_RIGHT | PAD_A ; wMenuWatchedKeys call HandleMenuInput - bit BIT_D_RIGHT, a + bit B_PAD_RIGHT, a jr nz, .rightColumn jr .AButtonPressed ; the A button was pressed .rightColumn ; put cursor in right column of menu @@ -2119,10 +2119,10 @@ DisplayBattleMenu:: inc hl ld a, $1 ld [hli], a ; wMaxMenuItem - ld a, D_LEFT | A_BUTTON + ld a, PAD_LEFT | PAD_A ld [hli], a ; wMenuWatchedKeys call HandleMenuInput - bit BIT_D_LEFT, a + bit B_PAD_LEFT, a jr nz, .leftColumn ; if left was pressed, jump ld a, [wCurrentMenuItem] add $2 ; if we're in the right column, the actual id is +2 @@ -2346,12 +2346,12 @@ PartyMenuOrRockOrRun: inc hl ld a, $2 ld [hli], a ; wMaxMenuItem - ld a, B_BUTTON | A_BUTTON + ld a, PAD_B | PAD_A ld [hli], a ; wMenuWatchedKeys xor a ld [hl], a ; wLastMenuItem call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .partyMonDeselected ; if B was pressed, jump ; A was pressed call PlaceUnfilledArrowMenuCursor @@ -2550,10 +2550,10 @@ MoveSelectionMenu: ld [hli], a ; wMaxMenuItem ld a, [wMoveMenuType] dec a - ld b, D_UP | D_DOWN | A_BUTTON + ld b, PAD_UP | PAD_DOWN | PAD_A jr z, .matchedkeyspicked dec a - ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON + ld b, PAD_UP | PAD_DOWN | PAD_A | PAD_B jr z, .matchedkeyspicked ld a, [wLinkState] cp LINK_STATE_BATTLING @@ -2561,9 +2561,9 @@ MoveSelectionMenu: ; Disable left, right, and START buttons in regular battles. ld a, [wStatusFlags7] bit BIT_TEST_BATTLE, a - ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT + ld b, PAD_UP | PAD_DOWN | PAD_A | PAD_B | PAD_SELECT jr z, .matchedkeyspicked - ld b, D_UP | D_DOWN | D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON | SELECT | START + ld b, PAD_UP | PAD_DOWN | PAD_LEFT | PAD_RIGHT | PAD_A | PAD_B | PAD_SELECT | PAD_START .matchedkeyspicked ld a, b ld [hli], a ; wMenuWatchedKeys @@ -2609,13 +2609,13 @@ SelectMenuItem: call HandleMenuInput ld hl, hUILayoutFlags res BIT_DOUBLE_SPACED_MENU, [hl] - bit BIT_D_UP, a + bit B_PAD_UP, a jp nz, SelectMenuItem_CursorUp - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jp nz, SelectMenuItem_CursorDown - bit BIT_SELECT, a + bit B_PAD_SELECT, a jp nz, SwapMovesInMenu - bit BIT_B_BUTTON, a + bit B_PAD_B, a push af xor a ld [wMenuItemToSwap], a @@ -6373,9 +6373,9 @@ LoadPlayerBackPic: ld de, vBackPic call InterlaceMergeSpriteBuffers ld a, $a - ld [MBC1SRamEnable], a + ld [rRAMG], a xor a - ld [MBC1SRamBank], a + ld [rRAMB], a ld hl, vSprites ld de, sSpriteBuffer1 ldh a, [hLoadedROMBank] @@ -6383,7 +6383,7 @@ LoadPlayerBackPic: ld c, 7 * 7 call CopyVideoData xor a - ld [MBC1SRamEnable], a + ld [rRAMG], a ld a, $31 ldh [hStartTileID], a hlcoord 1, 5 @@ -6784,7 +6784,7 @@ DetermineWildOpponent: bit BIT_DEBUG_MODE, a jr z, .notDebugMode ldh a, [hJoyHeld] - bit BIT_B_BUTTON, a ; disable wild encounters + bit B_PAD_B, a ; disable wild encounters ret nz .notDebugMode ld a, [wNumberOfNoRandomBattleStepsLeft] diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm index b6275e52..4b1eb452 100644 --- a/engine/battle/ghost_marowak_anim.asm +++ b/engine/battle/ghost_marowak_anim.asm @@ -74,7 +74,7 @@ CopyMonPicFromBGToSpriteVRAM: ld [hli], a ld a, d ld [hli], a - ld a, OAM_OBP1 + ld a, OAM_PAL1 ld [hli], a inc d dec c diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm index 61c11c26..2946338f 100644 --- a/engine/debug/debug_menu.asm +++ b/engine/debug/debug_menu.asm @@ -31,7 +31,7 @@ IF DEF(_DEBUG) ld a, TEXT_DELAY_MEDIUM ld [wOptions], a - ld a, A_BUTTON | B_BUTTON | START + ld a, PAD_A | PAD_B | PAD_START ld [wMenuWatchedKeys], a xor a ld [wMenuJoypadPollCount], a @@ -47,7 +47,7 @@ IF DEF(_DEBUG) ld [wMenuWatchMovingOutOfBounds], a call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, DisplayTitleScreen ld a, [wCurrentMenuItem] diff --git a/engine/events/black_out.asm b/engine/events/black_out.asm index 5b0459e2..ea8ca3bb 100644 --- a/engine/events/black_out.asm +++ b/engine/events/black_out.asm @@ -41,6 +41,6 @@ ResetStatusAndHalveMoneyOnBlackout:: set BIT_FLY_OR_DUNGEON_WARP, [hl] res BIT_FLY_WARP, [hl] set BIT_ESCAPE_WARP, [hl] - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a predef_jump HealParty diff --git a/engine/events/cinnabar_lab.asm b/engine/events/cinnabar_lab.asm index d8066fb8..23d057b3 100644 --- a/engine/events/cinnabar_lab.asm +++ b/engine/events/cinnabar_lab.asm @@ -3,7 +3,7 @@ GiveFossilToCinnabarLab:: set BIT_NO_TEXT_DELAY, [hl] xor a ld [wCurrentMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, [wFilteredBagItemsCount] dec a @@ -27,7 +27,7 @@ GiveFossilToCinnabarLab:: ld hl, wStatusFlags5 res BIT_NO_TEXT_DELAY, [hl] call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .cancelledGivingFossil ld hl, wFilteredBagItems ld a, [wCurrentMenuItem] diff --git a/engine/events/hidden_objects/bills_house_pc.asm b/engine/events/hidden_objects/bills_house_pc.asm index b4c0256d..3972e20c 100644 --- a/engine/events/hidden_objects/bills_house_pc.asm +++ b/engine/events/hidden_objects/bills_house_pc.asm @@ -73,7 +73,7 @@ BillsHousePokemonList:: ld [wMenuItemOffset], a ; not used ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 4 ld [wMaxMenuItem], a @@ -95,7 +95,7 @@ BillsHousePokemonList:: call PrintText call SaveScreenTilesToBuffer2 call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .cancel ld a, [wCurrentMenuItem] add EEVEE diff --git a/engine/events/hidden_objects/school_blackboard.asm b/engine/events/hidden_objects/school_blackboard.asm index 4839af37..4ac83953 100644 --- a/engine/events/hidden_objects/school_blackboard.asm +++ b/engine/events/hidden_objects/school_blackboard.asm @@ -15,7 +15,7 @@ LinkCableHelp:: ld [wMenuItemOffset], a ; not used ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 3 ld [wMaxMenuItem], a @@ -36,7 +36,7 @@ LinkCableHelp:: ld hl, LinkCableHelpText2 call PrintText call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .exit ld a, [wCurrentMenuItem] cp 3 ; pressed a on "STOP READING" @@ -99,7 +99,7 @@ ViridianSchoolBlackboard:: ld [wMenuItemOffset], a ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON + ld a, PAD_LEFT | PAD_RIGHT | PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 2 ld [wMaxMenuItem], a @@ -122,9 +122,9 @@ ViridianSchoolBlackboard:: ld hl, ViridianSchoolBlackboardText2 call PrintText call HandleMenuInput ; pressing up and down is handled in here - bit BIT_B_BUTTON, a ; pressed b + bit B_PAD_B, a ; pressed b jr nz, .exitBlackboard - bit BIT_D_RIGHT, a + bit B_PAD_RIGHT, a jr z, .didNotPressRight ; move cursor to right column ld a, 2 @@ -137,7 +137,7 @@ ViridianSchoolBlackboard:: ld [wMenuItemOffset], a jr .blackboardLoop .didNotPressRight - bit BIT_D_LEFT, a + bit B_PAD_LEFT, a jr z, .didNotPressLeftOrRight ; move cursor to left column ld a, 2 diff --git a/engine/events/pewter_guys.asm b/engine/events/pewter_guys.asm index 06bb60fb..029157e6 100644 --- a/engine/events/pewter_guys.asm +++ b/engine/events/pewter_guys.asm @@ -66,13 +66,13 @@ PewterMuseumGuyCoords: dw .right .down - db D_UP, D_UP, $ff + db PAD_UP, PAD_UP, $ff .up - db D_RIGHT, D_LEFT, $ff + db PAD_RIGHT, PAD_LEFT, $ff .left - db D_UP, D_RIGHT, $ff + db PAD_UP, PAD_RIGHT, $ff .right - db D_UP, D_LEFT, $ff + db PAD_UP, PAD_LEFT, $ff ; these are the five coordinates which trigger the gym guy and pointers to ; different movements for the player to make to get positioned before the @@ -91,12 +91,12 @@ PewterGymGuyCoords: dw .five .one - db D_LEFT, D_DOWN, D_DOWN, D_RIGHT, $ff + db PAD_LEFT, PAD_DOWN, PAD_DOWN, PAD_RIGHT, $ff .two - db D_LEFT, D_DOWN, D_RIGHT, D_LEFT, $ff + db PAD_LEFT, PAD_DOWN, PAD_RIGHT, PAD_LEFT, $ff .three - db D_LEFT, D_LEFT, D_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff + db PAD_LEFT, PAD_LEFT, PAD_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff .four - db D_LEFT, D_LEFT, D_UP, D_LEFT, $ff + db PAD_LEFT, PAD_LEFT, PAD_UP, PAD_LEFT, $ff .five - db D_LEFT, D_DOWN, D_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff + db PAD_LEFT, PAD_DOWN, PAD_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff diff --git a/engine/events/prize_menu.asm b/engine/events/prize_menu.asm index 0e78653b..c73d7ab8 100644 --- a/engine/events/prize_menu.asm +++ b/engine/events/prize_menu.asm @@ -13,7 +13,7 @@ CeladonPrizeMenu:: xor a ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, $03 ld [wMaxMenuItem], a @@ -31,7 +31,7 @@ CeladonPrizeMenu:: ld hl, WhichPrizeTextPtr call PrintText call HandleMenuInput ; menu choice handler - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .noChoice ld a, [wCurrentMenuItem] cp 3 ; "NO,THANKS" choice diff --git a/engine/events/vending_machine.asm b/engine/events/vending_machine.asm index 1530b994..bdbcd9bb 100644 --- a/engine/events/vending_machine.asm +++ b/engine/events/vending_machine.asm @@ -7,7 +7,7 @@ VendingMachineMenu:: xor a ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 3 ld [wMaxMenuItem], a @@ -31,7 +31,7 @@ VendingMachineMenu:: ld hl, wStatusFlags5 res BIT_NO_TEXT_DELAY, [hl] call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .notThirsty ld a, [wCurrentMenuItem] cp 3 ; chose Cancel? diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index 98f1b066..8a96c517 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -727,15 +727,15 @@ ItemUseSurfboard: .makePlayerMoveForward ld a, [wPlayerDirection] ; direction the player is going bit PLAYER_DIR_BIT_UP, a - ld b, D_UP + ld b, PAD_UP jr nz, .storeSimulatedButtonPress bit PLAYER_DIR_BIT_DOWN, a - ld b, D_DOWN + ld b, PAD_DOWN jr nz, .storeSimulatedButtonPress bit PLAYER_DIR_BIT_LEFT, a - ld b, D_LEFT + ld b, PAD_LEFT jr nz, .storeSimulatedButtonPress - ld b, D_RIGHT + ld b, PAD_RIGHT .storeSimulatedButtonPress ld a, b ld [wSimulatedJoypadStatesEnd], a diff --git a/engine/items/town_map.asm b/engine/items/town_map.asm index 18903294..227ee033 100644 --- a/engine/items/town_map.asm +++ b/engine/items/town_map.asm @@ -71,13 +71,13 @@ DisplayTownMap: call JoypadLowSensitivity ldh a, [hJoy5] ld b, a - and A_BUTTON | B_BUTTON | D_UP | D_DOWN + and PAD_A | PAD_B | PAD_UP | PAD_DOWN jr z, .inputLoop ld a, SFX_TINK call PlaySound - bit BIT_D_UP, b + bit B_PAD_UP, b jr nz, .pressedUp - bit BIT_D_DOWN, b + bit B_PAD_DOWN, b jr nz, .pressedDown xor a ld [wTownMapSpriteBlinkingEnabled], a @@ -194,15 +194,15 @@ LoadTownMap_Fly:: ldh a, [hJoy5] ld b, a pop hl - and A_BUTTON | B_BUTTON | D_UP | D_DOWN + and PAD_A | PAD_B | PAD_UP | PAD_DOWN jr z, .inputLoop - bit BIT_A_BUTTON, b + bit B_PAD_A, b jr nz, .pressedA ld a, SFX_TINK call PlaySound - bit BIT_D_UP, b + bit B_PAD_UP, b jr nz, .pressedUp - bit BIT_D_DOWN, b + bit B_PAD_DOWN, b jr nz, .pressedDown jr .pressedB .pressedA @@ -367,7 +367,7 @@ DrawPlayerOrBirdSprite: jr nz, .loop ld hl, wShadowOAM ld de, wShadowOAMBackup - ld bc, NUM_SPRITE_OAM_STRUCTS * 4 + ld bc, OAM_COUNT * 4 jp CopyData DisplayWildLocations: @@ -415,7 +415,7 @@ DisplayWildLocations: .done ld hl, wShadowOAM ld de, wShadowOAMBackup - ld bc, NUM_SPRITE_OAM_STRUCTS * 4 + ld bc, OAM_COUNT * 4 jp CopyData AreaUnknownText: @@ -511,7 +511,7 @@ WriteSymmetricMonPartySpriteOAM: ld [hli], a ; tile ld a, [wSymmetricSpriteOAMAttributes] ld [hli], a ; attributes - xor 1 << OAM_X_FLIP + xor OAM_XFLIP ld [wSymmetricSpriteOAMAttributes], a inc d ld a, 8 @@ -604,13 +604,13 @@ TownMapSpriteBlinkingAnimation:: ; show sprites when the counter reaches 50 ld hl, wShadowOAMBackup ld de, wShadowOAM - ld bc, (NUM_SPRITE_OAM_STRUCTS - 4) * 4 + ld bc, (OAM_COUNT - 4) * 4 call CopyData xor a jr .done .hideSprites ld hl, wShadowOAM - ld b, NUM_SPRITE_OAM_STRUCTS - 4 + ld b, OAM_COUNT - 4 ld de, $4 .hideSpritesLoop ld [hl], $a0 diff --git a/engine/joypad.asm b/engine/joypad.asm index 63b09a87..2cb0d8db 100644 --- a/engine/joypad.asm +++ b/engine/joypad.asm @@ -3,7 +3,7 @@ _Joypad:: ; hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput ldh a, [hJoyInput] - cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset + cp PAD_A + PAD_B + PAD_SELECT + PAD_START ; soft reset jp z, TrySoftReset ld b, a diff --git a/engine/link/cable_club.asm b/engine/link/cable_club.asm index 2bf36f18..872e9b9c 100644 --- a/engine/link/cable_club.asm +++ b/engine/link/cable_club.asm @@ -110,16 +110,16 @@ CableClub_DoBattleOrTradeAgain: call Delay3 xor a ldh [hSerialSendData], a - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a call DelayFrame xor a ldh [hSerialSendData], a - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a .skipSendingTwoZeroBytes call Delay3 - ld a, 1 << SERIAL + ld a, IE_SERIAL ldh [rIE], a ld hl, wSerialRandomNumberListBlock ld de, wSerialOtherGameboyRandomNumberListBlock @@ -140,7 +140,7 @@ CableClub_DoBattleOrTradeAgain: ld bc, 200 vc_hook Wireless_ExchangeBytes_patch_lists call Serial_ExchangeBytes - ld a, (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK) + ld a, IE_SERIAL | IE_TIMER | IE_VBLANK ldh [rIE], a ld a, SFX_STOP_ALL_MUSIC call PlaySound @@ -332,7 +332,7 @@ TradeCenter_SelectMon: ld [wMenuWatchMovingOutOfBounds], a inc a ld [wWhichTradeMonSelectionMenu], a - ld a, D_DOWN | D_LEFT | A_BUTTON + ld a, PAD_DOWN | PAD_LEFT | PAD_A ld [wMenuWatchedKeys], a ld a, [wEnemyPartyCount] ld [wMaxMenuItem], a @@ -348,7 +348,7 @@ TradeCenter_SelectMon: res BIT_DOUBLE_SPACED_MENU, [hl] and a jp z, .getNewInput - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr z, .enemyMonMenu_ANotPressed ; if A button pressed ld a, [wMaxMenuItem] @@ -367,7 +367,7 @@ TradeCenter_SelectMon: call TradeCenter_DisplayStats jp .getNewInput .enemyMonMenu_ANotPressed - bit BIT_D_LEFT, a + bit B_PAD_LEFT, a jr z, .enemyMonMenu_LeftNotPressed ; if Left pressed, switch back to the player mon menu xor a ; player mon menu @@ -387,14 +387,14 @@ TradeCenter_SelectMon: ld [wCurrentMenuItem], a jr .playerMonMenu .enemyMonMenu_LeftNotPressed - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jp z, .getNewInput jp .selectedCancelMenuItem ; jump if Down pressed .playerMonMenu xor a ; player mon menu ld [wWhichTradeMonSelectionMenu], a ld [wMenuWatchMovingOutOfBounds], a - ld a, D_DOWN | D_RIGHT | A_BUTTON + ld a, PAD_DOWN | PAD_RIGHT | PAD_A ld [wMenuWatchedKeys], a ld a, [wPartyCount] ld [wMaxMenuItem], a @@ -415,7 +415,7 @@ TradeCenter_SelectMon: jr nz, .playerMonMenu_SomethingPressed jp .getNewInput .playerMonMenu_SomethingPressed - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr z, .playerMonMenu_ANotPressed jp .chosePlayerMon ; jump if A button pressed ; unreachable code @@ -425,7 +425,7 @@ TradeCenter_SelectMon: call TradeCenter_DisplayStats jp .getNewInput .playerMonMenu_ANotPressed - bit BIT_D_RIGHT, a + bit B_PAD_RIGHT, a jr z, .playerMonMenu_RightNotPressed ; if Right pressed, switch to the enemy mon menu ld a, $1 ; enemy mon menu @@ -447,7 +447,7 @@ TradeCenter_SelectMon: .notPastLastEnemyMon jp .enemyMonMenu .playerMonMenu_RightNotPressed - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jr z, .getNewInput jp .selectedCancelMenuItem ; jump if Down pressed .getNewInput @@ -484,14 +484,14 @@ TradeCenter_SelectMon: .selectStatsMenuItem ld a, " " ldcoord_a 11, 16 - ld a, D_RIGHT | B_BUTTON | A_BUTTON + ld a, PAD_RIGHT | PAD_B | PAD_A ld [wMenuWatchedKeys], a ld a, 1 ld [wTopMenuItemX], a call HandleMenuInput - bit BIT_D_RIGHT, a + bit B_PAD_RIGHT, a jr nz, .selectTradeMenuItem - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr z, .displayPlayerMonStats .cancelPlayerMonChoice pop af @@ -501,14 +501,14 @@ TradeCenter_SelectMon: .selectTradeMenuItem ld a, " " ldcoord_a 1, 16 - ld a, D_LEFT | B_BUTTON | A_BUTTON + ld a, PAD_LEFT | PAD_B | PAD_A ld [wMenuWatchedKeys], a ld a, 11 ld [wTopMenuItemX], a call HandleMenuInput - bit BIT_D_LEFT, a + bit B_PAD_LEFT, a jr nz, .selectStatsMenuItem - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .cancelPlayerMonChoice jr .choseTrade .displayPlayerMonStats @@ -557,9 +557,9 @@ TradeCenter_SelectMon: ldh a, [hJoy5] and a ; pressed anything? jr z, .cancelMenuItem_JoypadLoop - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr nz, .cancelMenuItem_APressed - bit BIT_D_UP, a + bit B_PAD_UP, a jr z, .cancelMenuItem_JoypadLoop ; if Up pressed ld a, " " diff --git a/engine/link/cable_club_npc.asm b/engine/link/cable_club_npc.asm index d88538b0..19e59eca 100644 --- a/engine/link/cable_club_npc.asm +++ b/engine/link/cable_club_npc.asm @@ -26,7 +26,7 @@ CableClubNPC:: ldh [rSB], a xor a ldh [hSerialReceiveData], a - ld a, START_TRANSFER_EXTERNAL_CLOCK + ld a, SC_START | SC_EXTERNAL ; This vc_hook causes the Virtual Console to set [hSerialConnectionStatus] to ; USING_INTERNAL_CLOCK, which allows the player to proceed past the link ; receptionist's "Please wait." It assumes that hSerialConnectionStatus is at @@ -43,7 +43,7 @@ CableClubNPC:: jr z, .failedToEstablishConnection ld a, ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK ldh [rSB], a - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a call DelayFrame jr .establishConnectionLoop @@ -158,6 +158,6 @@ CloseLinkConnection: ldh [rSB], a xor a ldh [hSerialReceiveData], a - ld a, START_TRANSFER_EXTERNAL_CLOCK + ld a, SC_START | SC_EXTERNAL ldh [rSC], a ret diff --git a/engine/menus/draw_start_menu.asm b/engine/menus/draw_start_menu.asm index c5b85952..7a048528 100644 --- a/engine/menus/draw_start_menu.asm +++ b/engine/menus/draw_start_menu.asm @@ -12,7 +12,7 @@ DrawStartMenu:: ld c, $08 .drawTextBoxBorder call TextBoxBorder - ld a, D_DOWN | D_UP | START | B_BUTTON | A_BUTTON + ld a, PAD_DOWN | PAD_UP | PAD_START | PAD_B | PAD_A ld [wMenuWatchedKeys], a ld a, $02 ld [wTopMenuItemY], a ; Y position of first menu choice diff --git a/engine/menus/league_pc.asm b/engine/menus/league_pc.asm index 03b1de6d..c8a8972f 100644 --- a/engine/menus/league_pc.asm +++ b/engine/menus/league_pc.asm @@ -57,7 +57,7 @@ LeaguePCShowTeam: call LeaguePCShowMon call WaitForTextScrollButtonPress ldh a, [hJoyHeld] - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .exit ld hl, wHallOfFame + HOF_MON ld de, wHallOfFame diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm index 4b430f6a..44219b14 100644 --- a/engine/menus/main_menu.asm +++ b/engine/menus/main_menu.asm @@ -61,12 +61,12 @@ MainMenu: ld [wTopMenuItemX], a inc a ld [wTopMenuItemY], a - ld a, A_BUTTON | B_BUTTON | START + ld a, PAD_A | PAD_B | PAD_START ld [wMenuWatchedKeys], a ld a, [wSaveFileStatus] ld [wMaxMenuItem], a call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, DisplayTitleScreen ; if so, go back to the title screen ld c, 20 call DelayFrames @@ -99,9 +99,9 @@ MainMenu: ldh [hJoyHeld], a call Joypad ldh a, [hJoyHeld] - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr nz, .pressedA - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, .mainMenuLoop jr .inputLoop .pressedA @@ -166,7 +166,7 @@ LinkMenu: ld a, 2 ld [hli], a ASSERT wMaxMenuItem + 1 == wMenuWatchedKeys - ASSERT 2 + 1 == A_BUTTON | B_BUTTON + ASSERT 2 + 1 == PAD_A | PAD_B inc a ld [hli], a ASSERT wMenuWatchedKeys + 1 == wLastMenuItem @@ -174,7 +174,7 @@ LinkMenu: ld [hl], a .waitForInputLoop call HandleMenuInput - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B add a add a ld b, a @@ -224,14 +224,14 @@ LinkMenu: jr nz, .skipStartingTransfer call DelayFrame call DelayFrame - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a .skipStartingTransfer ld b, " " ld c, " " ld d, "▷" ld a, [wLinkMenuSelectionSendBuffer] - and B_BUTTON << 2 ; was B button pressed? + and PAD_B << 2 ; was B button pressed? jr nz, .updateCursorPosition ; A button was pressed ld a, [wCurrentMenuItem] @@ -254,7 +254,7 @@ LinkMenu: call DelayFrames call LoadScreenTilesFromBuffer1 ld a, [wLinkMenuSelectionSendBuffer] - and B_BUTTON << 2 ; was B button pressed? + and PAD_B << 2 ; was B button pressed? jr nz, .choseCancel ; cancel if B pressed ld a, [wCurrentMenuItem] cp $2 @@ -487,13 +487,13 @@ DisplayOptionMenu: call JoypadLowSensitivity ldh a, [hJoy5] ld b, a - and A_BUTTON | B_BUTTON | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ; any key besides select pressed? + and PAD_A | PAD_B | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ; any key besides select pressed? jr z, .getJoypadStateLoop - bit BIT_B_BUTTON, b + bit B_PAD_B, b jr nz, .exitMenu - bit BIT_START, b + bit B_PAD_START, b jr nz, .exitMenu - bit BIT_A_BUTTON, b + bit B_PAD_A, b jr z, .checkDirectionKeys ld a, [wTopMenuItemY] cp 16 ; is the cursor on Cancel? @@ -508,9 +508,9 @@ DisplayOptionMenu: jp .loop .checkDirectionKeys ld a, [wTopMenuItemY] - bit BIT_D_DOWN, b + bit B_PAD_DOWN, b jr nz, .downPressed - bit BIT_D_UP, b + bit B_PAD_UP, b jr nz, .upPressed cp 8 ; cursor in Battle Animation section? jr z, .cursorInBattleAnimation @@ -519,7 +519,7 @@ DisplayOptionMenu: cp 16 ; cursor on Cancel? jr z, .loop .cursorInTextSpeed - bit BIT_D_LEFT, b + bit B_PAD_LEFT, b jp nz, .pressedLeftInTextSpeed jp .pressedRightInTextSpeed .downPressed @@ -699,11 +699,11 @@ CheckForPlayerNameInSRAM: ; Check if the player name data in SRAM has a string terminator character ; (indicating that a name may have been saved there) and return whether it does ; in carry. - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld b, NAME_LENGTH ld hl, sPlayerName .loop @@ -714,13 +714,13 @@ CheckForPlayerNameInSRAM: jr nz, .loop ; not found xor a - ld [MBC1SRamEnable], a - ld [MBC1SRamBankingMode], a + ld [rRAMG], a + ld [rBMODE], a and a ret .found xor a - ld [MBC1SRamEnable], a - ld [MBC1SRamBankingMode], a + ld [rRAMG], a + ld [rBMODE], a scf ret diff --git a/engine/menus/pc.asm b/engine/menus/pc.asm index 33dd3c2c..b4571ac3 100644 --- a/engine/menus/pc.asm +++ b/engine/menus/pc.asm @@ -14,7 +14,7 @@ PCMainMenu: ld hl, wMiscFlags set BIT_NO_MENU_BUTTON_SOUND, [hl] call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, LogOff ld a, [wMaxMenuItem] cp 2 diff --git a/engine/menus/players_pc.asm b/engine/menus/players_pc.asm index 402275b5..f2b7770b 100644 --- a/engine/menus/players_pc.asm +++ b/engine/menus/players_pc.asm @@ -39,7 +39,7 @@ PlayerPCMenu: inc hl ld a, 3 ld [hli], a ; wMaxMenuItem - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [hli], a ; wMenuWatchedKeys xor a ld [hl], a @@ -50,7 +50,7 @@ PlayerPCMenu: ld hl, WhatDoYouWantText call PrintText call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, ExitPlayerPC call PlaceUnfilledArrowMenuCursor ld a, [wCurrentMenuItem] diff --git a/engine/menus/pokedex.asm b/engine/menus/pokedex.asm index 7710815b..1f58fd68 100644 --- a/engine/menus/pokedex.asm +++ b/engine/menus/pokedex.asm @@ -27,7 +27,7 @@ ShowPokedexMenu: inc hl ld a, 6 ld [hli], a ; max menu item ID - ld [hl], D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON + ld [hl], PAD_LEFT | PAD_RIGHT | PAD_B | PAD_A call HandlePokedexListMenu jr c, .goToSideMenu ; if the player chose a pokemon from the list .exitPokedex @@ -88,14 +88,14 @@ HandlePokedexSideMenu: inc hl ld a, 3 ld [hli], a ; max menu item ID - ;ld a, A_BUTTON | B_BUTTON + ;ld a, PAD_A | PAD_B ld [hli], a ; menu watched keys (A button and B button) xor a ld [hli], a ; old menu item ID ld [wMenuWatchMovingOutOfBounds], a .handleMenuInput call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a ld b, 2 jr nz, .buttonBPressed ld a, [wCurrentMenuItem] @@ -284,10 +284,10 @@ HandlePokedexListMenu: call Delay3 call GBPalNormal call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, .buttonBPressed .checkIfUpPressed - bit BIT_D_UP, a + bit B_PAD_UP, a jr z, .checkIfDownPressed .upPressed ; scroll up one row ld a, [wListScrollOffset] @@ -297,7 +297,7 @@ HandlePokedexListMenu: ld [wListScrollOffset], a jp .loop .checkIfDownPressed - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jr z, .checkIfRightPressed .downPressed ; scroll down one row ld a, [wDexMaxSeenMon] @@ -312,7 +312,7 @@ HandlePokedexListMenu: ld [wListScrollOffset], a jp .loop .checkIfRightPressed - bit BIT_D_RIGHT, a + bit B_PAD_RIGHT, a jr z, .checkIfLeftPressed .rightPressed ; scroll down 7 rows ld a, [wDexMaxSeenMon] @@ -330,7 +330,7 @@ HandlePokedexListMenu: ld [wListScrollOffset], a jp .loop .checkIfLeftPressed ; scroll up 7 rows - bit BIT_D_LEFT, a + bit B_PAD_LEFT, a jr z, .buttonAPressed .leftPressed ld a, [wListScrollOffset] @@ -400,7 +400,7 @@ ShowPokedexDataInternal: ld hl, wStatusFlags2 set BIT_NO_AUDIO_FADE_OUT, [hl] ld a, $33 ; 3/7 volume - ldh [rNR50], a + ldh [rAUDVOL], a call GBPalWhiteOut ; zero all palettes call ClearScreen ld a, [wPokedexNum] @@ -574,7 +574,7 @@ ShowPokedexDataInternal: .waitForButtonPress call JoypadLowSensitivity ldh a, [hJoy5] - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B jr z, .waitForButtonPress pop af ldh [hTileAnimations], a @@ -586,7 +586,7 @@ ShowPokedexDataInternal: ld hl, wStatusFlags2 res BIT_NO_AUDIO_FADE_OUT, [hl] ld a, $77 ; max volume - ldh [rNR50], a + ldh [rAUDVOL], a ret HeightWeightText: diff --git a/engine/menus/save.asm b/engine/menus/save.asm index eeb4b9e8..fba1dc53 100644 --- a/engine/menus/save.asm +++ b/engine/menus/save.asm @@ -31,11 +31,11 @@ FileDataDestroyedText: text_end LoadSAV0: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ; This vc_hook does not have to be in any particular location. ; It is defined here because it refers to the same labels as the two lines below. vc_hook Unknown_save_limit @@ -81,11 +81,11 @@ LoadSAV0: jp SAVGoodChecksum LoadSAV1: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld hl, sGameData ld bc, sGameDataEnd - sGameData call SAVCheckSum @@ -101,11 +101,11 @@ LoadSAV1: jp SAVGoodChecksum LoadSAV2: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld hl, sGameData ld bc, sGameDataEnd - sGameData call SAVCheckSum @@ -129,8 +129,8 @@ SAVBadCheckSum: SAVGoodChecksum: ld a, $0 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret LoadSAVIgnoreBadCheckSum: @@ -198,11 +198,11 @@ OlderFileWillBeErasedText: text_end SaveSAVtoSRAM0: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld hl, wPlayerName ld de, sPlayerName ld bc, NAME_LENGTH @@ -226,17 +226,17 @@ SaveSAVtoSRAM0: call SAVCheckSum ld [sMainDataCheckSum], a xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret SaveSAVtoSRAM1: ; stored pokémon - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld hl, wBoxDataStart ld de, sCurBoxData ld bc, wBoxDataEnd - wBoxDataStart @@ -246,16 +246,16 @@ SaveSAVtoSRAM1: call SAVCheckSum ld [sMainDataCheckSum], a xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret SaveSAVtoSRAM2: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld hl, wPartyDataStart ld de, sPartyData ld bc, wPartyDataEnd - wPartyDataStart @@ -269,8 +269,8 @@ SaveSAVtoSRAM2: call SAVCheckSum ld [sMainDataCheckSum], a xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret SaveSAVtoSRAM:: @@ -358,7 +358,7 @@ ChangeBox:: call HandleMenuInput ld hl, hUILayoutFlags res BIT_DOUBLE_SPACED_MENU, [hl] - bit BIT_B_BUTTON, a + bit B_PAD_B, a ret nz call GetBoxSRAMLocation ld e, l @@ -394,12 +394,12 @@ WhenYouChangeBoxText: CopyBoxToOrFromSRAM: ; copy an entire box from hl to de with b as the SRAM bank push hl - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a + ld [rBMODE], a ld a, b - ld [MBC1SRamBank], a + ld [rRAMB], a ld bc, wBoxDataEnd - wBoxDataStart call CopyData pop hl @@ -416,14 +416,14 @@ CopyBoxToOrFromSRAM: ld [sBank2AllBoxesChecksum], a ; sBank3AllBoxesChecksum call CalcIndividualBoxCheckSums xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret DisplayChangeBoxMenu: xor a ldh [hAutoBGTransferEnabled], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 11 ld [wMaxMenuItem], a @@ -515,19 +515,19 @@ BoxNoText: EmptyAllSRAMBoxes: ; marks all boxes in SRAM as empty (initialisation for the first time the ; player changes the box) - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a + ld [rBMODE], a ld a, 2 - ld [MBC1SRamBank], a + ld [rRAMB], a call EmptySRAMBoxesInBank ld a, 3 - ld [MBC1SRamBank], a + ld [rRAMB], a call EmptySRAMBoxesInBank xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret EmptySRAMBoxesInBank: @@ -561,19 +561,19 @@ EmptySRAMBox: GetMonCountsForAllBoxes: ld hl, wBoxMonCounts push hl - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a + ld [rBMODE], a ld a, $2 - ld [MBC1SRamBank], a + ld [rRAMB], a call GetMonCountsForBoxesInBank ld a, $3 - ld [MBC1SRamBank], a + ld [rRAMB], a call GetMonCountsForBoxesInBank xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a pop hl ; copy the count for the current box from WRAM @@ -607,10 +607,10 @@ SAVCheckRandomID: ; and the two random numbers generated at game beginning ; (which are stored at wPlayerID)s ld a, $0a - ld [MBC1SRamEnable], a + ld [rRAMG], a ld a, $01 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamBank], a + ld [rBMODE], a + ld [rRAMB], a ld a, [sPlayerName] and a jr z, .next @@ -632,8 +632,8 @@ SAVCheckRandomID: cp h .next ld a, $00 - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret SaveHallOfFameTeams: @@ -672,23 +672,23 @@ LoadHallOfFameTeams: ; fallthrough HallOfFame_Copy: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a + ld [rBMODE], a xor a - ld [MBC1SRamBank], a + ld [rRAMB], a call CopyData xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret ClearSAV: - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a ld a, $1 - ld [MBC1SRamBankingMode], a + ld [rBMODE], a xor a call PadSRAM_FF ld a, $1 @@ -698,12 +698,12 @@ ClearSAV: ld a, $3 call PadSRAM_FF xor a - ld [MBC1SRamBankingMode], a - ld [MBC1SRamEnable], a + ld [rBMODE], a + ld [rRAMG], a ret PadSRAM_FF: - ld [MBC1SRamBank], a + ld [rRAMB], a ld hl, STARTOF(SRAM) ld bc, SIZEOF(SRAM) ld a, $ff diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm index a45dfc79..65f0b26e 100644 --- a/engine/menus/start_sub_menus.asm +++ b/engine/menus/start_sub_menus.asm @@ -57,7 +57,7 @@ StartMenu_Pokemon:: inc hl ld a, b ld [hli], a ; max menu item ID - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [hli], a ; menu watched keys xor a ld [hl], a @@ -65,7 +65,7 @@ StartMenu_Pokemon:: push af call LoadScreenTilesFromBuffer1 ; restore saved screen pop af - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, .loop ; if the B button wasn't pressed ld a, [wMaxMenuItem] @@ -354,13 +354,13 @@ StartMenu_Item:: inc hl inc a ; a = 1 ld [hli], a ; max menu item ID - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [hli], a ; menu watched keys xor a ld [hl], a ; old menu item id call HandleMenuInput call PlaceUnfilledArrowMenuCursor - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr z, .useOrTossItem jp ItemMenuLoop .useOrTossItem ; if the player made the choice to use or toss the item diff --git a/engine/menus/text_box.asm b/engine/menus/text_box.asm index c21f8e6f..076b395f 100644 --- a/engine/menus/text_box.asm +++ b/engine/menus/text_box.asm @@ -157,7 +157,7 @@ DoBuySellQuitMenu: ld a, BUY_SELL_QUIT_MENU_TEMPLATE ld [wTextBoxID], a call DisplayTextBoxID - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, $2 ld [wMaxMenuItem], a @@ -174,9 +174,9 @@ DoBuySellQuitMenu: ld [wStatusFlags5], a call HandleMenuInput call PlaceUnfilledArrowMenuCursor - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr nz, .pressedA - bit BIT_B_BUTTON, a ; always true since only A/B are watched + bit B_PAD_B, a ; always true since only A/B are watched jr z, .pressedA ld a, CANCELLED_MENU ld [wMenuExitMethod], a @@ -214,7 +214,7 @@ DisplayTwoOptionMenu: ld [wChosenMenuItem], a ld [wMenuExitMethod], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, $1 ld [wMaxMenuItem], a @@ -296,7 +296,7 @@ DisplayTwoOptionMenu: pop hl .noYesMenuInputLoop call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .noYesMenuInputLoop ; try again if B was not pressed pop af pop hl @@ -309,7 +309,7 @@ DisplayTwoOptionMenu: ld [wTwoOptionMenuID], a call HandleMenuInput pop hl - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .choseSecondMenuItem ; automatically choose the second option if B is pressed .pressedAButton ld a, [wCurrentMenuItem] diff --git a/engine/movie/evolution.asm b/engine/movie/evolution.asm index 69463bfa..4258b94d 100644 --- a/engine/movie/evolution.asm +++ b/engine/movie/evolution.asm @@ -145,7 +145,7 @@ Evolution_CheckForCancel: call JoypadLowSensitivity ldh a, [hJoy5] pop bc - and B_BUTTON + and PAD_B jr nz, .pressedB .notAllowedToCancel dec c diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm index 231f3369..236cf516 100644 --- a/engine/movie/hall_of_fame.asm +++ b/engine/movie/hall_of_fame.asm @@ -12,7 +12,7 @@ AnimateHallOfFame: call FillMemory call EnableLCD ld hl, rLCDC - set rLCDC_BG_TILEMAP, [hl] + set B_LCDC_BG_MAP, [hl] xor a ld hl, wHallOfFame ld bc, HOF_TEAM @@ -88,7 +88,7 @@ AnimateHallOfFame: xor a ldh [hWY], a ld hl, rLCDC - res rLCDC_BG_TILEMAP, [hl] + res B_LCDC_BG_MAP, [hl] ret HallOfFameText: diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm index facbfbaf..00316018 100644 --- a/engine/movie/intro.asm +++ b/engine/movie/intro.asm @@ -92,7 +92,7 @@ PlayIntroScene: ; hip ld a, SFX_INTRO_HIP call PlaySound - ld a, (FightIntroFrontMon2 - FightIntroFrontMon) / LEN_2BPP_TILE + ld a, (FightIntroFrontMon2 - FightIntroFrontMon) / TILE_SIZE ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation3 call AnimateIntroNidorino @@ -124,7 +124,7 @@ PlayIntroScene: call CheckForUserInterruption ret c - ld a, (FightIntroFrontMon2 - FightIntroFrontMon) / LEN_2BPP_TILE + ld a, (FightIntroFrontMon2 - FightIntroFrontMon) / TILE_SIZE ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation6 call AnimateIntroNidorino @@ -135,7 +135,7 @@ PlayIntroScene: ; lunge ld a, SFX_INTRO_LUNGE call PlaySound - ld a, (FightIntroFrontMon3 - FightIntroFrontMon) / LEN_2BPP_TILE + ld a, (FightIntroFrontMon3 - FightIntroFrontMon) / TILE_SIZE ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation7 jp AnimateIntroNidorino @@ -192,7 +192,7 @@ InitIntroNidorinoOAM: ld [hli], a ; X ld a, d ld [hli], a ; tile - ld a, OAM_BEHIND_BG + ld a, OAM_PRIO ld [hli], a ; attributes inc d dec c @@ -207,7 +207,7 @@ InitIntroNidorinoOAM: IntroClearScreen: ld hl, vBGMap1 - ld bc, BG_MAP_WIDTH * SCREEN_HEIGHT + ld bc, TILEMAP_WIDTH * SCREEN_HEIGHT jr IntroClearCommon IntroClearMiddleOfScreen: @@ -318,8 +318,8 @@ PlayShootingStar: call LoadIntroGraphics call EnableLCD ld hl, rLCDC - res rLCDC_WINDOW_ENABLE, [hl] - set rLCDC_BG_TILEMAP, [hl] + res B_LCDC_WINDOW, [hl] + set B_LCDC_BG_MAP, [hl] ld c, 64 call DelayFrames farcall AnimateShootingStar @@ -350,10 +350,10 @@ IntroDrawBlackBars: ld c, SCREEN_WIDTH * 4 call IntroPlaceBlackTiles ld hl, vBGMap1 - ld c, BG_MAP_WIDTH * 4 + ld c, TILEMAP_WIDTH * 4 call IntroPlaceBlackTiles hlbgcoord 0, 14, vBGMap1 - ld c, BG_MAP_WIDTH * 4 + ld c, TILEMAP_WIDTH * 4 jp IntroPlaceBlackTiles LoadPresentsGraphic: ; unreferenced diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm index 5c364435..02826b98 100644 --- a/engine/movie/oak_speech/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -118,7 +118,7 @@ OakSpeech: call PlaySound pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld c, 4 call DelayFrames ld de, RedSprite @@ -146,7 +146,7 @@ OakSpeech: call PlaySound pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld c, 20 call DelayFrames hlcoord 6, 5 diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm index 40c75f62..ceaa6838 100644 --- a/engine/movie/oak_speech/oak_speech2.asm +++ b/engine/movie/oak_speech/oak_speech2.asm @@ -177,7 +177,7 @@ DisplayIntroNameTextBox: ld [wLastMenuItem], a inc a ld [wTopMenuItemX], a - ld [wMenuWatchedKeys], a ; A_BUTTON + ld [wMenuWatchedKeys], a ; PAD_A inc a ld [wTopMenuItemY], a inc a diff --git a/engine/movie/splash.asm b/engine/movie/splash.asm index 6e483e99..da3fec0d 100644 --- a/engine/movie/splash.asm +++ b/engine/movie/splash.asm @@ -146,7 +146,7 @@ AnimateShootingStar: ret SmallStarsOAM: - dbsprite 0, 0, 0, 0, $A2, OAM_BEHIND_BG | OAM_OBP1 + dbsprite 0, 0, 0, 0, $A2, OAM_PRIO | OAM_PAL1 SmallStarsOAMEnd: SmallStarsWaveCoordsPointerTable: @@ -228,10 +228,10 @@ GameFreakLogoOAMData: GameFreakLogoOAMDataEnd: GameFreakShootingStarOAMData: - dbsprite 20, 0, 0, 0, $a0, OAM_OBP1 - dbsprite 21, 0, 0, 0, $a0, OAM_OBP1 | OAM_HFLIP - dbsprite 20, 1, 0, 0, $a1, OAM_OBP1 - dbsprite 21, 1, 0, 0, $a1, OAM_OBP1 | OAM_HFLIP + dbsprite 20, 0, 0, 0, $a0, OAM_PAL1 + dbsprite 21, 0, 0, 0, $a0, OAM_PAL1 | OAM_XFLIP + dbsprite 20, 1, 0, 0, $a1, OAM_PAL1 + dbsprite 21, 1, 0, 0, $a1, OAM_PAL1 | OAM_XFLIP GameFreakShootingStarOAMDataEnd: FallingStar: diff --git a/engine/movie/title.asm b/engine/movie/title.asm index bad1df92..83fb32e8 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -254,12 +254,12 @@ ENDC call LoadGBPal ldh a, [hJoyHeld] ld b, a - and D_UP | SELECT | B_BUTTON - cp D_UP | SELECT | B_BUTTON + and PAD_UP | PAD_SELECT | PAD_B + cp PAD_UP | PAD_SELECT | PAD_B jp z, .doClearSaveDialogue IF DEF(_DEBUG) ld a, b - bit BIT_SELECT, a + bit B_PAD_SELECT, a jp nz, DebugMenu ENDC jp MainMenu diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm index fd1c6ac1..f2ae9bb7 100644 --- a/engine/movie/trade.asm +++ b/engine/movie/trade.asm @@ -347,9 +347,9 @@ Trade_AnimateBallEnteringLinkCable: Trade_BallInsideLinkCableOAMBlock: db $7e, 0 - db $7e, OAM_HFLIP - db $7e, OAM_VFLIP - db $7e, OAM_HFLIP | OAM_VFLIP + db $7e, OAM_XFLIP + db $7e, OAM_YFLIP + db $7e, OAM_XFLIP | OAM_YFLIP Trade_ShowEnemyMon: ld a, TRADE_BALL_TILT_ANIM @@ -712,28 +712,28 @@ Trade_CircleOAMBlocks: trade_circle_oam_block .OAMBlock3, 24, 24 .OAMBlock0: - db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 - db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 - db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 - db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 + db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 + db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 + db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 + db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 .OAMBlock1: - db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_HFLIP - db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP - db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_HFLIP - db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP + db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 | OAM_XFLIP + db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 | OAM_XFLIP + db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 | OAM_XFLIP + db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 | OAM_XFLIP .OAMBlock2: - db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_VFLIP - db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_VFLIP - db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_VFLIP - db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 | OAM_YFLIP + db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 | OAM_YFLIP + db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 | OAM_YFLIP + db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 | OAM_YFLIP .OAMBlock3: - db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP - db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP - db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP - db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 3, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP + db ICON_TRADEBUBBLE << 2 + 2, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP + db ICON_TRADEBUBBLE << 2 + 1, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP + db ICON_TRADEBUBBLE << 2 + 0, OAM_PAL1 | OAM_XFLIP | OAM_YFLIP ; a = species Trade_LoadMonSprite: diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm index 0452176e..880f14a4 100644 --- a/engine/overworld/auto_movement.asm +++ b/engine/overworld/auto_movement.asm @@ -3,13 +3,13 @@ PlayerStepOutFromDoor:: res BIT_EXITING_DOOR, [hl] call IsPlayerStandingOnDoorTile jr nc, .notStandingOnDoor - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wMovementFlags set BIT_EXITING_DOOR, [hl] ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpritePlayerStateData1ImageIndex], a @@ -81,7 +81,7 @@ PalletMovementScript_OakMoveLeft: .done ld hl, wStatusFlags7 set BIT_NO_MAP_MUSIC, [hl] - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ret @@ -137,11 +137,11 @@ RLEList_ProfOakWalkToLab: db -1 ; end RLEList_PlayerWalkToLab: - db D_UP, 2 - db D_RIGHT, 3 - db D_DOWN, 5 - db D_LEFT, 1 - db D_DOWN, 6 + db PAD_UP, 2 + db PAD_RIGHT, 3 + db PAD_DOWN, 5 + db PAD_LEFT, 1 + db PAD_DOWN, 6 db -1 ; end PalletMovementScript_Done: @@ -191,9 +191,9 @@ PewterMovementScript_WalkToMuseum: RLEList_PewterMuseumPlayer: db NO_INPUT, 1 - db D_UP, 3 - db D_LEFT, 13 - db D_UP, 6 + db PAD_UP, 3 + db PAD_LEFT, 13 + db PAD_UP, 6 db -1 ; end RLEList_PewterMuseumGuy: @@ -250,11 +250,11 @@ PewterMovementScript_WalkToGym: RLEList_PewterGymPlayer: db NO_INPUT, 1 - db D_RIGHT, 2 - db D_DOWN, 5 - db D_LEFT, 11 - db D_UP, 5 - db D_LEFT, 15 + db PAD_RIGHT, 2 + db PAD_DOWN, 5 + db PAD_LEFT, 11 + db PAD_UP, 5 + db PAD_LEFT, 15 db -1 ; end RLEList_PewterGymGuy: diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 2f839f8c..93902b51 100644 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -124,10 +124,10 @@ WriteCutOrBoulderDustAnimationOAMBlock: .OAMBlock: ; tile ID, attributes - db $fc, OAM_OBP1 - db $fd, OAM_OBP1 - db $fe, OAM_OBP1 - db $ff, OAM_OBP1 + db $fc, OAM_PAL1 + db $fd, OAM_PAL1 + db $fe, OAM_PAL1 + db $ff, OAM_PAL1 GetCutOrBoulderDustAnimationOffsets: ld hl, wSpritePlayerStateData1YPixels diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index e297762c..273b9bb0 100644 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -67,14 +67,14 @@ PokeCenterFlashingMonitorAndHealBall: PokeCenterOAMData: ; heal machine monitor - dbsprite 6, 4, 4, 4, $7c, OAM_OBP1 + dbsprite 6, 4, 4, 4, $7c, OAM_PAL1 ; poke balls 1-6 - dbsprite 6, 5, 0, 3, $7d, OAM_OBP1 - dbsprite 7, 5, 0, 3, $7d, OAM_OBP1 | OAM_HFLIP - dbsprite 6, 6, 0, 0, $7d, OAM_OBP1 - dbsprite 7, 6, 0, 0, $7d, OAM_OBP1 | OAM_HFLIP - dbsprite 6, 6, 0, 5, $7d, OAM_OBP1 - dbsprite 7, 6, 0, 5, $7d, OAM_OBP1 | OAM_HFLIP + dbsprite 6, 5, 0, 3, $7d, OAM_PAL1 + dbsprite 7, 5, 0, 3, $7d, OAM_PAL1 | OAM_XFLIP + dbsprite 6, 6, 0, 0, $7d, OAM_PAL1 + dbsprite 7, 6, 0, 0, $7d, OAM_PAL1 | OAM_XFLIP + dbsprite 6, 6, 0, 5, $7d, OAM_PAL1 + dbsprite 7, 6, 0, 5, $7d, OAM_PAL1 | OAM_XFLIP ; d = value to xor with palette FlashSprite8Times: diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index d88cef76..a85fae26 100644 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -39,7 +39,7 @@ HandleLedges:: ldh a, [hJoyHeld] and e ret z - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wMovementFlags set BIT_LEDGE_OR_FISHING, [hl] @@ -73,7 +73,7 @@ LedgeHoppingShadowEnd: LedgeHoppingShadowOAMBlock: ; tile ID, attributes - db $ff, OAM_OBP1 - db $ff, OAM_HFLIP - db $ff, OAM_VFLIP - db $ff, OAM_HFLIP | OAM_VFLIP + db $ff, OAM_PAL1 + db $ff, OAM_XFLIP + db $ff, OAM_YFLIP + db $ff, OAM_XFLIP | OAM_YFLIP diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index cb65c997..8d02f0fe 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -95,7 +95,7 @@ UpdatePlayerSprite: cp c ld a, 0 jr nz, .next2 - ld a, OAM_BEHIND_BG + ld a, OAM_PRIO .next2 ld [wSpritePlayerStateData2GrassPriority], a ret @@ -549,7 +549,7 @@ CheckSpriteAvailability: cp c ld a, 0 jr nz, .notInGrass - ld a, OAM_BEHIND_BG + ld a, OAM_PRIO .notInGrass ld [hl], a ; x#SPRITESTATEDATA2_GRASSPRIORITY and a diff --git a/engine/overworld/pathfinding.asm b/engine/overworld/pathfinding.asm index 58fa1da9..878ca07d 100644 --- a/engine/overworld/pathfinding.asm +++ b/engine/overworld/pathfinding.asm @@ -191,10 +191,10 @@ ConvertNPCMovementDirectionToJoypadMask: ret NPCMovementDirectionsToJoypadMasksTable: - db NPC_MOVEMENT_UP, D_UP - db NPC_MOVEMENT_DOWN, D_DOWN - db NPC_MOVEMENT_LEFT, D_LEFT - db NPC_MOVEMENT_RIGHT, D_RIGHT + db NPC_MOVEMENT_UP, PAD_UP + db NPC_MOVEMENT_DOWN, PAD_DOWN + db NPC_MOVEMENT_LEFT, PAD_LEFT + db NPC_MOVEMENT_RIGHT, PAD_RIGHT db $ff ; unreferenced diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index 210599da..c163b27e 100644 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -473,7 +473,7 @@ FishingRodOAM: dbsprite 9, 11, 4, 3, $fd, 0 ; down dbsprite 9, 8, 4, 4, $fd, 0 ; up dbsprite 8, 10, 0, 0, $fe, 0 ; left - dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right + dbsprite 11, 10, 0, 0, $fe, OAM_XFLIP ; right MACRO fishing_gfx dw \1 diff --git a/engine/overworld/push_boulder.asm b/engine/overworld/push_boulder.asm index 1773e818..54eecb21 100644 --- a/engine/overworld/push_boulder.asm +++ b/engine/overworld/push_boulder.asm @@ -28,7 +28,7 @@ TryPushingBoulder:: set BIT_TRIED_PUSH_BOULDER, [hl] ret z ; the player must try pushing twice before the boulder will move ldh a, [hJoyHeld] - and D_RIGHT | D_LEFT | D_UP | D_DOWN + and PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ret z predef CheckForCollisionWhenPushingBoulder ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult] @@ -44,22 +44,22 @@ TryPushingBoulder:: cp SPRITE_FACING_RIGHT jr z, .pushBoulderRight .pushBoulderDown - bit BIT_D_DOWN, b + bit B_PAD_DOWN, b ret z ld de, PushBoulderDownMovementData jr .done .pushBoulderUp - bit BIT_D_UP, b + bit B_PAD_UP, b ret z ld de, PushBoulderUpMovementData jr .done .pushBoulderLeft - bit BIT_D_LEFT, b + bit B_PAD_LEFT, b ret z ld de, PushBoulderLeftMovementData jr .done .pushBoulderRight - bit BIT_D_RIGHT, b + bit B_PAD_RIGHT, b ret z ld de, PushBoulderRightMovementData .done diff --git a/engine/overworld/update_map.asm b/engine/overworld/update_map.asm index dbf28dae..d98a0941 100644 --- a/engine/overworld/update_map.asm +++ b/engine/overworld/update_map.asm @@ -63,7 +63,7 @@ RedrawMapView: ld a, [hli] ld h, [hl] ld l, a - ld de, -2 * BG_MAP_WIDTH + ld de, -2 * TILEMAP_WIDTH add hl, de ld a, h and $3 @@ -88,7 +88,7 @@ RedrawMapView: jr nz, .calcWRAMAddrLoop call CopyToRedrawRowOrColumnSrcTiles pop hl - ld de, BG_MAP_WIDTH + ld de, TILEMAP_WIDTH ldh a, [hRedrawMapViewRowOffset] ld c, a .calcVRAMAddrLoop diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm index 736c104c..ea21e8e2 100644 --- a/engine/pokemon/bills_pc.asm +++ b/engine/pokemon/bills_pc.asm @@ -72,7 +72,7 @@ DisplayPCMainMenu:: ld de, LogOffPCText .next3 call PlaceString - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 2 ld [wTopMenuItemY], a @@ -135,7 +135,7 @@ BillsPCMenu: inc hl ld a, 4 ld [hli], a ; wMaxMenuItem - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [hli], a ; wMenuWatchedKeys xor a ld [hli], a ; wLastMenuItem @@ -171,7 +171,7 @@ BillsPCMenu: ldh [hAutoBGTransferEnabled], a call Delay3 call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, ExitBillsPC call PlaceUnfilledArrowMenuCursor ld a, [wCurrentMenuItem] @@ -405,7 +405,7 @@ DisplayDepositWithdrawMenu: inc hl ld a, 2 ld [hli], a ; wMaxMenuItem - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [hli], a ; wMenuWatchedKeys xor a ld [hl], a ; wLastMenuItem @@ -416,7 +416,7 @@ DisplayDepositWithdrawMenu: ld [wPartyAndBillsPCSavedMenuItem], a .loop call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .exit ld a, [wCurrentMenuItem] and a diff --git a/engine/pokemon/learn_move.asm b/engine/pokemon/learn_move.asm index 819466a5..62ffeefd 100644 --- a/engine/pokemon/learn_move.asm +++ b/engine/pokemon/learn_move.asm @@ -143,7 +143,7 @@ TryingToLearn: inc hl ld a, [wNumMovesMinusOne] ld [hli], a ; wMaxMenuItem - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [hli], a ; wMenuWatchedKeys ld [hl], 0 ; wLastMenuItem ld hl, hUILayoutFlags @@ -155,7 +155,7 @@ TryingToLearn: call LoadScreenTilesFromBuffer1 pop af pop hl - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .cancel push hl ld a, [wCurrentMenuItem] diff --git a/engine/pokemon/status_screen.asm b/engine/pokemon/status_screen.asm index 0649949c..a68f9b38 100644 --- a/engine/pokemon/status_screen.asm +++ b/engine/pokemon/status_screen.asm @@ -80,7 +80,7 @@ StatusScreen: ld hl, wStatusFlags2 set BIT_NO_AUDIO_FADE_OUT, [hl] ld a, $33 - ldh [rNR50], a ; Reduce the volume + ldh [rAUDVOL], a ; Reduce the volume call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites @@ -433,7 +433,7 @@ StatusScreen2: ld hl, wStatusFlags2 res BIT_NO_AUDIO_FADE_OUT, [hl] ld a, $77 - ldh [rNR50], a + ldh [rAUDVOL], a call GBPalWhiteOut jp ClearScreen diff --git a/engine/slots/slot_machine.asm b/engine/slots/slot_machine.asm index ac6e642f..9dc32397 100644 --- a/engine/slots/slot_machine.asm +++ b/engine/slots/slot_machine.asm @@ -68,7 +68,7 @@ MainSlotMachineLoop: call PrintText call SaveScreenTilesToBuffer1 .loop - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, 2 ld [wMaxMenuItem], a @@ -88,7 +88,7 @@ MainSlotMachineLoop: ld de, CoinMultiplierSlotMachineText call PlaceString call HandleMenuInput - and B_BUTTON + and PAD_B jp nz, LoadScreenTilesFromBuffer1 ld a, [wCurrentMenuItem] ld b, a @@ -827,7 +827,7 @@ SlotMachine_HandleInputWhileWheelsSpin: call DelayFrame call JoypadLowSensitivity ldh a, [hJoy5] - and A_BUTTON + and PAD_A ret z ld hl, wStoppingWhichSlotMachineWheel ld a, [hl] diff --git a/home/audio.asm b/home/audio.asm index c9d8b983..c01519f4 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -172,7 +172,7 @@ PlaySound:: ldh [hSavedROMBank], a ld a, [wAudioROMBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a cp BANK(Audio1_PlaySound) jr nz, .checkForAudio2 ; audio 1 @@ -195,7 +195,7 @@ PlaySound:: .next2 ldh a, [hSavedROMBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a jr .done .fadeOut diff --git a/home/bankswitch.asm b/home/bankswitch.asm index 52c8a45c..2ce363b7 100644 --- a/home/bankswitch.asm +++ b/home/bankswitch.asm @@ -6,14 +6,14 @@ BankswitchHome:: ld [wBankswitchHomeSavedROMBank], a ld a, [wBankswitchHomeTemp] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret BankswitchBack:: ; returns from BankswitchHome ld a, [wBankswitchHomeSavedROMBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret Bankswitch:: @@ -23,7 +23,7 @@ Bankswitch:: push af ld a, b ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld bc, .Return push bc jp hl @@ -31,5 +31,5 @@ Bankswitch:: pop bc ld a, b ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret diff --git a/home/copy.asm b/home/copy.asm index 880d1fb7..4bd1be50 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -5,11 +5,11 @@ FarCopyData:: push af ld a, [wBuffer] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call CopyData pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret CopyData:: diff --git a/home/copy2.asm b/home/copy2.asm index 1c9a56f3..06c45b59 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -6,11 +6,11 @@ FarCopyData2:: push af ldh a, [hROMBankTemp] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call CopyData pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret FarCopyData3:: @@ -20,7 +20,7 @@ FarCopyData3:: push af ldh a, [hROMBankTemp] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a push hl push de push de @@ -32,7 +32,7 @@ FarCopyData3:: pop hl pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret FarCopyDataDouble:: @@ -43,7 +43,7 @@ FarCopyDataDouble:: push af ldh a, [hROMBankTemp] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a .loop ld a, [hli] ld [de], a @@ -56,7 +56,7 @@ FarCopyDataDouble:: jr nz, .loop pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret CopyVideoData:: @@ -74,7 +74,7 @@ CopyVideoData:: ld a, b ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, e ldh [hVBlankCopySource], a @@ -96,7 +96,7 @@ CopyVideoData:: call DelayFrame ldh a, [hROMBankTemp] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a pop af ldh [hAutoBGTransferEnabled], a ret @@ -123,7 +123,7 @@ CopyVideoDataDouble:: ld a, b ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, e ldh [hVBlankCopyDoubleSource], a @@ -145,7 +145,7 @@ CopyVideoDataDouble:: call DelayFrame ldh a, [hROMBankTemp] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a pop af ldh [hAutoBGTransferEnabled], a ret diff --git a/home/fade_audio.asm b/home/fade_audio.asm index b09d0036..a78ee210 100644 --- a/home/fade_audio.asm +++ b/home/fade_audio.asm @@ -6,7 +6,7 @@ FadeOutAudio:: bit BIT_NO_AUDIO_FADE_OUT, a ret nz ld a, $77 - ldh [rNR50], a + ldh [rAUDVOL], a ret .fadingOut ld a, [wAudioFadeOutCounter] @@ -18,7 +18,7 @@ FadeOutAudio:: .counterReachedZero ld a, [wAudioFadeOutCounterReloadValue] ld [wAudioFadeOutCounter], a - ldh a, [rNR50] + ldh a, [rAUDVOL] and a ; has the volume reached 0? jr z, .fadeOutComplete ld b, a @@ -31,7 +31,7 @@ FadeOutAudio:: dec a swap a or c - ldh [rNR50], a + ldh [rAUDVOL], a ret .fadeOutComplete ld a, [wAudioFadeOutControl] diff --git a/home/hidden_objects.asm b/home/hidden_objects.asm index 2e3510b0..bb513b9d 100644 --- a/home/hidden_objects.asm +++ b/home/hidden_objects.asm @@ -5,18 +5,18 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: ldh a, [hLoadedROMBank] push af ldh a, [hJoyHeld] - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr z, .nothingFound ; A button is pressed ld a, BANK(CheckForHiddenObject) - ld [MBC1RomBank], a + ld [rROMB], a ldh [hLoadedROMBank], a call CheckForHiddenObject ldh a, [hDidntFindAnyHiddenObject] and a jr nz, .hiddenObjectNotFound ld a, [wHiddenObjectFunctionRomBank] - ld [MBC1RomBank], a + ld [rROMB], a ldh [hLoadedROMBank], a ld de, .returnAddress push de @@ -34,6 +34,6 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: .done ldh [hItemAlreadyFound], a pop af - ld [MBC1RomBank], a + ld [rROMB], a ldh [hLoadedROMBank], a ret diff --git a/home/init.asm b/home/init.asm index ab85192d..67fa3ab1 100644 --- a/home/init.asm +++ b/home/init.asm @@ -16,7 +16,7 @@ Init:: ; * 8x8 OBJ size ; * OBJ display enabled ; * BG display enabled -DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY) +DEF LCDC_DEFAULT EQU LCDC_ON | LCDC_WIN_9C00 | LCDC_WIN_ON | LCDC_BLOCK21 | LCDC_BG_9800 | LCDC_OBJ_8 | LCDC_OBJ_ON | LCDC_BG_ON di @@ -35,7 +35,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << ldh [rOBP0], a ldh [rOBP1], a - ld a, 1 << rLCDC_ENABLE + ld a, LCDC_ON ldh [rLCDC], a call DisableLCD @@ -61,7 +61,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << ld a, BANK(WriteDMACodeToHRAM) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call WriteDMACodeToHRAM xor a @@ -70,7 +70,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << ldh [hSCX], a ldh [hSCY], a ldh [rIF], a - ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL + ld a, IE_VBLANK | IE_TIMER | IE_SERIAL ldh [rIE], a ld a, 144 ; move the window off-screen @@ -87,7 +87,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << ld h, HIGH(vBGMap1) call ClearBgMap - ld a, rLCDC_DEFAULT + ld a, LCDC_DEFAULT ldh [rLCDC], a ld a, 16 ldh [hSoftReset], a @@ -113,7 +113,7 @@ DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << call ClearVram call GBPalNormal call ClearSprites - ld a, rLCDC_DEFAULT + ld a, LCDC_DEFAULT ldh [rLCDC], a jp PrepareTitleScreen diff --git a/home/item.asm b/home/item.asm index 9e7f02f9..693f041e 100644 --- a/home/item.asm +++ b/home/item.asm @@ -23,12 +23,12 @@ TossItem:: push af ld a, BANK(TossItem_) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call TossItem_ pop de ld a, d ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; checks if an item is a key item diff --git a/home/item_price.asm b/home/item_price.asm index a71f655f..96b1ef31 100644 --- a/home/item_price.asm +++ b/home/item_price.asm @@ -10,7 +10,7 @@ GetItemPrice:: ld a, $f ; hardcoded Bank .ok ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld hl, wItemPrices ld a, [hli] ld h, [hl] @@ -34,11 +34,11 @@ GetItemPrice:: .getTMPrice ld a, BANK(GetMachinePrice) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call GetMachinePrice .done ld de, hItemPrice pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret diff --git a/home/joypad2.asm b/home/joypad2.asm index 139dd3f5..a07b9ee4 100644 --- a/home/joypad2.asm +++ b/home/joypad2.asm @@ -40,7 +40,7 @@ JoypadLowSensitivity:: .delayOver ; if [hJoy6] = 0 and A or B is pressed, report no buttons as pressed ldh a, [hJoyHeld] - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B jr z, .setShortDelay ldh a, [hJoy6] ; flag and a @@ -74,7 +74,7 @@ WaitForTextScrollButtonPress:: call JoypadLowSensitivity predef CableClub_Run ldh a, [hJoy5] - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B jr z, .loop pop af ldh [hDownArrowBlinkCount2], a diff --git a/home/lcd.asm b/home/lcd.asm index aef6d43f..1e9e8888 100644 --- a/home/lcd.asm +++ b/home/lcd.asm @@ -3,16 +3,16 @@ DisableLCD:: ldh [rIF], a ldh a, [rIE] ld b, a - res rIE_VBLANK, a + res B_IE_VBLANK, a ldh [rIE], a .wait ldh a, [rLY] - cp LY_VBLANK + cp LY_VBLANK + 1 jr nz, .wait ldh a, [rLCDC] - and ~(1 << rLCDC_ENABLE) + and ~LCDC_ON ldh [rLCDC], a ld a, b ldh [rIE], a @@ -20,6 +20,6 @@ DisableLCD:: EnableLCD:: ldh a, [rLCDC] - set rLCDC_ENABLE, a + set B_LCDC_ENABLE, a ldh [rLCDC], a ret diff --git a/home/list_menu.asm b/home/list_menu.asm index aae7caad..b7204e65 100644 --- a/home/list_menu.asm +++ b/home/list_menu.asm @@ -50,7 +50,7 @@ DisplayListMenuID:: ld [wTopMenuItemY], a ld a, 5 ld [wTopMenuItemX], a - ld a, A_BUTTON | B_BUTTON | SELECT + ld a, PAD_A | PAD_B | PAD_SELECT ld [wMenuWatchedKeys], a ld c, 10 call DelayFrames @@ -84,7 +84,7 @@ DisplayListMenuIDLoop:: push af call PlaceMenuCursor pop af - bit BIT_A_BUTTON, a + bit B_PAD_A, a jp z, .checkOtherKeys .buttonAPressed ld a, [wCurrentMenuItem] @@ -170,12 +170,12 @@ DisplayListMenuIDLoop:: res BIT_NO_TEXT_DELAY, [hl] jp BankswitchBack .checkOtherKeys ; check B, SELECT, Up, and Down keys - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, ExitListMenu ; if so, exit the menu - bit BIT_SELECT, a + bit B_PAD_SELECT, a jp nz, HandleItemListSwapping ; if so, allow the player to swap menu entries ld b, a - bit BIT_D_DOWN, b + bit B_PAD_DOWN, b ld hl, wListScrollOffset jr z, .upPressed .downPressed @@ -222,13 +222,13 @@ DisplayChooseQuantityMenu:: .waitForKeyPressLoop call JoypadLowSensitivity ldh a, [hJoyPressed] ; newly pressed buttons - bit BIT_A_BUTTON, a + bit B_PAD_A, a jp nz, .buttonAPressed - bit BIT_B_BUTTON, a + bit B_PAD_B, a jp nz, .buttonBPressed - bit BIT_D_UP, a + bit B_PAD_UP, a jr nz, .incrementQuantity - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jr nz, .decrementQuantity jr .waitForKeyPressLoop .incrementQuantity diff --git a/home/load_font.asm b/home/load_font.asm index 0f48e84c..e886f76e 100644 --- a/home/load_font.asm +++ b/home/load_font.asm @@ -1,6 +1,6 @@ LoadFontTilePatterns:: ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a jr nz, .on .off ld hl, FontGraphics @@ -16,7 +16,7 @@ LoadFontTilePatterns:: LoadTextBoxTilePatterns:: ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a jr nz, .on .off ld hl, TextBoxGraphics @@ -32,7 +32,7 @@ LoadTextBoxTilePatterns:: LoadHpBarAndStatusTilePatterns:: ldh a, [rLCDC] - bit rLCDC_ENABLE, a + bit B_LCDC_ENABLE, a jr nz, .on .off ld hl, HpBarAndStatusGraphics diff --git a/home/names.asm b/home/names.asm index 7330a065..5848cb19 100644 --- a/home/names.asm +++ b/home/names.asm @@ -4,7 +4,7 @@ GetMonName:: push af ld a, BANK(MonsterNames) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, [wNamedObjectIndex] dec a ld hl, MonsterNames @@ -20,7 +20,7 @@ GetMonName:: pop de pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a pop hl ret diff --git a/home/names2.asm b/home/names2.asm index 3bb6980c..7178e706 100644 --- a/home/names2.asm +++ b/home/names2.asm @@ -48,7 +48,7 @@ GetName:: ; 2-7 = other names ld a, [wPredefBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, [wNameListType] dec a add a @@ -96,5 +96,5 @@ GetName:: pop hl pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret diff --git a/home/npc_movement.asm b/home/npc_movement.asm index 96804fdf..ccbd78df 100644 --- a/home/npc_movement.asm +++ b/home/npc_movement.asm @@ -32,12 +32,12 @@ RunNPCMovementScript:: push af ld a, [wNPCMovementScriptBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, [wNPCMovementScriptFunctionNum] call CallFunctionInTable pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret .NPCMovementScriptPointerTables @@ -58,9 +58,9 @@ IF DEF(_DEBUG) bit BIT_DEBUG_MODE, a ret z ldh a, [hJoyHeld] - bit BIT_B_BUTTON, a + bit B_PAD_B, a ret nz ldh a, [hJoyPressed] - bit BIT_B_BUTTON, a + bit B_PAD_B, a ENDC ret diff --git a/home/overworld.asm b/home/overworld.asm index 9ca60c48..daa806d6 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -5,7 +5,7 @@ HandleMidJump:: EnterMap:: ; Load a new map. - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a call LoadMapData farcall ClearVariablesOnEnterMap @@ -72,14 +72,14 @@ OverworldLoopLessDelay:: .notSimulating ldh a, [hJoyPressed] .checkIfStartIsPressed - bit BIT_START, a + bit B_PAD_START, a jr z, .startButtonNotPressed ; if START is pressed xor a ; TEXT_START_MENU ldh [hTextID], a jp .displayDialogue .startButtonNotPressed - bit BIT_A_BUTTON, a + bit B_PAD_A, a jp z, .checkIfDownButtonIsPressed ; if A is pressed ld a, [wStatusFlags5] @@ -146,7 +146,7 @@ OverworldLoopLessDelay:: .checkIfDownButtonIsPressed ldh a, [hJoyHeld] ; current joypad state - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jr z, .checkIfUpButtonIsPressed ld a, 1 ld [wSpritePlayerStateData1YStepVector], a @@ -154,7 +154,7 @@ OverworldLoopLessDelay:: jr .handleDirectionButtonPress .checkIfUpButtonIsPressed - bit BIT_D_UP, a + bit B_PAD_UP, a jr z, .checkIfLeftButtonIsPressed ld a, -1 ld [wSpritePlayerStateData1YStepVector], a @@ -162,7 +162,7 @@ OverworldLoopLessDelay:: jr .handleDirectionButtonPress .checkIfLeftButtonIsPressed - bit BIT_D_LEFT, a + bit B_PAD_LEFT, a jr z, .checkIfRightButtonIsPressed ld a, -1 ld [wSpritePlayerStateData1XStepVector], a @@ -170,7 +170,7 @@ OverworldLoopLessDelay:: jr .handleDirectionButtonPress .checkIfRightButtonIsPressed - bit BIT_D_RIGHT, a + bit B_PAD_RIGHT, a jr z, .noDirectionButtonsPressed ld a, 1 ld [wSpritePlayerStateData1XStepVector], a @@ -382,7 +382,7 @@ DoBikeSpeedup:: cp ROUTE_17 ; Cycling Road jr nz, .goFaster ldh a, [hJoyHeld] - and D_UP | D_LEFT | D_RIGHT + and PAD_UP | PAD_LEFT | PAD_RIGHT ret nz .goFaster jp AdvancePlayerSprite @@ -432,7 +432,7 @@ CheckWarpsNoCollisionLoop:: pop bc pop de ldh a, [hJoyHeld] - and D_DOWN | D_UP | D_LEFT | D_RIGHT + and PAD_DOWN | PAD_UP | PAD_LEFT | PAD_RIGHT jr z, CheckWarpsNoCollisionRetry2 ; if directional buttons aren't being pressed, do not pass through the warp jr WarpFound1 @@ -763,7 +763,7 @@ HandleBlackOut:: res BIT_BATTLE_OVER_OR_BLACKOUT, [hl] ld a, BANK(ResetStatusAndHalveMoneyOnBlackout) ; also BANK(PrepareForSpecialWarp) and BANK(SpecialEnterMap) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call ResetStatusAndHalveMoneyOnBlackout call PrepareForSpecialWarp call PlayDefaultMusicFadeOutCurrent @@ -794,7 +794,7 @@ HandleFlyWarpOrDungeonWarp:: call LeaveMapAnim ld a, BANK(PrepareForSpecialWarp) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call PrepareForSpecialWarp jp SpecialEnterMap @@ -1352,7 +1352,7 @@ LoadCurrentMapView:: push af ld a, [wTilesetBank] ; tile data ROM bank ldh [hLoadedROMBank], a - ld [MBC1RomBank], a ; switch to ROM bank that contains tile data + ld [rROMB], a ; switch to ROM bank that contains tile data ld a, [wCurrentTileBlockMapViewPointer] ; address of upper left corner of current map view ld e, a ld a, [wCurrentTileBlockMapViewPointer + 1] @@ -1434,7 +1434,7 @@ LoadCurrentMapView:: jr nz, .rowLoop2 pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a ; restore previous ROM bank + ld [rROMB], a ; restore previous ROM bank ret AdvancePlayerSprite:: @@ -1828,9 +1828,9 @@ JoypadOverworld:: cp ROUTE_17 ; Cycling Road jr nz, .notForcedDownwards ldh a, [hJoyHeld] - and D_DOWN | D_UP | D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON + and PAD_DOWN | PAD_UP | PAD_LEFT | PAD_RIGHT | PAD_B | PAD_A jr nz, .notForcedDownwards - ld a, D_DOWN + ld a, PAD_DOWN ldh [hJoyHeld], a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press .notForcedDownwards ld a, [wStatusFlags5] @@ -2266,7 +2266,7 @@ LoadMapHeader:: push af ld a, BANK(MapSongBanks) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld hl, MapSongBanks add hl, bc add hl, bc @@ -2276,7 +2276,7 @@ LoadMapHeader:: ld [wMapMusicROMBank], a ; music 2 pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; function to copy map connection data from ROM to WRAM @@ -2324,7 +2324,7 @@ LoadMapData:: inc e dec c jr nz, .vramCopyInnerLoop - ld a, BG_MAP_WIDTH - SCREEN_WIDTH + ld a, TILEMAP_WIDTH - SCREEN_WIDTH add e ld e, a jr nc, .noCarry @@ -2349,7 +2349,7 @@ LoadMapData:: .restoreRomBank pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; function to switch to the ROM bank that a map is stored in @@ -2368,7 +2368,7 @@ SwitchToMapRomBank:: call BankswitchBack ldh a, [hMapROMBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a pop bc pop hl ret @@ -2403,14 +2403,14 @@ CheckForUserInterruption:: pop bc ldh a, [hJoyHeld] - cp D_UP + SELECT + B_BUTTON + cp PAD_UP + PAD_SELECT + PAD_B jr z, .input ldh a, [hJoy5] IF DEF(_DEBUG) - and START | SELECT | A_BUTTON + and PAD_START | PAD_SELECT | PAD_A ELSE - and START | A_BUTTON + and PAD_START | PAD_A ENDC jr nz, .input @@ -2433,7 +2433,7 @@ LoadDestinationWarpPosition:: push af ld a, [wPredefParentBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, b add a add a @@ -2445,5 +2445,5 @@ LoadDestinationWarpPosition:: call CopyData pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret diff --git a/home/pics.asm b/home/pics.asm index 73ee35d7..ea34e3d5 100644 --- a/home/pics.asm +++ b/home/pics.asm @@ -93,7 +93,7 @@ LoadUncompressedSpriteData:: add a ; 8*(7*((8-w)/2) + 7-h) ; combined overall offset (in bytes) ldh [hSpriteOffset], a xor a - ld [MBC1SRamBank], a + ld [rRAMB], a ld hl, sSpriteBuffer0 call ZeroSpriteBuffer ; zero buffer 0 ld de, sSpriteBuffer1 @@ -151,7 +151,7 @@ ZeroSpriteBuffer:: ; de: output address InterlaceMergeSpriteBuffers:: xor a - ld [MBC1SRamBank], a + ld [rRAMB], a push de ld hl, sSpriteBuffer2 + (SPRITEBUFFERSIZE - 1) ; destination: end of buffer 2 ld de, sSpriteBuffer1 + (SPRITEBUFFERSIZE - 1) ; source 2: end of buffer 1 diff --git a/home/pokemon.asm b/home/pokemon.asm index afa0d129..3b990848 100644 --- a/home/pokemon.asm +++ b/home/pokemon.asm @@ -130,7 +130,7 @@ LoadFrontSpriteByMonIndex:: push af ld a, BANK(CopyUncompressedPicToHL) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a xor a ldh [hStartTileID], a call CopyUncompressedPicToHL @@ -138,7 +138,7 @@ LoadFrontSpriteByMonIndex:: ld [wSpriteFlipped], a pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret @@ -226,11 +226,11 @@ PartyMenuInit:: ld [hli], a ; max menu item ID ld a, [wForcePlayerToChooseMon] and a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B jr z, .next xor a ld [wForcePlayerToChooseMon], a - inc a ; a = A_BUTTON + inc a ; a = PAD_A .next ld [hli], a ; menu watched keys pop af @@ -256,7 +256,7 @@ HandlePartyMenuInput:: jp nz, .swappingPokemon pop af ldh [hTileAnimations], a - bit BIT_B_BUTTON, b + bit B_PAD_B, b jr nz, .noPokemonChosen ld a, [wPartyCount] and a @@ -278,7 +278,7 @@ HandlePartyMenuInput:: scf ret .swappingPokemon - bit BIT_B_BUTTON, b + bit B_PAD_B, b jr z, .handleSwap ; if not, handle swapping the pokemon .cancelSwap ; if the B button was pressed farcall ErasePartyMenuCursors @@ -381,7 +381,7 @@ GetMonHeader:: push af ld a, BANK(BaseStats) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a push bc push de push hl @@ -436,7 +436,7 @@ GetMonHeader:: pop bc pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; copy party pokemon's name to wNameBuffer diff --git a/home/predef.asm b/home/predef.asm index 14ac07b5..b460105a 100644 --- a/home/predef.asm +++ b/home/predef.asm @@ -14,13 +14,13 @@ Predef:: push af ld a, BANK(GetPredefPointer) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call GetPredefPointer ld a, [wPredefBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld de, .done push de @@ -29,7 +29,7 @@ Predef:: pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret GetPredefRegisters:: diff --git a/home/print_text.asm b/home/print_text.asm index 65d418a3..fe784350 100644 --- a/home/print_text.asm +++ b/home/print_text.asm @@ -25,11 +25,11 @@ PrintLetterDelay:: call Joypad ldh a, [hJoyHeld] .checkAButton - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr z, .checkBButton jr .endWait .checkBButton - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr z, .buttonsNotPressed .endWait call DelayFrame diff --git a/home/reload_tiles.asm b/home/reload_tiles.asm index 76110dbe..06aeb1eb 100644 --- a/home/reload_tiles.asm +++ b/home/reload_tiles.asm @@ -11,7 +11,7 @@ ReloadMapData:: call EnableLCD pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; reloads tileset tile patterns @@ -25,7 +25,7 @@ ReloadTilesetTilePatterns:: call EnableLCD pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; shows the town map and lets the player choose a destination to fly to diff --git a/home/serial.asm b/home/serial.asm index bfec707b..631ec70c 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -14,7 +14,7 @@ Serial:: cp USING_INTERNAL_CLOCK jr z, .done ; using external clock - ld a, START_TRANSFER_EXTERNAL_CLOCK + ld a, SC_START | SC_EXTERNAL ldh [rSC], a jr .done .connectionNotYetEstablished @@ -32,7 +32,7 @@ Serial:: ldh a, [rDIV] bit 7, a ; wait until rDIV has incremented from $3 to $80 or more jr nz, .waitLoop - ld a, START_TRANSFER_EXTERNAL_CLOCK + ld a, SC_START | SC_EXTERNAL ldh [rSC], a jr .done .usingInternalClock @@ -92,7 +92,7 @@ Serial_ExchangeByte:: ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .loop - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a .loop ldh a, [hSerialReceivedNewData] @@ -117,8 +117,8 @@ Serial_ExchangeByte:: jp SetUnknownCounterToFFFF .doNotIncrementUnknownCounter ldh a, [rIE] - and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - cp 1 << SERIAL + and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK + cp IE_SERIAL jr nz, .loop ld a, [wUnknownSerialCounter2] dec a @@ -139,8 +139,8 @@ Serial_ExchangeByte:: xor a ldh [hSerialReceivedNewData], a ldh a, [rIE] - and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - sub 1 << SERIAL + and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK + sub IE_SERIAL jr nz, .skipReloadingUnknownCounter2 ld [wUnknownSerialCounter2], a ld a, $50 @@ -165,8 +165,8 @@ Serial_ExchangeByte:: jr z, SetUnknownCounterToFFFF .done ldh a, [rIE] - and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) - cp 1 << SERIAL + and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK + cp IE_SERIAL ld a, SERIAL_NO_DATA_BYTE ret z ld a, [hl] @@ -291,7 +291,7 @@ Serial_ExchangeNybble:: ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .doExchange - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a .doExchange ldh a, [hSerialReceiveData] @@ -312,7 +312,7 @@ Serial_SendZeroByte:: ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ret nz - ld a, START_TRANSFER_INTERNAL_CLOCK + ld a, SC_START | SC_INTERNAL ldh [rSC], a ret @@ -321,6 +321,6 @@ Serial_TryEstablishingExternallyClockedConnection:: ldh [rSB], a xor a ldh [hSerialReceiveData], a - ld a, START_TRANSFER_EXTERNAL_CLOCK + ld a, SC_START | SC_EXTERNAL ldh [rSC], a ret diff --git a/home/start.asm b/home/start.asm index 5e301da2..79caca09 100644 --- a/home/start.asm +++ b/home/start.asm @@ -1,5 +1,5 @@ _Start:: - cp CGB + cp BOOTUP_A_CGB jr z, .cgb xor a jr .ok diff --git a/home/start_menu.asm b/home/start_menu.asm index 5a531744..6de15182 100644 --- a/home/start_menu.asm +++ b/home/start_menu.asm @@ -1,7 +1,7 @@ DisplayStartMenu:: ld a, BANK(StartMenu_Pokedex) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ld a, [wWalkBikeSurfState] ; walking/biking/surfing ld [wWalkBikeSurfStateCopy], a ld a, SFX_START_MENU @@ -15,7 +15,7 @@ RedisplayStartMenu:: call HandleMenuInput ld b, a .checkIfUpPressed - bit BIT_D_UP, a + bit B_PAD_UP, a jr z, .checkIfDownPressed ld a, [wCurrentMenuItem] ; menu selection and a @@ -33,7 +33,7 @@ RedisplayStartMenu:: call EraseMenuCursor jr .loop .checkIfDownPressed - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jr z, .buttonPressed ; if the player pressed tried to go past the bottom item, wrap around to the top CheckEvent EVENT_GOT_POKEDEX @@ -54,7 +54,7 @@ RedisplayStartMenu:: ld a, [wCurrentMenuItem] ld [wBattleAndStartSavedMenuItem], a ; save current menu selection ld a, b - and B_BUTTON | START ; was the Start button or B button pressed? + and PAD_B | PAD_START ; was the Start button or B button pressed? jp nz, CloseStartMenu call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2 CheckEvent EVENT_GOT_POKEDEX @@ -79,7 +79,7 @@ RedisplayStartMenu:: CloseStartMenu:: call Joypad ldh a, [hJoyPressed] - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr nz, CloseStartMenu call LoadTextBoxTilePatterns jp CloseTextDisplay diff --git a/home/text.asm b/home/text.asm index df5cfe51..17fb7266 100644 --- a/home/text.asm +++ b/home/text.asm @@ -494,7 +494,7 @@ TextCommand_PAUSE:: push bc call Joypad ldh a, [hJoyHeld] - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B jr nz, .done ld c, 30 ; half a second call DelayFrames @@ -570,7 +570,7 @@ TextCommand_DOTS:: call Joypad pop de ldh a, [hJoyHeld] ; joypad state - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B jr nz, .next ; if so, skip the delay ld c, 10 call DelayFrames @@ -604,7 +604,7 @@ TextCommand_FAR:: ld a, [hli] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a push hl ld l, e @@ -614,7 +614,7 @@ TextCommand_FAR:: pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a jp NextTextCommand TextCommandJumpTable:: diff --git a/home/text_script.asm b/home/text_script.asm index f3015b66..35dd955b 100644 --- a/home/text_script.asm +++ b/home/text_script.asm @@ -99,7 +99,7 @@ AfterDisplayingTextID:: HoldTextDisplayOpen:: call Joypad ldh a, [hJoyHeld] - bit BIT_A_BUTTON, a + bit B_PAD_A, a jr nz, HoldTextDisplayOpen CloseTextDisplay:: @@ -125,7 +125,7 @@ CloseTextDisplay:: jr nz, .restoreSpriteFacingDirectionLoop ld a, BANK(InitMapSprites) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns) ld hl, wFontLoaded res BIT_FONT_LOADED, [hl] @@ -135,7 +135,7 @@ CloseTextDisplay:: call LoadCurrentMapView pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a jp UpdateSprites DisplayPokemartDialogue:: diff --git a/home/trainers.asm b/home/trainers.asm index 04752cc2..835121e1 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -149,7 +149,7 @@ ENDC xor a ; EXCLAMATION_BUBBLE ld [wWhichEmotionBubble], a predef EmotionBubble - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a xor a ldh [hJoyHeld], a @@ -349,7 +349,7 @@ PrintEndBattleText:: push af ld a, [wEndBattleTextRomBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a push hl farcall SaveTrainerName ld hl, TrainerEndBattleText @@ -357,7 +357,7 @@ PrintEndBattleText:: pop hl pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a farcall SetEnemyTrainerToStayAndFaceAnyDirection jp WaitForSoundToFinish diff --git a/home/uncompress.asm b/home/uncompress.asm index b6cb1e8d..731ae642 100644 --- a/home/uncompress.asm +++ b/home/uncompress.asm @@ -11,15 +11,15 @@ UncompressSpriteData:: push af ld a, b ldh [hLoadedROMBank], a - ld [MBC1RomBank], a - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a + ld [rROMB], a + ld a, RAMG_SRAM_ENABLE + ld [rRAMG], a xor a - ld [MBC1SRamBank], a + ld [rRAMB], a call _UncompressSpriteData pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ret ; initializes necessary data to load a sprite and runs UncompressSpriteDataLoop diff --git a/home/vblank.asm b/home/vblank.asm index b8b46ba7..fc5d266b 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -29,7 +29,7 @@ VBlank:: call hDMARoutine ld a, BANK(PrepareOAMData) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call PrepareOAMData ; VBlank-sensitive operations end. @@ -54,7 +54,7 @@ VBlank:: ld a, [wAudioROMBank] ; music ROM bank ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a cp BANK(Audio1_UpdateMusic) jr nz, .checkForAudio2 @@ -80,7 +80,7 @@ VBlank:: ld a, [wVBlankSavedROMBank] ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a pop hl pop de diff --git a/home/vcopy.asm b/home/vcopy.asm index 1b742817..6a9d9b7f 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -23,7 +23,7 @@ ClearBgMap:: jr .next ld a, l .next - ld de, BG_MAP_WIDTH * BG_MAP_HEIGHT + ld de, TILEMAP_WIDTH * TILEMAP_HEIGHT ld l, e .loop ld [hli], a @@ -61,7 +61,7 @@ RedrawRowOrColumn:: inc de ld a, [hli] ld [de], a - ld a, BG_MAP_WIDTH - 1 + ld a, TILEMAP_WIDTH - 1 add e ld e, a jr nc, .noCarry @@ -86,7 +86,7 @@ RedrawRowOrColumn:: push de call .DrawHalf ; draw upper half pop de - ld a, BG_MAP_WIDTH ; width of VRAM background map + ld a, TILEMAP_WIDTH ; width of VRAM background map add e ld e, a ; fall through and draw lower half @@ -181,7 +181,7 @@ ENDR inc l ld [hl], d - ld a, BG_MAP_WIDTH - (SCREEN_WIDTH - 1) + ld a, TILEMAP_WIDTH - (SCREEN_WIDTH - 1) add l ld l, a jr nc, .ok @@ -259,7 +259,7 @@ VBlankCopyDouble:: ldh [hVBlankCopyDoubleSize], a .loop -REPT LEN_2BPP_TILE / 4 - 1 +REPT TILE_SIZE / 4 - 1 pop de ld [hl], e inc l @@ -336,7 +336,7 @@ VBlankCopy:: ldh [hVBlankCopySize], a .loop -REPT LEN_2BPP_TILE / 2 - 1 +REPT TILE_SIZE / 2 - 1 pop de ld [hl], e inc l diff --git a/home/window.asm b/home/window.asm index 48ab1d0e..48bef77a 100644 --- a/home/window.asm +++ b/home/window.asm @@ -50,7 +50,7 @@ HandleMenuInput_:: ld [wCheckFor180DegreeTurn], a ldh a, [hJoy5] ld b, a - bit BIT_D_UP, a + bit B_PAD_UP, a jr z, .checkIfDownPressed .upPressed ld a, [wCurrentMenuItem] ; selected menu item @@ -68,7 +68,7 @@ HandleMenuInput_:: ld [wCurrentMenuItem], a ; wrap to the bottom of the menu jr .checkOtherKeys .checkIfDownPressed - bit BIT_D_DOWN, a + bit B_PAD_DOWN, a jr z, .checkOtherKeys .downPressed ld a, [wCurrentMenuItem] @@ -91,7 +91,7 @@ HandleMenuInput_:: jp z, .loop1 .checkIfAButtonOrBButtonPressed ldh a, [hJoy5] - and A_BUTTON | B_BUTTON + and PAD_A | PAD_B jr z, .skipPlayingSound .AButtonOrBButtonPressed push hl diff --git a/includes.asm b/includes.asm index f83b76e4..5087809c 100644 --- a/includes.asm +++ b/includes.asm @@ -14,12 +14,11 @@ INCLUDE "macros/scripts/events.asm" INCLUDE "macros/scripts/text.asm" INCLUDE "constants/charmap.asm" -INCLUDE "constants/hardware_constants.asm" +INCLUDE "constants/hardware.inc" INCLUDE "constants/oam_constants.asm" INCLUDE "constants/ram_constants.asm" INCLUDE "constants/misc_constants.asm" INCLUDE "constants/gfx_constants.asm" -INCLUDE "constants/input_constants.asm" INCLUDE "constants/serial_constants.asm" INCLUDE "constants/script_constants.asm" INCLUDE "constants/type_constants.asm" diff --git a/macros/coords.asm b/macros/coords.asm index 984073ed..6eccdec4 100644 --- a/macros/coords.asm +++ b/macros/coords.asm @@ -47,11 +47,11 @@ ENDM MACRO bgcoord ; register, x, y[, origin] - validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT + validate_coords \2, \3, TILEMAP_WIDTH, TILEMAP_HEIGHT IF _NARG >= 4 - ld \1, (\3) * BG_MAP_WIDTH + (\2) + \4 + ld \1, (\3) * TILEMAP_WIDTH + (\2) + \4 ELSE - ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0 + ld \1, (\3) * TILEMAP_WIDTH + (\2) + vBGMap0 ENDC ENDM diff --git a/macros/farcall.asm b/macros/farcall.asm index a40bff36..ead11739 100644 --- a/macros/farcall.asm +++ b/macros/farcall.asm @@ -27,11 +27,11 @@ MACRO homecall push af ld a, BANK(\1) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call \1 pop af ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ENDM MACRO homecall_sf ; homecall but save flags by popping into bc instead of af @@ -39,10 +39,10 @@ MACRO homecall_sf ; homecall but save flags by popping into bc instead of af push af ld a, BANK(\1) ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a call \1 pop bc ld a, b ldh [hLoadedROMBank], a - ld [MBC1RomBank], a + ld [rROMB], a ENDM diff --git a/macros/gfx.asm b/macros/gfx.asm index 944e6dd5..7b8fcf5d 100644 --- a/macros/gfx.asm +++ b/macros/gfx.asm @@ -5,16 +5,16 @@ MACRO RGB ENDR ENDM -DEF palred EQUS "(1 << 0) *" -DEF palgreen EQUS "(1 << 5) *" -DEF palblue EQUS "(1 << 10) *" +DEF palred EQUS "(1 << B_COLOR_RED) *" +DEF palgreen EQUS "(1 << B_COLOR_GREEN) *" +DEF palblue EQUS "(1 << B_COLOR_BLUE) *" DEF palettes EQUS "* PALETTE_SIZE" DEF palette EQUS "+ PALETTE_SIZE *" DEF color EQUS "+ PAL_COLOR_SIZE *" -DEF tiles EQUS "* LEN_2BPP_TILE" -DEF tile EQUS "+ LEN_2BPP_TILE *" +DEF tiles EQUS "* TILE_SIZE" +DEF tile EQUS "+ TILE_SIZE *" MACRO dbsprite ; x tile, y tile, x pixel, y pixel, vtile offset, attributes diff --git a/ram/vram.asm b/ram/vram.asm index 04556410..fe30b0e9 100644 --- a/ram/vram.asm +++ b/ram/vram.asm @@ -5,8 +5,8 @@ UNION vChars0:: ds $80 tiles vChars1:: ds $80 tiles vChars2:: ds $80 tiles -vBGMap0:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT -vBGMap1:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT +vBGMap0:: ds TILEMAP_WIDTH * TILEMAP_HEIGHT +vBGMap1:: ds TILEMAP_WIDTH * TILEMAP_HEIGHT NEXTU ; battle/menu diff --git a/ram/wram.asm b/ram/wram.asm index e7d35f96..eff7baaa 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -145,7 +145,7 @@ SECTION "OAM Buffer", WRAM0 ; buffer for OAM data. Copied to OAM by DMA wShadowOAM:: ; wShadowOAMSprite00 - wShadowOAMSprite39 -FOR n, NUM_SPRITE_OAM_STRUCTS +FOR n, OAM_COUNT wShadowOAMSprite{02d:n}:: sprite_oam_struct wShadowOAMSprite{02d:n} ENDR wShadowOAMEnd:: @@ -170,7 +170,7 @@ NEXTU ; buffer for temporarily saving and restoring shadow OAM wShadowOAMBackup:: ; wShadowOAMBackupSprite00 - wShadowOAMBackupSprite39 -FOR n, NUM_SPRITE_OAM_STRUCTS +FOR n, OAM_COUNT wShadowOAMBackupSprite{02d:n}:: sprite_oam_struct wShadowOAMBackupSprite{02d:n} ENDR wShadowOAMBackupEnd:: @@ -346,7 +346,7 @@ wNPCMovementScriptBank:: db ; This union spans 180 bytes. UNION -wVermilionDockTileMapBuffer:: ds 5 * BG_MAP_WIDTH + SCREEN_WIDTH +wVermilionDockTileMapBuffer:: ds 5 * TILEMAP_WIDTH + SCREEN_WIDTH wVermilionDockTileMapBufferEnd:: NEXTU diff --git a/scripts/AgathasRoom.asm b/scripts/AgathasRoom.asm index 2d0dca08..548f78bf 100644 --- a/scripts/AgathasRoom.asm +++ b/scripts/AgathasRoom.asm @@ -44,7 +44,7 @@ AgathasRoomNoopScript: AgathaScriptWalkIntoRoom: ; Walk six steps upward. ld hl, wSimulatedJoypadStatesEnd - ld a, D_UP + ld a, PAD_UP ld [hli], a ld [hli], a ld [hli], a @@ -77,7 +77,7 @@ AgathasRoomDefaultScript: ld a, TEXT_AGATHASROOM_AGATHA_DONT_RUN_AWAY ldh [hTextID], a call DisplayTextID - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/BikeShop.asm b/scripts/BikeShop.asm index d8b82386..a245b657 100644 --- a/scripts/BikeShop.asm +++ b/scripts/BikeShop.asm @@ -40,7 +40,7 @@ BikeShopClerkText: xor a ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, $1 ld [wMaxMenuItem], a @@ -64,7 +64,7 @@ BikeShopClerkText: ld hl, BikeShopClerkDoYouLikeItText call PrintText call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a jr nz, .cancel ld hl, wStatusFlags5 res BIT_NO_TEXT_DELAY, [hl] diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm index 86f79cb3..6074b007 100644 --- a/scripts/BillsHouse.asm +++ b/scripts/BillsHouse.asm @@ -62,7 +62,7 @@ BillsHousePokemonEntersMachineScript: BillsHouseBillExitsMachineScript: CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL ret z - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, BILLSHOUSE_BILL1 ld [wSpriteIndex], a diff --git a/scripts/BrunosRoom.asm b/scripts/BrunosRoom.asm index 6d7fde6e..1f8ff4cf 100644 --- a/scripts/BrunosRoom.asm +++ b/scripts/BrunosRoom.asm @@ -44,7 +44,7 @@ BrunosRoomNoopScript: BrunoScriptWalkIntoRoom: ; Walk six steps upward. ld hl, wSimulatedJoypadStatesEnd - ld a, D_UP + ld a, PAD_UP ld [hli], a ld [hli], a ld [hli], a @@ -77,7 +77,7 @@ BrunosRoomDefaultScript: ld a, TEXT_BRUNOSROOM_BRUNO_DONT_RUN_AWAY ldh [hTextID], a call DisplayTextID ; "Don't run away!" - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/CeladonGym.asm b/scripts/CeladonGym.asm index f95d129a..10ffcfca 100644 --- a/scripts/CeladonGym.asm +++ b/scripts/CeladonGym.asm @@ -40,7 +40,7 @@ CeladonGymErikaPostBattleScript: ld a, [wIsInBattle] cp $ff jp z, CeladonGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a CeladonGymReceiveTM21: diff --git a/scripts/CeladonMartRoof.asm b/scripts/CeladonMartRoof.asm index d06fc4a2..9a1f8834 100644 --- a/scripts/CeladonMartRoof.asm +++ b/scripts/CeladonMartRoof.asm @@ -48,7 +48,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: call PrintText xor a ld [wCurrentMenuItem], a - ld a, A_BUTTON | B_BUTTON + ld a, PAD_A | PAD_B ld [wMenuWatchedKeys], a ld a, [wFilteredBagItemsCount] dec a @@ -72,7 +72,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: ld hl, wStatusFlags5 res BIT_NO_TEXT_DELAY, [hl] call HandleMenuInput - bit BIT_B_BUTTON, a + bit B_PAD_B, a ret nz ld hl, wFilteredBagItems ld a, [wCurrentMenuItem] diff --git a/scripts/CeruleanCity.asm b/scripts/CeruleanCity.asm index 9cf44891..c08d0280 100644 --- a/scripts/CeruleanCity.asm +++ b/scripts/CeruleanCity.asm @@ -24,7 +24,7 @@ CeruleanCityRocketDefeatedScript: ld a, [wIsInBattle] cp $ff jp z, CeruleanCityClearScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF ld a, TEXT_CERULEANCITY_ROCKET @@ -78,7 +78,7 @@ ENDC call PlayMusic xor a ldh [hJoyHeld], a - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, [wXCoord] cp 20 ; is the player standing on the right side of the bridge? @@ -170,7 +170,7 @@ CeruleanCityRivalDefeatedScript: cp $ff jp z, CeruleanCityClearScripts call CeruleanCityFaceRivalScript - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_RIVAL ld a, TEXT_CERULEANCITY_RIVAL diff --git a/scripts/CeruleanGym.asm b/scripts/CeruleanGym.asm index e924907a..e05b4659 100644 --- a/scripts/CeruleanGym.asm +++ b/scripts/CeruleanGym.asm @@ -40,7 +40,7 @@ CeruleanGymMistyPostBattleScript: ld a, [wIsInBattle] cp $ff jp z, CeruleanGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a CeruleanGymReceiveTM11: diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm index 4d8a218b..953ee9b5 100644 --- a/scripts/ChampionsRoom.asm +++ b/scripts/ChampionsRoom.asm @@ -28,7 +28,7 @@ ChampionsRoomDefaultScript: ret ChampionsRoomPlayerEntersScript: - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, RivalEntrance_RLEMovement @@ -41,9 +41,9 @@ ChampionsRoomPlayerEntersScript: ret RivalEntrance_RLEMovement: - db D_UP, 1 - db D_RIGHT, 1 - db D_UP, 3 + db PAD_UP, 1 + db PAD_RIGHT, 1 + db PAD_UP, 3 db -1 ; end ChampionsRoomRivalReadyToBattleScript: @@ -96,7 +96,7 @@ ChampionsRoomRivalDefeatedScript: jp z, ResetRivalScript call UpdateSprites SetEvent EVENT_BEAT_CHAMPION_RIVAL - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_CHAMPIONSROOM_RIVAL ldh [hTextID], a @@ -205,7 +205,7 @@ ChampionsRoomOakExitsScript: ret ChampionsRoomPlayerFollowsOakScript: - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, WalkToHallOfFame_RLEMovement @@ -218,8 +218,8 @@ ChampionsRoomPlayerFollowsOakScript: ret WalkToHallOfFame_RLEMovement: - db D_UP, 4 - db D_LEFT, 1 + db PAD_UP, 4 + db PAD_LEFT, 1 db -1 ; end ChampionsRoomCleanupScript: @@ -233,10 +233,10 @@ ChampionsRoomCleanupScript: ret ChampionsRoom_DisplayTextID_AllowABSelectStart: - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a call DisplayTextID - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ret diff --git a/scripts/CinnabarGym.asm b/scripts/CinnabarGym.asm index efda64a5..600ae571 100644 --- a/scripts/CinnabarGym.asm +++ b/scripts/CinnabarGym.asm @@ -140,7 +140,7 @@ CinnabarGymBlainePostBattleScript: ld a, [wIsInBattle] cp $ff jp z, CinnabarGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ; fallthrough CinnabarGymReceiveTM38: diff --git a/scripts/CinnabarIsland.asm b/scripts/CinnabarIsland.asm index f2a36afb..ce1b683c 100644 --- a/scripts/CinnabarIsland.asm +++ b/scripts/CinnabarIsland.asm @@ -32,7 +32,7 @@ CinnabarIslandDefaultScript: ldh [hJoyHeld], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a call StartSimulatingJoypadStates xor a diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm index bffa4554..78409ed2 100644 --- a/scripts/FightingDojo.asm +++ b/scripts/FightingDojo.asm @@ -68,7 +68,7 @@ FightingDojoKarateMasterPostBattleScript: ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay .already_facing - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 ld a, TEXT_FIGHTINGDOJO_KARATE_MASTER_I_WILL_GIVE_YOU_A_POKEMON diff --git a/scripts/FuchsiaGym.asm b/scripts/FuchsiaGym.asm index c983c896..fc4a45ac 100644 --- a/scripts/FuchsiaGym.asm +++ b/scripts/FuchsiaGym.asm @@ -42,7 +42,7 @@ FuchsiaGymKogaPostBattleScript: ld a, [wIsInBattle] cp $ff jp z, FuchsiaGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ; fallthrough FuchsiaGymReceiveTM06: diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm index f95431d1..b1250857 100644 --- a/scripts/GameCorner.asm +++ b/scripts/GameCorner.asm @@ -55,7 +55,7 @@ GameCornerRocketBattleScript: ld a, [wIsInBattle] cp $ff jp z, GameCornerReenterMapAfterPlayerLoss - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_GAMECORNER_ROCKET_AFTER_BATTLE ldh [hTextID], a diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm index c6ecf4ec..84ef26c6 100644 --- a/scripts/HallOfFame.asm +++ b/scripts/HallOfFame.asm @@ -58,7 +58,7 @@ HallOfFameResetEventsAndSaveScript: jp Init HallOfFameDefaultScript: - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, HallOfFameEntryMovement @@ -71,7 +71,7 @@ HallOfFameDefaultScript: ret HallOfFameEntryMovement: - db D_UP, 5 + db PAD_UP, 5 db -1 ; end HallOfFameOakCongratulationsScript: @@ -94,7 +94,7 @@ HallOfFameOakCongratulationsScript: ld a, TEXT_HALLOFFAME_OAK ldh [hTextID], a call DisplayTextID - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, HS_CERULEAN_CAVE_GUY ld [wMissableObjectIndex], a diff --git a/scripts/LancesRoom.asm b/scripts/LancesRoom.asm index 235deac1..169aa17d 100644 --- a/scripts/LancesRoom.asm +++ b/scripts/LancesRoom.asm @@ -95,7 +95,7 @@ LancesRoomLanceEndBattleScript: WalkToLance: ; Moves the player down the hallway to Lance's room. - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, WalkToLance_RLEList @@ -109,10 +109,10 @@ WalkToLance: ret WalkToLance_RLEList: - db D_UP, 12 - db D_LEFT, 12 - db D_DOWN, 7 - db D_LEFT, 6 + db PAD_UP, 12 + db PAD_LEFT, 12 + db PAD_DOWN, 7 + db PAD_LEFT, 6 db -1 ; end LancesRoomPlayerIsMovingScript: diff --git a/scripts/LoreleisRoom.asm b/scripts/LoreleisRoom.asm index 455561b8..ada3b583 100644 --- a/scripts/LoreleisRoom.asm +++ b/scripts/LoreleisRoom.asm @@ -46,7 +46,7 @@ LoreleisRoomNoopScript: LoreleiScriptWalkIntoRoom: ; Walk six steps upward. ld hl, wSimulatedJoypadStatesEnd - ld a, D_UP + ld a, PAD_UP ld [hli], a ld [hli], a ld [hli], a @@ -79,7 +79,7 @@ LoreleisRoomDefaultScript: ld a, TEXT_LORELEISROOM_DONT_RUN_AWAY ldh [hTextID], a call DisplayTextID ; "Don't run away!" - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm index d7d4a35b..80236aed 100644 --- a/scripts/MtMoonB2F.asm +++ b/scripts/MtMoonB2F.asm @@ -132,7 +132,7 @@ MtMoonB2FSuperNerdTakesOtherFossilScript: ld a, [wStatusFlags5] bit BIT_SCRIPTED_NPC_MOVEMENT, a ret nz - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a diff --git a/scripts/Museum1F.asm b/scripts/Museum1F.asm index 465c72f8..6cb6889a 100644 --- a/scripts/Museum1F.asm +++ b/scripts/Museum1F.asm @@ -115,7 +115,7 @@ Museum1FScientist1Text: call PrintText ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a call StartSimulatingJoypadStates call UpdateSprites diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm index 71704c5b..8a2b7de3 100644 --- a/scripts/OaksLab.asm +++ b/scripts/OaksLab.asm @@ -102,7 +102,7 @@ OaksLabPlayerEntersLabScript: ret PlayerEntryMovementRLE: - db D_UP, 8 + db PAD_UP, 8 db -1 ; end OaksLabFollowedOakScript: @@ -126,7 +126,7 @@ OaksLabFollowedOakScript: ret OaksLabOakChooseMonSpeechScript: - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_OAKSLAB_RIVAL_FED_UP_WITH_WAITING ldh [hTextID], a @@ -171,7 +171,7 @@ OaksLabPlayerDontGoAwayScript: call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a call StartSimulatingJoypadStates ld a, PLAYER_DIR_UP @@ -293,7 +293,7 @@ OaksLabRivalChoosesStarterScript: ld a, [wStatusFlags5] bit BIT_SCRIPTED_NPC_MOVEMENT, a ret nz - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, OAKSLAB_RIVAL ldh [hSpriteIndex], a @@ -416,7 +416,7 @@ OaksLabRivalStartBattleScript: ret OaksLabRivalEndBattleScript: - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a @@ -557,7 +557,7 @@ OaksLabOakGivesPokedexScript: ret nz call EnableAutoTextBoxDrawing call PlayDefaultMusic - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a call OaksLabRivalFaceUpOakFaceDownScript ld a, TEXT_OAKSLAB_RIVAL_WHAT_DID_YOU_CALL_ME_FOR @@ -931,7 +931,7 @@ OaksLabMonChoiceMenu: call AddPartyMon ld hl, wStatusFlags4 set BIT_GOT_STARTER, [hl] - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, SCRIPT_OAKSLAB_CHOSE_STARTER_SCRIPT ld [wOaksLabCurScript], a diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm index 14c5a840..cf6231ea 100644 --- a/scripts/PalletTown.asm +++ b/scripts/PalletTown.asm @@ -34,7 +34,7 @@ PalletTownDefaultScript: ld c, a ld a, MUSIC_MEET_PROF_OAK ; "oak appears" music call PlayMusic - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_OAK_APPEARED_IN_PALLET @@ -49,7 +49,7 @@ PalletTownOakHeyWaitScript: ld a, TEXT_PALLETTOWN_OAK ldh [hTextID], a call DisplayTextID - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, HS_PALLET_TOWN_OAK ld [wMissableObjectIndex], a @@ -82,7 +82,7 @@ PalletTownOakWalksToPlayerScript: ld a, PALLETTOWN_OAK ldh [hSpriteIndex], a call MoveSprite - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ; trigger the next script @@ -98,13 +98,13 @@ PalletTownOakNotSafeComeWithMeScript: ld [wSpritePlayerStateData1FacingDirection], a ld a, TRUE ld [wOakWalkedToPlayer], a - ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_PALLETTOWN_OAK ldh [hTextID], a call DisplayTextID ; set up movement script that causes the player to follow Oak to his lab - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, PALLETTOWN_OAK ld [wSpriteIndex], a diff --git a/scripts/PewterCity.asm b/scripts/PewterCity.asm index 5cf0c8c7..961e5ee4 100644 --- a/scripts/PewterCity.asm +++ b/scripts/PewterCity.asm @@ -31,7 +31,7 @@ ENDC ld hl, PewterCityPlayerLeavingEastCoords call ArePlayerCoordsInArray ret nc - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_PEWTERCITY_YOUNGSTER ldh [hTextID], a diff --git a/scripts/PewterGym.asm b/scripts/PewterGym.asm index 6c4c9443..a56c848e 100644 --- a/scripts/PewterGym.asm +++ b/scripts/PewterGym.asm @@ -40,7 +40,7 @@ PewterGymBrockPostBattle: ld a, [wIsInBattle] cp $ff jp z, PewterGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ; fallthrough PewterGymScriptReceiveTM34: diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm index 6b3fe4ae..ec04c623 100644 --- a/scripts/PokemonTower2F.asm +++ b/scripts/PokemonTower2F.asm @@ -67,7 +67,7 @@ PokemonTower2FDefeatedRivalScript: ld a, [wIsInBattle] cp $ff jp z, PokemonTower2FResetRivalEncounter - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL ld a, TEXT_POKEMONTOWER2F_RIVAL diff --git a/scripts/PokemonTower5F.asm b/scripts/PokemonTower5F.asm index b35a2f0a..fb023a0b 100644 --- a/scripts/PokemonTower5F.asm +++ b/scripts/PokemonTower5F.asm @@ -26,7 +26,7 @@ PokemonTower5FDefaultScript: ret nz xor a ldh [hJoyHeld], a - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld hl, wStatusFlags4 set BIT_NO_BATTLES, [hl] diff --git a/scripts/PokemonTower6F.asm b/scripts/PokemonTower6F.asm index 251b3759..861fdd65 100644 --- a/scripts/PokemonTower6F.asm +++ b/scripts/PokemonTower6F.asm @@ -50,13 +50,13 @@ PokemonTower6FMarowakBattleScript: ld a, [wIsInBattle] cp $ff jp z, PokemonTower6FSetDefaultScript - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, [wStatusFlags3] bit BIT_TALKED_TO_TRAINER, a ret nz call UpdateSprites - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, [wBattleResult] and a @@ -74,7 +74,7 @@ PokemonTower6FMarowakBattleScript: .did_not_defeat ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_RIGHT + ld a, PAD_RIGHT ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpritePlayerStateData2MovementByte1], a diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm index 41fba59c..e8ff81af 100644 --- a/scripts/PokemonTower7F.asm +++ b/scripts/PokemonTower7F.asm @@ -29,7 +29,7 @@ PokemonTower7FEndBattleScript: cp $ff jp z, PokemonTower7FSetDefaultScript call EndTrainerBattle - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, [wSpriteIndex] ldh [hSpriteIndex], a @@ -65,7 +65,7 @@ PokemonTower7FHideNPCScript: ret PokemonTower7FWarpToMrFujiHouseScript: - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, HS_POKEMON_TOWER_7F_MR_FUJI ld [wMissableObjectIndex], a diff --git a/scripts/RocketHideoutB2F.asm b/scripts/RocketHideoutB2F.asm index 0df2f06a..a57cecbd 100644 --- a/scripts/RocketHideoutB2F.asm +++ b/scripts/RocketHideoutB2F.asm @@ -28,7 +28,7 @@ RocketHideoutB2FDefaultScript: call StartSimulatingJoypadStates ld a, SFX_ARROW_TILES call PlaySound - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, SCRIPT_ROCKETHIDEOUTB2F_PLAYER_SPINNING ld [wCurMapScript], a @@ -83,177 +83,177 @@ RocketHideout2ArrowTilePlayerMovement: ;format: direction, count ;each list is read starting from the $FF and working backwards RocketHideout2ArrowMovement1: - db D_LEFT, 2 + db PAD_LEFT, 2 db -1 ; end RocketHideout2ArrowMovement2: - db D_RIGHT, 4 + db PAD_RIGHT, 4 db -1 ; end RocketHideout2ArrowMovement3: - db D_UP, 4 - db D_RIGHT, 4 + db PAD_UP, 4 + db PAD_RIGHT, 4 db -1 ; end RocketHideout2ArrowMovement4: - db D_UP, 4 - db D_RIGHT, 4 - db D_UP, 1 + db PAD_UP, 4 + db PAD_RIGHT, 4 + db PAD_UP, 1 db -1 ; end RocketHideout2ArrowMovement5: - db D_LEFT, 2 - db D_UP, 3 + db PAD_LEFT, 2 + db PAD_UP, 3 db -1 ; end RocketHideout2ArrowMovement6: - db D_DOWN, 2 - db D_RIGHT, 4 + db PAD_DOWN, 2 + db PAD_RIGHT, 4 db -1 ; end RocketHideout2ArrowMovement7: - db D_UP, 2 + db PAD_UP, 2 db -1 ; end RocketHideout2ArrowMovement8: - db D_UP, 4 + db PAD_UP, 4 db -1 ; end RocketHideout2ArrowMovement9: - db D_LEFT, 6 + db PAD_LEFT, 6 db -1 ; end RocketHideout2ArrowMovement10: - db D_UP, 1 + db PAD_UP, 1 db -1 ; end RocketHideout2ArrowMovement11: - db D_LEFT, 6 - db D_UP, 4 + db PAD_LEFT, 6 + db PAD_UP, 4 db -1 ; end RocketHideout2ArrowMovement12: - db D_DOWN, 2 + db PAD_DOWN, 2 db -1 ; end RocketHideout2ArrowMovement13: - db D_LEFT, 8 + db PAD_LEFT, 8 db -1 ; end RocketHideout2ArrowMovement14: - db D_LEFT, 8 - db D_UP, 1 + db PAD_LEFT, 8 + db PAD_UP, 1 db -1 ; end RocketHideout2ArrowMovement15: - db D_LEFT, 8 - db D_UP, 6 + db PAD_LEFT, 8 + db PAD_UP, 6 db -1 ; end RocketHideout2ArrowMovement16: - db D_UP, 2 - db D_RIGHT, 4 + db PAD_UP, 2 + db PAD_RIGHT, 4 db -1 ; end RocketHideout2ArrowMovement17: - db D_UP, 2 - db D_RIGHT, 4 - db D_UP, 2 + db PAD_UP, 2 + db PAD_RIGHT, 4 + db PAD_UP, 2 db -1 ; end RocketHideout2ArrowMovement18: - db D_DOWN, 2 - db D_RIGHT, 4 - db D_DOWN, 2 + db PAD_DOWN, 2 + db PAD_RIGHT, 4 + db PAD_DOWN, 2 db -1 ; end RocketHideout2ArrowMovement19: - db D_DOWN, 2 - db D_RIGHT, 4 + db PAD_DOWN, 2 + db PAD_RIGHT, 4 db -1 ; end RocketHideout2ArrowMovement20: - db D_LEFT, 10 + db PAD_LEFT, 10 db -1 ; end RocketHideout2ArrowMovement21: - db D_LEFT, 10 - db D_UP, 2 + db PAD_LEFT, 10 + db PAD_UP, 2 db -1 ; end RocketHideout2ArrowMovement22: - db D_LEFT, 10 - db D_UP, 4 + db PAD_LEFT, 10 + db PAD_UP, 4 db -1 ; end RocketHideout2ArrowMovement23: - db D_UP, 2 - db D_RIGHT, 2 + db PAD_UP, 2 + db PAD_RIGHT, 2 db -1 ; end RocketHideout2ArrowMovement24: - db D_RIGHT, 1 - db D_DOWN, 2 + db PAD_RIGHT, 1 + db PAD_DOWN, 2 db -1 ; end RocketHideout2ArrowMovement25: - db D_RIGHT, 1 + db PAD_RIGHT, 1 db -1 ; end RocketHideout2ArrowMovement26: - db D_DOWN, 2 - db D_RIGHT, 2 + db PAD_DOWN, 2 + db PAD_RIGHT, 2 db -1 ; end RocketHideout2ArrowMovement27: - db D_DOWN, 2 - db D_LEFT, 2 + db PAD_DOWN, 2 + db PAD_LEFT, 2 db -1 ; end RocketHideout2ArrowMovement28: - db D_UP, 2 - db D_RIGHT, 4 - db D_UP, 2 - db D_LEFT, 3 + db PAD_UP, 2 + db PAD_RIGHT, 4 + db PAD_UP, 2 + db PAD_LEFT, 3 db -1 ; end RocketHideout2ArrowMovement29: - db D_DOWN, 2 - db D_LEFT, 4 + db PAD_DOWN, 2 + db PAD_LEFT, 4 db -1 ; end RocketHideout2ArrowMovement30: - db D_LEFT, 6 - db D_UP, 4 - db D_LEFT, 5 + db PAD_LEFT, 6 + db PAD_UP, 4 + db PAD_LEFT, 5 db -1 ; end RocketHideout2ArrowMovement31: - db D_UP, 2 + db PAD_UP, 2 db -1 ; end RocketHideout2ArrowMovement32: - db D_UP, 1 + db PAD_UP, 1 db -1 ; end RocketHideout2ArrowMovement33: - db D_UP, 3 + db PAD_UP, 3 db -1 ; end RocketHideout2ArrowMovement34: - db D_UP, 5 + db PAD_UP, 5 db -1 ; end RocketHideout2ArrowMovement35: - db D_RIGHT, 1 - db D_DOWN, 2 - db D_LEFT, 4 + db PAD_RIGHT, 1 + db PAD_DOWN, 2 + db PAD_LEFT, 4 db -1 ; end RocketHideout2ArrowMovement36: - db D_LEFT, 10 - db D_UP, 2 - db D_LEFT, 5 + db PAD_LEFT, 10 + db PAD_UP, 2 + db PAD_LEFT, 5 db -1 ; end RocketHideoutB2FPlayerSpinningScript: diff --git a/scripts/RocketHideoutB3F.asm b/scripts/RocketHideoutB3F.asm index 0c0e02ea..bf6a1176 100644 --- a/scripts/RocketHideoutB3F.asm +++ b/scripts/RocketHideoutB3F.asm @@ -28,7 +28,7 @@ RocketHideoutB3FDefaultScript: call StartSimulatingJoypadStates ld a, SFX_ARROW_TILES call PlaySound - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, SCRIPT_ROCKETHIDEOUTB3F_PLAYER_SPINNING ld [wCurMapScript], a @@ -56,61 +56,61 @@ RocketHideout3ArrowTilePlayerMovement: ;format: direction, count ;each list is read starting from the $FF and working backwards RocketHideout3ArrowMovement1: - db D_RIGHT, 4 - db D_UP, 4 - db D_RIGHT, 4 + db PAD_RIGHT, 4 + db PAD_UP, 4 + db PAD_RIGHT, 4 db -1 ; end RocketHideout3ArrowMovement2: - db D_DOWN, 4 - db D_RIGHT, 4 + db PAD_DOWN, 4 + db PAD_RIGHT, 4 db -1 ; end RocketHideout3ArrowMovement3: - db D_LEFT, 2 + db PAD_LEFT, 2 db -1 ; end RocketHideout3ArrowMovement4: - db D_RIGHT, 4 - db D_UP, 2 - db D_RIGHT, 2 + db PAD_RIGHT, 4 + db PAD_UP, 2 + db PAD_RIGHT, 2 db -1 ; end RocketHideout3ArrowMovement5: - db D_RIGHT, 4 - db D_UP, 2 - db D_RIGHT, 2 - db D_UP, 3 + db PAD_RIGHT, 4 + db PAD_UP, 2 + db PAD_RIGHT, 2 + db PAD_UP, 3 db -1 ; end RocketHideout3ArrowMovement6: - db D_RIGHT, 4 + db PAD_RIGHT, 4 db -1 ; end RocketHideout3ArrowMovement7: - db D_RIGHT, 2 + db PAD_RIGHT, 2 db -1 ; end RocketHideout3ArrowMovement8: - db D_RIGHT, 4 - db D_UP, 2 + db PAD_RIGHT, 4 + db PAD_UP, 2 db -1 ; end RocketHideout3ArrowMovement9: - db D_RIGHT, 4 - db D_UP, 4 + db PAD_RIGHT, 4 + db PAD_UP, 4 db -1 ; end RocketHideout3ArrowMovement10: - db D_DOWN, 4 + db PAD_DOWN, 4 db -1 ; end RocketHideout3ArrowMovement11: - db D_UP, 2 + db PAD_UP, 2 db -1 ; end RocketHideout3ArrowMovement12: - db D_UP, 1 + db PAD_UP, 1 db -1 ; end RocketHideoutB3FPlayerSpinningScript: diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm index a8445db3..3920f70d 100644 --- a/scripts/RocketHideoutB4F.asm +++ b/scripts/RocketHideoutB4F.asm @@ -49,7 +49,7 @@ RocketHideoutB4FBeatGiovanniScript: cp $ff jp z, RocketHideoutB4FSetDefaultScript call UpdateSprites - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI ld a, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN diff --git a/scripts/Route16Gate1F.asm b/scripts/Route16Gate1F.asm index a8bf2f0f..464cb939 100644 --- a/scripts/Route16Gate1F.asm +++ b/scripts/Route16Gate1F.asm @@ -32,7 +32,7 @@ Route16Gate1FDefaultScript: ld [wSimulatedJoypadStatesIndex], a ld b, $0 ld c, a - ld a, D_UP + ld a, PAD_UP ld hl, wSimulatedJoypadStatesEnd call FillMemory call StartSimulatingJoypadStates @@ -55,7 +55,7 @@ Route16Gate1FPlayerMovingUpScript: ld a, [wSimulatedJoypadStatesIndex] and a ret nz - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a Route16Gate1FGuardScript: @@ -64,7 +64,7 @@ Route16Gate1FGuardScript: call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_RIGHT + ld a, PAD_RIGHT ld [wSimulatedJoypadStatesEnd], a call StartSimulatingJoypadStates ld a, SCRIPT_ROUTE16GATE1F_PLAYER_MOVING_RIGHT diff --git a/scripts/Route18Gate1F.asm b/scripts/Route18Gate1F.asm index a2b4dcdf..d97e3101 100644 --- a/scripts/Route18Gate1F.asm +++ b/scripts/Route18Gate1F.asm @@ -32,7 +32,7 @@ Route18Gate1FDefaultScript: ld [wSimulatedJoypadStatesIndex], a ld b, 0 ld c, a - ld a, D_UP + ld a, PAD_UP ld hl, wSimulatedJoypadStatesEnd call FillMemory call StartSimulatingJoypadStates @@ -55,7 +55,7 @@ Route18Gate1FPlayerMovingUpScript: ld a, [wSimulatedJoypadStatesIndex] and a ret nz - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a Route18Gate1FGuardScript: @@ -64,7 +64,7 @@ Route18Gate1FGuardScript: call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_RIGHT + ld a, PAD_RIGHT ld [wSimulatedJoypadStatesEnd], a call StartSimulatingJoypadStates ld a, SCRIPT_ROUTE18GATE1F_PLAYER_MOVING_RIGHT diff --git a/scripts/Route22.asm b/scripts/Route22.asm index 1a2602fd..cab9ec33 100644 --- a/scripts/Route22.asm +++ b/scripts/Route22.asm @@ -65,7 +65,7 @@ Route22DefaultScript: ld [wSavedCoordIndex], a xor a ldh [hJoyHeld], a - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, PLAYER_DIR_LEFT ld [wPlayerMovingDirection], a @@ -162,7 +162,7 @@ Route22Rival1AfterBattleScript: ld a, ROUTE22_RIVAL1 ldh [hSpriteIndex], a call SetSpriteFacingDirectionAndDelay - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE ld a, TEXT_ROUTE22_RIVAL1 @@ -321,7 +321,7 @@ Route22Rival2AfterBattleScript: .set_rival_facing_direction ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE ld a, TEXT_ROUTE22_RIVAL2 diff --git a/scripts/Route22Gate.asm b/scripts/Route22Gate.asm index d6160ad8..e8e13b3c 100644 --- a/scripts/Route22Gate.asm +++ b/scripts/Route22Gate.asm @@ -36,7 +36,7 @@ Route22GateScriptCoords: Route22GateMovePlayerDownScript: ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a ld [wSpritePlayerStateData1FacingDirection], a ld [wJoyIgnore], a diff --git a/scripts/Route23.asm b/scripts/Route23.asm index ac4853d8..e2a66c4e 100644 --- a/scripts/Route23.asm +++ b/scripts/Route23.asm @@ -123,7 +123,7 @@ CascadeBadgeText: Route23MovePlayerDownScript: ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpritePlayerStateData1FacingDirection], a diff --git a/scripts/Route24.asm b/scripts/Route24.asm index 53185147..c18da62f 100644 --- a/scripts/Route24.asm +++ b/scripts/Route24.asm @@ -35,7 +35,7 @@ Route24DefaultScript: call DisplayTextID CheckAndResetEvent EVENT_NUGGET_REWARD_AVAILABLE ret z - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -64,7 +64,7 @@ Route24AfterRocketBattleScript: cp $ff jp z, Route24SetDefaultScript call UpdateSprites - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE24_ROCKET ld a, TEXT_ROUTE24_COOLTRAINER_M1 diff --git a/scripts/Route5Gate.asm b/scripts/Route5Gate.asm index 0ccf9fae..581a3da5 100644 --- a/scripts/Route5Gate.asm +++ b/scripts/Route5Gate.asm @@ -10,7 +10,7 @@ Route5Gate_ScriptPointers: dw_const Route5GatePlayerMovingScript, SCRIPT_ROUTE5GATE_PLAYER_MOVING Route5GateMovePlayerUpScript: - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/Route6Gate.asm b/scripts/Route6Gate.asm index 48228c7d..40f7d5ca 100644 --- a/scripts/Route6Gate.asm +++ b/scripts/Route6Gate.asm @@ -57,7 +57,7 @@ Route6GatePlayerMovingScript: Route6GateMovePlayerDownScript: ld hl, wStatusFlags5 set BIT_SCRIPTED_MOVEMENT_STATE, [hl] - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/Route7Gate.asm b/scripts/Route7Gate.asm index e599e147..01f597ff 100644 --- a/scripts/Route7Gate.asm +++ b/scripts/Route7Gate.asm @@ -13,7 +13,7 @@ Route7Gate_ScriptPointers: Route7GateMovePlayerLeftScript: ld hl, wStatusFlags5 set BIT_SCRIPTED_MOVEMENT_STATE, [hl] - ld a, D_LEFT + ld a, PAD_LEFT ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/Route8Gate.asm b/scripts/Route8Gate.asm index 44e94a0c..533e45f6 100644 --- a/scripts/Route8Gate.asm +++ b/scripts/Route8Gate.asm @@ -12,7 +12,7 @@ Route8Gate_ScriptPointers: Route8GateMovePlayerRightScript: ld hl, wStatusFlags5 set BIT_SCRIPTED_MOVEMENT_STATE, [hl] - ld a, D_RIGHT + ld a, PAD_RIGHT ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm index 5bd5589d..45dece40 100644 --- a/scripts/SSAnne2F.asm +++ b/scripts/SSAnne2F.asm @@ -42,7 +42,7 @@ SSAnne2FDefaultScript: call SetSpriteMovementBytesToFF xor a ldh [hJoyHeld], a - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ldh a, [hSavedCoordIndex] cp $2 @@ -126,7 +126,7 @@ SSAnne2FRivalAfterBattleScript: cp $ff jp z, SSAnne2FResetScripts call SSAnne2FSetFacingDirectionScript - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_SSANNE2F_RIVAL_CUT_MASTER ldh [hTextID], a diff --git a/scripts/SafariZoneGate.asm b/scripts/SafariZoneGate.asm index 74a7baa1..87b6ec6d 100644 --- a/scripts/SafariZoneGate.asm +++ b/scripts/SafariZoneGate.asm @@ -22,7 +22,7 @@ SafariZoneGateDefaultScript: ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_1 ldh [hTextID], a call DisplayTextID - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a xor a ldh [hJoyHeld], a @@ -35,10 +35,10 @@ SafariZoneGateDefaultScript: ld [wSafariZoneGateCurScript], a ret .player_not_next_to_worker - ld a, D_RIGHT + ld a, PAD_RIGHT ld c, 1 call SafariZoneEntranceAutoWalk - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_RIGHT ld [wSafariZoneGateCurScript], a @@ -60,7 +60,7 @@ SafariZoneGateWouldYouLikeToJoinScript: ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_WOULD_YOU_LIKE_TO_JOIN ldh [hTextID], a call DisplayTextID - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ret @@ -80,14 +80,14 @@ SafariZoneGateLeavingSafariScript: jr z, .leaving_early ResetEventReuseHL EVENT_IN_SAFARI_ZONE call UpdateSprites - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_GOOD_HAUL_COME_AGAIN ldh [hTextID], a call DisplayTextID xor a ld [wNumSafariBalls], a - ld a, D_DOWN + ld a, PAD_DOWN ld c, 3 call SafariZoneEntranceAutoWalk ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_DOWN @@ -189,7 +189,7 @@ SafariZoneGateSafariZoneWorker1WouldYouLikeToJoinText: ld [wSafariSteps], a ld a, LOW(502) ld [wSafariSteps + 1], a - ld a, D_UP + ld a, PAD_UP ld c, 3 call SafariZoneEntranceAutoWalk SetEvent EVENT_IN_SAFARI_ZONE @@ -202,7 +202,7 @@ SafariZoneGateSafariZoneWorker1WouldYouLikeToJoinText: ld hl, .PleaseComeAgainText call PrintText .CantPayWalkDown - ld a, D_DOWN + ld a, PAD_DOWN ld c, 1 call SafariZoneEntranceAutoWalk ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_DOWN @@ -235,7 +235,7 @@ SafariZoneGateSafariZoneWorker1LeavingEarlyText: call PrintText xor a ld [wSpritePlayerStateData1FacingDirection], a - ld a, D_DOWN + ld a, PAD_DOWN ld c, 3 call SafariZoneEntranceAutoWalk ResetEvents EVENT_SAFARI_GAME_OVER, EVENT_IN_SAFARI_ZONE @@ -247,7 +247,7 @@ SafariZoneGateSafariZoneWorker1LeavingEarlyText: call PrintText ld a, SPRITE_FACING_UP ld [wSpritePlayerStateData1FacingDirection], a - ld a, D_UP + ld a, PAD_UP ld c, 1 call SafariZoneEntranceAutoWalk ld a, SCRIPT_SAFARIZONEGATE_LEAVING_SAFARI diff --git a/scripts/SaffronGym.asm b/scripts/SaffronGym.asm index 4bfb7b2c..afa37fe9 100644 --- a/scripts/SaffronGym.asm +++ b/scripts/SaffronGym.asm @@ -40,7 +40,7 @@ SaffronGymSabrinaPostBattle: ld a, [wIsInBattle] cp $ff jp z, SaffronGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SaffronGymSabrinaReceiveTM46Script: diff --git a/scripts/SeafoamIslandsB3F.asm b/scripts/SeafoamIslandsB3F.asm index 23dfd050..671d7719 100644 --- a/scripts/SeafoamIslandsB3F.asm +++ b/scripts/SeafoamIslandsB3F.asm @@ -79,9 +79,9 @@ SeafoamIslandsB3FDefaultScript: ret RLEList_ForcedSurfingStrongCurrentNearSteps: - db D_DOWN, 6 - db D_RIGHT, 5 - db D_DOWN, 3 + db PAD_DOWN, 6 + db PAD_RIGHT, 5 + db PAD_DOWN, 3 db -1 ; end SeafoamIslandsB3FObjectMoving1Script: @@ -122,16 +122,16 @@ SeafoamIslandsB3FMoveObjectScript: ret .RLEList_StrongCurrentNearRightBoulder: - db D_DOWN, 6 - db D_RIGHT, 2 - db D_DOWN, 4 - db D_LEFT, 1 + db PAD_DOWN, 6 + db PAD_RIGHT, 2 + db PAD_DOWN, 4 + db PAD_LEFT, 1 db -1 ; end .RLEList_StrongCurrentNearLeftBoulder: - db D_DOWN, 6 - db D_RIGHT, 2 - db D_DOWN, 4 + db PAD_DOWN, 6 + db PAD_RIGHT, 2 + db PAD_DOWN, 4 db -1 ; end SeafoamIslandsB3FObjectMoving2Script: diff --git a/scripts/SeafoamIslandsB4F.asm b/scripts/SeafoamIslandsB4F.asm index 783b410d..314a8d50 100644 --- a/scripts/SeafoamIslandsB4F.asm +++ b/scripts/SeafoamIslandsB4F.asm @@ -45,7 +45,7 @@ SeafoamIslandsB4FDefaultScript: ld a, 1 .forcePlayerUpFromSurfExit ld [wSimulatedJoypadStatesIndex], a - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a call StartSimulatingJoypadStates ld hl, wStatusFlags7 @@ -103,15 +103,15 @@ SeafoamIslandsB4FMoveObjectScript: db -1 ; end .RLEList_StrongCurrentNearRightBoulder: - db D_UP, 3 - db D_RIGHT, 2 - db D_UP, 1 + db PAD_UP, 3 + db PAD_RIGHT, 2 + db PAD_UP, 1 db -1 ; end .RLEList_StrongCurrentNearLeftBoulder: - db D_UP, 3 - db D_RIGHT, 3 - db D_UP, 1 + db PAD_UP, 3 + db PAD_RIGHT, 3 + db PAD_UP, 1 db -1 ; end SeafoamIslandsB4FObjectMoving2Script: diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm index 6953d37c..c1f3ff6b 100644 --- a/scripts/SilphCo11F.asm +++ b/scripts/SilphCo11F.asm @@ -173,7 +173,7 @@ SilphCo11FDefaultScript: ld [wSavedCoordIndex], a xor a ldh [hJoyHeld], a - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_SILPHCO11F_GIOVANNI ldh [hTextID], a @@ -220,7 +220,7 @@ SilphCo11FGiovanniAfterBattleScript: ld b, SPRITE_FACING_DOWN .continue call SilphCo11FSetPlayerAndSpriteFacingDirectionScript - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, TEXT_SILPHCO11F_GIOVANNI_YOU_RUINED_OUR_PLANS ldh [hTextID], a diff --git a/scripts/SilphCo7F.asm b/scripts/SilphCo7F.asm index 358be537..f52fd56a 100644 --- a/scripts/SilphCo7F.asm +++ b/scripts/SilphCo7F.asm @@ -127,7 +127,7 @@ SilphCo7FDefaultScript: jp nc, CheckFightingMapTrainers xor a ldh [hJoyHeld], a - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, PLAYER_DIR_DOWN ld [wPlayerMovingDirection], a @@ -207,7 +207,7 @@ SilphCo7FRivalAfterBattleScript: ld a, [wIsInBattle] cp $ff jp z, SilphCo7FSetDefaultScript - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a SetEvent EVENT_BEAT_SILPH_CO_RIVAL ld a, PLAYER_DIR_DOWN diff --git a/scripts/VermilionCity.asm b/scripts/VermilionCity.asm index 40a08dbc..5d19ed64 100644 --- a/scripts/VermilionCity.asm +++ b/scripts/VermilionCity.asm @@ -59,7 +59,7 @@ VermilionCityDefaultScript: and a ret nz .ship_departed - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -81,9 +81,9 @@ VermilionCityPlayerAllowedToPassScript: ret VermilionCityPlayerExitShipScript: - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a - ld a, D_UP + ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd + 1], a ld a, 2 diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm index 532a9bb5..d626a630 100644 --- a/scripts/VermilionDock.asm +++ b/scripts/VermilionDock.asm @@ -14,7 +14,7 @@ VermilionDock_Script: ld hl, wStatusFlags5 set BIT_SCRIPTED_MOVEMENT_STATE, [hl] ld hl, wSimulatedJoypadStatesEnd - ld a, D_UP + ld a, PAD_UP ld [hli], a ld [hli], a ld [hl], a diff --git a/scripts/VermilionGym.asm b/scripts/VermilionGym.asm index 8d3a33b6..3fdd713d 100644 --- a/scripts/VermilionGym.asm +++ b/scripts/VermilionGym.asm @@ -59,7 +59,7 @@ VermilionGymLTSurgeAfterBattleScript: ld a, [wIsInBattle] cp $ff ; did we lose? jp z, VermilionGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a VermilionGymLTSurgeReceiveTM24Script: diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm index 473b7ee5..e30f41f1 100644 --- a/scripts/ViridianCity.asm +++ b/scripts/ViridianCity.asm @@ -118,7 +118,7 @@ ViridianCityMovePlayerDownScript: call StartSimulatingJoypadStates ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN + ld a, PAD_DOWN ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpritePlayerStateData1FacingDirection], a diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm index 55d849d2..49253c4b 100644 --- a/scripts/ViridianGym.asm +++ b/scripts/ViridianGym.asm @@ -45,7 +45,7 @@ ViridianGymDefaultScript: set BIT_SPINNING, [hl] ld a, SFX_ARROW_TILES call PlaySound - ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ld a, SCRIPT_VIRIDIANGYM_PLAYER_SPINNING ld [wCurMapScript], a @@ -67,51 +67,51 @@ ViridianGymArrowTilePlayerMovement: db -1 ; end ViridianGymArrowMovement1: - db D_UP, 9 + db PAD_UP, 9 db -1 ; end ViridianGymArrowMovement2: - db D_LEFT, 8 + db PAD_LEFT, 8 db -1 ; end ViridianGymArrowMovement3: - db D_DOWN, 9 + db PAD_DOWN, 9 db -1 ; end ViridianGymArrowMovement4: - db D_RIGHT, 6 + db PAD_RIGHT, 6 db -1 ; end ViridianGymArrowMovement5: - db D_DOWN, 2 + db PAD_DOWN, 2 db -1 ; end ViridianGymArrowMovement6: - db D_DOWN, 7 + db PAD_DOWN, 7 db -1 ; end ViridianGymArrowMovement7: - db D_RIGHT, 8 + db PAD_RIGHT, 8 db -1 ; end ViridianGymArrowMovement8: - db D_RIGHT, 9 + db PAD_RIGHT, 9 db -1 ; end ViridianGymArrowMovement9: - db D_UP, 8 + db PAD_UP, 8 db -1 ; end ViridianGymArrowMovement10: - db D_UP, 6 + db PAD_UP, 6 db -1 ; end ViridianGymArrowMovement11: - db D_LEFT, 6 + db PAD_LEFT, 6 db -1 ; end ViridianGymArrowMovement12: - db D_LEFT, 12 + db PAD_LEFT, 12 db -1 ; end ViridianGymPlayerSpinningScript: @@ -132,7 +132,7 @@ ViridianGymGiovanniPostBattle: ld a, [wIsInBattle] cp $ff jp z, ViridianGymResetScripts - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ld [wJoyIgnore], a ; fallthrough ViridianGymReceiveTM27: diff --git a/scripts/ViridianMart.asm b/scripts/ViridianMart.asm index f54f3c26..34e1281c 100644 --- a/scripts/ViridianMart.asm +++ b/scripts/ViridianMart.asm @@ -41,8 +41,8 @@ ViridianMartDefaultScript: ret .PlayerMovement: - db D_LEFT, 1 - db D_UP, 2 + db PAD_LEFT, 1 + db PAD_UP, 2 db -1 ; end ViridianMartOaksParcelScript: From 78e44a8fb10307c55d53a69179b9ff7cd6f49fc0 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Mon, 30 Jun 2025 13:30:57 -0400 Subject: [PATCH 08/12] Use combined hardware constants --- engine/battle/core.asm | 6 +++--- engine/events/black_out.asm | 2 +- engine/joypad.asm | 2 +- engine/menus/main_menu.asm | 2 +- engine/movie/trade.asm | 2 +- engine/overworld/auto_movement.asm | 4 ++-- engine/overworld/ledges.asm | 2 +- engine/overworld/push_boulder.asm | 2 +- home/overworld.asm | 6 +++--- home/tilemap.asm | 8 ++++---- home/trainers.asm | 2 +- home/vcopy.asm | 2 +- ram/vram.asm | 4 ++-- ram/wram.asm | 6 +++--- scripts/BillsHouse.asm | 2 +- scripts/CeladonGym.asm | 2 +- scripts/CeruleanCity.asm | 6 +++--- scripts/CeruleanGym.asm | 2 +- scripts/ChampionsRoom.asm | 10 +++++----- scripts/CinnabarGym.asm | 2 +- scripts/FightingDojo.asm | 2 +- scripts/FuchsiaGym.asm | 2 +- scripts/GameCorner.asm | 2 +- scripts/HallOfFame.asm | 4 ++-- scripts/LancesRoom.asm | 2 +- scripts/MtMoonB2F.asm | 2 +- scripts/OaksLab.asm | 10 +++++----- scripts/PalletTown.asm | 10 +++++----- scripts/PewterCity.asm | 2 +- scripts/PewterGym.asm | 2 +- scripts/PokemonTower2F.asm | 2 +- scripts/PokemonTower5F.asm | 2 +- scripts/PokemonTower6F.asm | 4 ++-- scripts/PokemonTower7F.asm | 4 ++-- scripts/RocketHideoutB2F.asm | 2 +- scripts/RocketHideoutB3F.asm | 2 +- scripts/RocketHideoutB4F.asm | 2 +- scripts/Route16Gate1F.asm | 2 +- scripts/Route18Gate1F.asm | 2 +- scripts/Route22.asm | 6 +++--- scripts/Route24.asm | 2 +- scripts/SSAnne2F.asm | 4 ++-- scripts/SafariZoneGate.asm | 8 ++++---- scripts/SaffronGym.asm | 2 +- scripts/SilphCo11F.asm | 4 ++-- scripts/SilphCo7F.asm | 4 ++-- scripts/VermilionCity.asm | 2 +- scripts/VermilionGym.asm | 2 +- scripts/ViridianGym.asm | 4 ++-- 49 files changed, 86 insertions(+), 86 deletions(-) diff --git a/engine/battle/core.asm b/engine/battle/core.asm index f9b45a88..28c164e5 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -18,7 +18,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: call LoadFontTilePatterns call LoadHudAndHpBarAndStatusTilePatterns ld hl, vBGMap0 - ld bc, TILEMAP_WIDTH * TILEMAP_HEIGHT + ld bc, TILEMAP_AREA .clearBackgroundLoop ld a, " " ld [hli], a @@ -2561,9 +2561,9 @@ MoveSelectionMenu: ; Disable left, right, and START buttons in regular battles. ld a, [wStatusFlags7] bit BIT_TEST_BATTLE, a - ld b, PAD_UP | PAD_DOWN | PAD_A | PAD_B | PAD_SELECT + ld b, ~(PAD_LEFT | PAD_RIGHT | PAD_START) jr z, .matchedkeyspicked - ld b, PAD_UP | PAD_DOWN | PAD_LEFT | PAD_RIGHT | PAD_A | PAD_B | PAD_SELECT | PAD_START + ld b, PAD_CTRL_PAD | PAD_BUTTONS .matchedkeyspicked ld a, b ld [hli], a ; wMenuWatchedKeys diff --git a/engine/events/black_out.asm b/engine/events/black_out.asm index ea8ca3bb..f4b0e4bc 100644 --- a/engine/events/black_out.asm +++ b/engine/events/black_out.asm @@ -41,6 +41,6 @@ ResetStatusAndHalveMoneyOnBlackout:: set BIT_FLY_OR_DUNGEON_WARP, [hl] res BIT_FLY_WARP, [hl] set BIT_ESCAPE_WARP, [hl] - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a predef_jump HealParty diff --git a/engine/joypad.asm b/engine/joypad.asm index 2cb0d8db..b6c50e69 100644 --- a/engine/joypad.asm +++ b/engine/joypad.asm @@ -3,7 +3,7 @@ _Joypad:: ; hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput ldh a, [hJoyInput] - cp PAD_A + PAD_B + PAD_SELECT + PAD_START ; soft reset + cp PAD_BUTTONS ; soft reset jp z, TrySoftReset ld b, a diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm index 44219b14..a3fe6587 100644 --- a/engine/menus/main_menu.asm +++ b/engine/menus/main_menu.asm @@ -487,7 +487,7 @@ DisplayOptionMenu: call JoypadLowSensitivity ldh a, [hJoy5] ld b, a - and PAD_A | PAD_B | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN ; any key besides select pressed? + and ~PAD_SELECT ; any key besides select pressed? jr z, .getJoypadStateLoop bit B_PAD_B, b jr nz, .exitMenu diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm index f2ae9bb7..4d7bd54a 100644 --- a/engine/movie/trade.asm +++ b/engine/movie/trade.asm @@ -149,7 +149,7 @@ Trade_Delay80: Trade_ClearTileMap: hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA ld a, " " jp FillMemory diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm index 880f14a4..bed2ffb9 100644 --- a/engine/overworld/auto_movement.asm +++ b/engine/overworld/auto_movement.asm @@ -3,7 +3,7 @@ PlayerStepOutFromDoor:: res BIT_EXITING_DOOR, [hl] call IsPlayerStandingOnDoorTile jr nc, .notStandingOnDoor - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wMovementFlags set BIT_EXITING_DOOR, [hl] @@ -81,7 +81,7 @@ PalletMovementScript_OakMoveLeft: .done ld hl, wStatusFlags7 set BIT_NO_MAP_MUSIC, [hl] - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a ret diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index a85fae26..db8b9e97 100644 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -39,7 +39,7 @@ HandleLedges:: ldh a, [hJoyHeld] and e ret z - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wMovementFlags set BIT_LEDGE_OR_FISHING, [hl] diff --git a/engine/overworld/push_boulder.asm b/engine/overworld/push_boulder.asm index 54eecb21..2328b07a 100644 --- a/engine/overworld/push_boulder.asm +++ b/engine/overworld/push_boulder.asm @@ -28,7 +28,7 @@ TryPushingBoulder:: set BIT_TRIED_PUSH_BOULDER, [hl] ret z ; the player must try pushing twice before the boulder will move ldh a, [hJoyHeld] - and PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + and PAD_CTRL_PAD ret z predef CheckForCollisionWhenPushingBoulder ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult] diff --git a/home/overworld.asm b/home/overworld.asm index daa806d6..8c79d6e7 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -5,7 +5,7 @@ HandleMidJump:: EnterMap:: ; Load a new map. - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a call LoadMapData farcall ClearVariablesOnEnterMap @@ -432,7 +432,7 @@ CheckWarpsNoCollisionLoop:: pop bc pop de ldh a, [hJoyHeld] - and PAD_DOWN | PAD_UP | PAD_LEFT | PAD_RIGHT + and PAD_CTRL_PAD jr z, CheckWarpsNoCollisionRetry2 ; if directional buttons aren't being pressed, do not pass through the warp jr WarpFound1 @@ -1828,7 +1828,7 @@ JoypadOverworld:: cp ROUTE_17 ; Cycling Road jr nz, .notForcedDownwards ldh a, [hJoyHeld] - and PAD_DOWN | PAD_UP | PAD_LEFT | PAD_RIGHT | PAD_B | PAD_A + and PAD_CTRL_PAD | PAD_B | PAD_A jr nz, .notForcedDownwards ld a, PAD_DOWN ldh [hJoyHeld], a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press diff --git a/home/tilemap.asm b/home/tilemap.asm index afee7097..094c7c65 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -23,7 +23,7 @@ UncompressSpriteFromDE:: SaveScreenTilesToBuffer2:: hlcoord 0, 0 ld de, wTileMapBackup2 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyData ret @@ -39,14 +39,14 @@ LoadScreenTilesFromBuffer2DisableBGTransfer:: ldh [hAutoBGTransferEnabled], a ld hl, wTileMapBackup2 decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyData ret SaveScreenTilesToBuffer1:: hlcoord 0, 0 ld de, wTileMapBackup - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA jp CopyData LoadScreenTilesFromBuffer1:: @@ -54,7 +54,7 @@ LoadScreenTilesFromBuffer1:: ldh [hAutoBGTransferEnabled], a ld hl, wTileMapBackup decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, SCREEN_AREA call CopyData ld a, 1 ldh [hAutoBGTransferEnabled], a diff --git a/home/trainers.asm b/home/trainers.asm index 835121e1..ab8d5fff 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -149,7 +149,7 @@ ENDC xor a ; EXCLAMATION_BUBBLE ld [wWhichEmotionBubble], a predef EmotionBubble - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a xor a ldh [hJoyHeld], a diff --git a/home/vcopy.asm b/home/vcopy.asm index 6a9d9b7f..92c78a88 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -23,7 +23,7 @@ ClearBgMap:: jr .next ld a, l .next - ld de, TILEMAP_WIDTH * TILEMAP_HEIGHT + ld de, TILEMAP_AREA ld l, e .loop ld [hli], a diff --git a/ram/vram.asm b/ram/vram.asm index fe30b0e9..fafb5d8e 100644 --- a/ram/vram.asm +++ b/ram/vram.asm @@ -5,8 +5,8 @@ UNION vChars0:: ds $80 tiles vChars1:: ds $80 tiles vChars2:: ds $80 tiles -vBGMap0:: ds TILEMAP_WIDTH * TILEMAP_HEIGHT -vBGMap1:: ds TILEMAP_WIDTH * TILEMAP_HEIGHT +vBGMap0:: ds TILEMAP_AREA +vBGMap1:: ds TILEMAP_AREA NEXTU ; battle/menu diff --git a/ram/wram.asm b/ram/wram.asm index eff7baaa..f93d37d7 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -154,13 +154,13 @@ wShadowOAMEnd:: SECTION "Tilemap", WRAM0 ; buffer for tiles that are visible on screen (20 columns by 18 rows) -wTileMap:: ds SCREEN_WIDTH * SCREEN_HEIGHT +wTileMap:: ds SCREEN_AREA ; This union spans 480 bytes. UNION ; buffer for temporarily saving and restoring current screen's tiles ; (e.g. if menus are drawn on top) -wTileMapBackup:: ds SCREEN_WIDTH * SCREEN_HEIGHT +wTileMapBackup:: ds SCREEN_AREA NEXTU ; buffer for the blocks surrounding the player (6 columns by 5 rows of 4x4-tile blocks) @@ -921,7 +921,7 @@ UNION wSerialOtherGameboyRandomNumberListBlock:: ds $11 NEXTU ; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top) -wTileMapBackup2:: ds SCREEN_WIDTH * SCREEN_HEIGHT +wTileMapBackup2:: ds SCREEN_AREA ENDU ; This union spans 30 bytes. diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm index 6074b007..6b65aa38 100644 --- a/scripts/BillsHouse.asm +++ b/scripts/BillsHouse.asm @@ -62,7 +62,7 @@ BillsHousePokemonEntersMachineScript: BillsHouseBillExitsMachineScript: CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL ret z - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, BILLSHOUSE_BILL1 ld [wSpriteIndex], a diff --git a/scripts/CeladonGym.asm b/scripts/CeladonGym.asm index 10ffcfca..2e9e197b 100644 --- a/scripts/CeladonGym.asm +++ b/scripts/CeladonGym.asm @@ -40,7 +40,7 @@ CeladonGymErikaPostBattleScript: ld a, [wIsInBattle] cp $ff jp z, CeladonGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a CeladonGymReceiveTM21: diff --git a/scripts/CeruleanCity.asm b/scripts/CeruleanCity.asm index c08d0280..4412b49c 100644 --- a/scripts/CeruleanCity.asm +++ b/scripts/CeruleanCity.asm @@ -24,7 +24,7 @@ CeruleanCityRocketDefeatedScript: ld a, [wIsInBattle] cp $ff jp z, CeruleanCityClearScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF ld a, TEXT_CERULEANCITY_ROCKET @@ -78,7 +78,7 @@ ENDC call PlayMusic xor a ldh [hJoyHeld], a - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, [wXCoord] cp 20 ; is the player standing on the right side of the bridge? @@ -170,7 +170,7 @@ CeruleanCityRivalDefeatedScript: cp $ff jp z, CeruleanCityClearScripts call CeruleanCityFaceRivalScript - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_RIVAL ld a, TEXT_CERULEANCITY_RIVAL diff --git a/scripts/CeruleanGym.asm b/scripts/CeruleanGym.asm index e05b4659..752891f9 100644 --- a/scripts/CeruleanGym.asm +++ b/scripts/CeruleanGym.asm @@ -40,7 +40,7 @@ CeruleanGymMistyPostBattleScript: ld a, [wIsInBattle] cp $ff jp z, CeruleanGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a CeruleanGymReceiveTM11: diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm index 953ee9b5..68448b3d 100644 --- a/scripts/ChampionsRoom.asm +++ b/scripts/ChampionsRoom.asm @@ -28,7 +28,7 @@ ChampionsRoomDefaultScript: ret ChampionsRoomPlayerEntersScript: - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, RivalEntrance_RLEMovement @@ -96,7 +96,7 @@ ChampionsRoomRivalDefeatedScript: jp z, ResetRivalScript call UpdateSprites SetEvent EVENT_BEAT_CHAMPION_RIVAL - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_CHAMPIONSROOM_RIVAL ldh [hTextID], a @@ -205,7 +205,7 @@ ChampionsRoomOakExitsScript: ret ChampionsRoomPlayerFollowsOakScript: - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, WalkToHallOfFame_RLEMovement @@ -233,10 +233,10 @@ ChampionsRoomCleanupScript: ret ChampionsRoom_DisplayTextID_AllowABSelectStart: - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a call DisplayTextID - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ret diff --git a/scripts/CinnabarGym.asm b/scripts/CinnabarGym.asm index 600ae571..a4fc3c9d 100644 --- a/scripts/CinnabarGym.asm +++ b/scripts/CinnabarGym.asm @@ -140,7 +140,7 @@ CinnabarGymBlainePostBattleScript: ld a, [wIsInBattle] cp $ff jp z, CinnabarGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ; fallthrough CinnabarGymReceiveTM38: diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm index 78409ed2..04b35e82 100644 --- a/scripts/FightingDojo.asm +++ b/scripts/FightingDojo.asm @@ -68,7 +68,7 @@ FightingDojoKarateMasterPostBattleScript: ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay .already_facing - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 ld a, TEXT_FIGHTINGDOJO_KARATE_MASTER_I_WILL_GIVE_YOU_A_POKEMON diff --git a/scripts/FuchsiaGym.asm b/scripts/FuchsiaGym.asm index fc4a45ac..79b3e4ef 100644 --- a/scripts/FuchsiaGym.asm +++ b/scripts/FuchsiaGym.asm @@ -42,7 +42,7 @@ FuchsiaGymKogaPostBattleScript: ld a, [wIsInBattle] cp $ff jp z, FuchsiaGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ; fallthrough FuchsiaGymReceiveTM06: diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm index b1250857..028b5c88 100644 --- a/scripts/GameCorner.asm +++ b/scripts/GameCorner.asm @@ -55,7 +55,7 @@ GameCornerRocketBattleScript: ld a, [wIsInBattle] cp $ff jp z, GameCornerReenterMapAfterPlayerLoss - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_GAMECORNER_ROCKET_AFTER_BATTLE ldh [hTextID], a diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm index 84ef26c6..eb26afaf 100644 --- a/scripts/HallOfFame.asm +++ b/scripts/HallOfFame.asm @@ -58,7 +58,7 @@ HallOfFameResetEventsAndSaveScript: jp Init HallOfFameDefaultScript: - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, HallOfFameEntryMovement @@ -94,7 +94,7 @@ HallOfFameOakCongratulationsScript: ld a, TEXT_HALLOFFAME_OAK ldh [hTextID], a call DisplayTextID - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, HS_CERULEAN_CAVE_GUY ld [wMissableObjectIndex], a diff --git a/scripts/LancesRoom.asm b/scripts/LancesRoom.asm index 169aa17d..0a040ea6 100644 --- a/scripts/LancesRoom.asm +++ b/scripts/LancesRoom.asm @@ -95,7 +95,7 @@ LancesRoomLanceEndBattleScript: WalkToLance: ; Moves the player down the hallway to Lance's room. - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd ld de, WalkToLance_RLEList diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm index 80236aed..34f11d99 100644 --- a/scripts/MtMoonB2F.asm +++ b/scripts/MtMoonB2F.asm @@ -132,7 +132,7 @@ MtMoonB2FSuperNerdTakesOtherFossilScript: ld a, [wStatusFlags5] bit BIT_SCRIPTED_NPC_MOVEMENT, a ret nz - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm index 8a2b7de3..9695b99e 100644 --- a/scripts/OaksLab.asm +++ b/scripts/OaksLab.asm @@ -126,7 +126,7 @@ OaksLabFollowedOakScript: ret OaksLabOakChooseMonSpeechScript: - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_OAKSLAB_RIVAL_FED_UP_WITH_WAITING ldh [hTextID], a @@ -293,7 +293,7 @@ OaksLabRivalChoosesStarterScript: ld a, [wStatusFlags5] bit BIT_SCRIPTED_NPC_MOVEMENT, a ret nz - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, OAKSLAB_RIVAL ldh [hSpriteIndex], a @@ -416,7 +416,7 @@ OaksLabRivalStartBattleScript: ret OaksLabRivalEndBattleScript: - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a @@ -557,7 +557,7 @@ OaksLabOakGivesPokedexScript: ret nz call EnableAutoTextBoxDrawing call PlayDefaultMusic - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a call OaksLabRivalFaceUpOakFaceDownScript ld a, TEXT_OAKSLAB_RIVAL_WHAT_DID_YOU_CALL_ME_FOR @@ -931,7 +931,7 @@ OaksLabMonChoiceMenu: call AddPartyMon ld hl, wStatusFlags4 set BIT_GOT_STARTER, [hl] - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, SCRIPT_OAKSLAB_CHOSE_STARTER_SCRIPT ld [wOaksLabCurScript], a diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm index cf6231ea..57c231fa 100644 --- a/scripts/PalletTown.asm +++ b/scripts/PalletTown.asm @@ -34,7 +34,7 @@ PalletTownDefaultScript: ld c, a ld a, MUSIC_MEET_PROF_OAK ; "oak appears" music call PlayMusic - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_OAK_APPEARED_IN_PALLET @@ -49,7 +49,7 @@ PalletTownOakHeyWaitScript: ld a, TEXT_PALLETTOWN_OAK ldh [hTextID], a call DisplayTextID - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, HS_PALLET_TOWN_OAK ld [wMissableObjectIndex], a @@ -82,7 +82,7 @@ PalletTownOakWalksToPlayerScript: ld a, PALLETTOWN_OAK ldh [hSpriteIndex], a call MoveSprite - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ; trigger the next script @@ -98,13 +98,13 @@ PalletTownOakNotSafeComeWithMeScript: ld [wSpritePlayerStateData1FacingDirection], a ld a, TRUE ld [wOakWalkedToPlayer], a - ld a, PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_PALLETTOWN_OAK ldh [hTextID], a call DisplayTextID ; set up movement script that causes the player to follow Oak to his lab - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, PALLETTOWN_OAK ld [wSpriteIndex], a diff --git a/scripts/PewterCity.asm b/scripts/PewterCity.asm index 961e5ee4..f17ff370 100644 --- a/scripts/PewterCity.asm +++ b/scripts/PewterCity.asm @@ -31,7 +31,7 @@ ENDC ld hl, PewterCityPlayerLeavingEastCoords call ArePlayerCoordsInArray ret nc - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_PEWTERCITY_YOUNGSTER ldh [hTextID], a diff --git a/scripts/PewterGym.asm b/scripts/PewterGym.asm index a56c848e..0f4b9ebe 100644 --- a/scripts/PewterGym.asm +++ b/scripts/PewterGym.asm @@ -40,7 +40,7 @@ PewterGymBrockPostBattle: ld a, [wIsInBattle] cp $ff jp z, PewterGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ; fallthrough PewterGymScriptReceiveTM34: diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm index ec04c623..d3b6c9a4 100644 --- a/scripts/PokemonTower2F.asm +++ b/scripts/PokemonTower2F.asm @@ -67,7 +67,7 @@ PokemonTower2FDefeatedRivalScript: ld a, [wIsInBattle] cp $ff jp z, PokemonTower2FResetRivalEncounter - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL ld a, TEXT_POKEMONTOWER2F_RIVAL diff --git a/scripts/PokemonTower5F.asm b/scripts/PokemonTower5F.asm index fb023a0b..4c083980 100644 --- a/scripts/PokemonTower5F.asm +++ b/scripts/PokemonTower5F.asm @@ -26,7 +26,7 @@ PokemonTower5FDefaultScript: ret nz xor a ldh [hJoyHeld], a - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld hl, wStatusFlags4 set BIT_NO_BATTLES, [hl] diff --git a/scripts/PokemonTower6F.asm b/scripts/PokemonTower6F.asm index 861fdd65..ad71ad6d 100644 --- a/scripts/PokemonTower6F.asm +++ b/scripts/PokemonTower6F.asm @@ -50,13 +50,13 @@ PokemonTower6FMarowakBattleScript: ld a, [wIsInBattle] cp $ff jp z, PokemonTower6FSetDefaultScript - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, [wStatusFlags3] bit BIT_TALKED_TO_TRAINER, a ret nz call UpdateSprites - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, [wBattleResult] and a diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm index e8ff81af..3d8cd636 100644 --- a/scripts/PokemonTower7F.asm +++ b/scripts/PokemonTower7F.asm @@ -29,7 +29,7 @@ PokemonTower7FEndBattleScript: cp $ff jp z, PokemonTower7FSetDefaultScript call EndTrainerBattle - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, [wSpriteIndex] ldh [hSpriteIndex], a @@ -65,7 +65,7 @@ PokemonTower7FHideNPCScript: ret PokemonTower7FWarpToMrFujiHouseScript: - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, HS_POKEMON_TOWER_7F_MR_FUJI ld [wMissableObjectIndex], a diff --git a/scripts/RocketHideoutB2F.asm b/scripts/RocketHideoutB2F.asm index a57cecbd..080f1539 100644 --- a/scripts/RocketHideoutB2F.asm +++ b/scripts/RocketHideoutB2F.asm @@ -28,7 +28,7 @@ RocketHideoutB2FDefaultScript: call StartSimulatingJoypadStates ld a, SFX_ARROW_TILES call PlaySound - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, SCRIPT_ROCKETHIDEOUTB2F_PLAYER_SPINNING ld [wCurMapScript], a diff --git a/scripts/RocketHideoutB3F.asm b/scripts/RocketHideoutB3F.asm index bf6a1176..eb1073d4 100644 --- a/scripts/RocketHideoutB3F.asm +++ b/scripts/RocketHideoutB3F.asm @@ -28,7 +28,7 @@ RocketHideoutB3FDefaultScript: call StartSimulatingJoypadStates ld a, SFX_ARROW_TILES call PlaySound - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, SCRIPT_ROCKETHIDEOUTB3F_PLAYER_SPINNING ld [wCurMapScript], a diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm index 3920f70d..edc51351 100644 --- a/scripts/RocketHideoutB4F.asm +++ b/scripts/RocketHideoutB4F.asm @@ -49,7 +49,7 @@ RocketHideoutB4FBeatGiovanniScript: cp $ff jp z, RocketHideoutB4FSetDefaultScript call UpdateSprites - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI ld a, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN diff --git a/scripts/Route16Gate1F.asm b/scripts/Route16Gate1F.asm index 464cb939..8f02a616 100644 --- a/scripts/Route16Gate1F.asm +++ b/scripts/Route16Gate1F.asm @@ -55,7 +55,7 @@ Route16Gate1FPlayerMovingUpScript: ld a, [wSimulatedJoypadStatesIndex] and a ret nz - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a Route16Gate1FGuardScript: diff --git a/scripts/Route18Gate1F.asm b/scripts/Route18Gate1F.asm index d97e3101..3bf2f8e6 100644 --- a/scripts/Route18Gate1F.asm +++ b/scripts/Route18Gate1F.asm @@ -55,7 +55,7 @@ Route18Gate1FPlayerMovingUpScript: ld a, [wSimulatedJoypadStatesIndex] and a ret nz - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a Route18Gate1FGuardScript: diff --git a/scripts/Route22.asm b/scripts/Route22.asm index cab9ec33..80f54290 100644 --- a/scripts/Route22.asm +++ b/scripts/Route22.asm @@ -65,7 +65,7 @@ Route22DefaultScript: ld [wSavedCoordIndex], a xor a ldh [hJoyHeld], a - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, PLAYER_DIR_LEFT ld [wPlayerMovingDirection], a @@ -162,7 +162,7 @@ Route22Rival1AfterBattleScript: ld a, ROUTE22_RIVAL1 ldh [hSpriteIndex], a call SetSpriteFacingDirectionAndDelay - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE ld a, TEXT_ROUTE22_RIVAL1 @@ -321,7 +321,7 @@ Route22Rival2AfterBattleScript: .set_rival_facing_direction ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE ld a, TEXT_ROUTE22_RIVAL2 diff --git a/scripts/Route24.asm b/scripts/Route24.asm index c18da62f..b66e6703 100644 --- a/scripts/Route24.asm +++ b/scripts/Route24.asm @@ -64,7 +64,7 @@ Route24AfterRocketBattleScript: cp $ff jp z, Route24SetDefaultScript call UpdateSprites - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE24_ROCKET ld a, TEXT_ROUTE24_COOLTRAINER_M1 diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm index 45dece40..ee860fd9 100644 --- a/scripts/SSAnne2F.asm +++ b/scripts/SSAnne2F.asm @@ -42,7 +42,7 @@ SSAnne2FDefaultScript: call SetSpriteMovementBytesToFF xor a ldh [hJoyHeld], a - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ldh a, [hSavedCoordIndex] cp $2 @@ -126,7 +126,7 @@ SSAnne2FRivalAfterBattleScript: cp $ff jp z, SSAnne2FResetScripts call SSAnne2FSetFacingDirectionScript - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_SSANNE2F_RIVAL_CUT_MASTER ldh [hTextID], a diff --git a/scripts/SafariZoneGate.asm b/scripts/SafariZoneGate.asm index 87b6ec6d..3052cac9 100644 --- a/scripts/SafariZoneGate.asm +++ b/scripts/SafariZoneGate.asm @@ -22,7 +22,7 @@ SafariZoneGateDefaultScript: ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_1 ldh [hTextID], a call DisplayTextID - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a xor a ldh [hJoyHeld], a @@ -38,7 +38,7 @@ SafariZoneGateDefaultScript: ld a, PAD_RIGHT ld c, 1 call SafariZoneEntranceAutoWalk - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_RIGHT ld [wSafariZoneGateCurScript], a @@ -60,7 +60,7 @@ SafariZoneGateWouldYouLikeToJoinScript: ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_WOULD_YOU_LIKE_TO_JOIN ldh [hTextID], a call DisplayTextID - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ret @@ -80,7 +80,7 @@ SafariZoneGateLeavingSafariScript: jr z, .leaving_early ResetEventReuseHL EVENT_IN_SAFARI_ZONE call UpdateSprites - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_SAFARIZONEGATE_SAFARI_ZONE_WORKER1_GOOD_HAUL_COME_AGAIN ldh [hTextID], a diff --git a/scripts/SaffronGym.asm b/scripts/SaffronGym.asm index afa37fe9..46ebf2c6 100644 --- a/scripts/SaffronGym.asm +++ b/scripts/SaffronGym.asm @@ -40,7 +40,7 @@ SaffronGymSabrinaPostBattle: ld a, [wIsInBattle] cp $ff jp z, SaffronGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SaffronGymSabrinaReceiveTM46Script: diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm index c1f3ff6b..75c545e3 100644 --- a/scripts/SilphCo11F.asm +++ b/scripts/SilphCo11F.asm @@ -173,7 +173,7 @@ SilphCo11FDefaultScript: ld [wSavedCoordIndex], a xor a ldh [hJoyHeld], a - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_SILPHCO11F_GIOVANNI ldh [hTextID], a @@ -220,7 +220,7 @@ SilphCo11FGiovanniAfterBattleScript: ld b, SPRITE_FACING_DOWN .continue call SilphCo11FSetPlayerAndSpriteFacingDirectionScript - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, TEXT_SILPHCO11F_GIOVANNI_YOU_RUINED_OUR_PLANS ldh [hTextID], a diff --git a/scripts/SilphCo7F.asm b/scripts/SilphCo7F.asm index f52fd56a..29e5fdd3 100644 --- a/scripts/SilphCo7F.asm +++ b/scripts/SilphCo7F.asm @@ -127,7 +127,7 @@ SilphCo7FDefaultScript: jp nc, CheckFightingMapTrainers xor a ldh [hJoyHeld], a - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ld a, PLAYER_DIR_DOWN ld [wPlayerMovingDirection], a @@ -207,7 +207,7 @@ SilphCo7FRivalAfterBattleScript: ld a, [wIsInBattle] cp $ff jp z, SilphCo7FSetDefaultScript - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a SetEvent EVENT_BEAT_SILPH_CO_RIVAL ld a, PLAYER_DIR_DOWN diff --git a/scripts/VermilionCity.asm b/scripts/VermilionCity.asm index 5d19ed64..591e180c 100644 --- a/scripts/VermilionCity.asm +++ b/scripts/VermilionCity.asm @@ -81,7 +81,7 @@ VermilionCityPlayerAllowedToPassScript: ret VermilionCityPlayerExitShipScript: - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, PAD_UP ld [wSimulatedJoypadStatesEnd], a diff --git a/scripts/VermilionGym.asm b/scripts/VermilionGym.asm index 3fdd713d..19b2e202 100644 --- a/scripts/VermilionGym.asm +++ b/scripts/VermilionGym.asm @@ -59,7 +59,7 @@ VermilionGymLTSurgeAfterBattleScript: ld a, [wIsInBattle] cp $ff ; did we lose? jp z, VermilionGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a VermilionGymLTSurgeReceiveTM24Script: diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm index 49253c4b..6f195037 100644 --- a/scripts/ViridianGym.asm +++ b/scripts/ViridianGym.asm @@ -45,7 +45,7 @@ ViridianGymDefaultScript: set BIT_SPINNING, [hl] ld a, SFX_ARROW_TILES call PlaySound - ld a, PAD_A | PAD_B | PAD_SELECT | PAD_START | PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_BUTTONS | PAD_CTRL_PAD ld [wJoyIgnore], a ld a, SCRIPT_VIRIDIANGYM_PLAYER_SPINNING ld [wCurMapScript], a @@ -132,7 +132,7 @@ ViridianGymGiovanniPostBattle: ld a, [wIsInBattle] cp $ff jp z, ViridianGymResetScripts - ld a, PAD_RIGHT | PAD_LEFT | PAD_UP | PAD_DOWN + ld a, PAD_CTRL_PAD ld [wJoyIgnore], a ; fallthrough ViridianGymReceiveTM27: From 1e997474be15950eb3176864b346b96504760e67 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Mon, 30 Jun 2025 13:42:56 -0400 Subject: [PATCH 09/12] Use more audio constants --- audio/engine_1.asm | 22 +++++++++++----------- audio/engine_2.asm | 22 +++++++++++----------- audio/engine_3.asm | 22 +++++++++++----------- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/audio/engine_1.asm b/audio/engine_1.asm index 57eb12ed..98c6a71d 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -22,7 +22,7 @@ Audio1_UpdateMusic:: xor a ; disable all channels' output ldh [rAUDTERM], a ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a jr .nextChannel .applyAffects @@ -182,9 +182,9 @@ Audio1_sound_ret: cp CHAN7 jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output - ld a, $0 + ld a, AUD3ENA_OFF ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a .skipSfxChannel3 jr nz, .dontDisable @@ -927,7 +927,7 @@ Audio1_ApplyWavePatternAndFrequency: inc hl ld d, [hl] ld hl, _AUD3WAVERAM - ld b, $f + ld b, AUD3WAVE_SIZE - 1 ld a, $0 ; stop hardware channel 3 ldh [rAUD3ENA], a .loop @@ -938,7 +938,7 @@ Audio1_ApplyWavePatternAndFrequency: dec b and a jr nz, .loop - ld a, $80 ; start hardware channel 3 + ld a, AUD3ENA_ON ; start hardware channel 3 ldh [rAUD3ENA], a pop de .notChannel3 @@ -1401,13 +1401,13 @@ Audio1_PlaySound:: ld [wStereoPanning], a xor a ldh [rAUDVOL], a - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ld a, 0 ldh [rAUDTERM], a xor a ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a ld a, $77 ldh [rAUDVOL], a @@ -1555,7 +1555,7 @@ Audio1_PlaySound:: ld a, e cp CHAN5 jr nz, .skipSweepDisable - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ; sweep off .skipSweepDisable ld a, c @@ -1565,18 +1565,18 @@ Audio1_PlaySound:: jp .sfxChannelLoop .stopAllAudio - ld a, $80 + ld a, AUDENA_ON ldh [rAUDENA], a ; sound hardware on ldh [rAUD3ENA], a ; wave playback on xor a ldh [rAUDTERM], a ; no sound output ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel) - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ; sweep off ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1) ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2) ldh [rAUD4ENV], a ; mute channel 4 (noise channel) - ld a, $40 + ld a, AUD1HIGH_LENGTH_ON ldh [rAUD1HIGH], a ; counter mode ldh [rAUD2HIGH], a ldh [rAUD4GO], a diff --git a/audio/engine_2.asm b/audio/engine_2.asm index a7c8692a..296a5a2f 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -24,7 +24,7 @@ Audio2_UpdateMusic:: xor a ; disable all channels' output ldh [rAUDTERM], a ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a jr .nextChannel .applyAffects @@ -193,9 +193,9 @@ Audio2_sound_ret: cp CHAN7 jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output - ld a, $0 + ld a, AUD3ENA_OFF ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a .skipSfxChannel3 jr nz, .dontDisable @@ -938,7 +938,7 @@ Audio2_ApplyWavePatternAndFrequency: inc hl ld d, [hl] ld hl, _AUD3WAVERAM - ld b, $f + ld b, AUD3WAVE_SIZE - 1 ld a, $0 ; stop hardware channel 3 ldh [rAUD3ENA], a .loop @@ -949,7 +949,7 @@ Audio2_ApplyWavePatternAndFrequency: dec b and a jr nz, .loop - ld a, $80 ; start hardware channel 3 + ld a, AUD3ENA_ON ; start hardware channel 3 ldh [rAUD3ENA], a pop de .notChannel3 @@ -1464,13 +1464,13 @@ Audio2_PlaySound:: ld [wStereoPanning], a xor a ldh [rAUDVOL], a - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ld a, 0 ldh [rAUDTERM], a xor a ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a ld a, $77 ldh [rAUDVOL], a @@ -1618,7 +1618,7 @@ Audio2_PlaySound:: ld a, e cp CHAN5 jr nz, .skipSweepDisable - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ; sweep off .skipSweepDisable ld a, c @@ -1628,18 +1628,18 @@ Audio2_PlaySound:: jp .sfxChannelLoop .stopAllAudio - ld a, $80 + ld a, AUDENA_ON ldh [rAUDENA], a ; sound hardware on ldh [rAUD3ENA], a ; wave playback on xor a ldh [rAUDTERM], a ; no sound output ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel) - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ; sweep off ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1) ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2) ldh [rAUD4ENV], a ; mute channel 4 (noise channel) - ld a, $40 + ld a, AUD1HIGH_LENGTH_ON ldh [rAUD1HIGH], a ; counter mode ldh [rAUD2HIGH], a ldh [rAUD4GO], a diff --git a/audio/engine_3.asm b/audio/engine_3.asm index 76115420..3fffb82f 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -22,7 +22,7 @@ Audio3_UpdateMusic:: xor a ; disable all channels' output ldh [rAUDTERM], a ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a jr .nextChannel .applyAffects @@ -182,9 +182,9 @@ Audio3_sound_ret: cp CHAN7 jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output - ld a, $0 + ld a, AUD3ENA_OFF ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a .skipSfxChannel3 jr nz, .dontDisable @@ -927,7 +927,7 @@ Audio3_ApplyWavePatternAndFrequency: inc hl ld d, [hl] ld hl, _AUD3WAVERAM - ld b, $f + ld b, AUD3WAVE_SIZE - 1 ld a, $0 ; stop hardware channel 3 ldh [rAUD3ENA], a .loop @@ -938,7 +938,7 @@ Audio3_ApplyWavePatternAndFrequency: dec b and a jr nz, .loop - ld a, $80 ; start hardware channel 3 + ld a, AUD3ENA_ON ; start hardware channel 3 ldh [rAUD3ENA], a pop de .notChannel3 @@ -1401,13 +1401,13 @@ Audio3_PlaySound:: ld [wStereoPanning], a xor a ldh [rAUDVOL], a - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ld a, 0 ldh [rAUDTERM], a xor a ldh [rAUD3ENA], a - ld a, $80 + ld a, AUD3ENA_ON ldh [rAUD3ENA], a ld a, $77 ldh [rAUDVOL], a @@ -1555,7 +1555,7 @@ Audio3_PlaySound:: ld a, e cp CHAN5 jr nz, .skipSweepDisable - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ; sweep off .skipSweepDisable ld a, c @@ -1565,18 +1565,18 @@ Audio3_PlaySound:: jp .sfxChannelLoop .stopAllAudio - ld a, $80 + ld a, AUDENA_ON ldh [rAUDENA], a ; sound hardware on ldh [rAUD3ENA], a ; wave playback on xor a ldh [rAUDTERM], a ; no sound output ldh [rAUD3LEVEL], a ; mute channel 3 (wave channel) - ld a, $8 + ld a, AUD1SWEEP_DOWN ldh [rAUD1SWEEP], a ; sweep off ldh [rAUD1ENV], a ; mute channel 1 (pulse channel 1) ldh [rAUD2ENV], a ; mute channel 2 (pulse channel 2) ldh [rAUD4ENV], a ; mute channel 4 (noise channel) - ld a, $40 + ld a, AUD1HIGH_LENGTH_ON ldh [rAUD1HIGH], a ; counter mode ldh [rAUD2HIGH], a ldh [rAUD4GO], a From aa85c0046d06b306d99e3b48460782ac04814975 Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Wed, 2 Jul 2025 17:25:03 -0400 Subject: [PATCH 10/12] Define `MAX_WARP_EVENTS` --- constants/map_data_constants.asm | 3 +++ macros/scripts/maps.asm | 2 ++ ram/wram.asm | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm index b28b3d79..9d816a6a 100644 --- a/constants/map_data_constants.asm +++ b/constants/map_data_constants.asm @@ -16,6 +16,9 @@ DEF MAP_BORDER EQU 3 shift_const SOUTH ; 4 shift_const NORTH ; 8 +; wWarpEntries +DEF MAX_WARP_EVENTS EQU 32 + ; flower and water tile animations const_def const TILEANIM_NONE ; 0 diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm index 2837d0c0..63b41424 100644 --- a/macros/scripts/maps.asm +++ b/macros/scripts/maps.asm @@ -84,6 +84,8 @@ MACRO def_warps_to FOR n, {_NUM_WARP_EVENTS} warp_to _WARP_{d:n}_X, _WARP_{d:n}_Y, \1_WIDTH ENDR + ASSERT {_NUM_WARP_EVENTS} <= MAX_WARP_EVENTS, \ + "Too many warp_events (above {d:MAX_WARP_EVENTS})!" ENDM ;\1 x position diff --git a/ram/wram.asm b/ram/wram.asm index f93d37d7..4e3e6411 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1815,11 +1815,11 @@ wObjectDataPointerTemp:: dw ; the tile shown outside the boundaries of the map wMapBackgroundTile:: db -; number of warps in current map (up to 32) +; number of warps in current map (up to MAX_WARP_EVENTS) wNumberOfWarps:: db ; current map warp entries -wWarpEntries:: ds 32 * 4 ; Y, X, warp ID, map ID +wWarpEntries:: ds MAX_WARP_EVENTS * 4 ; Y, X, warp ID, map ID ; if $ff, the player's coordinates are not updated when entering the map wDestinationWarpID:: db From 3f4b3ee96fe9c2f0d13c89be5be98fa31213c35c Mon Sep 17 00:00:00 2001 From: Rangi42 Date: Wed, 2 Jul 2025 18:32:31 -0400 Subject: [PATCH 11/12] Check limits for warp, bg, and object events --- constants/map_data_constants.asm | 6 ++++++ macros/scripts/maps.asm | 8 ++++++-- ram/wram.asm | 12 ++++++------ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm index 9d816a6a..32a56518 100644 --- a/constants/map_data_constants.asm +++ b/constants/map_data_constants.asm @@ -19,6 +19,12 @@ DEF MAP_BORDER EQU 3 ; wWarpEntries DEF MAX_WARP_EVENTS EQU 32 +; wNumSigns +DEF MAX_BG_EVENTS EQU 16 + +; wMapSpriteData +DEF MAX_OBJECT_EVENTS EQU 16 + ; flower and water tile animations const_def const TILEANIM_NONE ; 0 diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm index 63b41424..49150c6e 100644 --- a/macros/scripts/maps.asm +++ b/macros/scripts/maps.asm @@ -72,6 +72,12 @@ ENDM ;\1 source map MACRO def_warps_to + ASSERT {_NUM_WARP_EVENTS} <= MAX_WARP_EVENTS, \ + "Too many warp_events (above {d:MAX_WARP_EVENTS})!" + ASSERT {_NUM_BG_EVENTS} <= MAX_BG_EVENTS, \ + "Too many bg_events (above {d:MAX_BG_EVENTS})!" + ASSERT {_NUM_OBJECT_EVENTS} <= MAX_OBJECT_EVENTS, \ + "Too many object_events (above {d:MAX_OBJECT_EVENTS})!" ; text ID values are significant (see DisplayTextID in home/text_scripts.asm) FOR n, {_NUM_BG_EVENTS} ASSERT {_BG_EVENT_{d:n}_TEXT_ID} > {_NUM_OBJECT_EVENTS}, \ @@ -84,8 +90,6 @@ MACRO def_warps_to FOR n, {_NUM_WARP_EVENTS} warp_to _WARP_{d:n}_X, _WARP_{d:n}_Y, \1_WIDTH ENDR - ASSERT {_NUM_WARP_EVENTS} <= MAX_WARP_EVENTS, \ - "Too many warp_events (above {d:MAX_WARP_EVENTS})!" ENDM ;\1 x position diff --git a/ram/wram.asm b/ram/wram.asm index 4e3e6411..504eb646 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1826,13 +1826,13 @@ wDestinationWarpID:: db ds 128 -; number of signs in the current map (up to 16) +; number of signs in the current map (up to MAX_BG_EVENTS) wNumSigns:: db -wSignCoords:: ds 16 * 2 ; Y, X -wSignTextIDs:: ds 16 +wSignCoords:: ds MAX_BG_EVENTS * 2 ; Y, X +wSignTextIDs:: ds MAX_BG_EVENTS -; number of sprites on the current map (up to 16) +; number of sprites on the current map (up to MAX_OBJECT_EVENTS) wNumSprites:: db ; these two variables track the X and Y offset in blocks from the last special warp used @@ -1840,8 +1840,8 @@ wNumSprites:: db wYOffsetSinceLastSpecialWarp:: db wXOffsetSinceLastSpecialWarp:: db -wMapSpriteData:: ds 16 * 2 ; movement byte 2, text ID -wMapSpriteExtraData:: ds 16 * 2 ; trainer class/item ID, trainer set ID +wMapSpriteData:: ds MAX_OBJECT_EVENTS * 2 ; movement byte 2, text ID +wMapSpriteExtraData:: ds MAX_OBJECT_EVENTS * 2 ; trainer class/item ID, trainer set ID ; map height in 2x2 meta-tiles wCurrentMapHeight2:: db From d6e9f538256c927758bdfbbdb99e0f5843e4a2b7 Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Wed, 2 Jul 2025 20:17:19 -0400 Subject: [PATCH 12/12] Require RGBDS 0.9.3 for its DMG palette specs (#513) --- .github/workflows/main.yml | 2 +- .rgbds-version | 2 +- INSTALL.md | 20 ++++++++++---------- Makefile | 8 ++++---- rgbdscheck.asm | 6 +++--- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4f1e352f..570c217c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@master with: path: rgbds - ref: v0.9.2 + ref: v0.9.3 repository: gbdev/rgbds - name: Install rgbds diff --git a/.rgbds-version b/.rgbds-version index 2003b639..965065db 100644 --- a/.rgbds-version +++ b/.rgbds-version @@ -1 +1 @@ -0.9.2 +0.9.3 diff --git a/INSTALL.md b/INSTALL.md index 047dc211..7add0173 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho Double click on the text that says "**Skip**" next to each package to select the most recent version to install. -Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.9.2**. +Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.9.3**. -**Note:** If you already have an installed rgbds older than 0.9.2, you will need to update to 0.9.2. Ignore this if you have never installed rgbds before. If a version newer than 0.9.2 does not work, try downloading 0.9.2. +**Note:** If you already have an installed rgbds older than 0.9.3, you will need to update to 0.9.3. Ignore this if you have never installed rgbds before. If a version newer than 0.9.3 does not work, try downloading 0.9.3. Now open the **Cygwin terminal** and enter the following commands. @@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions. Open **Terminal** and prepare to enter commands. -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.9.2**. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.9.3**. Now you're ready to [build **pokered**](#build-pokered). @@ -84,7 +84,7 @@ To install the software required for **pokered**: sudo apt-get install make gcc git ``` -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source. ### OpenSUSE @@ -94,7 +94,7 @@ To install the software required for **pokered**: sudo zypper install make gcc git ``` -Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source. +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source. ### Arch Linux @@ -104,7 +104,7 @@ To install the software required for **pokered**: sudo pacman -S make gcc git rgbds ``` -If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source. +If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source. ### Termux @@ -120,7 +120,7 @@ To install **rgbds**: pkg install rgbds ``` -If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source. +If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source. ### Other distros @@ -131,7 +131,7 @@ If your distro is not listed here, try to find the required software in its repo - `git` - `rgbds` -If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.2** from source. +If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.9.3** from source. Now you're ready to [build **pokered**](#build-pokered). @@ -153,8 +153,8 @@ make ### Build with a local rgbds version -If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.9.2 globally. Instead, you can put its files in a directory within pokered, such as `pokered/rgbds-0.9.2/`. Then specify it when you run `make`: +If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.9.3 globally. Instead, you can put its files in a directory within pokered, such as `pokered/rgbds-0.9.3/`. Then specify it when you run `make`: ```bash -make RGBDS=rgbds-0.9.2/ +make RGBDS=rgbds-0.9.3/ ``` diff --git a/Makefile b/Makefile index e64c4254..412fb3b8 100644 --- a/Makefile +++ b/Makefile @@ -178,14 +178,14 @@ gfx/trade/game_boy.2bpp: tools/gfx += --remove-duplicates %.png: ; %.2bpp: %.png - $(RGBGFX) $(rgbgfx) -o $@ $< + $(RGBGFX) --colors dmg=e4 $(rgbgfx) -o $@ $< $(if $(tools/gfx),\ - tools/gfx $(tools/gfx) -o $@ $@) + tools/gfx $(tools/gfx) -o $@ $@ || $$($(RM) $@ && false)) %.1bpp: %.png - $(RGBGFX) $(rgbgfx) --depth 1 -o $@ $< + $(RGBGFX) --colors dmg=e4 $(rgbgfx) --depth 1 -o $@ $< $(if $(tools/gfx),\ - tools/gfx $(tools/gfx) --depth 1 -o $@ $@) + tools/gfx $(tools/gfx) --depth 1 -o $@ $@ || $$($(RM) $@ && false)) %.pic: %.2bpp tools/pkmncompress $< $@ diff --git a/rgbdscheck.asm b/rgbdscheck.asm index 9b215d5d..4198765b 100644 --- a/rgbdscheck.asm +++ b/rgbdscheck.asm @@ -1,6 +1,6 @@ IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__) - fail "pokered requires rgbds v0.9.2 or newer." + fail "pokered requires rgbds v0.9.3 or newer." ENDC -IF __RGBDS_MAJOR__ == 0 && (__RGBDS_MINOR__ < 9 || (__RGBDS_MINOR__ == 9 && __RGBDS_PATCH__ < 2)) - fail "pokered requires rgbds v0.9.2 or newer." +IF __RGBDS_MAJOR__ == 0 && (__RGBDS_MINOR__ < 9 || (__RGBDS_MINOR__ == 9 && __RGBDS_PATCH__ < 3)) + fail "pokered requires rgbds v0.9.3 or newer." ENDC