Tsuchinoko Real?!

This commit is contained in:
fate6 2024-12-29 15:39:10 -08:00
parent 4c25ed9a98
commit 661f983e1d
906 changed files with 57143 additions and 0 deletions

29
gb_studio_project/build/src/.gitignore vendored Normal file
View file

@ -0,0 +1,29 @@
/obj
*.bak
*.dof
*.dsk
*.cfg
*.map
*.sym
*.o
__pycache__
/profile/*.txt
@usage.bat
*.ihx
*.noi
/.vscode
/*.cdb
/build
/test/*.noi
/test/*.sna
/test/*.bmp
/test/*.o
/test/*.asm
/test/*.lst
*.gb
/examples/*/obj
/examples/*/build
/test/*/obj
/test/*/build
/test/*/*.bmp
/third-party/*/build

View file

@ -0,0 +1,35 @@
include ./Makefile.common
include ./Makefile.build
GBSTOOLS_DIR = /tmp/_gbstools
GBDK = $(GBSTOOLS_DIR)/gbdk
GBSPACK = $(GBSTOOLS_DIR)/gbspack/gbspack
ROM_BUILD_DIR = build
OBJDIR = obj
REL_OBJDIR = obj/_rel
ADATA = $(foreach dir,src/data,$(notdir $(wildcard $(dir)/*.s)))
CDATA = $(foreach dir,src/data,$(notdir $(wildcard $(dir)/*.c)))
MDATA = $(foreach dir,src/data/music,$(notdir $(wildcard $(dir)/*.c)))
OBJS = $(ENGINE_OBJS) \
$(ADATA:%.s=$(OBJDIR)/%.o) \
$(CDATA:%.c=$(OBJDIR)/%.o) \
$(MDATA:%.c=$(OBJDIR)/%.o)
REL_OBJS_LOCAL = $(OBJS:$(OBJDIR)/%.o=$(REL_OBJDIR)/%.rel)
REL_OBJS = $(REL_OBJS_LOCAL:$(TOP)$(OBJDIR)/%.o=$(REL_OBJDIR)/%.rel)
CFLAGS += -Idata/include -Wa-Idata/include
all: settings directories $(TARGET)
$(OBJDIR)/%.o: src/data/music/%.c
$(CC) $(CFLAGS) -c -o $@ $<
$(OBJDIR)/%.o: src/data/%.c
$(CC) $(CFLAGS) -c -o $@ $<
$(OBJDIR)/%.o: src/data/%.s
$(CC) $(CFLAGS) -c -o $@ $<

View file

@ -0,0 +1 @@
settings: CGB hUGE MBC5

View file

@ -0,0 +1,174 @@
TOP := $(dir $(lastword $(MAKEFILE_LIST)))
GBDK = $(TOP)../gbdk
CC = $(GBDK)/bin/lcc
TEST_DIR = $(TOP)test
TEST_FW = $(TEST_DIR)/framework
EXAMPLES_DIR = ./examples
EMU = $(TOP)../bgb/bgb
GBSPACK = $(TOP)../gbspack/gbspack
TEST_CHK = python $(CURDIR)/$(TEST_FW)/unit_checker.py
GBS_CLI = node $(TOP)../gb-studio/out/cli/gb-studio-cli.js
PLATFORM =
ROMTITLE = "GBSTUDIO"
ROM_BUILD_DIR = build
OBJDIR = obj
REL_OBJDIR = obj/_rel
CFLAGS = $(PLATFORM) -I$(TOP)include -Wa-I$(TOP)include
LFLAGS_NBANKS += -Wm-yoA -Wm-ya4
LFLAGS_SYMBOLS = -Wl-j -Wl-m -Wl-w -Wm-yS
LFLAGS = $(PLATFORM) -Wm-yt$(CART_MBC) $(LFLAGS_NBANKS) $(LFLAGS_SYMBOLS) -Wl-klib -Wl-g.STACK=0xDF00 -Wi-e
PACKFLAGS = -b 1 -f 255 -e rel -c
EMUFLAGS = \
-set "Color0=E8E8E8" \
-set "Color1=A0A0A0" \
-set "Color2=585858" \
-set "Color3=101010" \
-set "DebugWRAMbreak=0" \
-set "DebugSrcBrk=1" \
-hf -stateonexit \
-screenonexit ./capture.bmp
EMU_FORCE_DMG = -set "SystemMode=0"
TARGET = $(ROM_BUILD_DIR)/rom.gb
ASRC = $(foreach dir,$(TOP)src,$(notdir $(wildcard $(dir)/*.s)))
CSRC = $(foreach dir,$(TOP)src,$(notdir $(wildcard $(dir)/*.c)))
ACORE = $(foreach dir,$(TOP)src/core,$(notdir $(wildcard $(dir)/*.s)))
CCORE = $(foreach dir,$(TOP)src/core,$(notdir $(wildcard $(dir)/*.c)))
CSTATES = $(foreach dir,$(TOP)src/states,$(notdir $(wildcard $(dir)/*.c)))
ASTATES = $(foreach dir,$(TOP)src/states,$(notdir $(wildcard $(dir)/*.s)))
ENGINE_OBJS = $(CSRC:%.c=$(TOP)$(OBJDIR)/%.o) \
$(ASRC:%.s=$(TOP)$(OBJDIR)/%.o) \
$(ACORE:%.s=$(TOP)$(OBJDIR)/%.o) \
$(CCORE:%.c=$(TOP)$(OBJDIR)/%.o) \
$(CSTATES:%.c=$(TOP)$(OBJDIR)/%.o) \
$(ASTATES:%.s=$(TOP)$(OBJDIR)/%.o)
OBJS = $(ENGINE_OBJS)
REL_OBJS = $(OBJS:$(OBJDIR)/%.o=$(REL_OBJDIR)/%.rel)
all: settings directories BUILD
.PHONY: directories clean release debug profile AP DMG CGB SGB MBC3 MBC5 hUGE GBT test rom BUILD
.SECONDARY: $(OBJS)
AP:
$(eval PLATFORM = -msm83:ap)
$(eval TARGET = $(patsubst %.gb,%.pocket,$(TARGET)))
@echo "Analogue pocket build"
release:
$(eval CFLAGS += -Wf'--max-allocs-per-node 50000')
@echo "RELEASE mode ON"
debug:
$(eval CFLAGS += -Wf--fverbose-asm -Wf--debug -Wl-m -Wl-w -Wl-y -DVM_DEBUG_OUTPUT)
$(eval CFLAGS += -Wf--nolospre -Wf--nogcse)
$(eval LFLAGS += -Wf--debug -Wl-m -Wl-w -Wl-y)
@echo "DEBUG mode ON"
profile:
$(eval CFLAGS += -Wf--profile)
@echo "PROFILE mode ON"
DMG:
@echo "DMG mode ON"
CGB:
$(eval CFLAGS += -DCGB)
$(eval LFLAGS += -Wm-yC)
@echo "CGB mode ON"
SGB:
$(eval CFLAGS += -DSGB)
$(eval LFLAGS += -Wm-ys)
@echo "SGB mode ON"
batteryless:
$(eval PACKFLAGS += -a 4)
$(eval BATTERYLESS = 1)
$(eval CFLAGS += -DBATTERYLESS)
@echo "BETTERYLESS SAVE ON"
MBC3:
$(eval CART_MBC = 0x10)
@echo "Using MBC3"
MBC5:
$(eval CART_MBC = 0x1B)
@echo "Using MBC5"
hUGE:
$(eval CFLAGS += -DHUGE_TRACKER)
$(eval LFLAGS += -Wl-l$(TOP)lib/hUGEDriver.lib)
@echo "Enable hUGETracker"
GBT:
$(eval CFLAGS += -DGBT_PLAYER)
$(eval LFLAGS += -Wl-l$(TOP)lib/gbt_player.lib)
$(eval PACKFLAGS += -s 1:800)
@echo "Enable GBTPlayer"
directories: $(ROM_BUILD_DIR) $(OBJDIR) $(REL_OBJDIR)
$(ROM_BUILD_DIR):
mkdir -p $(ROM_BUILD_DIR)
$(OBJDIR):
mkdir -p $(OBJDIR)
mkdir -p $(TOP)$(OBJDIR)
$(REL_OBJDIR):
mkdir -p $(REL_OBJDIR)
$(TOP)$(OBJDIR)/%.o: $(TOP)src/core/%.c
$(CC) $(CFLAGS) -Wf-MMD $(filter -Wf-ba%, $(subst .d,-Wf-ba,$(suffix $(<:%.c=%)))) -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/core/%.s
$(CC) $(CFLAGS) -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/states/%.c
$(CC) $(CFLAGS) -Wf-MMD -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/states/%.s
$(CC) $(CFLAGS) -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/%.c
$(CC) $(CFLAGS) -Wf-MMD -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/%.s
$(CC) $(CFLAGS) -c -o $@ $<
$(REL_OBJDIR)/linkfile.lk: $(OBJS)
mkdir -p $(REL_OBJDIR)
$(shell rm -f $(REL_OBJDIR)/packfile.pk)
$(foreach O,$(OBJS),$(shell echo $O >>$(REL_OBJDIR)/packfile.pk))
$(eval CART_SIZE=$(shell $(GBSPACK) $(PACKFLAGS) -o $(REL_OBJDIR) -i $(REL_OBJDIR)/packfile.pk))
$(shell echo -g __start_save=$(shell expr $(CART_SIZE) - 4 ) >$@)
$(foreach O,$(REL_OBJS),$(shell echo $O >>$@))
BUILD: $(REL_OBJDIR)/linkfile.lk
$(CC) $(LFLAGS) -Wm-yn$(ROMTITLE) -o $(TARGET) -Wl-f$<
clean:
@echo "CLEANUP..."
rm -rf $(TOP)$(OBJDIR)
rm -rf $(OBJDIR)
rm -rf $(ROM_BUILD_DIR)
rm -f $(TEST_DIR)/*/capture.bmp
rm -rf $(TEST_DIR)/*/obj
rm -rf $(TEST_DIR)/*/build
rm -rf $(EXAMPLES_DIR)/*/obj
rm -rf $(EXAMPLES_DIR)/*/build
rom: directories BUILD

