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