574 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			574 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| ;******************************************************************************
 | |
| ; Deprecated Game Boy hardware constant definitions for backwards compatibility
 | |
| ; https://github.com/gbdev/hardware_compat.inc
 | |
| ;******************************************************************************
 | |
| 
 | |
| ; To the extent possible under law, the authors of this work have
 | |
| ; waived all copyright and related or neighboring rights to the work.
 | |
| ; See https://creativecommons.org/publicdomain/zero/1.0/ for details.
 | |
| ; SPDX-License-Identifier: CC0-1.0
 | |
| 
 | |
| ; If this file was already included, don't do it again
 | |
| if !def(HARDWARE_COMPAT_INC)
 | |
| 
 | |
| ; Check for hardware.inc to have been previously included
 | |
| if !def(HARDWARE_INC)
 | |
|     fail "'hardware_compat.inc' requires 'hardware.inc'"
 | |
| endc
 | |
| 
 | |
| ; Define the include guard
 | |
| ; (do this after the hardware.inc check since the `def` syntax depends on it)
 | |
| def HARDWARE_COMPAT_INC equ 1
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Memory-mapped registers ($FFxx range)
 | |
| ;******************************************************************************
 | |
| 
 | |
| def JOYPB_GET_BTN  equ B_JOYP_GET_BUTTONS
 | |
| def JOYPB_GET_DPAD equ B_JOYP_GET_CTRL_PAD
 | |
|     def JOYPF_GET equ JOYP_GET
 | |
|         def JOYP_GET_BTN  equ JOYP_GET_BUTTONS
 | |
|         def JOYP_GET_DPAD equ JOYP_GET_CTRL_PAD
 | |
| def JOYPB_START    equ B_JOYP_START
 | |
| def JOYPB_SELECT   equ B_JOYP_SELECT
 | |
| def JOYPB_B        equ B_JOYP_B
 | |
| def JOYPB_A        equ B_JOYP_A
 | |
| def JOYPB_DOWN     equ B_JOYP_DOWN
 | |
| def JOYPB_UP       equ B_JOYP_UP
 | |
| def JOYPB_LEFT     equ B_JOYP_LEFT
 | |
| def JOYPB_RIGHT    equ B_JOYP_RIGHT
 | |
|     def JOYPF_INPUTS equ JOYP_INPUTS
 | |
|     def JOYPF_START  equ JOYP_START
 | |
|     def JOYPF_SELECT equ JOYP_SELECT
 | |
|     def JOYPF_B      equ JOYP_B
 | |
|     def JOYPF_A      equ JOYP_A
 | |
|     def JOYPF_DOWN   equ JOYP_DOWN
 | |
|     def JOYPF_UP     equ JOYP_UP
 | |
|     def JOYPF_LEFT   equ JOYP_LEFT
 | |
|     def JOYPF_RIGHT  equ JOYP_RIGHT
 | |
| 
 | |
| def PADB_DOWN   equ B_PAD_DOWN
 | |
| def PADB_UP     equ B_PAD_UP
 | |
| def PADB_LEFT   equ B_PAD_LEFT
 | |
| def PADB_RIGHT  equ B_PAD_RIGHT
 | |
| def PADB_START  equ B_PAD_START
 | |
| def PADB_SELECT equ B_PAD_SELECT
 | |
| def PADB_B      equ B_PAD_B
 | |
| def PADB_A      equ B_PAD_A
 | |
|     def PADF_DOWN   equ PAD_DOWN
 | |
|     def PADF_UP     equ PAD_UP
 | |
|     def PADF_LEFT   equ PAD_LEFT
 | |
|     def PADF_RIGHT  equ PAD_RIGHT
 | |
|     def PADF_START  equ PAD_START
 | |
|     def PADF_SELECT equ PAD_SELECT
 | |
|     def PADF_B      equ PAD_B
 | |
|     def PADF_A      equ PAD_A
 | |
| 
 | |
| def PADB_SWAP_START  equ B_PAD_SWAP_START
 | |
| def PADB_SWAP_SELECT equ B_PAD_SWAP_SELECT
 | |
| def PADB_SWAP_B      equ B_PAD_SWAP_B
 | |
| def PADB_SWAP_A      equ B_PAD_SWAP_A
 | |
| def PADB_SWAP_DOWN   equ B_PAD_SWAP_DOWN
 | |
| def PADB_SWAP_UP     equ B_PAD_SWAP_UP
 | |
| def PADB_SWAP_LEFT   equ B_PAD_SWAP_LEFT
 | |
| def PADB_SWAP_RIGHT  equ B_PAD_SWAP_RIGHT
 | |
|     def PADF_SWAP_START  equ PAD_SWAP_START
 | |
