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
 |