#ifndef IS_GAME_H_
|
|
#define IS_GAME_H_
|
|
|
|
#define _VRAM 0x8000
|
|
#define _VRAM8000 _VRAM
|
|
#define _VRAM8800 (_VRAM + 0x800)
|
|
#define _VRAM9000 (_VRAM + 0x1000)
|
|
#define _SCRN0 0x9800
|
|
#define _SCRN1 0x9c00
|
|
|
|
#define SCRN_X 160
|
|
#define SCRN_Y 144
|
|
#define SCRN_X_B 20
|
|
#define SCRN_Y_B 18
|
|
|
|
#define SCRN_VX 256
|
|
#define SCRN_VY 256
|
|
#define SCRN_VX_B 32
|
|
#define SCRN_VX_Y 32
|
|
|
|
#define SCREEN_HEIGHT_TILES 18
|
|
#define SCREEN_WIDTH_TILES 20
|
|
|
|
typedef enum {
|
|
GAME_STATE_TITLE,
|
|
GAME_STATE_LEVEL,
|
|
GAME_STATE_MENU,
|
|
} game_state_t;
|
|
|
|
extern game_state_t game_state;
|
|
|
|
/**
|
|
* @brief Render the title screen.
|
|
*/
|
|
void title(void);
|
|
|
|
/**
|
|
* @brief Render the current game level.
|
|
*/
|
|
void level(void);
|
|
|
|
/**
|
|
* @brief Enable interrupts.
|
|
*/
|
|
void interrupts_enable(void) __preserves_regs(a, b, c, d, e, h, l);
|
|
|
|
/**
|
|
* @brief Disable interrupts.
|
|
*/
|
|
void interrupts_disable(void) __preserves_regs(a, b, c, d, e, h, l);
|
|
|
|
#endif
|