Commit Graph

46 Commits

Author SHA1 Message Date
goyuken b40897bb77 sound api changes. added a new ISyncSoundProvider, which works similarly to ISoundProvider except the source (not the sink) determines the number of samples to process. Added facilities to metaspu, dcfilter, speexresampler to work with ISyncSoundProvider. Add ISyncSoundProvider to IEmulator. All IEmulators must provide sync sound, but they need not provide async sound. When async is needed and an IEmulator doesn't provide it, the frontend will wrap it in a vecna metaspu. SNES, GB changed to provide sync sound only. All other emulator cores mostly unchanged; they just provide stub fakesync alongside async, for now. For the moment, the only use of the sync sound is for realtime audio throttling, where it works and sounds quite nice. In the future, sync sound will be supported for AV dumping as well. 2012-10-11 00:44:59 +00:00
goyuken 98d9f13600 change IEmulator.DeterministicEmulation to get-only; the old interface implies that a core should be able to take a change to the property at any time, which isn't feasable. most existing cores changed to return true all the time. SNES now takes determinism parameter in Load() 2012-10-03 15:31:04 +00:00
goyuken 51fc8e695c add 'bool rendersound' to IEmualtor.FrameAdvance()
if false, the emulator is free to gain whatever speedup it can by not doing audio processing (shouldn't change anything sync related, though)
the core should still always call SoundProvider.GetSamples() after each FrameAdvance(), else DRAGONS
at the moment, only test-implemented in gambattehawk
2012-09-20 19:52:47 +00:00
beirich 18f3da0f55 gen: add missing savestate vars. rewind seems stable now from the games I've tested. 2012-09-18 11:09:05 +00:00
beirich b2e48d8749 gen: savestates work, though they're nes-style brittle savestates for now 2012-09-17 23:28:22 +00:00
beirich b04189b6b1 gen: rewind is working, savestates are not working [yet]. will fix more tomorrow 2012-09-17 05:48:24 +00:00
zeromus b33fc4982c remove derelict CoreVersion/Introspection stuff 2012-09-16 20:08:36 +00:00
beirich 5742d69f6a 2012-09-16 19:03:44 +00:00
beirich adee5befa5 Genesis ROM header parsing
and other stuff thats only committed because svn isn't decentralized!
2012-09-13 04:13:49 +00:00
beirich 90d1d12086 gen: fix some vram corruption issues
general: fix some build warnings
2012-09-09 21:15:20 +00:00
zeromus f5c0965045 snes-support save ram 2012-09-04 07:09:00 +00:00
beirich c9b3f7bedf gen fixes: HINTs shouldnt fire during vblank, some DMA fixes, fix a render priority issue (albeit not the ideal fix), substantial rom compatibility testing 2012-09-03 16:01:56 +00:00
adelikat 1f128aeda4 Ram Search - small speedup on UpdateValues 2012-09-02 01:52:16 +00:00
adelikat 8c5d8741cb Genesis - add Rom data memory domain 2012-09-02 01:33:12 +00:00
adelikat 2af24ba9fd Genesis - add system bus memory domain 2012-09-01 19:49:40 +00:00
beirich d586876f40 gen: implement H-ints
gen: implement Vram/Vram DMA copy (badly)
gen: fix dumb sprite rendering bug
gen: fix crash bug with certain WINDOW settings
2012-09-01 18:40:52 +00:00
beirich e24f0962fc gen: fix dumb tile priority bug (primarily affects Ghouls n Ghosts, which use the layers backwards from normal) 2012-08-30 04:29:33 +00:00
beirich 8ad3e72ffa Allow easy swapping of active 68000 core the C# core, or Musashi... As we are likely to be swapping between versions rapidly for some period of time. 2012-08-26 14:39:06 +00:00
andres.delikat a34bf45610 Add islag to savestates (now lagframe alert status updates when loading a state) 2012-07-30 14:42:52 +00:00
andres.delikat daff01ad2e Genesis - add lag and frame counts to savestates 2012-07-30 13:43:25 +00:00
beirich db1bfcfdfc very preliminary genesis savestate support 2012-05-22 02:25:41 +00:00
beirich 59eb4b4abe ym2612: support TimerA and TimerB 2012-04-29 06:05:15 +00:00
beirich 7f1292d4f9 start on YM2612. DAC works. process port writes for FM channels. No FM channels output audio yet. 2012-04-29 01:09:06 +00:00
andres.delikat b2748b7836 Genesis - hook up lag counter (shows all frames as lag currently), and hook core up to input config dialog (1 controller only currently) 2011-12-24 01:59:51 +00:00
beirich f8564bf8a7 GEN: Preliminary sprite rendering. hook up MemoryDomains. 2011-10-16 06:23:15 +00:00
beirich 5b5c7c2890 68000: add MULU, MULS, DIVU, DIVS, MOVE to CCR
Some genesis source reorganization
2011-10-11 03:52:44 +00:00
beirich 1c38de023e 68000: implement BSET, BCLR, BCHG, and NOT 2011-10-08 23:26:29 +00:00
beirich ccea71e74d 68000: interrupt support.
gen: fire vertical interrupt, now some games show sega logo before immediately crashing!
2011-10-08 15:44:41 +00:00
beirich f2ca21759c 68000 timings and flags fixes, some new opcode handlers 2011-10-07 03:04:48 +00:00
beirich 8fb8a35317 Genesis core revive! Get it back to where loading a genesis rom doesnt crash everything immediately 2011-10-01 17:06:25 +00:00
beirich f3dc6068ce delete extra/external 68k core 2011-09-27 02:46:23 +00:00
beirich b27673f26c M-M-M-MONSTER COMMIT! change Game-load api stuff 2011-08-04 03:20:54 +00:00
andres.delikat 2e68314e01 Movies that start from savestate now supported. Record Movie dialog "Record from Now" option implemented. ResetFrameCounter() added to IEmulator and implemented in all existing cores 2011-07-30 20:49:36 +00:00
beirich c8727ae01f fix some gamedb stuff, add some genesis games to db, get genesis back to a state where it at least loads roms correctly 2011-07-10 04:54:18 +00:00
zeromus c0988feaa3 add CoreInputComm/CoreOutputComm, remove Query system, hook up nes video config options 2011-06-11 22:15:08 +00:00
beirich 9283a9f37d IEmulator now implements IDisposable; client now disposes cores 2011-06-02 02:59:18 +00:00
andres.delikat f440f843dd Add IsLagFrame bool to IEmulator and implement in all platforms. Make an alert font in Render panel and make input display use it when a frame is a lag frame 2011-05-01 16:04:53 +00:00
andres.delikat bf93a936df Change unimplemented lag counters to return -1 instead of 0 since that is more obviously not implemented. Make null emulator return 0 since by definition it would never lag. 2011-05-01 13:05:16 +00:00
andres.delikat 6732cd50ff Make LagCount get/set in IEmulator and refactored emulators. Implemented the Lag counter in the NES core. 2011-05-01 12:59:26 +00:00
andres.delikat 2fa3561c45 Add LagCounter int to IEmulator, returns 0 on every emulator at the moment. Hook up RenderPanel's LagCounter display 2011-05-01 00:20:39 +00:00
zeromus bc74d6c575 complete speed/skip/non60-throttle functionality and controllable vsync. maybe a bit rough, but i'll continue to support it. 2011-02-21 09:48:53 +00:00
beirich 577f249905 Misc code cleanup 2011-02-16 04:45:59 +00:00
andres.delikat 48bb648ff9 IEmulator now has a string type so that emulators can return a string representing the platform they emulate 2011-02-16 02:42:58 +00:00
beirich 2ec181e50f cleanup some code after removing HardReset from IEmulator API 2011-01-21 07:14:42 +00:00
beirich e62c1bc673 add memory API, remove HardReset from IEmulator 2011-01-21 03:59:50 +00:00
beirich 89e4c5a674 2011-01-11 02:55:51 +00:00