Commit Graph

98 Commits

Author SHA1 Message Date
goyuken 0803adc32a add a "BoardName" to IEmulator that an emulation core can use to return useful information about how the rom is being emulated. meant to be mostly for informative purposes; shouldn't rely on it for too much. implemented in GB and NES cores 2013-08-24 16:54:22 +00:00
zeromus 226622e339 renovate the firmware system. cores now have the ability to get firmware themselves, without needing to have files loaded or pass paths from the multiclient. users can select whatever firmware they want from the firmwares config dialog. 2013-08-10 01:17:06 +00:00
adelikat 21552eaeec Use fast version of reading/writing hex on snes savestates too, they could use the speed 2013-08-05 12:57:08 +00:00
adelikat 7ac1da8c96 Set the right order of buttons, and good defaults for controllers and joypads for all consoles 2013-07-29 02:11:00 +00:00
goyuken aa6b743b86 snes: fix a bug which caused false positives in lagframe detection (frames marked as lag where input was actually used). this is purely a display issue and did not affect emulation at all. the bug was not caused by r4206, but r4206 causes it to occur more often. 2013-06-29 23:32:41 +00:00
goyuken 0818526b3d snes: fix wrong default memory domain in ramsearch 2013-05-14 21:33:36 +00:00
goyuken 7b7b95e95d add a new field to IEmulator: bool BinarySaveStatesPreferred { get; }. a core should set it to true to indicate that it would prefer to save and load binary savestates (but both types must be supported). set to true on 7800, gb, dgb, gba, n64, snes, saturn cores, as they all create text savestates that are simply dumps of the binary savestate. for the moment, frontend does nothing with this new information. 2013-05-06 20:51:28 +00:00
zeromus df99f36464 support bsnes xml files and super road blaster MSU-1 game 2013-04-24 22:09:11 +00:00
zeromus b482a4af0b make note about how to get msu-1 working 2013-04-24 17:17:25 +00:00
zeromus 45a671ce73 snes-add "always doublesize framebuffer" snes option which makes the logical output of the snes core always sized appropriately for sudden hires-width or interlacing 2013-04-22 22:34:18 +00:00
adelikat cff1ff2940 Removing unused directives from a bunch of files because I was playing around with resharper, but that got boring so not every file 2013-04-14 20:39:19 +00:00
goyuken 8d1fcd0b8a snes: movie recording starting from now now supported 2013-03-17 18:11:30 +00:00
adelikat 84bc032656 Some warning cleanup 2013-02-24 20:17:12 +00:00
zeromus 9cf0a3f30f snes-add gui option for ring buffer mode. its unclear whether it speeds things up, but its possible that it might, and it was a lot of work, so here it is as a user option. 2013-01-18 05:06:26 +00:00
zeromus 1b33d1dc9d snes-fix bug where you cant load games lacking save ram 2013-01-14 07:22:36 +00:00
zeromus 66077951c4 snes-fix timing calculations in aviout and movieplay dialog 2013-01-09 23:03:46 +00:00
goyuken 2a7ea6bfb0 libsnes: add comments to snes_input_state() explaining the parameters as i understand them. note that we only actually have 2 controllers at the moment, not 4. 2012-12-29 02:43:00 +00:00
goyuken 63f9752ea2 rough in some stuff for game boy link cable recording. none of it is finished yet 2012-12-29 01:25:06 +00:00
zeromus 2988217d77 snes-fix SGB core which had got a little broken while trying to setup memory domains 2012-12-27 18:47:15 +00:00
zeromus 9a778a55fe snes-add a bunch of complicated libsnes communication code. not sure whether it helps. need to gather data. 2012-12-27 07:59:19 +00:00
zeromus 0545cb64fa snes-make hex editor faster 2012-12-26 18:25:45 +00:00
zeromus 8a69a4ebe0 switch snes core back to external process. more refined this time. support use of performance core. 2012-12-25 20:36:04 +00:00
goyuken 717ec931f1 snes: disable tracelogger. i'll figure out what i broke after the snes pwrap is done 2012-12-23 18:05:48 +00:00
goyuken 3cc475a64f reverse merge r4180, r4181, r4189 2012-12-23 16:30:00 +00:00
zeromus f1401a16e1 snes-fix new bugs in audio 2012-12-21 16:13:11 +00:00
zeromus 8d7da30681 snes-refactor bsnes bindings to work via external process. should solve all stability problems. there is much sloppy transitionary code still in this commit; we need to smoke out any killer issues with this approach before committing too heavily. speed is close enough to last release, and can still be improved. 2012-12-21 07:23:55 +00:00
zeromus a4b442abda unify coreinputcomm and coreoutputcomm. there is a slight chance your console will be messed up until i fix a teeny tiny something, since i didnt test them all, since with more recent cores i dunno what roms are working anyway. let me know if i broke anything. 2012-12-10 00:43:43 +00:00
zeromus aaf06d76d3 snesgfxdebugger-add BG scroll regs 2012-12-03 18:59:08 +00:00
goyuken e24d1efbd4 snes: cpu tracelogging. <1% extra overhead incurred when the tracer is not active. 2012-12-03 01:48:18 +00:00
goyuken 451f786660 snes: fix crash with rewind enabled in tales of phantasia. the problem seems to be that during runtosave(), the smp hits a wait opcode (0xff), which it can't get out of. with this fix, the emulator no longer crashes, but the emulated game does crash. more research is needed. 2012-12-02 18:32:33 +00:00
zeromus db37a6f64f snes-reset the libsnes core (with whatever serious re-initialization logic we've currently written in libsnes) every time loadstate occurs; and add memsetting to that re-initialization logic, under the theory that if there is a savestate nondeterminism due to fundamental serialization bugs, at least loadstates will be deterministically buggy, decreasing the odds that anyone will ever notice them. of course, i would rather increase the odds that we'll notice them to 100%, so we can fix them, instead of just masking them. but i don't make the rules, i just stfu the nags 2012-12-01 06:21:53 +00:00
zeromus 0c58d62762 snesgfxdebugger-layer toggles, more information 2012-11-26 06:30:30 +00:00
zeromus 57e9619ff6 snes-hookup ui for color palette selection 2012-11-25 20:06:31 +00:00
goyuken 0094562d2a per previous discussion, IEmulator.ResetFrameCounter() should reset lag frame related stuff as well 2012-11-25 15:41:40 +00:00
zeromus 608ebc4a99 snesgfxdebugger-display OBJ tiles 2012-11-23 09:10:18 +00:00
goyuken 276b00fb35 snes: unify color generation for debugger and core. include 3 alternate implications: r3809, r3808, and hypothetical snes9x. nothing ui hooked up yet 2012-11-16 21:29:23 +00:00
goyuken 29c0733150 sneshawk: log core firmware requests to console 2012-10-28 23:42:04 +00:00
zeromus 9e50d25c16 snes-support user override backdrop color 2012-10-17 18:39:44 +00:00
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 c392b24d22 libsnescore: eliminate errant querying of "P1 ", et al in controller routine 2012-10-08 18:55:25 +00:00
goyuken c24abbcbad libsnescore: make deterministic mode savestates all the same size (previously, frame 0 savestates were slightly smaller)
rewind: throw a slightly more intelligible exception message when savestates differ in size
2012-10-08 18:18:43 +00:00
goyuken c167c043e1 rework libsnescore's deterministic savestate mode. like before, savestates are created every single frame. unlike before, now they are created on the frame before they "happen". this is all presented invisibly to the user. don't try to load old savestates in deterministic mode. don't try to mix deterministic and non-deterministic savestates. playing back old movies (provided they don't start from a savestate) should cause no problems, but may or may not sync. 2012-10-08 14:37:42 +00:00
goyuken 6d683f9327 libsnes: like sms, DisplayType property for ntsc\pal 2012-10-06 16:28:42 +00:00
goyuken b545d79fb6 lua: add emu.on_snoop() 2012-10-06 13:34:04 +00:00
zeromus 96089026cd remove "SGB" systemid because its gonna cause a lot of trouble if we dont hook it up in a lot of places.. why can't we set it up as just a regular snes core? and run the sgb rom through the snes firmwares directory. 2012-10-05 04:47:45 +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 0e292d19ca snes: don't instantiate "BUS" domain when DeterministicEmulation == true 2012-10-03 15:11:21 +00:00
goyuken e509b0cd9b snes: Add "BUS" memory domain. Like GB, caveat that it could possibly maybe affect sync, maybe... doubly so because I can't penetrate byuu code so well. 2012-10-03 14:54:32 +00:00
goyuken d4f5ed2f50 Movie playback and recording will now set IEmulator.DeterministicEmulation = true; only snes core actually does anything with this. It hasn't been explained before in a log; so I'll do it now: When in deterministic mode, the snes core internally does exactly one savestate each and every frame. Then, if the frontend calls savestate at all, it always gets the same internal cached savestate. If the frontend doesn't call savestate, then the internal savestate is simply discarded. This way, the exact same number of RunToSave() calls occur every time. 2012-10-01 14:39:52 +00:00
zeromus 2b1e04997c snes-try more accuracy in the wallclock-sync to fix audio hiccups. we really, really need fancy systems to sync to audio or do proper vsync (and rewire the snes resampler to forcibly adjust to a 60hz display rate) 2012-10-01 04:15:21 +00:00