Commit Graph

107 Commits

Author SHA1 Message Date
Unknown W. Brackets da03b80c97 Standardize on just one mutex implementation. 2016-03-06 14:49:15 -08:00
Unknown W. Brackets 666f1898c6 Fix crash loading old savestates.
Oops.  Forgot that this could be saved as -1 when loading an old
savestate, and then resaving it.

Fixes #8531.
2016-01-30 21:39:25 -08:00
Unknown W. Brackets 8fdceba7ca Add timing for all the basics.
This way we can see overall stats for a frame.
2015-07-03 12:05:08 -07:00
Henrik Rydgard 8dc77ff32e ARM64: Turn off some debugging stuff, start implementing instructions. Something is wrong though, if I implement more than addiu things break.. 2015-04-06 18:13:09 +02:00
Unknown W. Brackets 42cd751060 Prevent a few savestate cross-compat issues.
We don't need to save gpu stats at all, so don't, makes it easier to
change it and dunno if anyone defines double as other than 64 bits.

Also, apparently there was padding in the event state but not on all
platforms.
2014-12-08 21:18:56 -08:00
Unknown W. Brackets 6599430c04 Improve some timing in msgpipes.
Probably not super important, but makes tests happier.

Also, when unscheduling an event, return the current time left, including
already spent time since last Advance.
2014-09-01 20:03:58 -07:00
Unknown W. Brackets f835c158a3 Also fire mhz change listeners on load state. 2014-07-02 08:19:49 -07:00
Unknown W. Brackets f5440c2357 Fire a callback when cpu mhz changes.
So these can adjust efficiently.  It's not like it changes often.
2014-07-01 23:01:30 -07:00
Unknown W. Brackets e9fd43b947 Correct cyclesLate if an event consumes cycles.
This can prevent things from drifting out of sync.
2014-07-01 00:26:14 -07:00
Unknown W. Brackets 893188acb3 Fix core timing when an event eats cycles. 2014-06-29 14:15:56 -07:00
Unknown W. Brackets d97c229eaf Fix IsOnSeparateCPUThread(), was always false.
Erp, because of detach().
2014-04-28 23:22:46 -07:00
Sacha c8ce5d62c5 Timer hack was running too fast. 2014-03-26 00:09:34 +10:00
Unknown W. Brackets a843cbd580 Shrink the very common sceKernelThread.h include. 2014-03-15 11:44:02 -07:00
Sacha effca1e4c7 Improvements to timer hack. 2013-11-20 12:55:56 +10:00
Sacha 20e1bdceeb Improvements to timer hack. 2013-11-16 02:55:12 +10:00
Sacha fb7c3d96fd Introduce Timer Hack.
Has been used in previous Symbian releases to improve speed. Was thought to only work on Wipeout but actually works on most games?
Games that run based on internal timer will experience 60 VPS without frameskip.
2013-11-16 02:16:17 +10:00
Unknown W. Brackets e16d1a926b Keep more careful track of microsecond time. 2013-10-24 01:09:35 -07:00
Unknown W. Brackets 36fd5df53f Typo. 2013-09-21 17:04:05 -07:00
Unknown W. Brackets d305d1faa2 Check enqueue as well, should be safer.
Also, make sure not to eat a bunch more cycles when forcing a check.
2013-09-21 17:00:52 -07:00
Unknown W. Brackets 18a493f316 Don't use Advance() in syscalls, it's unsafe.
Eats some cycles in enqueue and still checks ASAP, FF Type-0 seems happy
with this also.
2013-09-21 15:03:30 -07:00
Unknown W. Brackets 50e9e45d65 Check version in each DoState() func.
They bail on PointerWrap error or bad version.
2013-09-14 20:23:03 -07:00
Henrik Rydgard 8c88dff5a4 More log categories, use them (and existing ones). Improve log config. 2013-09-07 22:02:55 +02:00
Henrik Rydgard 324cde5a79 Let's actually use the log category mechanism. A first step. 2013-09-07 21:19:21 +02:00
Unknown W. Brackets 24203b1a5d Improve performance on x86 as well using movq. 2013-08-12 08:40:54 -07:00
Unknown W. Brackets b1344f8254 Get rid of CoreTiming::AdvanceQuick().
It basically existed for savestates, so no longer needed.
Fixes issues with events not running when they should.
2013-08-07 00:32:29 -07:00
Unknown W. Brackets 7a2ef728cb Schedule ts events using the same time frame. 2013-08-07 00:32:28 -07:00
Unknown W. Brackets 7dfee29d49 Fix threadsafe event removal. 2013-08-07 00:32:27 -07:00
Sacha 8dd683f63f Fix name collision when building on Windows. Was preventing Blackberry from building. 2013-05-03 16:10:23 +10:00
Unknown W. Brackets 6190918158 Don't allow two drawsyncs to be in play at once. 2013-04-07 17:37:24 -07:00
Unknown W. Brackets 0918ec8598 Return negative for UnscheduleEvent().
It usually won't be, but it could be negative.

