shithub: pokered

Download patch

ref: 06db7ec55bbc87ed18db72a53fb20fa7b4da9b29
parent: 77ed5f3820301f9f301f12bf2f201d9bdab9e7e1
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Mon Jul 6 17:18:22 EDT 2020

callba/callab -> farcall/callfar; jpba/jpab -> farjp/jpfar

--- a/engine/battle/common_text.asm
+++ b/engine/battle/common_text.asm
@@ -24,7 +24,7 @@
 	ld hl, TrainerWantsToFightText
 .wildBattle
 	push hl
-	callab DrawAllPokeballs
+	callfar DrawAllPokeballs
 	pop hl
 	call PrintText
 	jr .done
@@ -38,7 +38,7 @@
 	ld a, b
 	and a
 	jr z, .noSilphScope
-	callab LoadEnemyMonData
+	callfar LoadEnemyMonData
 	jr .notPokemonTower
 .noSilphScope
 	ld hl, EnemyAppearedText
@@ -54,8 +54,8 @@
 	call PrintText
 	ld hl, UnveiledGhostText
 	call PrintText
-	callab LoadEnemyMonData
-	callab MarowakAnim
+	callfar LoadEnemyMonData
+	callfar MarowakAnim
 	ld hl, WildMonAppearedText
 	call PrintText
 
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -97,7 +97,7 @@
 	ld b, SET_PAL_BATTLE
 	call RunPaletteCommand
 	call HideSprites
-	jpab PrintBeginningBattleText
+	jpfar PrintBeginningBattleText
 
 ; when a battle is starting, silhouettes of the player's pic and the enemy's pic are slid onto the screen
 ; the lower of the player's pic (his body) is part of the background, but his head is a sprite
@@ -178,7 +178,7 @@
 	ld hl, .outOfSafariBallsText
 	jp PrintText
 .notOutOfSafariBalls
-	callab PrintSafariZoneBattleText
+	callfar PrintSafariZoneBattleText
 	ld a, [wEnemyMonSpeed + 1]
 	add a
 	ld b, a ; init b (which is later compared with random value) to (enemy speed % 256) * 2
@@ -267,7 +267,7 @@
 	call PlaySoundWaitForCurrent
 	xor a
 	ldh [hWhoseTurn], a
-	jpab AnimationSlideEnemyMonOff
+	jpfar AnimationSlideEnemyMonOff
 
 WildRanText:
 	text_far _WildRanText
@@ -365,7 +365,7 @@
 	jr nz, .specialMoveNotUsed
 	ld [wPlayerSelectedMove], a
 .specialMoveNotUsed
-	callab SwitchEnemyMon
+	callfar SwitchEnemyMon
 .noLinkBattle
 	ld a, [wPlayerSelectedMove]
 	cp QUICK_ATTACK
@@ -413,7 +413,7 @@
 .enemyMovesFirst
 	ld a, $1
 	ldh [hWhoseTurn], a
-	callab TrainerAI
+	callfar TrainerAI
 	jr c, .AIActionUsedEnemyFirst
 	call ExecuteEnemyMove
 	ld a, [wEscapedFromBattle]
@@ -451,7 +451,7 @@
 	call DrawHUDsAndHPBars
 	ld a, $1
 	ldh [hWhoseTurn], a
-	callab TrainerAI
+	callfar TrainerAI
 	jr c, .AIActionUsedPlayerFirst
 	call ExecuteEnemyMove
 	ld a, [wEscapedFromBattle]
@@ -837,7 +837,7 @@
 .giveExpToMonsThatFought
 	xor a
 	ld [wBoostExpByExpAll], a
-	callab GainExperience
+	callfar GainExperience
 	pop af
 	ret z ; return if no exp all
 
@@ -855,7 +855,7 @@
 	jr nz, .gainExpFlagsLoop
 	ld a, b
 	ld [wPartyGainExpFlags], a
-	jpab GainExperience
+	jpfar GainExperience
 
 EnemyMonFaintedText:
 	text_far _EnemyMonFaintedText
@@ -893,7 +893,7 @@
 	ld hl, wEnemyHPBarColor
 	ld e, $30
 	call GetBattleHealthBarColor
-	callab DrawEnemyPokeballs
+	callfar DrawEnemyPokeballs
 	ld a, [wLinkState]
 	cp LINK_STATE_BATTLING
 	jr nz, .notLinkBattle
@@ -1720,7 +1720,7 @@
 	ret
 
 SendOutMon:
-	callab PrintSendOutMonMessage
+	callfar PrintSendOutMonMessage
 	ld hl, wEnemyMonHP
 	ld a, [hli]
 	or [hl] ; is enemy mon HP zero?
@@ -1816,7 +1816,7 @@
 	coord hl, 9, 7
 	lb bc, 5, 11
 	call ClearScreenArea
-	callab PlacePlayerHUDTiles
+	callfar PlacePlayerHUDTiles
 	coord hl, 18, 9
 	ld [hl], $73
 	ld de, wBattleMonNick
@@ -1877,7 +1877,7 @@
 	coord hl, 0, 0
 	lb bc, 4, 12
 	call ClearScreenArea
-	callab PlaceEnemyHUDTiles
+	callfar PlaceEnemyHUDTiles
 	ld de, wEnemyMonNick
 	coord hl, 1, 0
 	call CenterMonName
@@ -2411,7 +2411,7 @@
 ; fall through to SwitchPlayerMon
 
 SwitchPlayerMon:
-	callab RetreatMon
+	callfar RetreatMon
 	ld c, 50
 	call DelayFrames
 	call AnimateRetreatingPlayerMon
@@ -2464,7 +2464,7 @@
 	ld de, wMoves
 	ld bc, NUM_MOVES
 	call CopyData
-	callab FormatMovesString
+	callfar FormatMovesString
 	ret
 
 .writemoves
@@ -2860,7 +2860,7 @@
 	ld [wWhichPokemon], a
 	ld a, BATTLE_MON_DATA
 	ld [wMonDataLocation], a
-	callab GetMaxPP
+	callfar GetMaxPP
 	ld hl, wCurrentMenuItem
 	ld c, [hl]
 	inc [hl]
@@ -2955,7 +2955,7 @@
 	ld a, [wIsInBattle]
 	dec a
 	jr z, .chooseRandomMove ; wild encounter
-	callab AIEnemyTrainerChooseMoves
+	callfar AIEnemyTrainerChooseMoves
 .chooseRandomMove
 	push hl
 	call BattleRandom
@@ -3020,7 +3020,7 @@
 	ld a, b
 .doExchange
 	ld [wSerialExchangeNybbleSendData], a
-	callab PrintWaitingText
+	callfar PrintWaitingText
 .syncLoop1
 	call Serial_ExchangeNybble
 	call DelayFrame
@@ -3196,7 +3196,7 @@
 .moveDidNotMiss
 	call ApplyAttackToEnemyPokemon
 	call PrintCriticalOHKOText
-	callab DisplayEffectiveness
+	callfar DisplayEffectiveness
 	ld a, 1
 	ld [wMoveDidntMiss], a
 .notDone
@@ -4988,7 +4988,7 @@
 	ldh a, [hWhoseTurn]
 	xor $01
 	ldh [hWhoseTurn], a
-	callab HideSubstituteShowMonAnim ; animate the substitute breaking
+	callfar HideSubstituteShowMonAnim ; animate the substitute breaking
 ; flip the turn back to the way it was
 	ldh a, [hWhoseTurn]
 	xor $01
@@ -5726,7 +5726,7 @@
 .moveDidNotMiss
 	call ApplyAttackToPlayerPokemon
 	call PrintCriticalOHKOText
-	callab DisplayEffectiveness
+	callfar DisplayEffectiveness
 	ld a, 1
 	ld [wMoveDidntMiss], a
 .handleExplosionMiss
@@ -6254,7 +6254,7 @@
 ; link battle
 	xor a
 	ld [wMenuJoypadPollCount], a
-	callab DisplayLinkBattleVersusTextBox
+	callfar DisplayLinkBattleVersusTextBox
 	ld a, $1
 	ld [wUpdateSpritesEnabled], a
 	call ClearScreen
@@ -6261,7 +6261,7 @@
 .next
 	call DelayFrame
 	predef BattleTransition
-	callab LoadHudAndHpBarAndStatusTilePatterns
+	callfar LoadHudAndHpBarAndStatusTilePatterns
 	ld a, $1
 	ldh [hAutoBGTransferEnabled], a
 	ld a, $ff
@@ -6359,11 +6359,11 @@
 
 ; does nothing since no stats are ever selected (barring glitches)
 DoubleOrHalveSelectedStats:
-	callab DoubleSelectedStats
-	jpab HalveSelectedStats
+	callfar DoubleSelectedStats
+	jpfar HalveSelectedStats
 
 ScrollTrainerPicAfterBattle:
-	jpab _ScrollTrainerPicAfterBattle
+	jpfar _ScrollTrainerPicAfterBattle
 
 ApplyBurnAndParalysisPenaltiesToPlayer:
 	ld a, $1
@@ -6747,7 +6747,7 @@
 	ld a, [wNumberOfNoRandomBattleStepsLeft]
 	and a
 	ret nz
-	callab TryDoWildEncounter
+	callfar TryDoWildEncounter
 	ret nz
 InitBattleCommon:
 	ld a, [wMapPalOffset]
@@ -6756,13 +6756,13 @@
 	ld a, [hl]
 	push af
 	res 1, [hl]
-	callab InitBattleVariables
+	callfar InitBattleVariables
 	ld a, [wEnemyMonSpecies2]
 	sub OPP_ID_OFFSET
 	jp c, InitWildBattle
 	ld [wTrainerClass], a
 	call GetTrainerInformation
-	callab ReadTrainer
+	callfar ReadTrainer
 	call DoBattleTransitionAndInitBattleVariables
 	call _LoadTrainerPic
 	xor a
