Unknown W. Brackets
a3637a1cad
Set the low mystery bits of the thread attr.
...
Tests on PSP show this, and I can't find a way to not have them set.
But I don't really know what they mean.
Anyway, since you can refer the status, you can see them, may improve
compatibility.
2013-09-09 20:51:52 -07:00
Unknown W. Brackets
0af3c50924
Eat cycles after creating a thread.
...
Improves things on some tests, should be more accurate.
Creating a thread sure takes a long time.
2013-09-09 20:49:30 -07:00
Unknown W. Brackets
1481bbdd3b
Validate and report some thread attributes.
2013-09-09 20:48:23 -07:00
Unknown W. Brackets
ce4c0d85bb
Support some thread stack attr options.
...
May improve memory management in some games.
2013-09-09 20:46:19 -07:00
Unknown W. Brackets
1040123a97
Delete callbacks when their thread is deleted.
2013-09-09 00:22:00 -07:00
Unknown W. Brackets
4bba276696
Run callbacks in creation order, not notify order.
2013-09-09 00:21:59 -07:00
Unknown W. Brackets
87bd8d59e2
Clean up umd bad callback id errors, oops.
2013-09-09 00:21:53 -07:00
Unknown W. Brackets
64b75ed3ff
Decentralize callback registration.
...
Callbacks are always tied to THEIR thread, and the registration was all
based on the current thread which is just not the right way.
2013-09-09 00:21:15 -07:00
Unknown W. Brackets
94e88943d8
Keep a single list of pending callbacks.
...
Doing it per type only meant that we'd incorrectly call a callback twice
if it was notified by e.g. scePowerRegisterCallback() and
sceKernelNotifyThread(), which isn't what's supposed to happen.
2013-09-09 00:21:14 -07:00
Unknown W. Brackets
f1b62983b5
Add callback wait handlers for threadend as well.
2013-09-08 12:14:07 -07:00
Unknown W. Brackets
6d8213b0c5
Always specify retval when resuming a thread.
2013-09-08 12:02:18 -07:00
Unknown W. Brackets
4c828cd9a0
Remove __KernelTriggerWait(), no longer used.
2013-09-08 11:58:40 -07:00
Unknown W. Brackets
3fb2c8f654
Use a waitingThreads list for threadend.
...
The timeout wasn't being correctly written before, actually.
2013-09-08 11:15:09 -07:00
Unknown W. Brackets
b03be16fa6
Refactor thread end/delete a bit.
2013-09-08 10:50:55 -07:00
Henrik Rydgard
8c88dff5a4
More log categories, use them (and existing ones). Improve log config.
2013-09-07 22:02:55 +02:00
Unknown W. Brackets
d8d8d3b0ec
Use a different wait type for async io.
2013-09-07 11:04:42 -07:00
Unknown W. Brackets
2a7e9a5afc
Cleanup sceKernelCreateCallback().
...
And tweak sceKernelReferCallbackStatus().
2013-09-03 22:18:15 -07:00
Unknown W. Brackets
b20bb3b609
Refactor down the begin/end callback stuff.
2013-09-03 01:21:52 -07:00
Unknown W. Brackets
1bf974aff6
Implement VPL/FPL callback handlers.
...
Smells like time to refactor, there are less differences than I expected.
2013-09-03 01:21:51 -07:00
Unknown W. Brackets
648dd5f154
Don't allow sceKernelWakeupThread() on cur thread.
...
I don't know why you wouldn't allow this, but the PSP firmware doesn't.
2013-09-03 01:21:50 -07:00
Unknown W. Brackets
722b878428
Fix sceKernelReferThreadRunStatus() layout.
...
Was missing size, so all fields were wrong.
2013-09-03 01:21:50 -07:00
Unknown W. Brackets
8bf1ef2616
Add handlers for delay and sleep callbacks.
2013-09-03 01:21:49 -07:00
Unknown W. Brackets
15a0f39fa1
Return yet more errors while inside interrupts.
2013-08-28 23:15:13 -07:00
Unknown W. Brackets
17a5a42a14
Disable some common waits inside interrupts.
2013-08-27 23:55:37 -07:00
Unknown W. Brackets
61fae4e920
Return proper errors while dispatch disabled.
...
In at least the majority of waits.
2013-08-27 23:55:37 -07:00
Unknown W. Brackets
252bf04c64
sceKernelDelaySysClockThread() cleanup.
...
It doesn't wait either of course.
2013-08-27 23:55:35 -07:00
Unknown W. Brackets
1c51564896
Stop practicing thread necromancy.
2013-08-27 23:55:34 -07:00
Unknown W. Brackets
fa57e23305
Implement volatile memory lock waiting.
2013-08-26 01:04:37 -07:00
Unknown W. Brackets
8d7eb265be
Log context switch time, shorten logging a bit.
...
This is really useful for seeing why games are slow or hanging.
2013-08-25 10:25:49 -07:00
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