save project in text format works
This commit is contained in:
17
src/tic.c
17
src/tic.c
@@ -64,6 +64,7 @@ typedef enum
|
||||
|
||||
typedef struct
|
||||
{
|
||||
// TODO: add bank index here
|
||||
ChunkType type:8;
|
||||
u32 size:24;
|
||||
} Chunk;
|
||||
@@ -1327,23 +1328,21 @@ static void api_sync(tic_mem* tic, const char* section, s32 bank, bool toCart)
|
||||
{
|
||||
static const struct {const char* name; s32 cart; s32 ram; s32 size;} Sections[] =
|
||||
{
|
||||
{"tiles", offsetof(tic_cartridge, bank0.tiles), offsetof(tic_ram, tiles), sizeof(tic_tiles)},
|
||||
{"sprites", offsetof(tic_cartridge, bank0.sprites), offsetof(tic_ram, sprites), sizeof(tic_tiles)},
|
||||
{"map", offsetof(tic_cartridge, bank0.map), offsetof(tic_ram, map), sizeof(tic_map)},
|
||||
{"sfx", offsetof(tic_cartridge, bank0.sfx), offsetof(tic_ram, sfx), sizeof(tic_sfx)},
|
||||
{"music", offsetof(tic_cartridge, bank0.music), offsetof(tic_ram, music), sizeof(tic_music)},
|
||||
{"tiles", offsetof(tic_bank, tiles), offsetof(tic_ram, tiles), sizeof(tic_tiles)},
|
||||
{"sprites", offsetof(tic_bank, sprites), offsetof(tic_ram, sprites), sizeof(tic_tiles)},
|
||||
{"map", offsetof(tic_bank, map), offsetof(tic_ram, map), sizeof(tic_map)},
|
||||
{"sfx", offsetof(tic_bank, sfx), offsetof(tic_ram, sfx), sizeof(tic_sfx)},
|
||||
{"music", offsetof(tic_bank, music), offsetof(tic_ram, music), sizeof(tic_music)},
|
||||
};
|
||||
|
||||
assert(bank >= 0 && bank < TIC_BANKS);
|
||||
|
||||
s32 bankOffset = bank * sizeof(tic_bank);
|
||||
|
||||
for(s32 i = 0; i < COUNT_OF(Sections); i++)
|
||||
{
|
||||
if(section == NULL || (section && strcmp(section, Sections[i].name) == 0))
|
||||
toCart
|
||||
? memcpy((u8*)&tic->cart + Sections[i].cart + bankOffset, (u8*)&tic->ram + Sections[i].ram, Sections[i].size)
|
||||
: memcpy((u8*)&tic->ram + Sections[i].ram, (u8*)&tic->cart + Sections[i].cart + bankOffset, Sections[i].size);
|
||||
? memcpy((u8*)&tic->cart.banks[bank] + Sections[i].cart, (u8*)&tic->ram + Sections[i].ram, Sections[i].size)
|
||||
: memcpy((u8*)&tic->ram + Sections[i].ram, (u8*)&tic->cart.banks[bank] + Sections[i].cart, Sections[i].size);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user