Unknown W. Brackets
292a9ea567
Clear module text and bss on unload.
...
Text is set to break instructions, data/bss to -1. Matches results on a
PSP.
2014-07-13 22:00:32 -07:00
Unknown W. Brackets
98d3dc4be8
Typos.
2014-07-12 13:48:30 -07:00
Unknown W. Brackets
ef4847b6f5
Don't double decrease g_inCbCount.
...
Happened when a thread was deleted, it seems like. Fixes #6542 .
2014-07-12 09:57:13 -07:00
Unknown W. Brackets
0a33eb4c42
Fix missing log semicolons only affecting logging.
2014-06-29 19:09:39 -07:00
Unknown W. Brackets
0078faef8b
Fix some log semicolons that might affect logic.
...
But, these should all be right.
2014-06-29 19:09:38 -07:00
Unknown W. Brackets
1c3b60a8ee
Allow changing software skinning at runtime.
2014-06-28 21:46:43 -07:00
Unknown W. Brackets
b4594c7bc5
Avoid Advance() twice, cleanup some comments.
2014-06-28 16:20:35 -07:00
Unknown W. Brackets
b68ad3844e
Simplify __KernelReSchedule().
...
It no longer needs all these checks, and we can Advance within callbacks,
interrupts, etc. safely.
2014-06-28 16:17:52 -07:00
Unknown W. Brackets
0edeb085ab
Allow rescheduling within callbacks.
2014-06-28 14:58:56 -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
4626e63294
Wake good pri threads immediately from delays.
2014-06-24 00:45:38 -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
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
Unknown W. Brackets
c142207a93
Fix a few warnings, mostly type comparisons.
2014-05-31 21:42:57 -07:00
Unknown W. Brackets
b9ede6aade
Add a class to create helper threads from HLE.
...
This should be usable from sceIo as well.
2014-05-22 23:38:21 -07:00
Henrik Rydgard
89fbe8f761
Reduce some logspam
2014-05-08 10:40:58 +02:00
Unknown W. Brackets
641064f0bc
Consistently use MIPS_REG_V0 for return values.
...
This way all instances are a lot easier to search for (was trying to find
where we were writing an incorrect value to v0, turns out to be callback
related of course.)
2014-03-04 08:21:55 -08:00
lioncash
b9886942a7
Fix some vertical alignments in misc Core source files.
2014-03-03 11:16:53 -05:00
Unknown W. Brackets
8aceba732a
Stop reporting null thread args with size.
...
Must've been a mistake in the test, can no longer reproduce the crash.
2014-03-02 16:59:50 -08:00
chinhodado
23cce7d25a
remove a redundant check
2014-02-15 19:39:13 -05:00
Unknown W. Brackets
48fd33b201
Remove callback return injection and related.
...
With paused waits, this is no longer correct. Callbacks still don't allow
waits inside callbacks yet (they should.)
2014-01-31 12:22:39 -08:00
Unknown W. Brackets
c9b037815f
Reschedule instead of switching to delayed threads.
...
This will hopefully take care of #5263 , and might fix other issues too.
If a thread goes into a wait, it may reschedule right into an interrupt.
In this case, it would've been switched back to, and woken up early.
2014-01-28 22:10:28 -08:00
Unknown W. Brackets
21cdcb5c0d
Force rescheduling within a callback.
...
Seems to fix #4914 . We already have a larger bug for callbacks.
2014-01-27 07:38:53 -08:00
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 3fb2c8f654cafe85e50586bb51d8a3c4c0e10674.
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