QJ.NET | Videos | Forums | iPhone | MMORPG | Nintendo DS | Wii | PlayStation 3 | PSP | Xbox 360 | PC | Downloads | Contact Us
Forums | Gaming News | Videos | Downloads | Today's Posts | Mark Forums Read | Chat | FAQ | Members List | Contact

QJ.net Game Discussion - PSP, Xbox, Wii, PS3, PSP Homebrew, and PSP Guides

Go Back   QJ.net Game Discussion - PSP, Xbox, Wii, PS3, PSP Homebrew, and PSP Guides > Developers Corner > PSP Development, Hacks, and Homebrew > PSP Development Forum
The above video goes away if you are a member and logged in, so log in now!

N64 to EBOOT

This is a discussion on N64 to EBOOT within the PSP Development Forum forums, part of the PSP Development, Hacks, and Homebrew category; Would it be possible to convert a .n64 rom to psp eboot? (Read n64 rom command, create eboot version of ...

Reply
 
LinkBack Thread Tools
Old 10-24-2009, 03:21 AM   #1
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default N64 to EBOOT

Would it be possible to convert a .n64 rom to psp eboot?

(Read n64 rom command, create eboot version of that command, write eboot version to DATA.PSP etc, later creating icon0 (pic1).png and put it in eboot).
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 04:39 AM   #2
Art

Bush Programmer
 
Art's Avatar
 
Join Date: Nov 2005
Posts: 3,557
Trader Feedback: 0
Default

no, the N64 ROMs might run with an emulator, but I don't know if there's an N64 emulator.
Art is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 05:33 AM   #3
 
Join Date: Jul 2008
Location: Italy
Posts: 137
Trader Feedback: 0
Default

Quote:
Originally Posted by Art View Post
no, the N64 ROMs might run with an emulator, but I don't know if there's an N64 emulator.
Sure, it there is, its name is daedalus and it works well enough too, so honestly there is no reason to convert a n64 rom to PSP EBOOT.
Gefa is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 05:36 AM   #4

Developer
 
Nielkie's Avatar
 
Join Date: Jul 2006
Posts: 549
Trader Feedback: 0
Default

Quote:
Originally Posted by SuperFury1 View Post
Would it be possible to convert a .n64 rom to psp eboot?
Yes. Assuming basic coding ability, it would be relatively trivial to create a program that bundles a rom with daedalus.
__________________


Nielkie is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 06:09 AM   #5
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default

Quote:
Originally Posted by Nielkie View Post
Yes. Assuming basic coding ability, it would be relatively trivial to create a program that bundles a rom with daedalus.
I mean, those roms must have some kind of command structure, just like a psp data.psp, a pc .exe (the executable data), a pc .com file etc has.
If we know that, we can change the data so the psp would understand, wouldn't we?

What daedulus does is translate it for the psp while executing it. If we pre-translated the rom for the psp, it would run much faster, wouldn't it (without the translation process slowing us down)?
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 07:47 AM   #6
Dos
 
Dos's Avatar
 
Join Date: Nov 2005
Real First Name: Jimbo
Location: USA
Just Played: Borderlands
Posts: 132
Trader Feedback: 0
Default

Making an eboot for a PSX game only works because the PSX emulation is built into the firmware. I'm not saying that it can't be done, but you would essentially be emulating the same as daedalus based solely on one game.
Dos is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 08:10 AM   #7
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default

Quote:
Originally Posted by Dos View Post
Making an eboot for a PSX game only works because the PSX emulation is built into the firmware. I'm not saying that it can't be done, but you would essentially be emulating the same as daedalus based solely on one game.
But it will be faster, as it doesn't has to read the command and/or translate the commands for the psp, cuz it's already translated. Thus it can at least speed up things.
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 08:33 AM   #8

Developer
 
slicer4ever's Avatar
 
Join Date: Jul 2005
Location: everywhere
Posts: 3,357
Trader Feedback: 0
Default

Quote:
Originally Posted by SuperFury1 View Post
But it will be faster, as it doesn't has to read the command and/or translate the commands for the psp, cuz it's already translated. Thus it can at least speed up things.
in short, Yes it's perfectly possible, however it's pretty much the same task as taking any executable file and converting it back into it's source, have fun doing that=-)
__________________
1. Failed....again...
2. http://slicer.gibbocool.com/ stay updated on all my projects
slicer4ever is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 08:44 AM   #9
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default

Quote:
Originally Posted by slicer4ever View Post
in short, Yes it's perfectly possible, however it's pretty much the same task as taking any executable file and converting it back into it's source, have fun doing that=-)

Well, in fact you don't have to go back any further than assembler (binary) code, then converting that to psp's assembler (binary) code.
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 08:52 AM   #10
 
My Mood: Amused
Join Date: Aug 2009
Real First Name: Dan
Location: Dublin, Ireland
Just Played: Battlefield 1943
Posts: 17
Trader Feedback: 0
Default

If YOU want to do it, go ahead, but I don't think that many people want to waste there time with it.
UnknownToaster is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 09:01 AM   #11
 
 
Join Date: Apr 2009
Real First Name: Morgan
Location: Around black mesa.
Just Played: SMB
Posts: 83
Trader Feedback: 0
Default

Yes you do. You have to create graphics routines that match 1:1 the graphics routines on the PSP. So you're going to have to
  1. decompile from N64 (r4300i) assembly
  2. do heuristical searches to find graphics routines
  3. replace those with ones that do PSP graphical routines
  4. replace any and all timing sequences that rely on the r4300i's internal clock with that of the MIPS that the PSP uses
  5. Test with SHIPTONNES of roms
  6. Hope you dont break your PSP in the process
  7. Oh, and dont forget to make sure and properly replace the savedata routines too. There's a lot of different ones.

You'll see that Daedlus64's codebase is pretty big. And I mean really big.
indrora is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 09:09 AM   #12
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default

Quote:
Originally Posted by indrora View Post
Yes you do. You have to create graphics routines that match 1:1 the graphics routines on the PSP. So you're going to have to
  1. decompile from N64 (r4300i) assembly
  2. do heuristical searches to find graphics routines
  3. replace those with ones that do PSP graphical routines
  4. replace any and all timing sequences that rely on the r4300i's internal clock with that of the MIPS that the PSP uses
  5. Test with SHIPTONNES of roms
  6. Hope you dont break your PSP in the process
  7. Oh, and dont forget to make sure and properly replace the savedata routines too. There's a lot of different ones.
You'll see that Daedlus64's codebase is pretty big. And I mean really big.
You got a point there. First, i'll need to have a decompiler for n64 rom. anyone knows one? (i'm gonna test it with loz oot. like the game, but hate the lagg)
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 10:53 AM   #13
Dos
 