|     def PADF_SWAP_SELECT equ PAD_SWAP_SELECT
 | |
|     def PADF_SWAP_B      equ PAD_SWAP_B
 | |
|     def PADF_SWAP_A      equ PAD_SWAP_A
 | |
|     def PADF_SWAP_DOWN   equ PAD_SWAP_DOWN
 | |
|     def PADF_SWAP_UP     equ PAD_SWAP_UP
 | |
|     def PADF_SWAP_LEFT   equ PAD_SWAP_LEFT
 | |
|     def PADF_SWAP_RIGHT  equ PAD_SWAP_RIGHT
 | |
| 
 | |
| def SCB_START  equ B_SC_START
 | |
| def SCB_SPEED  equ B_SC_SPEED
 | |
| def SCB_SOURCE equ B_SC_SOURCE
 | |
|     def SCF_START  equ SC_START
 | |
|     def SCF_SPEED  equ SC_SPEED
 | |
|     def SCF_SOURCE equ SC_SOURCE
 | |
| 
 | |
| def TACB_START equ B_TAC_START
 | |
|     def TACF_STOP  equ TAC_STOP
 | |
|     def TACF_START equ TAC_START
 | |
| def TACF_CLOCK equ TAC_CLOCK
 | |
|     def TACF_4KHZ   equ TAC_4KHZ
 | |
|     def TACF_262KHZ equ TAC_262KHZ
 | |
|     def TACF_65KHZ  equ TAC_65KHZ
 | |
|     def TACF_16KHZ  equ TAC_16KHZ
 | |
| 
 | |
| def IFB_JOYPAD equ B_IF_JOYPAD
 | |
| def IFB_SERIAL equ B_IF_SERIAL
 | |
| def IFB_TIMER  equ B_IF_TIMER
 | |
| def IFB_STAT   equ B_IF_STAT
 | |
| def IFB_VBLANK equ B_IF_VBLANK
 | |
|     def IFF_JOYPAD equ IF_JOYPAD
 | |
|     def IFF_SERIAL equ IF_SERIAL
 | |
|     def IFF_TIMER  equ IF_TIMER
 | |
|     def IFF_STAT   equ IF_STAT
 | |
|     def IFF_VBLANK equ IF_VBLANK
 | |
| 
 | |
| def AUD1SWEEPF_TIME equ AUD1SWEEP_TIME
 | |
| def AUD1SWEEPB_DIR  equ B_AUD1SWEEP_DIR
 | |
|     def AUD1SWEEPF_DIR equ AUD1SWEEP_DIR
 | |
| 
 | |
| def AUD1LENF_DUTY  equ AUD1LEN_DUTY
 | |
| def AUD1LENF_TIMER equ AUD1LEN_TIMER
 | |
| 
 | |
| def AUD1ENVF_INIT_VOL equ AUD1ENV_INIT_VOLUME
 | |
| def AUD1ENVB_DIR      equ B_AUD1ENV_DIR
 | |
|     def AUD1ENVF_DIR equ AUD1ENV_DIR
 | |
| def AUD1ENVF_PACE     equ AUD1ENV_PACE
 | |
| 
 | |
| def AUD1HIGHB_RESTART     equ B_AUD1HIGH_RESTART
 | |
| def AUD1HIGHB_LEN_ENABLE  equ B_AUD1HIGH_LEN_ENABLE
 | |
| def AUD1HIGHF_PERIOD_HIGH equ AUD1HIGH_PERIOD_HIGH
 | |
| 
 | |
| def AUD2LENF_DUTY  equ AUD2LEN_DUTY
 | |
| def AUD2LENF_TIMER equ AUD2LEN_TIMER
 | |
| 
 | |
| def AUD2ENVF_INIT_VOL equ AUD2ENV_INIT_VOLUME
 | |
| def AUD2ENVB_DIR      equ B_AUD2ENV_DIR
 | |
|     def AUD2ENVF_DIR equ AUD2ENV_DIR
 | |
| def AUD2ENVF_PACE     equ AUD2ENV_PACE
 | |
| 
 | |
| def AUD2HIGHB_RESTART     equ B_AUD2HIGH_RESTART
 | |
| def AUD2HIGHB_LEN_ENABLE  equ B_AUD2HIGH_LEN_ENABLE
 | |
| def AUD2HIGHF_PERIOD_HIGH equ AUD2HIGH_PERIOD_HIGH
 | |
| 
 | |
| def AUD3ENAB_ENABLE equ B_AUD3ENA_ENABLE
 | |
| 
 | |
| def AUD3LEVELF_VOLUME equ AUD3LEVEL_VOLUME
 | |
| 
 | |
| def AUD3HIGHB_RESTART     equ B_AUD3HIGH_RESTART
 | |
