shithub: pokecrystal

Download patch

ref: 22615cecc5b878ff92f882f34dd0f21e7d0489b9
parent: 93ed0ed19ce615f99a36062cd2133e8ee2e75cc1
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Fri Apr 17 06:52:59 EDT 2020

More miscellaneous fixes (see #709)

--- a/Makefile
+++ b/Makefile
@@ -93,16 +93,16 @@
 
 
 pokecrystal.gbc: $(crystal_obj) pokecrystal.link
-	$(RGBLINK) -n pokecrystal.sym -m pokecrystal.map -l pokecrystal.link -o $@ $(crystal_obj)
-	$(RGBFIX) -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
+	$(RGBLINK) -n pokecrystal.sym -m pokecrystal.map -l pokecrystal.link -p 0 -o $@ $(crystal_obj)
+	$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTE -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
 
 pokecrystal11.gbc: $(crystal11_obj) pokecrystal.link
-	$(RGBLINK) -n pokecrystal11.sym -m pokecrystal11.map -l pokecrystal.link -o $@ $(crystal11_obj)
-	$(RGBFIX) -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -n 1 -p 0 -r 3 -t PM_CRYSTAL $@
+	$(RGBLINK) -n pokecrystal11.sym -m pokecrystal11.map -l pokecrystal.link -p 0 -o $@ $(crystal11_obj)
+	$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTE -n 1 -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
 
 pokecrystal-au.gbc: $(crystal_au_obj) pokecrystal.link
-	$(RGBLINK) -n pokecrystal-au.sym -m pokecrystal-au.map -l pokecrystal.link -o $@ $(crystal_au_obj)
-	$(RGBFIX) -Cjv -i BYTU -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
+	$(RGBLINK) -n pokecrystal-au.sym -m pokecrystal-au.map -l pokecrystal.link -p 0 -o $@ $(crystal_au_obj)
+	$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTU -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
 
 
 # For files that the compressor can't match, there will be a .lz file suffixed with the md5 hash of the correct uncompressed file.
--- a/engine/events/diploma.asm
+++ b/engine/events/diploma.asm
@@ -52,7 +52,7 @@
 PrintDiplomaPage2:
 	hlcoord 0, 0
 	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	ld a, $7f
+	ld a, " "
 	call ByteFill
 	ld hl, DiplomaPage2Tilemap
 	decoord 0, 0
--- a/engine/events/print_unown.asm
+++ b/engine/events/print_unown.asm
@@ -112,7 +112,7 @@
 	ld a, [hl]
 	and a
 	jr nz, .wrap_around_left
-	ld [hl], 26 + 1
+	ld [hl], NUM_UNOWN + 1
 .wrap_around_left
 	dec [hl]
 	jr .return
@@ -120,7 +120,7 @@
 .press_right
 	ld hl, wJumptableIndex
 	ld a, [hl]
-	cp 26
+	cp NUM_UNOWN
 	jr c, .wrap_around_right
 	ld [hl], -1
 .wrap_around_right
@@ -132,7 +132,7 @@
 
 .UpdateUnownFrontpic:
 	ld a, [wJumptableIndex]
-	cp 26
+	cp NUM_UNOWN
 	jr z, .vacant
 	inc a
 	ld [wUnownLetter], a
--- a/engine/events/print_unown_2.asm
+++ b/engine/events/print_unown_2.asm
@@ -1,7 +1,7 @@
 RotateUnownFrontpic:
 ; something to do with Unown printer
 	push de
-	xor a ; sScratch
+	xor a ; BANK(sScratch)
 	call GetSRAMBank
 	ld hl, sScratch
 	ld bc, 0
--- a/engine/menus/init_gender.asm
+++ b/engine/menus/init_gender.asm
@@ -59,9 +59,9 @@
 InitGenderScreen:
 	ld a, $10
 	ld [wMusicFade], a
-	ld a, MUSIC_NONE
+	ld a, LOW(MUSIC_NONE)
 	ld [wMusicFadeID], a
-	ld a, $0
+	ld a, HIGH(MUSIC_NONE)
 	ld [wMusicFadeID + 1], a
 	ld c, 8
 	call DelayFrames
--- a/engine/menus/intro_menu.asm
+++ b/engine/menus/intro_menu.asm
@@ -1206,7 +1206,7 @@
 	inc [hl]
 
 ; Fade out the title screen music
-	xor a
+	xor a ; MUSIC_NONE
 	ld [wMusicFadeID], a
 	ld [wMusicFadeID + 1], a
 	ld hl, wMusicFade
--- a/engine/menus/options_menu.asm
+++ b/engine/menus/options_menu.asm
@@ -1,12 +1,24 @@
+; GetOptionPointer.Pointers indexes
+	const_def
+	const OPT_TEXT_SPEED   ; 0
+	const OPT_BATTLE_SCENE ; 1
+	const OPT_BATTLE_STYLE ; 2
+	const OPT_SOUND        ; 3
+	const OPT_PRINT        ; 4
+	const OPT_MENU_ACCOUNT ; 5
+	const OPT_FRAME        ; 6
+	const OPT_CANCEL       ; 7
+NUM_OPTIONS EQU const_value    ; 8
+
 _OptionsMenu:
 	ld hl, hInMenu
 	ld a, [hl]
 	push af
-	ld [hl], $1
+	ld [hl], TRUE
 	call ClearBGPalettes
 	hlcoord 0, 0
-	ld b, 16
-	ld c, 18
+	ld b, SCREEN_HEIGHT - 2
+	ld c, SCREEN_WIDTH - 2
 	call Textbox
 	hlcoord 2, 2
 	ld de, StringOptions
@@ -13,9 +25,10 @@
 	call PlaceString
 	xor a
 	ld [wJumptableIndex], a
-	ld c, $6 ; number of items on the menu minus 1 (for cancel)
 
-.print_text_loop ; this next will display the settings of each option when the menu is opened
+; display the settings of each option when the menu is opened
+	ld c, NUM_OPTIONS - 2 ; omit frame type, the last option
+.print_text_loop
 	push bc
 	xor a
 	ldh [hJoyLast], a
@@ -25,8 +38,8 @@
 	inc [hl]
 	dec c
 	jr nz, .print_text_loop
+	call UpdateFrame ; display the frame type
 
-	call UpdateFrame
 	xor a
 	ld [wJumptableIndex], a
 	inc a
@@ -78,8 +91,8 @@
 	db "CANCEL@"
 
 GetOptionPointer:
-	ld a, [wJumptableIndex] ; load the cursor position to a
-	ld e, a ; copy it to de
+	ld a, [wJumptableIndex]
+	ld e, a
 	ld d, 0
 	ld hl, .Pointers
 	add hl, de
@@ -87,9 +100,10 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	jp hl ; jump to the code of the current highlighted item
+	jp hl
 
 .Pointers:
+; entries correspond to OPT_* constants
 	dw Options_TextSpeed
 	dw Options_BattleScene
 	dw Options_BattleStyle
@@ -346,7 +360,7 @@
 	ld [wGBPrinterBrightness], a
 
 .NonePressed:
-	ld b, $0
+	ld b, 0
 	ld hl, .Strings
 	add hl, bc
 	add hl, bc
@@ -500,17 +514,17 @@
 	ret
 
 .DownPressed:
-	ld a, [hl] ; load the cursor position to a
-	cp $7 ; maximum number of items in option menu
-	jr nz, .CheckFive
-	ld [hl], $0
+	ld a, [hl]
+	cp OPT_CANCEL ; maximum option index
+	jr nz, .CheckMenuAccount
+	ld [hl], OPT_TEXT_SPEED ; first option
 	scf
 	ret
 
-.CheckFive: ; I have no idea why this exists...
-	cp $5
+.CheckMenuAccount: ; I have no idea why this exists...
+	cp OPT_MENU_ACCOUNT
 	jr nz, .Increase
-	ld [hl], $5
+	ld [hl], OPT_MENU_ACCOUNT
 
 .Increase:
 	inc [hl]
@@ -519,16 +533,18 @@
 
 .UpPressed:
 	ld a, [hl]
-	cp $6
-	jr nz, .NotSix
-	ld [hl], $5 ; Another thing where I'm not sure why it exists
+
+; Another thing where I'm not sure why it exists
+	cp OPT_FRAME
+	jr nz, .NotFrame
+	ld [hl], OPT_MENU_ACCOUNT
 	scf
 	ret
 
-.NotSix:
-	and a
+.NotFrame:
+	and a ; OPT_TEXT_SPEED, minimum option index
 	jr nz, .Decrease
-	ld [hl], $8 ; number of option items +1
+	ld [hl], NUM_OPTIONS ; decrements to OPT_CANCEL, maximum option index
 
 .Decrease:
 	dec [hl]
@@ -538,7 +554,7 @@
 Options_UpdateCursorPosition:
 	hlcoord 1, 1
 	ld de, SCREEN_WIDTH
-	ld c, $10
+	ld c, SCREEN_HEIGHT - 2
 .loop
 	ld [hl], " "
 	add hl, de
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -85,7 +85,7 @@
 	xor a
 	ldh [hBGMapMode], a
 	ld [wCreditsPos], a
-	ld [wCreditsUnusedCD21], a
+	ld [wCreditsPos + 1], a
 	ld [wCreditsTimer], a
 
 .execution_loop
--- a/engine/overworld/map_setup.asm
+++ b/engine/overworld/map_setup.asm
@@ -226,9 +226,9 @@
 	ret
 
 FadeMapMusicAndPalettes:
-	ld e, 0
+	ld e, LOW(MUSIC_NONE)
 	ld a, [wMusicFadeID]
-	ld d, 0
+	ld d, HIGH(MUSIC_NONE)
 	ld a, [wMusicFadeID + 1]
 	ld a, $4
 	ld [wMusicFade], a
--- a/mobile/mobile_45_sprite_engine.asm
+++ b/mobile/mobile_45_sprite_engine.asm
@@ -704,9 +704,9 @@
 .asm_11642a
 	ld a, $8
 	ld [wMusicFade], a
-	ld a, $0
+	ld a, LOW(MUSIC_NONE)
 	ld [wMusicFadeID], a
-	ld a, $0
+	ld a, HIGH(MUSIC_NONE)
 	ld [wMusicFadeID + 1], a
 
 .asm_116439
--- a/wram.asm
+++ b/wram.asm
@@ -1176,8 +1176,7 @@
 
 NEXTU ; cd20
 ; credits
-wCreditsPos:: db
-wCreditsUnusedCD21:: db
+wCreditsPos:: dw
 wCreditsTimer:: db
 
 NEXTU ; cd20