sandungas
Developer
I been wondering about this command 0x0 too@kozarovv The 'command ID : 00' without GameID that you always add at the end was a mistake ? it's useless ?
The way i see it, is the "config commands" (either hardcoded inside the emulator selfs, or in a file for netemu) are inherited from the other emu types, in order of apparence:
ps2_emu.self --> ps2_gxemu.self --> ps2_softemu.self --> ps2_netemu.self
Now we are comparing the commands of ps2_gxemu.self with ps2_netemu.self (note we are bypassing softemu) and are the same commands, and follows the same order, the only differences are:
-some of the gxemu commands are disabled in netemu
-some commands was added for netemu by using bigger IDs, or "in between" the previous ID list
What i think is the disabled commands in netemu are directly related with hardware components (only works in PS3 models with full or partial backward compatibility with PS2), and because netemu is designed to be 100% sotware emulation they had no other option than disable them (but very probably they added other new commands to bypass this problem as most as posible)
At the time they developed netemu they had no need to respect the IDs, but they tryed as most as posible, there are only 4 commands added in between the Ids of gxemu, and from them we only know 2
-0x0 added because in previous versions the game config is hardcoded inside the .self and with it comes the GameID as part of the data structure... but in netemu the config if a external file so they needed to add the GameID to the file, and they decided to add command 0x0 in the first position because well... the first thing needed to know when loading the config file is if it belongs to that GameID... and the fact that is posible to load a config file without command 0x0 probably is just a meassure to not make this too much restrictive because sometimes the config files for a game can be used in a different game, i guess they wanted to take advantage at this at the time of preparing the "PS2 classics" releases for PSN where is needed to mess around with the config files
-0xA added because it seems the previous emulator types was not able to patch EE memory with a single uint32_t, the position in the command list is eactly next to the command 0x9 that has the same purpose but does the patching with 2 * uint32_t
-unknown_1 needs to be located next to another command with the same purpose, in between 0x13 and 0x18, one of these is going to have the same purpose than the unknown_1
-unknown_2 needs to be located next to another command with the same purpose, in between 0x1C and 0x22, one of these is going to have the same purpose than the unknown_2
The point is... netemu command 0xA is like an improvement of 0x9 this is why is located next to it
Following this deductive line the other 2 unknowns are going to be an improvement of a command located next to them, this is not for sure but there is a high probability to be this way
And the command 0x0 in netemu is intended to specify the GameID (maybe works as a config terminator too, i have no idea, but i have my doubts until someone tells me that is used that way in one of the official config files from a "PS2 classic" released in PSN)
Returning back to the brainstorming of the disabled commands in netemu... by looking at the command list in netemu is posible to see some disabled commands that are inherited from the previous emu types
There is some info in wiki that shows some kind of game patch data hardcoded inside ps2_emu.self (only for full backward compatibility PS3 models), this can be also considered a command
And i bet all this is supported in ps2_softemu.self (and it has a huge list of game configs hardcoded inside, like netemu, but probably is a bit pointless because is going to be the same list than netemu), actually netemu was a replacement of softemu, the bigger difference is netemu was rewritten from scratch but other than that.... netemu inherited all features of softemu (included the game config commands), right now im thinking there is a group of commands disabled in netemu that are inherited from softemu (commands since 0x30 up to 0x34, and since 0x36 up to 0x3C... or so... i cant tell for sure because most of what im saying is based in info posted by mysis in wiki or from talks with him) if im right with this speculation that commands are specific for softemu, also it means softemu is going to have a huge list of game config data hardcoded in it somewhere
I know, too long answer, but i started writing a straight oppinion about your question and when i realized i had too much text written already XD
While writing this i was looking at this table we are using where can be seen all the commands together to compare his positions and for an overview of what does each, in it can be seen better what i said
http://www.psdevwiki.com/ps3/User_talk:Sandungas#Table_Tests
Last edited: