shithub: pokecrystal

Download patch

ref: 13cfe356d678c69aa5a5e19409408f25a38352cf
parent: 40766b9a76582c6472959e6ff99ba088b150baca
author: mid-kid <esteve.varela@gmail.com>
date: Sun May 5 14:14:46 EDT 2019

Fix usage of rIE and rSC constants

--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -42,6 +42,7 @@
 TIMER    EQU 2
 SERIAL   EQU 3
 JOYPAD   EQU 4
+IE_DEFAULT EQU (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
 
 ; OAM attribute flags
 OAM_TILE_BANK EQU 3
--- a/engine/link/link.asm
+++ b/engine/link/link.asm
@@ -50,17 +50,17 @@
 	call DelayFrames
 	xor a
 	ldh [hSerialSend], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 	call DelayFrame
 	xor a
 	ldh [hSerialSend], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 .player_1
@@ -70,7 +70,7 @@
 	call DelayFrames
 	xor a
 	ldh [rIF], a
-	ld a, $8
+	ld a, 1 << SERIAL
 	ldh [rIE], a
 	ld hl, wd1f3
 	ld de, wEnemyMonSpecies
@@ -90,7 +90,7 @@
 	call Serial_ExchangeBytes
 	xor a
 	ldh [rIF], a
-	ld a, $1d
+	ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
 	ldh [rIE], a
 	call Link_CopyRandomNumbers
 	ld hl, wOTPlayerName
@@ -194,17 +194,17 @@
 	call DelayFrames
 	xor a
 	ldh [hSerialSend], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 	call DelayFrame
 	xor a
 	ldh [hSerialSend], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 .Player1:
@@ -214,7 +214,7 @@
 	call DelayFrames
 	xor a
 	ldh [rIF], a
-	ld a, $8
+	ld a, 1 << SERIAL
 	ldh [rIE], a
 	ld hl, wd1f3
 	ld de, wEnemyMonSpecies
@@ -243,7 +243,7 @@
 .not_trading
 	xor a
 	ldh [rIF], a
-	ld a, $1d
+	ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
 	ldh [rIE], a
 	ld de, MUSIC_NONE
 	call PlayMusic
@@ -447,7 +447,7 @@
 	xor a
 	ldh [rIF], a
 	ldh a, [rIE]
-	set 1, a
+	set LCD_STAT, a
 	ldh [rIE], a
 	pop af
 	ldh [rIF], a
@@ -1558,9 +1558,9 @@
 	xor a
 	ldh [rSB], a
 	ldh [hSerialSend], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 	ret
 
@@ -2104,9 +2104,9 @@
 	xor a
 	ldh [rSB], a
 	ldh [hSerialReceive], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 	ld c, 3
 	call DelayFrames
@@ -2113,9 +2113,9 @@
 	xor a
 	ldh [rSB], a
 	ldh [hSerialReceive], a
-	ld a, (0 << rSC_ON) | 0
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 0
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	ld c, 3
 	call DelayFrames
@@ -2131,7 +2131,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, $f
+	ld a, IE_DEFAULT
 	ldh [rIE], a
 	pop af
 	ldh [rIF], a
@@ -2160,9 +2160,9 @@
 	ldh [rSB], a
 	xor a
 	ldh [hSerialReceive], a
-	ld a, (0 << rSC_ON) | 0
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 0
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	xor a ; LINK_TIMECAPSULE - 1
 	ld [wPlayerLinkAction], a
@@ -2177,9 +2177,9 @@
 	ldh [rSB], a
 	xor a
 	ldh [hSerialReceive], a
-	ld a, (0 << rSC_ON) | 0
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 0
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	call DelayFrame
 	call DelayFrame
@@ -2202,9 +2202,9 @@
 	ldh [rSB], a
 	xor a
 	ldh [hSerialReceive], a
-	ld a, (0 << rSC_ON) | 0
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 0
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	ld a, [wLinkTimeoutFrames]
 	dec a
@@ -2218,9 +2218,9 @@
 .not_done
 	ld a, $1
 	ldh [rSB], a
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 	call DelayFrame
 	jr .loop
--- a/engine/link/mystery_gift.asm
+++ b/engine/link/mystery_gift.asm
@@ -434,7 +434,7 @@
 	xor a
 	ldh [rIF], a
 	ldh a, [rIE]
-	or $1
+	or 1 << VBLANK
 	ldh [rIE], a
 	ei
 	call DelayFrame
@@ -559,7 +559,7 @@
 	xor a
 	ldh [rIF], a
 	ldh a, [rIE]
-	or $1
+	or 1 << VBLANK
 	ldh [rIE], a
 	ei
 	call DelayFrame
@@ -600,7 +600,7 @@
 
 Function104d5e:
 	call Function104d74
-	ld a, $4
+	ld a, 1 << TIMER
 	ldh [rIE], a
 	xor a
 	ldh [rIF], a
--- a/engine/printer/printer.asm
+++ b/engine/printer/printer.asm
@@ -56,7 +56,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, $9
+	ld a, (1 << SERIAL) | (1 << VBLANK)
 	ldh [rIE], a
 
 	call Printer_StartTransmission
@@ -140,13 +140,13 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, %1001
+	ld a, (1 << SERIAL) | (1 << VBLANK)
 	ldh [rIE], a
 
 	ld hl, hVBlank
 	ld a, [hl]
 	push af
-	ld [hl], %0100
+	ld [hl], 4
 
 	xor a
 	ldh [hBGMapMode], a
@@ -219,7 +219,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, $9
+	ld a, (1 << SERIAL) | (1 << VBLANK)
 	ldh [rIE], a
 	ld hl, hVBlank
 	ld a, [hl]
@@ -284,7 +284,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, %1001
+	ld a, (1 << SERIAL) | (1 << VBLANK)
 	ldh [rIE], a
 
 	xor a
@@ -326,7 +326,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, %1001
+	ld a, (1 << SERIAL) | (1 << VBLANK)
 	ldh [rIE], a
 
 	xor a
@@ -390,7 +390,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, %1001
+	ld a, (1 << SERIAL) | (1 << VBLANK)
 	ldh [rIE], a
 
 	ld hl, hVBlank
@@ -458,9 +458,9 @@
 	ld [wPrinterOpcode], a
 	ld a, $88
 	ldh [rSB], a
-	ld a, $1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, $81
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 .loop2
 	ld a, [wPrinterOpcode]
--- a/engine/printer/printer_serial.asm
+++ b/engine/printer/printer_serial.asm
@@ -279,9 +279,9 @@
 	ld [wPrinterOpcode], a
 	ld a, $88
 	ldh [rSB], a
-	ld a, $1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, $81
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 	ret
 
@@ -622,9 +622,9 @@
 
 Printer_SerialSend:
 	ldh [rSB], a
-	ld a, $1 ; switch to internal clock
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, $81 ; start transfer
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 	ret
 
--- a/home/handshake.asm
+++ b/home/handshake.asm
@@ -32,11 +32,11 @@
 	ldh [rSB], a
 
 ; switch to internal clock
-	ld a, %00000001
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 ; start transfer
-	ld a, %10000001
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 	ret
--- a/home/init.asm
+++ b/home/init.asm
@@ -6,7 +6,7 @@
 	call ClearPalettes
 	xor a
 	ldh [rIF], a
-	ld a, 1 ; VBlank int
+	ld a, 1 << VBLANK
 	ldh [rIE], a
 	ei
 
@@ -154,7 +154,7 @@
 
 	xor a
 	ldh [rIF], a
-	ld a, %1111 ; VBlank, LCDStat, Timer, Serial interrupts
+	ld a, IE_DEFAULT
 	ldh [rIE], a
 	ei
 
--- a/home/lcd.asm
+++ b/home/lcd.asm
@@ -46,7 +46,7 @@
 	ld b, a
 
 ; Disable VBlank
-	res 0, a ; vblank
+	res VBLANK, a
 	ldh [rIE], a
 
 .wait
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -28,9 +28,9 @@
 	cp USING_INTERNAL_CLOCK
 	jr z, .player2
 
-	ld a, 0 << rSC_ON
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, 1 << rSC_ON
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	jr .player2
 
@@ -65,9 +65,9 @@
 	bit 7, a
 	jr nz, .wait_bit_7
 
-	ld a, 0 << rSC_ON
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, 1 << rSC_ON
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	jr .player2
 
@@ -130,9 +130,9 @@
 	ldh a, [hSerialConnectionStatus]
 	cp USING_INTERNAL_CLOCK
 	jr nz, .not_player_2
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 .not_player_2
 .loop2
@@ -352,9 +352,9 @@
 	ldh a, [hSerialConnectionStatus]
 	cp USING_INTERNAL_CLOCK
 	jr nz, .player_1
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 .player_1
@@ -382,9 +382,9 @@
 	ldh a, [hSerialConnectionStatus]
 	cp USING_INTERNAL_CLOCK
 	ret nz
-	ld a, (0 << rSC_ON) | 1
+	ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, (1 << rSC_ON) | 1
+	ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 	ret
 
@@ -396,8 +396,8 @@
 	ldh [rSB], a
 	xor a
 	ldh [hSerialReceive], a
-	ld a, 0 << rSC_ON
+	ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, 1 << rSC_ON
+	ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
 	ldh [rSC], a
 	ret
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -196,13 +196,13 @@
 	xor a
 	ldh [rIF], a
 	; enable lcd stat
-	ld a, %10 ; lcd stat
+	ld a, 1 << LCD_STAT
 	ldh [rIE], a
 	; rerequest serial int if applicable (still disabled)
 	; request lcd stat
 	ld a, b
-	and %1000 ; serial
-	or %10 ; lcd stat
+	and 1 << SERIAL
+	or 1 << LCD_STAT
 	ldh [rIF], a
 
 	ei
@@ -220,7 +220,7 @@
 	xor a
 	ldh [rIF], a
 	; enable ints besides joypad
-	ld a, %1111 ; serial timer lcdstat vblank
+	ld a, IE_DEFAULT
 	ldh [rIE], a
 	; rerequest ints
 	ld a, b
@@ -279,7 +279,7 @@
 	push af
 	xor a
 	ldh [rIF], a
-	ld a, %10 ; lcd stat
+	ld a, 1 << LCD_STAT
 	ldh [rIE], a
 	ldh [rIF], a
 
@@ -302,7 +302,7 @@
 	xor a
 	ldh [rIF], a
 	; enable ints besides joypad
-	ld a, %1111 ; serial timer lcdstat vblank
+	ld a, IE_DEFAULT
 	ldh [rIE], a
 	; request ints
 	ld a, b
@@ -368,7 +368,7 @@
 
 	xor a
 	ldh [rIF], a
-	ld a, %10 ; lcd stat
+	ld a, 1 << LCD_STAT
 	ldh [rIE], a
 	; request lcd stat
 	ldh [rIF], a
@@ -384,7 +384,7 @@
 	xor a
 	ldh [rIF], a
 	; enable ints besides joypad
-	ld a, %1111 ; serial timer lcdstat vblank
+	ld a, IE_DEFAULT
 	ldh [rIE], a
 	ret
 
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -605,7 +605,7 @@
 Function110393:
 	ld c, LOW(rIE)
 	ldh a, [c]
-	or $c
+	or (1 << SERIAL) | (1 << TIMER)
 	ldh [c], a
 	ret
 
@@ -4101,9 +4101,9 @@
 Function111b2e:
 	ld hl, $c822
 	set 1, [hl]
-	ld a, $3
+	ld a, (0 << rSC_ON) | (1 << rSC_CGB) | (1 << rSC_CLOCK)
 	ldh [rSC], a
-	ld a, $83
+	ld a, (1 << rSC_ON) | (1 << rSC_CGB) | (1 << rSC_CLOCK)
 	ldh [rSC], a
 
 Function111b3b:
@@ -4684,7 +4684,7 @@
 	ret
 .asm_111f17
 	ldh a, [rSC]
-	and $80
+	and 1 << rSC_ON
 	jr nz, .asm_111f17
 	di
 	ld a, [$c81e]
--- a/mobile/mobile_40.asm
+++ b/mobile/mobile_40.asm
@@ -79,7 +79,7 @@
 	call DoubleSpeed
 	xor a
 	ldh [rIF], a
-	ld a, 1 << VBLANK | 1 << LCD_STAT | 1 << TIMER | 1 << SERIAL
+	ld a, IE_DEFAULT
 	ldh [rIE], a
 	xor a
 	ldh [hMapAnims], a
@@ -162,7 +162,7 @@
 	xor a
 	ldh [rIF], a
 	ldh a, [rIE]
-	and $13
+	and $1f ^ (1 << SERIAL | 1 << TIMER)
 	ldh [rIE], a
 	xor a
 	ldh [hMobileReceive], a
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -469,7 +469,7 @@
 	ld a, [hl]
 	ld [wcd7f], a
 	set 1, [hl]
-	ld a, $f
+	ld a, (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
 	ldh [rIE], a
 	ld a, $1
 	ldh [hMobileReceive], a