View file

@ -0,0 +1,249 @@
{
"version": "4.2.0-e1",
"fields": [
{
"key": "INPUT_PLATFORM_JUMP",
"sceneType": "PLATFORM",
"label": "FIELD_INPUT_JUMP",
"group": "GAMETYPE_PLATFORMER",
"type": "select",
"options": [
["INPUT_A", "A"],
["INPUT_B", "B"],
["INPUT_UP", "FIELD_DIRECTION_UP"]
],
"cType": "define",
"defaultValue": "INPUT_A"
},
{
"key": "INPUT_PLATFORM_RUN",
"sceneType": "PLATFORM",
"label": "FIELD_INPUT_RUN",
"group": "GAMETYPE_PLATFORMER",
"type": "select",
"options": [
["INPUT_A", "A"],
["INPUT_B", "B"]
],
"cType": "define",
"defaultValue": "INPUT_B"
},
{
"key": "INPUT_PLATFORM_INTERACT",
"sceneType": "PLATFORM",
"label": "FIELD_INPUT_INTERACT",
"group": "GAMETYPE_PLATFORMER",
"type": "select",
"options": [
["INPUT_A", "A"],
["INPUT_B", "B"],
["INPUT_UP", "FIELD_DIRECTION_UP"],
["INPUT_DOWN", "FIELD_DIRECTION_DOWN"]
],
"cType": "define",
"defaultValue": "INPUT_A"
},
{
"key": "plat_min_vel",
"sceneType": "PLATFORM",
"label": "FIELD_MIN_VEL",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 304,
"min": 0,
"max": 16384
},
{
"key": "plat_walk_vel",
"sceneType": "PLATFORM",
"label": "FIELD_WALK_VEL",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 6400,
"min": 0,
"max": 16384
},
{
"key": "plat_run_vel",
"sceneType": "PLATFORM",
"label": "FIELD_RUN_VEL",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 10496,
"min": 0,
"max": 16384
},
{
"key": "plat_climb_vel",
"sceneType": "PLATFORM",
"label": "FIELD_CLIMB_VEL",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 4000,
"min": 0,
"max": 16384
},
{
"key": "plat_walk_acc",
"sceneType": "PLATFORM",
"label": "FIELD_WALK_ACC",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 152,
"min": 0,
"max": 768
},
{
"key": "plat_run_acc",
"sceneType": "PLATFORM",
"label": "FIELD_RUN_ACC",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 228,
"min": 0,
"max": 768
},
{
"key": "plat_dec",
"sceneType": "PLATFORM",
"label": "FIELD_DECELERATION",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 208,
"min": 0,
"max": 768
},
{
"key": "plat_jump_vel",
"sceneType": "PLATFORM",
"label": "FIELD_JUMP_VEL",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 16384,
"min": 0,
"max": 32768
},
{
"key": "plat_grav",
"sceneType": "PLATFORM",
"label": "FIELD_GRAVITY",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 1792,
"min": 0,
"max": 8192
},
{
"key": "plat_hold_grav",
"sceneType": "PLATFORM",
"label": "FIELD_GRAVITY_JUMP",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 512,
"min": 0,
"max": 8192
},
{
"key": "plat_max_fall_vel",
"sceneType": "PLATFORM",
"label": "FIELD_MAX_FALL_VEL",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 20000,
"min": 0,
"max": 24560
},
{
"key": "shooter_scroll_speed",
"sceneType": "SHMUP",
"label": "FIELD_SCROLL_SPEED",
"group": "GAMETYPE_SHMUP",
"type": "slider",
"cType": "UBYTE",
"defaultValue": 16,
"min": 0,
"max": 64
},
{
"key": "INPUT_TOPDOWN_INTERACT",
"sceneType": "TOPDOWN",
"label": "FIELD_INPUT_INTERACT",
"group": "GAMETYPE_TOP_DOWN",
"type": "select",
"options": [
["INPUT_A", "A"],
["INPUT_B", "B"]
],
"cType": "define",
"defaultValue": "INPUT_A"
},
{
"key": "topdown_grid",
"sceneType": "TOPDOWN",
"label": "FIELD_GRID_SIZE",
"group": "GAMETYPE_TOP_DOWN",
"type": "select",
"options": [
[8, "FIELD_GRID_8PX"],
[16, "FIELD_GRID_16PX"]
],
"cType": "UBYTE",
"defaultValue": 8
},
{
"key": "fade_style",
"label": "FIELD_FADE_STYLE",
"group": "SETTINGS_FADE",
"type": "select",
"options": [
[0, "FIELD_FADE_WHITE"],
[1, "FIELD_FADE_BLACK"]
],
"cType": "UBYTE",
"defaultValue": 0
}
],
"sceneTypes": [
{
"key": "TOPDOWN",
"label": "GAMETYPE_TOP_DOWN",
"files": ["include/states/topdown.h", "src/states/topdown.c"]
},
{
"key": "PLATFORM",
"label": "GAMETYPE_PLATFORMER",
"files": ["include/states/platform.h", "src/states/platform.c"]
},
{
"key": "ADVENTURE",
"label": "GAMETYPE_ADVENTURE",
"files": ["include/states/adventure.h", "src/states/adventure.c"]
},
{
"key": "SHMUP",
"label": "GAMETYPE_SHMUP",
"files": ["include/states/shmup.h", "src/states/shmup.c"]
},
{
"key": "POINTNCLICK",
"label": "GAMETYPE_POINT_N_CLICK",
"files": ["include/states/pointnclick.h", "src/states/pointnclick.c"]
},
{
"key": "LOGO",
"label": "GAMETYPE_LOGO",
"files": ["include/states/logo.h", "src/states/logo.c"]
}
]
}