| def AUD3HIGHB_LEN_ENABLE  equ B_AUD3HIGH_LEN_ENABLE
 | |
| def AUD3HIGHF_PERIOD_HIGH equ AUD3HIGH_PERIOD_HIGH
 | |
| 
 | |
| def AUD4LENF_TIMER equ AUD4LEN_TIMER
 | |
| 
 | |
| def AUD4ENVF_INIT_VOL equ AUD4ENV_INIT_VOLUME
 | |
| def AUD4ENVB_DIR      equ B_AUD4ENV_DIR
 | |
|     def AUD4ENVF_DIR equ AUD4ENV_DIR
 | |
| def AUD4ENVF_PACE     equ AUD4ENV_PACE
 | |
| 
 | |
| def AUD4POLYF_SHIFT equ AUD4POLY_SHIFT
 | |
| def AUD4POLYB_WIDTH equ B_AUD4POLY_WIDTH
 | |
| def AUD4POLYF_DIV   equ AUD4POLY_DIV
 | |
| 
 | |
| def AUD4GOB_RESTART    equ B_AUD4GO_RESTART
 | |
| def AUD4GOB_LEN_ENABLE equ B_AUD4GO_LEN_ENABLE
 | |
| 
 | |
| def AUDVOLB_VIN_LEFT  equ B_AUDVOL_VIN_LEFT
 | |
|     def AUDVOLF_LEFT equ AUDVOL_LEFT
 | |
| def AUDVOLB_VIN_RIGHT equ B_AUDVOL_VIN_RIGHT
 | |
|     def AUDVOLF_RIGHT equ AUDVOL_RIGHT
 | |
| 
 | |
| def AUDTERMB_4_LEFT  equ B_AUDTERM_4_LEFT
 | |
| def AUDTERMB_3_LEFT  equ B_AUDTERM_3_LEFT
 | |
| def AUDTERMB_2_LEFT  equ B_AUDTERM_2_LEFT
 | |
| def AUDTERMB_1_LEFT  equ B_AUDTERM_1_LEFT
 | |
| def AUDTERMB_4_RIGHT equ B_AUDTERM_4_RIGHT
 | |
| def AUDTERMB_3_RIGHT equ B_AUDTERM_3_RIGHT
 | |
| def AUDTERMB_2_RIGHT equ B_AUDTERM_2_RIGHT
 | |
| def AUDTERMB_1_RIGHT equ B_AUDTERM_1_RIGHT
 | |
| 
 | |
| def AUDENAB_ENABLE     equ B_AUDENA_ENABLE
 | |
| def AUDENAB_ENABLE_CH4 equ B_AUDENA_ENABLE_CH4
 | |
| def AUDENAB_ENABLE_CH3 equ B_AUDENA_ENABLE_CH3
 | |
| def AUDENAB_ENABLE_CH2 equ B_AUDENA_ENABLE_CH2
 | |
| def AUDENAB_ENABLE_CH1 equ B_AUDENA_ENABLE_CH1
 | |
|     def AUDENAF_CH4_OFF equ AUDENA_CH4_OFF
 | |
|     def AUDENAF_CH4_ON  equ AUDENA_CH4_ON
 | |
|     def AUDENAF_CH3_OFF equ AUDENA_CH3_OFF
 | |
|     def AUDENAF_CH3_ON  equ AUDENA_CH3_ON
 | |
|     def AUDENAF_CH2_OFF equ AUDENA_CH2_OFF
 | |
|     def AUDENAF_CH2_ON  equ AUDENA_CH2_ON
 | |
|     def AUDENAF_CH1_OFF equ AUDENA_CH1_OFF
 | |
|     def AUDENAF_CH1_ON  equ AUDENA_CH1_ON
 | |
| 
 | |
| def LCDCB_ON      equ B_LCDC_ENABLE
 | |
| def LCDCB_WIN9C00 equ B_LCDC_WIN_MAP
 | |
| def LCDCB_WINON   equ B_LCDC_WINDOW
 | |
| def LCDCB_BLKS    equ B_LCDC_BLOCKS
 | |
| def LCDCB_BG9C00  equ B_LCDC_BG_MAP
 | |
| def LCDCB_OBJ16   equ B_LCDC_OBJ_SIZE
 | |
| def LCDCB_OBJON   equ B_LCDC_OBJS
 | |
| def LCDCB_BGON    equ B_LCDC_BG
 | |
| def LCDCB_PRION   equ B_LCDC_PRIO
 | |
|     def LCDCF_OFF     equ LCDC_OFF
 | |
|     def LCDCF_ON      equ LCDC_ON
 | |
|     def LCDCF_WIN9800 equ LCDC_WIN_9800
 | |
|     def LCDCF_WIN9C00 equ LCDC_WIN_9C00
 | |
