//====================================================================== // IrisMemoryMap.h // IRIS ƒƒ‚ƒŠƒ}ƒbƒv’è” // // Copyright (C) 2002-2003 NINTENDO Co.,Ltd. //====================================================================== #ifndef _IRIS_MEMORY_MAP_H #define _IRIS_MEMORY_MAP_H #ifdef __cplusplus extern "C" { #endif #include //---------------------------------------------------------------------- // ƒƒ‚ƒŠEƒ}ƒbƒv //---------------------------------------------------------------------- #define SHARED_WORK 0x027ff000 // ‚b‚o‚tŠÔ‹¤—Lƒ[ƒN—̈æ #define SHARED_WORK_END 0x02800000 #if defined(NDEBUG) #define SUBP_PRV 0x02380000 // ƒTƒuƒvƒƒZƒbƒTê—L—̈æiƒŠƒŠ[ƒXƒo[ƒWƒ‡ƒ“j #elif defined(MMEM_4M) #define SUBP_PRV 0x02300000 // iƒfƒoƒbƒOƒo[ƒWƒ‡ƒ“ƒƒƒCƒ“ƒƒ‚ƒŠ‚S‚l–{‘Ì„j #else #define SUBP_PRV 0x02600000 // iƒfƒoƒbƒOƒo[ƒWƒ‡ƒ“ƒƒƒCƒ“ƒƒ‚ƒŠ‚W‚l–{‘Ì„j #endif #define SUBP_PRV_END SHARED_WORK #if defined(IRIS_TEG) | defined(IRIS_TS) #define ITCM 0x01ff8000 // –½—ß‚s‚b‚l #define ITCM_END (ITCM + 0x8000) #define DTCM SUBP_PRV // ƒf[ƒ^‚s‚b‚li‚s‚d‚fƒ{[ƒhˆÈ~j #else #define DTCM 0x8000 // iƒuƒŒƒbƒhƒ{[ƒhê—pj #endif #define DTCM_END (DTCM + 0x4000) #define INTR_VECTOR_BUF (DTCM_END - 0x4) // Š„‚螂ݕªŠòƒAƒhƒŒƒX #define INTR_CHECK_BUF (DTCM_END - 0x8) // Š„‚螂݃`ƒFƒbƒN #define SEND_FIFO_LOCK_BUF (DTCM_END - 0x10) // ‚b‚o‚tŠÔ‘—M‚e‚h‚e‚nEƒƒbƒNƒoƒbƒtƒ@ #define TIMER3_LOCK_BUF (DTCM_END - 0x12) // ƒ^ƒCƒ}[‚REƒƒbƒNƒoƒbƒtƒ@ #define TIMER2_LOCK_BUF (DTCM_END - 0x14) // ƒ^ƒCƒ}[‚Q #define TIMER1_LOCK_BUF (DTCM_END - 0x16) // ƒ^ƒCƒ}[‚P #define TIMER0_LOCK_BUF (DTCM_END - 0x18) // ƒ^ƒCƒ}[‚O #define DMA3_LOCK_BUF (DTCM_END - 0x1a) // ‚c‚l‚`‚REƒƒbƒNƒoƒbƒtƒ@ #define DMA2_LOCK_BUF (DTCM_END - 0x1c) // ‚c‚l‚`‚Q #define DMA1_LOCK_BUF (DTCM_END - 0x1e) // ‚c‚l‚`‚P #define DMA0_LOCK_BUF (DTCM_END - 0x20) // ‚c‚l‚`‚O #define MAIN_MEM 0x02000000 // ƒƒCƒ“ƒƒ‚ƒŠ #define MAIN_MEM_END (MAIN_MEM + 0x400000) #define MAIN_MEM_EX_END (MAIN_MEM + 0x800000) //iŠg’£Žž‚ÌÅIƒAƒhƒŒƒXj #define MAIN_MEM_CMD_AREA (MAIN_MEM_EX_END - 0x2) // ƒƒCƒ“ƒƒ‚ƒŠƒRƒ}ƒ“ƒh”­sƒGƒŠƒAiŽg—p‹ÖŽ~ƒGƒŠƒAj #define SHARED_LOCK_BUF (MAIN_MEM_EX_END - 0x40) // ‹¤—LƒŠƒ\[ƒXEƒƒbƒNƒoƒbƒtƒ@ #define SHARED_LOCK_BUF_END (MAIN_MEM_EX_END - 0x10) #define INIT_LOCK_BUF (MAIN_MEM_EX_END - 0x10) // ‰Šú‰»ƒƒbƒNƒoƒbƒtƒ@ #define CARTRIDGE_LOCK_BUF (MAIN_MEM_EX_END - 0x18) // ƒJ[ƒgƒŠƒbƒWEƒƒbƒNƒoƒbƒtƒ@ #define CARD_LOCK_BUF (MAIN_MEM_EX_END - 0x20) // ƒJ[ƒhEƒƒbƒNƒoƒbƒtƒ@ #define WRAM_BLOCK1_LOCK_BUF (MAIN_MEM_EX_END - 0x28) // ‚b‚o‚t“à•”ƒ[ƒN‚q‚`‚lEƒuƒƒbƒN‚PEƒƒbƒNƒoƒbƒtƒ@ #define WRAM_BLOCK0_LOCK_BUF (MAIN_MEM_EX_END - 0x30) // ƒuƒƒbƒN‚OEƒƒbƒNƒoƒbƒtƒ@ #define VRAM_D_LOCK_BUF (MAIN_MEM_EX_END - 0x38) // ‚u‚q‚`‚l|‚cEƒƒbƒNƒoƒbƒtƒ@ #define VRAM_C_LOCK_BUF (MAIN_MEM_EX_END - 0x40) // ‚bEƒƒbƒNƒoƒbƒtƒ@ #define FROM_SUBP_IF_BUF (MAIN_MEM_EX_END - 0x50) // ƒTƒu¨ƒƒCƒ“ƒvƒƒZƒbƒTŠ„‚螂ݗv‹ƒtƒ‰ƒOi‚Q‚a‚™‚”‚…~‚Wj #define WM_FROM_SUBP_IF_BUF (MAIN_MEM_EX_END - 0x50) // ƒƒCƒ„ƒŒƒXƒ}ƒl[ƒWƒƒ—\–ñ #define TO_SUBP_IF_BUF (MAIN_MEM_EX_END - 0x60) // ƒƒCƒ“¨ƒTƒuƒvƒƒZƒbƒTŠ„‚螂ݗv‹ƒtƒ‰ƒOi‚Q‚a‚™‚”‚…~‚Wj #define WM_TO_SUBP_IF_BUF (MAIN_MEM_EX_END - 0x60) // ƒƒCƒ„ƒŒƒXƒ}ƒl[ƒWƒƒ—\–ñ #define ROM_HEADER_BUF (MAIN_MEM_EX_END - 0x200)// ‚q‚n‚l“à“o˜^ƒGƒŠƒAƒf[ƒ^Eƒoƒbƒtƒ@ #define DMA_CLEAR_DATA_BUF (MAIN_MEM_EX_END - 0x210)// ‚c‚l‚`ƒNƒŠƒAƒf[ƒ^Eƒoƒbƒtƒ@iŽb’è‘ΉžA”pŽ~—\’èj #define CPU_WRAM 0x037f8000 // ‚b‚o‚t“à•”ƒ[ƒN‚q‚`‚l #define CPU_WRAM_END (CPU_WRAM + 0x8000) #define CPU_WRAM_BLOCK0 0x037f8000 // ƒuƒƒbƒN‚O #define CPU_WRAM_BLOCK0_END (CPU_WRAM_BLOCK0 + 0x4000) #define CPU_WRAM_BLOCK1 0x037fc000 // ƒuƒƒbƒN‚P #define CPU_WRAM_BLOCK1_END (CPU_WRAM_BLOCK1 + 0x4000) #define REG_BASE 0x04000000 // ƒŒƒWƒXƒ^ŒQ #define PLTT 0x05000000 // ƒpƒŒƒbƒg‚q‚`‚l #define PLTT_END (PLTT + 0x400) #define BG_PLTT (PLTT + 0x0) // ‚a‚fƒpƒŒƒbƒg‚q‚`‚l #define BG_PLTT_END (PLTT + 0x200) #define OBJ_PLTT (PLTT + 0x200) // ‚n‚a‚iƒpƒŒƒbƒg‚q‚`‚l #define OBJ_PLTT_END (PLTT + 0x400) #define VRAM 0x06000000 // ‚u‚q‚`‚l #define BG_VRAM (VRAM + 0x0) // ‚a‚fƒLƒƒƒ‰ƒNƒ^/ƒXƒNƒŠ[ƒ“‚q‚`‚l #define BG_VRAM_END (VRAM + 0x80000) #define OBJ_VRAM (VRAM + 0x400000) // ‚n‚a‚iƒLƒƒƒ‰ƒNƒ^‚q‚`‚l #define OBJ_VRAM_END (VRAM + 0x440000) #define LCDC_VRAM (VRAM + 0x800000) // ‚k‚b‚c‚b|‚u‚q‚`‚l #define LCDC_VRAM_A (VRAM + 0x800000) #define LCDC_VRAM_B (VRAM + 0x820000) #define LCDC_VRAM_C (VRAM + 0x840000) #define LCDC_VRAM_D (VRAM + 0x860000) #define LCDC_VRAM_E (VRAM + 0x880000) #define LCDC_VRAM_F (VRAM + 0x890000) #define LCDC_VRAM_G (VRAM + 0x894000) #define LCDC_VRAM_END (VRAM + 0x898000) #define OAM 0x07000000 // ‚n‚`‚l #define OAM_END (OAM + 0x400) #define CARTRIDGE 0x08000000 // ƒJ[ƒgƒŠƒbƒW #define CTRDG_AD16_BANK0 0x08000000 // ƒJ[ƒgƒŠƒbƒW ‚`‚c‚P‚UƒoƒX ƒoƒ“ƒN‚O #define CTRDG_AD16_BANK0_END 0x0a000000 #define CTRDG_AD16_BANK1 0x0a000000 // ƒoƒ“ƒN‚P #define CTRDG_AD16_BANK1_END 0x0c000000 #define CTRDG_AD16_BANK2 0x0c000000 // ƒoƒ“ƒN‚Q #define CTRDG_AD16_BANK2_END 0x0e000000 #define CTRDG_DT8 0x0e000000 // ƒJ[ƒgƒŠƒbƒW ‚W‚‚‚‰‚”ƒf[ƒ^ƒoƒX #define CTRDG_DT8_END 0x10000000 #define BIOS 0xffff0000 // ‚a‚h‚n‚r #define BIOS_END (BIOS + 0x8000) //---------------------------------------------------------------------- // ƒƒ‚ƒŠEƒTƒCƒY //---------------------------------------------------------------------- #define SHARED_WORK_SIZE (SHARED_WORK_END - SHARED_WORK) // ‚b‚o‚tŠÔ‹¤—Lƒ[ƒN—̈æi‚S‚j‚aˆÈãA‚Q‚ׂ̂«æƒTƒCƒYj #define SUBP_PRV_SIZE (SUBP_PRV_END - SUBP_PRV) // ƒTƒuƒvƒƒZƒbƒTê—L—̈æi‚R‚Q‚j‚aˆÈãA‚Q‚ׂ̂«æƒTƒCƒYj #define SHARED_LOCK_BUF_SIZE (SHARED_LOCK_BUF_END - SHARED_LOCK_BUF) // ‹¤—LƒŠƒ\[ƒXEƒƒbƒNƒoƒbƒtƒ@ #define ITCM_SIZE 0x8000 // –½—ß‚s‚b‚l #define DTCM_SIZE 0x4000 // ƒf[ƒ^‚s‚b‚l #define ICACHE_SIZE 0x2000 // –½—߃LƒƒƒbƒVƒ… #define DCACHE_SIZE 0x1000 // ƒf[ƒ^ƒLƒƒƒbƒVƒ… #define CACHE_LINE_SIZE 32 // ƒLƒƒƒbƒVƒ…ƒ‰ƒCƒ“ #define MAIN_MEM_SIZE 0x400000 // ƒƒCƒ“ƒƒ‚ƒŠ #define MAIN_MEM_EX_SIZE 0x800000 // iŠg’£Žžj #define CPU_WRAM_SIZE 0x8000 // ‚b‚o‚t“à•”ƒ[ƒN‚q‚`‚l ‡Œv #define CPU_WRAM_BLOCK0_SIZE 0x4000 // ƒuƒƒbƒN‚O #define CPU_WRAM_BLOCK1_SIZE 0x4000 // ƒuƒƒbƒN‚P #define MROM_PAGE_SIZE 512 // ƒ}ƒXƒN‚q‚n‚lEƒy[ƒW #define PLTT_SIZE (2*256*2) // ƒpƒŒƒbƒg‚q‚`‚l #define BG_PLTT_SIZE (2*256) // ‚a‚fƒpƒŒƒbƒg‚q‚`‚l #define OBJ_PLTT_SIZE (2*256) // ‚n‚a‚iƒpƒŒƒbƒg‚q‚`‚l #define BG_VRAM_SIZE 0x80000 // ‚a‚f|‚u‚q‚`‚l #define OBJ_VRAM_SIZE 0x40000 // ‚n‚a‚i|‚u‚q‚`‚l #define LCDC_VRAM_SIZE 0x98000 // ‚k‚b‚c‚b|‚u‚q‚`‚l #define VRAM_A_SIZE 0x20000 // ‚u‚q‚`‚l|‚` #define VRAM_B_SIZE 0x20000 // ‚a #define VRAM_C_SIZE 0x20000 // ‚b #define VRAM_D_SIZE 0x20000 // ‚c #define VRAM_E_SIZE 0x10000 // ‚d #define VRAM_F_SIZE 0x4000 // ‚e #define VRAM_G_SIZE 0x4000 // ‚f #define OAM_SIZE (8*128) // ‚n‚`‚l #define CARTRIDGE_SIZE 0x02000000 // ƒJ[ƒgƒŠƒbƒW #define CTRDG_AD16_BANK_SIZE 0x02000000 // ƒJ[ƒgƒŠƒbƒW ‚`‚c‚P‚UƒoƒX ƒoƒ“ƒN #define CTRDG_AD16_BANK0_SIZE 0x02000000 // ƒoƒ“ƒN‚O #define CTRDG_AD16_BANK1_SIZE 0x02000000 // ƒoƒ“ƒN‚P #define CTRDG_AD16_BANK2_SIZE 0x02000000 // ƒoƒ“ƒN‚Q #define CTRDG_DT8_SIZE 0x02000000 // ƒJ[ƒgƒŠƒbƒW ‚W‚‚‚‰‚”ƒf[ƒ^ƒoƒX #define BIOS_SIZE 0x8000 // ‚a‚h‚n‚r //---------------------------------------------------------------------- // ƒŒƒWƒXƒ^EƒAƒhƒŒƒX //---------------------------------------------------------------------- #define REG_IME (REG_BASE + 0x208) // Š„‚螂݃}ƒXƒ^ƒCƒl[ƒuƒ‹ #define REG_IE (REG_BASE + 0x210) // Š„‚螂݋–‰Â #define REG_IF (REG_BASE + 0x214) // Š„‚螂ݗv‹ #define REG_SUBPINTF (REG_BASE + 0x180) // ƒTƒuƒvƒƒZƒbƒTƒCƒ“ƒ^ƒtƒF[ƒX #define REG_SUBP_FIFO_CNT (REG_BASE + 0x184) // ‚b‚o‚tŠÔ‚e‚h‚e‚nƒRƒ“ƒgƒ[ƒ‹ #define REG_SEND_FIFO (REG_BASE + 0x188) // ‘—M‚e‚h‚e‚n #define REG_RECV_FIFO (REG_BASE + 0x100000) // ŽóM‚e‚h‚e‚n #define REG_EXMEMCNT (REG_BASE + 0x204) // ŠO•”ƒƒ‚ƒŠƒRƒ“ƒgƒ[ƒ‹ #define REG_POWCNT (REG_BASE + 0x304) // ƒpƒ[ƒRƒ“ƒgƒ[ƒ‹ #define REG_DIVCNT (REG_BASE + 0x280) // œŽZŠí ƒRƒ“ƒgƒ[ƒ‹ #define REG_DIV_NUMER (REG_BASE + 0x290) // ”휔 #define REG_DIV_DENOM (REG_BASE + 0x298) // œ” #define REG_DIV_RESULT (REG_BASE + 0x2a0) // ¤ #define REG_DIVREM_RESULT (REG_BASE + 0x2a8) // —]‚è #define REG_SQRTCNT (REG_BASE + 0x2b0) // •½•ûª‰‰ŽZŠí ƒRƒ“ƒgƒ[ƒ‹ #define REG_SQRT_RESULT (REG_BASE + 0x2b4) // Œ‹‰Ê #define REG_SQRT_PARAM (REG_BASE + 0x2b8) // ƒpƒ‰ƒ[ƒ^ #define REG_DISPCNT (REG_BASE + 0x0) // •\ަƒRƒ“ƒgƒ[ƒ‹ #define REG_DISPCNT_L (REG_BASE + 0x0) #define REG_DISPCNT_H (REG_BASE + 0x2) #define REG_DISP2DCNT (REG_BASE + 0x0) // ‚Q‚c•\ަƒRƒ“ƒgƒ[ƒ‹ #define REG_DISP3DCNT (REG_BASE + 0x60) // ‚R‚c•\ަƒRƒ“ƒgƒ[ƒ‹ #define REG_DISPSTAT (REG_BASE + 0x4) // •\ަƒXƒe[ƒ^ƒX #define REG_VCOUNT (REG_BASE + 0x6) // ‚uƒJƒEƒ“ƒ^ #define REG_GXSTAT (REG_BASE + 0x600) // ƒWƒIƒƒgƒŠƒGƒ“ƒWƒ“ƒXƒe[ƒ^ƒX #define REG_VRAMCNT (REG_BASE + 0x240) // ‚u‚q‚`‚lƒRƒ“ƒgƒ[ƒ‹ #define REG_WRAMCNT (REG_BASE + 0x247) // “à•”ƒ[ƒN‚q‚`‚lƒRƒ“ƒgƒ[ƒ‹ #define REG_WVRAMCNT (REG_BASE + 0x244) // ‚u‚q‚`‚l ‚d`‚f { “à•”ƒ[ƒN‚q‚`‚l ƒRƒ“ƒgƒ[ƒ‹ #define REG_VRAM_A_CNT (REG_BASE + 0x240) // ‚u‚q‚`‚l ‚` #define REG_VRAM_B_CNT (REG_BASE + 0x241) // ‚u‚q‚`‚l ‚a #define REG_VRAM_C_CNT (REG_BASE + 0x242) // ‚u‚q‚`‚l ‚b #define REG_VRAM_D_CNT (REG_BASE + 0x243) // ‚u‚q‚`‚l ‚c #define REG_VRAM_E_CNT (REG_BASE + 0x244) // ‚u‚q‚`‚l ‚d #define REG_VRAM_F_CNT (REG_BASE + 0x245) // ‚u‚q‚`‚l ‚e #define REG_VRAM_G_CNT (REG_BASE + 0x246) // ‚u‚q‚`‚l ‚f #define REG_VRAM_H_CNT (REG_BASE + 0x248) // ‚u‚q‚`‚l ‚g #define REG_VRAM_I_CNT (REG_BASE + 0x249) // ‚u‚q‚`‚l ‚h #define REG_VRAM_AB_CNT (REG_BASE + 0x240) // ‚u‚q‚`‚l ‚`‚a #define REG_VRAM_CD_CNT (REG_BASE + 0x242) // ‚u‚q‚`‚l ‚b‚c #define REG_VRAM_EF_CNT (REG_BASE + 0x244) // ‚u‚q‚`‚l ‚d‚e #define REG_VRAM_G_W_CNT (REG_BASE + 0x246) // ‚u‚q‚`‚l ‚f { “à•”ƒ[ƒN‚q‚`‚l #define REG_VRAM_ABCD_CNT (REG_BASE + 0x240) // ‚u‚q‚`‚l ‚``‚c #define REG_VRAM_EFG_W_CNT (REG_BASE + 0x244) // ‚u‚q‚`‚l ‚d`‚f { “à•”ƒ[ƒN‚q‚`‚l #define REG_VRAM_HI_CNT (REG_BASE + 0x248) // ‚u‚q‚`‚l ‚g‚h #define REG_MASTER_BRIGHT (REG_BASE + 0x6c) // ƒ}ƒXƒ^[‹P“x ƒRƒ“ƒgƒ[ƒ‹ #define REG_DISPCAPCNT (REG_BASE + 0x64) // •\ަƒLƒƒƒvƒ`ƒƒ ƒRƒ“ƒgƒ[ƒ‹ #define REG_DISP_MMEM_FIFO (REG_BASE + 0x68) // ƒƒCƒ“ƒƒ‚ƒŠ•\ަ‚e‚h‚e‚n #define REG_MOSAIC (REG_BASE + 0x4c) // ƒ‚ƒUƒCƒN ƒTƒCƒY #define REG_BLDCNT (REG_BASE + 0x50) // ƒuƒŒƒ“ƒhƒ‚[ƒh ƒRƒ“ƒgƒ[ƒ‹ #define REG_BLDALPHA (REG_BASE + 0x52) // ”¼“§–¾ ƒpƒ‰ƒ[ƒ^ #define REG_BLDY (REG_BASE + 0x54) // ‹P“x•ÏX ƒpƒ‰ƒ[ƒ^ #define REG_WINCNT (REG_BASE + 0x40) // ƒEƒCƒ“ƒhƒE ƒRƒ“ƒgƒ[ƒ‹ #define REG_WIN0H (REG_BASE + 0x40) // ƒEƒCƒ“ƒhƒE‚O…•½—̈æ #define REG_WIN1H (REG_BASE + 0x42) // ƒEƒCƒ“ƒhƒE‚P…•½—̈æ #define REG_WIN0V (REG_BASE + 0x44) // ƒEƒCƒ“ƒhƒE‚O‚’¼—̈æ #define REG_WIN1V (REG_BASE + 0x46) // ƒEƒCƒ“ƒhƒE‚P‚’¼—̈æ #define REG_WININ (REG_BASE + 0x48) // ƒEƒCƒ“ƒhƒE“àƒRƒ“ƒgƒ[ƒ‹ #define REG_WIN0 (REG_BASE + 0x48) // ƒEƒCƒ“ƒhƒE‚OƒRƒ“ƒgƒ[ƒ‹ #define REG_WIN1 (REG_BASE + 0x49) // ƒEƒCƒ“ƒhƒE‚PƒRƒ“ƒgƒ[ƒ‹ #define REG_WIN01 (REG_BASE + 0x48) // ƒEƒCƒ“ƒhƒE‚OE‚PƒRƒ“ƒgƒ[ƒ‹ #define REG_WINOUT (REG_BASE + 0x4a) // ƒEƒCƒ“ƒhƒEŠOƒRƒ“ƒgƒ[ƒ‹ #define REG_OBJWIN (REG_BASE + 0x4b) // ‚n‚a‚iƒEƒCƒ“ƒhƒEƒRƒ“ƒgƒ[ƒ‹ #define REG_WINOUTOBJ (REG_BASE + 0x4a) // ƒEƒCƒ“ƒhƒEŠOE‚n‚a‚iƒEƒCƒ“ƒhƒEƒRƒ“ƒgƒ[ƒ‹ #define REG_BGCNT (REG_BASE + 0x8) // ‚a‚fƒRƒ“ƒgƒ[ƒ‹ #define REG_BG0CNT (REG_BASE + 0x8) // ‚a‚f‚OƒRƒ“ƒgƒ[ƒ‹ #define REG_BG1CNT (REG_BASE + 0xa) // ‚a‚f‚PƒRƒ“ƒgƒ[ƒ‹ #define REG_BG2CNT (REG_BASE + 0xc) // ‚a‚f‚QƒRƒ“ƒgƒ[ƒ‹ #define REG_BG3CNT (REG_BASE + 0xe) // ‚a‚f‚RƒRƒ“ƒgƒ[ƒ‹ #define REG_BGOFS (REG_BASE + 0x10) // ‚a‚fƒIƒtƒZƒbƒg #define REG_BG0HOFS (REG_BASE + 0x10) // ‚a‚f‚O‚gƒIƒtƒZƒbƒg #define REG_BG0VOFS (REG_BASE + 0x12) // ‚a‚f‚O‚uƒIƒtƒZƒbƒg #define REG_BG1HOFS (REG_BASE + 0x14) // ‚a‚f‚P‚gƒIƒtƒZƒbƒg #define REG_BG1VOFS (REG_BASE + 0x16) // ‚a‚f‚P‚uƒIƒtƒZƒbƒg #define REG_BG2HOFS (REG_BASE + 0x18) // ‚a‚f‚Q‚gƒIƒtƒZƒbƒg #define REG_BG2VOFS (REG_BASE + 0x1a) // ‚a‚f‚Q‚uƒIƒtƒZƒbƒg #define REG_BG3HOFS (REG_BASE + 0x1c) // ‚a‚f‚R‚gƒIƒtƒZƒbƒg #define REG_BG3VOFS (REG_BASE + 0x1e) // ‚a‚f‚R‚uƒIƒtƒZƒbƒg #define REG_BG2AFFINE (REG_BASE + 0x20) // ‚a‚f‚QƒAƒtƒBƒ“•ÏŠ·ƒpƒ‰ƒ[ƒ^ŒQ #define REG_BG2PA (REG_BASE + 0x20) // ‚a‚f‚Qƒ‰ƒCƒ“•ûŒü‚wÀ•W·•ª #define REG_BG2PB (REG_BASE + 0x22) // ‚a‚f‚Q ‚’¼•ûŒü‚wÀ•W·•ª #define REG_BG2PC (REG_BASE + 0x24) // ‚a‚f‚Qƒ‰ƒCƒ“•ûŒü‚xÀ•W·•ª #define REG_BG2PD (REG_BASE + 0x26) // ‚a‚f‚Q ‚’¼•ûŒü‚xÀ•W·•ª #define REG_BG2X (REG_BASE + 0x28) // ‚a‚f‚QƒXƒ^[ƒg‚wÀ•W #define REG_BG2Y (REG_BASE + 0x2c) // ‚a‚f‚QƒXƒ^[ƒg‚xÀ•W #define REG_BG3AFFINE (REG_BASE + 0x30) // ‚a‚f‚RƒAƒtƒBƒ“•ÏŠ·ƒpƒ‰ƒ[ƒ^ŒQ #define REG_BG3PA (REG_BASE + 0x30) // ‚a‚f‚Rƒ‰ƒCƒ“•ûŒü‚wÀ•W·•ª #define REG_BG3PB (REG_BASE + 0x32) // ‚a‚f‚R ‚’¼•ûŒü‚wÀ•W·•ª #define REG_BG3PC (REG_BASE + 0x34) // ‚a‚f‚Rƒ‰ƒCƒ“•ûŒü‚xÀ•W·•ª #define REG_BG3PD (REG_BASE + 0x36) // ‚a‚f‚R ‚’¼•ûŒü‚xÀ•W·•ª #define REG_BG3X (REG_BASE + 0x38) // ‚a‚f‚RƒXƒ^[ƒg‚wÀ•W #define REG_BG3Y (REG_BASE + 0x3c) // ‚a‚f‚RƒXƒ^[ƒg‚xÀ•W #define REG_GXFIFO (REG_BASE + 0x400) // ƒWƒIƒƒgƒŠ‚e‚h‚e‚n #define REG_LISTRAM_COUNT (REG_BASE + 0x604) // ƒ|ƒŠƒSƒ“ƒŠƒXƒg‚q‚`‚lƒJƒEƒ“ƒ^ #define REG_VTXRAM_COUNT (REG_BASE + 0x606) // ’¸“_‚q‚`‚lƒJƒEƒ“ƒ^ #define REG_RDLINES_COUNT (REG_BASE + 0x320) // ƒŒƒ“ƒ_ƒŠƒ“ƒOς݃‰ƒCƒ“”ƒJƒEƒ“ƒ^ #define REG_SWAP_BUFFERS (REG_BASE + 0x540) // ƒŒƒ“ƒ_ƒŠƒ“ƒOƒGƒ“ƒWƒ“ŽQƃf[ƒ^ŒQ‚̃Xƒƒbƒv #define REG_VIEWPORT (REG_BASE + 0x580) // Ž‹ŠE #define REG_MTX_MODE (REG_BASE + 0x440) // s—ñƒ‚[ƒh #define REG_MTX_PUSH (REG_BASE + 0x444) // s—ñƒvƒbƒVƒ… #define REG_MTX_POP (REG_BASE + 0x448) // s—ñƒ|ƒbƒv #define REG_MTX_STORE (REG_BASE + 0x44c) // s—ñƒXƒgƒA #define REG_MTX_RESTORE (REG_BASE + 0x450) // s—ñƒŠƒXƒgƒA #define REG_MTX_IDENTITY (REG_BASE + 0x454) // ’PˆÊs—ñ ‰Šú‰» #define REG_MTX_LOAD_4x4 (REG_BASE + 0x458) // s—ñƒ[ƒhi‚S‚˜‚Sj #define REG_MTX_LOAD_4x3 (REG_BASE + 0x45c) // i‚S‚˜‚Rj #define REG_MTX_MULT_4x4 (REG_BASE + 0x460) // s—ñæŽZ i‚S‚˜‚Sj #define REG_MTX_MULT_4x3 (REG_BASE + 0x464) // i‚S‚˜‚Rj #define REG_MTX_MULT_3x3 (REG_BASE + 0x468) // i‚R‚˜‚Rj #define REG_MTX_SCALE (REG_BASE + 0x46c) // ƒXƒP[ƒ‹s—ñæŽZi‚P‚˜‚Rj #define REG_MTX_TRANS (REG_BASE + 0x470) // ˆÚ“®s—ñæŽZi‚P‚˜‚Rj #define REG_CLIPMTX_RESULT (REG_BASE + 0x640) // ƒJƒŒƒ“ƒgƒNƒŠƒbƒvÀ•Ws—ñ “ǂݞ‚Ý #define REG_VECMTX_RESULT (REG_BASE + 0x680) // ƒJƒŒƒ“ƒgƒxƒNƒgƒ‹s—ñ “ǂݞ‚Ý #define REG_LIGHT_VECTOR (REG_BASE + 0x4c8) // ƒ‰ƒCƒgƒxƒNƒgƒ‹ #define REG_LIGHT_COLOR (REG_BASE + 0x4cc) // ƒ‰ƒCƒgƒJƒ‰[ #define REG_MATERIAL_COLOR (REG_BASE + 0x4c0) // ƒ}ƒeƒŠƒAƒ‹ƒJƒ‰[ #define REG_DIF_AMB (REG_BASE + 0x4c0) // ŠgŽUŒõ • ŠÂ‹«Œõ¬•ª #define REG_SPE_EMI (REG_BASE + 0x4c4) // ”½ŽËŒõ • •úŽËŒõ¬•ª #define REG_SHININESS (REG_BASE + 0x4d0) // ‹¾–Ê”½ŽË‹P“x #define REG_POLYGON_ATTR (REG_BASE + 0x4a4) // ƒ|ƒŠƒSƒ“‘®« #define REG_TEX_PARAM (REG_BASE + 0x4a8) // ƒeƒNƒXƒ`ƒƒƒpƒ‰ƒ[ƒ^ #define REG_TEXIMAGE_PARAM (REG_BASE + 0x4a8) #define REG_TEXPLTT_BASE (REG_BASE + 0x4ac) #define REG_BEGIN_VTXS (REG_BASE + 0x500) // ’¸“_ƒŠƒXƒg ƒXƒ^[ƒg #define REG_END_VTXS (REG_BASE + 0x504) // ’¸“_ƒŠƒXƒg ƒGƒ“ƒh #define REG_COLOR (REG_BASE + 0x480) // ’¸“_ƒJƒ‰[ #define REG_NORMAL (REG_BASE + 0x484) // ’¸“_–@ü #define REG_TEXCOORD (REG_BASE + 0x488) // ’¸“_ƒeƒNƒXƒ`ƒƒÀ•W #define REG_VTX_16 (REG_BASE + 0x48c) // ’¸“_16bitÀ•W #define REG_VTX_10 (REG_BASE + 0x490) // ’¸“_10bitÀ•W #define REG_VTX_XY (REG_BASE + 0x494) // ’¸“_16bitXYÀ•W #define REG_VTX_XZ (REG_BASE + 0x498) // ’¸“_16bitXZÀ•W #define REG_VTX_YZ (REG_BASE + 0x49c) // ’¸“_16bitYZÀ•W #define REG_VTX_DIFF (REG_BASE + 0x4a0) // ’¸“_16bitÀ•W·•ª’l #define REG_BOX_TEST (REG_BASE + 0x5c0) // ƒ{ƒbƒNƒXƒeƒXƒg #define REG_POS_TEST (REG_BASE + 0x5c4) // ˆÊ’uƒeƒXƒg #define REG_VEC_TEST (REG_BASE + 0x5c8) // ƒxƒNƒgƒ‹ƒeƒXƒg #define REG_POS_RESULT (REG_BASE + 0x620) // ˆÊ’uƒeƒXƒgŒ‹‰Ê #define REG_VEC_RESULT (REG_BASE + 0x630) // ƒxƒNƒgƒ‹ƒeƒXƒgŒ‹‰Ê #define REG_CLEAR_COLOR_ATTR (REG_BASE +0x350) // ƒJƒ‰[•‘®«ƒoƒbƒtƒ@ ƒNƒŠƒA’l #define REG_CLEAR_DEPTH (REG_BASE + 0x354) // ‚yƒoƒbƒtƒ@ ƒNƒŠƒA’l #define REG_CLRIMAGE_OFFSET (REG_BASE + 0x356) // ƒNƒŠƒAƒCƒ[ƒW ƒIƒtƒZƒbƒg #define REG_EDGE_COLOR (REG_BASE + 0x330) // ƒGƒbƒWƒJƒ‰[ #define REG_FOG_COLOR (REG_BASE + 0x358) // ƒtƒHƒO ƒJƒ‰[ #define REG_FOG_OFFSET (REG_BASE + 0x35c) // ƒtƒHƒO ƒIƒtƒZƒbƒg #define REG_FOG_TABLE (REG_BASE + 0x360) // ƒtƒHƒO”Z“xƒe[ƒuƒ‹ #define REG_TOON_TABLE (REG_BASE + 0x380) // ƒgƒD[ƒ“ƒVƒF[ƒfƒBƒ“ƒOEƒe[ƒuƒ‹ #define REG_ALPHA_TEST_REF (REG_BASE + 0x340) // ƒAƒ‹ƒtƒ@ƒeƒXƒgŽQÆ’l #define REG_DISP_1DOT_DEPTH (REG_BASE + 0x610) // ‚Pƒhƒbƒgƒ|ƒŠƒSƒ“•`‰æŠJŽn‚y’l #define REG_DMA0 (REG_BASE + 0xb0) // ‚c‚l‚`‚O #define REG_DMA0SAD (REG_BASE + 0xb0) #define REG_DMA0DAD (REG_BASE + 0xb4) #define REG_DMA0CNT (REG_BASE + 0xb8) #define REG_DMA0CNT_L (REG_BASE + 0xb8) #define REG_DMA0CNT_H (REG_BASE + 0xba) #define REG_DMA1 (REG_BASE + 0xbc) // ‚c‚l‚`‚P #define REG_DMA1SAD (REG_BASE + 0xbc) #define REG_DMA1DAD (REG_BASE + 0xc0) #define REG_DMA1CNT (REG_BASE + 0xc4) #define REG_DMA1CNT_L (REG_BASE + 0xc4) #define REG_DMA1CNT_H (REG_BASE + 0xc6) #define REG_DMA2 (REG_BASE + 0xc8) // ‚c‚l‚`‚Q #define REG_DMA2SAD (REG_BASE + 0xc8) #define REG_DMA2DAD (REG_BASE + 0xcc) #define REG_DMA2CNT (REG_BASE + 0xd0) #define REG_DMA2CNT_L (REG_BASE + 0xd0) #define REG_DMA2CNT_H (REG_BASE + 0xd2) #define REG_DMA3 (REG_BASE + 0xd4) // ‚c‚l‚`‚R #define REG_DMA3SAD (REG_BASE + 0xd4) #define REG_DMA3DAD (REG_BASE + 0xd8) #define REG_DMA3CNT (REG_BASE + 0xdc) #define REG_DMA3CNT_L (REG_BASE + 0xdc) #define REG_DMA3CNT_H (REG_BASE + 0xde) #define REG_DMA3CNT_L (REG_BASE + 0xdc) #ifdef IRIS_TS #define REG_DMA0_CLR_DATA (REG_BASE + 0xe0) // ‚c‚l‚` ƒNƒŠƒAƒf[ƒ^ #define REG_DMA1_CLR_DATA (REG_BASE + 0xe4) #define REG_DMA2_CLR_DATA (REG_BASE + 0xe8) #define REG_DMA3_CLR_DATA (REG_BASE + 0xec) #else #define REG_DMA0_CLR_DATA (DMA_CLEAR_DATA_BUF + 0x0) #define REG_DMA1_CLR_DATA (DMA_CLEAR_DATA_BUF + 0x4) #define REG_DMA2_CLR_DATA (DMA_CLEAR_DATA_BUF + 0x8) #define REG_DMA3_CLR_DATA (DMA_CLEAR_DATA_BUF + 0xc) #endif #define REG_TM0CNT (REG_BASE + 0x100) // ƒ^ƒCƒ}[‚O #define REG_TM0CNT_L (REG_BASE + 0x100) #define REG_TM0CNT_H (REG_BASE + 0x102) #define REG_TM1CNT (REG_BASE + 0x104) // ƒ^ƒCƒ}[‚P #define REG_TM1CNT_L (REG_BASE + 0x104) #define REG_TM1CNT_H (REG_BASE + 0x106) #define REG_TM2CNT (REG_BASE + 0x108) // ƒ^ƒCƒ}[‚Q #define REG_TM2CNT_L (REG_BASE + 0x108) #define REG_TM2CNT_H (REG_BASE + 0x10a) #define REG_TM3CNT (REG_BASE + 0x10c) // ƒ^ƒCƒ}[‚R #define REG_TM3CNT_L (REG_BASE + 0x10c) #define REG_TM3CNT_H (REG_BASE + 0x10e) #define REG_KEYINPUT (REG_BASE + 0x130) // ƒL[“ü—Í #define REG_KEYCNT (REG_BASE + 0x132) // ƒL[ƒRƒ“ƒgƒ[ƒ‹ #define REG_R0CNT (REG_BASE + 0x134) // ”Ä—pƒ|[ƒg‚O #define REG_R1CNT (REG_BASE + 0x138) // ‚P //---------------------------------------------------------------------- // ƒŒƒWƒXƒ^EƒIƒtƒZƒbƒg //---------------------------------------------------------------------- #define OFFSET_REG_IME 0x208 // Š„‚螂݃}ƒXƒ^ƒCƒl[ƒuƒ‹ #define OFFSET_REG_IE 0x210 // Š„‚螂݋–‰Â #define OFFSET_REG_IF 0x214 // Š„‚螂ݗv‹ #define OFFSET_REG_SUBPINTF 0x180 // ƒTƒuƒvƒƒZƒbƒTƒCƒ“ƒ^ƒtƒF[ƒX #define OFFSET_REG_SUBP_FIFO_CNT 0x184 // ‚b‚o‚tŠÔ‚e‚h‚e‚nƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_SEND_FIFO 0x188 // ‘—M‚e‚h‚e‚n #define OFFSET_REG_RECV_FIFO 0x100000 // ŽóM‚e‚h‚e‚n #define OFFSET_REG_EXMEMCNT 0x204 // ŠO•”ƒƒ‚ƒŠƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_POWCNT 0x304 // ƒpƒ[ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DIVCNT 0x280 // œŽZŠí ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DIV_NUMER 0x290 // ”휔 #define OFFSET_REG_DIV_DENOM 0x298 // œ” #define OFFSET_REG_DIV_RESULT 0x2a0 // ¤ #define OFFSET_REG_DIVREM_RESULT 0x2a8 // —]‚è #define OFFSET_REG_SQRTCNT 0x2b0 // •½•ûª‰‰ŽZŠí ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_SQRT_RESULT 0x2b4 // Œ‹‰Ê #define OFFSET_REG_SQRT_PARAM 0x2b8 // ƒpƒ‰ƒ[ƒ^ #define OFFSET_REG_DISPCNT 0x0 // •\ަƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DISPCNT_L 0x0 #define OFFSET_REG_DISPCNT_H 0x2 #define OFFSET_REG_DISP2DCNT 0x0 // ‚Q‚c•\ަƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DISP3DCNT 0x60 // ‚R‚c•\ަƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DISPSTAT 0x4 // •\ަƒXƒe[ƒ^ƒX #define OFFSET_REG_VCOUNT 0x6 // ‚uƒJƒEƒ“ƒ^ #define OFFSET_REG_GXSTAT 0x600 // ƒWƒIƒƒgƒŠƒGƒ“ƒWƒ“ƒXƒe[ƒ^ƒX #define OFFSET_REG_VRAMCNT 0x240 // ‚u‚q‚`‚lƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WRAMCNT 0x247 // “à•”ƒ[ƒN‚q‚`‚lƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WVRAMCNT 0x244 // ‚u‚q‚`‚l ‚d`‚f { “à•”ƒ[ƒN‚q‚`‚l ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_VRAM_A_CNT 0x240 // ‚u‚q‚`‚l ‚` #define OFFSET_REG_VRAM_B_CNT 0x241 // ‚u‚q‚`‚l ‚a #define OFFSET_REG_VRAM_C_CNT 0x242 // ‚u‚q‚`‚l ‚b #define OFFSET_REG_VRAM_D_CNT 0x243 // ‚u‚q‚`‚l ‚c #define OFFSET_REG_VRAM_E_CNT 0x244 // ‚u‚q‚`‚l ‚d #define OFFSET_REG_VRAM_F_CNT 0x245 // ‚u‚q‚`‚l ‚e #define OFFSET_REG_VRAM_G_CNT 0x246 // ‚u‚q‚`‚l ‚f #define OFFSET_REG_VRAM_H_CNT 0x248 // ‚u‚q‚`‚l ‚g #define OFFSET_REG_VRAM_I_CNT 0x249 // ‚u‚q‚`‚l ‚h #define OFFSET_REG_VRAM_AB_CNT 0x240 // ‚u‚q‚`‚l ‚`‚a #define OFFSET_REG_VRAM_CD_CNT 0x242 // ‚u‚q‚`‚l ‚b‚c #define OFFSET_REG_VRAM_EF_CNT 0x244 // ‚u‚q‚`‚l ‚d‚e #define OFFSET_REG_VRAM_G_W_CNT 0x246 // ‚u‚q‚`‚l ‚f { “à•”ƒ[ƒN‚q‚`‚l #define OFFSET_REG_VRAM_ABCD_CNT 0x240 // ‚u‚q‚`‚l ‚``‚c #define OFFSET_REG_VRAM_EFG_W_CNT 0x244 // ‚u‚q‚`‚l ‚d`‚f { “à•”ƒ[ƒN‚q‚`‚l #define OFFSET_REG_VRAM_HI_CNT 0x248 // ‚u‚q‚`‚l ‚g‚h #define OFFSET_REG_MASTER_BRIGHT 0x6c // ƒ}ƒXƒ^[‹P“x ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DISPCAPCNT 0x64 // •\ަƒLƒƒƒvƒ`ƒƒ ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_DISP_MMEM_FIFO 0x68 // ƒƒCƒ“ƒƒ‚ƒŠ•\ަ‚e‚h‚e‚n #define OFFSET_REG_TVOUTCNT 0x70 // ƒeƒŒƒro—̓Rƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_MOSAIC 0x4c // ƒ‚ƒUƒCƒN ƒTƒCƒY #define OFFSET_REG_BLDCNT 0x50 // ƒuƒŒƒ“ƒhƒ‚[ƒh ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BLDALPHA 0x52 // ”¼“§–¾ ƒpƒ‰ƒ[ƒ^ #define OFFSET_REG_BLDY 0x54 // ‹P“x•ÏX ƒpƒ‰ƒ[ƒ^ #define OFFSET_REG_WINCNT 0x40 // ƒEƒCƒ“ƒhƒE ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WIN0H 0x40 // ƒEƒCƒ“ƒhƒE‚O…•½—̈æ #define OFFSET_REG_WIN1H 0x42 // ƒEƒCƒ“ƒhƒE‚P…•½—̈æ #define OFFSET_REG_WIN0V 0x44 // ƒEƒCƒ“ƒhƒE‚O‚’¼—̈æ #define OFFSET_REG_WIN1V 0x46 // ƒEƒCƒ“ƒhƒE‚P‚’¼—̈æ #define OFFSET_REG_WININ 0x48 // ƒEƒCƒ“ƒhƒE“àƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WIN0 0x48 // ƒEƒCƒ“ƒhƒE‚OƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WIN1 0x49 // ƒEƒCƒ“ƒhƒE‚PƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WIN01 0x48 // ƒEƒCƒ“ƒhƒE‚OE‚PƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WINOUT 0x4a // ƒEƒCƒ“ƒhƒEŠOƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_OBJWIN 0x4b // ‚n‚a‚iƒEƒCƒ“ƒhƒEƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_WINOUTOBJ 0x4a // ƒEƒCƒ“ƒhƒEŠOE‚n‚a‚iƒEƒCƒ“ƒhƒEƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BGCNT 0x8 // ‚a‚fƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BG0CNT 0x8 // ‚a‚f‚OƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BG1CNT 0xa // ‚a‚f‚PƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BG2CNT 0xc // ‚a‚f‚QƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BG3CNT 0xe // ‚a‚f‚RƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_BGOFS 0x10 // ‚a‚fƒIƒtƒZƒbƒg #define OFFSET_REG_BG0HOFS 0x10 // ‚a‚f‚O‚gƒIƒtƒZƒbƒg #define OFFSET_REG_BG0VOFS 0x12 // ‚a‚f‚O‚uƒIƒtƒZƒbƒg #define OFFSET_REG_BG1HOFS 0x14 // ‚a‚f‚P‚gƒIƒtƒZƒbƒg #define OFFSET_REG_BG1VOFS 0x16 // ‚a‚f‚P‚uƒIƒtƒZƒbƒg #define OFFSET_REG_BG2HOFS 0x18 // ‚a‚f‚Q‚gƒIƒtƒZƒbƒg #define OFFSET_REG_BG2VOFS 0x1a // ‚a‚f‚Q‚uƒIƒtƒZƒbƒg #define OFFSET_REG_BG3HOFS 0x1c // ‚a‚f‚R‚gƒIƒtƒZƒbƒg #define OFFSET_REG_BG3VOFS 0x1e // ‚a‚f‚R‚uƒIƒtƒZƒbƒg #define OFFSET_REG_BG2AFFINE 0x20 // ‚a‚f‚QƒAƒtƒBƒ“•ÏŠ·ƒpƒ‰ƒ[ƒ^ŒQ #define OFFSET_REG_BG2PA 0x20 // ‚a‚f‚Qƒ‰ƒCƒ“•ûŒü‚wÀ•W·•ª #define OFFSET_REG_BG2PB 0x22 // ‚a‚f‚Q ‚’¼•ûŒü‚wÀ•W·•ª #define OFFSET_REG_BG2PC 0x24 // ‚a‚f‚Qƒ‰ƒCƒ“•ûŒü‚xÀ•W·•ª #define OFFSET_REG_BG2PD 0x26 // ‚a‚f‚Q ‚’¼•ûŒü‚xÀ•W·•ª #define OFFSET_REG_BG2X 0x28 // ‚a‚f‚QƒXƒ^[ƒg‚wÀ•W #define OFFSET_REG_BG2Y 0x2c // ‚a‚f‚QƒXƒ^[ƒg‚xÀ•W #define OFFSET_REG_BG3AFFINE 0x30 // ‚a‚f‚RƒAƒtƒBƒ“•ÏŠ·ƒpƒ‰ƒ[ƒ^ŒQ #define OFFSET_REG_BG3PA 0x30 // ‚a‚f‚Rƒ‰ƒCƒ“•ûŒü‚wÀ•W·•ª #define OFFSET_REG_BG3PB 0x32 // ‚a‚f‚R ‚’¼•ûŒü‚wÀ•W·•ª #define OFFSET_REG_BG3PC 0x34 // ‚a‚f‚Rƒ‰ƒCƒ“•ûŒü‚xÀ•W·•ª #define OFFSET_REG_BG3PD 0x36 // ‚a‚f‚R ‚’¼•ûŒü‚xÀ•W·•ª #define OFFSET_REG_BG3X 0x38 // ‚a‚f‚RƒXƒ^[ƒg‚wÀ•W #define OFFSET_REG_BG3Y 0x3c // ‚a‚f‚RƒXƒ^[ƒg‚xÀ•W #define OFFSET_REG_GXFIFO 0x400 // ƒWƒIƒƒgƒŠ‚e‚h‚e‚n #define OFFSET_REG_LISTRAM_COUNT 0x604 // ƒ|ƒŠƒSƒ“ƒŠƒXƒg‚q‚`‚lƒJƒEƒ“ƒ^ #define OFFSET_REG_VTXRAM_COUNT 0x606 // ’¸“_‚q‚`‚lƒJƒEƒ“ƒ^ #define OFFSET_REG_RDLINES_COUNT 0x320 // ƒŒƒ“ƒ_ƒŠƒ“ƒOς݃‰ƒCƒ“”ƒJƒEƒ“ƒ^ #define OFFSET_REG_SWAP_BUFFERS 0x540 // ƒŒƒ“ƒ_ƒŠƒ“ƒOƒGƒ“ƒWƒ“ŽQƃf[ƒ^ŒQ‚̃Xƒƒbƒv #define OFFSET_REG_VIEWPORT 0x580 // Ž‹ŠE #define OFFSET_REG_MTX_MODE 0x440 // s—ñƒ‚[ƒh #define OFFSET_REG_MTX_PUSH 0x444 // s—ñƒvƒbƒVƒ… #define OFFSET_REG_MTX_POP 0x448 // s—ñƒ|ƒbƒv #define OFFSET_REG_MTX_STORE 0x44c // s—ñƒXƒgƒA #define OFFSET_REG_MTX_RESTORE 0x450 // s—ñƒŠƒXƒgƒA #define OFFSET_REG_MTX_IDENTITY 0x454 // ’PˆÊs—ñ ‰Šú‰» #define OFFSET_REG_MTX_LOAD_4x4 0x458 // s—ñƒ[ƒhi‚S‚˜‚Sj #define OFFSET_REG_MTX_LOAD_4x3 0x45c // i‚S‚˜‚Rj #define OFFSET_REG_MTX_MULT_4x4 0x460 // s—ñæŽZ i‚S‚˜‚Sj #define OFFSET_REG_MTX_MULT_4x3 0x464 // i‚S‚˜‚Rj #define OFFSET_REG_MTX_MULT_3x3 0x468 // i‚R‚˜‚Rj #define OFFSET_REG_MTX_SCALE 0x46c // ƒXƒP[ƒ‹s—ñæŽZi‚P‚˜‚Rj #define OFFSET_REG_MTX_TRANS 0x470 // ˆÚ“®s—ñæŽZi‚P‚˜‚Rj #define OFFSET_REG_CLIPMTX_RESULT 0x640 // ƒJƒŒƒ“ƒgƒNƒŠƒbƒvÀ•Ws—ñ “ǂݞ‚Ý #define OFFSET_REG_VECMTX_RESULT 0x680 // ƒJƒŒƒ“ƒgƒxƒNƒgƒ‹s—ñ “ǂݞ‚Ý #define OFFSET_REG_LIGHT_VECTOR 0x4c8 // ƒ‰ƒCƒgƒxƒNƒgƒ‹ #define OFFSET_REG_LIGHT_COLOR 0x4cc // ƒ‰ƒCƒgƒJƒ‰[ #define OFFSET_REG_MATERIAL_COLOR 0x4c0 // ƒ}ƒeƒŠƒAƒ‹ƒJƒ‰[ #define OFFSET_REG_DIF_AMB 0x4c0 // ŠgŽUŒõ • ŠÂ‹«Œõ¬•ª #define OFFSET_REG_SPE_EMI 0x4c4 // ”½ŽËŒõ • •úŽËŒõ¬•ª #define OFFSET_REG_SHININESS 0x4d0 // ‹¾–Ê”½ŽË‹P“x #define OFFSET_REG_POLYGON_ATTR 0x4a4 // ƒ|ƒŠƒSƒ“‘®« #define OFFSET_REG_TEX_PARAM 0x4a8 // ƒeƒNƒXƒ`ƒƒƒpƒ‰ƒ[ƒ^ #define OFFSET_REG_TEXIMAGE_PARAM 0x4a8 #define OFFSET_REG_TEXPLTT_BASE 0x4ac #define OFFSET_REG_BEGIN_VTXS 0x500 // ’¸“_ƒŠƒXƒg ƒXƒ^[ƒg #define OFFSET_REG_END_VTXS 0x504 // ’¸“_ƒŠƒXƒg ƒGƒ“ƒh #define OFFSET_REG_COLOR 0x480 // ’¸“_ƒJƒ‰[ #define OFFSET_REG_NORMAL 0x484 // ’¸“_–@ü #define OFFSET_REG_TEXCOORD 0x488 // ’¸“_ƒeƒNƒXƒ`ƒƒÀ•W #define OFFSET_REG_VTX_16 0x48c // ’¸“_16bitÀ•W #define OFFSET_REG_VTX_10 0x490 // ’¸“_10bitÀ•W #define OFFSET_REG_VTX_XY 0x494 // ’¸“_16bitXYÀ•W #define OFFSET_REG_VTX_XZ 0x498 // ’¸“_16bitXZÀ•W #define OFFSET_REG_VTX_YZ 0x49c // ’¸“_16bitYZÀ•W #define OFFSET_REG_VTX_DIFF 0x4a0 // ’¸“_16bitÀ•W·•ª’l #define OFFSET_REG_BOX_TEST 0x5c0 // ƒ{ƒbƒNƒXƒeƒXƒg #define OFFSET_REG_POS_TEST 0x5c4 // ˆÊ’uƒeƒXƒg #define OFFSET_REG_VEC_TEST 0x5c8 // ƒxƒNƒgƒ‹ƒeƒXƒg #define OFFSET_REG_POS_RESULT 0x620 // ˆÊ’uƒeƒXƒgŒ‹‰Ê #define OFFSET_REG_VEC_RESULT 0x630 // ƒxƒNƒgƒ‹ƒeƒXƒgŒ‹‰Ê #define OFFSET_REG_CLEAR_COLOR_ATTR 0x350 // ƒJƒ‰[•‘®«ƒoƒbƒtƒ@ ƒNƒŠƒA’l #define OFFSET_REG_CLEAR_DEPTH 0x354 // ‚yƒoƒbƒtƒ@ ƒNƒŠƒA’l #define OFFSET_REG_CLRIMAGE_OFFSET 0x356 // ƒNƒŠƒAƒCƒ[ƒW ƒIƒtƒZƒbƒg #define OFFSET_REG_EDGE_COLOR 0x330 // ƒGƒbƒWƒJƒ‰[ #define OFFSET_REG_FOG_COLOR 0x358 // ƒtƒHƒO ƒJƒ‰[ #define OFFSET_REG_FOG_OFFSET 0x35c // ƒtƒHƒO ƒIƒtƒZƒbƒg #define OFFSET_REG_FOG_TABLE 0x360 // ƒtƒHƒO”Z“xƒe[ƒuƒ‹ #define OFFSET_REG_TOON_TABLE 0x380 // ƒgƒD[ƒ“ƒVƒF[ƒfƒBƒ“ƒOEƒe[ƒuƒ‹ #define OFFSET_REG_ALPHA_TEST_REF 0x340 // ƒAƒ‹ƒtƒ@ƒeƒXƒgŽQÆ’l #define OFFSET_REG_DISP_1DOT_DEPTH 0x610 // ‚Pƒhƒbƒgƒ|ƒŠƒSƒ“•`‰æŠJŽn‚y’l #define OFFSET_REG_DMA0 0xb0 // ‚c‚l‚`‚O #define OFFSET_REG_DMA0SAD 0xb0 #define OFFSET_REG_DMA0DAD 0xb4 #define OFFSET_REG_DMA0CNT 0xb8 #define OFFSET_REG_DMA0CNT_L 0xb8 #define OFFSET_REG_DMA0CNT_H 0xba #define OFFSET_REG_DMA1 0xbc // ‚c‚l‚`‚P #define OFFSET_REG_DMA1SAD 0xbc #define OFFSET_REG_DMA1DAD 0xc0 #define OFFSET_REG_DMA1CNT 0xc4 #define OFFSET_REG_DMA1CNT_L 0xc4 #define OFFSET_REG_DMA1CNT_H 0xc6 #define OFFSET_REG_DMA2 0xc8 // ‚c‚l‚`‚Q #define OFFSET_REG_DMA2SAD 0xc8 #define OFFSET_REG_DMA2DAD 0xcc #define OFFSET_REG_DMA2CNT 0xd0 #define OFFSET_REG_DMA2CNT_L 0xd0 #define OFFSET_REG_DMA2CNT_H 0xd2 #define OFFSET_REG_DMA3 0xd4 // ‚c‚l‚`‚R #define OFFSET_REG_DMA3SAD 0xd4 #define OFFSET_REG_DMA3DAD 0xd8 #define OFFSET_REG_DMA3CNT 0xdc #define OFFSET_REG_DMA3CNT_L 0xdc #ifdef IRIS_TS #define OFFSET_REG_DMA0_CLR_DATA 0xe0 // ‚c‚l‚` ƒNƒŠƒAƒf[ƒ^ #define OFFSET_REG_DMA1_CLR_DATA 0xe4 #define OFFSET_REG_DMA2_CLR_DATA 0xe8 #define OFFSET_REG_DMA3_CLR_DATA 0xec #endif #define OFFSET_REG_TM0CNT 0x100 // ƒ^ƒCƒ}[‚O #define OFFSET_REG_TM0CNT_L 0x100 #define OFFSET_REG_TM0CNT_H 0x102 #define OFFSET_REG_TM1CNT 0x104 // ƒ^ƒCƒ}[‚P #define OFFSET_REG_TM1CNT_L 0x104 #define OFFSET_REG_TM1CNT_H 0x106 #define OFFSET_REG_TM2CNT 0x108 // ƒ^ƒCƒ}[‚Q #define OFFSET_REG_TM2CNT_L 0x108 #define OFFSET_REG_TM2CNT_H 0x10a #define OFFSET_REG_TM3CNT 0x10c // ƒ^ƒCƒ}[‚R #define OFFSET_REG_TM3CNT_L 0x10c #define OFFSET_REG_TM3CNT_H 0x10e #define OFFSET_REG_KEYINPUT 0x130 // ƒL[“ü—Í #define OFFSET_REG_KEYCNT 0x132 // ƒL[ƒRƒ“ƒgƒ[ƒ‹ #define OFFSET_REG_R0CNT 0x134 // ”Ä—pƒ|[ƒg‚O #define OFFSET_REG_R1CNT 0x138 // ‚P #ifdef __cplusplus } // extern "C" #endif #endif // _IRIS_MEMORY_MAP_H