Also some other minor warnings.
2013-04-05 20:44:17 -07:00
Unknown W. Brackets 913dca69ef Turn down logging for things that can be inferred.
If you see a thread switch for a vblank wait, you know what happened.
2013-03-10 22:56:24 -07:00
Unknown W. Brackets 64c42ffaf2 Fix some warnings generated by clang. 2013-02-24 10:23:31 -08:00
Unknown W. Brackets 31ada1ea07 Don't process threadsafe events from HLE.
Only from the runloop where blowing the jit cache is safe.
2013-02-22 00:40:36 -08:00
Unknown W. Brackets da5026ea17 Spend less time moving ts events in CoreTiming. 2013-02-11 01:27:07 -08:00
Henrik Rydgard 674911ddba Move downcount into MIPSState for efficiency, enable block linking.
On ARM JIT we can now reach it through the cpu context reg.
2013-01-12 00:44:18 +01:00
Henrik Rydgard 76481a300c Icache must be invalidated. Jit now starts to run, but there's no cube in cube.elf! 2013-01-08 23:52:11 +01:00
Henrik Rydgard 8915677241 More progress but it weirds out... 2013-01-08 21:24:42 +01:00
Henrik Rydgard 6ecf2d235c Fix integer overflow in scheduling. 2013-01-05 22:44:30 +01:00
Unknown W. Brackets 19aaca2705 Start save stating audio, plus minor fixes. 2012-12-28 13:55:29 -08:00
Unknown W. Brackets 4b39e39455 Start save stating the filesystem state.
Plus minor fixes and at least an attempt to make states the same
on both 32 and 64 bit.
2012-12-28 13:55:27 -08:00
Unknown W. Brackets 91d727a65a Add CoreTiming to save states.
I hope DoLinkedList works, seems like it should.
2012-12-28 13:55:24 -08:00
Unknown W. Brackets fbe4fd396e Add a mechanism to restore event callback ptrs.
Ugh, more duplicates.  Maybe can find a good way to refactor.
2012-12-28 13:55:24 -08:00
Henrik Rydgård d8da92befa Fix timing issue wiith JIT on non-Windows platforms 2012-12-25 09:02:02 +01:00
Henrik Rydgard 4d4370232c Assorted minor cleanup and fixes. 2012-12-21 10:20:22 +01:00
Unknown W. Brackets 84b6c3a7c2 Improve accuratcy of CoreTiming::ScheduleEvent(). 2012-12-20 22:48:59 -08:00
Henrik Rydgard 3bd5cfed73 Work around for strange idling issue, various fixes 2012-12-17 23:33:24 +01:00
Henrik Rydgard 1400237d0e Lots of various work on sceSas. ADSR envelopes, correct looping, etc etc... Still far from perfect but better. 2012-12-17 18:07:25 +01:00
Unknown W. Brackets 573aba2fb9 Refactor CoreTiming::Advance() slightly to cleanup. 2012-12-07 00:46:18 -08:00
Unknown W. Brackets a2ee736793 Process events when idle or switching threads.
Fixes hrydgard/ppsspp#104, so things execute more accurately.
2012-11-30 23:09:14 -08:00
Unknown W. Brackets d3f2d9d10b Use u64 here to avoid warnings, better precision.
The timeout value is u32 anyway, so an int was already a loss.
2012-11-22 16:40:26 -08:00