|     def LCDCF_WINOFF  equ LCDC_WIN_OFF
 | |
|     def LCDCF_WINON   equ LCDC_WIN_ON
 | |
|     def LCDCF_BLKS    equ LCDC_BLOCKS
 | |
|         def LCDCF_BLK21 equ LCDC_BLOCK21
 | |
|         def LCDCF_BLK01 equ LCDC_BLOCK01
 | |
|     def LCDCF_BG9800  equ LCDC_BG_9800
 | |
|     def LCDCF_BG9C00  equ LCDC_BG_9C00
 | |
|     def LCDCF_OBJ8    equ LCDC_OBJ_8
 | |
|     def LCDCF_OBJ16   equ LCDC_OBJ_16
 | |
|     def LCDCF_OBJOFF  equ LCDC_OBJ_OFF
 | |
|     def LCDCF_OBJON   equ LCDC_OBJ_ON
 | |
|     def LCDCF_BGOFF   equ LCDC_BG_OFF
 | |
|     def LCDCF_BGON    equ LCDC_BG_ON
 | |
|     def LCDCF_PRIOFF  equ LCDC_PRIO_OFF
 | |
|     def LCDCF_PRION   equ LCDC_PRIO_ON
 | |
| 
 | |
| def STATB_LYC    equ B_STAT_LYC
 | |
| def STATB_MODE10 equ B_STAT_MODE_2
 | |
| def STATB_MODE01 equ B_STAT_MODE_1
 | |
| def STATB_MODE00 equ B_STAT_MODE_0
 | |
| def STATB_LYCF   equ B_STAT_LYCF
 | |
| def STATB_BUSY   equ B_STAT_BUSY
 | |
|     def STATF_LYC    equ STAT_LYC
 | |
|     def STATF_MODE10 equ STAT_MODE_2
 | |
|     def STATF_MODE01 equ STAT_MODE_1
 | |
|     def STATF_MODE00 equ STAT_MODE_0
 | |
|     def STATF_LYCF   equ STAT_LYCF
 | |
|     def STATF_BUSY   equ STAT_BUSY
 | |
| def STATF_MODE   equ STAT_MODE
 | |
|     def STATF_HBL    equ STAT_HBLANK
 | |
|     def STATF_VBL    equ STAT_VBLANK
 | |
|     def STATF_OAM    equ STAT_OAM
 | |
|     def STATF_LCD    equ STAT_LCD
 | |
| 
 | |
| def SYSF_MODE equ SYS_MODE
 | |
|     def SYSF_CGB  equ SYS_CGB
 | |
|     def SYSF_DMG  equ SYS_DMG
 | |
|     def SYSF_PGB1 equ SYS_PGB1
 | |
|     def SYSF_PGB2 equ SYS_PGB2
 | |
| 
 | |
| def SPDB_DBLSPEED equ B_SPD_DOUBLE
 | |
| def SPDB_PREPARE  equ B_SPD_PREPARE
 | |
|     def SPDF_DBLSPEED equ SPD_DOUBLE
 | |
|     def SPDF_PREPARE  equ SPD_PREPARE
 | |
| 
 | |
| def BANKB_ON equ B_BANK_ON
 | |
|     def BANKF_ON  equ BANK_ON
 | |
|     def BANKF_OFF equ BANK_OFF
 | |
| 
 | |
| def VDMA_LENB_MODE equ B_VDMA_LEN_MODE
 | |
|     def VDMA_LENF_MODE equ VDMA_LEN_MODE
 | |
|         def VDMA_LENF_MODE_GP  equ VDMA_LEN_MODE_GENERAL
 | |
|         def VDMA_LENF_MODE_HBL equ VDMA_LEN_MODE_HBLANK
 | |
| def VDMA_LENB_BUSY equ B_VDMA_LEN_BUSY
 | |
|     def VDMA_LENF_BUSY equ VDMA_LEN_BUSY
 | |
|         def VDMA_LENF_NO  equ VDMA_LEN_NO
 | |
|         def VDMA_LENF_YES equ VDMA_LEN_YES
 | |
| def VDMA_LENB_SIZE equ VDMA_LEN_SIZE
 | |
| 
 | |
| def RPF_READ   equ RP_READ
 | |
|     def RPF_DISREAD equ RP_DISABLE
 | |
|     def RPF_ENREAD  equ RP_ENABLE
 | |
| def RPB_DATAIN equ B_RP_DATA_IN
 | |
| def RPB_LED_ON equ B_RP_LED_ON
 | |
|     def RPF_DATAIN equ RP_DATA_IN
 | |
|     def RPF_LED_ON equ RP_LED_ON
 | |
|         def RPF_WRITE_LO equ RP_WRITE_LOW
 | |
