YM2151 savestates re-re-revisited.
This commit is contained in:
parent
48284e63f4
commit
286022c602
|
@ -233,6 +233,7 @@ void BurnYM2151Scan(INT32 nAction)
|
|||
if ((nAction & ACB_DRIVER_DATA) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
SCAN_VAR(nBurnCurrentYM2151Register);
|
||||
SCAN_VAR(BurnYM2151Registers);
|
||||
SCAN_VAR(YM2151Volumes);
|
||||
|
@ -243,11 +244,12 @@ void BurnYM2151Scan(INT32 nAction)
|
|||
SCAN_VAR(nFractionalPosition);
|
||||
SCAN_VAR(nSamplesRendered);
|
||||
|
||||
BurnYM2151Scan_int(nAction); // Proper scan of YM2151's internal registers
|
||||
|
||||
/* if (nAction & ACB_WRITE) {
|
||||
BurnYM2151Scan_int(nAction); // Scan the YM2151's internal registers
|
||||
// BurnYM2151Scan_int() only links up the default connections -
|
||||
// therefore the following is necessary to link up user(game)-defined operator connections:
|
||||
if (nAction & ACB_WRITE) { // Restore the operator connections, see burn_ym2151.h BurnYM2151WriteRegister() for more info.
|
||||
for (INT32 i = 0; i < 0x0100; i++) {
|
||||
YM2151WriteReg(0, i, BurnYM2151Registers[i]);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,10 @@ static inline void BurnYM2151WriteRegister(const UINT8 nValue)
|
|||
extern UINT32 nBurnCurrentYM2151Register;
|
||||
extern UINT8 BurnYM2151Registers[0x0100];
|
||||
|
||||
BurnYM2151Registers[nBurnCurrentYM2151Register] = nValue;
|
||||
if (nBurnCurrentYM2151Register >= 0x20 &&
|
||||
nBurnCurrentYM2151Register <= 0x3F) { // only(!) remember oper connections
|
||||
BurnYM2151Registers[nBurnCurrentYM2151Register] = nValue;
|
||||
}
|
||||
YM2151WriteReg(0, nBurnCurrentYM2151Register, nValue);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
******************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
@ -508,6 +509,30 @@ static FILE *sample[9];
|
|||
#endif
|
||||
#define PI 3.14159265358979323846
|
||||
|
||||
/* // save for later debugging
|
||||
void dinklogerror(char* szFormat, ...)
|
||||
{
|
||||
static char szLogMessage[1024];
|
||||
|
||||
va_list vaFormat;
|
||||
va_start(vaFormat, szFormat);
|
||||
|
||||
_vsnprintf(szLogMessage, 1024, szFormat, vaFormat);
|
||||
|
||||
va_end(vaFormat);
|
||||
|
||||
//bprintf(PRINT_ERROR, _T("[%hs]!!!"), szLogMessage);
|
||||
{
|
||||
FILE *fp;
|
||||
fp = fopen("damage.txt", "a");
|
||||
if (fp) {
|
||||
fputs(szLogMessage, fp);
|
||||
fclose(fp);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
} */
|
||||
|
||||
|
||||
static void init_tables(void)
|
||||
|
@ -1488,7 +1513,7 @@ void BurnYM2151Scan_int(INT32 nAction)
|
|||
}
|
||||
|
||||
for (i=0; i<YMNumChips; i++)
|
||||
{
|
||||
{
|
||||
/* save all 32 operators of chip #i */
|
||||
for (j=0; j<32; j++)
|
||||
{
|
||||
|
@ -1576,7 +1601,22 @@ void BurnYM2151Scan_int(INT32 nAction)
|
|||
SCAN_VAR(YMPSG[i].timer_B_index_old);
|
||||
|
||||
SCAN_VAR(YMPSG[i].connect);
|
||||
SCAN_VAR(YMPSG[i].tim_A);
|
||||
SCAN_VAR(YMPSG[i].tim_B);
|
||||
SCAN_VAR(YMPSG[i].tim_A_val);
|
||||
SCAN_VAR(YMPSG[i].tim_B_val);
|
||||
SCAN_VAR(YMPSG[i].tim_A_tab);
|
||||
SCAN_VAR(YMPSG[i].tim_B_tab);
|
||||
SCAN_VAR(YMPSG[i].freq);
|
||||
SCAN_VAR(YMPSG[i].dt1_freq);
|
||||
SCAN_VAR(YMPSG[i].noise_tab);
|
||||
}
|
||||
SCAN_VAR(chanout);
|
||||
SCAN_VAR(m2);
|
||||
SCAN_VAR(c1);
|
||||
SCAN_VAR(c2); /* Phase Modulation input for operators 2,3,4 */
|
||||
SCAN_VAR(mem); /* one sample delay memory */
|
||||
|
||||
if (nAction & ACB_WRITE) {
|
||||
// state_save_register_func_postload(ym2151_postload_refresh);
|
||||
ym2151_postload_refresh();
|
||||
|
|
Loading…
Reference in New Issue