View previous topic :: View next topic |
Author |
Message |
Coldbird

Joined: 08 Feb 2007 Posts: 155
|
Posted: Sun Apr 04, 2010 7:08 am Post subject: Create ISO Homebrew? |
|
|
I've been trying to create some usermode homebrew apps in the form of iso images...
I've pretty much cloned the structure from any retail iso with the SYSDIR, UMD_DATA, etc...
And placed my own usermode homebrew as EBOOT.BIN, as always however I have some trouble...
Everytime I start that ISO I get a 8002013C error, which equals "library not loaded".
This error implied that one of my imports of my module wasnt filled... so I created a "empty" PRX to replace EBOOT.BIN which had no imports... and I used PSPLINK to check whether the module got loaded, and it did...
So it really has something to do with the imports... however... we have a bigger problem here... no matter WHAT i import... this error pops up... and throws me back to the VSH.
So I wanted to ask... how do I have to code homebrew so it can boot in ISO form? _________________ Been gone for some time. Now I'm back. Someone mind getting me up-2-date? |
|
Back to top |
|
 |
m0skit0
Joined: 02 Jun 2009 Posts: 226
|
Posted: Sun Apr 04, 2010 8:13 am Post subject: |
|
|
I'm not sure, but try placing it as BOOT.BIN instead of EBOOT.BIN. _________________
The Incredible Bill Gates wrote: | The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers. |
|
|
Back to top |
|
 |
Coldbird

Joined: 08 Feb 2007 Posts: 155
|
Posted: Sun Apr 04, 2010 9:38 am Post subject: |
|
|
I think I've figured out the cause of the problem...
This is the PRX Import / Export Information of my Homebrew...
Code: | Name: TEST_Loader
Attrib: 0000
Version: 1.0
GP: 00008330
Exports:
Export 0, Name syslib, Functions 2, Variables 1, flags 80000000
Functions:
0xD632ACDB [0x00000008] - module_start
0xCEE8593C [0x00000000] - module_stop
Variables:
0xF01D73A7 [0x00000150] - module_info
Imports:
Import 0, Name sceUmdUser, Functions 3, Variables 0, flags 40010011
Functions:
0x46EBB729 [0x000000B4] - sceUmdCheckMedium
0x8EF08FCE [0x000000BC] - sceUmdWaitDriveStat
0xC6183D47 [0x000000C4] - sceUmdActivate
Import 1, Name KDebugForKernel, Functions 1, Variables 0, flags 00010000
Functions:
0x84F370BC [0x000000CC] - Kprintf
Import 2, Name ThreadManForKernel, Functions 3, Variables 0, flags 00010000
Functions:
0x446D8DE6 [0x000000D4] - sceKernelCreateThread
0xF475845D [0x000000DC] - sceKernelStartThread
0x809CE29B [0x000000E4] - sceKernelExitDeleteThread
Done |
And this is the Import / Export of the Official Game (In this Case DW Strikeforce) - I've cut out only the important parts about this one...
Code: | Import 5, Name SysMemUserForUser, Functions 6, Variables 0, flags 40000011
Functions:
0x13A5ABEF [0x08806558] - sceKernelPrintf
0x237DBD4F [0x08806560] - sceKernelAllocPartitionMemory
0x91DE343C [0x08806568] - SysMemUserForUser_91DE343C
0x9D9A5BA1 [0x08806570] - sceKernelGetBlockHeadAddr
0xB6D61D02 [0x08806578] - sceKernelFreePartitionMemory
0xF77D77CB [0x08806580] - sceKernelSetCompilerVersion
Import 6, Name ThreadManForUser, Functions 5, Variables 0, flags 40010011
Functions:
0xF475845D [0x08806588] - sceKernelStartThread
0x293B45B8 [0x08806590] - sceKernelGetThreadId
0x369ED59D [0x08806598] - sceKernelGetSystemTimeLow
0x446D8DE6 [0x088065A0] - sceKernelCreateThread
0xAA73C935 [0x088065A8] - sceKernelExitThread |
The mayor differences I see are...
In my homebrew, for whatever reason... it's using ThreadManForKernel while in the official game its using ThreadManForUser...
If you compare the flags of the import you see this can't work... a user module direct jumping into kernel functions (flag 0001)...
The KPrintf I must admit is my fault... for not using sceKernelPrintf instead... but about the others... what am I ment to do, it seems the linker itself puzzles it together like that... bug?
One last thing, appending my test makefile - maybe something is wrong there and you guys can figure it out.
Code: | TARGET = eboot
OBJS = main.o exports.o
LIBS = -lpspumd
CFLAGS = -Os -G0 -Wall -fno-builtin-printf
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LDFLAGS = -nodefaultlibs
USE_KERNEL_LIBC = 1
USE_KERNEL_LIBS = 1
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build_prx.mak
|
_________________ Been gone for some time. Now I'm back. Someone mind getting me up-2-date? |
|
Back to top |
|
 |
