summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/nds/libnds/include/nds/registers_alt.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-04-16 18:37:33 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-04-16 18:37:33 +0000
commit311dfa65d823ebb1448a12e9a24d09c7ca7a9e2a (patch)
tree47eaf22ca7bb8cc68486ffe964abd54b535902ad /c/src/lib/libbsp/arm/nds/libnds/include/nds/registers_alt.h
parent2008-04-16 Matthieu Bucchianeri <mbucchia@gmail.com> (diff)
downloadrtems-311dfa65d823ebb1448a12e9a24d09c7ca7a9e2a.tar.bz2
2008-04-16 Matthieu Bucchianeri <mbucchia@gmail.com>
* ChangeLog, Makefile.am, README, bsp_specs, configure.ac, mk_libnds.sh, patch.libnds, preinstall.am, block/block.c, clock/clock.c, console/console.c, coproc/coproc.S, coproc/coproc.c, coproc/coproc.ld, dswifi/dswifi_license.txt, dswifi/makefile, dswifi/arm7/makefile, dswifi/arm7/source/wifi_arm7.c, dswifi/arm7/source/wifi_arm7.h, dswifi/arm9/makefile, dswifi/arm9/source/sgIP.c, dswifi/arm9/source/sgIP.h, dswifi/arm9/source/sgIP_ARP.c, dswifi/arm9/source/sgIP_ARP.h, dswifi/arm9/source/sgIP_Config.h, dswifi/arm9/source/sgIP_DHCP.c, dswifi/arm9/source/sgIP_DHCP.h, dswifi/arm9/source/sgIP_DNS.c, dswifi/arm9/source/sgIP_DNS.h, dswifi/arm9/source/sgIP_Hub.c, dswifi/arm9/source/sgIP_Hub.h, dswifi/arm9/source/sgIP_ICMP.c, dswifi/arm9/source/sgIP_ICMP.h, dswifi/arm9/source/sgIP_IP.c, dswifi/arm9/source/sgIP_IP.h, dswifi/arm9/source/sgIP_TCP.c, dswifi/arm9/source/sgIP_TCP.h, dswifi/arm9/source/sgIP_UDP.c, dswifi/arm9/source/sgIP_UDP.h, dswifi/arm9/source/sgIP_memblock.c, dswifi/arm9/source/sgIP_memblock.h, dswifi/arm9/source/sgIP_sockets.c, dswifi/arm9/source/sgIP_sockets.h, dswifi/arm9/source/wifi_arm9.c, dswifi/arm9/source/wifi_arm9.h, dswifi/common/source/dsregs.h, dswifi/common/source/spinlock.h, dswifi/common/source/spinlock.s, dswifi/common/source/wifi_shared.h, dswifi/include/dswifi7.h, dswifi/include/dswifi9.h, dswifi/include/dswifi_version.h, dswifi/include/netdb.h, dswifi/include/sgIP_errno.h, dswifi/include/netinet/in.h, fb/fb.c, fb/fb.h, include/bsp.h, include/my_ipc.h, include/tm27.h, include/types.h, include/sys/iosupport.h, irq/irq.c, irq/irq.h, libfat/gba/include/fat.h, libfat/include/fat.h, libfat/nds/include/fat.h, libfat/source/bit_ops.h, libfat/source/cache.c, libfat/source/cache.h, libfat/source/common.h, libfat/source/directory.c, libfat/source/directory.h, libfat/source/fatdir.c, libfat/source/fatdir.h, libfat/source/fatfile.c, libfat/source/fatfile.h, libfat/source/file_allocation_table.c, libfat/source/file_allocation_table.h, libfat/source/filetime.c, libfat/source/filetime.h, libfat/source/libfat.c, libfat/source/mem_allocate.h, libfat/source/partition.c, libfat/source/partition.h, libfat/source/disc_io/disc.c, libfat/source/disc_io/disc.h, libfat/source/disc_io/disc_io.h, libfat/source/disc_io/io_cf_common.c, libfat/source/disc_io/io_cf_common.h, libfat/source/disc_io/io_dldi.h, libfat/source/disc_io/io_dldi.s, libfat/source/disc_io/io_efa2.c, libfat/source/disc_io/io_efa2.h, libfat/source/disc_io/io_fcsr.c, libfat/source/disc_io/io_fcsr.h, libfat/source/disc_io/io_m3_common.c, libfat/source/disc_io/io_m3_common.h, libfat/source/disc_io/io_m3cf.c, libfat/source/disc_io/io_m3cf.h, libfat/source/disc_io/io_m3sd.c, libfat/source/disc_io/io_m3sd.h, libfat/source/disc_io/io_mpcf.c, libfat/source/disc_io/io_mpcf.h, libfat/source/disc_io/io_njsd.c, libfat/source/disc_io/io_njsd.h, libfat/source/disc_io/io_nmmc.c, libfat/source/disc_io/io_nmmc.h, libfat/source/disc_io/io_sc_common.c, libfat/source/disc_io/io_sc_common.h, libfat/source/disc_io/io_sccf.c, libfat/source/disc_io/io_sccf.h, libfat/source/disc_io/io_scsd.c, libfat/source/disc_io/io_scsd.h, libfat/source/disc_io/io_scsd_s.s, libfat/source/disc_io/io_sd_common.c, libfat/source/disc_io/io_sd_common.h, libnds/Makefile.arm7, libnds/Makefile.arm9, libnds/libnds_license.txt, libnds/basicARM7/source/defaultARM7.c, libnds/include/default_font_bin.h, libnds/include/gbfs.h, libnds/include/nds.h, libnds/include/nds/bios.h, libnds/include/nds/card.h, libnds/include/nds/dma.h, libnds/include/nds/interrupts.h, libnds/include/nds/ipc.h, libnds/include/nds/jtypes.h, libnds/include/nds/memory.h, libnds/include/nds/registers_alt.h, libnds/include/nds/reload.h, libnds/include/nds/system.h, libnds/include/nds/timers.h, libnds/include/nds/arm7/audio.h, libnds/include/nds/arm7/clock.h, libnds/include/nds/arm7/serial.h, libnds/include/nds/arm7/touch.h, libnds/include/nds/arm9/background.h, libnds/include/nds/arm9/boxtest.h, libnds/include/nds/arm9/cache.h, libnds/include/nds/arm9/console.h, libnds/include/nds/arm9/exceptions.h, libnds/include/nds/arm9/image.h, libnds/include/nds/arm9/input.h, libnds/include/nds/arm9/math.h, libnds/include/nds/arm9/ndsmotion.h, libnds/include/nds/arm9/pcx.h, libnds/include/nds/arm9/postest.h, libnds/include/nds/arm9/rumble.h, libnds/include/nds/arm9/sound.h, libnds/include/nds/arm9/sprite.h, libnds/include/nds/arm9/trig_lut.h, libnds/include/nds/arm9/video.h, libnds/include/nds/arm9/videoGL.h, libnds/source/arm7/audio.c, libnds/source/arm7/clock.c, libnds/source/arm7/microphone.c, libnds/source/arm7/spi.c, libnds/source/arm7/touch.c, libnds/source/arm7/userSettings.c, libnds/source/arm9/COS.bin, libnds/source/arm9/COS.s, libnds/source/arm9/SIN.bin, libnds/source/arm9/SIN.s, libnds/source/arm9/TAN.bin, libnds/source/arm9/TAN.s, libnds/source/arm9/boxtest.c, libnds/source/arm9/console.c, libnds/source/arm9/dcache.s, libnds/source/arm9/default_font.bin, libnds/source/arm9/default_font.s, libnds/source/arm9/exceptionHandler.S, libnds/source/arm9/exceptionHandler.s, libnds/source/arm9/exceptions.c, libnds/source/arm9/gurumeditation.c, libnds/source/arm9/icache.s, libnds/source/arm9/image.c, libnds/source/arm9/initSystem.c, libnds/source/arm9/keys.c, libnds/source/arm9/ndsmotion.c, libnds/source/arm9/pcx.c, libnds/source/arm9/rumble.c, libnds/source/arm9/sound.c, libnds/source/arm9/system.c, libnds/source/arm9/touch.c, libnds/source/arm9/video.c, libnds/source/arm9/videoGL.c, libnds/source/common/biosCalls.s, libnds/source/common/card.c, libnds/source/common/gbfs.c, libnds/source/common/interruptDispatcher.s, libnds/source/common/interrupts.c, rtc/rtc.c, sound/sound.c, sound/sound.h, start/start.S, startup/linkcmds, startup/start.c, timer/timer.c, tools/Makefile.am, tools/bin2s, tools/bin2s.c, tools/configure.ac, tools/runtest, tools/ndstool/include/arm7_sha1_homebrew.h, tools/ndstool/include/arm7_sha1_nintendo.h, tools/ndstool/include/banner.h, tools/ndstool/include/bigint.h, tools/ndstool/include/crc.h, tools/ndstool/include/default_icon.h, tools/ndstool/include/encryption.h, tools/ndstool/include/header.h, tools/ndstool/include/hook.h, tools/ndstool/include/little.h, tools/ndstool/include/loadme.h, tools/ndstool/include/logo.h, tools/ndstool/include/ndscreate.h, tools/ndstool/include/ndsextract.h, tools/ndstool/include/ndstool.h, tools/ndstool/include/ndstree.h, tools/ndstool/include/overlay.h, tools/ndstool/include/passme.h, tools/ndstool/include/passme_sram.h, tools/ndstool/include/passme_vhd1.h, tools/ndstool/include/passme_vhd2.h, tools/ndstool/include/raster.h, tools/ndstool/include/sha1.h, tools/ndstool/include/types.h, tools/ndstool/source/arm7_sha1_homebrew.c, tools/ndstool/source/arm7_sha1_nintendo.c, tools/ndstool/source/banner.cpp, tools/ndstool/source/bigint.cpp, tools/ndstool/source/compile_date.c, tools/ndstool/source/crc.cpp, tools/ndstool/source/default_icon.c, tools/ndstool/source/encryption.cpp, tools/ndstool/source/header.cpp, tools/ndstool/source/hook.cpp, tools/ndstool/source/loadme.c, tools/ndstool/source/logo.cpp, tools/ndstool/source/ndscodes.cpp, tools/ndstool/source/ndscreate.cpp, tools/ndstool/source/ndsextract.cpp, tools/ndstool/source/ndstool.cpp, tools/ndstool/source/ndstree.cpp, tools/ndstool/source/passme.cpp, tools/ndstool/source/passme_sram.c, tools/ndstool/source/raster.cpp, tools/ndstool/source/sha1.cpp, touchscreen/README.reco, touchscreen/parser.c, touchscreen/reco.c, touchscreen/reco.h, touchscreen/touchscreen.c, touchscreen/touchscreen.h, wifi/compat.c, wifi/compat.h, wifi/wifi.c: New files.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/arm/nds/libnds/include/nds/registers_alt.h313
1 files changed, 313 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/nds/libnds/include/nds/registers_alt.h b/c/src/lib/libbsp/arm/nds/libnds/include/nds/registers_alt.h
new file mode 100644
index 0000000000..7c8316c89d
--- /dev/null
+++ b/c/src/lib/libbsp/arm/nds/libnds/include/nds/registers_alt.h
@@ -0,0 +1,313 @@
+/*---------------------------------------------------------------------------------
+ $Id$
+
+ Copyright (C) 2005
+ Michael Noland (joat)
+ Jason Rogers (dovoto)
+ Dave Murphy (WinterMute)
+ Chris Double (doublec)
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any
+ damages arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any
+ purpose, including commercial applications, and to alter it and
+ redistribute it freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you
+ must not claim that you wrote the original software. If you use
+ this software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and
+ must not be misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source
+ distribution.
+
+---------------------------------------------------------------------------------*/
+
+/*
+ This file should be deprecated.
+
+ All hardware register defines should be replaced with REG_ for consistency and namespacing
+
+ http://forum.gbadev.org/viewtopic.php?t=4993
+
+*/
+#ifndef NDS_REGISTERS_H
+#define NDS_REGISTERS_H
+
+
+#include <nds/jtypes.h>
+
+
+#define REG_DISPCNT (*(vu32*)0x4000000)
+
+#ifdef ARM9
+#define WAIT_CR REG_EXMEMCNT
+#else
+#define WAIT_CR REG_EXMEMSTAT
+#endif
+
+#define DISP_SR REG_DISPSTAT
+#define DISP_Y REG_VCOUNT
+
+#define REG_BGCTRL ( (vu16*)0x4000008)
+#define REG_BG0CNT (*(vu16*)0x4000008)
+#define REG_BG1CNT (*(vu16*)0x400000A)
+#define REG_BG2CNT (*(vu16*)0x400000C)
+#define REG_BG3CNT (*(vu16*)0x400000E)
+
+#define REG_BGOFFSETS ( (vu16*)0x4000010)
+#define REG_BG0HOFS (*(vu16*)0x4000010)
+#define REG_BG0VOFS (*(vu16*)0x4000012)
+#define REG_BG1HOFS (*(vu16*)0x4000014)
+#define REG_BG1VOFS (*(vu16*)0x4000016)
+#define REG_BG2HOFS (*(vu16*)0x4000018)
+#define REG_BG2VOFS (*(vu16*)0x400001A)
+#define REG_BG3HOFS (*(vu16*)0x400001C)
+#define REG_BG3VOFS (*(vu16*)0x400001E)
+
+#define REG_BG2PA (*(vu16*)0x4000020)
+#define REG_BG2PB (*(vu16*)0x4000022)
+#define REG_BG2PC (*(vu16*)0x4000024)
+#define REG_BG2PD (*(vu16*)0x4000026)
+
+#define REG_BG2X (*(vu32*)0x4000028)
+#define REG_BG2X_L (*(vu16*)0x4000028)
+#define REG_BG2X_H (*(vu16*)0x400002A)
+
+#define REG_BG2Y (*(vu32*)0x400002C)
+#define REG_BG2Y_L (*(vu16*)0x400002C)
+#define REG_BG2Y_H (*(vu16*)0x400002E)
+
+#define REG_BG3PA (*(vu16*)0x4000030)
+#define REG_BG3PB (*(vu16*)0x4000032)
+#define REG_BG3PC (*(vu16*)0x4000034)
+#define REG_BG3PD (*(vu16*)0x4000036)
+
+#define REG_BG3X (*(vu32*)0x4000038)
+#define REG_BG3X_L (*(vu16*)0x4000038)
+#define REG_BG3X_H (*(vu16*)0x400003A)
+#define REG_BG3Y (*(vu32*)0x400003C)
+#define REG_BG3Y_L (*(vu16*)0x400003C)
+#define REG_BG3Y_H (*(vu16*)0x400003E)
+
+#define REG_WIN0H (*(vu16*)0x4000040)
+#define REG_WIN1H (*(vu16*)0x4000042)
+#define REG_WIN0V (*(vu16*)0x4000044)
+#define REG_WIN1V (*(vu16*)0x4000046)
+#define REG_WININ (*(vu16*)0x4000048)
+#define REG_WINOUT (*(vu16*)0x400004A)
+
+#define REG_MOSAIC (*(vu32*)0x400004C)
+#define REG_MOSAIC_L (*(vu32*)0x400004C)
+#define REG_MOSAIC_H (*(vu32*)0x400004E)
+
+#define REG_BLDMOD (*(vu16*)0x4000050)
+#define REG_COLV (*(vu16*)0x4000052)
+#define REG_COLY (*(vu16*)0x4000054)
+
+#define SERIAL_CR REG_SPICNT
+#define SERIAL_DATA REG_SPIDATA
+#define SIO_CR REG_SIOCNT
+#define R_CR REG_RCNT
+
+#define DISP_CAPTURE REG_DISPCAPCNT
+
+
+/* secondary screen */
+#define REG_DISPCNT_SUB (*(vu32*)0x4001000)
+#define REG_BGCTRL_SUB ( (vu16*)0x4001008)
+#define REG_BG0CNT_SUB (*(vu16*)0x4001008)
+#define REG_BG1CNT_SUB (*(vu16*)0x400100A)
+#define REG_BG2CNT_SUB (*(vu16*)0x400100C)
+#define REG_BG3CNT_SUB (*(vu16*)0x400100E)
+
+#define REG_BGOFFSETS_SUB ( (vu16*)0x4001010)
+#define REG_BG0HOFS_SUB (*(vu16*)0x4001010)
+#define REG_BG0VOFS_SUB (*(vu16*)0x4001012)
+#define REG_BG1HOFS_SUB (*(vu16*)0x4001014)
+#define REG_BG1VOFS_SUB (*(vu16*)0x4001016)
+#define REG_BG2HOFS_SUB (*(vu16*)0x4001018)
+#define REG_BG2VOFS_SUB (*(vu16*)0x400101A)
+#define REG_BG3HOFS_SUB (*(vu16*)0x400101C)
+#define REG_BG3VOFS_SUB (*(vu16*)0x400101E)
+
+#define REG_BG2PA_SUB (*(vu16*)0x4001020)
+#define REG_BG2PB_SUB (*(vu16*)0x4001022)
+#define REG_BG2PC_SUB (*(vu16*)0x4001024)
+#define REG_BG2PD_SUB (*(vu16*)0x4001026)
+
+#define REG_BG2X_SUB (*(vu32*)0x4001028)
+#define REG_BG2Y_SUB (*(vu32*)0x400102C)
+
+#define REG_BG3PA_SUB (*(vu16*)0x4001030)
+#define REG_BG3PB_SUB (*(vu16*)0x4001032)
+#define REG_BG3PC_SUB (*(vu16*)0x4001034)
+#define REG_BG3PD_SUB (*(vu16*)0x4001036)
+
+#define REG_BG3X_SUB (*(vu32*)0x4001038)
+#define REG_BG3X_L_SUB (*(vu16*)0x4001038)
+#define REG_BG3X_H_SUB (*(vu16*)0x400103A)
+#define REG_BG3Y_SUB (*(vu32*)0x400103C)
+#define REG_BG3Y_L_SUB (*(vu16*)0x400103C)
+#define REG_BG3Y_H_SUB (*(vu16*)0x400103E)
+
+#define REG_WIN0H_SUB (*(vu16*)0x4001040)
+#define REG_WIN1H_SUB (*(vu16*)0x4001042)
+#define REG_WIN0V_SUB (*(vu16*)0x4001044)
+#define REG_WIN1V_SUB (*(vu16*)0x4001046)
+#define REG_WININ_SUB (*(vu16*)0x4001048)
+#define REG_WINOUT_SUB (*(vu16*)0x400104A)
+
+#define REG_MOSAIC_SUB (*(vu32*)0x400104C)
+#define REG_MOSAIC_L_SUB (*(vu32*)0x400104C)
+#define REG_MOSAIC_H_SUB (*(vu32*)0x400104E)
+
+#define REG_BLDMOD_SUB (*(vu16*)0x4001050)
+#define REG_COLV_SUB (*(vu16*)0x4001052)
+#define REG_COLY_SUB (*(vu16*)0x4001054)
+
+/*common*/
+#define REG_DMA ( (vu32*)0x40000B0)
+
+#define REG_DMA0SAD (*(vu32*)0x40000B0)
+#define REG_DMA0SAD_L (*(vu16*)0x40000B0)
+#define REG_DMA0SAD_H (*(vu16*)0x40000B2)
+#define REG_DMA0DAD (*(vu32*)0x40000B4)
+#define REG_DMA0DAD_L (*(vu16*)0x40000B4)
+#define REG_DMA0DAD_H (*(vu16*)0x40000B6)
+#define REG_DMA0CNT (*(vu32*)0x40000B8)
+#define REG_DMA0CNT_L (*(vu16*)0x40000B8)
+#define REG_DMA0CNT_H (*(vu16*)0x40000BA)
+
+#define REG_DMA1SAD (*(vu32*)0x40000BC)
+#define REG_DMA1SAD_L (*(vu16*)0x40000BC)
+#define REG_DMA1SAD_H (*(vu16*)0x40000BE)
+#define REG_DMA1DAD (*(vu32*)0x40000C0)
+#define REG_DMA1DAD_L (*(vu16*)0x40000C0)
+#define REG_DMA1DAD_H (*(vu16*)0x40000C2)
+#define REG_DMA1CNT (*(vu32*)0x40000C4)
+#define REG_DMA1CNT_L (*(vu16*)0x40000C4)
+#define REG_DMA1CNT_H (*(vu16*)0x40000C6)
+
+#define REG_DMA2SAD (*(vu32*)0x40000C8)
+#define REG_DMA2SAD_L (*(vu16*)0x40000C8)
+#define REG_DMA2SAD_H (*(vu16*)0x40000CA)
+#define REG_DMA2DAD (*(vu32*)0x40000CC)
+#define REG_DMA2DAD_L (*(vu16*)0x40000CC)
+#define REG_DMA2DAD_H (*(vu16*)0x40000CE)
+#define REG_DMA2CNT (*(vu32*)0x40000D0)
+#define REG_DMA2CNT_L (*(vu16*)0x40000D0)
+#define REG_DMA2CNT_H (*(vu16*)0x40000D2)
+
+#define REG_DMA3SAD (*(vu32*)0x40000D4)
+#define REG_DMA3SAD_L (*(vu16*)0x40000D4)
+#define REG_DMA3SAD_H (*(vu16*)0x40000D6)
+#define REG_DMA3DAD (*(vu32*)0x40000D8)
+#define REG_DMA3DAD_L (*(vu16*)0x40000D8)
+#define REG_DMA3DAD_H (*(vu16*)0x40000DA)
+#define REG_DMA3CNT (*(vu32*)0x40000DC)
+#define REG_DMA3CNT_L (*(vu16*)0x40000DC)
+#define REG_DMA3CNT_H (*(vu16*)0x40000DE)
+
+#define REG_TIME ( (vu16*)0x4000100)
+#define REG_TM0D (*(vu16*)0x4000100)
+#define REG_TM0CNT (*(vu16*)0x4000102)
+#define REG_TM1D (*(vu16*)0x4000106)
+#define REG_TM2D (*(vu16*)0x4000108)
+#define REG_TM2CNT (*(vu16*)0x400010A)
+#define REG_TM3D (*(vu16*)0x400010C)
+#define REG_TM3CNT (*(vu16*)0x400010E)
+
+
+#define REG_SIOCNT (*(vu16*)0x4000128)
+#define REG_SIOMLT_SEND (*(vu16*)0x400012A)
+
+#define KEYS REG_KEYINPUT
+#define KEYS_CR REG_KEYCNT
+//???
+#define REG_RCNT (*(vu16*)0x4000134)
+#define REG_HS_CTRL (*(vu16*)0x4000140)
+
+/* Interupt enable registers */
+#define IE REG_IE
+#define IF REG_IF
+#define IME REG_IME
+
+/*controls power 0x30f is all on */
+#define POWER_CR REG_POWERCNT
+
+/* ram controllers 0x8 is enabled, other bits have to do with mapping */
+#define REG_VRAM_A_CR (*(vu8*) 0x4000240)
+#define REG_VRAM_B_CR (*(vu8*) 0x4000241)
+#define REG_VRAM_C_CR (*(vu8*) 0x4000242)
+#define REG_VRAM_D_CR (*(vu8*) 0x4000243)
+#define REG_VRAM_E_CR (*(vu8*) 0x4000244)
+#define REG_VRAM_F_CR (*(vu8*) 0x4000245)
+#define REG_VRAM_G_CR (*(vu8*) 0x4000246)
+#define REG_VRAM_H_CR (*(vu8*) 0x4000248)
+#define REG_VRAM_I_CR (*(vu8*) 0x4000249)
+#define REG_WRAM_CNT (*(vu8*) 0x4000247)
+
+
+
+
+/*3D graphics suff*/
+#define REG_GFX_FIFO (*(vu32*) 0x4000400)
+#define REG_GFX_STATUS (*(vu32*) 0x4000600)
+#define REG_GFX_CONTROL (*(vu16*) 0x4000060)
+#define REG_COLOR (*(vu32*) 0x4000480)
+#define REG_VERTEX16 (*(vu32*) 0x400048C)
+#define REG_TEXT_COORD (*(vu32*) 0x4000488)
+#define REG_TEXT_FORMAT (*(vu32*) 0x40004A8)
+
+
+#define REG_CLEAR_COLOR (*(vu32*) 0x4000350)
+#define REG_CLEAR_DEPTH (*(vu16*) 0x4000354)
+
+#define REG_LIGHT_VECTOR (*(vu32*) 0x40004C8)
+#define REG_LIGHT_COLOR (*(vu32*) 0x40004CC)
+#define REG_NORMAL (*(vu32*) 0x4000484)
+
+#define REG_DIFFUSE_AMBIENT (*(vu32*) 0x40004C0)
+#define REG_SPECULAR_EMISSION (*(vu32*) 0x40004C4)
+#define REG_SHININESS (*(vu32*) 0x40004D0)
+
+#define REG_POLY_FORMAT (*(vu32*) 0x40004A4)
+
+#define REG_GFX_BEGIN (*(vu32*) 0x4000500)
+#define REG_GFX_END (*(vu32*) 0x4000504)
+#define REG_GFX_FLUSH (*(vu32*) 0x4000540)
+#define REG_GFX_VIEWPORT (*(vu32*) 0x4000580)
+
+#define REG_MTX_CONTROL (*(vu32*) 0x4000440)
+#define REG_MTX_PUSH (*(vu32*) 0x4000444)
+#define REG_MTX_POP (*(vu32*) 0x4000448)
+#define REG_MTX_SCALE (*(vint32*) 0x400046C)
+#define REG_MTX_TRANSLATE (*(vint32*) 0x4000470)
+#define REG_MTX_RESTORE (*(vu32*) 0x4000450)
+#define REG_MTX_STORE (*(vu32*) 0x400044C)
+#define REG_MTX_IDENTITY (*(vu32*) 0x4000454)
+#define REG_MTX_LOAD4x4 (*(volatile f32*) 0x4000458)
+#define REG_MTX_LOAD4x3 (*(volatile f32*) 0x400045C)
+#define REG_MTX_MULT4x4 (*(volatile f32*) 0x4000460)
+#define REG_MTX_MULT4x3 (*(volatile f32*) 0x4000464)
+#define REG_MTX_MULT3x3 (*(volatile f32*) 0x4000468)
+
+// Card bus
+
+#define REG_CARD_CR1 (*(vu32*)0x040001A0)
+#define REG_CARD_CR1H (*(vu8*)0x040001A1)
+#define REG_CARD_CR2 (*(vu32*)0x040001A4)
+#define REG_CARD_COMMAND ((vu8*)0x040001A8)
+
+#define REG_CARD_DATA (*(vu32*)0x04100000)
+#define REG_CARD_DATA_RD (*(vu32*)0x04100010)
+
+#define REG_CARD_1B0 (*(vu32*)0x040001B0)
+#define REG_CARD_1B4 (*(vu32*)0x040001B4)
+#define REG_CARD_1B8 (*(vu16*)0x040001B8)
+#define REG_CARD_1BA (*(vu16*)0x040001BA)
+#endif