shithub: pokered

Download patch

ref: d3e81422d50f937b91df19e058c25ac7288f6063
parent: abaf9fee7c73e708ef8c3e7a1ed710bfc9ec6f6e
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Thu Nov 5 05:50:30 EST 2020

Sync home and macro code with pokeyellow

--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -2,16 +2,6 @@
 LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
 LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
 
-	const_def
-	const SHADE_WHITE ; %00
-	const SHADE_LIGHT ; %01
-	const SHADE_DARK  ; %10
-	const SHADE_BLACK ; %11
-NUM_PAL_COLORS EQU const_value
-
-PAL_COLOR_SIZE EQU 2
-PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
-
 SCREEN_WIDTH  EQU 20
 SCREEN_HEIGHT EQU 18
 SCREEN_WIDTH_PX  EQU SCREEN_WIDTH  * TILE_WIDTH ; pixels
--- a/constants/palette_constants.asm
+++ b/constants/palette_constants.asm
@@ -1,9 +1,13 @@
 ; monochrome palette color ids
 	const_def
-	const WHITE
-	const LIGHT_GRAY
-	const DARK_GRAY
-	const BLACK
+	const SHADE_WHITE ; %00
+	const SHADE_LIGHT ; %01
+	const SHADE_DARK  ; %10
+	const SHADE_BLACK ; %11
+NUM_PAL_COLORS EQU const_value
+
+PAL_COLOR_SIZE EQU 2
+PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
 
 ; pal/blk packets
 ; SetPalFunctions indexes (see engine/gfx/palettes.asm)
--- a/engine/movie/intro.asm
+++ b/engine/movie/intro.asm
@@ -23,7 +23,7 @@
 PlayIntroScene:
 	ld b, SET_PAL_NIDORINO_INTRO
 	call RunPaletteCommand
-	ldPal a, BLACK, DARK_GRAY, LIGHT_GRAY, WHITE
+	ldpal a, SHADE_BLACK, SHADE_DARK, SHADE_LIGHT, SHADE_WHITE
 	ldh [rBGP], a
 	ldh [rOBP0], a
 	ldh [rOBP1], a
@@ -307,7 +307,7 @@
 	ld b, SET_PAL_GAME_FREAK_INTRO
 	call RunPaletteCommand
 	farcall LoadCopyrightAndTextBoxTiles
-	ldPal a, BLACK, DARK_GRAY, LIGHT_GRAY, WHITE
+	ldpal a, SHADE_BLACK, SHADE_DARK, SHADE_LIGHT, SHADE_WHITE
 	ldh [rBGP], a
 	ld c, 180
 	call DelayFrames
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -1,7 +1,7 @@
 ; These routines manage gradual fading
 ; (e.g., entering a doorway)
 LoadGBPal::
-	ld a, [wMapPalOffset] ;tells if wCurMap is dark (requires HM5_FLASH?)
+	ld a, [wMapPalOffset] ; tells if wCurMap is dark (requires HM5_FLASH?)
 	ld b, a
 	ld hl, FadePal4
 	ld a, l
--- a/home/init.asm
+++ b/home/init.asm
@@ -126,7 +126,7 @@
 
 
 StopAllSounds::
-	ld a, BANK(Audio1_UpdateMusic)
+	ld a, BANK("Audio Engine 1")
 	ld [wAudioROMBank], a
 	ld [wAudioSavedROMBank], a
 	xor a
--- a/home/inventory.asm
+++ b/home/inventory.asm
@@ -22,15 +22,7 @@
 ; [wWhichPokemon] = index (within the inventory) of the item to remove
 ; [wItemQuantity] = quantity to remove
 RemoveItemFromInventory::
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(RemoveItemFromInventory_)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call RemoveItemFromInventory_
-	pop af
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall RemoveItemFromInventory_
 	ret
 
 ; function to add an item (in varying quantities) to the player's bag or PC box
@@ -41,15 +33,6 @@
 ; sets carry flag if successful, unsets carry flag if unsuccessful
 AddItemToInventory::
 	push bc
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(AddItemToInventory_)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call AddItemToInventory_
-	pop bc
-	ld a, b
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall_sf AddItemToInventory_
 	pop bc
 	ret
--- a/home/math.asm
+++ b/home/math.asm
@@ -26,15 +26,7 @@
 	push hl
 	push de
 	push bc
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(_Divide)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call _Divide
-	pop af
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall _Divide
 	pop bc
 	pop de
 	pop hl
--- a/home/move_mon.asm
+++ b/home/move_mon.asm
@@ -231,27 +231,9 @@
 	ret
 
 AddEnemyMonToPlayerParty::
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(_AddEnemyMonToPlayerParty)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call _AddEnemyMonToPlayerParty
-	pop bc
-	ld a, b
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall_sf _AddEnemyMonToPlayerParty
 	ret
 
 MoveMon::
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(_MoveMon)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call _MoveMon
-	pop bc
-	ld a, b
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall_sf _MoveMon
 	ret
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -2321,9 +2321,9 @@
 ; copy current map view to VRAM
 	hlcoord 0, 0
 	ld de, vBGMap0