|         def RPF_WRITE_HI equ RP_WRITE_HIGH
 | |
| 
 | |
| def BGPIB_AUTOINC equ B_BGPI_AUTOINC
 | |
|     def BGPIF_AUTOINC equ BGPI_AUTOINC
 | |
| def BGPIF_INDEX   equ BGPI_INDEX
 | |
| 
 | |
| def OBPIB_AUTOINC equ B_OBPI_AUTOINC
 | |
|     def OBPIF_AUTOINC equ OBPI_AUTOINC
 | |
| def OBPIF_INDEX   equ OBPI_INDEX
 | |
| 
 | |
| def OPRIB_PRI equ B_OPRI_PRIORITY
 | |
|     def OPRIF_PRI equ OPRI_PRIORITY
 | |
| 
 | |
| def WBKF_BANK equ WBK_BANK
 | |
| 
 | |
| def PCM12F_CH2 equ PCM12_CH2
 | |
| def PCM12F_CH1 equ PCM12_CH1
 | |
| 
 | |
| def PCM34F_CH4 equ PCM34_CH4
 | |
| def PCM34F_CH3 equ PCM34_CH3
 | |
| 
 | |
| def IEB_JOYPAD equ B_IE_JOYPAD
 | |
| def IEB_SERIAL equ B_IE_SERIAL
 | |
| def IEB_TIMER  equ B_IE_TIMER
 | |
| def IEB_STAT   equ B_IE_STAT
 | |
| def IEB_VBLANK equ B_IE_VBLANK
 | |
|     def IEF_JOYPAD equ IE_JOYPAD
 | |
|     def IEF_SERIAL equ IE_SERIAL
 | |
|     def IEF_TIMER  equ IE_TIMER
 | |
|     def IEF_STAT   equ IE_STAT
 | |
|     def IEF_VBLANK equ IE_VBLANK
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Cartridge registers (MBC)
 | |
| ;******************************************************************************
 | |
| 
 | |
| def CART_SRAM_DISABLE equ RAMG_SRAM_DISABLE
 | |
| def CART_SRAM_ENABLE  equ RAMG_SRAM_ENABLE
 | |
| 
 | |
| def RTC_S  equ RAMB_RTC_S
 | |
| def RTC_M  equ RAMB_RTC_M
 | |
| def RTC_H  equ RAMB_RTC_H
 | |
| def RTC_DL equ RAMB_RTC_DL
 | |
| def RTC_DH equ RAMB_RTC_DH
 | |
|     def RTC_DHB_CARRY equ B_RAMB_RTC_DH_CARRY
 | |
|     def RTC_DHB_HALT  equ B_RAMB_RTC_DH_HALT
 | |
|     def RTC_DHB_HIGH  equ B_RAMB_RTC_DH_HIGH
 | |
|         def RTC_DHF_CARRY equ RAMB_RTC_DH_CARRY
 | |
|         def RTC_DHF_HALT  equ RAMB_RTC_DH_HALT
 | |
|         def RTC_DHF_HIGH  equ RAMB_RTC_DH_HIGH
 | |
| 
 | |
| def CARTB_RUMBLE_ON equ B_RAMB_RUMBLE
 | |
| def CARTF_RUMBLE_ON equ RAMB_RUMBLE
 | |
| def CART_RUMBLE_OFF equ RAMB_RUMBLE_OFF
 | |
| def CART_RUMBLE_ON  equ RAMB_RUMBLE_ON
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Screen-related constants
 | |
| ;******************************************************************************
 | |
| 
 | |
| def SCRN_X   equ SCREEN_WIDTH_PX
 | |
| def SCRN_Y   equ SCREEN_HEIGHT_PX
 | |
| def SCRN_X_B equ SCREEN_WIDTH
 | |
| def SCRN_Y_B equ SCREEN_HEIGHT
 | |
| def SCRN_B   equ SCREEN_AREA
 | |
| 
 | |
| def SCRN_VX   equ TILEMAP_WIDTH_PX
 | |
| def SCRN_VY   equ TILEMAP_HEIGHT_PX
 | |
| def SCRN_VX_B equ TILEMAP_WIDTH
 | |
| def SCRN_VY_B equ TILEMAP_HEIGHT
 | |
| def SCRN_V_B  equ TILEMAP_AREA
 | |
| 
 | |
| def TILE_X equ TILE_WIDTH
 | |
| def TILE_Y equ TILE_HEIGHT
 | |
| def TILE_B equ TILE_SIZE
 | |
| 
 | |
| def COLOR_B equ COLOR_SIZE
 | |
|     def COLORF_GREEN_LOW  equ COLOR_GREEN_LOW
 | |
|     def COLORF_RED        equ COLOR_RED
 | |
