Commit Graph

82 Commits

Author SHA1 Message Date
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
goyuken cefca2e098 libsnes: deterministic mode for savestates. not hooked up yet 2012-09-30 19:22:54 +00:00
goyuken 2b117c3955 snes: read region, so 50fps live viewing and video dumping now works (PAL).
pretty sure no flags are saved to movie files, though...
2012-09-30 18:21:32 +00:00
goyuken 40d86d0a8b SNES: change the initial bootup frame size (on frame zero) to 256x224.
it's the most common game resolution, and also the smallest (so can avoid some instances of window size snapping down because too big)
2012-09-30 14:08:50 +00:00
zeromus e0f506002d snes-try to survive the display of interlaced modes. havent had an actual game test this so im not sure what it looks like 2012-09-30 05:17:08 +00:00
zeromus 1fbbbaf776 oops 2012-09-27 11:58:04 +00:00
zeromus d9a55fed37 snes-load firmware files from a CoreInputComm path, which must be named exactly right; show the requisite filename in a messagebox if it's missing; but theres no GUI for the firmware path hooked up yet. 2012-09-27 07:22:31 +00:00
zeromus 6c8177a08b snes-print messages from libsnes. now you can see which dsp/firmware dependency it detected for the game (it has its own heuristics, not necessarily any need for gamedb yet). still not loading the firmwares though 2012-09-27 01:38:27 +00:00
goyuken fc8087c344 preliminary SGB support.
1) choose your SGB rom from the path config (should probably be an .smc file of about 256KB)
2) turn on Load GB as SGB from the GB menu.
3) load rom again.
To turn off, uncheck Load GB as SGB from the SGB menu.
2012-09-26 15:59:14 +00:00
zeromus f53aa56f1c snes-support high-res (2x=512 width) display modes by doubling the vertical lines. maybe we'll need to do this differently if we can find a game thats controlling the interlacing options. 2012-09-24 08:00:42 +00:00
zeromus 52edee63d8 snesgfx-support mode7 direct color displays. still need an example of a mode 3 or 4 direct color usage 2012-09-24 07:46:54 +00:00
zeromus 4efea7605d snesgfx-support mode7ExtBg tiles & BG 2012-09-24 06:47:34 +00:00
goyuken dab03cb034 snes: fix savestates just as in the previous commit 2012-09-23 16:59:44 +00:00
goyuken 7e89882d42 lag counter in sneshawk
c++ is dum
2012-09-23 15:57:01 +00:00
zeromus 03cb238ae3 snes-add scanline render callbacks and add scanline selector to graphics debugger 2012-09-22 05:03:52 +00:00
zeromus 3c6549a7bb snesgfx-decode mode7 graphics 2012-09-21 17:21:21 +00:00
zeromus 70392be4e4 snes-all memory domains were showing WRAM instead of the right thing; fixed 2012-09-21 06:03:27 +00:00