gb-tarot/hardware_compat.inc

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