mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-10-16 20:16:26 +13:00
More complete hardware constants. Rename joypad constants.
This commit is contained in:
parent
61dbfa440b
commit
955b53047c
|
@ -6,6 +6,7 @@ INCLUDE "hram.asm"
|
||||||
|
|
||||||
INCLUDE "constants/hardware_constants.asm"
|
INCLUDE "constants/hardware_constants.asm"
|
||||||
INCLUDE "constants/oam_constants.asm"
|
INCLUDE "constants/oam_constants.asm"
|
||||||
|
INCLUDE "constants/misc_constants.asm"
|
||||||
|
|
||||||
INCLUDE "constants/wram_constants.asm"
|
INCLUDE "constants/wram_constants.asm"
|
||||||
|
|
||||||
|
|
132
constants/hardware_constants.asm
Executable file → Normal file
132
constants/hardware_constants.asm
Executable file → Normal file
|
@ -1,21 +1,111 @@
|
||||||
; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm
|
; From http://nocash.emubase.de/pandocs.htm.
|
||||||
rJOYP EQU $FF00
|
|
||||||
rDIV EQU $FF04
|
; MBC3
|
||||||
rLCDC EQU $FF40
|
MBC3SRamEnable EQU $0000
|
||||||
rSCY EQU $FF42
|
MBC3RomBank EQU $2000
|
||||||
rSCX EQU $FF43
|
MBC3SRamBank EQU $4000
|
||||||
rBGP EQU $FF47
|
MBC3LatchClock EQU $6000
|
||||||
rOBP0 EQU $FF48
|
MBC3RTC EQU $a000
|
||||||
rOBP1 EQU $FF49
|
|
||||||
rWY EQU $FF4A
|
SRAM_DISABLE EQU $00
|
||||||
rWX EQU $FF4B
|
SRAM_ENABLE EQU $0a
|
||||||
rIE EQU $FFFF
|
|
||||||
|
NUM_SRAM_BANKS EQU 4
|
||||||
BTN_A EQU %00000001
|
|
||||||
BTN_B EQU %00000010
|
RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
|
||||||
BTN_SELECT EQU %00000100
|
RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
|
||||||
BTN_START EQU %00001000
|
RTC_H EQU $0a ; Hours 0-23 (0-17h)
|
||||||
BTN_RIGHT EQU %00010000
|
RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
|
||||||
BTN_LEFT EQU %00100000
|
RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
|
||||||
BTN_UP EQU %01000000
|
; Bit 0 Most significant bit of Day Counter (Bit 8)
|
||||||
BTN_DOWN EQU %10000000
|
; Bit 6 Halt (0=Active, 1=Stop Timer)
|
||||||
|
; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
|
||||||
|
|
||||||
|
; interrupt flags
|
||||||
|
VBLANK EQU 0
|
||||||
|
LCD_STAT EQU 1
|
||||||
|
TIMER EQU 2
|
||||||
|
SERIAL EQU 3
|
||||||
|
JOYPAD EQU 4
|
||||||
|
|
||||||
|
; OAM attribute flags
|
||||||
|
OAM_PALETTE EQU %111
|
||||||
|
OAM_TILE_BANK EQU 3
|
||||||
|
OAM_OBP_NUM EQU 4 ; Non CGB Mode Only
|
||||||
|
OAM_X_FLIP EQU 5
|
||||||
|
OAM_Y_FLIP EQU 6
|
||||||
|
OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
|
||||||
|
|
||||||
|
|
||||||
|
; Hardware registers
|
||||||
|
rJOYP EQU $ff00 ; Joypad (R/W)
|
||||||
|
rSB EQU $ff01 ; Serial transfer data (R/W)
|
||||||
|
rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
||||||
|
rSC_ON EQU 7
|
||||||
|
rSC_CGB EQU 1
|
||||||
|
rSC_CLOCK EQU 0
|
||||||
|
rDIV EQU $ff04 ; Divider Register (R/W)
|
||||||
|
rTIMA EQU $ff05 ; Timer counter (R/W)
|
||||||
|
rTMA EQU $ff06 ; Timer Modulo (R/W)
|
||||||
|
rTAC EQU $ff07 ; Timer Control (R/W)
|
||||||
|
rTAC_ON EQU 2
|
||||||
|
rTAC_4096_HZ EQU 0
|
||||||
|
rTAC_262144_HZ EQU 1
|
||||||
|
rTAC_65536_HZ EQU 2
|
||||||
|
rTAC_16384_HZ EQU 3
|
||||||
|
rIF EQU $ff0f ; Interrupt Flag (R/W)
|
||||||
|
rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
|
||||||
|
rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
|
||||||
|
rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
|
||||||
|
rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
|
||||||
|
rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
|
||||||
|
rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
|
||||||
|
rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
|
||||||
|
rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
|
||||||
|
rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
|
||||||
|
rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
|
||||||
|
rNR31 EQU $ff1b ; Channel 3 Sound Length
|
||||||
|
rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
|
||||||
|
rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
|
||||||
|
rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
|
||||||
|
rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
|
||||||
|
rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
|
||||||
|
rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
|
||||||
|
rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W)
|
||||||
|
rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
|
||||||
|
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
|
||||||
|
rNR52 EQU $ff26 ; Sound on/off
|
||||||
|
rLCDC EQU $ff40 ; LCD Control (R/W)
|
||||||
|
rSTAT EQU $ff41 ; LCDC Status (R/W)
|
||||||
|
rSCY EQU $ff42 ; Scroll Y (R/W)
|
||||||
|
rSCX EQU $ff43 ; Scroll X (R/W)
|
||||||
|
rLY EQU $ff44 ; LCDC Y-Coordinate (R)
|
||||||
|
rLYC EQU $ff45 ; LY Compare (R/W)
|
||||||
|
rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
|
||||||
|
rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
|
||||||
|
rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
|
||||||
|
rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
||||||
|
rWY EQU $ff4a ; Window Y Position (R/W)
|
||||||
|
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
||||||
|
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
||||||
|
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
||||||
|
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
||||||
|
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
||||||
|
rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
||||||
|
rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
|
||||||
|
rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
|
||||||
|
rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
|
||||||
|
rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
|
||||||
|
rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
|
||||||
|
rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
|
||||||
|
rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
|
||||||
|
rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
|
||||||
|
rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
|
||||||
|
rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
|
||||||
|
rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
|
||||||
|
rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
|
||||||
|
rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
|
||||||
|
rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
|
||||||
|
rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
|
||||||
|
rIE EQU $ffff ; Interrupt Enable (R/W)
|
||||||
|
|
||||||
|
|
9
constants/misc_constants.asm
Normal file
9
constants/misc_constants.asm
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
A_BUTTON EQU %00000001
|
||||||
|
B_BUTTON EQU %00000010
|
||||||
|
SELECT EQU %00000100
|
||||||
|
START EQU %00001000
|
||||||
|
D_RIGHT EQU %00010000
|
||||||
|
D_LEFT EQU %00100000
|
||||||
|
D_UP EQU %01000000
|
||||||
|
D_DOWN EQU %10000000
|
||||||
|
|
6
main.asm
6
main.asm
|
@ -7710,7 +7710,7 @@ CheckFightingMapTrainers:: ; 3219 (0:3219)
|
||||||
ld [$cd50], a
|
ld [$cd50], a
|
||||||
ld a, $4c
|
ld a, $4c
|
||||||
call Predef
|
call Predef
|
||||||
ld a, BTN_RIGHT | BTN_LEFT | BTN_UP | BTN_DOWN
|
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
|
||||||
ld [wJoypadForbiddenButtonsMask], a
|
ld [wJoypadForbiddenButtonsMask], a
|
||||||
xor a
|
xor a
|
||||||
ldh [$b4], a
|
ldh [$b4], a
|
||||||
|
@ -8822,7 +8822,7 @@ WaitForTextScrollButtonPress:: ; 3865 (0:3865)
|
||||||
ld a, $2d
|
ld a, $2d
|
||||||
call Predef ; indirect jump to Func_5a5f (5a5f (1:5a5f))
|
call Predef ; indirect jump to Func_5a5f (5a5f (1:5a5f))
|
||||||
ld a, [$ffb5]
|
ld a, [$ffb5]
|
||||||
and BTN_A | BTN_B ; $3
|
and A_BUTTON | B_BUTTON
|
||||||
jr z, .asm_3872
|
jr z, .asm_3872
|
||||||
pop af
|
pop af
|
||||||
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
||||||
|
@ -13183,7 +13183,7 @@ SECTION "bank3",ROMX,BANK[$3]
|
||||||
|
|
||||||
_GetJoypadState: ; c000 (3:4000)
|
_GetJoypadState: ; c000 (3:4000)
|
||||||
ld a, [H_JOYPADSTATE]
|
ld a, [H_JOYPADSTATE]
|
||||||
cp BTN_A | BTN_B | BTN_SELECT | BTN_START ; soft reset sequence
|
cp A_BUTTON | B_BUTTON | SELECT | START ; soft reset sequence
|
||||||
jp z, HandleJoypadResetButtons
|
jp z, HandleJoypadResetButtons
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [H_OLDPRESSEDBUTTONS]
|
ld a, [H_OLDPRESSEDBUTTONS]
|
||||||
|
|
Loading…
Reference in a new issue