Commit Graph
6340 Commits
Author SHA1 Message Date
Unknown W. Brackets ac2c44ddd9 Revert the early wake of threads for io waits.
This reverts commit 610ada8721.

It makes sense to let these run longer.  Apparently this caused problems
in Castlevania, see #6432.
2014-06-28 12:29:55 -07:00
Unknown W. Brackets 745c453b33 Remove hleAfterCheckAllCallbacks().
Not being used, doesn't make sense - rescheduling is what does that, only.
2014-06-28 03:10:30 -07:00
Unknown W. Brackets 10096b94f2 Correctly remember callback status when sleeping.
If a callback triggered right away after a sceKernelSleepThreadCB(), it
would trigger the "current callback" and remember callback status as
false, instead of true (since it was set later.)

This corrects that by ignoring it if both are set.
2014-06-28 03:06:30 -07:00
Unknown W. Brackets 5ab3750186 Reduce the thread switching cost.
Maybe it was actually too high.  Some tests fail with it that high.
2014-06-27 01:00:11 -07:00
Unknown W. Brackets 4471b968e8 Increase timeout delay time for waits.
Had previously had these lower, but my testing was biased by how quick
other things in ppsspp were.
2014-06-27 00:58:59 -07:00
Henrik Rydgård e73fcf4ec2 Merge pull request #6436 from ANR2ME/adhoc_
Fixed FF-Type0 from seeing duplicated Host, hopefully this will also fix...
2014-06-26 15:20:05 +02:00
AdamN a98b44d7ab Fixed FF-Type0 from seeing duplicated Host, hopefully this will also fix all Adhoc games that became broken in my 1st patch 2014-06-26 17:50:37 +07:00
Henrik Rydgård 8042b6f6f1 Merge pull request #6435 from unknownbrackets/replace-funcs
Hook the FF1 battle effect func
2014-06-26 11:44:14 +02:00
Unknown W. Brackets 0da972c548 Hook the FF1 battle effect func.
So that we can download the framebuffer.  At least, it seems like that's
what this function is doing.
2014-06-26 01:38:22 -07:00
Henrik Rydgård f0cb70d9fb Merge pull request #6433 from unknownbrackets/frame-timing
Maintain timing of at least 30 vblanks per second if possible
2014-06-26 10:33:51 +02:00
Unknown W. Brackets 8172e838a5 Avoid a fast-forward effect when not drawing.
This fixes loading screens and such, which drop the fps down to 0 or 6
according to our measure, which can distort audio if we've got free time.

If the system is not keeping up, should have the same behavior as before.
2014-06-26 00:37:03 -07:00
Unknown W. Brackets 23dc69fc9b Time frames based on current, not last timestep.
We need to decide the nextFrameTime when we know how many vblanks it took,
not before.  Otherwise, we will miss-time when the fps changes.
2014-06-26 00:36:17 -07:00
AdamN 12ee3d1d39 Fixed Wipeout Pulse unable to see any Host, and should affect many other Adhoc games (was broken in my previous commit) 2014-06-25 20:29:42 +07:00
Unknown W. Brackets 19f4ad8c5c Dumb mistake in "real time sync" fix. 2014-06-25 00:44:18 -07:00
Henrik Rydgård fea0a26113 Merge pull request #6414 from unknownbrackets/resched
Reschedule immediately in many cases
2014-06-24 22:41:58 +02:00
Henrik Rydgård a1d359f22c Merge pull request #6421 from ANR2ME/master
Fixed some bugs (ie. possible of memory leaks) on Adhoc, and implement a...
2014-06-24 20:07:07 +02:00
AdamN 7f7b2a3800 Fixed some bugs (ie. possible of memory leaks) on Adhoc, and implement a few more Adhoc functions. 2014-06-24 23:43:03 +07:00
Unknown W. Brackets 87b3a7e566 Avoid overly long lags, recover if system too slow.
This will recover better if the system took too long.  Also, fixes #6415
by never waiting too long.
2014-06-24 08:27:21 -07:00
Unknown W. Brackets 3ba78c865e Fix low-level atrac3/atrac3+ decoding.
Fixes #6400.
2014-06-24 01:18:00 -07:00
Unknown W. Brackets 412eee0bd9 Wake good pri threads immediately from timeouts. 2014-06-24 00:49:36 -07:00
Unknown W. Brackets 4626e63294 Wake good pri threads immediately from delays. 2014-06-24 00:45:38 -07:00
Unknown W. Brackets 610ada8721 Wake good pri threads immediately from io waits. 2014-06-24 00:45:26 -07:00
Unknown W. Brackets 8e80bd3928 Wake good pri threads immediately from vblank wait. 2014-06-24 00:45:08 -07:00
Unknown W. Brackets bacae6106b Wake good pri threads immediately from ctrl waits. 2014-06-24 00:44:40 -07:00
Unknown W. Brackets d8cff4509e Wake good pri threads immediately from audio. 2014-06-24 00:44:35 -07:00
Unknown W. Brackets 6c4a614205 Wake good pri threads immediately from HLE delays. 2014-06-24 00:44:02 -07:00
Unknown W. Brackets 118736ff75 Don't eat extra cycles when idling.
Rescheduling between threads takes about 3000 cycles, but that's not true
for both sides of e.g. a delay.

