Commit Graph

66 Commits

Author SHA1 Message Date
zeromus 5d0cfcac52 fix bsnes performance core lag counter; fixes issue #180 2014-09-14 01:33:09 +00:00
zeromus 5d754cf507 change how snes firmware chips survive loadstating, so that loadstate/rewind matches performance from builds earlier in 2014. still kind of slow, but basically OK. 2014-09-02 05:01:51 +00:00
zeromus 237045fde2 add watchdog timer to bsnes process to make sure they dont accumulate when the frontend terminates oddly 2014-06-17 22:03:08 +00:00
zeromus 52bceeeee5 update libsnes exes 2014-05-23 19:27:27 +00:00
zeromus e9522af326 preliminary work on accuracy core in sneshawk. it's building and usable, but savestates are utterly trashed. 2014-05-18 05:13:54 +00:00
zeromus 8193e0b281 snes-repair BG layer toggling 2014-02-09 22:52:09 +00:00
zeromus cc73af76bd snes-make CARTROM memorydomain actually edit bsnes's sense of the cartrom, instead of the rom[] array that the core now pointlessly holds onto 2014-01-29 21:59:06 +00:00
zeromus 50ef1b19f5 snes-fix bugs caused by breakpoints leaving emulator state unstable (most noticeable when taking savestates) 2013-12-29 02:20:13 +00:00
zeromus 492a99694f fix snes savestates? 2013-11-25 20:51:26 +00:00
zeromus 4c247672fe snes hooking system and GetCpuFlagsAndRegisters now work normally 2013-11-22 09:33:56 +00:00
zeromus 7a260abb54 update libsnes building for new output directory, and add support for exec/read/write/nmi/irq hooks 2013-11-03 22:44:49 +00:00
zeromus 513ceba3d2 fix up SGB memorydomains 2013-08-26 07:17:47 +00:00
zeromus df99f36464 support bsnes xml files and super road blaster MSU-1 game 2013-04-24 22:09:11 +00:00
goyuken b2c0910376 zero - try this? 2013-04-21 19:00:22 +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 8a74e08dfa snes-fix savestate bug in performance core 2012-12-26 22:27:26 +00:00
zeromus 42e473b7a8 snes-fix dll deps in 64bit bsnes 2012-12-26 21:25:39 +00:00
zeromus b070984379 snes-add readme with 64bit build notes 2012-12-26 21:04:04 +00:00
zeromus c9b662d7ea snes-support 64bit bsnes builds. this isnt tested yet since i dont have a 64bit system atm, but most of the infrastructure is there 2012-12-26 20:25:06 +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 587270cad2 snes: Fix rewind issue with tales of phantasia. Full details are as follows: Synchronize events occur right BEFORE the original thread tries to modify the data. That means that if, for instance, the SMP thread switches off to the CPU thread for a synchronize, but then the CPU switches to the PPU, commits a frame, and then in runtosave, finalizes, without having ever advanced past the SMP, when the SMP runs to save, it will do a data modify without being properly synced. The solution is for the CPU to not stop in runtosave until there's enough time for both the PPU and SMP to finish. Because of our stateful design, there's at most one event pending, so that simplifies to (smp.clock < 0 && ppu.clock < 0). This is unfortunately never guaranteed to finish, but with short timing segments on stateful PPU and SMP, and special guards in the PPU and SMP to switch back to the CPU as quickly as possible when in runtosave, it seems to work out. 2012-12-24 21:14:29 +00:00
goyuken 74c26d9b11 snes: ppu: state out similarly to apu. this was a very simple project; unlike the apu, there aren't many sync points. like the apu, a message is dumped to the console if runtosave causes determinism problems. like the apu, there's no speed hit, but tales of phantasia is still broken. breaks savesates. 2012-12-24 19:49:23 +00:00
goyuken fb2a80b7d9 commit the "code generator" that was used to assist in creating r4203. it's not much, and is probably quite useless. but if you must pry, try readme.txt 2012-12-24 18:20:30 +00:00
goyuken 5e3d6555b0 libsnes: implement "stateful" smp that can restore its state at more points, theoretically eliminating incorrectness from smp misbehavior. no real speed loss. doesn't fix anything at the moment; i might back out the change if it turns out to never fix anything. breaks savestates. 2012-12-24 18:07:13 +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
goyuken 1d7d40f7c9 add simple makefile for previous commit 2012-12-19 23:02:58 +00:00
goyuken 55399917ac libco implemented with win32 threads and semaphores. about a 25% slowdown. very useful for debugging with gdb. .dll not committed, as this is a debugging-only thing, of course 2012-12-19 22:35:30 +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 2c3a6e7818 libsnes-as if the previous commits problems werent terrible enough, I had forgotten to memzero the ppu/cpu/dsp/smp components. at least tonights exercise vindicated the necessity of those memzeroings, which is not a concept bsnes ever had. 2012-12-01 08:32:50 +00:00
zeromus 093eda8cdd libsnes-add missing variable initializations for ppu/cpu/dsp/smp components. every one of them was fundamentally untasworthy. 2012-12-01 08:29:47 +00:00
zeromus 7722344e55 libsnes-gain the ability to serialize const arrays: useful for emitting comments in savestates, which is helpful for debugging. note to self: add a serializer for bools which transforms to 0 or 1 2012-12-01 08:28:46 +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 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 b51cfbaa45 snes: don't round early in color conversions. affects some RGB24 values slightly 2012-11-16 18:43:47 +00:00
zeromus 9e50d25c16 snes-support user override backdrop color 2012-10-17 18:39:44 +00:00
zeromus e318718a21 change libco_msvc_win32 to use vs2010, so as to avoid dependency on another (vc8) runtime. 2012-10-16 19:11:02 +00:00
goyuken 9f9aeb6609 move libco_msvc_win32.dll to dll subdirectory 2012-10-09 22:48:41 +00:00
goyuken ca40ed07a2 move libsneshawk.dll to dll subdirectory 2012-10-09 21:07:50 +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
zeromus 0597fe5793 at some point i accidentally removed multicore -j flag from libsnes's bizwinmake.sh 2012-09-30 22:27:12 +00:00
goyuken 3e139c7d7e libsnes: change frame boundary timing. from the perspective of the libsnes core, this choice is mostly arbitrary. from the perspective of the frontend, it's how input frames are divided up and lag frames are determined, and so can be rather important for TASing. the original choice of frame timing is a bit strange and causes excessive input latency and lag detection issues for pal224 and ntsc modes (but not pal239 mode). this change will most likely cause "off by one" errors in TAS sync; should be mostly easily correctable. 2012-09-30 18:05:23 +00:00
goyuken 2a59e135ea snes: add lag counter for manual 4016\4017 polling
this shouldn't break existing lag counting.
this doesn't fix the issue observed in smw2 (i have no idea what is causing that.)
2012-09-28 13:37:42 +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