Dos's Avatar
 
Join Date: Nov 2005
Real First Name: Jimbo
Location: USA
Just Played: Borderlands
Posts: 132
Trader Feedback: 0
Default

From what I can find there isn't a n64 decompiler. The closest thing out there is "N64 Disassembler" or "Hex-rays IDA pro / decompiler"

Quote:
Originally Posted by http://www.hex-rays.com/support.shtml
You can also download a small freeware utility: an extensive file dumper. It supports virtually all popular executable file formats:
EXE, NE, LE, LX, PE, NLM, XCOFF, COFF, OMF, DBG, PRC, PEF, OS9, N64, PSX, EPOC, AR, AMIGA, ELF, ECOFF, HP SOM, GEOS, OLE2, AIF, AOF, AOUT, PE+, OMF166, MachO, XE/XBE, JPG, CIFF, TMOBJ, MRW, TIFF, MPG, CWLIB XCP.DAT, WMF, DSO, PDB
Good Luck
Dos is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 01:05 PM   #14
 
 
Join Date: Apr 2009
Real First Name: Morgan
Location: Around black mesa.
Just Played: SMB
Posts: 83
Trader Feedback: 0
Default

Well since the format is pretty well known, it wouldnt be hard to write an app that simply *reads* it and turns it into assembly.
indrora is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 02:27 PM   #15
Enter Custom Title
 
Davee's Avatar
 
Join Date: Sep 2006
Real First Name: Davee
Location: Perth, Scotland
Posts: 1,041
Trader Feedback: 0
Default

That would be a ****ing crazy dynarec tbh.
Davee is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-24-2009, 04:47 PM   #16
Developer
 
Zack_PSP's Avatar
 
My Mood: Happy
Join Date: May 2009
Real First Name: wouldn't you like to know lol
Location: Ireland
Just Played: Nothing
Posts: 74
Trader Feedback: 0
Default

Quote:
Originally Posted by SuperFury1 View Post
Well, in fact you don't have to go back any further than assembler (binary) code, then converting that to psp's assembler (binary) code.
Note : I am not trying to be offensive with this post.

Ok, so if you know assembler (mips) why not just help optimize daedalus's dynarec, help kreationz move the cpu to the dynarec, optimize more stuff etc?

I guarantee if you know your stuff you will see OOT fullspeed on the PSP a lot faster by doing that than your other idea.
__________________

My Releases :



^-------------------------^

^-------------------------^