@@ -6857,7 +6857,7 @@
 	dec a ; is it a wild battle?
 	call z, DrawEnemyHUDAndHPBar ; draw enemy HUD and HP bar if it's a wild battle
 	call StartBattle
-	callab EndOfBattle
+	callfar EndOfBattle
 	pop af
 	ld [wLetterPrintingDelayFlags], a
 	pop af
--- a/engine/battle/effects.asm
+++ b/engine/battle/effects.asm
@@ -170,7 +170,7 @@
 	text_end
 
 DrainHPEffect:
-	jpab DrainHPEffect_
+	jpfar DrainHPEffect_
 
 ExplodeEffect:
 	ld hl, wBattleMonHP
@@ -987,7 +987,7 @@
 	ret
 
 OneHitKOEffect:
-	jpab OneHitKOEffect_
+	jpfar OneHitKOEffect_
 
 ChargeEffect:
 	ld hl, wPlayerBattleStatus1
@@ -1097,13 +1097,13 @@
 	ret
 
 MistEffect:
-	jpab MistEffect_
+	jpfar MistEffect_
 
 FocusEnergyEffect:
-	jpab FocusEnergyEffect_
+	jpfar FocusEnergyEffect_
 
 RecoilEffect:
-	jpab RecoilEffect_
+	jpfar RecoilEffect_
 
 ConfusionSideEffect:
 	call BattleRandom
@@ -1157,10 +1157,10 @@
 	jp ConditionalPrintButItFailed
 
 ParalyzeEffect:
-	jpab ParalyzeEffect_
+	jpfar ParalyzeEffect_
 
 SubstituteEffect:
-	jpab SubstituteEffect_
+	jpfar SubstituteEffect_
 
 HyperBeamEffect:
 	ld hl, wPlayerBattleStatus2
@@ -1271,7 +1271,7 @@
 	text_end
 
 LeechSeedEffect:
-	jpab LeechSeedEffect_
+	jpfar LeechSeedEffect_
 
 SplashEffect:
 	call PlayCurrentMoveAnimation
@@ -1365,22 +1365,22 @@
 	text_end
 
 PayDayEffect:
-	jpab PayDayEffect_
+	jpfar PayDayEffect_
 
 ConversionEffect:
-	jpab ConversionEffect_
+	jpfar ConversionEffect_
 
 HazeEffect:
-	jpab HazeEffect_
+	jpfar HazeEffect_
 
 HealEffect:
-	jpab HealEffect_
+	jpfar HealEffect_
 
 TransformEffect:
-	jpab TransformEffect_
+	jpfar TransformEffect_
 
 ReflectLightScreenEffect:
-	jpab ReflectLightScreenEffect_
+	jpfar ReflectLightScreenEffect_
 
 NothingHappenedText:
 	text_far _NothingHappenedText
--- a/engine/battle/end_of_battle.asm
+++ b/engine/battle/end_of_battle.asm
@@ -10,7 +10,7 @@
 	ld a, [wEnemyMonStatus]
 	ld [hl], a
 	call ClearScreen
-	callab DisplayLinkBattleVersusTextBox
+	callfar DisplayLinkBattleVersusTextBox
 	ld a, [wBattleResult]
 	cp $1
 	ld de, YouWinText
--- a/engine/battle/experience.asm
+++ b/engine/battle/experience.asm
@@ -117,7 +117,7 @@
 	ld [wd0b5], a
 	call GetMonHeader
 	ld d, MAX_LEVEL
-	callab CalcExperience ; get max exp
+	callfar CalcExperience ; get max exp
 ; compare max exp with current exp
 	ldh a, [hExperience]
 	ld b, a
@@ -155,7 +155,7 @@
 	ld bc, wPartyMon1Level - wPartyMon1Exp
 	add hl, bc
 	push hl
-	callba CalcLevelFromExperience
+	farcall CalcLevelFromExperience
 	pop hl
 	ld a, [hl] ; current level
 	cp d
@@ -233,11 +233,11 @@
 .recalcStatChanges
 	xor a ; battle mon
 	ld [wCalculateWhoseStats], a
-	callab CalculateModifiedStats
-	callab ApplyBurnAndParalysisPenaltiesToPlayer
-	callab ApplyBadgeStatBoosts
-	callab DrawPlayerHUDAndHPBar
-	callab PrintEmptyString
+	callfar CalculateModifiedStats
+	callfar ApplyBurnAndParalysisPenaltiesToPlayer
+	callfar ApplyBadgeStatBoosts
+	callfar DrawPlayerHUDAndHPBar
+	callfar PrintEmptyString
 	call SaveScreenTilesToBuffer1
 .printGrewLevelText
 	ld hl, GrewLevelText
@@ -246,7 +246,7 @@
 	ld [wMonDataLocation], a
 	call LoadMonData
 	ld d, $1
-	callab PrintStatsBox
+	callfar PrintStatsBox
 	call WaitForTextScrollButtonPress
 	call LoadScreenTilesFromBuffer1
 	xor a ; PLAYER_PARTY_DATA
--- a/engine/battle/ghost_marowak_anim.asm
+++ b/engine/battle/ghost_marowak_anim.asm
@@ -15,7 +15,7 @@
 	ld [wChangeMonPicEnemyTurnSpecies], a
 	ld a, $1
 	ldh [hWhoseTurn], a
-	callab ChangeMonPic
+	callfar ChangeMonPic
  ; alternate between black and light grey 8 times.
  ; this makes the ghost's body appear to flash
 	ld d, $80
--- a/engine/battle/init_battle_variables.asm
+++ b/engine/battle/init_battle_variables.asm
@@ -35,4 +35,4 @@
 	ld a, BATTLE_TYPE_SAFARI
 	ld [wBattleType], a
 .notSafariBattle
-	jpab PlayBattleMusic
+	jpfar PlayBattleMusic
--- a/engine/battle/link_battle_versus_text.asm
+++ b/engine/battle/link_battle_versus_text.asm
@@ -18,6 +18,6 @@
 	ld [hl], $6a
 	xor a
 	ld [wUpdateSpritesEnabled], a
-	callab SetupPlayerAndEnemyPokeballs
+	callfar SetupPlayerAndEnemyPokeballs
 	ld c, 150
 	jp DelayFrames
--- a/engine/battle/move_effects/drain_hp.asm
+++ b/engine/battle/move_effects/drain_hp.asm
@@ -81,7 +81,7 @@
 	predef UpdateHPBar2
 	predef DrawPlayerHUDAndHPBar
 	predef DrawEnemyHUDAndHPBar
-	callab ReadPlayerMonCurHPAndStatus
+	callfar ReadPlayerMonCurHPAndStatus
 	ld hl, SuckedHealthText
 	ldh a, [hWhoseTurn]
 	and a
--- a/engine/battle/move_effects/focus_energy.asm
+++ b/engine/battle/move_effects/focus_energy.asm
@@ -8,13 +8,13 @@
 	bit GETTING_PUMPED, [hl] ; is mon already using focus energy?
 	jr nz, .alreadyUsing
 	set GETTING_PUMPED, [hl] ; mon is now using focus energy
-	callab PlayCurrentMoveAnimation
+	callfar PlayCurrentMoveAnimation
 	ld hl, GettingPumpedText
 	jp PrintText
 .alreadyUsing
 	ld c, 50
 	call DelayFrames
-	jpab PrintButItFailedText_
+	jpfar PrintButItFailedText_
 
 GettingPumpedText:
 	text_pause
--- a/engine/battle/move_effects/leech_seed.asm
+++ b/engine/battle/move_effects/leech_seed.asm
@@ -1,5 +1,5 @@
 LeechSeedEffect_:
-	callab MoveHitTest
+	callfar MoveHitTest
 	ld a, [wMoveMissed]
 	and a
 	jr nz, .moveMissed
@@ -22,7 +22,7 @@
 	bit SEEDED, [hl]
 	jr nz, .moveMissed
 	set SEEDED, [hl]
-	callab PlayCurrentMoveAnimation
+	callfar PlayCurrentMoveAnimation
 	ld hl, WasSeededText
 	jp PrintText
 .moveMissed
--- a/engine/battle/move_effects/mist.asm
+++ b/engine/battle/move_effects/mist.asm
@@ -8,11 +8,11 @@
 	bit PROTECTED_BY_MIST, [hl] ; is mon protected by mist?
 	jr nz, .mistAlreadyInUse
 	set PROTECTED_BY_MIST, [hl] ; mon is now protected by mist
-	callab PlayCurrentMoveAnimation
+	callfar PlayCurrentMoveAnimation
 	ld hl, ShroudedInMistText
 	jp PrintText
 .mistAlreadyInUse
-	jpab PrintButItFailedText_
+	jpfar PrintButItFailedText_
 
 ShroudedInMistText:
 	text_far _ShroudedInMistText
--- a/engine/battle/move_effects/paralyze.asm
+++ b/engine/battle/move_effects/paralyze.asm
@@ -26,22 +26,22 @@
 	jr z, .doesntAffect
 .hitTest
 	push hl
-	callab MoveHitTest
+	callfar MoveHitTest
 	pop hl
 	ld a, [wMoveMissed]
 	and a
 	jr nz, .didntAffect
 	set PAR, [hl]
-	callab QuarterSpeedDueToParalysis
+	callfar QuarterSpeedDueToParalysis
 	ld c, 30
 	call DelayFrames
-	callab PlayCurrentMoveAnimation
-	jpab PrintMayNotAttackText
+	callfar PlayCurrentMoveAnimation
+	jpfar PrintMayNotAttackText
 .didntAffect
 	ld c, 50
 	call DelayFrames
-	jpab PrintDidntAffectText
+	jpfar PrintDidntAffectText
 .doesntAffect
 	ld c, 50
 	call DelayFrames
