240 Commits

Author SHA1 Message Date
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
sum2012
98e952ea6e Only can use __KernelLoadExec when load BOOT.BIN 2014-02-21 07:14:40 +08:00
sum2012
b8a8cc0049 Update log information - menthion we try __KernelLoadExec 2014-02-21 06:00:41 +08:00
sum2012
8958501acb Support kernal mode Module
Fix #5527
https://github.com/hrydgard/ppsspp/pull/5512/files No need
2014-02-21 05:32:55 +08:00
Unknown W. Brackets
d2108a962e Switch from USING_GLES2 to MOBILE_DEVICE.
Still using USING_GLES2 for, well, GLES2.  But for things that are really
about mobile, we need a new define.  Devices are coming that don't use
GLES2.
2014-02-08 16:37:58 -08:00
Unknown W. Brackets
9cb14cb58b Add some reporting for module loading params.
To see what types of values even get passed...
2014-02-04 23:49:20 -08:00