CHUNK_32X_LAST = CHUNK_32X_EVT,\r
// add new stuff here\r
CHUNK_CD_EVT = 50,\r
+ CHUNK_CD_GFX,\r
//\r
CHUNK_DEFAULT_COUNT,\r
CHUNK_CARTHW_ = CHUNK_CARTHW, // 64 (defined in PicoInt)\r
} chunk_name_e;\r
\r
-static const char * const chunk_names[] = {\r
+static const char * const chunk_names[CHUNK_DEFAULT_COUNT] = {\r
"INVALID!",\r
"M68K state",\r
"RAM",\r
}\r
\r
#define CHECKED_WRITE(name,len,data) { \\r
- if (PicoStateProgressCB && name < CHUNK_DEFAULT_COUNT) { \\r
+ if (PicoStateProgressCB && name < CHUNK_DEFAULT_COUNT && chunk_names[name]) { \\r
strncpy(sbuff + 9, chunk_names[name], sizeof(sbuff) - 9); \\r
PicoStateProgressCB(sbuff); \\r
} \\r
}\r
\r
#define CHECKED_WRITE_BUFF(name,buff) { \\r
- if (PicoStateProgressCB && name < CHUNK_DEFAULT_COUNT) { \\r
+ if (PicoStateProgressCB && name < CHUNK_DEFAULT_COUNT && chunk_names[name]) { \\r
strncpy(sbuff + 9, chunk_names[name], sizeof(sbuff) - 9); \\r
PicoStateProgressCB(sbuff); \\r
} \\r
unsigned char buff[0x60], buff_z80[Z80_STATE_SIZE];\r
void *ym2612_regs = YM2612GetRegs();\r
int ver = 0x0170; // not really used..\r
+ int len;\r
\r
areaWrite("PicoSEXT", 1, 8, file);\r
areaWrite(&ver, 1, 4, file);\r
CHECKED_WRITE_BUFF(CHUNK_CDD, Pico_mcd->cdd);\r
CHECKED_WRITE_BUFF(CHUNK_CDC, Pico_mcd->cdc);\r
CHECKED_WRITE_BUFF(CHUNK_SCD, Pico_mcd->scd);\r
- CHECKED_WRITE_BUFF(CHUNK_RC, Pico_mcd->rot_comp);\r
CHECKED_WRITE_BUFF(CHUNK_MISC_CD, Pico_mcd->m);\r
memset(buff, 0, 0x40);\r
memcpy(buff, pcd_event_times, sizeof(pcd_event_times));\r
CHECKED_WRITE(CHUNK_CD_EVT, 0x40, buff);\r
+ len = gfx_context_save(buff);\r
+ CHECKED_WRITE(CHUNK_CD_GFX, len, buff);\r
\r
if (Pico_mcd->s68k_regs[3] & 4) // convert back\r
wram_2M_to_1M(Pico_mcd->word_ram2M);\r
case CHUNK_CDD: CHECKED_READ_BUFF(Pico_mcd->cdd); break;\r
case CHUNK_CDC: CHECKED_READ_BUFF(Pico_mcd->cdc); break;\r
case CHUNK_SCD: CHECKED_READ_BUFF(Pico_mcd->scd); break;\r
- case CHUNK_RC: CHECKED_READ_BUFF(Pico_mcd->rot_comp); break;\r
case CHUNK_MISC_CD: CHECKED_READ_BUFF(Pico_mcd->m); break;\r
\r
case CHUNK_CD_EVT:\r
memcpy(pcd_event_times, buff, sizeof(pcd_event_times));\r
break;\r
\r
+ case CHUNK_CD_GFX:\r
+ CHECKED_READ2(0x18, buff);\r
+ gfx_context_load(buff);\r
+ break;\r
+\r
// 32x stuff\r
#ifndef NO_32X\r
case CHUNK_MSH2:\r