;****************************************************************************** ; 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()` 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 ` 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 ` 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 `, 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 ` 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