-	jpab PrintDoesntAffectText
+	jpfar PrintDoesntAffectText
--- a/engine/battle/move_effects/substitute.asm
+++ b/engine/battle/move_effects/substitute.asm
@@ -55,7 +55,7 @@
 	call Bankswitch ; jump to routine depending on animation setting
 	ld hl, SubstituteText
 	call PrintText
-	jpab DrawHUDsAndHPBars
+	jpfar DrawHUDsAndHPBars
 .alreadyHasSubstitute
 	ld hl, HasSubstituteText
 	jr .printText
--- a/engine/battle/scroll_draw_trainer_pic.asm
+++ b/engine/battle/scroll_draw_trainer_pic.asm
@@ -5,7 +5,7 @@
 	ld [wEnemyMonSpecies2], a
 	ld b, SET_PAL_BATTLE
 	call RunPaletteCommand
-	callab _LoadTrainerPic
+	callfar _LoadTrainerPic
 	coord hl, 19, 0
 	ld c, $0
 .scrollLoop
--- a/engine/battle/trainer_ai.asm
+++ b/engine/battle/trainer_ai.asm
@@ -204,7 +204,7 @@
 	push hl
 	push bc
 	push de
-	callab AIGetTypeEffectiveness
+	callfar AIGetTypeEffectiveness
 	pop de
 	pop bc
 	pop hl
@@ -599,7 +599,7 @@
 	; switching in a new mon in response to this switch.
 	ld a, 1
 	ld [wFirstMonsNotOutYet], a
-	callab EnemySendOut
+	callfar EnemySendOut
 	xor a
 	ld [wFirstMonsNotOutYet], a
 
@@ -713,7 +713,7 @@
 	ld a, ANIM_AF
 	ld [hli], a
 	ld [hl], b
-	callab StatModifierUpEffect
+	callfar StatModifierUpEffect
 	pop hl
 	pop af
 	ld [hli], a
--- a/engine/battle/wild_encounters.asm
+++ b/engine/battle/wild_encounters.asm
@@ -7,7 +7,7 @@
 	ld a, [wd736]
 	and a
 	ret nz
-	callab IsPlayerStandingOnDoorTileOrWarpTile
+	callfar IsPlayerStandingOnDoorTileOrWarpTile
 	jr nc, .notStandingOnDoorOrWarpTile
 .CantEncounter
 	ld a, $1
@@ -14,7 +14,7 @@
 	and a
 	ret
 .notStandingOnDoorOrWarpTile
-	callab IsPlayerJustOutsideMap
+	callfar IsPlayerJustOutsideMap
 	jr z, .CantEncounter
 	ld a, [wRepelRemainingSteps]
 	and a
--- a/engine/events/cinnabar_lab.asm
+++ b/engine/events/cinnabar_lab.asm
@@ -62,7 +62,7 @@
 	call PrintText
 	ld a, [wFossilItem]
 	ldh [hItemToRemoveID], a
-	callba RemoveItemByID
+	farcall RemoveItemByID
 	ld hl, LabFossil_610b8
 	call PrintText
 	SetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL
--- a/engine/events/diploma.asm
+++ b/engine/events/diploma.asm
@@ -38,7 +38,7 @@
 	coord hl, 10, 4
 	ld de, wPlayerName
 	call PlaceString
-	callba DrawPlayerCharacter
+	farcall DrawPlayerCharacter
 
 ; Move the player 33 pixels right and set the priority bit so he appears
 ; behind the background layer.
@@ -56,7 +56,7 @@
 	jr nz, .adjustPlayerGfxLoop
 
 	call EnableLCD
-	callba LoadTrainerInfoTextBoxTiles
+	farcall LoadTrainerInfoTextBoxTiles
 	ld b, SET_PAL_GENERIC
 	call RunPaletteCommand
 	call Delay3
--- a/engine/events/evolve_trade.asm
+++ b/engine/events/evolve_trade.asm
@@ -38,7 +38,7 @@
 	ld [wForceEvolution], a
 	ld a, LINK_STATE_TRADING
 	ld [wLinkState], a
-	callab TryEvolvingMon
+	callfar TryEvolvingMon
 	xor a ; LINK_STATE_NONE
 	ld [wLinkState], a
 	jp PlayDefaultMusic
--- a/engine/events/give_pokemon.asm
+++ b/engine/events/give_pokemon.asm
@@ -15,9 +15,9 @@
 	ld [wEnemyBattleStatus3], a
 	ld a, [wcf91]
 	ld [wEnemyMonSpecies2], a
-	callab LoadEnemyMonData
+	callfar LoadEnemyMonData
 	call SetPokedexOwnedFlag
-	callab SendNewMonToBox
+	callfar SendNewMonToBox
 	ld hl, wcf4b
 	ld a, [wCurrentBoxNum]
 	and $7f
--- a/engine/events/hidden_objects/bookshelves.asm
+++ b/engine/events/hidden_objects/bookshelves.asm
@@ -34,6 +34,6 @@
 .noMatch
 	ld a, $ff
 	ldh [hFFDB], a
-	jpba PrintCardKeyText
+	farjp PrintCardKeyText
 
 INCLUDE "data/tilesets/bookshelf_tile_ids.asm"
--- a/engine/events/hidden_objects/town_map.asm
+++ b/engine/events/hidden_objects/town_map.asm
@@ -12,7 +12,7 @@
 	inc a
 	ldh [hAutoBGTransferEnabled], a
 	call LoadFontTilePatterns
-	callba DisplayTownMap
+	farcall DisplayTownMap
 	ld hl, wd730
 	res 6, [hl]
 	ld de, TextScriptEnd
--- a/engine/events/in_game_trades.asm
+++ b/engine/events/in_game_trades.asm
@@ -137,10 +137,10 @@
 	ld [wMonDataLocation], a
 	call AddPartyMon
 	call InGameTrade_CopyDataToReceivedMon
-	callab EvolveTradeMon
+	callfar EvolveTradeMon
 	call ClearScreen
 	call InGameTrade_RestoreScreen
-	callba RedrawMapView
+	farcall RedrawMapView
 	and a
 	ld a, $3
 	jr .tradeSucceeded
@@ -159,7 +159,7 @@
 	call LoadGBPal
 	ld c, 10
 	call DelayFrames
-	jpba LoadWildData
+	farjp LoadWildData
 
 InGameTrade_PrepareTradeData:
 	ld hl, wTradedPlayerMonSpecies
--- a/engine/events/pokecenter.asm
+++ b/engine/events/pokecenter.asm
@@ -22,7 +22,7 @@
 	ld [wSprite01StateData1ImageIndex], a ; make the nurse turn to face the machine
 	call Delay3
 	predef HealParty
-	callba AnimateHealingMachine ; do the healing machine animation
+	farcall AnimateHealingMachine ; do the healing machine animation
 	xor a
 	ld [wAudioFadeOutControl], a
 	ld a, [wAudioSavedROMBank]
--- a/engine/events/pokedex_rating.asm
+++ b/engine/events/pokedex_rating.asm
@@ -30,7 +30,7 @@
 	call PrintText
 	pop hl
 	call PrintText
-	callba PlayPokedexRatingSfx
+	farcall PlayPokedexRatingSfx
 	jp WaitForTextScrollButtonPress
 .hallOfFame
 	ld de, wDexRatingNumMonsSeen
--- a/engine/events/pokemart.asm
+++ b/engine/events/pokemart.asm
@@ -42,7 +42,7 @@
 	ld [wPrintItemPrices], a
 	ld a, INIT_BAG_ITEM_LIST
 	ld [wInitListType], a
-	callab InitList
+	callfar InitList
 
 	ld a, [wNumBagItems]
 	and a
@@ -126,7 +126,7 @@
 	ld [wPrintItemPrices], a
 	ld a, INIT_OTHER_ITEM_LIST
 	ld [wInitListType], a
-	callab InitList
+	callfar InitList
 
 	ld hl, PokemartBuyingGreetingText
 	call PrintText
--- a/engine/events/saffron_guards.asm
+++ b/engine/events/saffron_guards.asm
@@ -10,6 +10,6 @@
 	call IsItemInBag
 	pop hl
 	jr z, .drinkLoop
-	jpba RemoveItemByID
+	farjp RemoveItemByID
 
 INCLUDE "data/items/guard_drink_items.asm"
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -147,7 +147,7 @@
 
 ; If the player is fighting an unidentified ghost, set the value that indicates
 ; the Pokémon can't be caught and skip the capture calculations.
-	callab IsGhostBattle
+	callfar IsGhostBattle
 	ld b, $10 ; can't be caught value
 	jp z, .setAnimData
 
@@ -495,7 +495,7 @@
 	ld [wcf91], a
 	ld a, [wEnemyMonLevel]
 	ld [wCurEnemyLVL], a
-	callab LoadEnemyMonData
+	callfar LoadEnemyMonData
 	pop af
 	ld [wcf91], a
 	pop hl
@@ -632,7 +632,7 @@
 	ld a, [wIsInBattle]
 	and a
 	jp nz, ItemUseNotTime
-	jpba DisplayTownMap
+	farjp DisplayTownMap
 
 ItemUseBicycle:
 	ld a, [wIsInBattle]
@@ -778,7 +778,7 @@
 	ld a, SFX_HEAL_AILMENT
 	call PlaySoundWaitForCurrent
 	call WaitForSoundToFinish
-	callab TryEvolvingMon ; try to evolve pokemon
+	callfar TryEvolvingMon ; try to evolve pokemon
 	ld a, [wEvolutionOccurred]
 	and a
 	jr z, .noEffect
@@ -1341,7 +1341,7 @@
 	push hl
 	push de
 	ld d, a
-	callab CalcExperience ; calculate experience for next level and store it at hExperience
+	callfar CalcExperience ; calculate experience for next level and store it at hExperience
 	pop de
 	pop hl
 	ld bc, wPartyMon1Exp - wPartyMon1Level
