// Generated by assets/genC64Data.py from stuff/spacetaxi/raw.bin. // Do not hand-edit; re-run the generator. #ifndef ST_C64_DATA_H #define ST_C64_DATA_H #include // The game's custom character set ($2800-$2FFF): 256 glyphs x 8 rows, // bit 7 = leftmost pixel. Used to paint the screen AND for the // sprite-to-background collision test (a set bit is background data). #define ST_CHARSET_CHARS 256u extern const uint8_t kStCharset[ST_CHARSET_CHARS][8]; // Standard sprite bitmaps (VIC bank 0, block ptr * 64). 21 rows x 3 // bytes. Index = ptr - ST_SPRITE_PTR_FIRST. #define ST_SPRITE_PTR_FIRST 0xC0u #define ST_SPRITE_PTR_LAST 0xECu #define ST_SPRITE_COUNT 45u #define ST_SPRITE_BYTES 63u extern const uint8_t kStSpriteBitmaps[ST_SPRITE_COUNT][ST_SPRITE_BYTES]; // Demo-mode RNG lookup ($446A): rnd = table[t1] + t2 (see stSim.c). #define ST_RNG_TABLE_SIZE 64u extern const uint8_t kStRngTable[ST_RNG_TABLE_SIZE]; // SID SFX programs, 9 bytes each, in $42E9 order: freq lo, freq hi, // pulse lo, pulse hi, control, AD, SR, release ticks, voice index. typedef enum { ST_SFX_GEAR, // $6410 landing gear toggle ($63DD) ST_SFX_CASH, // $6DBB refuel ka-ching ($6E5B) ST_SFX_FUEL_LOW, // $6DC4 fuel below 3 cells ($6EBD) ST_SFX_FUEL_FULL, // $6DCD tank full ($6E9E) ST_SFX_LAND_HARD, // $6DD6 hard landing ($6520) ST_SFX_IMPACT, // $6DDF wreck hits the floor ($6AE1) ST_SFX_LAND_SOFT, // $6DE8 soft landing ($650F) ST_SFX_CRASH, // $6DF1 crash start ($6A56) ST_SFX_COUNT } StSfxE; #define ST_SFX_PROGRAM_BYTES 9u extern const uint8_t kStSfxPrograms[ST_SFX_COUNT][ST_SFX_PROGRAM_BYTES]; // Engine-flame cel pointer by direction mask ($6DB0, 1=UP 2=DOWN 4=LEFT // 8=RIGHT); 0 = no cel for that combination. extern const uint8_t kStFlameCelByDirMask[16]; // Level-intro star velocities per sprite 0..6 ($450C / $4513). extern const int8_t kStIntroStarDx[7]; extern const int8_t kStIntroStarDy[7]; // Cross-segment-safe accessors (see stC64Data.c): reach the tables above // by an inter-segment call on the IIgs, where a direct 2-byte data // reference from another bank is not relocatable. const uint8_t *stC64Charset(void); const uint8_t *stC64SpriteBitmap(uint8_t idx); uint8_t stC64RngByte(uint8_t idx); const uint8_t *stC64SfxProgram(uint8_t idx); uint8_t stC64FlameCel(uint8_t dirMask); int8_t stC64IntroStarDx(uint8_t idx); int8_t stC64IntroStarDy(uint8_t idx); #endif