/* * Copyright 2016 - 2020 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 ///////////////////////////////////////////////////////////////// // Interrupt Handler using interrupt_handler = void (*)(void); #define REG_ISR *reinterpret_cast(0x03007FFC) #define REG_IE *reinterpret_cast(0x04000200) #define REG_IF *reinterpret_cast(0x04000202) #define REG_IME *reinterpret_cast(0x04000208) ///////////////////////////////////////////////////////////////// // Display Registers #define REG_DISPCNT *reinterpret_cast(0x04000000) #define REG_DISPSTAT *reinterpret_cast(0x04000004) #define REG_VCOUNT *reinterpret_cast(0x04000006) ///////////////////////////////////////////////////////////////// // background registers // background control registers #define REG_BG0CNT *reinterpret_cast(0x04000008) #define REG_BG1CNT *reinterpret_cast(0x0400000a) #define REG_BG2CNT *reinterpret_cast(0x0400000c) #define REG_BG3CNT *reinterpret_cast(0x0400000e) // background horizontal scrolling registers #define REG_BG0HOFS *reinterpret_cast(0x04000010) #define REG_BG1HOFS *reinterpret_cast(0x04000014) #define REG_BG2HOFS *reinterpret_cast(0x04000018) #define REG_BG3HOFS *reinterpret_cast(0x0400001c) // background vertical scrolling registers #define REG_BG0VOFS *reinterpret_cast(0x04000012) #define REG_BG1VOFS *reinterpret_cast(0x04000016) #define REG_BG2VOFS *reinterpret_cast(0x0400001a) #define REG_BG3VOFS *reinterpret_cast(0x0400001e) ///////////////////////////////////////////////////////////////// // Memory Addresses #define MEM_EWRAM_BEGIN reinterpret_cast(0x02000000) #define MEM_EWRAM_END reinterpret_cast(0x0203FFFF) #define MEM_IWRAM_BEGIN reinterpret_cast(0x03000000) #define MEM_IWRAM_END reinterpret_cast(0x03007FFF) #define MEM_BG_PALETTE reinterpret_cast(0x05000000) #define MEM_SPRITE_PALETTE reinterpret_cast(0x05000200) typedef uint16_t BgMapTile[1024]; #define MEM_BG_TILES reinterpret_cast(0x06000000) #define MEM_BG_MAP reinterpret_cast(0x0600e000) #define MEM_SPRITE_TILES reinterpret_cast(0x06010000) #define MEM_OAM reinterpret_cast(0x07000000) #define MEM_ROM reinterpret_cast(0x08000000)