@@ -1400,7 +1400,7 @@
 	ld [wMonDataLocation], a
 	call LoadMonData
 	ld d, $01
-	callab PrintStatsBox ; display new stats text box
+	callfar PrintStatsBox ; display new stats text box
 	call WaitForTextScrollButtonPress ; wait for button press
 	xor a ; PLAYER_PARTY_DATA
 	ld [wMonDataLocation], a
@@ -1407,7 +1407,7 @@
 	predef LearnMoveFromLevelUp ; learn level up move, if any
 	xor a
 	ld [wForceEvolution], a
-	callab TryEvolvingMon ; evolve pokemon, if appropriate
+	callfar TryEvolvingMon ; evolve pokemon, if appropriate
 	ld a, $01
 	ld [wUpdateSpritesEnabled], a
 	pop af
@@ -1699,7 +1699,7 @@
 	call Delay3
 	xor a
 	ldh [hWhoseTurn], a ; set turn to player's turn
-	callba StatModifierUpEffect ; do stat increase move
+	farcall StatModifierUpEffect ; do stat increase move
 	pop hl
 	pop af
 	ld [hld], a ; restore [wPlayerMoveEffect]
@@ -1775,7 +1775,7 @@
 	and $80
 	jr nz, .skipMusic
 	call WaitForSoundToFinish ; wait for sound to end
-	callba Music_PokeFluteInBattle ; play in-battle pokeflute music
+	farcall Music_PokeFluteInBattle ; play in-battle pokeflute music
 .musicWaitLoop ; wait for music to finish playing
 	ld a, [wChannelSoundIDs + Ch7]
 	and a ; music off?
@@ -1927,7 +1927,7 @@
 	push af
 	push hl
 	ld [hl], 0
-	callba FishingAnim
+	farcall FishingAnim
 	pop hl
 	pop af
 	ld [hl], a
@@ -1968,7 +1968,7 @@
 	and a
 	jp nz, ItemUseNotTime
 	call ItemUseReloadOverworldData
-	callba HiddenItemNear ; check for hidden items
+	farcall HiddenItemNear ; check for hidden items
 	ld hl, ItemfinderFoundNothingText
 	jr nc, .printText ; if no hidden items
 	ld c, 4
@@ -2024,7 +2024,7 @@
 	call PrintText
 	xor a
 	ld [wPlayerMoveListIndex], a
-	callab MoveSelectionMenu ; move selection menu
+	callfar MoveSelectionMenu ; move selection menu
 	ld a, 0
 	ld [wPlayerMoveListIndex], a
 	jr nz, .chooseMon
@@ -2278,7 +2278,7 @@
 	call PrintText
 	jr .chooseMon
 .checkIfAlreadyLearnedMove
-	callab CheckIfMoveIsKnown ; check if the pokemon already knows the move
+	callfar CheckIfMoveIsKnown ; check if the pokemon already knows the move
 	jr c, .chooseMon
 	predef LearnMove ; teach move
 	pop af
@@ -2820,7 +2820,7 @@
 	push de
 	ld a, [wCurEnemyLVL]
 	ld d, a
-	callab CalcExperience
+	callfar CalcExperience
 	pop de
 	ldh a, [hExperience]
 	ld [de], a
--- a/engine/items/town_map.asm
+++ b/engine/items/town_map.asm
@@ -366,7 +366,7 @@
 	jp CopyData
 
 DisplayWildLocations:
-	callba FindWildLocationsOfMon
+	farcall FindWildLocationsOfMon
 	call ZeroOutDuplicatesInList
 	ld hl, wOAMBuffer
 	ld de, wTownMapCoords
--- a/engine/link/cable_club.asm
+++ b/engine/link/cable_club.asm
@@ -359,7 +359,7 @@
 .displayEnemyMonStats
 	ld a, INIT_ENEMYOT_LIST
 	ld [wInitListType], a
-	callab InitList ; the list isn't used
+	callfar InitList ; the list isn't used
 	ld hl, wEnemyMons
 	call TradeCenter_DisplayStats
 	jp .getNewInput
@@ -418,7 +418,7 @@
 ; unreachable code
 	ld a, INIT_PLAYEROT_LIST
 	ld [wInitListType], a
-	callab InitList ; the list isn't used
+	callfar InitList ; the list isn't used
 	call TradeCenter_DisplayStats
 	jp .getNewInput
 .playerMonMenu_ANotPressed
@@ -513,7 +513,7 @@
 	ld [wCurrentMenuItem], a
 	ld a, INIT_PLAYEROT_LIST
 	ld [wInitListType], a
-	callab InitList ; the list isn't used
+	callfar InitList ; the list isn't used
 	call TradeCenter_DisplayStats
 	call LoadScreenTilesFromBuffer1
 	jp .playerMonMenu
@@ -588,7 +588,7 @@
 	dec a
 	ld [wDestinationWarpID], a
 	call LoadMapData
-	callba ClearVariablesOnEnterMap
+	farcall ClearVariablesOnEnterMap
 	pop hl
 	pop af
 	ld [hl], a
@@ -845,7 +845,7 @@
 .usingExternalClock
 	predef ExternalClockTradeAnim
 .tradeCompleted
-	callab TryEvolvingMon
+	callfar TryEvolvingMon
 	call ClearScreen
 	call LoadTrainerInfoTextBoxTiles
 	call Serial_PrintWaitingTextAndSyncAndExchangeNybble
--- a/engine/link/cable_club_npc.asm
+++ b/engine/link/cable_club_npc.asm
@@ -54,7 +54,7 @@
 	ld a, [wCurrentMenuItem]
 	and a
 	jr nz, .choseNo
-	callab SaveSAVtoSRAM
+	callfar SaveSAVtoSRAM
 	call WaitForSoundToFinish
 	ld a, SFX_SAVE
 	call PlaySoundWaitForCurrent
@@ -107,7 +107,7 @@
 	xor a
 	ld [hld], a
 	ld [hl], a
-	jpab LinkMenu
+	jpfar LinkMenu
 
 CableClubNPCAreaReservedFor2FriendsLinkedByCableText:
 	text_far _CableClubNPCAreaReservedFor2FriendsLinkedByCableText
--- a/engine/menus/league_pc.asm
+++ b/engine/menus/league_pc.asm
@@ -29,7 +29,7 @@
 	push bc
 	ld a, [wHoFTeamIndex2]
 	ld [wHoFTeamIndex], a
-	callba LoadHallOfFameTeams
+	farcall LoadHallOfFameTeams
 	call LeaguePCShowTeam
 	pop bc
 	jr c, .doneShowingTeams
@@ -110,7 +110,7 @@
 	ld de, wHoFTeamNo
 	lb bc, 1, 3
 	call PrintNumber
-	jpba HoFDisplayMonInfo
+	farjp HoFDisplayMonInfo
 
 HallOfFameNoText:
 	db "HALL OF FAME No   @"
--- a/engine/menus/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
@@ -92,7 +92,7 @@
 	call RunPaletteCommand
 	call LoadHpBarAndStatusTilePatterns
 	call LoadEDTile
-	callba LoadMonPartySpriteGfx
+	farcall LoadMonPartySpriteGfx
 	coord hl, 0, 4
 	ld b, 9
 	ld c, 18
@@ -128,7 +128,7 @@
 .inputLoop
 	ld a, [wCurrentMenuItem]
 	push af
-	callba AnimatePartyMon_ForceSpeed1
+	farcall AnimatePartyMon_ForceSpeed1
 	pop af
 	ld [wCurrentMenuItem], a
 	call JoypadLowSensitivity
@@ -172,7 +172,7 @@
 	ld a, [wIsInBattle]
 	and a
 	jp z, LoadTextBoxTilePatterns
-	jpab LoadHudTilePatterns
+	jpfar LoadHudTilePatterns
 
 .namingScreenButtonFunctions
 	dw .dPadReturnPoint
@@ -461,7 +461,7 @@
 	ld a, [wcf91]
 	ld [wMonPartySpriteSpecies], a
 	push af
-	callba WriteMonPartySpriteOAMBySpecies
+	farcall WriteMonPartySpriteOAMBySpecies
 	pop af
 	ld [wd11e], a
 	call GetMonName
--- a/engine/menus/party_menu.asm
+++ b/engine/menus/party_menu.asm
@@ -22,7 +22,7 @@
 	ldh [hAutoBGTransferEnabled], a
 	call ClearScreen
 	call UpdateSprites
-	callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics
+	farcall LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics
 
 RedrawPartyMenu_::
 	ld a, [wPartyMenuTypeOrMessageID]
@@ -29,7 +29,7 @@
 	cp SWAP_MONS_PARTY_MENU
 	jp z, .printMessage
 	call ErasePartyMenuCursors
-	callba InitPartyMenuBlkPacket
+	farcall InitPartyMenuBlkPacket
 	coord hl, 3, 0
 	ld de, wPartySpecies
 	xor a
@@ -49,7 +49,7 @@
 	call GetPartyMonName
 	pop hl
 	call PlaceString ; print the pokemon's name
-	callba WriteMonPartySpriteOAMByPartyIndex ; place the appropriate pokemon icon
+	farcall WriteMonPartySpriteOAMByPartyIndex ; place the appropriate pokemon icon
 	ldh a, [hPartyMonIndex]
 	ld [wWhichPokemon], a
 	inc a
--- a/engine/menus/pc.asm
+++ b/engine/menus/pc.asm
@@ -10,7 +10,7 @@
 	call LoadScreenTilesFromBuffer2
 	call Delay3
 PCMainMenu:
-	callba DisplayPCMainMenu
+	farcall DisplayPCMainMenu
 	ld hl, wFlags_0xcd60
 	set 5, [hl]
 	call HandleMenuInput
