Unknown W. Brackets
cb4e72058a
Report usage if callback "injection."
...
These are generally giving incorrect results, but it will help to know
what games are triggering it.
2014-01-26 18:41:42 -08:00
Unknown W. Brackets
efa6640807
Report any missing wait type handling funcs.
2014-01-26 17:14:11 -08:00
Ced2911
2c522cda9a
[core] fix some endian bugs
2014-01-26 14:26:27 -08:00
Unknown W. Brackets
ab49de0331
Eat some cycles when getting the current thread id.
2014-01-19 12:44:55 -08:00
Unknown W. Brackets
73d6accafc
Eat a few cycles when checking callbacks.
...
Some games really spam this function.
2014-01-19 12:44:54 -08:00
Unknown W. Brackets
553990d5a0
Eat cycles when messing with the dispatch thread.
2014-01-19 12:44:53 -08:00
Unknown W. Brackets
1a38f6fa7d
Properly remove terminated thread from ready queue.
...
If we change the priority first, we'll remove from the wrong priority
level, oops. Gotta change afterward.
Should improve Darkstalkers Chronicle: The Chaos Tower.
2014-01-09 22:05:04 -08:00
Unknown W. Brackets
183b4cb45c
Add a static method for creating PSPPointers.
...
This is still kinda ugly, but the assignment thing was just too ugly, I
couldn't do it anymore.
2013-12-16 23:50:52 -08:00
Unknown W. Brackets
e73d43c434
Correct sceKernelTlspl func names, etc.
...
This is mostly pedantic but it's nice to have the right names.
2013-12-02 23:40:16 -08:00
Unknown W. Brackets
7dedf54bc3
Always resched in thread queue rotation.
...
It might be time to reschedule anyway, some games call this in a loop with
an empty queue.
May help Harukanaru Toki No Naka de Hachiyoushou (#4669.)
2013-11-29 08:59:47 -08:00
Henrik Rydgard
f9f6e9492d
Reorder vfpu data in saved kernel contexts when loading in a new version.
2013-11-28 13:27:51 +01:00
Henrik Rydgard
55500d4bb6
Reorder VFPU registers in memory so that we can flush and reload them in bulk more often.
...
Doesn't actually do that yet, that's for the NEON branch.
2013-11-28 13:27:51 +01:00
Unknown W. Brackets
41a7157aa6
Eat some cycles when changing thread priority.
...
Some games call this a lot.
2013-11-28 01:01:22 -08:00
Unknown W. Brackets
21c9577801
Initialize fcr31 correctly (even though unsup.)
2013-11-14 23:44:49 -08:00
Unknown W. Brackets
26f5922174
Return the correct value for fcr0/fir.
...
This is what the PSP actually returns, it's read only.
2013-11-14 23:39:08 -08:00
Unknown W. Brackets
baa82e0a9d
Keep syscalls the same in the interpreter.
...
Rather than having different bugs.
2013-11-04 07:59:36 -08:00
Henrik Rydgård
b2298a9e86
Merge pull request #4420 from unknownbrackets/savestates
...
Enable rewind feature in UI, fix a savestate bug
2013-11-03 03:21:51 -08:00
Unknown W. Brackets
d400b1a67b
Keep track of the current thread obj.
...
To reduce overhead/improve perf. Actually, it used to be only the current
thread object, but now it's just a cache with accessors.
2013-11-02 22:12:44 -07:00
Unknown W. Brackets
738dfc84e4
Speed up __GetCurrentThread(), it's called a lot.
...
This only needs to be an assertion.
2013-11-02 22:12:43 -07:00
Unknown W. Brackets
f716d781b6
Retain threadend waits in savestates.
...
Oops, been broken since 3fb2c8f654
.
2013-11-02 17:40:23 -07:00
Unknown W. Brackets
9ebaf7b68b
Fill registers with 0xDEADBEEF after most syscalls.
...
Some, like sceMpegRingbufferPut(), we don't, since... it's complicated.
But most we do, like a real PSP does.
2013-10-30 00:47:04 -07:00
Unknown W. Brackets
04ec987448
Initialize thread regs with 0xDEADBEEF.
...
Also initialize the float regs to NaN.
2013-10-29 21:39:24 -07:00
Unknown W. Brackets
95c68ae1e7
Assert some unlikely buffer overflows.
2013-10-26 18:30:55 -07:00
Henrik Rydgard
bf89c01215
When atrac3+ decoding fails, stop decoding silently-ish instead of decoding garbage, spamming the log
2013-10-21 23:10:30 +02:00
Unknown W. Brackets
f5e0d80ead
Pass arguments to root threads same as regular.
...
Before it would have issues or crash if the args were > 256 bytes.
Fixes Ys 1 & 2 Chronicles.
2013-10-16 01:31:58 -07:00
Unknown W. Brackets
e06889069c
Don't use the destructor to free thread stacks.
...
If we do, kernelObjects.clear() will trash perfectly good memory on
loading a state. I guess it also makes shutdown slower.
Fixes #4186 .
2013-10-14 22:09:16 -07:00
Unknown W. Brackets
a194006aad
Fix crash deleting a never started thread.
...
Fixes #4069 .
2013-10-08 22:39:49 -07:00
Unknown W. Brackets
5be30fb857
Add support for the clear stack thread attr.
2013-10-06 12:16:58 -07:00
Unknown W. Brackets
b928f50353
Cleanup sceKernelRegisterExitCallback() per tests.
2013-09-29 01:10:07 -07:00
Unknown W. Brackets
a7ec139b5a
Savestate the exit callback, reporting.
...
Seems like LoadExecForUser_362A956B() uses it, so we need to save it.
I have no confidence that function works correctly, so let's report it.
2013-09-29 00:19:54 -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
Unknown W. Brackets
ca6491ea22
Auto resume dispatch at thread start/create.
2013-09-12 08:02:43 -07:00
Unknown W. Brackets
b898e397aa
Correct sceKernelGetThreadStackFreeSize().
...
It was always returning 0.
2013-09-10 01:31:03 -07:00
Unknown W. Brackets
0f7ac377cd
Offset the root thread's stack by arg size.
...
Otherwise it'll just overwrite, right?
2013-09-10 01:12:51 -07:00
Unknown W. Brackets
ada492febe
Fix really stupid heap corruption mistake.
2013-09-09 22:33:17 -07:00
Unknown W. Brackets
ccf021cef0
Return a negative error code in __KernelGetWaitID.
...
This way we can use 0 as a proper wait id.
2013-09-09 21:39:56 -07:00
Unknown W. Brackets
2577f65b80
Reset waits when terminating a thread.
...
Terminated threads can't be waiting.
2013-09-09 21:39:38 -07:00
Unknown W. Brackets
e19fdef0fd
Reset thread priority on terminate.
2013-09-09 21:31:04 -07:00
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