Commit Graph

495 Commits

Author SHA1 Message Date
Unknown W. Brackets 7c37d64717 Load kernel modules into kernel memory.
This way they don't eat up user memory space.
2014-08-17 14:25:55 -07:00
Unknown W. Brackets 99d96218e1 Correct some loadmodule error codes. 2014-08-17 14:25:55 -07:00
Unknown W. Brackets cf4b607113 Validate the elf position argument more. 2014-08-17 14:25:54 -07:00
Unknown W. Brackets 1d310ad8bb Allocate module memory from top/bottom per request. 2014-08-17 14:25:54 -07:00
Unknown W. Brackets 1d195a37e4 Cleanup modules on unloadself. 2014-08-17 14:25:53 -07:00
Unknown W. Brackets 2f90c8d35a Fix a bad == comparison typo. 2014-07-15 23:33:01 -07:00
Unknown W. Brackets ff7c3ab10d Oops, would still infinite loop on a bad module.
Should really fix #6552 this time.
2014-07-15 07:14:13 -07:00
Unknown W. Brackets 2da02f97c8 Null check modules on loadexec.
Should fix #6552.
2014-07-14 22:14:23 -07:00
Henrik Rydgård c4bebda182 Merge pull request #6549 from unknownbrackets/modules
Correct some module func return values, info values, and clear on unload
2014-07-14 14:11:29 +02:00
Unknown W. Brackets bddeba5901 Add a safety check for lots of segments. 2014-07-13 23:51:36 -07:00
Unknown W. Brackets 4ced0e86b1 Return an error code when module load fails.
If we're out of memory, we need to tell the game, of course.
2014-07-13 22:00:33 -07:00
Unknown W. Brackets 7c4aab3cc2 Warn on exports from syslib.
They don't seem to hook up properly on hardware by the module name.
2014-07-13 22:00:33 -07:00
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 ede29179c6 Cleanup remaining modules on loadexec. 2014-07-13 22:00:31 -07:00
Unknown W. Brackets 729377881c Protect against modules with no start address.
Generally, fake ones.
2014-07-13 19:58:30 -07:00
Unknown W. Brackets 4a94a30ba6 Calculate the module info data/text/bss size. 2014-07-13 19:53:00 -07:00
Unknown W. Brackets 1c7873e2f5 Fill the module info segment addresses and sizes. 2014-07-13 19:16:25 -07:00
Unknown W. Brackets 399d4d1ba9 Correct sceKernelModuleStart() return value. 2014-07-13 15:16:03 -07:00
Unknown W. Brackets 8dd783f719 Correct HLE function name per sha. 2014-07-13 11:03:23 -07:00
Karen Tsai 1d1096633f Removed some extraneous tabs in sceKernelModule.cpp 2014-07-02 13:21:27 -04:00
sum2012 96c6a53e58 Fix space bug 2014-07-02 20:27:17 +08:00
sum2012 0256c7e056 Use with same code with sceKernelStopUnloadSelfModuleWithStatus 2014-07-02 20:08:27 +08:00
sum2012 eecd9038cd Init exitCode variable 2014-07-02 08:00:41 +08:00
sum2012 bc4a9149d3 Correct sceKernelSelfStopUnloadModule
Fix #4237
2014-07-02 07:25:49 +08:00
Henrik Rydgård bfffe33438 Merge pull request #6469 from unknownbrackets/logging
Enforce semicolons at the end of log lines
2014-06-30 11:44:02 +02:00
Unknown W. Brackets c6f5ddd7a4 Reset replacements on loadexec.
Just to make sure we don't get confused.
2014-06-30 00:27:05 -07:00
Unknown W. Brackets 0a33eb4c42 Fix missing log semicolons only affecting logging. 2014-06-29 19:09:39 -07:00
Unknown W. Brackets 5db79dcf11 Fix some missing semicolons on log statements. 2014-06-29 19:09:37 -07:00
Unknown W. Brackets ec94498342 When scanning or relocating, check replacements.
Just to make sure we don't wrongly detect the length or unresolve a var
wrong etc.
2014-06-23 08:18:56 -07:00
Unknown W. Brackets 90b30f8bfe Use module start func, not entry, if specified.
Fixes #5539, Ranshima Monogatari Rare Land Story.  Still logging in case
it causes a problem.
2014-06-07 06:28:23 -07:00
Unknown W. Brackets a7b9ce205b Enable function replacements by default.
So things like Star Ocean work, and game memcpy()'s to GPU work.

