Files
ox/src/core/gba/addresses.hpp
T

49 lines
1.6 KiB
C++

/*
* Copyright 2016-2017 gtalent2@gmail.com
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#pragma once
#include <ox/std/types.hpp>
/////////////////////////////////////////////////////////////////
// I/O Registers
#define REG_DISPCNT *((volatile uint32_t*) 0x04000000)
/////////////////////////////////////////////////////////////////
// background registers
// background control registers
#define REG_BG0CNT *((volatile uint32_t*) 0x04000008)
#define REG_BG1CNT *((volatile uint32_t*) 0x0400000a)
#define REG_BG2CNT *((volatile uint32_t*) 0x0400000c)
#define REG_BG3CNT *((volatile uint32_t*) 0x0400000e)
// background horizontal scrolling registers
#define REG_BG0HOFS *((volatile uint32_t*) 0x04000010)
#define REG_BG1HOFS *((volatile uint32_t*) 0x04000014)
#define REG_BG2HOFS *((volatile uint32_t*) 0x04000018)
#define REG_BG3HOFS *((volatile uint32_t*) 0x0400001c)
// background vertical scrolling registers
#define REG_BG0VOFS *((volatile uint32_t*) 0x04000012)
#define REG_BG1VOFS *((volatile uint32_t*) 0x04000016)
#define REG_BG2VOFS *((volatile uint32_t*) 0x0400001a)
#define REG_BG3VOFS *((volatile uint32_t*) 0x0400001e)
/////////////////////////////////////////////////////////////////
// Memory Addresses
#define MEM_PALLETE_BG *((unsigned short*) 0x05000000)
#define MEM_PALLETE_SPRITE *((unsigned short*) 0x05000200)
typedef uint16_t BgMapTile[1024];
#define MEM_BG_MAP ((BgMapTile*) 0x06000000)
#define MEM_ROM *((uint8_t*) 0x08000000)