Commit graph

470 commits

Author SHA1 Message Date
Unknown W. Brackets
1ed8edb0d3 Avoid some dangerous hex constant widths. 2013-08-22 23:23:48 -07:00
Unknown W. Brackets
83bc12ea08 Reschedule in sceKernelReferThreadStatus().
It's often called in loops waiting for a thread to wake up.

Fixes .hack//Link's sluggish performance.
2013-08-15 07:56:35 -07:00
Unknown W. Brackets
846178a588 Optimize thread switching a bit.
~2.5% improvement in Zettai Hero Project (while multithreading.)
2013-08-15 01:26:16 -07:00
Unknown W. Brackets
0d5c66676d Correct result of sceKernelGetThreadExitStatus(0).
Fixes Zettai Hero Project's options menu.
2013-08-14 23:58:23 -07:00
Unknown W. Brackets
c8716d9a02 Fix a few minor typos + small reporting change. 2013-08-12 23:02:39 -07:00
Unknown W. Brackets
7ac67a8931 Add a function to walk the stack, not yet perfect.
Could use improvements, but with a decent symbol table does very well so
far in the games I tested it in.
2013-08-12 01:54:14 -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
4a4f07df8e Add waiting/resuming to TLS funcs.
Nice and simple, no callbacks or timeouts.
2013-07-31 00:22:36 -07:00
Unknown W. Brackets
0b5bdeb1d3 Fix some compile failures under big endian. 2013-07-28 21:04:17 -07:00
Unknown W. Brackets
8da6259aff More carefully check defines for endianness. 2013-07-25 22:25:50 -07:00
Unknown W. Brackets
81f7103e0b Use *_le for the sceKernel* funcs. 2013-07-25 08:04:34 -07:00
Henrik Rydgard
a3edda0bc7 Minor logging fixes 2013-07-17 22:27:49 +02:00
tpu
a4e447fe7e dont wake up thread with waitType WAITTYPE_MODULE in sceKernelReleaseWaitThread
add UTF-8 BOM to MiscScreens.cpp to avoid compile error.
2013-07-18 00:16:42 +08:00
Unknown W. Brackets
88ce95470c This one is worth reporting. 2013-07-07 18:10:32 -07:00
Kingcom
82c242f237 Added "Wait type" and "Priority" columns to thread list 2013-07-06 21:40:41 +02:00
Unknown W. Brackets
a1e69d1c4f Fix wrong thread id when resuming after interrupt.
Who knows what kind of havoc this was causing.
2013-07-04 02:04:06 -07:00
Unknown W. Brackets
933c8abb55 Check kernel object types when looking up ids.
Some games misuse it, need to return an error.
2013-06-18 23:54:29 -07:00
Unknown W. Brackets
1e805e7fc8 Return correct errors in sceKernelDeleteThread().
And also, don't reschedule in sceKernelTerminateDeleteThread(), per tests.
2013-06-15 00:05:21 -07:00
Unknown W. Brackets
1c1293826c Return correct errors on terminating thread.
Fixes Final Fantasy 4 hangs when playing videos a second time.
2013-06-09 18:56:36 -07:00
Unknown W. Brackets
fe1c26f2b2 Add a safety check for non-rtti. 2013-06-09 08:35:54 -07:00
Henrik Rydgard
2afbc94734 Turn off RTTI, simulate it where needed. 2013-06-09 13:02:16 +02:00
Unknown W. Brackets
0c41d4e952 Don't allow release wait for HLE delays.
Although, presumably the thread would stop waiting, I guess the HLE func
in most cases probably checks and re-waits?