View file

@ -0,0 +1,81 @@
#ifndef ACTOR_H
#define ACTOR_H
#include <gbdk/platform.h>
#include "bankdata.h"
#include "gbs_types.h"
#define MAX_ACTORS 21
#define MAX_ACTORS_ACTIVE 12
#define PLAYER actors[0]
#define ON_8PX_GRID(A) ( MOD_8((A).x >> 4) == 0 && MOD_8((A).y >> 4) == 0)
#define ON_16PX_GRID(A) (MOD_16((A).x >> 4) == 0 && MOD_16((A).y >> 4) == 8)
#define PLAYER_HURT_IFRAMES 20
#define ANIM_JUMP_LEFT 0
#define ANIM_JUMP_RIGHT 2
#define ANIM_CLIMB 6
#define ANIM_CURSOR 0
#define ANIM_CURSOR_HOVER 1
#define ANIM_SET_DEFAULT 0
BANKREF_EXTERN(ACTOR)
typedef enum {
CHECK_DIR_LEFT = 1,
CHECK_DIR_RIGHT,
CHECK_DIR_UP,
CHECK_DIR_DOWN,
} col_check_dir_e;
extern actor_t actors[MAX_ACTORS];
extern actor_t * actors_active_head;
extern actor_t * actors_active_tail;
extern actor_t * actors_inactive_head;
extern UBYTE player_moving;
extern actor_t * player_collision_actor;
extern actor_t * emote_actor;
extern UBYTE emote_timer;
extern UBYTE allocated_sprite_tiles;
extern UBYTE allocated_hardware_sprites;
void actors_init(void) BANKED;
void actors_update(void) NONBANKED;
void deactivate_actor(actor_t *actor) BANKED;
void activate_actor(actor_t *actor) BANKED;
void actor_set_frames(actor_t *actor, UBYTE frame_start, UBYTE frame_end) BANKED;
void actor_set_frame_offset(actor_t *actor, UBYTE frame_offset) BANKED;
UBYTE actor_get_frame_offset(actor_t *actor) BANKED;
actor_t *actor_at_tile(UBYTE tx, UBYTE ty, UBYTE inc_noclip) BANKED;
actor_t *actor_in_front_of_player(UBYTE grid_size, UBYTE inc_noclip) BANKED;
actor_t *actor_overlapping_player(UBYTE inc_noclip) BANKED;
actor_t *actor_overlapping_bb(bounding_box_t *bb, point16_t *offset, actor_t *ignore, UBYTE inc_noclip) BANKED;
void actor_set_anim_idle(actor_t *actor) BANKED;
void actor_set_anim_moving(actor_t *actor) BANKED;
void actor_set_dir(actor_t *actor, direction_e dir, UBYTE moving) BANKED;
inline void actor_set_anim(actor_t *actor, UBYTE anim) {
actor->animation = anim;
actor_set_frames(actor, actor->animations[anim].start, actor->animations[anim].end + 1);
}
inline void actor_reset_anim(actor_t *actor) {
actor_set_frames(actor, actor->animations[actor->animation].start, actor->animations[actor->animation].end + 1);
}
inline void actor_stop_anim(actor_t *actor) {
actor->frame_start = actor->frame;
actor->frame_end = actor->frame + 1;
}
inline void player_register_collision_with(actor_t *actor) {
player_collision_actor = actor;
}
void actors_handle_player_collision(void) BANKED;
UWORD check_collision_in_direction(UWORD start_x, UWORD start_y, bounding_box_t *bounds, UWORD end_pos, col_check_dir_e check_dir) BANKED;
void activate_actors_in_row(UBYTE x, UBYTE y) BANKED;
void activate_actors_in_col(UBYTE x, UBYTE y) BANKED;
void player_init(void) BANKED;
#endif