|     def COLORF_BLUE       equ COLOR_BLUE
 | |
|     def COLORF_GREEN_HIGH equ COLOR_GREEN_HIGH
 | |
| 
 | |
| def PAL_B equ PAL_SIZE
 | |
| 
 | |
| def _SCRN0 equ TILEMAP0
 | |
| def _SCRN1 equ TILEMAP1
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; OBJ-related constants
 | |
| ;******************************************************************************
 | |
| 
 | |
| def OAMB_PRI     equ B_OAM_PRIO
 | |
| def OAMB_YFLIP   equ B_OAM_YFLIP
 | |
| def OAMB_XFLIP   equ B_OAM_XFLIP
 | |
| def OAMB_PAL1    equ B_OAM_PAL1
 | |
| def OAMB_BANK1   equ B_OAM_BANK1
 | |
| def OAMF_PALMASK equ OAM_PALETTE
 | |
|     def OAMF_PRI   equ OAM_PRIO
 | |
|     def OAMF_YFLIP equ OAM_YFLIP
 | |
|     def OAMF_XFLIP equ OAM_XFLIP
 | |
|     def OAMF_PAL0  equ OAM_PAL0
 | |
|     def OAMF_PAL1  equ OAM_PAL1
 | |
|     def OAMF_BANK0 equ OAM_BANK0
 | |
|     def OAMF_BANK1 equ OAM_BANK1
 | |
| def OBJ_B        equ OBJ_SIZE
 | |
| 
 | |
| def OAM_B equ OAM_SIZE
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Boot-up register values
 | |
| ;******************************************************************************
 | |
| 
 | |
| def BOOTUPB_B_AGB equ B_BOOTUP_B_AGB
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Aliases
 | |
| ;******************************************************************************
 | |
| 
 | |
| def P1F_GET_BTN  equ JOYP_GET_BTN
 | |
| def P1F_GET_DPAD equ JOYP_GET_DPAD
 | |
| def P1F_GET_NONE equ JOYP_GET_NONE
 | |
| def P1F_5        equ JOYP_GET_DPAD
 | |
| def P1F_4        equ JOYP_GET_BTN
 | |
| def P1F_3        equ JOYPF_DOWN
 | |
| def P1F_2        equ JOYPF_UP
 | |
| def P1F_1        equ JOYPF_LEFT
 | |
| def P1F_0        equ JOYPF_RIGHT
 | |
| 
 | |
| def KEY0F_MODE equ SYSF_MODE
 | |
|     def KEY0F_CGB  equ SYSF_CGB
 | |
|     def KEY0F_DMG  equ SYSF_DMG
 | |
|     def KEY0F_PGB1 equ SYSF_PGB1
 | |
|     def KEY0F_PGB2 equ SYSF_PGB2
 | |
| 
 | |
| def KEY1F_DBLSPEED equ SPDF_DBLSPEED
 | |
| def KEY1F_PREPARE  equ SPDF_PREPARE
 | |
| 
 | |
| def HDMA5B_MODE equ VDMA_LENB_MODE
 | |
|     def HDMA5F_MODE_GP  equ VDMA_LENF_MODE_GP
 | |
|     def HDMA5F_MODE_HBL equ VDMA_LENF_MODE_HBL
 | |
| def HDMA5F_BUSY equ VDMA_LENF_BUSY
 | |
| 
 | |
| def BCPSB_AUTOINC equ BGPIB_AUTOINC
 | |
|     def BCPSF_AUTOINC equ BGPIF_AUTOINC
 | |
| 
 | |
| def OCPSB_AUTOINC equ OBPIB_AUTOINC
 | |
|     def OCPSF_AUTOINC equ OBPIF_AUTOINC
 | |
| 
 | |
| def rSMBK equ rWBK
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Memory regions
 | |
| ;******************************************************************************
 | |
| 
 | |
| ; Prefer RGBASM and RGBLINK features instead of these values.
 | |
| ; Note that the value of `STARTOF(<section_type>)` is determined at link time.
 | |
| 
 | |
| def _ROM     equ $0000 ; $0000-$3FFF / $0000-$7FFF (prefer `STARTOF(ROM0)`)
 | |
| def _ROMBANK equ $4000 ; $4000-$7FFF               (prefer `STARTOF(ROMX)`)
 | |
| def _VRAM    equ $8000 ; $8000-$9FFF               (prefer `STARTOF(VRAM)`)
 | |
| def _SRAM    equ $A000 ; $A000-$BFFF               (prefer `STARTOF(SRAM)`)
 | |
| def _RAM     equ $C000 ; $C000-$CFFF / $C000-$DFFF (prefer `STARTOF(WRAM0)`)
 | |
| def _RAMBANK equ $D000 ; $D000-$DFFF               (prefer `STARTOF(WRAMX)`)
 | |