@@ -56,19 +56,19 @@
 	call WaitForSoundToFinish
 	ld hl, AccessedMyPCText
 	call PrintText
-	callba PlayerPC
+	farcall PlayerPC
 	jr ReloadMainMenu
 OaksPC:
 	ld a, SFX_ENTER_PC
 	call PlaySound
 	call WaitForSoundToFinish
-	callba OpenOaksPC
+	farcall OpenOaksPC
 	jr ReloadMainMenu
 PKMNLeague:
 	ld a, SFX_ENTER_PC
 	call PlaySound
 	call WaitForSoundToFinish
-	callba PKMNLeaguePC
+	farcall PKMNLeaguePC
 	jr ReloadMainMenu
 BillsPC:
 	ld a, SFX_ENTER_PC
@@ -82,7 +82,7 @@
 	ld hl, AccessedBillsPCText
 .printText
 	call PrintText
-	callba BillsPC_
+	farcall BillsPC_
 ReloadMainMenu:
 	xor a
 	ld [wDoNotWaitForButtonPressAfterDisplayingText], a
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -14,7 +14,7 @@
 .setUpGraphics
 	ld b, SET_PAL_GENERIC
 	call RunPaletteCommand
-	callab LoadPokedexTilePatterns
+	callfar LoadPokedexTilePatterns
 .doPokemonListMenu
 	ld hl, wTopMenuItemY
 	ld a, 3
@@ -393,7 +393,7 @@
 	call GBPalWhiteOutWithDelay3
 	call ClearScreen
 	call UpdateSprites
-	callab LoadPokedexTilePatterns ; load pokedex tiles
+	callfar LoadPokedexTilePatterns ; load pokedex tiles
 
 ; function to display pokedex data from inside the pokedex
 ShowPokedexDataInternal:
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -138,7 +138,7 @@
 	jp LoadSAV2
 
 SaveSAV:
-	callba PrintSaveScreenText
+	farcall PrintSaveScreenText
 	ld hl, WouldYouLikeToSaveText
 	call SaveSAVConfirm
 	and a   ;|0 = Yes|1 = No|
--- a/engine/menus/start_sub_menus.asm
+++ b/engine/menus/start_sub_menus.asm
@@ -160,7 +160,7 @@
 .surf
 	bit 4, a ; does the player have the Soul Badge?
 	jp z, .newBadgeRequired
-	callba IsSurfingAllowed
+	farcall IsSurfingAllowed
 	ld hl, wd728
 	bit 1, [hl]
 	res 1, [hl]
@@ -651,7 +651,7 @@
 	ldh [hAutoBGTransferEnabled], a
 	call ClearScreen
 	call UpdateSprites
-	callab DisplayOptionMenu
+	callfar DisplayOptionMenu
 	call LoadScreenTilesFromBuffer2 ; restore saved screen
 	call LoadTextBoxTilePatterns
 	call UpdateSprites
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -1,5 +1,5 @@
 HallOfFamePC:
-	callba AnimateHallOfFame
+	farcall AnimateHallOfFame
 	call ClearScreen
 	ld c, 100
 	call DelayFrames
@@ -235,7 +235,7 @@
 	jr .nextCreditsScreen
 .showCopyrightText
 	push de
-	callba LoadCopyrightTiles
+	farcall LoadCopyrightTiles
 	pop de
 	pop de
 	jr .nextCreditsCommand
--- a/engine/movie/intro.asm
+++ b/engine/movie/intro.asm
@@ -311,7 +311,7 @@
 PlayShootingStar:
 	ld b, SET_PAL_GAME_FREAK_INTRO
 	call RunPaletteCommand
-	callba LoadCopyrightAndTextBoxTiles
+	farcall LoadCopyrightAndTextBoxTiles
 	ldPal a, BLACK, DARK_GRAY, LIGHT_GRAY, WHITE
 	ldh [rBGP], a
 	ld c, 180
@@ -328,7 +328,7 @@
 	set 3, [hl]
 	ld c, 64
 	call DelayFrames
-	callba AnimateShootingStar
+	farcall AnimateShootingStar
 	push af
 	pop af
 	jr c, .next ; skip the delay if the user interrupted the animation
--- a/engine/movie/oak_speech/clear_save.asm
+++ b/engine/movie/oak_speech/clear_save.asm
@@ -15,7 +15,7 @@
 	ld a, [wCurrentMenuItem]
 	and a
 	jp z, Init
-	callba ClearSAV
+	farcall ClearSAV
 	jp Init
 
 ClearSaveDataText:
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -226,7 +226,7 @@
 	ld c, 1
 	call CheckForUserInterruption
 	jr c, .finishedWaiting
-	callba TitleScreenAnimateBallIfStarterOut
+	farcall TitleScreenAnimateBallIfStarterOut
 	call TitleScreenPickNewMon
 	jr .awaitUserInterruptionLoop
 
@@ -255,7 +255,7 @@
 	jp MainMenu
 
 .doClearSaveDialogue
-	jpba DoClearSaveDialogue
+	farjp DoClearSaveDialogue
 
 TitleScreenPickNewMon:
 	ld a, vBGMap0 / $100
@@ -282,12 +282,12 @@
 	ld a, $90
 	ldh [hWY], a
 	ld d, 1 ; scroll out
-	callba TitleScroll
+	farcall TitleScroll
 	ret
 
 TitleScreenScrollInMon:
 	ld d, 0 ; scroll in
-	callba TitleScroll
+	farcall TitleScroll
 	xor a
 	ldh [hWY], a
 	ret
--- a/engine/movie/trade.asm
+++ b/engine/movie/trade.asm
@@ -199,7 +199,7 @@
 Trade_LoadMonPartySpriteGfx:
 	ld a, %11010000
 	ldh [rOBP1], a
-	jpba LoadMonPartySpriteGfx
+	farjp LoadMonPartySpriteGfx
 
 Trade_SwapNames:
 	ld hl, wPlayerName
@@ -615,7 +615,7 @@
 	ret
 
 Trade_WriteCircledMonOAM:
-	callba WriteMonPartySpriteOAMBySpecies
+	farcall WriteMonPartySpriteOAMBySpecies
 	call Trade_WriteCircleOAM
 
 Trade_AddOffsetsToOAMCoords:
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -57,7 +57,7 @@
 	ld de, CutTreeBlockSwaps
 	call ReplaceTreeTileBlock
 	call RedrawMapView
-	callba AnimCut
+	farcall AnimCut
 	ld a, $1
 	ld [wUpdateSpritesEnabled], a
 	ld a, SFX_CUT
--- a/engine/overworld/dust_smoke.asm
+++ b/engine/overworld/dust_smoke.asm
@@ -8,7 +8,7 @@
 	ld a, %11100100
 	ldh [rOBP1], a
 	call LoadSmokeTileFourTimes
-	callba WriteCutOrBoulderDustAnimationOAMBlock
+	farcall WriteCutOrBoulderDustAnimationOAMBlock
 	ld c, 8 ; number of steps in animation
 .loop
 	push bc
--- a/engine/overworld/player_state.asm
+++ b/engine/overworld/player_state.asm
@@ -192,7 +192,7 @@
 	push hl
 	push de
 	push bc
-	callba IsPlayerStandingOnDoorTile
+	farcall IsPlayerStandingOnDoorTile
 	jr c, .done
 	ld a, [wCurMapTileset]
 	add a
--- a/engine/overworld/push_boulder.asm
+++ b/engine/overworld/push_boulder.asm
@@ -86,7 +86,7 @@
 	ld a, [wd730]
 	bit 0, a
 	ret nz
-	callab AnimateBoulderDust
+	callfar AnimateBoulderDust
 	call DiscardButtonPresses
 	ld [wJoyIgnore], a
 	call ResetBoulderPushFlags
--- a/engine/pokemon/add_mon.asm
+++ b/engine/pokemon/add_mon.asm
@@ -201,7 +201,7 @@
 	push de
 	ld a, [wCurEnemyLVL]
 	ld d, a
-	callab CalcExperience
+	callfar CalcExperience
 	pop de
 	inc de
 	ldh a, [hExperience] ; write experience
@@ -498,7 +498,7 @@
 	add $2
 	ld [wMonDataLocation], a
 	call LoadMonData
-	callba CalcLevelFromExperience
+	farcall CalcLevelFromExperience
 	ld a, d
 	ld [wCurEnemyLVL], a
 	pop hl
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -318,7 +318,7 @@
 	jp BillsPCMenu
 
 BillsPCChangeBox:
-	callba ChangeBox
+	farcall ChangeBox
 	jp BillsPCMenu
 
 DisplayMonListMenu:
--- a/engine/pokemon/evos_moves.asm
+++ b/engine/pokemon/evos_moves.asm
@@ -129,7 +129,7 @@
 	ld a, $ff
 	ld [wUpdateSpritesEnabled], a
 	call ClearSprites
-	callab EvolveMon
+	callfar EvolveMon
 	jp c, CancelledEvolution
 	ld hl, EvolvedText
 	call PrintText
--- a/engine/pokemon/learn_move.asm
+++ b/engine/pokemon/learn_move.asm
@@ -114,7 +114,7 @@
 	ld de, wMoves
 	ld bc, NUM_MOVES
 	call CopyData
-	callab FormatMovesString
+	callfar FormatMovesString
 	pop hl
 .loop
 	push hl
--- a/engine/pokemon/load_mon_data.asm
+++ b/engine/pokemon/load_mon_data.asm
@@ -15,7 +15,7 @@
 
 	ld a, [wWhichPokemon]
 	ld e, a
-	callab GetMonSpecies
+	callfar GetMonSpecies
 
 .GetMonHeader
 	ld a, [wcf91]
--- a/engine/pokemon/status_screen.asm
+++ b/engine/pokemon/status_screen.asm
@@ -310,7 +310,7 @@
 	ld de, wMoves
 	ld bc, NUM_MOVES
 	call CopyData
