ref: f56f340ce115d049374678bffc7509e89a6d31ca
parent: a24b45ff89a405a3e66e69dff0a3ed4b15954729
author: yenatch <[email protected]>
date: Tue Feb 19 21:46:40 EST 2013
Label hw registers
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -16,27 +16,27 @@
push bc
push af
call MusicOff
- ld hl, $ff24 ; channel control registers
+ ld hl, rNR50 ; channel control registers
xor a
- ld [hli], a ; ff24 ; volume/vin
- ld [hli], a ; ff25 ; sfx channels
+ ld [hli], a ; rNR50 ; volume/vin
+ ld [hli], a ; rNR51 ; sfx channels
ld a, $80 ; all channels on
ld [hli], a ; ff26 ; music channels
- ld hl, $ff10 ; sound channel registers
+ ld hl, rNR10 ; sound channel registers
ld e, $04 ; number of channels
.clearsound
; sound channel 1 2 3 4
xor a
- ld [hli], a ; $ff10, $ff15, $ff1a, $ff1f ; sweep = 0
+ ld [hli], a ; rNR10, $ff15, rNR30, $ff1f ; sweep = 0
- ld [hli], a ; $ff11, $ff16, $ff1b, $ff20 ; length/wavepattern = 0
+ ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0
ld a, $08
- ld [hli], a ; $ff12, $ff17, $ff1c, $ff21 ; envelope = 0
+ ld [hli], a ; rNR12, rNR22, rNR32, rNR42 ; envelope = 0
xor a
- ld [hli], a ; $ff13, $ff18, $ff1d, $ff22 ; frequency lo = 0
+ ld [hli], a ; rNR13, rNR23, rNR33, rNR43 ; frequency lo = 0
ld a, $80
- ld [hli], a ; $ff14, $ff19, $ff1e, $ff23 ; restart sound (freq hi = 0)
+ ld [hli], a ; rNR14, rNR24, rNR34, rNR44 ; restart sound (freq hi = 0)
dec e
jr nz, .clearsound
@@ -208,10 +208,10 @@
call FadeMusic
; write volume to hardware register
ld a, [Volume]
- ld [$ff24], a
+ ld [rNR50], a
; write SO on/off to hardware register
ld a, [SoundOutput]
- ld [$ff25], a
+ ld [rNR51], a
ret
; e8125
@@ -251,7 +251,7 @@
jr z, .asm_e8159
;
ld a, [SoundInput]
- ld [$ff10], a
+ ld [rNR10], a
.asm_e8159
bit 5, [hl] ; rest
jr nz, .ch1rest
@@ -264,34 +264,34 @@
jr .asm_e8175
.asm_e816b
ld a, [$c294]
- ld [$ff13], a
+ ld [rNR13], a
ld a, [$c295]
- ld [$ff14], a
+ ld [rNR14], a
.asm_e8175
bit 0, [hl]
ret z
ld a, [$c292]
ld d, a
- ld a, [$ff11]
+ ld a, [rNR11]
and a, $3f ; sound length
or d
- ld [$ff11], a
+ ld [rNR11], a
ret
.asm_e8184
ld a, [$c292]
ld d, a
- ld a, [$ff11]
+ ld a, [rNR11]
and a, $3f ; sound length
or d
- ld [$ff11], a
+ ld [rNR11], a
ld a, [$c294]
- ld [$ff13], a
+ ld [rNR13], a
ret
.ch1rest
- ld a, [$ff26]
+ ld a, [rNR52]
and a, %10001110 ; ch1 off
- ld [$ff26], a
- ld hl, $ff10
+ ld [rNR52], a
+ ld hl, rNR10
call ClearChannel
ret
.asm_e81a2
@@ -298,14 +298,14 @@
ld hl, $c292
ld a, $3f ; sound length
or [hl]
- ld [$ff11], a
+ ld [rNR11], a
ld a, [$c293]
- ld [$ff12], a
+ ld [rNR12], a
ld a, [$c294]
- ld [$ff13], a
+ ld [rNR13], a
ld a, [$c295]
or a, $80
- ld [$ff14], a
+ ld [rNR14], a
ret
.Channel2
@@ -322,31 +322,31 @@
ret z
ld a, [$c292]
ld d, a
- ld a, [$ff16]
+ ld a, [rNR21]
and a, $3f ; sound length
or d
- ld [$ff16], a
+ ld [rNR21], a
ret
.asm_e81db ; unused
ld a, [$c294]
- ld [$ff18], a
+ ld [rNR23], a
ld a, [$c295]
- ld [$ff19], a
+ ld [rNR24], a
ret
.asm_e81e6
ld a, [$c292]
ld d, a
- ld a, [$ff16]
+ ld a, [rNR21]
and a, $3f ; sound length
or d
- ld [$ff16], a
+ ld [rNR21], a
ld a, [$c294]
- ld [$ff18], a
+ ld [rNR23], a
ret
.ch2rest
- ld a, [$ff26]
+ ld a, [rNR52]
and a, %10001101 ; ch2 off
- ld [$ff26], a
+ ld [rNR52], a
ld hl, $ff15
call ClearChannel
ret
@@ -354,14 +354,14 @@
ld hl, $c292
ld a, $3f ; sound length
or [hl]
- ld [$ff16], a
+ ld [rNR21], a
ld a, [$c293]
- ld [$ff17], a
+ ld [rNR22], a
ld a, [$c294]
- ld [$ff18], a
+ ld [rNR23], a
ld a, [$c295]
or a, $80 ; initial (restart)
- ld [$ff19], a
+ ld [rNR24], a
ret
.Channel3
@@ -377,34 +377,34 @@
ret
.asm_e822f ; unused
ld a, [$c294]
- ld [$ff1d], a
+ ld [rNR33], a
ld a, [$c295]
- ld [$ff1e], a
+ ld [rNR34], a
ret
.asm_e823a
ld a, [$c294]
- ld [$ff1d], a
+ ld [rNR33], a
ret
.ch3rest
- ld a, [$ff26]
+ ld a, [rNR52]
and a, %10001011 ; ch3 off
- ld [$ff26], a
- ld hl, $ff1a
+ ld [rNR52], a
+ ld hl, rNR30
call ClearChannel
ret
.asm_e824d
ld a, $3f
- ld [$ff1b], a
+ ld [rNR31], a
xor a
- ld [$ff1a], a
+ ld [rNR30], a
call .asm_e8268
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
ld a, [$c294]
- ld [$ff1d], a
+ ld [rNR33], a
ld a, [$c295]
or a, $80
- ld [$ff1e], a
+ ld [rNR34], a
ret
.asm_e8268
push hl
@@ -458,7 +458,7 @@
ld a, [$c293]
and a, $f0
sla a
- ld [$ff1c], a
+ ld [rNR32], a
ret
.Channel4
@@ -472,24 +472,24 @@
ret
.asm_e82c1 ; unused
ld a, [$c294]
- ld [$ff22], a
+ ld [rNR43], a
ret
.ch4rest
- ld a, [$ff26]
+ ld a, [rNR52]
and a, %10000111 ; ch4 off
- ld [$ff26], a
+ ld [rNR52], a
ld hl, $ff1f
call ClearChannel
ret
.asm_e82d4
ld a, $3f ; sound length
- ld [$ff20], a
+ ld [rNR41], a
ld a, [$c293]
- ld [$ff21], a
+ ld [rNR42], a
ld a, [$c294]
- ld [$ff22], a
+ ld [rNR43], a
ld a, $80
- ld [$ff23], a
+ ld [rNR44], a
ret
; e82e7
@@ -535,15 +535,15 @@
ld hl, Tablee8350
.updatehw
xor a
- ld [$ff10], a ; sweep off
+ ld [rNR10], a ; sweep off
ld a, [hli]
- ld [$ff11], a ; sound length / duty cycle
+ ld [rNR11], a ; sound length / duty cycle
ld a, [hli]
- ld [$ff12], a ; ch1 volume envelope
+ ld [rNR12], a ; ch1 volume envelope
ld a, [hli]
- ld [$ff13], a ; ch1 frequency lo
+ ld [rNR13], a ; ch1 frequency lo
ld a, [hli]
- ld [$ff14], a ; ch1 frequency hi
+ ld [rNR14], a ; ch1 frequency hi
.asm_e8335
ld a, d
inc a
@@ -1192,7 +1192,7 @@
jr nz, .ok
; ????
xor a
- ld [$ff10], a ; sweep = 0
+ ld [rNR10], a ; sweep = 0
.ok
; stop playing
; turn channel off
@@ -2454,16 +2454,16 @@
jr z, .ch6
res 0, [hl] ; turn it off
xor a
- ld [$ff11], a ; length/wavepattern = 0
+ ld [rNR11], a ; length/wavepattern = 0
ld a, $08
- ld [$ff12], a ; envelope = 0
+ ld [rNR12], a ; envelope = 0
xor a
- ld [$ff13], a ; frequency lo = 0
+ ld [rNR13], a ; frequency lo = 0
ld a, $80
- ld [$ff14], a ; restart sound (freq hi = 0)
+ ld [rNR14], a ; restart sound (freq hi = 0)
xor a
ld [SoundInput], a ; global sound off
- ld [$ff10], a ; sweep = 0
+ ld [rNR10], a ; sweep = 0
.ch6
ld hl, $c1fe ; ch6 on?
bit 0, [hl]
@@ -2470,13 +2470,13 @@
jr z, .ch7
res 0, [hl] ; turn it off
xor a
- ld [$ff16], a ; length/wavepattern = 0
+ ld [rNR21], a ; length/wavepattern = 0
ld a, $08
- ld [$ff17], a ; envelope = 0
+ ld [rNR22], a ; envelope = 0
xor a
- ld [$ff18], a ; frequency lo = 0
+ ld [rNR23], a ; frequency lo = 0
ld a, $80
- ld [$ff19], a ; restart sound (freq hi = 0)
+ ld [rNR24], a ; restart sound (freq hi = 0)
.ch7
ld hl, $c230 ; ch7 on?
bit 0, [hl]
@@ -2483,14 +2483,14 @@
jr z, .ch8
res 0, [hl] ; turn it off
xor a
- ld [$ff1a], a ; sound mode #3 off
- ld [$ff1b], a ; length/wavepattern = 0
+ ld [rNR30], a ; sound mode #3 off
+ ld [rNR31], a ; length/wavepattern = 0
ld a, $08
- ld [$ff1c], a ; envelope = 0
+ ld [rNR32], a ; envelope = 0
xor a
- ld [$ff1d], a ; frequency lo = 0
+ ld [rNR33], a ; frequency lo = 0
ld a, $80
- ld [$ff1e], a ; restart sound (freq hi = 0)
+ ld [rNR34], a ; restart sound (freq hi = 0)
.ch8
ld hl, $c262 ; ch8 on?
bit 0, [hl]
@@ -2497,13 +2497,13 @@
jr z, .chscleared
res 0, [hl] ; turn it off
xor a
- ld [$ff20], a ; length/wavepattern = 0
+ ld [rNR41], a ; length/wavepattern = 0
ld a, $08
- ld [$ff21], a ; envelope = 0
+ ld [rNR42], a ; envelope = 0
xor a
- ld [$ff22], a ; frequency lo = 0
+ ld [rNR43], a ; frequency lo = 0
ld a, $80
- ld [$ff23], a ; restart sound (freq hi = 0)
+ ld [rNR44], a ; restart sound (freq hi = 0)
xor a
ld [NoiseSampleAddressLo], a
ld [NoiseSampleAddressHi], a
@@ -3126,13 +3126,13 @@
ClearChannels: ; e8fe9
; runs ClearChannel for all 4 channels
; doesn't seem to be used, but functionally identical to SoundRestart
- ld hl, $ff24
+ ld hl, rNR50
xor a
ld [hli], a
ld [hli], a
ld a, $80
ld [hli], a
- ld hl, $ff10
+ ld hl, rNR10
ld e, $04
.loop
call ClearChannel
@@ -3142,19 +3142,19 @@
; e8ffe
ClearChannel: ; e8ffe
-; input: hl = beginning hw sound register ($ff10, $ff15, $ff1a, $ff1f)
+; input: hl = beginning hw sound register (rNR10, $ff15, rNR30, $ff1f)
; output: 00 00 80 00 80
; sound channel 1 2 3 4
xor a
- ld [hli], a ; $ff10, $ff15, $ff1a, $ff1f ; sweep = 0
+ ld [hli], a ; rNR10, $ff15, rNR30, $ff1f ; sweep = 0
- ld [hli], a ; $ff11, $ff16, $ff1b, $ff20 ; length/wavepattern = 0
+ ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0
ld a, $08
- ld [hli], a ; $ff12, $ff17, $ff1c, $ff21 ; envelope = 0
+ ld [hli], a ; rNR12, rNR22, rNR32, rNR42 ; envelope = 0
xor a
- ld [hli], a ; $ff13, $ff18, $ff1d, $ff22 ; frequency lo = 0
+ ld [hli], a ; rNR13, rNR23, rNR33, rNR43 ; frequency lo = 0
ld a, $80
- ld [hli], a ; $ff14, $ff19, $ff1e, $ff23 ; restart sound (freq hi = 0)
+ ld [hli], a ; rNR14, rNR24, rNR34, rNR44 ; restart sound (freq hi = 0)
ret
; e900a
--- a/joypad.asm
+++ b/joypad.asm
@@ -40,10 +40,10 @@
; We can only get four inputs at a time.
; We take d-pad first for no particular reason.
ld a, D_PAD
- ld [$ff00], a
+ ld [rJOYP], a
; Read twice to give the request time to take.
- ld a, [$ff00]
- ld a, [$ff00]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
; The Joypad register output is in the lo nybble (inversed).
; We make the hi nybble of our new container d-pad input.
@@ -57,14 +57,14 @@
; Buttons make 8 total inputs (A, B, Select, Start).
; We can fit this into one byte.
ld a, BUTTONS
- ld [$ff00], a
+ ld [rJOYP], a
; Wait for input to stabilize.
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
; Buttons take the lo nybble.
cpl
and $f
@@ -73,7 +73,7 @@
; Reset the joypad register since we're done with it.
ld a, $30
- ld [$ff00], a
+ ld [rJOYP], a
; To get the delta we xor the last frame's input with the new one.
ld a, [$ffa4] ; last frame
--- a/main.asm
+++ b/main.asm
@@ -150,47 +150,47 @@
; Most of this is just going through the motions
; don't need to do anything if lcd is already off
- ld a, [$ff40] ; LCDC
+ ld a, [rLCDC]
bit 7, a ; lcd enable
ret z
; reset ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; save enabled ints
- ld a, [$ffff] ; IE
+ ld a, [rIE]
ld b, a
; disable vblank
res 0, a ; vblank
- ld [$ffff], a ; IE
+ ld [rIE], a
.wait
; wait until vblank
- ld a, [$ff44] ; LY
+ ld a, [rLY]
cp 145 ; >144 (ensure beginning of vblank)
jr nz, .wait
; turn lcd off
- ld a, [$ff40] ; LCDC
+ ld a, [rLCDC]
and %01111111 ; lcd enable off
- ld [$ff40], a ; LCDC
+ ld [rLCDC], a
; reset ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; restore enabled ints
ld a, b
- ld [$ffff], a ; IE
+ ld [rIE], a
ret
; 58a
EnableLCD: ; 58a
- ld a, [$ff40] ; LCDC
+ ld a, [rLCDC]
set 7, a ; lcd enable
- ld [$ff40], a ; LCDC
+ ld [rLCDC], a
ret
; 591
@@ -822,18 +822,18 @@
ForceUpdateCGBPals: ; c37
; save wram bank
- ld a, [$ff70] ; wram bank
+ ld a, [rSVBK]
push af
; bankswitch
ld a, 5 ; BANK(BGPals)
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
; get bg pal buffer
ld hl, BGPals ; 5:d080
; update bg pals
ld a, %10000000 ; auto increment, index 0
- ld [$ff68], a ; BGPI
- ld c, $69 ; $ff69
+ ld [rBGPI], a
+ ld c, rBGPD - rJOYP
ld b, 4 ; NUM_PALS / 2
.bgp
@@ -878,8 +878,8 @@
; update obj pals
ld a, %10000000 ; auto increment, index 0
- ld [$ff6a], a
- ld c, $6b ; $ff6b - $ff00
+ ld [rOBPI], a
+ ld c, rOBPD - rJOYP
ld b, 4 ; NUM_PALS / 2
.obp
@@ -922,7 +922,7 @@
; restore wram bank
pop af
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
; clear pal update queue
xor a
ld [$ffe5], a
@@ -936,7 +936,7 @@
; exists to forego reinserting cgb-converted image data
; input: a -> bgp
- ld [$ff47], a ; bgp
+ ld [rBGP], a
push af
; check cgb
@@ -958,7 +958,7 @@
ld hl, BGPals ; to
ld de, Unkn1Pals ; from
; order
- ld a, [$ff47] ; bgp
+ ld a, [rBGP]
ld b, a
; # pals
ld c, 8 ; all pals
@@ -984,9 +984,9 @@
; input: d -> obp1
; e -> obp2
ld a, e
- ld [$ff48], a ; obp0
+ ld [rOBP0], a
ld a, d
- ld [$ff49], a ; obp1
+ ld [rOBP1], a
; check cgb
ld a, [$ffe6]
@@ -1009,7 +1009,7 @@
; from
ld de, Unkn2Pals
; order
- ld a, [$ff48] ; obp0
+ ld a, [rOBP0]
ld b, a
; # pals
ld c, 8 ; all pals
@@ -1137,7 +1137,7 @@
call ByteFill
; We aren't done if the LCD is on
- ld a, [$ff40] ; LCDC
+ ld a, [rLCDC]
bit 7, a
ret z
jp WaitBGMap
@@ -1427,7 +1427,7 @@
and a
ret z
; start transfer
- ld [$ff55], a ; hdma5
+ ld [rHDMA5], a
; indicate that transfer has occurred
xor a
ld [$ffe8], a
@@ -1448,7 +1448,7 @@
and a
ret z
; save wram bank
- ld a, [$ff4f] ; vram bank
+ ld a, [rVBK]
push af
; save sp
ld [$ffd9], sp
@@ -1471,7 +1471,7 @@
pop bc
; update palettes
ld a, $1
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; tile 1
ld a, [hli]
ld [bc], a
@@ -1482,7 +1482,7 @@
dec c
; update tiles
ld a, $0
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; tile 1
ld a, [de]
inc de
@@ -1499,7 +1499,7 @@
pop bc
; update palettes
ld a, $1
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; tile 1
ld a, [hli]
ld [bc], a
@@ -1510,7 +1510,7 @@
dec c
; update tiles
ld a, $0
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; tile 1
ld a, [de]
inc de
@@ -1540,7 +1540,7 @@
; restore vram bank
pop af
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; we don't need to update bg map until new tiles are loaded
xor a
@@ -1618,13 +1618,13 @@
.attr
; switch vram banks
ld a, 1
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; bg map 1
ld hl, AttrMap
call .getthird
; restore vram bank
ld a, 0
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
ret
.tiles
@@ -1771,7 +1771,7 @@
and a
ret z
; abort if too far into vblank
- ld a, [$ff44] ; LY
+ ld a, [rLY]
; ly = 144-145?
cp 144
ret c
@@ -1873,7 +1873,7 @@
and a
ret z
; abort if too far into vblank
- ld a, [$ff44] ; LY
+ ld a, [rLY]
; ly = 144-145?
cp 144
ret c
@@ -1989,7 +1989,7 @@
ret z
; abort if too far into vblank
- ld a, [$ff44] ; LY
+ ld a, [rLY]
; ret unless ly = 144-150
cp 144
ret c
@@ -2003,15 +2003,15 @@
ld a, BANK(DoTileAnimation)
rst Bankswitch ; bankswitch
- ld a, [$ff70] ; wram bank
+ ld a, [rSVBK]
push af ; save wram bank
ld a, $1 ; wram bank 1
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
- ld a, [$ff4f] ; vram bank
+ ld a, [rVBK]
push af ; save vram bank
ld a, $0 ; vram bank 0
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
; take care of tile animation queue
call DoTileAnimation
@@ -2018,9 +2018,9 @@
; restore affected banks
pop af
- ld [$ff4f], a ; vram bank
+ ld [rVBK], a
pop af
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
pop af
rst Bankswitch ; bankswitch
ret
@@ -2078,15 +2078,15 @@
; handshake
ld a, $88
- ld [$ff01], a
+ ld [rSB], a
; switch to internal clock
ld a, %00000001
- ld [$ff02], a
+ ld [rSC], a
; start transfer
ld a, %10000001
- ld [$ff02], a
+ ld [rSC], a
ret
; 208a
@@ -2098,17 +2098,17 @@
nop
; save wram bank
- ld a, [$ff70] ; wram bank
+ ld a, [rSVBK]
push af
ld a, $1
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
call UpdateGameTimer
; restore wram bank
pop af
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
ret
; 20ad
@@ -2523,13 +2523,13 @@
push bc
; Added value
- ld a, [$ff04] ; divider
+ ld a, [rDIV]
ld b, a
ld a, [$ffe1]
adc b
ld [$ffe1], a
; Subtracted value
- ld a, [$ff04] ; divider
+ ld a, [rDIV]
ld b, a
ld a, [$ffe2]
sbc b
@@ -2975,9 +2975,9 @@
; In DMG mode, we can just change palettes to 0 (white)
xor a
- ld [$ff47], a ; BGP
- ld [$ff48], a ; OBP0
- ld [$ff49], a ; OBP1
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
ret
.cgb
@@ -8827,11 +8827,11 @@
ld hl, $d038 ; Unkn1Pals + 7 pals
; save wram bank
- ld a, [$ff70] ; wram bank
+ ld a, [rSVBK]
ld b, a
; wram bank 5
ld a, 5
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
; push palette
ld c, 4 ; NUM_PAL_COLORS
@@ -8846,7 +8846,7 @@
; restore wram bank
ld a, b
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
; update sgb pals
@@ -8858,11 +8858,11 @@
ld hl, $d03f ; last byte in Unkn1Pals
; save wram bank
- ld a, [$ff70] ; wram bank
+ ld a, [rSVBK]
ld d, a
; wram bank 5
ld a, 5
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
; pop palette
ld e, 4 ; NUM_PAL_COLORS
@@ -8877,7 +8877,7 @@
; restore wram bank
ld a, d
- ld [$ff70], a ; wram bank
+ ld [rSVBK], a
; update palettes
call UpdateTimePals
@@ -12683,7 +12683,7 @@
; VRAM bank 1
ld a, 1
- ld [$ff4f], a
+ ld [rVBK], a
; Decompress running Suicune gfx
@@ -12756,7 +12756,7 @@
; Back to VRAM bank 0
ld a, $0
- ld [$ff4f], a
+ ld [rVBK], a
; Decompress logo
@@ -12852,7 +12852,7 @@
call ByteFill
; Let LCD Stat know we're messing around with SCX
- ld a, $43 ; ff43 ; SCX
+ ld a, rSCX - rJOYP
ld [$ffc6], a
; Restore WRAM bank
@@ -12865,9 +12865,9 @@
call $058a
; Set sprite size to 8x16
- ld a, [$ff40] ; LCDC
+ ld a, [rLCDC]
set 2, a
- ld [$ff40], a ; LCDC
+ ld [rLCDC], a
;
ld a, $70
--- a/vblank.asm
+++ b/vblank.asm
@@ -69,13 +69,13 @@
inc [hl]
; advance rng
- ld a, [$ff04] ; divider
+ ld a, [rDIV]
ld b, a
ld a, [$ffe1]
adc b
ld [$ffe1], a
- ld a, [$ff04] ; divider
+ ld a, [rDIV]
ld b, a
ld a, [$ffe2]
sbc b
@@ -87,16 +87,16 @@
; scroll x
ld a, [$ffcf]
- ld [$ff43], a ; scx
+ ld [rSCX], a
; scroll y
ld a, [$ffd0]
- ld [$ff42], a ; scy
+ ld [rSCY], a
; window y
ld a, [$ffd2]
- ld [$ff4a], a ; wy
+ ld [rWY], a
; window x + 7
ld a, [$ffd1]
- ld [$ff4b], a ; wx
+ ld [rWX], a
; some time management is in order
; only have time for one of these during vblank
@@ -131,7 +131,7 @@
call $ff80
; 403f:
; ld a, $c4
-; ld [$ff46], a ; oam dma
+; ld [rDMA], a
; ld a, $28
; .loop
; dec a
@@ -216,11 +216,11 @@
; scroll x
ld a, [$ffcf]
- ld [$ff43], a ; scx
+ ld [rSCX], a
; scroll y
ld a, [$ffd0]
- ld [$ff42], a ; scy
+ ld [rSCY], a
; time-sensitive fns
call UpdatePals
@@ -233,7 +233,7 @@
call $ff80
; 403f:
; ld a, $c4
-; ld [$ff46], a ; oam dma
+; ld [rDMA], a
; ld a, $28
; .loop
; dec a
@@ -246,20 +246,20 @@
ld [VBlankOccurred], a
; get requested ints
- ld a, [$ff0f] ; IF
+ ld a, [rIF]
ld b, a
; discard requested ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; enable lcd stat
ld a, %10 ; lcd stat
- ld [$ffff], a ; IE
+ ld [rIE], a
; rerequest serial int if applicable (still disabled)
; request lcd stat
ld a, b
and %1000 ; serial
or %10 ; lcd stat
- ld [$ff0f], a ; IF
+ ld [rIF], a
ei
; update sound
@@ -272,17 +272,17 @@
di
; get requested ints
- ld a, [$ff0f] ; IF
+ ld a, [rIF]
ld b, a
; discard requested ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; enable ints besides joypad
ld a, %1111 ; serial timer lcdstat vblank
- ld [$ffff], a ; IE
+ ld [rIE], a
; rerequest ints
ld a, b
- ld [$ff0f], a ; IF
+ ld [rIF], a
ret
; 37f
@@ -297,13 +297,13 @@
; update gb pals
ld a, [$cfc7]
- ld [$ff47], a ; BGP
+ ld [rBGP], a
ld a, [$cfc8]
- ld [$ff48], a ; OBP0
+ ld [rOBP0], a
ld a, [$cfc9]
- ld [$ff49], a ; 0BP1
+ ld [rOBP1], a
and a
ret
@@ -324,10 +324,10 @@
; scroll x
ld a, [$ffcf]
- ld [$ff43], a ; scx
+ ld [rSCX], a
; scroll y
ld a, [$ffd0]
- ld [$ff42], a ; scy
+ ld [rSCY], a
; any pals to update?
ld a, [$ffe5]
@@ -342,7 +342,7 @@
call $ff80
; 403f:
; ld a, $c4 ; Sprites / $100
-; ld [$ff46], a ; oam dma
+; ld [rDMA], a
; ld a, $28
; .loop
; dec a
@@ -355,15 +355,15 @@
ld [VBlankOccurred], a
; save int flag
- ld a, [$ff0f] ; IF
+ ld a, [rIF]
push af
; reset ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; force lcdstat int during sound update
ld a, %10 ; lcd stat
- ld [$ffff], a ; IE
- ld [$ff0f], a ; IF
+ ld [rIE], a
+ ld [rIF], a
ei
; update sound
@@ -376,7 +376,7 @@
di
; request lcdstat
- ld a, [$ff0f] ; IF
+ ld a, [rIF]
ld b, a
; and any other ints
pop af
@@ -384,13 +384,13 @@
ld b, a
; reset ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; enable ints besides joypad
ld a, %1111 ; serial timer lcdstat vblank
- ld [$ffff], a ; IE
+ ld [rIE], a
; request ints
ld a, b
- ld [$ff0f], a ; IF
+ ld [rIF], a
ret
; 3df
@@ -414,7 +414,7 @@
call $ff80
; 403f:
; ld a, $c4
-; ld [$ff46], a ; oam dma
+; ld [rDMA], a
; ld a, $28
; .loop
; dec a
@@ -456,7 +456,7 @@
; scroll x
ld a, [$ffcf]
- ld [$ff43], a ; scx
+ ld [rSCX], a
; if we can update pals, skip this part
call UpdatePalsIfCGB
@@ -475,12 +475,12 @@
; discard requested ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; enable lcd stat
ld a, %10 ; lcd stat
- ld [$ffff], a ; IE
+ ld [rIE], a
; request lcd stat
- ld [$ff0f], a ; IF
+ ld [rIF], a
ei
; update sound
@@ -494,10 +494,10 @@
; discard requested ints
xor a
- ld [$ff0f], a ; IF
+ ld [rIF], a
; enable ints besides joypad
ld a, %1111 ; serial timer lcdstat vblank
- ld [$ffff], a ; IE
+ ld [rIE], a
ret
; 436