| def _OAMRAM  equ $FE00 ; $FE00-$FE9F               (prefer `STARTOF(OAM)`)
 | |
| def _IO      equ $FF00 ; $FF00-$FF7F, $FFFF        (prefer `ldh [c]` to `ld [_IO+c]`)
 | |
| def _HRAM    equ $FF80 ; $FF80-$FFFE               (prefer `STARTOF(HRAM)`)
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Cartridge header
 | |
| ;******************************************************************************
 | |
| 
 | |
| ; Prefer RGBFIX instead of these values.
 | |
| ; Zero-filled space can be reserved for fixable header values like this:
 | |
| ;
 | |
| ;     SECTION "Cartridge header", ROM0[$0100]
 | |
| ;         nop :: jp $0150  ; Entry point ($0100-$0104)
 | |
| ;         ds $150 - @, $00 ; Header ($0104-$014FF) filled with $00s for RGBFIX to populate
 | |
| 
 | |
| ; -- Nintendo logo ($0104-$0133) ----------------------------------------------
 | |
| ; Prefer `rgbfix -f/--fix-spec l` for the official logo, or `rgbfix -L <logo_file>` for a custom one
 | |
| MACRO NINTENDO_LOGO
 | |
|     db $CE,$ED,$66,$66,$CC,$0D,$00,$0B,$03,$73,$00,$83,$00,$0C,$00,$0D
 | |
|     db $00,$08,$11,$1F,$88,$89,$00,$0E,$DC,$CC,$6E,$E6,$DD,$DD,$D9,$99
 | |
|     db $BB,$BB,$67,$63,$6E,$0E,$EC,$CC,$DD,$DC,$99,$9F,$BB,$B9,$33,$3E
 | |
| ENDM
 | |
| 
 | |
| ; -- CGB compatibility code ($0143) -------------------------------------------
 | |
| def CART_COMPATIBLE_DMG     equ $00 ; default value if header is zero-filled
 | |
| def CART_COMPATIBLE_DMG_GBC equ $80 ; prefer `rgbfix -c/--color-compatible`
 | |
| def CART_COMPATIBLE_GBC     equ $C0 ; prefer `rgbfix -C/--color-only`
 | |
| 
 | |
| ; -- SGB flag ($0146) ---------------------------------------------------------
 | |
| def CART_INDICATOR_GB  equ $00 ; default value if header is zero-filled
 | |
| def CART_INDICATOR_SGB equ $03 ; prefer `rgblink -s/--sgb-compatible`
 | |
| 
 | |
| ; -- Cartridge type ($0147) ---------------------------------------------------
 | |
| ; Prefer `rgblink -m/--mbc_type <mbc_type>`
 | |
| def CART_ROM                     equ $00
 | |
| def CART_ROM_MBC1                equ $01
 | |
| def CART_ROM_MBC1_RAM            equ $02
 | |
| def CART_ROM_MBC1_RAM_BAT        equ $03
 | |
| def CART_ROM_MBC2                equ $05
 | |
| def CART_ROM_MBC2_BAT            equ $06
 | |
| def CART_ROM_RAM                 equ $08
 | |
| def CART_ROM_RAM_BAT             equ $09
 | |
| def CART_ROM_MMM01               equ $0B
 | |
| def CART_ROM_MMM01_RAM           equ $0C
 | |
| def CART_ROM_MMM01_RAM_BAT       equ $0D
 | |
| def CART_ROM_MBC3_BAT_RTC        equ $0F
 | |
| def CART_ROM_MBC3_RAM_BAT_RTC    equ $10
 | |
| def CART_ROM_MBC3                equ $11
 | |
| def CART_ROM_MBC3_RAM            equ $12
 | |
| def CART_ROM_MBC3_RAM_BAT        equ $13
 | |
| def CART_ROM_MBC5                equ $19
 | |
| def CART_ROM_MBC5_RAM            equ $1A
 | |
| def CART_ROM_MBC5_RAM_BAT        equ $1B
 | |
| def CART_ROM_MBC5_RUMBLE         equ $1C
 | |
| def CART_ROM_MBC5_RAM_RUMBLE     equ $1D
 | |
| def CART_ROM_MBC5_RAM_BAT_RUMBLE equ $1E
 | |
| def CART_ROM_MBC7_RAM_BAT_GYRO   equ $22
 | |
| def CART_ROM_POCKET_CAMERA       equ $FC
 | |
| def CART_ROM_BANDAI_TAMA5        equ $FD
 | |
| def CART_ROM_HUDSON_HUC3         equ $FE
 | |
| def CART_ROM_HUDSON_HUC1         equ $FF
 | |
| 
 | |