-	callab FormatMovesString
+	callfar FormatMovesString
 	coord hl, 9, 2
 	lb bc, 5, 10
 	call ClearScreenArea ; Clear under name
@@ -356,7 +356,7 @@
 	ld a, b
 	ld [hl], a
 	push hl
-	callab GetMaxPP
+	callfar GetMaxPP
 	pop hl
 	pop af
 	ld [hl], a
@@ -445,7 +445,7 @@
 	jr z, .atMaxLevel
 	inc a
 	ld d, a
-	callab CalcExperience
+	callfar CalcExperience
 	ld hl, wLoadedMonExp + 2
 	ldh a, [hExperience + 2]
 	sub [hl]
--- a/engine/slots/game_corner_slots.asm
+++ b/engine/slots/game_corner_slots.asm
@@ -6,7 +6,7 @@
 	jr z, .printOutToLunch
 	cp $ff
 	jr z, .printSomeonesKeys
-	callba AbleToPlaySlotsCheck
+	farcall AbleToPlaySlotsCheck
 	ld a, [wCanPlaySlots]
 	and a
 	ret z
--- a/home.asm
+++ b/home.asm
@@ -206,7 +206,7 @@
 ; subtracts the amount the player paid from their money
 ; OUTPUT: carry = 0(success) or 1(fail because there is not enough money)
 SubtractAmountPaidFromMoney::
-	jpba SubtractAmountPaidFromMoney_
+	farjp SubtractAmountPaidFromMoney_
 
 ; adds the amount the player sold to their money
 AddAmountSoldToMoney::
@@ -296,7 +296,7 @@
 ChooseFlyDestination::
 	ld hl, wd72e
 	res 4, [hl]
-	jpba LoadTownMap_Fly
+	farjp LoadTownMap_Fly
 
 ; causes the text box to close without waiting for a button press after displaying text
 DisableWaitingAfterTextDisplay::
@@ -314,7 +314,7 @@
 ; 01: successful
 ; 02: not able to be used right now, no extra menu displayed (only certain items use this)
 UseItem::
-	jpba UseItem_
+	farjp UseItem_
 
 ; confirms the item toss and then tosses the item
 ; INPUT:
@@ -348,7 +348,7 @@
 	push hl
 	push de
 	push bc
-	callba IsKeyItem_
+	farcall IsKeyItem_
 	pop bc
 	pop de
 	pop hl
@@ -418,10 +418,10 @@
 	dw PewterMuseumGuyMovementScriptPointerTable
 	dw PewterGymGuyMovementScriptPointerTable
 .playerStepOutFromDoor
-	jpba PlayerStepOutFromDoor
+	farjp PlayerStepOutFromDoor
 
 EndNPCMovementScript::
-	jpba _EndNPCMovementScript
+	farjp _EndNPCMovementScript
 
 EmptyFunc2::
 	ret
@@ -502,7 +502,7 @@
 
 DisplayPokedex::
 	ld [wd11e], a
-	jpba _DisplayPokedex
+	farjp _DisplayPokedex
 
 SetSpriteFacingDirectionAndDelay::
 	call SetSpriteFacingDirection
@@ -711,7 +711,7 @@
 	ret
 
 GetTrainerName::
-	jpba GetTrainerName_
+	farjp GetTrainerName_
 
 HasEnoughMoney::
 ; Check if the player has at least as much
@@ -1107,7 +1107,7 @@
 Multiply::
 	push hl
 	push bc
-	callab _Multiply
+	callfar _Multiply
 	pop bc
 	pop hl
 	ret
@@ -1296,7 +1296,7 @@
 	ld a, [wPartyMenuAnimMonEnabled]
 	and a ; is it a pokemon selection menu?
 	jr z, .getJoypadState
-	callba AnimatePartyMon ; shake mini sprite of selected pokemon
+	farcall AnimatePartyMon ; shake mini sprite of selected pokemon
 .getJoypadState
 	pop hl
 	call JoypadLowSensitivity
@@ -1687,7 +1687,7 @@
 	xor a
 	ld [wSpriteSetID], a
 	call DisableLCD
-	callba InitMapSprites
+	farcall InitMapSprites
 	call EnableLCD
 	pop hl
 	pop af
@@ -1721,7 +1721,7 @@
 	ld [wCurEnemyLVL], a
 	xor a ; PLAYER_PARTY_DATA
 	ld [wMonDataLocation], a
-	jpba _GivePokemon
+	farjp _GivePokemon
 
 Random::
 ; Return a random number in a.
@@ -1729,7 +1729,7 @@
 	push hl
 	push de
 	push bc
-	callba Random_
+	farcall Random_
 	ldh a, [hRandomAdd]
 	pop bc
 	pop de
@@ -1739,7 +1739,7 @@
 INCLUDE "home/predef.asm"
 
 UpdateCinnabarGymGateTileBlocks::
-	jpba UpdateCinnabarGymGateTileBlocks_
+	farjp UpdateCinnabarGymGateTileBlocks_
 
 CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
 	ldh a, [hLoadedROMBank]
@@ -1765,7 +1765,7 @@
 	xor a
 	jr .done
 .hiddenObjectNotFound
-	callba PrintBookshelfText
+	farcall PrintBookshelfText
 	ldh a, [hFFDB]
 	and a
 	jr z, .done
--- a/home/move_mon.asm
+++ b/home/move_mon.asm
@@ -3,13 +3,13 @@
 ; [wRemoveMonFromBox] == 0 specifies the party.
 ; [wRemoveMonFromBox] != 0 specifies the current box.
 RemovePokemon::
-	jpab _RemovePokemon
+	jpfar _RemovePokemon
 
 AddPartyMon::
 	push hl
 	push de
 	push bc
-	callba _AddPartyMon
+	farcall _AddPartyMon
 	pop bc
 	pop de
 	pop hl
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -1,7 +1,7 @@
 HandleMidJump::
 ; Handle the player jumping down
 ; a ledge in the overworld.
-	jpba _HandleMidJump
+	farjp _HandleMidJump
 
 EnterMap::
 ; Load a new map.
@@ -8,7 +8,7 @@
 	ld a, $ff
 	ld [wJoyIgnore], a
 	call LoadMapData
-	callba ClearVariablesOnEnterMap
+	farcall ClearVariablesOnEnterMap
 	ld hl, wd72c
 	bit 0, [hl] ; has the player already made 3 steps since the last battle?
 	jr z, .skipGivingThreeStepsOfNoRandomBattles
@@ -25,10 +25,10 @@
 	and 1 << 4 | 1 << 3 ; fly warp or dungeon warp
 	jr z, .didNotEnterUsingFlyWarpOrDungeonWarp
 	res 3, [hl]
-	callba EnterMapAnim
+	farcall EnterMapAnim
 	call UpdateSprites
 .didNotEnterUsingFlyWarpOrDungeonWarp
-	callba CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
+	farcall CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road
 	ld hl, wd72d
 	res 5, [hl]
 	call UpdateSprites
@@ -50,7 +50,7 @@
 	and a
 	jp nz, .moveAhead ; if the player sprite has not yet completed the walking animation
 	call JoypadOverworld ; get joypad state (which is possibly simulated)
-	callba SafariZoneCheck
+	farcall SafariZoneCheck
 	ld a, [wSafariZoneGameOver]
 	and a
 	jp nz, WarpFound2
@@ -269,7 +269,7 @@
 	ld a, [wd736]
 	bit 7, a
 	jr z, .noSpinning
-	callba LoadSpinnerArrowTiles
+	farcall LoadSpinnerArrowTiles
 .noSpinning
 	call UpdateSprites
 
@@ -306,7 +306,7 @@
 .doneStepCounting
 	CheckEvent EVENT_IN_SAFARI_ZONE
 	jr z, .notSafariZone
-	callba SafariZoneCheckSteps
+	farcall SafariZoneCheckSteps
 	ld a, [wSafariZoneGameOver]
 	and a
 	jp nz, WarpFound2
@@ -343,7 +343,7 @@
 	ld a, [wCurMap]
 	cp OAKS_LAB
 	jp z, .noFaintCheck ; no blacking out if the player lost to the rival in Oak's lab
-	callab AnyPartyAlive
+	callfar AnyPartyAlive
 	ld a, d
 	and a
 	jr z, .allPokemonFainted
@@ -368,7 +368,7 @@
 	ld a, [wd72e]
 	bit 4, a
 	jr nz, .noBattle
-	jpba InitBattle
+	farjp InitBattle
 .noBattle
 	and a
 	ret
@@ -412,7 +412,7 @@
 	push bc
 	ld hl, wd736
 	set 2, [hl] ; standing on warp flag
-	callba IsPlayerStandingOnDoorTileOrWarpTile
+	farcall IsPlayerStandingOnDoorTileOrWarpTile
 	pop bc
 	pop hl
 	jr c, WarpFound1 ; jump if standing on door or warp
@@ -511,7 +511,7 @@
 	jr z, .goBackOutside
 ; if not going back to the previous map
 	ld [wCurMap], a
-	callba IsPlayerStandingOnWarpPadOrHole
+	farcall IsPlayerStandingOnWarpPadOrHole
 	ld a, [wStandingOnWarpPadOrHole]
 	dec a ; is the player on a warp pad?
 	jr nz, .notWarpPad
@@ -679,7 +679,7 @@
 	call RunPaletteCommand
 ; Since the sprite set shouldn't change, this will just update VRAM slots at
 ; $C2XE without loading any tile patterns.
-	callba InitMapSprites
+	farcall InitMapSprites
 	call LoadTileBlockMap
 	jp OverworldLoopLessDelay
 
@@ -747,7 +747,7 @@
 	jp Bankswitch
 
 MapEntryAfterBattle::
