![]() |
| Forums | Gaming News | Videos | Downloads | Today's Posts | Mark Forums Read | Chat | FAQ | Members List | Contact |
| ||||||
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 ...
![]() |
|
|
LinkBack | Thread Tools |
|
|
#1 |
|
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). |
|
|
|
|
|
|
#3 |
![]() |
|
|
|
|
|
|
#4 |
![]() ![]() Developer
|
Yes. Assuming basic coding ability, it would be relatively trivial to create a program that bundles a rom with daedalus.
|
|
|
|
|
|
#5 | |
|
Quote:
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)? |
||
|
|
|
|
|
#6 |
![]() Join Date: Nov 2005
Real First Name: Jimbo
Location: USA
Just Played: Borderlands
Posts: 132
Trader Feedback: 0
|
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.
|
|
|
|
|
|
#7 |
|
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.
|
|
|
|
|
|
|
#8 |
![]() ![]() Developer
|
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 |
|
|
|
|
|
#9 | |
|
Quote:
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. |
||
|
|
|
|
|
#11 |
![]() ![]() Join Date: Apr 2009
Real First Name: Morgan
Location: Around black mesa.
Just Played: SMB
Posts: 83
Trader Feedback: 0
|
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
You'll see that Daedlus64's codebase is pretty big. And I mean really big. |
|
|
|
|
|
#12 | |
|
Quote:
|
||
|
|
|
|
|
#13 | |
![]() Join Date: Nov 2005
Real First Name: Jimbo
Location: USA
Just Played: Borderlands
Posts: 132
Trader Feedback: 0
|
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:
|
|
|
|
|
|
|
#15 |
![]() Enter Custom Title
Join Date: Sep 2006
Real First Name: Davee
Location: Perth, Scotland
Posts: 1,041
Trader Feedback: 0
|
That would be a ****ing crazy dynarec tbh.
__________________
VSH Scramble Patcher || VSH Module Descrambler || Unlimted Character Version Changer (5.00) |
|
|
|
|
|
#16 | |
![]() Developer
My Mood:
Join Date: May 2009
Real First Name: wouldn't you like to know lol
Location: Ireland
Just Played: Nothing
Posts: 74
Trader Feedback: 0
|
Quote:
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. |
|
|
|
|
|
|
#17 | |
|
Quote:
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... |
||
|
|
|
|
|
#19 | |
|
Quote:
Just looked into the daedulus source. The commands for the n64 weren't that hard to find, they're in "opcode.h" |
||
|
|
|
|
|
#21 | |
![]() Enter Custom Title
Join Date: Sep 2006
Real First Name: Davee
Location: Perth, Scotland
Posts: 1,041
Trader Feedback: 0
|
Quote:
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.
__________________
VSH Scramble Patcher || VSH Module Descrambler || Unlimted Character Version Changer (5.00) |
|
|
|
|
|
|
#23 |
![]() ![]() Developer
|
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.. |
|
|
|
|
|
#24 |
![]() ![]() |
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
|
|
|
|
|
|
#25 | ||
![]() Join Date: Nov 2005
Real First Name: Jimbo
Location: USA
Just Played: Borderlands
Posts: 132
Trader Feedback: 0
|
Quote:
Quote:
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. |
||
|
|
|
|
|
#26 |
![]() ![]() Join Date: Apr 2009
Real First Name: Morgan
Location: Around black mesa.
Just Played: SMB
Posts: 83
Trader Feedback: 0
|
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.
|
|
|
|
![]() |
| Tags |
| eboot , n64 |
| Thread Tools | |
|
|