Add savestate code to Toki (d_toki.cpp)

This commit is contained in:
dinkc64 2014-04-21 18:30:02 +00:00
parent 6b53374592
commit a74e15d6f0
1 changed files with 54 additions and 7 deletions

View File

@ -1491,6 +1491,7 @@ static INT32 TokibDraw()
INT32 rgb = Palette[i];
DrvPalette[i] = BurnHighCol(rgb >> 16, rgb >> 8, rgb, 0);
}
DrvRecalc = 0;
}
UINT16 *scrollram = (UINT16 *)DrvScrollRAM;
@ -1580,6 +1581,7 @@ static INT32 DrvDraw()
INT32 rgb = Palette[i];
DrvPalette[i] = BurnHighCol(rgb >> 16, rgb >> 8, rgb, 0);
}
DrvRecalc = 0;
}
UINT16 *scrollram = (UINT16*)DrvScrollRAM;
@ -1621,6 +1623,7 @@ static INT32 DrawByLine(INT32 line)
INT32 rgb = Palette[i];
DrvPalette[i] = BurnHighCol(rgb >> 16, rgb >> 8, rgb, 0);
}
DrvRecalc = 0;
}
UINT16 *scrollram = (UINT16*)DrvScrollRAM;
@ -1710,6 +1713,50 @@ static INT32 DrvFrame()
return 0;
}
static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
{
struct BurnArea ba;
if (pnMin != NULL) { // Return minimum compatible version
*pnMin = 0x029719;
}
if (nAction & ACB_MEMORY_RAM) {
memset(&ba, 0, sizeof(ba));
ba.Data = AllRam;
ba.nLen = RamEnd-AllRam;
ba.szName = "All Ram";
BurnAcb(&ba);
}
if (nAction & ACB_DRIVER_DATA) {
BurnYM3812Scan(nAction, pnMin);
if (is_bootleg) {
MSM5205Scan(nAction, pnMin);
} else {
MSM6295Scan(0, nAction);
}
SekScan(nAction);
ZetScan(nAction);
SCAN_VAR(main2sub);
SCAN_VAR(sub2main);
SCAN_VAR(main2sub_pending);
SCAN_VAR(sub2main_pending);
SCAN_VAR(is_bootleg);
SCAN_VAR(TokibMSM5205Next);
SCAN_VAR(TokibMSM5205Toggle);
DrvRecalc = 1;
if (nAction & ACB_WRITE) {
}
}
return 0;
}
// Toki (World set 1)
@ -1744,7 +1791,7 @@ struct BurnDriver BurnDrvToki = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, tokiRomInfo, tokiRomName, NULL, NULL, TokiInputInfo, TokiDIPInfo,
DrvInit, DrvExit, DrvFrame, DrvDraw, NULL, NULL, 0x400,
DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};
@ -1782,7 +1829,7 @@ struct BurnDriver BurnDrvTokia = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, tokiaRomInfo, tokiaRomName, NULL, NULL, TokiInputInfo, TokiDIPInfo,
DrvInit, DrvExit, DrvFrame, DrvDraw, NULL, NULL, 0x400,
DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};
@ -1820,7 +1867,7 @@ struct BurnDriver BurnDrvTokiu = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, tokiuRomInfo, tokiuRomName, NULL, NULL, TokiInputInfo, TokiDIPInfo,
DrvInit, DrvExit, DrvFrame, DrvDraw, NULL, NULL, 0x400,
DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};
@ -1858,7 +1905,7 @@ struct BurnDriver BurnDrvJuju = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, jujuRomInfo, jujuRomName, NULL, NULL, TokiInputInfo, TokiDIPInfo,
DrvInit, DrvExit, DrvFrame, DrvDraw, NULL, NULL, 0x400,
DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};
@ -1915,7 +1962,7 @@ struct BurnDriver BurnDrvJujub = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, jujubRomInfo, jujubRomName, NULL, NULL, TokibInputInfo, TokibDIPInfo,
TokibInit, DrvExit, TokibFrame, TokibDraw, NULL, NULL, 0x400,
TokibInit, DrvExit, TokibFrame, TokibDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};
@ -1976,7 +2023,7 @@ struct BurnDriver BurnDrvJujuba = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, jujubaRomInfo, jujubaRomName, NULL, NULL, TokiInputInfo, TokiDIPInfo,
JujubaInit, DrvExit, DrvFrame, DrvDraw, NULL, NULL, 0x400,
JujubaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};
@ -2032,7 +2079,7 @@ struct BurnDriver BurnDrvTokib = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_MISC, 0,
NULL, tokibRomInfo, tokibRomName, NULL, NULL, TokibInputInfo, TokibDIPInfo,
TokibInit, DrvExit, TokibFrame, TokibDraw, NULL, NULL, 0x400,
TokibInit, DrvExit, TokibFrame, TokibDraw, DrvScan, NULL, 0x400,
256, 224, 4, 3
};