-	ld b, 18
+	ld b, SCREEN_HEIGHT
 .vramCopyLoop
-	ld c, 20
+	ld c, SCREEN_WIDTH
 .vramCopyInnerLoop
 	ld a, [hli]
 	ld [de], a
@@ -2330,7 +2330,7 @@
 	inc e
 	dec c
 	jr nz, .vramCopyInnerLoop
-	ld a, 32 - 20
+	ld a, BG_MAP_WIDTH - SCREEN_WIDTH
 	add e
 	ld e, a
 	jr nc, .noCarry
@@ -2366,15 +2366,15 @@
 	ld c, a
 	ld b, $00
 	ld a, BANK(MapHeaderBanks)
-	call BankswitchHome ; switch to ROM bank 3
+	call BankswitchHome
 	ld hl, MapHeaderBanks
 	add hl, bc
 	ld a, [hl]
-	ldh [hMapROMBank], a ; save map ROM bank
+	ldh [hMapROMBank], a
 	call BankswitchBack
 	ldh a, [hMapROMBank]
 	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a ; switch to map ROM bank
+	ld [MBC1RomBank], a
 	pop bc
 	pop hl
 	ret
@@ -2395,7 +2395,7 @@
 
 ForceBikeOrSurf::
 	ld b, BANK(RedSprite)
-	ld hl, LoadPlayerSpriteGraphics
+	ld hl, LoadPlayerSpriteGraphics ; in bank 0
 	call Bankswitch
 	jp PlayDefaultMusic ; update map/player state?
 
--- a/home/pokemon.asm
+++ b/home/pokemon.asm
@@ -325,16 +325,7 @@
 	ret
 
 PrintStatusConditionNotFainted::
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(PrintStatusAilment)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call PrintStatusAilment ; print status condition
-	pop bc
-	ld a, b
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall_sf PrintStatusAilment
 	ret
 
 ; function to print pokemon level, leaving off the ":L" if the level is at least 100
--- a/home/start.asm
+++ b/home/start.asm
@@ -4,7 +4,7 @@
 	xor a
 	jr .ok
 .gbc
-	ld a, 0
+	ld a, FALSE
 .ok
 	ld [wGBC], a
 	jp Init
--- a/home/text_script.asm
+++ b/home/text_script.asm
@@ -146,15 +146,7 @@
 	call LoadItemList
 	ld a, PRICEDITEMLISTMENU
 	ld [wListMenuID], a
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(DisplayPokemartDialogue_)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call DisplayPokemartDialogue_
-	pop af
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall DisplayPokemartDialogue_
 	jp AfterDisplayingTextID
 
 PokemartGreetingText::
@@ -185,15 +177,7 @@
 	ldh [hItemPrice + 2], a
 
 	inc hl
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(DisplayPokemonCenterDialogue_)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call DisplayPokemonCenterDialogue_
-	pop af
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall DisplayPokemonCenterDialogue_
 	jp AfterDisplayingTextID
 
 DisplaySafariGameOverText::
--- a/home/textbox.asm
+++ b/home/textbox.asm
@@ -3,14 +3,5 @@
 ; [wTextBoxID] = text box ID
 ; b, c = y, x cursor position (TWO_OPTION_MENU only)
 DisplayTextBoxID::
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(DisplayTextBoxID_)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call DisplayTextBoxID_
-	pop bc
-	ld a, b
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall_sf DisplayTextBoxID_
 	ret
--- a/home/update_sprites.asm
+++ b/home/update_sprites.asm
@@ -2,13 +2,5 @@
 	ld a, [wUpdateSpritesEnabled]
 	dec a
 	ret nz
-	ldh a, [hLoadedROMBank]
-	push af
-	ld a, BANK(_UpdateSprites)
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
-	call _UpdateSprites
-	pop af
-	ldh [hLoadedROMBank], a
-	ld [MBC1RomBank], a
+	homecall _UpdateSprites
 	ret
--- a/macros/code.asm
+++ b/macros/code.asm
@@ -4,7 +4,7 @@
 	ld \1, ((\2) & $ff) << 8 + ((\3) & $ff)
 ENDM
 
-ldPal: MACRO
+ldpal: MACRO
 	ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5
 ENDM
 
--- a/macros/farcall.asm
+++ b/macros/farcall.asm
@@ -33,3 +33,16 @@
 	ldh [hLoadedROMBank], a
 	ld [MBC1RomBank], a
 ENDM
+
+homecall_sf: MACRO ; homecall but save flags by popping into bc instead of af
+	ldh a, [hLoadedROMBank]
+	push af
+	ld a, BANK(\1)
+	ldh [hLoadedROMBank], a
+	ld [MBC1RomBank], a
+	call \1
+	pop bc
+	ld a, b
+	ldh [hLoadedROMBank], a
+	ld [MBC1RomBank], a
+ENDM