Commit graph

63 commits

Author SHA1 Message Date
Henrik Rydgard
a31194a877 Add some sanity checks when looking up syscalls.
This may avoid crashing the emu when it starts executing junk (still not good of course, heh).
2014-06-08 13:03:03 +02:00
lioncash
b9886942a7 Fix some vertical alignments in misc Core source files. 2014-03-03 11:16:53 -05:00
Unknown W. Brackets
c7f1197ab1 Cut down on a debug check in release mode.
In Jewel Summoner, for example, this gets called a lot, and eats a
measurable percentage of time.
2014-03-01 15:14:17 -08:00
Henrik Rydgård
ce378b231f Delete CPU.cpp/h , cleanup 2013-12-30 00:11:29 +01:00
Unknown W. Brackets
dfbfed7534 Oops, avoid a crash on a bad HLE func.
In the debug stats area.
2013-11-04 08:03:50 -08:00
Unknown W. Brackets
732ae13ebb Fast path CallSyscall where possible.
It seems we're spending a decent amount of time there, which isn't
entirely unexpected.  We can eliminate some things easily.
2013-11-04 07:59:37 -08:00
Unknown W. Brackets
ee57498b16 Add a setting to skip 0xDEADBEEF reg filling.
For debugging purposes.  Can't think of a better way.
2013-10-30 07:28:52 -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
Henrik Rydgard
f7feefcb03 Cleanup: Remove a check that will never be true 2013-10-21 23:02:37 +02: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
15f66f2ff2 Log when syscalls fail due to intr/dispatch. 2013-09-09 23:14:40 -07:00
Unknown W. Brackets
a05c78f8fc Keep unknown syscall reporting the same.
Oops.
2013-09-01 00:46:48 -07:00
Unknown W. Brackets
842e972a36 Unresolve function imports, track in loader. 2013-08-31 18:45:05 -07:00
Unknown W. Brackets
9311d405e9 Centralize and track imports/exports.
So that we can "unresolve" them.
2013-08-31 17:00:08 -07:00
Unknown W. Brackets
17a5a42a14 Disable some common waits inside interrupts. 2013-08-27 23:55:37 -07:00
Unknown W. Brackets
109ad17ac6 Use a typesafe struct for opcodes.
Also, correctly read delayslots using Read_Instruction on ARM.
2013-08-24 15:36:24 -07:00
Henrik Rydgard
a346697037 Update native + some very minor changes 2013-07-27 00:44:16 +02:00
Unknown W. Brackets
b9c2e21105 Improve performance of syscall resolving.
This was actually kinda slow (noticeably) in God Eater Burst.
2013-07-06 15:14:50 -07:00
Henrik Rydgard
3c02678dff HLE GetFuncName: Correctly compare to numFunctions 2013-06-26 20:30:49 +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
cb3d021a7f Link long module names properly (truncating.) 2013-05-21 00:33:12 -07:00
Unknown W. Brackets
0525906c70 Report unimplemented but known HLE functions. 2013-05-18 20:21:28 -07:00
Henrik Rydgard
82aa605b36 Add back shadows to FPS counter and debug text. Warning fixes. 2013-04-08 20:59:45 +02:00
Unknown W. Brackets
ba264b1df3 Don't delay results when dispatch is disabled.
Wait won't work so the CoreTiming event will just cause havoc.
2013-04-03 00:04:17 -07:00
Unknown W. Brackets
276037675f Prevent waiting on semas while dispatch disabled.
Does relatively well on tests this way.
2013-03-24 23:30:32 -07:00
Unknown W. Brackets
75c5afa147 Add delays in some timing funcs that games tightloop.
Greatly improves performance in Legend of Heroes 1.
2013-03-19 07:48:41 -07:00
Unknown W. Brackets
b1e9924075 Shave a tiny bit of time out of CallSyscall(). 2013-03-16 11:22:47 -07:00
Unknown W. Brackets
26306342fd Simplify hleDelayResult()'s handler a bit. 2013-03-11 02:52:15 -07:00
Unknown W. Brackets
0b9c248856 Reschedule in sceIoLseek() etc.
Also make it so we can return u64s easily in places...
2013-03-11 02:50:32 -07:00
Unknown W. Brackets
dba04a7e22 Add a function for HLE to consume cycles.
Needed sometimes to make timing match better for tight loops.
Also removes the Puyo Puyo Fever hack.
2013-03-09 13:53:19 -08:00
Unknown W. Brackets
d2be407223 Make HLE func delayed results more generic. 2013-03-09 11:42:15 -08:00
Unknown W. Brackets
cb4c7f0eb6 Add some basic reporting hooks. 2013-03-04 00:01:40 -08:00
Unknown W. Brackets
64c42ffaf2 Fix some warnings generated by clang. 2013-02-24 10:23:31 -08:00
Unknown W. Brackets
363d1dbe19 Fix some misc. warnings. 2013-02-18 08:44:59 -08:00
Unknown W. Brackets
015529cb49 Don't call time_update() when debug stats are off.
This is not fast especially when syscalls are being hammered.
2013-02-02 20:42:01 -08:00
Henrik Rydgård
ae8a799030 Merge pull request #544 from unknownbrackets/perf
Don't measure syscall stats when not showing
2013-01-30 23:50:23 -08:00
Unknown W. Brackets
4ccd9ee118 Don't measure syscall stats when not showing. 2013-01-30 21:59:38 -08:00
Unknown W. Brackets
ce2ccd85b2 Fix misreporting of unknown syscalls.
Unknown syscalls in known modules just weren't being reported.
Unknown syscalls in unknown modules were reported as Kernel_Library (which
is module 0.)
2013-01-30 21:29:27 -08:00
Unknown W. Brackets
a6094e25ff Get rid of waitTypeStrings and resched reason copy. 2013-01-26 11:29:20 -08:00
Unknown W. Brackets
6ec8fe6bf3 Track summed totals of syscalls.
Just so we can easily see if some func is being called a ton.
2013-01-11 08:59:15 -08:00
Henrik Rydgard
f3749d8abe Add kernelstats
Useful for finding out if some syscall takes unexpectedly much CPU.
2013-01-11 00:13:38 +01:00
Unknown W. Brackets
da865e83dc Write an unknown syscall for unresolved imports. 2013-01-08 00:48:38 -08:00
Unknown W. Brackets
79f9ebc2e1 Keep track of exported symbols and link them later. 2013-01-08 00:32:24 -08:00
Henrik Rydgård
95c4e0b9c4 Quick build fix for gcc 2012-12-28 23:33:00 +01:00
Unknown W. Brackets
bcecd881b1 Savestate cleanup + be more careful with vectors.
For some reason I debugged it going into std::string so I just made
them all more explicit which fixed everything.
2012-12-28 13:55:31 -08:00
Unknown W. Brackets
4b39e39455 Start save stating the filesystem state.
Plus minor fixes and at least an attempt to make states the same
on both 32 and 64 bit.
2012-12-28 13:55:27 -08:00
Unknown W. Brackets
6a6db5f53a Remember to break on HLE after an ignored syscall. 2012-12-24 22:03:40 -08:00
Unknown W. Brackets
dc21d5c462 Add a mechanism for HLE to trigger a debug break. 2012-12-24 21:47:54 -08:00
Unknown W. Brackets
b8ae91237e Oops, missed some state in HLE to reset. 2012-12-24 21:04:28 -08:00
Unknown W. Brackets
15793fe532 More minor static analysis warning fixes. 2012-12-21 17:00:47 -08:00