-	callba IsPlayerStandingOnWarp ; for enabling warp testing after collisions
+	farcall IsPlayerStandingOnWarp ; for enabling warp testing after collisions
 	ld a, [wMapPalOffset]
 	and a
 	jp z, GBFadeInFromWhite
@@ -800,7 +800,7 @@
 	jp SpecialEnterMap
 
 LeaveMapAnim::
-	jpba _LeaveMapAnim
+	farjp _LeaveMapAnim
 
 LoadPlayerSpriteGraphics::
 ; Load sprite graphics based on whether the player is standing, biking, or surfing.
@@ -1286,7 +1286,7 @@
 	predef GetTileAndCoordsInFrontOfPlayer ; get the tile in front of the player
 	push de
 	push bc
-	callba HandleLedges ; check if the player is trying to jump a ledge
+	farcall HandleLedges ; check if the player is trying to jump a ledge
 	pop bc
 	pop de
 	pop hl
@@ -1977,11 +1977,11 @@
 	push hl
 	push de
 	push bc
-	callba TryPushingBoulder
+	farcall TryPushingBoulder
 	ld a, [wFlags_0xcd60]
 	bit 1, a ; play boulder dust animation
 	jr z, .afterBoulderEffect
-	callba DoBoulderDustAnimation
+	farcall DoBoulderDustAnimation
 .afterBoulderEffect
 	pop bc
 	pop de
@@ -2032,7 +2032,7 @@
 
 ; function to load data from the map header
 LoadMapHeader::
-	callba MarkTownVisitedAndLoadMissableObjects
+	farcall MarkTownVisitedAndLoadMissableObjects
 	ld a, [wCurMapTileset]
 	ld [wUnusedD119], a
 	ld a, [wCurMap]
@@ -2280,7 +2280,7 @@
 	jp nz, .loadSpriteLoop
 .finishUp
 	predef LoadTilesetHeader
-	callab LoadWildData
+	callfar LoadWildData
 	pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
 	ld a, [wCurMapHeight] ; map height in 4x4 tile blocks
 	add a ; double it
@@ -2337,7 +2337,7 @@
 	ld [wSpriteSetID], a
 	call LoadTextBoxTilePatterns
 	call LoadMapHeader
-	callba InitMapSprites ; load tile pattern data for sprites
+	farcall InitMapSprites ; load tile pattern data for sprites
 	call LoadTileBlockMap
 	call LoadTilesetTilePatternData
 	call LoadCurrentMapView
--- a/home/pokemon.asm
+++ b/home/pokemon.asm
@@ -81,7 +81,7 @@
 ; wLoadedMon = base address of pokemon data
 ; wMonHeader = base address of base stats
 LoadMonData::
-	jpab LoadMonData_
+	jpfar LoadMonData_
 
 OverwritewMoves::
 ; Write c to [wMoves + b]. Unused.
@@ -277,7 +277,7 @@
 	bit 1, b ; was the B button pressed?
 	jr z, .handleSwap ; if not, handle swapping the pokemon
 .cancelSwap ; if the B button was pressed
-	callba ErasePartyMenuCursors
+	farcall ErasePartyMenuCursors
 	xor a
 	ld [wMenuItemToSwap], a
 	ld [wPartyMenuTypeOrMessageID], a
@@ -286,7 +286,7 @@
 .handleSwap
 	ld a, [wCurrentMenuItem]
 	ld [wWhichPokemon], a
-	callba SwitchPartyMon
+	farcall SwitchPartyMon
 	jr HandlePartyMenuInput
 
 DrawPartyMenu::
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -225,7 +225,7 @@
 
 Serial_PrintWaitingTextAndSyncAndExchangeNybble::
 	call SaveScreenTilesToBuffer1
-	callab PrintWaitingText
+	callfar PrintWaitingText
 	call Serial_SyncAndExchangeNybble
 	jp LoadScreenTilesFromBuffer1
 
--- a/home/start_menu.asm
+++ b/home/start_menu.asm
@@ -8,8 +8,8 @@
 	call PlaySound
 
 RedisplayStartMenu::
-	callba DrawStartMenu
-	callba PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone
+	farcall DrawStartMenu
+	farcall PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone
 	call UpdateSprites
 .loop
 	call HandleMenuInput
--- a/home/text_script.asm
+++ b/home/text_script.asm
@@ -3,7 +3,7 @@
 DisplayTextID::
 	ldh a, [hLoadedROMBank]
 	push af
-	callba DisplayTextIDInit ; initialization
+	farcall DisplayTextIDInit ; initialization
 	ld hl, wTextPredefFlag
 	bit 0, [hl]
 	res 0, [hl]
@@ -38,7 +38,7 @@
 	push hl
 	push de
 	push bc
-	callba UpdateSpriteFacingOffsetAndDelayMovement ; update the graphics of the sprite the player is talking to (to face the right direction)
+	farcall UpdateSpriteFacingOffsetAndDelayMovement ; update the graphics of the sprite the player is talking to (to face the right direction)
 	pop bc
 	pop de
 	ld hl, wMapSpriteData ; NPC text entries
@@ -79,9 +79,9 @@
 	dict  TX_SCRIPT_PLAYERS_PC,              TextScript_ItemStoragePC
 	dict  TX_SCRIPT_BILLS_PC,                TextScript_BillsPC
 	dict  TX_SCRIPT_POKECENTER_PC,           TextScript_PokemonCenterPC
-	dict2 TX_SCRIPT_VENDING_MACHINE,         callba VendingMachineMenu
+	dict2 TX_SCRIPT_VENDING_MACHINE,         farcall VendingMachineMenu
 	dict  TX_SCRIPT_PRIZE_VENDOR,            TextScript_GameCornerPrizeMenu
-	dict2 TX_SCRIPT_CABLE_CLUB_RECEPTIONIST, callab CableClubNPC
+	dict2 TX_SCRIPT_CABLE_CLUB_RECEPTIONIST, callfar CableClubNPC
 
 	call PrintText_NoCreatingTextBox ; display the text
 	ld a, [wDoNotWaitForButtonPressAfterDisplayingText]
@@ -197,7 +197,7 @@
 	jp AfterDisplayingTextID
 
 DisplaySafariGameOverText::
-	callab PrintSafariGameOverText
+	callfar PrintSafariGameOverText
 	jp AfterDisplayingTextID
 
 DisplayPokemonFaintedText::
--- a/home/trainers.asm
+++ b/home/trainers.asm
@@ -219,7 +219,7 @@
 
 ; calls TrainerWalkUpToPlayer
 TrainerWalkUpToPlayer_Bank0::
-	jpba TrainerWalkUpToPlayer
+	farjp TrainerWalkUpToPlayer
 
 ; sets opponent type and mon set/lvl based on the engaging trainer data
 InitBattleEnemyParameters::
@@ -343,7 +343,7 @@
 	ldh [hLoadedROMBank], a
 	ld [MBC1RomBank], a
 	push hl
-	callba SaveTrainerName
+	farcall SaveTrainerName
 	ld hl, TrainerEndBattleText
 	call PrintText
 	pop hl
@@ -350,7 +350,7 @@
 	pop af
 	ldh [hLoadedROMBank], a
 	ld [MBC1RomBank], a
-	callba FreezeEnemyTrainerSprite
+	farcall FreezeEnemyTrainerSprite
 	jp WaitForSoundToFinish
 
 GetSavedEndBattleTextPointer::
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -72,7 +72,7 @@
 	call Audio3_UpdateMusic
 .afterMusic
 
-	callba TrackPlayTime ; keep track of time played
+	farcall TrackPlayTime ; keep track of time played
 
 	ldh a, [hDisableJoypadPolling]
 	and a
--- a/macros/farcall.asm
+++ b/macros/farcall.asm
@@ -1,24 +1,22 @@
-farcall EQUS "callba"
-
-callba: MACRO
+farcall: MACRO
 	ld b, BANK(\1)
 	ld hl, \1
 	call Bankswitch
 ENDM
 
-callab: MACRO
+callfar: MACRO
 	ld hl, \1
 	ld b, BANK(\1)
 	call Bankswitch
 ENDM
 
-jpba: MACRO
+farjp: MACRO
 	ld b, BANK(\1)
 	ld hl, \1
 	jp Bankswitch
 ENDM
 
-jpab: MACRO
+jpfar: MACRO
 	ld hl, \1
 	ld b, BANK(\1)
 	jp Bankswitch
--- a/scripts/BikeShop.asm
+++ b/scripts/BikeShop.asm
@@ -24,7 +24,7 @@
 	jr nc, .BagFull
 	ld a, BIKE_VOUCHER
 	ldh [hItemToRemoveID], a
-	callba RemoveItemByID
+	farcall RemoveItemByID
 	SetEvent EVENT_GOT_BICYCLE
 	ld hl, BikeShopText_1d824
 	call PrintText
--- a/scripts/CeladonMansion3F.asm
+++ b/scripts/CeladonMansion3F.asm
@@ -49,7 +49,7 @@
 	text_far _CompletedDexText
 	text_promptbutton
 	text_asm
-	callab DisplayDiploma
+	callfar DisplayDiploma
 	ld a, $1
 	ld [wDoNotWaitForButtonPressAfterDisplayingText], a
 	jp TextScriptEnd
--- a/scripts/CeladonMartElevator.asm
+++ b/scripts/CeladonMartElevator.asm
@@ -60,7 +60,7 @@
 CeladonMartElevatorWarpMapsEnd:
 
 CeladonMartElevatorScript_48654:
-	jpba ShakeElevator
+	farjp ShakeElevator
 
 CeladonMartElevator_TextPointers:
 	dw CeladonMartElevatorText1
--- a/scripts/CeladonMartRoof.asm
+++ b/scripts/CeladonMartRoof.asm
@@ -131,7 +131,7 @@
 	jp PrintText
 
 RemoveItemByIDBank12:
