Commit graph

5317 commits

Author SHA1 Message Date
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
998104e2eb Consider threads still waiting until they wake.
This seems to match the actual behavior of timeouts much better.
2012-11-30 23:04:24 -08:00
Unknown W. Brackets
48c5efd0c2 Match hw timing of mutex/sema timeouts better.
Affects some tests passing/not passing due to minor timing issues, ugh.
2012-11-30 22:58:42 -08:00
Unknown W. Brackets
7164638799 Allow semaphores with waiters to signal.
If the max is 1, but there's 1 waiting, it's okay to signal 2.
Really, the final result is what matters.
2012-11-30 22:58:41 -08:00
Unknown W. Brackets
3ab41e515d Mutexes and semaphores don't always reschedule.
It's just the normal rescheduling happening.  Previous tests weren't
correct.

Also some minor cleanup.
2012-11-30 22:58:41 -08:00
Kevin Armstrong
5d0c88334b 9999 is actually the maximum year as verified on my PSP 2012-11-28 19:24:35 +00:00
Kevin Armstrong
de0a161be6 reduce the number of errors in sceRtc.cpp 2012-11-28 19:02:56 +00:00
Henrik Rydgard
980d13fe50 Assorted GPU fixes: Advance vertex pointer, fixes missing triangles in SPT. More logging. Separate proj matrices for through and normal mode (through matrix don't need to get updated as often). Some cleanup. 2012-11-28 13:45:22 +01:00
Henrik Rydgard
111f52d67f Unbreak sceAudioOutput2OutputBlocking - must be careful about returns in blocking functions! 2012-11-28 11:09:12 +01:00
Henrik Rydgard
52572d92e6 Merge branch 'master', remote-tracking branch 'origin' 2012-11-28 10:38:22 +01:00
Sacha
6192bdf6df sceIoRename function 2012-11-28 05:21:32 +10:00
Henrik Rydgård
156cfc4e6a Merge pull request #100 from Ced2911/endian
sceAudio wrap
2012-11-27 04:12:37 -08:00
Ced2911
8bf93cfb54 sceAtrac wrap 2012-11-27 13:05:51 +01:00
Ced2911
f6fd7e13d1 sceAudio wrap 2012-11-27 12:18:58 +01:00
Henrik Rydgard
a74af8f372 Some new NIDs, log fix, very minor bugfix. 2012-11-27 11:40:30 +01:00
Henrik Rydgård
4991c84868 Merge pull request #99 from Ced2911/endian
less Memory::GetPointer
2012-11-27 01:31:50 -08:00
Ced2911
6db4ea2ad1 less Memory::GetPointer 2012-11-27 10:18:36 +01:00
Kevin Armstrong
c124c079dc more sceRTC functions. Ones marked as hack either fail the tests or are a bit wrong 2012-11-26 23:37:21 +00:00
Henrik Rydgard
870ea6628b Reasonably correct viewport handling. Optional debug stats overlay (not always 100% working). 2012-11-26 17:35:08 +01:00
Kevin Armstrong
e3b521b893 sceRtc function stubs, and some actual working functions 2012-11-26 00:36:36 +00:00
Henrik Rydgard
ced89f5983 Warning fixes 2012-11-25 15:46:51 +01:00
kev :)
68d644306e Rename and retype a variable 2012-11-25 00:22:39 +00:00
kev :)
7e85df9c0f Update sceRtcSetTick based on test cases 2012-11-25 00:14:14 +00:00
Unknown W. Brackets
3642c02562 Add some guards to audio funcs on channel.
The atrac test was crashing.
2012-11-23 16:25:26 -08:00
kev :)
fcfeeb8319 add sceKernelMemcpy & sceRtcSetTick
Untested apart from via games. gets bemani going further.
2012-11-23 18:51:36 +00:00
Henrik Rydgard
a97f66766d Add "slightly faster interpreter", optimizing the most common instrs. Not as helpful as I thought it would be on Android, really need a proper JIT. 2012-11-23 12:42:35 +01:00
Henrik Rydgard
f3aeadedfa Remove audio rate throttling, it's better to frame rate throttle. Gets rid of the slowdown that audio caused. 2012-11-23 10:35:28 +01:00
Unknown W. Brackets
ad116632bf Implement sceRtcGetTick().
Unfortunately, this fixes things so that rtc/rtc is correctly failing.
2012-11-22 23:49:23 -08:00
Unknown W. Brackets
c40d8a4fbe Implement sceRtcGetCurrentClock().
Not sure if this needs some kind of DST handling for the tz?
2012-11-22 23:48:12 -08:00
Unknown W. Brackets
965eeaf9da Add error handling to sceRtcGetDaysInMonth(). 2012-11-22 23:48:12 -08:00
Unknown W. Brackets
21398bfcf8 Fix sceRtc module name so the right funcs are run.
Makes rtc/rtc pass again.
2012-11-22 23:48:12 -08:00
Unknown W. Brackets
6a4a26d4bf No need for these headers anymore. 2012-11-22 23:48:11 -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
Unknown W. Brackets
c2c2b77792 Fix threads locking more than one mutex at a time.
Duh, of course they can.  Even my test did, I'm stupid.
2012-11-22 16:33:16 -08:00
Henrik Rydgard
d141d205f8 Delete old textures, to prevent memory usage from growing indefinitely. 2012-11-22 23:07:15 +01:00
Henrik Rydgard
08f8f4b323 Cleanup sceRtc, move sceFont to its own file. 2012-11-22 22:30:44 +01:00
kev :)
03c5e83953 Some sceUtility wrapping
Minus OSK and netconf
2012-11-22 20:46:22 +00:00
Unknown W. Brackets
1bf04790e9 Darn, buildfix for debug. 2012-11-21 07:28:54 -08:00
Unknown W. Brackets
879efb25cc Don't allow unlocking someone else's mutex. 2012-11-21 00:28:29 -08:00
Unknown W. Brackets
fa9b9840d0 Implement LwMutex locking and unlocking. 2012-11-21 00:21:25 -08:00
Unknown W. Brackets
db16f9309e Don't crash if something goes wrong with mutexes.
Probably can't happen but being defensive is good.
2012-11-20 22:57:14 -08:00
Unknown W. Brackets
b71d998a20 Broadcast a threadend event to wake mutexes. 2012-11-20 02:20:16 -08:00
Unknown W. Brackets
dd3db71b61 Forget mutex waiting threads when they timeout. 2012-11-20 02:20:16 -08:00
Unknown W. Brackets
8da2fb074c For mutexes/semaphores, register a global timer.
Instead of leaking one per each.  Should be faster.
Since we can only wait on one thing per thread at a time, this is fine.
2012-11-20 02:20:16 -08:00
Unknown W. Brackets
a81c138004 Create and Delete LwMutex funcs. 2012-11-20 02:20:15 -08:00
Unknown W. Brackets
619a9906de Remove threads from semaphores when they timeout.
This makes wait tests *almost* pass.  There's some timing
related issues left, though.
2012-11-20 02:20:15 -08:00
Unknown W. Brackets
fd41851503 Implement timeouts on semaphores too. 2012-11-20 02:20:14 -08:00
Unknown W. Brackets
4d71e32193 Update the value when mutexes timeout. 2012-11-20 02:20:14 -08:00
Unknown W. Brackets
aad7e48a1a Oops, turns out mutex timeouts are in micro.
Found it documented as milli somewhere, but it was wrong.
2012-11-20 02:20:14 -08:00
Unknown W. Brackets
d88fa153b7 Implement timeouts on mutexes.
Still need to set timeoutPtr after they expire.
Pretty sure I did this the right way, seems CoreTiming does already
allow/use multiple events for the same type?
2012-11-20 02:20:13 -08:00