View file

@ -0,0 +1,147 @@
#ifndef BANK_DATA_H
#define BANK_DATA_H
#include <gbdk/platform.h>
#include "compat.h"
#define TO_FAR_PTR_T(A) {.bank = (UBYTE)&(__bank_ ## A), .ptr = (void *)&(A)}
#define TO_FAR_ARGS(T, A) (T)(A).ptr, (A).bank
#ifndef BANK
#define BANK(VARNAME) ( (UBYTE) & __bank_ ## VARNAME )
#endif
#ifndef BANKREF
#define BANKREF(VARNAME) void __func_ ## VARNAME(void) BANKED NAKED { \
__asm \
.local b___func_ ## VARNAME \
___bank_ ## VARNAME = b___func_ ## VARNAME \
.globl ___bank_ ## VARNAME \
__endasm; \
}
#endif
#ifndef BANKREF_EXTERN
#define BANKREF_EXTERN(VARNAME) extern const void __bank_ ## VARNAME;
#endif
#ifndef SIZE
#define SIZE(VARNAME) ((UWORD)&( __size_ ## VARNAME ))
#endif
#ifndef SIZEREF
#define SIZEREF(VARNAME) const void AT(sizeof(VARNAME)) __size_ ## VARNAME;
#endif
#ifndef SIZEREF_EXTERN
#define SIZEREF_EXTERN(VARNAME) extern const void __size_ ## VARNAME;
#endif
typedef struct far_ptr_t {
UBYTE bank;
void * ptr;
} far_ptr_t;
/**
* Call set_bkg_data with data stored in banked memory (non-reentrant!)
*
* @param i first tile to write to
* @param l number of tiles to write
* @param ptr memory address of tile data within bank
* @param bank bank to read from
*/
void SetBankedBkgData(UBYTE i, UBYTE l, const unsigned char *ptr, UBYTE bank) OLDCALL;
/**
* Call set_sprite_data with data stored in banked memory (non-reentrant!)
*
* @param i first tile to write to
* @param l number of tiles to write
* @param ptr memory address of tile data within bank
* @param bank bank to read from
*/
void SetBankedSpriteData(UBYTE i, UBYTE l, const unsigned char *ptr, UBYTE bank) OLDCALL;
/**
* Sets a rectangular region of Tile Map entries for the Background layer (non-reentrant!)
*
* @param x X Start position in Background Map tile coordinates. Range 0 - 31
* @param y Y Start position in Background Map tile coordinates. Range 0 - 31
* @param w Width of area to set in tiles. Range 0 - 31
* @param h Height of area to set in tiles. Range 0 - 31
* @param tiles Pointer to source Tile Map data
* @param bank bank to read from
*/
void SetBankedBkgTiles(UINT8 x, UINT8 y, UINT8 w, UINT8 h, const unsigned char *tiles, UBYTE bank) OLDCALL;
/**
* Sets a rectangular region of Tile Map entries for the Window layer (non-reentrant!)
*
* @param x X Start position in Window Map tile coordinates. Range 0 - 31
* @param y Y Start position in Window Map tile coordinates. Range 0 - 31
* @param w Width of area to set in tiles. Range 0 - 31
* @param h Height of area to set in tiles. Range 0 - 31
* @param tiles Pointer to source Tile Map data
* @param bank bank to read from
*/
void SetBankedWinTiles(UINT8 x, UINT8 y, UINT8 w, UINT8 h, const unsigned char *tiles, UBYTE bank) OLDCALL;
/**
* Read far pointer from banked memory location into dest (non-reentrant!)
*
* @param dest pointer to far_ptr_t struct
* @param ptr memory address of data within bank
* @param bank bank to read from
*/
void ReadBankedFarPtr(far_ptr_t * dest, const unsigned char *ptr, UBYTE bank);
/**
* Read UWORD from banked memory location (non-reentrant!)
*
* @param ptr memory address of data within bank
* @param bank bank to read from
* @return value stored in banked location
*/
UWORD ReadBankedUWORD(const unsigned char *ptr, UBYTE bank);
/**
* Read UBYTE from banked memory location (non-reentrant!)
*
* @param ptr memory address of data within bank
* @param bank bank to read from
* @return value stored in banked location
*/
inline UBYTE ReadBankedUBYTE(const unsigned char *ptr, UBYTE bank) {
return (UBYTE)ReadBankedUWORD(ptr, bank);
}
/**
* memcpy data from banked memory location (non-reentrant!)
*
* @param to destination to write fetched data
* @param from memory address of data within bank
* @param n number of bytes to fetch from bank
* @param bank bank to read from
*/
void MemcpyBanked(void* to, const void* from, size_t n, UBYTE bank);
/**
* memcpy data from banked memory location (non-reentrant!) to VRAM
*
* @param to destination to write fetched data
* @param from memory address of data within bank
* @param n number of bytes to fetch from bank
* @param bank bank to read from
*/
void MemcpyVRAMBanked(void* to, const void* from, size_t n, UBYTE bank);
/**
* returns the index of pointer from the list
*
* @param list pointer to the farptr array
* @param bank bank number of the list
* @param count number of items in the farptr array
* @param item pointer the the item in WRAM being searched
* @return index in the array or count if not found
*/
UBYTE IndexOfFarPtr(const far_ptr_t * list, UBYTE bank, UBYTE count, const far_ptr_t * item);
#endif

View file