Fixes #6409 (assuming 60fps is what a PSP gets.)
2014-06-23 23:02:46 -07:00
Henrik Rydgard ae09b521c3 Logging reductions 2014-06-23 20:05:12 +02:00
Unknown W. Brackets ec94498342 When scanning or relocating, check replacements.
Just to make sure we don't wrongly detect the length or unresolve a var
wrong etc.
2014-06-23 08:18:56 -07:00
Henrik Rydgård 5436d2f935 Merge pull request #6403 from unknownbrackets/sched-cycles
Eat cycles when context switching and delaying
2014-06-23 08:34:28 +02:00
Unknown W. Brackets 17496330ce Don't wake a killed list in ge callback end.
Fixes #3198, some homebrew demos locking up.
2014-06-22 23:21:10 -07:00
Unknown W. Brackets 633120b895 Fix a crash on read from stdin.
Found in a homebrew demo.
2014-06-22 23:18:39 -07:00
Unknown W. Brackets 5e8716f9cc Adjust strlen() cycle approximation.
The hashed implementations take several cycles per character.
2014-06-22 23:18:06 -07:00
Unknown W. Brackets c1e293fe7c Fix a warning on 32-bit that might be bad... 2014-06-22 22:17:48 -07:00
Unknown W. Brackets 392edb4f84 Eat some cycles when switching threads.
There's a cost and it seems to be at least this much.  Matters for
Wipeout Pure when callbacks are allowed to wait.
2014-06-22 22:17:47 -07:00
Unknown W. Brackets e8803c4e9b Improve sceKernelDelayThread() timing.
A delay of 0 never reschedules, actually, unless there's a better priority
thread.  A greater delay depends on if a >= or similar check matches, but
generally is at least 200us.

It seems like this actually completes in at least another 10-20us.
2014-06-22 19:47:54 -07:00
Unknown W. Brackets 8851fc1685 Remove savedIdRegister/MIPS_CALL_ID.
We've never trusted it anyway, simpler without dealing with this stuff.
2014-06-22 11:29:47 -07:00
Henrik Rydgard cefc0bc96f Play the game's SND0.AT3 when a game is selected in the menu and on the "game screen". 2014-06-22 17:02:04 +02:00
Henrik Rydgard 1d0cc3417c Audio stuff: Cleanup, delete dead code 2014-06-22 14:01:23 +02:00
Henrik Rydgard 2236b3a52b sceAtrac3 minor cleanup: Get rid of mutable globals, add another sanity check with reporting 2014-06-22 10:42:27 +02:00
Henrik Rydgård b5435260b0 Merge pull request #6389 from unknownbrackets/intrman
Correct error codes and dup checks in inter registration
2014-06-22 08:54:40 +02:00
Unknown W. Brackets 3498b33033 Allow sub interrupts to be enabled before register.
Could've caused interrupts, primarily vblanks, not to run because we
implicitly disabled them on register.
2014-06-21 21:43:44 -07:00
Unknown W. Brackets 87ee0bc650 Return error codes in register/release subintr.
This checks for duplicate registrations and other thigns that could've
been causing wrong behavior.
2014-06-21 21:27:58 -07:00
sum2012 f3826bc608 Further add a codecType check 2014-06-22 06:49:02 +08:00
Henrik Rydgård 0fee05d945 Merge pull request #6369 from thedax/reschedule
sceDisplayGetVcount should apparently reschedule. Fixes #3234.
2014-06-21 21:15:53 +02:00
Unknown W. Brackets de2a3834e0 Abuse esBuffer to track the vid/aud stream id. 2014-06-21 09:27:39 -07:00
Henrik Rydgård 42e28b0c75 Merge pull request #6381 from sum2012/sceAtrac
Add a codecType check in sceAtracSetHalfwayBufferAndGetID
2014-06-21 13:33:04 +02:00
sum2012 6fe74d938e Change to report 2014-06-21 08:00:16 +08:00
sum2012 846eda836f Add a codecType check in sceAtracSetHalfwayBufferAndGetID
Fix crash in #6363
2014-06-21 05:44:29 +08:00
Unknown W. Brackets ae13d51cef Don't skip the first psmf frame when syncing audio.
Fixes #6374.
2014-06-20 09:07:18 -07:00