Commit graph

260 commits

Author SHA1 Message Date
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
Ced2911
2c522cda9a [core] fix some endian bugs 2014-01-26 14:26:27 -08:00
Unknown W. Brackets
a2fa53d5c4 Track modules in the symbol map.
This makes it so things don't overlap confusingly, and also so that we can
replace funcs more correctly and sanely.

This is unfortunately a bunch more complicated...
2014-01-25 20:59:53 -08:00
Unknown W. Brackets
996d97a05e Properly savestate loaded modules.
May fix savestates in games that use modules heavily, like Yu-Gi-Oh, Metal
Gear Solid, Tales of Radiant Mythology, and Valkyrie Profile.
2014-01-22 01:06:59 -08:00
Unknown W. Brackets
3d75b4e918 Try to implement the unload/stop self module func.
A game might call this when it uses multiple modules in a normal, not
crashing, sort of situation.

This may help Killzone Liberation or Resistance.
2014-01-12 13:51:43 -08:00
Unknown W. Brackets
f14361c3b8 Add a bunch more missing cstring includes. 2013-12-30 21:37:19 -08:00
Henrik Rydgård
79ff2f0ba8 Start untangling our include mess a little. 2013-12-29 23:34:45 +01:00
Unknown W. Brackets
0f3c9ca92f Implement sceKernelLoadModuleBufferUsbWlan(). 2013-12-27 00:28:38 -08:00
Henrik Rydgard
1d2f1efd06 Fix function replacement on ARM 2013-12-18 00:09:08 +01:00
Henrik Rydgard
2eab4aa1bf Play around with function replacement. Turned off by default of course. 2013-12-17 23:40:27 +01:00
Henrik Rydgard
2140892074 Initial preparations for ability to replace game functions with custom implementations.
Also auto-saves hashmap additions and reapplies the hashmap on function
rename so that if you rename a function that exists in several copies
they will all be labelled.

Note that actual function replacement is not activated yet.
2013-12-17 12:27:20 +01:00
Henrik Rydgård
6432451334 Merge pull request #4864 from unknownbrackets/io-minor
Implement some ioctl commands for disc0:/ files
2013-12-17 00:38: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
sum2012
9b7e5566d1 Add more information for "Not support this patcher" 2013-12-17 05:36:55 +08:00
Unknown W. Brackets
18e2648a27 When importing vars, invalidate jit for HI16 too. 2013-12-14 15:05:56 -08:00
Unknown W. Brackets
1f32720d8f Return much more correct values for module info.
sceKernelQueryModuleInfo() was just completely wrong before.
2013-12-09 00:45:54 -08:00
Henrik Rydgård
89b3fff255 Merge pull request #4722 from pal1000/patch-1
Warning fix in Core/HLE/sceKernelModule.cpp resultBufferOffset type miss...
2013-12-04 09:22:08 -08:00
Henrik Rydgard
32f479b0a6 Assorted log spam reductions.
Also let Java know of some important events. Not used for anything yet.
2013-12-04 17:43:00 +01:00
pal1000
d03eed3e48 Warning fix in Core/HLE/sceKernelModule.cpp resultBufferOffset type missmatch 2013-12-04 17:56:33 +02:00
sum2012
eb5c349c2f Imp sceKernelGetModuleIdList by CPkmn 2013-12-04 06:28:32 +08:00
sum2012
40d9721e1f Wrap sceKernelGetModuleIdList
maybe first step of solve #2404
2013-12-03 07:35:27 +08:00
Unknown W. Brackets
eac8b1a84d Scan for functions even without a .text section.
It's possible this may be wrong, but every game I've seen loads the funcs
in this area.  Sometimes there's data after the funcs before the stubs,
but it's better than no funcs.
2013-12-01 19:43:40 -08:00
Unknown W. Brackets
435115441d Reinitialize the GE on sceKernelLoadExec().
Mostly, reset the lists and draw completion, etc.

May be required for Capcom Classic Collection Reloaded to work.
2013-11-28 15:35:12 -08:00
Kingcom
5844d0107b Rewrite SymbolTable 2013-11-27 13:33:30 +01:00
Henrik Rydgard
9d4ece0f58 Robustify the ELF loader a little - it didn't like unaligned addresses.. 2013-11-14 11:44:14 +01:00
Unknown W. Brackets
c2b2b366eb Don't erase args in sceKernelLoadExec().
Suspect this will fix Kamen Rider Climax Heroes OOO.
2013-11-02 15:51:15 -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
614ec822e8 Let's only bother with symbol loading on the desktop. 2013-10-22 15:14:47 +02:00
Henrik Rydgård
2d331cb8c4 Revert "Clear the symbol map in LoadExec. Fixes some hangs on switching games,"
This reverts commit 6c3f2155c7.
2013-10-18 18:08:18 +02:00
Henrik Rydgård
6c3f2155c7 Clear the symbol map in LoadExec. Fixes some hangs on switching games,
unclear why.
2013-10-18 14:40:58 +02:00
Kingcom
7f1fca8e74 Check e_ident of elf header 2013-10-05 10:05:55 +02:00