Zack_PSP is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-25-2009, 08:29 AM   #17
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default

Quote:
Originally Posted by Zack_PSP View Post
Note : I am not trying to be offensive with this post.

Ok, so if you know assembler (mips) why not just help optimize daedalus's dynarec, help kreationz move the cpu to the dynarec, optimize more stuff etc?

I guarantee if you know your stuff you will see OOT fullspeed on the PSP a lot faster by doing that than your other idea.

Well, in fact..... i know assembler from how a pc .COM program works. What i know is that, for example byte 50h is just a PUSH AX command,
And that when there are information parameters (numbers), they immediately follow the command identifier. So if MOV AH,0 would be XXh, then the bytes will be as following: XXh, 00h and if you have a parameter with a word (16-bit) number parameter, it will follow the command specifier with the lower byte first and higher byte last, so MOV AX,0012h would become: XXh, 12h, 00h etc. If i know what happens with the n64 commands and psp commands, just like i know how it works with the pc .com/.exe executables, you don't have to know anything more than their binary values (50h for example (no parameters) and the examples i just said). Just read in a command, as binary values, make the psp's command data from it and write it to the destination file, next byte/word etc will be the next command.

It's just that easy. Just need a list with the n64 assembler command's and psp's assembler commands (might need headers too).

... And for experience with assembler, i only used a bit some time ago when trying to make myself a custom-made bootable diskette (reading my executable from fat and run it from memory). Also made a simple compiler (for DOS .COM programs) with about 5 commands to use (write text(xxx), wait for keypress(), quit()), but lost the source...
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-25-2009, 08:46 AM   #18
QJ's Nice-guy :)
 
Skyline34's Avatar
 
My Mood: Cheerful
Join Date: Mar 2006
Real First Name: Randy Andy
Location: UK
Just Played: Nazi Zombies
Posts: 4,191
Trader Feedback: 0
Default



I'd say go for it if you think you can, be the first!
__________________
On Facebook?

JOIN MY MAFIA!
Skyline34 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-25-2009, 09:11 AM   #19
 
My Mood: Inspired
Join Date: Feb 2008
Posts: 35
Trader Feedback: 0
Default

Quote:
Originally Posted by SuperFury1 View Post
Well, in fact..... i know assembler from how a pc .COM program works. What i know is that, for example byte 50h is just a PUSH AX command,
And that when there are information parameters (numbers), they immediately follow the command identifier. So if MOV AH,0 would be XXh, then the bytes will be as following: XXh, 00h and if you have a parameter with a word (16-bit) number parameter, it will follow the command specifier with the lower byte first and higher byte last, so MOV AX,0012h would become: XXh, 12h, 00h etc. If i know what happens with the n64 commands and psp commands, just like i know how it works with the pc .com/.exe executables, you don't have to know anything more than their binary values (50h for example (no parameters) and the examples i just said). Just read in a command, as binary values, make the psp's command data from it and write it to the destination file, next byte/word etc will be the next command.

It's just that easy. Just need a list with the n64 assembler command's and psp's assembler commands (might need headers too).

... And for experience with assembler, i only used a bit some time ago when trying to make myself a custom-made bootable diskette (reading my executable from fat and run it from memory). Also made a simple compiler (for DOS .COM programs) with about 5 commands to use (write text(xxx), wait for keypress(), quit()), but lost the source...

Just looked into the daedulus source. The commands for the n64 weren't that hard to find, they're in "opcode.h"
SuperFury1 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-25-2009, 03:35 PM   #20
Art

Bush Programmer
 
Art's Avatar
 
Join Date: Nov 2005
Posts: 3,557
Trader Feedback: 0
Default

Quote:
It's just that easy.
Maybe if the hardware was exactly the same.
I somehow doubt anything will come of this.
Art is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-25-2009, 04:09 PM   #21
Enter Custom Title
 
Davee's Avatar
 
Join Date: Sep 2006
Real First Name: Davee
Location: Perth, Scotland
Posts: 1,041
Trader Feedback: 0
Default

Quote:
Originally Posted by SuperFury1 View Post
Well, in fact..... i know assembler from how a pc .COM program works. What i know is that, for example byte 50h is just a PUSH AX command,
And that when there are information parameters (numbers), they immediately follow the command identifier. So if MOV AH,0 would be XXh, then the bytes will be as following: XXh, 00h and if you have a parameter with a word (16-bit) number parameter, it will follow the command specifier with the lower byte first and higher byte last, so MOV AX,0012h would become: XXh, 12h, 00h etc. If i know what happens with the n64 commands and psp commands, just like i know how it works with the pc .com/.exe executables, you don't have to know anything more than their binary values (50h for example (no parameters) and the examples i just said). Just read in a command, as binary values, make the psp's command data from it and write it to the destination file, next byte/word etc will be the next command.

