From ba93e6ab0e560f4880b3ac69355e68146e47e4f8 Mon Sep 17 00:00:00 2001 From: goyuken Date: Fri, 8 Aug 2014 20:01:09 +0000 Subject: [PATCH] vba next: savestates and other confetti --- .../Consoles/Nintendo/GBA/LibVBANext.cs | 12 + .../Consoles/Nintendo/GBA/VBANext.cs | 70 ++- .../Consoles/WonderSwan/WonderSwan.cs | 5 +- output/dll/libvbanext.dll | Bin 427008 -> 442368 bytes vbanext/instance.cpp | 507 +++++++++++++++--- vbanext/mingw/Makefile | 27 + vbanext/msvs/libvbanext/libvbanext.vcxproj | 2 + .../libvbanext/libvbanext.vcxproj.filters | 6 + vbanext/newstate.cpp | 64 +++ vbanext/newstate.h | 99 ++++ 10 files changed, 702 insertions(+), 90 deletions(-) create mode 100644 vbanext/mingw/Makefile create mode 100644 vbanext/newstate.cpp create mode 100644 vbanext/newstate.h diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs index 0ba6a4626d..335e7f57cf 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibVBANext.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; +using BizHawk.Emulation.Common; namespace BizHawk.Emulation.Cores.Nintendo.GBA { @@ -70,5 +71,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA /// true if lagged [DllImport(dllname, CallingConvention = cc)] public static extern bool FrameAdvance(IntPtr g, Buttons input, int[] videobuffer, short[] audiobuffer, out int numsamp); + + [DllImport(dllname, CallingConvention = cc)] + public static extern int BinStateSize(IntPtr g); + [DllImport(dllname, CallingConvention = cc)] + public static extern bool BinStateSave(IntPtr g, byte[] data, int length); + [DllImport(dllname, CallingConvention = cc)] + public static extern bool BinStateLoad(IntPtr g, byte[] data, int length); + [DllImport(dllname, CallingConvention = cc)] + public static extern void TxtStateSave(IntPtr g, [In]ref TextStateFPtrs ff); + [DllImport(dllname, CallingConvention = cc)] + public static extern void TxtStateLoad(IntPtr g, [In]ref TextStateFPtrs ff); } } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs index 1c73b14bb7..5b3c858ed5 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs @@ -7,6 +7,7 @@ using System.IO; using BizHawk.Common.BufferExtensions; using BizHawk.Emulation.Common; +using Newtonsoft.Json; namespace BizHawk.Emulation.Cores.Nintendo.GBA { @@ -32,6 +33,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA { if (!LibVBANext.LoadRom(Core, romfile, (uint)romfile.Length, biosfile, (uint)biosfile.Length)) throw new InvalidOperationException("LoadRom() returned false!"); + + CoreComm.VsyncNum = 262144; + CoreComm.VsyncDen = 4389; + CoreComm.NominalWidth = 240; + CoreComm.NominalHeight = 160; + + savebuff = new byte[LibVBANext.BinStateSize(Core)]; + savebuff2 = new byte[savebuff.Length + 13]; } catch { @@ -118,25 +127,84 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA #region SaveStates + JsonSerializer ser = new JsonSerializer() { Formatting = Formatting.Indented }; + byte[] savebuff; + byte[] savebuff2; + + class TextStateData + { + public int Frame; + public int LagCount; + public bool IsLagFrame; + } + public void SaveStateText(TextWriter writer) { + var s = new TextState(); + s.Prepare(); + var ff = s.GetFunctionPointersSave(); + LibVBANext.TxtStateSave(Core, ref ff); + s.ExtraData.IsLagFrame = IsLagFrame; + s.ExtraData.LagCount = LagCount; + s.ExtraData.Frame = Frame; + + ser.Serialize(writer, s); + // write extra copy of stuff we don't use + writer.WriteLine(); + writer.WriteLine("Frame {0}", Frame); + + //Console.WriteLine(BizHawk.Common.BufferExtensions.BufferExtensions.HashSHA1(SaveStateBinary())); } public void LoadStateText(TextReader reader) { + var s = (TextState)ser.Deserialize(reader, typeof(TextState)); + s.Prepare(); + var ff = s.GetFunctionPointersLoad(); + LibVBANext.TxtStateLoad(Core, ref ff); + IsLagFrame = s.ExtraData.IsLagFrame; + LagCount = s.ExtraData.LagCount; + Frame = s.ExtraData.Frame; } public void SaveStateBinary(BinaryWriter writer) { + if (!LibVBANext.BinStateSave(Core, savebuff, savebuff.Length)) + throw new InvalidOperationException("Core's BinStateSave() returned false!"); + writer.Write(savebuff.Length); + writer.Write(savebuff); + + // other variables + writer.Write(IsLagFrame); + writer.Write(LagCount); + writer.Write(Frame); } public void LoadStateBinary(BinaryReader reader) { + int length = reader.ReadInt32(); + if (length != savebuff.Length) + throw new InvalidOperationException("Save buffer size mismatch!"); + reader.Read(savebuff, 0, length); + if (!LibVBANext.BinStateLoad(Core, savebuff, savebuff.Length)) + throw new InvalidOperationException("Core's BinStateLoad() returned false!"); + + // other variables + IsLagFrame = reader.ReadBoolean(); + LagCount = reader.ReadInt32(); + Frame = reader.ReadInt32(); } public byte[] SaveStateBinary() { - return new byte[16]; + var ms = new MemoryStream(savebuff2, true); + var bw = new BinaryWriter(ms); + SaveStateBinary(bw); + bw.Flush(); + if (ms.Position != savebuff2.Length) + throw new InvalidOperationException(); + ms.Close(); + return savebuff2; } public bool BinarySaveStatesPreferred diff --git a/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs b/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs index 154f285833..287f542a4c 100644 --- a/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs +++ b/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs @@ -237,9 +237,6 @@ namespace BizHawk.Emulation.Cores.WonderSwan // write extra copy of stuff we don't use writer.WriteLine(); writer.WriteLine("Frame {0}", Frame); - - // debug - //Console.WriteLine(Util.Hash_SHA1(SaveStateBinary())); } public void LoadStateText(TextReader reader) @@ -290,6 +287,8 @@ namespace BizHawk.Emulation.Cores.WonderSwan var bw = new BinaryWriter(ms); SaveStateBinary(bw); bw.Flush(); + if (ms.Position != savebuff2.Length) + throw new InvalidOperationException(); ms.Close(); return savebuff2; } diff --git a/output/dll/libvbanext.dll b/output/dll/libvbanext.dll index 4c70fc058747e5efe1673ba78555f1afce3b54b2..24f2b01f65b75212fcc507f21fcb4183cfec32b3 100644 GIT binary patch literal 442368 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

UmYIy4j|X_`54SNPcg+==MyZQRq{=O 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%0Dlvbn*P;d<818DvT>G&ADu>a-4EeGU$BEHo& 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 TndB#_fushK8c1s3SPlFS(nvvi literal 427008 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⋙q=(F31I(PFCeC3dUm2(AhKfAX- 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 diff --git a/vbanext/instance.cpp b/vbanext/instance.cpp index 15abdd09f0..4cf2918bab 100644 --- a/vbanext/instance.cpp +++ b/vbanext/instance.cpp @@ -21,6 +21,8 @@ #include "constarrays.h" +#include "newstate.h" + #define INLINE class Gigazoid @@ -430,10 +432,6 @@ typedef struct int bits; int state; u8 data[12]; - // reserved variables for future - u8 reserved[12]; - bool reserved2; - u32 reserved3; } RTCCLOCKDATA; RTCCLOCKDATA rtcClockData; @@ -527,40 +525,32 @@ bool rtcWrite(u32 address, u16 value) break; case 0x65: { - struct tm *newtime; - time_t long_time; - - time( &long_time ); /* Get time as long integer. */ - newtime = localtime( &long_time ); /* Convert to local time. */ - + tm newtime; + GetTime(newtime); rtcClockData.dataLen = 7; - rtcClockData.data[0] = toBCD(newtime->tm_year); - rtcClockData.data[1] = toBCD(newtime->tm_mon+1); - rtcClockData.data[2] = toBCD(newtime->tm_mday); - rtcClockData.data[3] = toBCD(newtime->tm_wday); - rtcClockData.data[4] = toBCD(newtime->tm_hour); - rtcClockData.data[5] = toBCD(newtime->tm_min); - rtcClockData.data[6] = toBCD(newtime->tm_sec); + rtcClockData.data[0] = toBCD(newtime.tm_year); + rtcClockData.data[1] = toBCD(newtime.tm_mon+1); + rtcClockData.data[2] = toBCD(newtime.tm_mday); + rtcClockData.data[3] = toBCD(newtime.tm_wday); + rtcClockData.data[4] = toBCD(newtime.tm_hour); + rtcClockData.data[5] = toBCD(newtime.tm_min); + rtcClockData.data[6] = toBCD(newtime.tm_sec); rtcClockData.state = DATA; } break; case 0x67: { - struct tm *newtime; - time_t long_time; - - time( &long_time ); /* Get time as long integer. */ - newtime = localtime( &long_time ); /* Convert to local time. */ - + tm newtime; + GetTime(newtime); rtcClockData.dataLen = 3; - rtcClockData.data[0] = toBCD(newtime->tm_hour); - rtcClockData.data[1] = toBCD(newtime->tm_min); - rtcClockData.data[2] = toBCD(newtime->tm_sec); + rtcClockData.data[0] = toBCD(newtime.tm_hour); + rtcClockData.data[1] = toBCD(newtime.tm_min); + rtcClockData.data[2] = toBCD(newtime.tm_sec); rtcClockData.state = DATA; } break; default: - systemMessage(0, "Unknown RTC command %02x", rtcClockData.command); + //systemMessage(0, "Unknown RTC command %02x", rtcClockData.command); rtcClockData.state = IDLE; break; } @@ -618,6 +608,33 @@ void rtcReset (void) rtcClockData.bits = 0; rtcClockData.state = IDLE; } + +void GetTime(tm ×) +{ + time_t t = RTCUseRealTime ? time(nullptr) : RTCTime; + #if defined _MSC_VER + gmtime_s(×, &t); + #elif defined __MINGW32__ + tm *tmp = gmtime(&t); + times = *tmp; + #elif defined __GNUC__ + gmtime_r(&t, ×); + #endif +} + +uint64_t RTCTime; +int RTCTicks; +bool RTCUseRealTime; + +void AdvanceRTC(int ticks) +{ + RTCTicks += ticks; + while (RTCTicks >= 16777216) + { + RTCTicks -= 16777216; + RTCTime++; + } +} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // END MEMORY.CPP @@ -660,6 +677,19 @@ void rtcReset (void) class Blip_Buffer { public: + templatevoid SyncState(NewState *ns) + { + NSS(clock_rate_); + NSS(length_); + NSS(sample_rate_); + NSS(factor_); + NSS(offset_); + // int32_t *buffer_; shouldn't need to save + NSS(buffer_size_); + NSS(reader_accum_); + + } + Blip_Buffer::Blip_Buffer() { factor_ = INT_MAX; @@ -743,11 +773,11 @@ class Blip_Buffer class Blip_Synth { public: - Blip_Buffer* buf; int delta_factor; - Blip_Synth() + templatevoid SyncState(NewState *ns) { + NSS(delta_factor); } void volume( double v ) { delta_factor = int ((v * 1.0) * (1L << BLIP_SAMPLE_BITS) + 0.5); } @@ -778,9 +808,6 @@ class Blip_Synth void offset_inline( int32_t t, int delta, Blip_Buffer* buf ) const { offset_resampled( t * buf->factor_ + buf->offset_, delta, buf ); } - void offset_inline( int32_t t, int delta ) const { - offset_resampled( t * buf->factor_ + buf->offset_, delta, buf ); - } }; #define TRIGGER_MASK 0x80 @@ -813,6 +840,25 @@ class Gb_Osc unsigned phase; /* waveform phase (or equivalent)*/ bool enabled; /* internal enabled flag*/ + templatevoid SyncState(NewState *ns) + { + EBS(output, -1); + EVS(output, outputs[0], 0); + EVS(output, outputs[1], 1); + EVS(output, outputs[2], 2); + EVS(output, outputs[3], 3); + EES(output, nullptr); + + NSS(mode); + NSS(dac_off_amp); + NSS(last_amp); + + NSS(delay); + NSS(length_ctr); + NSS(phase); + NSS(enabled); + } + void Gb_Osc::clock_length() { if ( (regs [4] & LENGTH_ENABLED) && length_ctr ) @@ -874,6 +920,14 @@ class Gb_Env : public Gb_Osc int volume; bool env_enabled; + templatevoid SyncState(NewState *ns) + { + Gb_Osc::SyncState(ns); + NSS(env_delay); + NSS(volume); + NSS(env_enabled); + } + void Gb_Env::clock_envelope() { if ( env_enabled && --env_delay <= 0 && reload_env_timer() ) @@ -961,7 +1015,12 @@ class Gb_Env : public Gb_Osc class Gb_Square : public Gb_Env { - public: +public: + templatevoid SyncState(NewState *ns) + { + Gb_Env::SyncState(ns); + } + bool Gb_Square::write_register( int frame_phase, int reg, int old_data, int data ) { bool result = Gb_Env::write_register( frame_phase, reg, old_data, data ); @@ -1065,6 +1124,15 @@ class Gb_Sweep_Square : public Gb_Square bool sweep_enabled; bool sweep_neg; + templatevoid SyncState(NewState *ns) + { + Gb_Square::SyncState(ns); + NSS(sweep_freq); + NSS(sweep_delay); + NSS(sweep_enabled); + NSS(sweep_neg); + } + void Gb_Sweep_Square::clock_sweep() { if ( --sweep_delay <= 0 ) @@ -1128,6 +1196,12 @@ class Gb_Noise : public Gb_Env public: int divider; /* noise has more complex frequency divider setup*/ + templatevoid SyncState(NewState *ns) + { + Gb_Env::SyncState(ns); + NSS(divider); + } + /* Quickly runs LFSR for a large number of clocks. For use when noise is generating*/ /* no sound.*/ unsigned run_lfsr( unsigned s, unsigned mask, int count ) @@ -1314,6 +1388,13 @@ class Gb_Wave : public Gb_Osc int agb_mask; /* 0xFF if AGB features enabled, 0 otherwise*/ uint8_t* wave_ram; /* 32 bytes (64 nybbles), stored in APU*/ + templatevoid SyncState(NewState *ns) + { + Gb_Osc::SyncState(ns); + NSS(sample_buf); + NSS(agb_mask); + } + INLINE void Gb_Wave::write_register( int frame_phase, int reg, int old_data, int data ) { switch ( reg ) @@ -1505,15 +1586,29 @@ int soundTicksUp; // counts up from 0 being the last time the blips were emptied int soundEnableFlag; // = 0x3ff; /* emulator channels enabled*/ -typedef struct +struct gba_pcm_t { int last_amp; int last_time; int shift; Blip_Buffer* output; -} gba_pcm_t; -typedef struct + templatevoid SyncState(NewState *ns, Gigazoid *g) + { + NSS(last_amp); + NSS(last_time); + NSS(shift); + + // tricky + EBS(output, -1); + EVS(output, &g->bufs_buffer[0], 0); + EVS(output, &g->bufs_buffer[1], 1); + EVS(output, &g->bufs_buffer[2], 2); + EES(output, nullptr); + } +}; + +struct gba_pcm_fifo_t { bool enabled; uint8_t fifo [32]; @@ -1524,7 +1619,20 @@ typedef struct int which; int timer; gba_pcm_t pcm; -} gba_pcm_fifo_t; + + templatevoid SyncState(NewState *ns, Gigazoid *g) + { + NSS(enabled); + NSS(fifo); + NSS(count); + NSS(dac); + NSS(readIndex); + NSS(writeIndex); + NSS(which); + NSS(timer); + SSS_HACKY(pcm, g); + } +}; gba_pcm_fifo_t pcm [2]; @@ -1618,45 +1726,26 @@ struct gb_apu_t Gb_Noise noise; Blip_Synth good_synth; Blip_Synth med_synth; + + templatevoid SyncState(NewState *ns) + { + NSS(reduce_clicks_); + NSS(regs); + NSS(last_time); + NSS(frame_time); + NSS(frame_period); + NSS(frame_phase); + NSS(volume_); + SSS(square1); + SSS(square2); + SSS(wave); + SSS(noise); + + SSS(good_synth); + SSS(med_synth); + } } gb_apu; -// Format of save state. Should be stable across versions of the library, -// with earlier versions properly opening later save states. Includes some -// room for expansion so the state size shouldn't increase. -struct gb_apu_state_t -{ - // Values stored as plain int so your code can read/write them easily. - // Structure can NOT be written to disk, since format is not portable. - typedef int val_t; - - enum { format0 = 0x50414247 }; - - val_t format; // format of all following data - val_t version; // later versions just add fields to end - - unsigned char regs [0x40]; - val_t frame_time; - val_t frame_phase; - - val_t sweep_freq; - val_t sweep_delay; - val_t sweep_enabled; - val_t sweep_neg; - val_t noise_divider; - val_t wave_buf; - - val_t delay [4]; - val_t length_ctr [4]; - val_t phase [4]; - val_t enabled [4]; - - val_t env_delay [3]; - val_t env_volume [3]; - val_t env_enabled [3]; - - val_t unused [13]; // for future expansion -}; - #define VOL_REG 0xFF24 #define STEREO_REG 0xFF25 #define STATUS_REG 0xFF26 @@ -8956,9 +9045,6 @@ bool CPUReadBatteryFile(const char *fileName) return true; } */ -void CPUCleanUp (void) -{ -} int CPULoadRom(const u8 *romfile, const u32 romfilelen) { @@ -8986,9 +9072,6 @@ int CPULoadRom(const u8 *romfile, const u32 romfilelen) } - - - flashInit(); eepromInit(); @@ -12557,6 +12640,8 @@ updateLoop: soundTicksUp += clockTicks; + AdvanceRTC(clockTicks); + if(graphics.lcdTicks <= 0) { if(io_registers[REG_DISPSTAT] & 1) @@ -12997,10 +13082,6 @@ void systemDrawScreen (void) // TODO: fix up RTC so this is used //uint32_t systemGetClock (void) { return 0; } -void systemMessage(const char *, ...) -{ -} - // called at regular intervals on sound clock void systemOnWriteDataToSoundBuffer(int16_t * finalWave, int length) { @@ -13011,6 +13092,225 @@ void systemOnWriteDataToSoundBuffer(int16_t * finalWave, int length) } public: + +templatevoid SyncState(NewState *ns) +{ + NSS(flashSaveMemory); + NSS(flashState); + NSS(flashReadState); + NSS(flashSize); + NSS(flashDeviceID); + NSS(flashManufacturerID); + NSS(flashBank); + + NSS(eepromMode); + NSS(eepromByte); + NSS(eepromBits); + NSS(eepromAddress); + NSS(eepromData); + NSS(eepromBuffer); + NSS(eepromInUse); + NSS(eepromSize); + + NSS(rtcClockData); + NSS(rtcEnabled); + NSS(RTCTime); + NSS(RTCTicks); + NSS(RTCUseRealTime); + + NSS(soundTicksUp); + NSS(soundEnableFlag); + SSS_HACKY(pcm[0], this); + SSS_HACKY(pcm[1], this); + SSS(pcm_synth); + + SSS(bufs_buffer[0]); + SSS(bufs_buffer[1]); + SSS(bufs_buffer[2]); + NSS(mixer_samples_read); + + SSS(gb_apu); + + NSS(cpuNextEvent); + NSS(holdState); + NSS(cpuPrefetch); + NSS(cpuTotalTicks); + NSS(memoryWait); + NSS(memoryWaitSeq); + NSS(memoryWait32); + NSS(memoryWaitSeq32); + NSS(biosProtected); + NSS(cpuBitsSet); + + NSS(N_FLAG); + NSS(C_FLAG); + NSS(Z_FLAG); + NSS(V_FLAG); + NSS(armState); + NSS(armIrqEnable); + NSS(armMode); + + NSS(io_registers); + + NSS(MOSAIC); + + NSS(BG2X_L); + NSS(BG2X_H); + NSS(BG2Y_L); + NSS(BG2Y_H); + NSS(BG3X_L); + NSS(BG3X_H); + NSS(BG3Y_L); + NSS(BG3Y_H); + NSS(BLDMOD); + NSS(COLEV); + NSS(COLY); + NSS(DM0SAD_L); + NSS(DM0SAD_H); + NSS(DM0DAD_L); + NSS(DM0DAD_H); + NSS(DM0CNT_L); + NSS(DM0CNT_H); + NSS(DM1SAD_L); + NSS(DM1SAD_H); + NSS(DM1DAD_L); + NSS(DM1DAD_H); + NSS(DM1CNT_L); + NSS(DM1CNT_H); + NSS(DM2SAD_L); + NSS(DM2SAD_H); + NSS(DM2DAD_L); + NSS(DM2DAD_H); + NSS(DM2CNT_L); + NSS(DM2CNT_H); + NSS(DM3SAD_L); + NSS(DM3SAD_H); + NSS(DM3DAD_L); + NSS(DM3DAD_H); + NSS(DM3CNT_L); + NSS(DM3CNT_H); + + NSS(timerOnOffDelay); + NSS(timer0Value); + NSS(dma0Source); + NSS(dma0Dest); + NSS(dma1Source); + NSS(dma1Dest); + NSS(dma2Source); + NSS(dma2Dest); + NSS(dma3Source); + NSS(dma3Dest); + + EBS(cpuSaveGameFunc, 0); + EVS(cpuSaveGameFunc, &Gigazoid::flashWrite, 1); + EVS(cpuSaveGameFunc, &Gigazoid::sramWrite, 2); + EVS(cpuSaveGameFunc, &Gigazoid::flashSaveDecide, 3); + EVS(cpuSaveGameFunc, &Gigazoid::flashDelayedWrite, 4); + EVS(cpuSaveGameFunc, &Gigazoid::sramDelayedWrite, 5); + EES(cpuSaveGameFunc, nullptr); + + NSS(fxOn); + NSS(windowOn); + NSS(cpuDmaTicksToUpdate); + NSS(IRQTicks); + NSS(intState); + + NSS(bus); + NSS(graphics); + + // map; // values never change + + NSS(clockTicks); + + NSS(romSize); + NSS(line); + NSS(gfxInWin); + NSS(lineOBJpixleft); + NSS(joy); + + NSS(gfxBG2Changed); + NSS(gfxBG3Changed); + + NSS(gfxBG2X); + NSS(gfxBG2Y); + NSS(gfxBG3X); + NSS(gfxBG3Y); + + NSS(ioReadable); + NSS(gbaSaveType); + + NSS(stopState); + + NSS(timer0On); + NSS(timer0Ticks); + NSS(timer0Reload); + NSS(timer0ClockReload); + NSS(timer1Value); + NSS(timer1On); + NSS(timer1Ticks); + NSS(timer1Reload); + NSS(timer1ClockReload); + NSS(timer2Value); + NSS(timer2On); + NSS(timer2Ticks); + NSS(timer2Reload); + NSS(timer2ClockReload); + NSS(timer3Value); + NSS(timer3On); + NSS(timer3Ticks); + NSS(timer3Reload); + NSS(timer3ClockReload); + + NSS(saveType); + NSS(skipBios); + NSS(cpuIsMultiBoot); + NSS(cpuSaveType); + NSS(enableRtc); + NSS(mirroringEnable); + NSS(skipSaveGameBattery); + + NSS(cpuDmaCount); + + NSS(internalRAM); + NSS(workRAM); + NSS(vram); + NSS(pix); + NSS(oam); + NSS(ioMem); + + NSS(cpuSramEnabled); + NSS(cpuFlashEnabled); + NSS(cpuEEPROMEnabled); + NSS(cpuEEPROMSensorEnabled); + + EBS(renderLine, 0); + EVS(renderLine, &Gigazoid::mode0RenderLine, 0x01); + EVS(renderLine, &Gigazoid::mode0RenderLineNoWindow, 0x02); + EVS(renderLine, &Gigazoid::mode0RenderLineAll, 0x03); + EVS(renderLine, &Gigazoid::mode1RenderLine, 0x11); + EVS(renderLine, &Gigazoid::mode1RenderLineNoWindow, 0x12); + EVS(renderLine, &Gigazoid::mode1RenderLineAll, 0x13); + EVS(renderLine, &Gigazoid::mode2RenderLine, 0x21); + EVS(renderLine, &Gigazoid::mode2RenderLineNoWindow, 0x22); + EVS(renderLine, &Gigazoid::mode2RenderLineAll, 0x23); + EVS(renderLine, &Gigazoid::mode3RenderLine, 0x31); + EVS(renderLine, &Gigazoid::mode3RenderLineNoWindow, 0x32); + EVS(renderLine, &Gigazoid::mode3RenderLineAll, 0x33); + EVS(renderLine, &Gigazoid::mode4RenderLine, 0x41); + EVS(renderLine, &Gigazoid::mode4RenderLineNoWindow, 0x42); + EVS(renderLine, &Gigazoid::mode4RenderLineAll, 0x43); + EVS(renderLine, &Gigazoid::mode5RenderLine, 0x51); + EVS(renderLine, &Gigazoid::mode5RenderLineNoWindow, 0x52); + EVS(renderLine, &Gigazoid::mode5RenderLineAll, 0x53); + EES(renderLine, nullptr); + + NSS(render_line_all_enabled); + + // address_lut; // values never change + + NSS(lagged); +} + Gigazoid() { Gigazoid_Init(); @@ -13018,7 +13318,6 @@ public: ~Gigazoid() { - CPUCleanUp(); // todo: check me! } bool LoadRom(const u8 *romfile, const u32 romfilelen, const u8 *biosfile, const u32 biosfilelen) @@ -13044,7 +13343,9 @@ public: CPUInit(biosfile, biosfilelen); CPUReset(); - soundReset(); + + // CPUReset already calls this, but if that were to change + // soundReset(); return true; } @@ -13111,4 +13412,38 @@ EXPORT int FrameAdvance(Gigazoid *g, int input, u32 *videobuffer, s16 *audiobuff return g->FrameAdvance(input, videobuffer, audiobuffer, numsamp); } +EXPORT int BinStateSize(Gigazoid *g) +{ + NewStateDummy dummy; + g->SyncState(&dummy); + return dummy.GetLength(); +} + +EXPORT int BinStateSave(Gigazoid *g, char *data, int length) +{ + NewStateExternalBuffer saver(data, length); + g->SyncState(&saver); + return !saver.Overflow() && saver.GetLength() == length; +} + +EXPORT int BinStateLoad(Gigazoid *g, const char *data, int length) +{ + NewStateExternalBuffer loader(const_cast(data), length); + g->SyncState(&loader); + return !loader.Overflow() && loader.GetLength() == length; +} + +EXPORT void TxtStateSave(Gigazoid *g, FPtrs *ff) +{ + NewStateExternalFunctions saver(ff); + g->SyncState(&saver); +} + +EXPORT void TxtStateLoad(Gigazoid *g, FPtrs *ff) +{ + NewStateExternalFunctions loader(ff); + g->SyncState(&loader); +} + + #include "optable.inc" diff --git a/vbanext/mingw/Makefile b/vbanext/mingw/Makefile new file mode 100644 index 0000000000..75c5f60d7d --- /dev/null +++ b/vbanext/mingw/Makefile @@ -0,0 +1,27 @@ +CXX = g++ +CXXFLAGS = -Wall -O3 -fpermissive -Wno-unused-but-set-variable -Wno-strict-aliasing -Wzero-as-null-pointer-constant -Wno-unused-variable -Wno-parentheses -Wno-sign-compare -std=gnu++11 -fomit-frame-pointer -fno-exceptions +TARGET = libvbanext.dll +LDFLAGS = -shared -static-libgcc -static-libstdc++ $(CXXFLAGS) +RM = rm +CP = cp + +SRCS = \ + ../instance.cpp \ + ../newstate.cpp + +OBJS = $(SRCS:.cpp=.o) + +all: $(TARGET) + +%.o: %.cpp + $(CXX) -c -o $@ $< $(CXXFLAGS) + +$(TARGET) : $(OBJS) + $(CXX) -o $@ $(LDFLAGS) $(OBJS) + +clean: + $(RM) $(OBJS) + $(RM) $(TARGET) + +install: + $(CP) $(TARGET) ../../output/dll diff --git a/vbanext/msvs/libvbanext/libvbanext.vcxproj b/vbanext/msvs/libvbanext/libvbanext.vcxproj index 56cc5d8cb6..c2e55b1d9c 100644 --- a/vbanext/msvs/libvbanext/libvbanext.vcxproj +++ b/vbanext/msvs/libvbanext/libvbanext.vcxproj @@ -71,10 +71,12 @@ + + diff --git a/vbanext/msvs/libvbanext/libvbanext.vcxproj.filters b/vbanext/msvs/libvbanext/libvbanext.vcxproj.filters index 3deff3727c..17408fd5f3 100644 --- a/vbanext/msvs/libvbanext/libvbanext.vcxproj.filters +++ b/vbanext/msvs/libvbanext/libvbanext.vcxproj.filters @@ -21,6 +21,9 @@ Source Files + + Source Files + @@ -38,6 +41,9 @@ Header Files + + Header Files + diff --git a/vbanext/newstate.cpp b/vbanext/newstate.cpp new file mode 100644 index 0000000000..1b356e3a86 --- /dev/null +++ b/vbanext/newstate.cpp @@ -0,0 +1,64 @@ +#include "newstate.h" +#include + +NewStateDummy::NewStateDummy() + :length(0) +{ +} +void NewStateDummy::Save(const void *ptr, size_t size, const char *name) +{ + length += size; +} +void NewStateDummy::Load(void *ptr, size_t size, const char *name) +{ +} + +NewStateExternalBuffer::NewStateExternalBuffer(char *buffer, long maxlength) + :buffer(buffer), length(0), maxlength(maxlength) +{ +} + +void NewStateExternalBuffer::Save(const void *ptr, size_t size, const char *name) +{ + if (maxlength - length >= (long)size) + { + std::memcpy(buffer + length, ptr, size); + } + length += size; +} + +void NewStateExternalBuffer::Load(void *ptr, size_t size, const char *name) +{ + char *dst = static_cast(ptr); + if (maxlength - length >= (long)size) + { + std::memcpy(dst, buffer + length, size); + } + length += size; +} + +NewStateExternalFunctions::NewStateExternalFunctions(const FPtrs *ff) + :Save_(ff->Save_), + Load_(ff->Load_), + EnterSection_(ff->EnterSection_), + ExitSection_(ff->ExitSection_) +{ +} + +void NewStateExternalFunctions::Save(const void *ptr, size_t size, const char *name) +{ + Save_(ptr, size, name); +} +void NewStateExternalFunctions::Load(void *ptr, size_t size, const char *name) +{ + Load_(ptr, size, name); +} +void NewStateExternalFunctions::EnterSection(const char *name) +{ + EnterSection_(name); +} +void NewStateExternalFunctions::ExitSection(const char *name) +{ + ExitSection_(name); +} + diff --git a/vbanext/newstate.h b/vbanext/newstate.h new file mode 100644 index 0000000000..2f0f75f8ef --- /dev/null +++ b/vbanext/newstate.h @@ -0,0 +1,99 @@ +#ifndef NEWSTATE_H +#define NEWSTATE_H + +#include +#include + +class NewState +{ +public: + virtual void Save(const void *ptr, size_t size, const char *name) = 0; + virtual void Load(void *ptr, size_t size, const char *name) = 0; + virtual void EnterSection(const char *name) { } + virtual void ExitSection(const char *name) { } +}; + +class NewStateDummy : public NewState +{ +private: + long length; +public: + NewStateDummy(); + long GetLength() { return length; } + void Rewind() { length = 0; } + virtual void Save(const void *ptr, size_t size, const char *name); + virtual void Load(void *ptr, size_t size, const char *name); +}; + +class NewStateExternalBuffer : public NewState +{ +private: + char *const buffer; + long length; + const long maxlength; +public: + NewStateExternalBuffer(char *buffer, long maxlength); + long GetLength() { return length; } + void Rewind() { length = 0; } + bool Overflow() { return length > maxlength; } + virtual void Save(const void *ptr, size_t size, const char *name); + virtual void Load(void *ptr, size_t size, const char *name); +}; + +struct FPtrs +{ + void (*Save_)(const void *ptr, size_t size, const char *name); + void (*Load_)(void *ptr, size_t size, const char *name); + void (*EnterSection_)(const char *name); + void (*ExitSection_)(const char *name); +}; + +class NewStateExternalFunctions : public NewState +{ +private: + void (*Save_)(const void *ptr, size_t size, const char *name); + void (*Load_)(void *ptr, size_t size, const char *name); + void (*EnterSection_)(const char *name); + void (*ExitSection_)(const char *name); +public: + NewStateExternalFunctions(const FPtrs *ff); + virtual void Save(const void *ptr, size_t size, const char *name); + virtual void Load(void *ptr, size_t size, const char *name); + virtual void EnterSection(const char *name); + virtual void ExitSection(const char *name); +}; + +// defines and explicitly instantiates +#define SYNCFUNC(x)\ + template void x::SyncState(NewState *ns);\ + template void x::SyncState(NewState *ns);\ + templatevoid x::SyncState(NewState *ns) + +// N = normal variable +// P = pointer to fixed size data +// S = "sub object" +// T = "ptr to sub object" +// R = pointer, store its offset from some other pointer +// E = general purpose cased value "enum" + + +// first line is default value in converted enum; last line is default value in argument x +#define EBS(x,d) do { int _ttmp = (d); if (isReader) ns->Load(&_ttmp, sizeof(_ttmp), #x); if (0) +#define EVS(x,v,n) else if (!isReader && (x) == (v)) _ttmp = (n); else if (isReader && _ttmp == (n)) (x) = (v) +#define EES(x,d) else if (isReader) (x) = (d); if (!isReader) ns->Save(&_ttmp, sizeof(_ttmp), #x); } while (0) + +#define RSS(x,b) do { if (isReader)\ +{ ptrdiff_t _ttmp; ns->Load(&_ttmp, sizeof(_ttmp), #x); (x) = (_ttmp == (ptrdiff_t)0xdeadbeef ? 0 : (b) + _ttmp); }\ + else\ +{ ptrdiff_t _ttmp = (x) == 0 ? 0xdeadbeef : (x) - (b); ns->Save(&_ttmp, sizeof(_ttmp), #x); } } while (0) + +#define PSS(x,s) do { if (isReader) ns->Load((x), (s), #x); else ns->Save((x), (s), #x); } while (0) + +#define NSS(x) do { if (isReader) ns->Load(&(x), sizeof(x), #x); else ns->Save(&(x), sizeof(x), #x); } while (0) + +#define SSS(x) do { ns->EnterSection(#x); (x).SyncState(ns); ns->ExitSection(#x); } while (0) +#define SSS_HACKY(x,extra) do { ns->EnterSection(#x); (x).SyncState(ns, extra); ns->ExitSection(#x); } while (0) + +#define TSS(x) do { ns->EnterSection(#x); (x)->SyncState(ns); ns->ExitSection(#x); } while (0) + +#endif