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
goyuken
c026b2dc81
slightly optimize previous commit by avoiding 32k unmanaged=>managed transition calls per second when skipping audio
2012-09-20 20:36:44 +00:00
goyuken
176ecd8650
support for !rendersound in LibsnesCore
...
worth about 5-10% on my machine in secret of mana opening
2012-09-20 20:25:40 +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