forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Create ISO Homebrew?

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
Coldbird



Joined: 08 Feb 2007
Posts: 155

PostPosted: Sun Apr 04, 2010 7:08 am    Post subject: Create ISO Homebrew? Reply with quote

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
View user's profile Send private message MSN Messenger
m0skit0



Joined: 02 Jun 2009
Posts: 226

PostPosted: Sun Apr 04, 2010 8:13 am    Post subject: Reply with quote

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
View user's profile Send private message
Coldbird



Joined: 08 Feb 2007
Posts: 155

PostPosted: Sun Apr 04, 2010 9:38 am    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Sun Apr 04, 2010 10:18 am    Post subject: Reply with quote

Other than setting USE_KERNEL_LIBS=1 ?
Back to top
View user's profile Send private message
Coldbird



Joined: 08 Feb 2007
Posts: 155

PostPosted: Sun Apr 04, 2010 10:22 am    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
anmabagima



Joined: 01 Oct 2009
Posts: 96

PostPosted: Tue Apr 06, 2010 6:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
Coldbird



Joined: 08 Feb 2007
Posts: 155

PostPosted: Sun Apr 11, 2010 6:54 am    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
anmabagima



Joined: 01 Oct 2009
Posts: 96

PostPosted: Mon Apr 12, 2010 4:46 pm    Post subject: Reply with quote

Hi,

uhh. Such easy ? Thanks for this. I will give it a try ;o)

- Had worked. Thanks very much...
Back to top
View user's profile Send private message
lilmnm



Joined: 15 Jul 2008
Posts: 3
Location: lost :P

PostPosted: Tue May 11, 2010 1:10 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Coldbird



Joined: 08 Feb 2007
Posts: 155

PostPosted: Mon Jun 07, 2010 9:19 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group