-	jpba RemoveItemByID
+	farjp RemoveItemByID
 
 CeladonMartRoofText_484ee:
 	text_far _CeladonMartRoofText_484ee
--- a/scripts/CeruleanCity.asm
+++ b/scripts/CeruleanCity.asm
@@ -174,7 +174,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, $1
 	ldh [hSpriteIndex], a
 	call SetSpriteMovementBytesToFF
@@ -310,7 +310,7 @@
 	ld [wDoNotWaitForButtonPressAfterDisplayingText], a
 	ld hl, ReceivedTM28Text
 	call PrintText
-	callba CeruleanHideRocket
+	farcall CeruleanHideRocket
 .Done
 	jp TextScriptEnd
 
--- a/scripts/ChampionsRoom.asm
+++ b/scripts/ChampionsRoom.asm
@@ -108,7 +108,7 @@
 	ret
 
 GaryScript4:
-	callba Music_Cities1AlternateTempo
+	farcall Music_Cities1AlternateTempo
 	ld a, $2
 	ldh [hSpriteIndexOrTextID], a
 	call GaryScript_760c8
--- a/scripts/CinnabarLabFossilRoom.asm
+++ b/scripts/CinnabarLabFossilRoom.asm
@@ -56,7 +56,7 @@
 	ld a, [wFilteredBagItemsCount]
 	and a
 	jr z, .asm_75d8d
-	callba GiveFossilToCinnabarLab
+	farcall GiveFossilToCinnabarLab
 	jr .asm_75d93
 .asm_75d8d
 	ld hl, Lab4Text_75dcb
@@ -106,4 +106,4 @@
 	jp TextScriptEnd
 
 LoadFossilItemAndMonNameBank1D:
-	jpba LoadFossilItemAndMonName
+	farjp LoadFossilItemAndMonName
--- a/scripts/CopycatsHouse2F.asm
+++ b/scripts/CopycatsHouse2F.asm
@@ -30,7 +30,7 @@
 	call PrintText
 	ld a, POKE_DOLL
 	ldh [hItemToRemoveID], a
-	callba RemoveItemByID
+	farcall RemoveItemByID
 	SetEvent EVENT_GOT_TM31
 	jr .asm_62ecd
 .BagFull
--- a/scripts/Daycare.asm
+++ b/scripts/Daycare.asm
@@ -35,7 +35,7 @@
 	pop af
 	ld hl, DayCareAllRightThenText
 	jp c, .done
-	callab KnowsHMMove
+	callfar KnowsHMMove
 	ld hl, DayCareCantAcceptMonWithHMText
 	jp c, .done
 	xor a
@@ -65,13 +65,13 @@
 	ld a, DAYCARE_DATA
 	ld [wMonDataLocation], a
 	call LoadMonData
-	callab CalcLevelFromExperience
+	callfar CalcLevelFromExperience
 	ld a, d
 	cp MAX_LEVEL
 	jr c, .skipCalcExp
 
 	ld d, MAX_LEVEL
-	callab CalcExperience
+	callfar CalcExperience
 	ld hl, wDayCareMonExp
 	ldh a, [hExperience]
 	ld [hli], a
--- a/scripts/HallOfFame.asm
+++ b/scripts/HallOfFame.asm
@@ -45,7 +45,7 @@
 	ld [wHallOfFameCurScript], a
 	ld a, PALLET_TOWN
 	ld [wLastBlackoutMap], a
-	callba SaveSAVtoSRAM
+	farcall SaveSAVtoSRAM
 	ld b, 5
 .delayLoop
 	ld c, 600 / 5
--- a/scripts/NameRatersHouse.asm
+++ b/scripts/NameRatersHouse.asm
@@ -68,7 +68,7 @@
 	jr nz, .asm_1daae
 	ld hl, NameRaterText_1dac2
 	call PrintText
-	callba DisplayNameRaterScreen
+	farcall DisplayNameRaterScreen
 	jr c, .asm_1daae
 	ld hl, NameRaterText_1dac7
 .asm_1daa8
--- a/scripts/OaksLab.asm
+++ b/scripts/OaksLab.asm
@@ -441,7 +441,7 @@
 	ld a, $10
 	ldh [hSpriteIndexOrTextID], a
 	call DisplayTextID
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, $1
 	ldh [hSpriteIndex], a
 	ld de, .RivalExitMovement
@@ -513,7 +513,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, $15
 	ldh [hSpriteIndexOrTextID], a
 	call DisplayTextID
@@ -614,7 +614,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, $1
 	ldh [hSpriteIndex], a
 	ld de, wNPCMovementDirections2
--- a/scripts/PokemonTower2F.asm
+++ b/scripts/PokemonTower2F.asm
@@ -79,7 +79,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, $2
 	ld [wPokemonTower2FCurScript], a
 	ld [wCurMapScript], a
--- a/scripts/RocketHideoutElevator.asm
+++ b/scripts/RocketHideoutElevator.asm
@@ -58,7 +58,7 @@
 
 RocketHideoutElevatorScript_4575f:
 	call Delay3
-	callba ShakeElevator
+	farcall ShakeElevator
 	ret
 
 RocketHideoutElevator_TextPointers:
--- a/scripts/Route22.asm
+++ b/scripts/Route22.asm
@@ -170,7 +170,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, [wcf0d]
 	cp $1
 	jr nz, .asm_50fff
@@ -248,7 +248,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateTempo
+	farcall Music_RivalAlternateTempo
 	ld a, $2
 	ldh [hSpriteIndex], a
 	call Route22MoveRivalSprite
@@ -329,7 +329,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStartAndTempo
+	farcall Music_RivalAlternateStartAndTempo
 	ld a, [wcf0d]
 	cp $1
 	jr nz, .asm_51134
--- a/scripts/Route5Gate.asm
+++ b/scripts/Route5Gate.asm
@@ -26,7 +26,7 @@
 	ld [wPlayerMovingDirection], a
 	xor a
 	ldh [hJoyHeld], a
-	callba RemoveGuardDrink
+	farcall RemoveGuardDrink
 	ldh a, [hItemToRemoveID]
 	and a
 	jr nz, .asm_1df82
@@ -73,7 +73,7 @@
 	ld a, [wd728]
 	bit 6, a
 	jr nz, .asm_88856
-	callba RemoveGuardDrink
+	farcall RemoveGuardDrink
 	ldh a, [hItemToRemoveID]
 	and a
 	jr nz, .asm_768a2
--- a/scripts/Route6Gate.asm
+++ b/scripts/Route6Gate.asm
@@ -20,7 +20,7 @@
 	ld [wPlayerMovingDirection], a
 	xor a
 	ldh [hJoyHeld], a
-	callba RemoveGuardDrink
+	farcall RemoveGuardDrink
 	ldh a, [hItemToRemoveID]
 	and a
 	jr nz, .asm_1e080
--- a/scripts/Route7Gate.asm
+++ b/scripts/Route7Gate.asm
@@ -32,7 +32,7 @@
 	ld [wPlayerMovingDirection], a
 	xor a
 	ldh [hJoyHeld], a
-	callba RemoveGuardDrink
+	farcall RemoveGuardDrink
 	ldh a, [hItemToRemoveID]
 	and a
 	jr nz, .asm_1e15a
--- a/scripts/Route8Gate.asm
+++ b/scripts/Route8Gate.asm
@@ -31,7 +31,7 @@
 	ld [wPlayerMovingDirection], a
 	xor a
 	ldh [hJoyHeld], a
-	callba RemoveGuardDrink
+	farcall RemoveGuardDrink
 	ldh a, [hItemToRemoveID]
 	and a
 	jr nz, .asm_1e220
--- a/scripts/SSAnne2F.asm
+++ b/scripts/SSAnne2F.asm
@@ -148,7 +148,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld a, $3
 	ld [wSSAnne2FCurScript], a
 	ret
--- a/scripts/SilphCo7F.asm
+++ b/scripts/SilphCo7F.asm
@@ -222,7 +222,7 @@
 	ld a, SFX_STOP_ALL_MUSIC
 	ld [wNewSoundID], a
 	call PlaySound
-	callba Music_RivalAlternateStart
+	farcall Music_RivalAlternateStart
 	ld de, MovementData_51d1d
 	ld a, [wcf0d]
 	cp $1
--- a/scripts/SilphCoElevator.asm
+++ b/scripts/SilphCoElevator.asm
@@ -74,7 +74,7 @@
 
 SilphCoElevatorScript_45827:
 	call Delay3
-	callba ShakeElevator
+	farcall ShakeElevator
 	ret
 
 SilphCoElevator_TextPointers:
--- a/scripts/VermilionDock.asm
+++ b/scripts/VermilionDock.asm
@@ -45,7 +45,7 @@
 	ld c, BANK(Music_Surfing)
 	ld a, MUSIC_SURFING
 	call PlayMusic
-	callba LoadSmokeTileFourTimes
+	farcall LoadSmokeTileFourTimes
 	xor a
 	ld [wSpritePlayerStateData1ImageIndex], a
 	ld c, 120
--- a/scripts/ViridianGym.asm
+++ b/scripts/ViridianGym.asm
@@ -128,7 +128,7 @@
 	ld [wCurMapScript], a
 	ret
 .asm_74980
-	jpba LoadSpinnerArrowTiles
+	farjp LoadSpinnerArrowTiles
 
 ViridianGymScript3:
 	ld a, [wIsInBattle]
--- a/scripts/WardensHouse.asm
+++ b/scripts/WardensHouse.asm
@@ -33,7 +33,7 @@
 	call PrintText
 	ld a, GOLD_TEETH
 	ldh [hItemToRemoveID], a
-	callba RemoveItemByID
+	farcall RemoveItemByID
 	SetEvent EVENT_GAVE_GOLD_TEETH
 .asm_60cba
 	ld hl, WardenThankYouText