06-04-2014, 05:39 AM
Scootaloo
06-04-2014, 05:41 AM
I'll try downloading them, and using foxit then. Might just be Firefox's built-in viewer screwing up.
Nevermind then. It was just FF not displaying it properly. Anyway why are you doing this? just for fun, or for a project of some sort?
Also, would you mind if I posted this to reddit (r/emulation)? they might be interested in this.
Nevermind then. It was just FF not displaying it properly. Anyway why are you doing this? just for fun, or for a project of some sort?
Also, would you mind if I posted this to reddit (r/emulation)? they might be interested in this.
06-04-2014, 08:37 AM
(06-04-2014, 02:56 AM)avok23 Wrote: [ -> ]Thank you very much sir. I dont know why i never thought of IO.
But i wont even pretend to understand that. "Bios Log in IOP"? Never seen such an option
The "IOP Console" option doesnt show much of anything.
Some files have headers others dont. Japanese also slightly throws me off at times. ( Why would there ever be an integer value larger than the file size in a file? With the data making no sense as an int uint, float or short?)
Never heard of RPC
So I guess I am meant to look into "IOPRP300.IMG" or "SIO2MAN.IRX"? (I thought these were just like general libraries with instructions that can be called from the main SLPM/slus/sles etc)
PS if my above guess is true how would i recognize such a function call?
I guess i still know nothing Off to study some more
You can enable extra logging in Debug menu (might need dev or debug build). Warning it would fill your disk quickly.
Debug>logging (there is also an ee debugger).
The PS2 got 2 CPU with 2 dedicated OS and 2 dedicated RAM. There is really 2 systems. First one is the EE which run the main game and manage graphics. Seconds one is the IOP which run all the slow things (PAD/SOUND/MEM access...). System uses Remote Procedure Call (RPC seach wikipedia) to communicate. RPC is often use in network system. RPC are based on an hardware dma.
The kernel is inside the ROM but some parts can be updated with newer version (file IOPR*.img). You can also loads extra module to the kernel (*.irx file). The interesting module is IOMAN.
I'm sorry I will remove the PDF link they are copyrighted material.
06-04-2014, 08:57 AM
(06-04-2014, 05:41 AM)Scootaloo Wrote: [ -> ]I'll try downloading them, and using foxit then. Might just be Firefox's built-in viewer screwing up.
Nevermind then. It was just FF not displaying it properly. Anyway why are you doing this? just for fun, or for a project of some sort?
Also, would you mind if I posted this to reddit (r/emulation)? they might be interested in this.
I dont mind you posting it on reddit. But i dont know what they would gain from it now that the links are gone (Which i dont mind either).
I am very beginner to the whole emulation thing. I really only wanted away to decipher ps2 game file formats but i ended up taking a whole Berkeley course (newer) I have also wondered how this guys do what they do.
06-04-2014, 08:59 AM
By the way, what do you seach exactly? The .bin is probably a pack of texture.
06-04-2014, 09:31 AM
(06-04-2014, 08:59 AM)gregory Wrote: [ -> ]By the way, what do you seach exactly? The .bin is probably a pack of texture.
The FID.bin file.
Code:
struct FileEntry
{
uint32_t offset;
uint32_t size;
//uint32_t fileNameOffset;
//File name = address?
};
//Once you have the real data
struct KengoFile
{
uint32_t unkn1;
uint32_t nFiles;
uint32_t unkn2;
uint32_t unkn3;
FileEntry* files;
};
The problem is the files are un-named so i actually have to go through each one to decipher what the are. But in the slus file i can actually see the Initialization function and i had hoped it would lead me to what i wanted but there was no loading done in that function it seemed.
What i really want are the story texts and possibly the models
I had began to lose hope when i realized even if i got the translation i might not be able to fit all the text in as Japanese texts may say more with less characters.
Once i started I got interested in deciphering every thing. I had spent too much time on to get nothing in the end. It was some what exciting .
I even bought the 360 version from amazon ($3) just to see if it was similar. This time around most of the files were named the structure was minimally similar but it was in big endian.
06-04-2014, 09:04 PM
I miss somethings. When I mount the iso I get a massive .bin for a games. As far as understand you manage to split into severals files. Can you explain it to me (more than 2 structs)?
06-04-2014, 09:27 PM
(06-04-2014, 09:04 PM)gregory Wrote: [ -> ]I miss somethings. When I mount the iso I get a massive .bin for a games. As far as understand you manage to split into severals files. Can you explain it to me (more than 2 structs)?
What version of the game are you looking at and what is the name of the bin?
The game i used was Kengo 3. Kengo 2 and 1 use a "JOINT" file format
I dont understand.
Code:
//The main FID.Bin file has a header
struct KengoFileHeader
{
uint32_t unkn1;
uint32_t nFiles; //<-----------Number of files in the BIN
uint32_t unkn2;
uint32_t unkn3;
FileEntry* files; //<----just an array of 2 ints that say the file offset and size in FID.Bin
};
struct FileEntry
{
uint32_t offset;
uint32_t size;
};
//So i open the Bin file in code
int fileCount //Read the second integer
FileEntry files[fileCount];
//Jump to more integers
for(int i =0; i < fileCount; ++i) //Yeah i dont have to read it this way
{
//Read file address and file size
files[i].offset;
files[i].size;
}
loop through files
and save the data at their offset.
But since all the files are unnamed I have to go through each file in an hex editor to figure out what is inside each (over 7000 files).
Then writes code that identifies their headers if they have header or magic numbers etc.
I have also gotten a debug version of pcsx2. I am guessing i do not have to use Interpreter mode in any of the settings.
i enabled IOP logs: Bios, CDVD
as well ass SIF (EE <-> IOP)
I guess this is all i need
06-04-2014, 09:32 PM
Thanks for the explanation, initial wasn't clear for me.
I just took a random games. That interestings
I just took a random games. That interestings
06-04-2014, 09:45 PM
From logging the IOP->BIOS this is all i get
I can assume this is not what the devs use when debugging
And the scroll bar doesnt work either
Code:
Possible old value used in COP2 code
3C030038 lui v1, 0x0038
27A200C0 lui v1, 0x0038addiu v0, sp, 0x00C0
26A400D0 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0
246331D0 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0
DA830000 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0lqc2 vf03, 0x0000(s4)
D8480000 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0lqc2 vf03, 0x0000(s4)lqc2 vf08, 0x0000(v0)
4BC818E8 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0lqc2 vf03, 0x0000(s4)lqc2 vf08, 0x0000(v0)vadd.xyz vf03, vf03, vf08
D8840000 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0lqc2 vf03, 0x0000(s4)lqc2 vf08, 0x0000(v0)vadd.xyz vf03, vf03, vf08lqc2 vf04, 0x0000(a0)
D8850010 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0lqc2 vf03, 0x0000(s4)lqc2 vf08, 0x0000(v0)vadd.xyz vf03, vf03, vf08lqc2 vf04, 0x0000(a0)lqc2 vf05, 0x0010(a0)
D8860020 lui v1, 0x0038addiu v0, sp, 0x00C0addiu a0, s5, 0x00D0addiu v1, v1, 0x31D0lqc2 vf03, 0x0000(s4)lqc2 vf08, 0x0000(v0)vadd.xyz vf03, vf03, vf08lqc2 vf04, 0x0000(a0)lqc2 vf05, 0x0010(a0)lqc2 vf06, 0x0020(a0)
I can assume this is not what the devs use when debugging
And the scroll bar doesnt work either