This will make game start on mobile a bit slower, though.  And there could
still be bugs so leaving as an option, but seems pretty stable.  Didn't
realize it wasn't enabled by default.
2014-06-07 00:13:45 -07:00
Unknown W. Brackets c1fdb5fc5b Might as well allow imports to blacklisted.
If someone's trying to read their code.
2014-05-24 17:15:25 -07:00
Unknown W. Brackets 8ef00232d3 Parse exports of blacklisted modules.
But ignore them.  This allows us to get the devkit version and other
potentially useful information.
2014-05-24 17:13:26 -07:00
Unknown W. Brackets 67fc607671 Oops, dumb mistake in reporting. 2014-05-21 01:17:15 -07:00
Unknown W. Brackets 5c13d482e0 When reporting module versions, include devkit ver.
Looks like this'll be the ticket for scePsmfPlayer, which has different
functionality in different versions (including when and how end of video
is flagged, which FF2 depends on.)

Now let's see what versions are out there.
2014-05-21 01:11:33 -07:00
sum2012 21c301962b Add some kernal module
Find in bugz Homebrew
2014-05-17 23:06:01 +08:00
Unknown W. Brackets dde2f3ade6 Re-replace functions after loading a savestate.
Might need to clear before saving too... anyway, this makes testing a bit
easier for certain areas.

Also, correctly decrease downcount on x86.
2014-04-12 15:49:20 -07:00
Unknown W. Brackets 829f70dacd Initialize textStart/textEnd for fake modules.
Otherwise we try to unload random memory, sometimes this breaks weird
things.
2014-04-12 13:09:33 -07:00
Unknown W. Brackets 76e61e10a9 Fix hashmap crashes with games that load modules.
This should properly unload and reload the functions as necessary.
2014-04-12 01:16:32 -07:00
Unknown W. Brackets 05ab192c9c Reduce includes in Core/HLE/.
Especially templates.
2014-03-15 11:22:19 -07:00
Henrik Rydgård d374cf94b3 Merge pull request #5529 from sum2012/kernal-load
Bypass to boot.bin from patched game
2014-03-13 19:11:06 +01: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
Henrik Rydgård 8f90681994 Merge pull request #5589 from unknownbrackets/mpeg-version
Track the sceMpeg_library version for behavior differences
2014-03-02 23:14:36 +07:00
Unknown W. Brackets cda1bc2772 Keep track of the loaded sceMpeg_library version.
They have variations in behavior.
2014-03-02 01:31:29 -08:00
Unknown W. Brackets 87a07d7355 Workaround bug in Kurohyou 2 (uninitialized data.)
The game calls scePsmfGetEPWithTimestamp(), but without any chapters.
This means nothing is written to its pointer.  But it takes the value
there anyway.

It happens that the value there is 0, but only because something wrote it
to the stack before the call.  It seems like scePsmfVerifyPsmf() is the
one writing it, since it has a different value shortly before that call.

So, as a workaround, just write some 0s into the stack.  Games without
bugs should not care.  Hard to predict what will happen to another buggy
game.
2014-03-02 01:22:25 -08:00
Unknown W. Brackets 444dd15a25 Report module versions of HLE'd modules.
sceMpeg has slightly different functionality, so collecting the unique
versions will help.  So far I know of 4.
2014-03-01 14:32:42 -08:00
Henrik Rydgård 909fc3d3f9 Merge pull request #5576 from thedax/decryptedEbootDump
Add a basic decrypted EBOOT.BIN dump feature.
2014-02-27 18:46:18 +07:00
Unknown W. Brackets 4a1c9645e8 Get rid of Memory::GetStruct(), use PSPPointer. 2014-02-27 00:28:57 -08:00
The Dax 3fbf715d78 Fix wrong dump length. 2014-02-27 01:54:00 -05:00
The Dax 8c31e1ca21 Add a basic decrypted EBOOT.BIN dump function.
It won't dump already decrypted EBOOTs.
2014-02-27 01:35:17 -05:00