GBA_MultiMenu/source/main.h

79 lines
1.7 KiB
C

/*
GBA Multi Game Menu
Author: Lesserkuma (github.com/lesserkuma)
*/
#ifndef MAIN_H_
#define MAIN_H_
#include "bg.h"
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;
typedef uint8_t BOOL;
#define FALSE 0
#define TRUE 1
#define AGB_ROM (volatile void *)0x8000000
#define AGB_PRAM (volatile void *)0x5000000
#define AGB_VRAM (volatile void *)0x6000000
#define AGB_SRAM (volatile void *)0xE000000
#define MAPPER_CONFIG1 (volatile void *)0xE000002
#define MAPPER_CONFIG2 (volatile void *)0xE000003
#define MAPPER_CONFIG3 (volatile void *)0xE000004
#define MAPPER_CONFIG4 (volatile void *)0xE000005
#define SRAM_SIZE 64 * 1024
#define SCREEN_WIDTH 240
#define SCREEN_HEIGHT 160
#define SCREEN_MARGIN_RIGHT 7
#define V5bit(x) ((x) >> 3)
#define RGB555(r, g, b) ((V5bit(r) << 0) | (V5bit(g) << 5) | (V5bit(b) << 10) | (((1) & 1) << 15))
#define RGB555_CLEAR 0
#define RGB555_BLACK RGB555(0x00, 0x00, 0x00)
#define RGB555_WHITE RGB555(0xFF, 0xFF, 0xFF)
#define RGB555_RED RGB555(0xFF, 0x00, 0x00)
#define RGB555_GREEN RGB555(0x00, 0xFF, 0x00)
#define RGB555_BLUE RGB555(0x00, 0x00, 0xFF)
#define RGB555_PURPLE RGB555(0xFF, 0x00, 0xFF)
#define RGB555_YELLOW RGB555(0xFF, 0xFF, 0x00)
#define RGB555_GREY RGB555(0x7F, 0x7F, 0x7F)
#define RGB555_MILK RGB555(0x94, 0x94, 0x94)
#define _DIV_CEIL(a, b) ((a / b) + ((a % b) != 0))
typedef enum u8
{
SRAM_NONE,
SRAM_256K,
SRAM_512K,
SRAM_1M
} SAVE_TYPE;
typedef struct ItemConfig_
{
u8 font;
u8 title_length;
u16 rom_offset;
u16 rom_size;
SAVE_TYPE save_type;
u8 save_index;
u16 keys;
u8 reserved[6];
u16 title[0x30];
} ItemConfig;
extern char __rom_end__;
void SetPixel(volatile u16 *buffer, u8 row, u8 col, u8 color);
#endif