Fixes breakage in Jeanne d' Arc, which constantly releases from wait the
main thread, but calls things like sceMpegCreate which do block.
2013-06-08 23:39:49 -07:00
Unknown W. Brackets
32a557803b Reporting in sceKernelChangeCurrentThreadAttr(). 2013-06-06 00:08:24 -07:00
Unknown W. Brackets
e4dc030b83 Reset restarted thread priorities properly. 2013-06-05 23:57:27 -07:00
Unknown W. Brackets
5fe537cac6 sceKernelChangeThreadPriority() can't do dormant. 2013-06-05 23:52:24 -07:00
Unknown W. Brackets
12005267ac Reschedule in sceKernelChangeThreadPriority().
Seems like this is another way to yield, makes sense.
2013-06-05 23:42:42 -07:00
Unknown W. Brackets
e16cd7d9d9 Validate params in sceKernelChangeThreadPriority(). 2013-06-05 23:04:42 -07:00
Unknown W. Brackets
06c19622d5 Fix some init/type warnings. 2013-05-31 23:14:29 -07:00
lioncash
743f5185b8 Missed including this in the __KernelSwitchContext null check fix.
This shouldn't be called if target is null.
2013-05-30 11:55:29 -04:00
lioncash
81a91fbcbb Ensure code inside method __KernelSwitchContext in sceKernelThread.cpp isn't unintentionally executed.
The null check around line 2935 for target also makes me think this was supposed to have been done.
2013-05-30 11:47:10 -04:00
Unknown W. Brackets
f397f83b4f Buildfix for Mac / iOS. 2013-05-26 19:02:40 -07:00
Unknown W. Brackets
727b3b4127 Get rid of the "root" return hack. 2013-05-26 10:36:18 -07:00
Unknown W. Brackets
c34854ead3 Use a custom RA for module funcs. Not used yet.
But it will be.
2013-05-26 10:28:08 -07:00
Unknown W. Brackets
a779645152 Wrap sceKernelGetThreadExitStatus().
So it's usable internally too.
2013-05-26 10:17:59 -07:00
Unknown W. Brackets
2c4254d0c8 Disallow suspend/resume on current thread.
Might be some extra subtle things with callbacks/interrupts here...
2013-05-26 02:25:53 -07:00
Unknown W. Brackets
e6795b1a41 Initial attempt at a suspend/resume thread impl. 2013-05-26 01:01:29 -07:00
Unknown W. Brackets
690e52bc34 Make sure we keep the suspend state around.
I assume it sticks around in this case.
2013-05-25 23:57:04 -07:00
Unknown W. Brackets
084ad5aa53 Wrap the sleep/wakeup HLE funcs. 2013-05-25 20:43:19 -07:00
Unknown W. Brackets
8adf1e9ede Properly return success in sceKernelWakeupThread().
Fixes #1596, fixes #1796, possibly others.  I can't believe how long
I stared at this code and debugged it without noticing such a simple
thing...
2013-05-25 20:28:22 -07:00
Henrik Rydgard
4b15fe3c5e Minor cleanup 2013-05-19 18:45:58 +02:00
raven02
c378af0878 Fix Dragon Ball Z Tenkaichi Tag Team 2013-05-19 19:56:18 +08:00
Unknown W. Brackets
ead70f56d9 Add a safety check to prevent leaks. 2013-05-18 20:21:29 -07:00
Unknown W. Brackets
0fb5877d75 Implement sceKernelExtendThreadStack().
Fixes #1833.  Implemented using fake nids instead of callbacks since
it's simpler to get them (and waits and recursion) right.
2013-05-18 20:21:28 -07:00
Unknown W. Brackets
f91135cedf Prevent some threading related NULL derefs. 2013-05-18 10:19:34 -07:00
Henrik Rydgård
c13a101901 Merge pull request #1765 from unknownbrackets/perf
Eat cycles in sceKernelReferThreadStatus()
2013-05-11 14:31:42 -07:00
Unknown W. Brackets
16fe2c9691 Eat cycles in sceKernelReferThreadStatus().
Improves .hack//Link (demo)'s perf significantly, doesn't hurt anyone
else.
2013-05-11 12:25:55 -07:00
Unknown W. Brackets
5318e97a2e Threads starting better threads should stay at top.
This wasn't correct, I think I must've added it because something else
should've been rescheduling.
2013-05-11 11:28:37 -07:00
Henrik Rydgard
5fc8de091d Make some logging VERBOSE 2013-05-09 11:18:38 +02:00
Unknown W. Brackets
bf826ed9c1 Correct delay for sceKernelDelayThread(0).
It's not 200 for 0, more like 100ish.
2013-05-04 23:42:10 -07:00
Unknown W. Brackets
f1f2cf0603 Replace some hleEatCycles() with actual PSP timing.
Measured several runs at 8 per run with test overhead check.
2013-05-04 23:42:10 -07:00