| ; -- ROM size ($0148) ---------------------------------------------------------
 | |
| ; Prefer `rgbfix -p/--pad_value <pad_value>`, which pads to the smallest valid size
 | |
| def CART_ROM_32KB   equ $00 ;   2 banks
 | |
| def CART_ROM_64KB   equ $01 ;   4 banks
 | |
| def CART_ROM_128KB  equ $02 ;   8 banks
 | |
| def CART_ROM_256KB  equ $03 ;  16 banks
 | |
| def CART_ROM_512KB  equ $04 ;  32 banks
 | |
| def CART_ROM_1024KB equ $05 ;  64 banks
 | |
| def CART_ROM_2048KB equ $06 ; 128 banks
 | |
| def CART_ROM_4096KB equ $07 ; 256 banks
 | |
| def CART_ROM_8192KB equ $08 ; 512 banks
 | |
| def CART_ROM_1152KB equ $52 ;  72 banks
 | |
| def CART_ROM_1280KB equ $53 ;  80 banks
 | |
| def CART_ROM_1536KB equ $54 ;  96 banks
 | |
| 
 | |
| ; -- SRAM size ($0149) --------------------------------------------------------
 | |
| ; Prefer `rgbfix -r/--ram_size <ram_size>`
 | |
| def CART_SRAM_NONE  equ 0 ; none
 | |
| def CART_SRAM_2KB   equ 1 ;  1 incomplete bank (homebrew only)
 | |
| def CART_SRAM_8KB   equ 2 ;  1 bank
 | |
| def CART_SRAM_32KB  equ 3 ;  4 banks
 | |
| def CART_SRAM_128KB equ 4 ; 16 banks
 | |
| 
 | |
| ; -- Destination code ($014A) -------------------------------------------------
 | |
| def CART_DEST_JAPANESE     equ $00 ; default value if header is zero-filled
 | |
| def CART_DEST_NON_JAPANESE equ $01 ; prefer `rgbfix -j/--non-japanese`
 | |
| 
 | |
| 
 | |
| ;******************************************************************************
 | |
| ; Deprecated constants
 | |
| ;******************************************************************************
 | |
| 
 | |
| def AUDLENF_DUTY equ AUD1LENF_DUTY
 | |
|     def AUDLEN_DUTY_12_5 equ AUD1LEN_DUTY_12_5
 | |
|     def AUDLEN_DUTY_25   equ AUD1LEN_DUTY_25
 | |
|     def AUDLEN_DUTY_50   equ AUD1LEN_DUTY_50
 | |
|     def AUDLEN_DUTY_75   equ AUD1LEN_DUTY_75
 | |
| 
 | |
| def AUDLENF_TIMER equ AUD1LENF_TIMER
 | |
| 
 | |
| def AUDENVF_INIT_VOL equ AUD1ENVF_INIT_VOL
 | |
| 
 | |
| def AUDENVB_DIR equ AUD1ENVB_DIR
 | |
|     def AUDENVF_DIR equ AUD1ENVF_DIR
 | |
|         def AUDENV_DOWN equ AUD1ENV_DOWN
 | |
|         def AUDENV_UP   equ AUD1ENV_UP
 | |
| 
 | |
| def AUDENVF_PACE equ AUD1ENVF_PACE
 | |
| 
 | |
| def AUDHIGHB_RESTART    equ AUD1HIGHB_RESTART
 | |
| def AUDHIGHB_LEN_ENABLE equ AUD1HIGHB_LEN_ENABLE
 | |
|     def AUDHIGH_RESTART    equ AUD1HIGH_RESTART
 | |
|     def AUDHIGH_LENGTH_OFF equ AUD1HIGH_LENGTH_OFF
 | |
|     def AUDHIGH_LENGTH_ON  equ AUD1HIGH_LENGTH_ON
 | |
| 
 | |
| def AUDHIGHF_PERIOD_HIGH equ AUD1HIGHF_PERIOD_HIGH
 | |
| 
 | |
| def LCDCB_BG8000 equ LCDCB_BLKS
 | |
|     def LCDCF_BG8800 equ LCDCF_BLK21
 | |
|     def LCDCF_BG8000 equ LCDCF_BLK01
 | |
| 
 | |
| def IEB_HILO equ IEB_JOYPAD
 | |
|     def IEF_HILO equ IEF_JOYPAD
 | |
| def IEF_LCDC equ IEF_STAT
 | |
| 
 | |
| def sizeof_OAM_ATTRS equ OBJ_B
 | |
| 
 | |
| def _VRAM8000 equ _VRAM
 | |
| def _VRAM8800 equ _VRAM + $800
 | |
| def _VRAM9000 equ _VRAM + $1000
 | |
| 
 | |
| endc ; HARDWARE_COMPAT_INC
 |