It's just that easy. Just need a list with the n64 assembler command's and psp's assembler commands (might need headers too).

... And for experience with assembler, i only used a bit some time ago when trying to make myself a custom-made bootable diskette (reading my executable from fat and run it from memory). Also made a simple compiler (for DOS .COM programs) with about 5 commands to use (write text(xxx), wait for keypress(), quit()), but lost the source...

It's not that easy. Remember, PC uses a dirty CISC command-set and is nothing like RISC. Both the PSP and the n64 are MIPS based (n64 being 64 bit(?)) RISC processors so opcode parsing is totally different from CISC (where each opcode can be different lengths, where RISC is pipeline friendly same length opcodes).

You also need to know that you can't directly dynamically recompile the n64 binaries directly. You'll probably want to convert to PRX, which means you're gonna have to do a lot of maths and heuristical routines on the binary to get buttons, graphics, sound, intialization etc etc. Then you have to translate memory addresses and make it dynamically relocatable.

Basically, you'll need to learn the full PSP graphics routines and hardware as with the N64 and on top of that learn how the binaries are stored, how input is retrieved, how to modify binary asm without killing jumping routines or overflowing with jumps to external addresses and so forth.
Davee is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-25-2009, 07:05 PM   #22
PSP-UMD-PC-LIVE GREEN!
 
larryr's Avatar
 
My Mood: Cynical
Join Date: Jun 2009
Real First Name: Larry
Location: Canada, duh
Just Played: Too many to say
Posts: 349
Trader Feedback: 0
Default

in other words, hard or next to impossible.
larryr is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-26-2009, 03:09 AM   #23

Developer
 
Nielkie's Avatar
 
Join Date: Jul 2006
Posts: 549
Trader Feedback: 0
Default

Quote:
Originally Posted by larryr View Post
in other words, hard or next to impossible.
Far from impossible, greater feats have been achieved. On first glance however it seems SuperFury1 has far from the required skill, though you never know.

...

Also, it should be noted that static recompilation is not hugely faster, and in some cases can even be slower, than a good dynrec core.
__________________



Last edited by Nielkie; 10-26-2009 at 03:48 AM..
Nielkie is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-26-2009, 09:09 AM   #24

 
Mr_Shizzy's Avatar
 
Join Date: Aug 2007
Posts: 567
Trader Feedback: 0
Default

Wouldn't it be easier to just modify the daedulus source code, to auto load a ROM. Then just change the icon0.png ect.. to match the game for xmb game menu?
__________________
PSP MODEL: PSP SLIM 2000 TA-085v2
Custom Firmware: 5.50 GEN-D2
Mr_Shizzy is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-26-2009, 01:14 PM   #25
Dos
 
Dos's Avatar
 
Join Date: Nov 2005
Real First Name: Jimbo
Location: USA
Just Played: Borderlands
Posts: 132
Trader Feedback: 0
Default

Quote:
Originally Posted by Mr_Shizzy View Post
Wouldn't it be easier to just modify the daedulus source code, to auto load a ROM. Then just change the icon0.png ect.. to match the game for xmb game menu?
Quote:
Originally Posted by SuperFury1 View Post
What daedulus does is translate it for the psp while executing it. If we pre-translated the rom for the psp, it would run much faster, wouldn't it (without the translation process slowing us down)?
SuperFury was trying to speed up the game by not using daedulus and rewriting the .n64 into an psp game file.

But you do bring up a good point. On DaedulusX64 A435 Mario64 is currently running at full speed with sound(frame skip 2). And Mario Kart64 is coming along. OOT is on there list, but they are focusing of 50+ games at the same time. Have you tried getting with the daedulus team to work solely on OOT.
Dos is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 10-26-2009, 08:19 PM   #26
 
 
Join Date: Apr 2009
Real First Name: Morgan
Location: Around black mesa.
Just Played: SMB
Posts: 83
Trader Feedback: 0
Default

The point is unless Superfury1 has some magical knowledge about platform translation that he hasnt told anyone about, its going to be a HEUG endevor. porting system to system is not like baking cookies. You dont just telnet your way into mordor and deliver cookies.
indrora is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Tags
eboot , n64

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



All times are GMT -8. The time now is 09:30 AM.



Use of this Web site constitutes acceptance of the TERMS & CONDITIONS and PRIVACY POLICY
Copyright © 2009, QJ.NET. All Rights Reserved.
Contact Us