TyRaNiD
Joined: 18 Jan 2004 Posts: 918
|
Posted: Sun Apr 04, 2010 10:18 am Post subject: |
|
|
Other than setting USE_KERNEL_LIBS=1 ? |
|
Back to top |
|
 |
Coldbird

Joined: 08 Feb 2007 Posts: 155
|
Posted: Sun Apr 04, 2010 10:22 am Post subject: |
|
|
I noticed it myself and was about to post the (obvious) solution.
Sometimes I guess I'm just too blind to see obvious things immediately...
Thanks non the less TyRaNiD! People like you make this forum a pleasure to visit. _________________ Been gone for some time. Now I'm back. Someone mind getting me up-2-date? |
|
Back to top |
|
 |
anmabagima
Joined: 01 Oct 2009 Posts: 96
|
Posted: Tue Apr 06, 2010 6:11 pm Post subject: |
|
|
Hi,
it seem to be tha case that your issue occured once you are already more than the half way through. I'm also interested how to setup my homebrew to distribute it as an ISO image for PSP. Do you have any tutorial or something similar which describes the steps you need to follow to achieve this, or do I only need to place my compiled eboot and all the files needed in the ISO-Structure ?
Thanks for any hints. |
|
Back to top |
|
 |
Coldbird

Joined: 08 Feb 2007 Posts: 155
|
Posted: Sun Apr 11, 2010 6:54 am Post subject: |
|
|
It's pretty easy however you need to make sure your Makefile settings fit...
Disable Kernel Libc and Libs... and compile as a pure user mode module with build_prx.mak.
Once compiled just make sure to create a proper ISO structure and use your newly created prx file as EBOOT.BIN, make sure to create a fitting param.sfo and copy a UMD_DATA file from any other retail umd image. _________________ Been gone for some time. Now I'm back. Someone mind getting me up-2-date? |
|
Back to top |
|
 |
anmabagima
Joined: 01 Oct 2009 Posts: 96
|
Posted: Mon Apr 12, 2010 4:46 pm Post subject: |
|
|
Hi,
uhh. Such easy ? Thanks for this. I will give it a try ;o)
- Had worked. Thanks very much... |
|
Back to top |
|
 |
lilmnm
Joined: 15 Jul 2008 Posts: 3 Location: lost :P
|
Posted: Tue May 11, 2010 1:10 pm Post subject: |
|
|
I have actually done this with and Installer for my Cheat Device i released the source code with the installer so everyone can see how its done
credits to Redhate for the original code and Tut
Also though i have added a few new things to its its commented on but kinda sloppy but it gets the job done and it all runs from a CSO it has a TUT explaining everything (i couldnt get the link to the original tut Redhate had posted)
Here is the like to it the tut and everything is in the CSO src file
http://daypr-cheat-device.googlecode.com/files/DayPR-Installer-PSP-Edition.zip |
|
Back to top |
|
 |
Coldbird

Joined: 08 Feb 2007 Posts: 155
|
Posted: Mon Jun 07, 2010 9:19 pm Post subject: |
|
|
Just wanted to add a little bit of info to this thread.
It seems on 5.0 M33 / 5.50 GEN it's possible to place a kernel module as EBOOT.BIN, this obviously only works due to the patches applied by the custom firmwares... but for us this proves quite useful non the less. _________________ Been gone for some time. Now I'm back. Someone mind getting me up-2-date? |
|
Back to top |
|
 |
|