@ -0,0 +1,32 @@
#ifndef CAMERA_H
#define CAMERA_H
#include <gbdk/platform.h>
#define SCREEN_WIDTH 160
#define SCREEN_HEIGHT 144
#define SCREEN_WIDTH_HALF 80
#define SCREEN_HEIGHT_HALF 72
#define CAMERA_UNLOCKED 0x00
#define CAMERA_LOCK_X_FLAG 0x01
#define CAMERA_LOCK_Y_FLAG 0x02
#define CAMERA_LOCK_FLAG (CAMERA_LOCK_X_FLAG | CAMERA_LOCK_Y_FLAG)
extern INT16 camera_x;
extern INT16 camera_y;
extern BYTE camera_offset_x;
extern BYTE camera_offset_y;
extern BYTE camera_deadzone_x;
extern BYTE camera_deadzone_y;
extern UBYTE camera_settings;
void camera_init(void) BANKED;
inline void camera_reset(void) {
camera_deadzone_x = camera_deadzone_y = 0;
}
void camera_update(void) NONBANKED;
#endif

View file

@ -0,0 +1,71 @@
#ifndef COLLISIONS_H
#define COLLISIONS_H
#include <gbdk/platform.h>
#include "math.h"
#include "bankdata.h"
#define COLLISION_TOP 0x1
#define COLLISION_BOTTOM 0x2
#define COLLISION_LEFT 0x4
#define COLLISION_RIGHT 0x8
#define COLLISION_ALL 0xF
#define TILE_PROP_LADDER 0x10
typedef struct bounding_box_t {
BYTE left, right, top, bottom;
} bounding_box_t;
extern UBYTE collision_bank;
extern unsigned char *collision_ptr;
extern UBYTE image_tile_width;
extern UBYTE image_tile_height;
/**
* Check if point is within positioned bounding box.
*
* @param bb Pointer to bounding box
* @param offset Pointer to position offset for bounding box (e.g Actor position)
* @param point Pointer to position to look for within bounding box
* @return Point is within bounding box
*/
inline UBYTE bb_contains(bounding_box_t *bb, point16_t *offset, point16_t *point) {
if ((point->x < (offset->x >> 4) + bb->left) ||
(point->x > (offset->x >> 4) + bb->right)) return FALSE;
if ((point->y < (offset->y >> 4) + bb->top) ||
(point->y > (offset->y >> 4) + bb->bottom)) return FALSE;
return TRUE;
}
/**
* Check if two positioned bounding boxes intersect.
*
* @param bb_a Pointer to bounding box A
* @param offset_a Pointer to position offset for bounding box A
* @param bb_b Pointer to bounding box B
* @param offset_b Pointer to position offset for bounding box B
* @return Positioned bounding boxes intersect
*/
inline UBYTE bb_intersects(bounding_box_t *bb_a, point16_t *offset_a, bounding_box_t *bb_b, point16_t *offset_b) {
if (((offset_b->x >> 4) + bb_b->left > (offset_a->x >> 4) + bb_a->right) ||
((offset_b->x >> 4) + bb_b->right < (offset_a->x >> 4) + bb_a->left)) return FALSE;
if (((offset_b->y >> 4) + bb_b->top > (offset_a->y >> 4) + bb_a->bottom) ||
((offset_b->y >> 4) + bb_b->bottom < (offset_a->y >> 4) + bb_a->top)) return FALSE;
return TRUE;
}
/**
* Return collision tile value at given tile x,y coordinate.
*
* @param tx Left tile
* @param ty Top tile
* @return Tile value, 0 if no collisions, COLLISION_ALL if out of bounds
*/
inline UBYTE tile_at(UBYTE tx, UBYTE ty) {
if ((tx < image_tile_width) && (ty < image_tile_height))
return ReadBankedUBYTE(collision_ptr + (ty * (UINT16)image_tile_width) + tx, collision_bank);
return COLLISION_ALL;
}
#endif

View file

@ -0,0 +1,47 @@
#ifndef _COMPAT_H_INCLUDE
#define _COMPAT_H_INCLUDE
#include <gbdk/platform.h>
#ifndef OLDCALL
#if __SDCC_REVISION >= 12608
#define OLDCALL __sdcccall(0)
#else
#define OLDCALL
#endif
#endif
#ifndef PRESERVES_REGS
#ifdef __SDCC
#define PRESERVES_REGS(...) __preserves_regs(__VA_ARGS__)
#else
#define PRESERVES_REGS(...)
#endif
#endif
#ifndef NAKED
#ifdef __SDCC
#define NAKED __naked
#else
#define NAKED
#endif
#endif
#ifndef SFR
#ifdef __SDCC
#define SFR __sfr
#else
#define SFR
#endif
#endif
#ifndef AT
#ifdef __SDCC
#define AT(A) __at(A)
#else
#define AT(A)
#endif
#endif
#endif

View file

