Comments (24)
Yes, but it's far more complicated than it seems. We need to be able to free the
meory and the modules first, then hook sceKernelLoadModule() and
sceKernelStartModule() functions.
Original comment by [email protected]
on 21 Apr 2010 at 9:49
- Added labels: Type-Enhancement
- Removed labels: Type-Defect
from valentine-hbl.
I know it isn't easy. =)
It is however, a crucial part for high compatibility with the HBL
Original comment by [email protected]
on 21 Apr 2010 at 12:22
from valentine-hbl.
Original comment by [email protected]
on 23 Apr 2010 at 2:30
- Added labels: Priority-High
- Removed labels: Priority-Medium
from valentine-hbl.
For this issue, we would need to hook relevant functions:
http://psp.jim.sh/pspsdk-doc/group__ModuleMgr.html
We would need a new data structure to hold the loaded modules information, so
we can
start/stop/unload the loaded module by an ID referred by the caller.
All modules would be allocated SMEM_high if there's enough memory left.
The actual module loading is the same as the game module loading, except that
it has
to be relocatable (aka PRX) and it's not executed until indicated by the HB by
sceKerneStartModule().
Original comment by [email protected]
on 27 Apr 2010 at 11:06
- Added labels: Component-Logic
from valentine-hbl.
Also, important, we would need to take into account the PRX exports.
Once a PRX is loaded, we would need looking for its exports in the other user
modules
and resolve them (this is closely related to issue 8)
Original comment by [email protected]
on 27 Apr 2010 at 12:22
from valentine-hbl.
I've just commited r59 that implements functions for loading external modules. I
didn't have to write much code for it, as mostly everything was already there ;)
Original comment by [email protected]
on 28 Apr 2010 at 5:40
- Changed state: Started
from valentine-hbl.
That's a great start, let's hope we can improve it.
I randomly tested an emulator (gpsp) that loads external modules and got
start_module returned 0x8002012E
0x8002012e is SCE_KERNEL_ERROR_UNKNOWN_MODULE.
I need to investigate more, this could be anything, but I'm guessing that these
modules could be using kernel functions...
Original comment by [email protected]
on 1 May 2010 at 2:54
from valentine-hbl.
I got same errors in EDecrypt v1.4.0 and psardumper.
http://advancedpsp.tk/foro_es/viewtopic.php?p=4732#p4732
Original comment by [email protected]
on 1 May 2010 at 7:01
from valentine-hbl.
That error would mean the module wasn't loaded in the first time, or the module
id
passed is incorrect.
Original comment by [email protected]
on 1 May 2010 at 11:00
from valentine-hbl.
Now it seems I don't get any errors, but the thread that launches the external
modules stops with unknown reason.
Original comment by [email protected]
on 3 May 2010 at 11:09
from valentine-hbl.
I've found a weird error: when loading a second module, HBL library table gets
corrupted, so HBL cannot resolve the new module imports.
=> ESTIMATING IoFileMgrForUser : 0xEB092469
Searching for library IoFileMgrForUser
Current library:
����������������������������
����������������������������
����������������������������
����������������������������
����������������������������
������������������
Current library:
����������������������������
����������������������������
����������������������������
����������������������������
����������������������������
������������������
[all libraries in table are corrupted...]
->ERROR: LIBRARY NOT FOUND ON TABLE IoFileMgrForUser
Real call after estimation: 0x00000000
Resolved stub 0x0890FC48: 0x03E00008 0x00000000
Also, it seems that values passed by this newly loaded module to
sceKernelCreateThread are wrong.
Attempting to create thread named M with entry point 0x088F9900, priority
0x00000020,
stack size 0x00040000, and attributes 0x02401821
Thread name, entry point and atrribute are wrong.
This may well be a stack corruption problem, since HBL is loaded at the end
(highest)
of user memory, and stack grows from higher to lower memory. But I still don't
understand how global tables are being corrupted if they actually are malloc'ed
(or
they are not?).
Original comment by [email protected]
on 7 May 2010 at 5:48
from valentine-hbl.
Well I'm just checking that actually the .bss section is not included on
hbl.bin,
thus global statically are actually not in reserved memory, thus most likely
stack is
overflowing them.
Original comment by [email protected]
on 7 May 2010 at 5:56
from valentine-hbl.
Now HBL tables are alocated separately, and module imports seem to resolve
fine, but
still the thread cannot be created:
Attempting to create thread named M with entry point 0x088F9900, priority
0x00000020,
stack size 0x00040000, and attributes 0x02401821
Thread creation failed with error 0x80020191
Any ideas about this?
Original comment by [email protected]
on 9 May 2010 at 10:55
from valentine-hbl.
Well i don't have an "Idea" but i know what that error Code means
0x80020141 = Illegal Position Code
If you look on the Dark-Alex.org website u can see ALL The PSP Codes :)
http://alek.dark-alex.org/pspwiki/index.php/Errors
Original comment by [email protected]
on 9 May 2010 at 2:07
from valentine-hbl.
Thanks, but I already know what the error codes mean, they're included on the
SDK ;)
Anyway, there's no error 0x80020141, you should look better xD It's 0x80020191,
SCE_KERNEL_ERROR_ILLEGAL_ATTR. As I already commented before, the values passed
to
sceKernelCreateThread() by the newly loaded module are wrong.
Original comment by [email protected]
on 9 May 2010 at 2:27
from valentine-hbl.
Oh sorry this PC is at work hooked up to a big TV and the screen resolution is
crap....
the letters are fuzzy haha so i thought it was a 4. I alway sget things
wrong... i
think i will just stick to HBL - ACC lol
Original comment by [email protected]
on 9 May 2010 at 2:55
from valentine-hbl.
[deleted comment]
from valentine-hbl.
[deleted comment]
from valentine-hbl.
[deleted comment]
from valentine-hbl.
[deleted comment]
from valentine-hbl.
[deleted comment]
from valentine-hbl.
[deleted comment]
from valentine-hbl.
[deleted comment]
from valentine-hbl.
Original comment by root.3.173210
on 9 Aug 2014 at 9:39
- Changed state: Done
from valentine-hbl.
Related Issues (20)
- Request HOT 7
- Sound Breaks In 6.31 HOT 3
- HBL R101 takes forever HOT 4
- HBL Compatible Homebrew: http://wololo.net/talk/viewtopic.php?f=3&t=22 HOT 2
- build_nid_table HOT 1
- LUA homebrew not functioning correctly HOT 4
- hbl + charger = fail HOT 3
- r105+wmenu=fail? HOT 2
- [R107][Patapon2][PSP Go] Some games do not exit correctly anymore HOT 7
- Gpsp crashes with error messages, then returns to hbl menu when relaunched after exiting it. HOT 1
- Rev.109 Network problem HOT 2
- Error with network libraries (80410D17)
- wifi file transfer v1.0A HOT 5
- setup_hook() is lengthy HOT 4
- Possible improved memory allocation HOT 1
- jelly car crash HOT 2
- more of a question than an issue HOT 2
- Not Workikng HOT 1
- Hello from future =) HOT 1
- Quick fix for /trunk/launcher/Makefile HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from valentine-hbl.