@ -0,0 +1,9 @@
#ifndef _CORE_H_INCLUDE
#define _CORE_H_INCLUDE
#include <gbdk/platform.h>
void core_reset(void) BANKED;
void core_run(void) BANKED;
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_0_INTERACT_H
#define ACTOR_0_INTERACT_H
// Script actor_0_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_0_interact)
extern const unsigned char actor_0_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_10_INTERACT_H
#define ACTOR_10_INTERACT_H
// Script actor_10_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_10_interact)
extern const unsigned char actor_10_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_11_INTERACT_H
#define ACTOR_11_INTERACT_H
// Script actor_11_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_11_interact)
extern const unsigned char actor_11_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_12_INTERACT_H
#define ACTOR_12_INTERACT_H
// Script actor_12_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_12_interact)
extern const unsigned char actor_12_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_13_INTERACT_H
#define ACTOR_13_INTERACT_H
// Script actor_13_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_13_interact)
extern const unsigned char actor_13_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_14_INTERACT_H
#define ACTOR_14_INTERACT_H
// Script actor_14_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_14_interact)
extern const unsigned char actor_14_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_15_INTERACT_H
#define ACTOR_15_INTERACT_H
// Script actor_15_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_15_interact)
extern const unsigned char actor_15_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_1_INTERACT_H
#define ACTOR_1_INTERACT_H
// Script actor_1_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_1_interact)
extern const unsigned char actor_1_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_2_INTERACT_H
#define ACTOR_2_INTERACT_H
// Script actor_2_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_2_interact)
extern const unsigned char actor_2_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_3_INTERACT_H
#define ACTOR_3_INTERACT_H
// Script actor_3_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_3_interact)
extern const unsigned char actor_3_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_4_INTERACT_H
#define ACTOR_4_INTERACT_H
// Script actor_4_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_4_interact)
extern const unsigned char actor_4_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_5_INTERACT_H
#define ACTOR_5_INTERACT_H
// Script actor_5_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_5_interact)
extern const unsigned char actor_5_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_6_INTERACT_H
#define ACTOR_6_INTERACT_H
// Script actor_6_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_6_interact)
extern const unsigned char actor_6_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_7_INTERACT_H
#define ACTOR_7_INTERACT_H
// Script actor_7_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_7_interact)
extern const unsigned char actor_7_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_8_INTERACT_H
#define ACTOR_8_INTERACT_H
// Script actor_8_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_8_interact)
extern const unsigned char actor_8_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef ACTOR_9_INTERACT_H
#define ACTOR_9_INTERACT_H
// Script actor_9_interact
#include "gbs_types.h"
BANKREF_EXTERN(actor_9_interact)
extern const unsigned char actor_9_interact[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_CAVE_H
#define BG_CAVE_H
// Background: cave
#include "gbs_types.h"
BANKREF_EXTERN(bg_cave)
extern const struct background_t bg_cave;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_CAVE_TILEMAP_H
#define BG_CAVE_TILEMAP_H
// Tilemap bg_cave_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_cave_tilemap)
extern const unsigned char bg_cave_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_CAVE_TILEMAP_ATTR_H
#define BG_CAVE_TILEMAP_ATTR_H
// Tilemap Attr bg_cave_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_cave_tilemap_attr)
extern const unsigned char bg_cave_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_CAVE_TILESET_H
#define BG_CAVE_TILESET_H
// Tileset: bg_cave_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_cave_tileset)
extern const struct tileset_t bg_cave_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_ENDSCREEN_H
#define BG_ENDSCREEN_H
// Background: endScreen
#include "gbs_types.h"
BANKREF_EXTERN(bg_endscreen)
extern const struct background_t bg_endscreen;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_ENDSCREEN_CGB_TILESET_H
#define BG_ENDSCREEN_CGB_TILESET_H
// Tileset: bg_endscreen_cgb_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_endscreen_cgb_tileset)
extern const struct tileset_t bg_endscreen_cgb_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_ENDSCREEN_TILEMAP_H
#define BG_ENDSCREEN_TILEMAP_H
// Tilemap bg_endscreen_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_endscreen_tilemap)
extern const unsigned char bg_endscreen_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_ENDSCREEN_TILEMAP_ATTR_H
#define BG_ENDSCREEN_TILEMAP_ATTR_H
// Tilemap Attr bg_endscreen_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_endscreen_tilemap_attr)
extern const unsigned char bg_endscreen_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_ENDSCREEN_TILESET_H
#define BG_ENDSCREEN_TILESET_H
// Tileset: bg_endscreen_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_endscreen_tileset)
extern const struct tileset_t bg_endscreen_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_FATE6HOUSEF2_H
#define BG_FATE6HOUSEF2_H
// Background: Fate6Housef2
#include "gbs_types.h"
BANKREF_EXTERN(bg_fate6housef2)
extern const struct background_t bg_fate6housef2;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_FATE6HOUSEF2_TILEMAP_H
#define BG_FATE6HOUSEF2_TILEMAP_H
// Tilemap bg_fate6housef2_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_fate6housef2_tilemap)
extern const unsigned char bg_fate6housef2_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_FATE6HOUSEF2_TILEMAP_ATTR_H
#define BG_FATE6HOUSEF2_TILEMAP_ATTR_H
// Tilemap Attr bg_fate6housef2_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_fate6housef2_tilemap_attr)
extern const unsigned char bg_fate6housef2_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_FATE6HOUSEF2_TILESET_H
#define BG_FATE6HOUSEF2_TILESET_H
// Tileset: bg_fate6housef2_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_fate6housef2_tileset)
extern const struct tileset_t bg_fate6housef2_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_H
#define BG_HOUSE_H
// Background: house
#include "gbs_types.h"
BANKREF_EXTERN(bg_house)
extern const struct background_t bg_house;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_TILEMAP_H
#define BG_HOUSE_TILEMAP_H
// Tilemap bg_house_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_tilemap)
extern const unsigned char bg_house_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_TILEMAP_ATTR_H
#define BG_HOUSE_TILEMAP_ATTR_H
// Tilemap Attr bg_house_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_tilemap_attr)
extern const unsigned char bg_house_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_TILESET_H
#define BG_HOUSE_TILESET_H
// Tileset: bg_house_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_tileset)
extern const struct tileset_t bg_house_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_WIDE_H
#define BG_HOUSE_WIDE_H
// Background: house-wide
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_wide)
extern const struct background_t bg_house_wide;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_WIDE_TILEMAP_H
#define BG_HOUSE_WIDE_TILEMAP_H
// Tilemap bg_house_wide_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_wide_tilemap)
extern const unsigned char bg_house_wide_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_WIDE_TILEMAP_ATTR_H
#define BG_HOUSE_WIDE_TILEMAP_ATTR_H
// Tilemap Attr bg_house_wide_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_wide_tilemap_attr)
extern const unsigned char bg_house_wide_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSE_WIDE_TILESET_H
#define BG_HOUSE_WIDE_TILESET_H
// Tileset: bg_house_wide_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_house_wide_tileset)
extern const struct tileset_t bg_house_wide_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSEF2_H
#define BG_HOUSEF2_H
// Background: Housef2
#include "gbs_types.h"
BANKREF_EXTERN(bg_housef2)
extern const struct background_t bg_housef2;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSEF2_TILEMAP_H
#define BG_HOUSEF2_TILEMAP_H
// Tilemap bg_housef2_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_housef2_tilemap)
extern const unsigned char bg_housef2_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSEF2_TILEMAP_ATTR_H
#define BG_HOUSEF2_TILEMAP_ATTR_H
// Tilemap Attr bg_housef2_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_housef2_tilemap_attr)
extern const unsigned char bg_housef2_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_HOUSEF2_TILESET_H
#define BG_HOUSEF2_TILESET_H
// Tileset: bg_housef2_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_housef2_tileset)
extern const struct tileset_t bg_housef2_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LAB1_H
#define BG_LAB1_H
// Background: Lab1
#include "gbs_types.h"
BANKREF_EXTERN(bg_lab1)
extern const struct background_t bg_lab1;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LAB1_TILEMAP_H
#define BG_LAB1_TILEMAP_H
// Tilemap bg_lab1_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_lab1_tilemap)
extern const unsigned char bg_lab1_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LAB1_TILEMAP_ATTR_H
#define BG_LAB1_TILEMAP_ATTR_H
// Tilemap Attr bg_lab1_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_lab1_tilemap_attr)
extern const unsigned char bg_lab1_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LAB1_TILESET_H
#define BG_LAB1_TILESET_H
// Tileset: bg_lab1_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_lab1_tileset)
extern const struct tileset_t bg_lab1_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LOGOSCREEN_H
#define BG_LOGOSCREEN_H
// Background: LogoScreen
#include "gbs_types.h"
BANKREF_EXTERN(bg_logoscreen)
extern const struct background_t bg_logoscreen;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LOGOSCREEN_TILEMAP_H
#define BG_LOGOSCREEN_TILEMAP_H
// Tilemap bg_logoscreen_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_logoscreen_tilemap)
extern const unsigned char bg_logoscreen_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LOGOSCREEN_TILEMAP_ATTR_H
#define BG_LOGOSCREEN_TILEMAP_ATTR_H
// Tilemap Attr bg_logoscreen_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_logoscreen_tilemap_attr)
extern const unsigned char bg_logoscreen_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_LOGOSCREEN_TILESET_H
#define BG_LOGOSCREEN_TILESET_H
// Tileset: bg_logoscreen_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_logoscreen_tileset)
extern const struct tileset_t bg_logoscreen_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OUTSIDE_H
#define BG_OUTSIDE_H
// Background: outside
#include "gbs_types.h"
BANKREF_EXTERN(bg_outside)
extern const struct background_t bg_outside;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OUTSIDE_CGB_TILESET_H
#define BG_OUTSIDE_CGB_TILESET_H
// Tileset: bg_outside_cgb_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_outside_cgb_tileset)
extern const struct tileset_t bg_outside_cgb_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OUTSIDE_TILEMAP_H
#define BG_OUTSIDE_TILEMAP_H
// Tilemap bg_outside_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_outside_tilemap)
extern const unsigned char bg_outside_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OUTSIDE_TILEMAP_ATTR_H
#define BG_OUTSIDE_TILEMAP_ATTR_H
// Tilemap Attr bg_outside_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_outside_tilemap_attr)
extern const unsigned char bg_outside_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OUTSIDE_TILESET_H
#define BG_OUTSIDE_TILESET_H
// Tileset: bg_outside_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_outside_tileset)
extern const struct tileset_t bg_outside_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OVERWORLD_TEST_1_H
#define BG_OVERWORLD_TEST_1_H
// Background: Overworld_-_Test_1
#include "gbs_types.h"
BANKREF_EXTERN(bg_overworld_test_1)
extern const struct background_t bg_overworld_test_1;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OVERWORLD_TEST_1_TILEMAP_H
#define BG_OVERWORLD_TEST_1_TILEMAP_H
// Tilemap bg_overworld_test_1_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_overworld_test_1_tilemap)
extern const unsigned char bg_overworld_test_1_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OVERWORLD_TEST_1_TILEMAP_ATTR_H
#define BG_OVERWORLD_TEST_1_TILEMAP_ATTR_H
// Tilemap Attr bg_overworld_test_1_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_overworld_test_1_tilemap_attr)
extern const unsigned char bg_overworld_test_1_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_OVERWORLD_TEST_1_TILESET_H
#define BG_OVERWORLD_TEST_1_TILESET_H
// Tileset: bg_overworld_test_1_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_overworld_test_1_tileset)
extern const struct tileset_t bg_overworld_test_1_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_QUESTSCREEN_H
#define BG_QUESTSCREEN_H
// Background: QuestScreen
#include "gbs_types.h"
BANKREF_EXTERN(bg_questscreen)
extern const struct background_t bg_questscreen;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_QUESTSCREEN_TILEMAP_H
#define BG_QUESTSCREEN_TILEMAP_H
// Tilemap bg_questscreen_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_questscreen_tilemap)
extern const unsigned char bg_questscreen_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_QUESTSCREEN_TILEMAP_ATTR_H
#define BG_QUESTSCREEN_TILEMAP_ATTR_H
// Tilemap Attr bg_questscreen_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_questscreen_tilemap_attr)
extern const unsigned char bg_questscreen_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_QUESTSCREEN_TILESET_H
#define BG_QUESTSCREEN_TILESET_H
// Tileset: bg_questscreen_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_questscreen_tileset)
extern const struct tileset_t bg_questscreen_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_SLIGHHOUSEF2_H
#define BG_SLIGHHOUSEF2_H
// Background: SlighHousef2
#include "gbs_types.h"
BANKREF_EXTERN(bg_slighhousef2)
extern const struct background_t bg_slighhousef2;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_SLIGHHOUSEF2_TILEMAP_H
#define BG_SLIGHHOUSEF2_TILEMAP_H
// Tilemap bg_slighhousef2_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_slighhousef2_tilemap)
extern const unsigned char bg_slighhousef2_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_SLIGHHOUSEF2_TILEMAP_ATTR_H
#define BG_SLIGHHOUSEF2_TILEMAP_ATTR_H
// Tilemap Attr bg_slighhousef2_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_slighhousef2_tilemap_attr)
extern const unsigned char bg_slighhousef2_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_SLIGHHOUSEF2_TILESET_H
#define BG_SLIGHHOUSEF2_TILESET_H
// Tileset: bg_slighhousef2_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_slighhousef2_tileset)
extern const struct tileset_t bg_slighhousef2_tileset;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_TITLESCREEN_H
#define BG_TITLESCREEN_H
// Background: titlescreen
#include "gbs_types.h"
BANKREF_EXTERN(bg_titlescreen)
extern const struct background_t bg_titlescreen;
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_TITLESCREEN_TILEMAP_H
#define BG_TITLESCREEN_TILEMAP_H
// Tilemap bg_titlescreen_tilemap
#include "gbs_types.h"
BANKREF_EXTERN(bg_titlescreen_tilemap)
extern const unsigned char bg_titlescreen_tilemap[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_TITLESCREEN_TILEMAP_ATTR_H
#define BG_TITLESCREEN_TILEMAP_ATTR_H
// Tilemap Attr bg_titlescreen_tilemap_attr
#include "gbs_types.h"
BANKREF_EXTERN(bg_titlescreen_tilemap_attr)
extern const unsigned char bg_titlescreen_tilemap_attr[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef BG_TITLESCREEN_TILESET_H
#define BG_TITLESCREEN_TILESET_H
// Tileset: bg_titlescreen_tileset
#include "gbs_types.h"
BANKREF_EXTERN(bg_titlescreen_tileset)
extern const struct tileset_t bg_titlescreen_tileset;
#endif

View file

@ -0,0 +1,16 @@
#ifndef __BORDER_H_INCLUDE
#define __BORDER_H_INCLUDE
BANKREF_EXTERN(SGB_border_chr)
BANKREF_EXTERN(SGB_border_map)
BANKREF_EXTERN(SGB_border_pal)
SIZEREF_EXTERN(SGB_border_chr)
SIZEREF_EXTERN(SGB_border_map)
SIZEREF_EXTERN(SGB_border_pal)
extern const unsigned char SGB_border_chr[];
extern const unsigned char SGB_border_map[];
extern const unsigned char SGB_border_pal[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef CURSOR_IMAGE_H
#define CURSOR_IMAGE_H
// Cursor
#include "gbs_types.h"
BANKREF_EXTERN(cursor_image)
extern const unsigned char cursor_image[];
#endif

View file

@ -0,0 +1,18 @@
#ifndef DATA_PTRS_H
#define DATA_PTRS_H
#include "bankdata.h"
#include "gbs_types.h"
extern const INT16 start_scene_x;
extern const INT16 start_scene_y;
extern const direction_e start_scene_dir;
extern const far_ptr_t start_scene;
extern const UBYTE start_player_move_speed;
extern const UBYTE start_player_anim_tick;
extern const far_ptr_t ui_fonts[];
void bootstrap_init(void) BANKED;
#endif

View file

@ -0,0 +1,11 @@
#ifndef EMOTE_LOVE_H
#define EMOTE_LOVE_H
// Emote love
#include "gbs_types.h"
BANKREF_EXTERN(emote_love)
extern const unsigned char emote_love[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef FONT_GBS_MONO_H
#define FONT_GBS_MONO_H
// Font gbs-mono.png
#include "gbs_types.h"
BANKREF_EXTERN(font_gbs_mono)
extern const unsigned char font_gbs_mono[];
#endif

View file

@ -0,0 +1,11 @@
#ifndef FRAME_IMAGE_H
#define FRAME_IMAGE_H
// Frame
#include "gbs_types.h"
BANKREF_EXTERN(frame_image)
extern const unsigned char frame_image[];
#endif

View file

@ -0,0 +1,17 @@
#ifndef GAME_GLOBALS_H
#define GAME_GLOBALS_H
#define VAR_QUEST1 0
#define VAR_QUEST2_0 1
#define VAR_QUEST3_0 2
#define VAR_QUEST4_0 3
#define VAR_QUEST5 4
#define VAR_EEVEECHAT_0 5
#define VAR_KUMACHAT 6
#define VAR_KUMATEXTFIX 7
#define VAR_S0A0_LOCAL_0 8
#define VAR_S0T4_POSTKEYGET 9
#define VAR_S3T2_STARTTEXT 10
#define MAX_GLOBAL_VARS 11
#endif

View file

@ -0,0 +1,13 @@
VAR_QUEST1 = 0
VAR_QUEST2_0 = 1
VAR_QUEST3_0 = 2
VAR_QUEST4_0 = 3
VAR_QUEST5 = 4
VAR_EEVEECHAT_0 = 5
VAR_KUMACHAT = 6
VAR_KUMATEXTFIX = 7
VAR_S0A0_LOCAL_0 = 8
VAR_S0T4_POSTKEYGET = 9
VAR_S3T2_STARTTEXT = 10
MAX_GLOBAL_VARS = 11
STATE_DEFAULT = 0

View file

@ -0,0 +1,13 @@
#ifndef MUSIC_DATA_H
#define MUSIC_DATA_H
extern const void __bank_song_rulz_lightmood_Data;
extern const void song_rulz_lightmood_Data;
extern const void __bank_song_rulz_outside_0_Data;
extern const void song_rulz_outside_0_Data;
extern const void __bank_song_rulz_spaceemergency_0_Data;
extern const void song_rulz_spaceemergency_0_Data;
extern const void __bank_song_rulz_undergroundcave_Data;
extern const void song_rulz_undergroundcave_Data;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_0_H
#define PALETTE_0_H
// Palette: 0
#include "gbs_types.h"
BANKREF_EXTERN(palette_0)
extern const struct palette_t palette_0;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_1_H
#define PALETTE_1_H
// Palette: 1
#include "gbs_types.h"
BANKREF_EXTERN(palette_1)
extern const struct palette_t palette_1;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_10_H
#define PALETTE_10_H
// Palette: 10
#include "gbs_types.h"
BANKREF_EXTERN(palette_10)
extern const struct palette_t palette_10;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_11_H
#define PALETTE_11_H
// Palette: 11
#include "gbs_types.h"
BANKREF_EXTERN(palette_11)
extern const struct palette_t palette_11;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_12_H
#define PALETTE_12_H
// Palette: 12
#include "gbs_types.h"
BANKREF_EXTERN(palette_12)
extern const struct palette_t palette_12;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_13_H
#define PALETTE_13_H
// Palette: 13
#include "gbs_types.h"
BANKREF_EXTERN(palette_13)
extern const struct palette_t palette_13;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_2_H
#define PALETTE_2_H
// Palette: 2
#include "gbs_types.h"
BANKREF_EXTERN(palette_2)
extern const struct palette_t palette_2;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_3_H
#define PALETTE_3_H
// Palette: 3
#include "gbs_types.h"
BANKREF_EXTERN(palette_3)
extern const struct palette_t palette_3;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_4_H
#define PALETTE_4_H
// Palette: 4
#include "gbs_types.h"
BANKREF_EXTERN(palette_4)
extern const struct palette_t palette_4;
#endif

View file

@ -0,0 +1,11 @@
#ifndef PALETTE_5_H
#define PALETTE_5_H
// Palette: 5
#include "gbs_types.h"
BANKREF_EXTERN(palette_5)
extern const struct palette_t palette_5;
#endif

Some files were not shown because too many files have changed in this diff Show more