Editing Talk:PS1 Emulation
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== | == PS1 Emulator Types and Revisions == | ||
<div> | |||
<div style="float:top; text-align:center;">'''PS1 Emulator Types and Revisions'''</div> | |||
<div style="float:left;"> | |||
{| class="wikitable" style="line-height:100%; font-size:70%; margin-right:5px" | |||
|+ ps1_emu.elf (decrypted) | |||
! Firmware !! Bytes !! MD5 !! Timestamp !! <abbr title="Revision">Rev</abbr> !! style="padding:1px" | <abbr title="Maximun number of supported commands">Comm</abbr> | |||
|- | |||
! [[1.00_AV|1.00 AV]] | |||
| 10 296 408 || style="font-family:monospace" | 981A7428C2A59219FA05861EDEEDBD4A || 06/10/04/12:16 || ? || ? | |||
|- | |||
! [[1.02_CEX|1.02]] | |||
| 10.296.408 || style="font-family:monospace" | C5FE03742A951194C336EE33783F5CD6 || 06/10/21/00:01 || ? || ? | |||
|- | |||
! [[1.10_CEX|1.10]] | |||
| 10.296.408 || style="font-family:monospace" | C9C9D7D2E36F3E3579A5DF713E9ABE1E || 06/11/09/06:09 || ? || ? | |||
|- | |||
! [[1.11_CEX|1.11]] | |||
| 10.296.408 || style="font-family:monospace" | 26271CCA29B77483DC3D7FDDE7B9CC3C || 06/11/21/17:55 || ? || ? | |||
|- | |||
! [[1.30_CEX|1.30]] | |||
| 10.296.496 || style="font-family:monospace" | E7932EC24E72B3005EE152B141A63690 || 06/12/05/05:34 || ? || ? | |||
|- | |||
! [[1.31_CEX|1.31]] | |||
| 10.296.496 || style="font-family:monospace" | 2244DE70C85093D7E37BC3D3F4278BE1 || 06/12/12/18:48 || ? || ? | |||
|- | |||
! [[1.32_CEX|1.32]] | |||
| 10.296.496 || style="font-family:monospace" | 601BCADBBBC0A2D0433C932A2D67C4EF || 06/12/18/05:55 || ? || ? | |||
|- | |||
! [[1.50_CEX|1.50]] | |||
| 10.303.536 || style="font-family:monospace" | F8050B006CDFCC64DF742D7BBDC03130 || 07/01/18/22:53 || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[1.90_CEX|1.90]] | |||
| 6.974.864 || style="font-family:monospace" | 478CFED0F7EE13C94F01C2A246C83D45 || 07/07/21/06:45 || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
| colspan="6" style="background:#ff8080; text-align:center; line-height:75%" | stripped/extracted rom/bios | |||
|- | |||
! [[2.10_CEX|2.10]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[3.40_CEX|3.40]] | |||
| 2.824.576 || style="font-family:monospace" | A6ABFB04739575E2264A4D3FEB2A9CBF || 10/06/23/15:45 || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[3.66_CEX|3.66]] | |||
| 2.824.832 || style="font-family:monospace" | 95399A202003E216794511BD2D2E9DF6 || 11/06/16/03:52 || ? || ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[3.70_CEX|3.70]] | |||
| rowspan="3" | 2.824.920 || style="font-family:monospace" | 045D81147B9BDFB8C8A416FD5F5A0C56 || 11/08/05/03:42 || rowspan="3" | same || rowspan="3" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#bbbbff;" | ''Any'' | |||
|-{{cellcolors|#bbbbff}} | |||
! [[3.72_CEX|3.72]] | |||
| style="font-family:monospace" | C745A30231103B83F04539021E4878FC || 11/09/14/01:17 | |||
|-{{cellcolors|#ddddff}} | |||
! [[3.73_CEX|3.73]] | |||
| rowspan="2" | 2.824.920 || style="font-family:monospace" | EB3AFF30B3206CFA6A8962AB393F773E || 11/10/04/12:55 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[3.74_CEX|3.74]] | |||
| style="font-family:monospace" | E2A77C3DC9FD5AD4264341196462D096 || 11/10/25/00:38 | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.00_CEX|4.00]] | |||
| rowspan="3" | 2.829.784 || style="font-family:monospace" | 94A8E6A8063C08FAD8CA9B340CCCAE67 || 11/11/22/03:17 || rowspan="3" | same || rowspan="3" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#bbbbff;" | ''Any'' | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.11_CEX|4.11]] | |||
| style="font-family:monospace" | 02B7F6D5F517959161B2154135D4B3BC || 12/02/11/07:13 | |||
|- | |||
! [[4.15_CEX|4.15]] | |||
| ? || ? || ? || ? || ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.20_CEX|4.20]] | |||
| rowspan="2" | 2.829.912 || style="font-family:monospace" | 3778948C92F5FA12CB0AABE65BEE5465 || 12/06/15/02:09 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.21_CEX|4.21]] | |||
| style="font-family:monospace" | B7B662397E3FFDD7C11F9617C1B41856 || 12/06/30/01:13 | |||
|- | |||
! [[4.23_SEX|4.23 S]] | |||
| 2.829.912 || style="font-family:monospace" | 6E74CC51E0C6462DF1F9278ED9DB9593 || 12/07/31/00:22 || ? || ? | |||
|- | |||
! [[4.25_CEX|4.25]] | |||
| 2.829.912 || style="font-family:monospace" | 03EA65C3EA3F8DB04F236C49C6B6C0E1 || 12/09/07/07:03 || <abbr title="same code than 4.20 CEX and 4.21 CEX.... but different than the 4.23 SEX in between, grrrr">same</abbr> || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[4.78_CEX|4.78]] | |||
| 2.765.488 || style="font-family:monospace" | 354F1DEEDCA3C4CFA1B49B6B28B1648D || 15/12/17/01:18 || ? || ? | |||
|- | |||
! [[4.80_CEX|4.80]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[4.81_CEX|4.81]] | |||
| 2.765.616 || style="font-family:monospace" | 2123E3D6A8E81647CB41F51AFEE6CCD6 || 16/10/24/19:23 || ? || ? | |||
|- | |||
! colspan="6" style="background:#80ff80; line-height:75%" | Abandoned (last revision) | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.82_CEX|4.82]] | |||
| rowspan="3" | 2.765.616 || style="font-family:monospace" | 64BFA4DBD595A20E317B2189B54BF673 || 17/08/24/15:42 || rowspan="3" | Last || rowspan="3" | 0x15 | |||
|- | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#ddddff;" | ''Any'' | |||
|- | |||
! [[4.88_CEX|4.88]] | |||
| style="background-color:#ddddff; font-family:monospace" | 0C553CE93A2A6322E16636DD76D75E32 || style="background-color:#ddddff;" | 21/04/12/11:34 | |||
|} | |||
<span style="font-size:small"> | |||
{{widedot}}'''Decrypted (elf)''': changes <abbr title="When comparing two decrypted files of the same revision from different firmwares the only differences are the build label (1 area with size 0x20) and the target firmware (1 area with size 0x2)">every firmware version</abbr><br> | |||
{{widedot}}'''<abbr title="0x20 bytes">Build label</abbr>''': yes, with timestamp, search for '''-sgpu-sspu-sli4'''<br> | |||
{{widedot}}'''<abbr title="2 bytes">Target Firmware</abbr>''': yes repeated '''one''' time<br> | |||
{{widedot}}'''Revision''': unknown | |||
</span> | |||
</div> | |||
<div style="float:left;"> | |||
{| class="wikitable" style="line-height:100%; font-size:70%; margin-left:5px; margin-right:5px" | |||
|+ ps1_netemu.elf (decrypted) | |||
! Firmware !! Bytes !! MD5 !! Timestamp !! <abbr title="Revision">Rev</abbr> !! style="padding:1px" | <abbr title="Maximun number of supported commands">Comm</abbr> | |||
|- | |||
! [[1.00_CEX|1.00]] ~ [[1.60_CEX|1.60]] | |||
| colspan="5" {{no}} | |||
|- | |||
! [[1.70_CEX|1.70]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[1.90_CEX|1.90]] | |||
| 6.853.368 || style="font-family:monospace" | 8A5A3676B461C97A9A467D5651D6EAAD || 07/07/21/06:47 || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
| colspan="6" style="background:#ff8080; text-align:center; line-height:75%" | stripped/extracted rom/bios | |||
|- | |||
! [[2.10_CEX|2.10]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[3.40_CEX|3.40]] | |||
| 2.971.288 || style="font-family:monospace" | FD32C7B7CBA2639FC8DB9EB615A16461 || 10/06/23/15:46 || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[3.66_CEX|3.66]] | |||
| 2.971.976 || style="font-family:monospace" | 9586FC8B121E59526C31405DCFFB79CA || 11/06/16/03:54 || ? || ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[3.70_CEX|3.70]] | |||
| rowspan="3" | 2.972.168 || style="font-family:monospace" | AA1DB63461EE0BE021ED45F85A6EECE0 || 11/08/05/03:43 || rowspan="3" | same || rowspan="3" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#bbbbff;" | ''Any'' | |||
|-{{cellcolors|#bbbbff}} | |||
! [[3.72_CEX|3.72]] | |||
| style="font-family:monospace" | 32F45129EC2844D419582912E54CEB22 || 11/09/14/01:18 | |||
|-{{cellcolors|#ddddff}} | |||
! [[3.73_CEX|3.73]] | |||
| rowspan="2" | 2.972.168 || style="font-family:monospace" | 17063FFAB205B72ABF7F59582B8A7988 || 11/10/04/12:56 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[3.74_CEX|3.74]] | |||
| style="font-family:monospace" | 89C03D80ACE7C4FA914DD699621EB4F8 || 11/10/25/00:40 | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.00_CEX|4.00]] | |||
| rowspan="2" | 2.977.128 || style="font-family:monospace" | DBB8FB62BE3F2064D31332FCB7575DF1 || 11/11/22/03:19 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.01_CEX|4.01]] | |||
| style="font-family:monospace" | 9E60379FA979B0440C27C6AEE38754AF || 11/12/23/01:10 | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.10_CEX|4.10]] | |||
| rowspan="2" | 2.977.208 || style="font-family:monospace" | B3CD41AB8235906AB41D3DA18D04F00E || 12/02/05/23:19 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.11_CEX|4.11]] | |||
| style="font-family:monospace" | 4DDF2C3289AD9BEDF0719DBE1BDA971C || 12/02/11/07:15 | |||
|- | |||
! [[4.15_CEX|4.15]] | |||
| ? || ? || ? || ? || ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.20_CEX|4.20]] | |||
| rowspan="2" | 2.977.432 || style="font-family:monospace" | 363A2D5EE2246E9CEFCBF1078593C771 || 12/06/15/02:10 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.21_CEX|4.21]] | |||
| style="font-family:monospace" | 5E08C86EC07E4F227D3591DD9530CC95 || 12/06/30/01:15 | |||
|- | |||
! [[4.23_SEX|4.23 S]] | |||
| 2.977.416 || style="font-family:monospace" | 149E5E6AD727B1B37E29D4E8D15D5BB0 || 12/07/31/00:23 || ? || ? | |||
|- | |||
! [[4.25_CEX|4.25]] | |||
| 2.977.432 || style="font-family:monospace" | 295B61D9EEE704077FEC870C8EAC7D35 || 12/09/07/07:04 || <abbr title="same code than 4.20 CEX and 4.21 CEX.... but different than the 4.23 SEX in between, grrrr">same</abbr> || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[4.78_CEX|4.78]] | |||
| 2.913.480 || style="font-family:monospace" | 398A7CA9F0E8449E15FCB33B87C96194 || 15/12/17/01:19 || ? || ? | |||
|- | |||
! [[4.80_CEX|4.80]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[4.81_CEX|4.81]] | |||
| 2.913.656 || style="font-family:monospace" | 8765A00EE467B8635A13ECCBB1F85B89 || 16/10/24/19:24 || ? || ? | |||
|- | |||
! [[4.82_CEX|4.82]] | |||
| 2.913.752 || style="font-family:monospace" | FCEB6595F9F8E5C77BA36C73C38397D9 || 17/08/24/15:43 || ? || ? | |||
|- | |||
! colspan="6" style="background:#80ff80; line-height:75%" | Abandoned (last revision) | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.83_CEX|4.83]] | |||
| rowspan="3" | 2.913.992 || style="font-family:monospace" | CA9509623B9885E18D12E14FA1488EEF || 18/09/02/18:03 || rowspan="3" | Last || rowspan="3" | 0x3C | |||
|- | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#ddddff;" | ''Any'' | |||
|- | |||
! [[4.88_CEX|4.88]] | |||
| style="background-color:#ddddff; font-family:monospace" | D3283D3F3B5CDF68113560829530E7B3 || style="background-color:#ddddff;" | 21/04/12/11:34 | |||
|} | |||
<span style="font-size:small"> | |||
{{widedot}}'''Decrypted (elf)''': changes <abbr title="When comparing two decrypted files of the same revision from different firmwares the only differences are the build label (1 area with size 0x20) and the target firmware (2 areas with size 0x2)">every firmware version</abbr><br> | |||
{{widedot}}'''<abbr title="0x20 bytes">Build label</abbr>''': yes, with timestamp, search for '''-sgpu-sli4'''<br> | |||
{{widedot}}'''<abbr title="2 bytes">Target Firmware</abbr>''': yes repeated '''two''' times<br> | |||
{{widedot}}'''Revision''': unknown | |||
</span> | |||
</div><div style="float:left;"> | |||
{| class="wikitable" style="line-height:100%; font-size:70%; margin-left:5px; margin-right:5px" | |||
|+ ps1_newemu.elf (decrypted) | |||
! Firmware !! Bytes !! MD5 !! Timestamp !! <abbr title="Revision">Rev</abbr> !! style="padding:1px" | <abbr title="Maximun number of supported commands">Comm</abbr> | |||
|- | |||
! [[1.00_CEX|1.00]] ~ [[2.01_CEX|2.01]] | |||
| colspan="5" {{no}} | |||
|- | |||
! [[2.10_CEX|2.10]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[3.40_CEX|3.40]] | |||
| 2.708.856 || style="font-family:monospace" | C866D54E85BAA06D111C8300F9EA85F1 || 10/06/23/15:51 || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[3.66_CEX|3.66]] | |||
| 2.708.864 || style="font-family:monospace" | 9AB86CFAEB12675F3DB08FCAA3541534 || 11/06/16/03:54 || ? || ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[3.70_CEX|3.70]] | |||
| rowspan="3" | 2.708.880 || style="font-family:monospace" | 7AB7C32901778E3F0C9B8DB45296821B || 11/08/05/03:44 || rowspan="3" | same || rowspan="3" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#bbbbff;" | ''Any'' | |||
|-{{cellcolors|#bbbbff}} | |||
! [[3.72_CEX|3.72]] | |||
| style="font-family:monospace" | 2863E9B70B4FB6C5A0938FF508C46057 || 11/09/14/01:18 | |||
|-{{cellcolors|#ddddff}} | |||
! [[3.73_CEX|3.73]] | |||
| rowspan="2" | 2.708.880 || style="font-family:monospace" | 871E256771632569D664FF2A1ECE82C3 || 11/10/04/12:57 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[3.74_CEX|3.74]] | |||
| style="font-family:monospace" | 8A8AC80CBA58561CC754C6CF66B059AB || 11/10/25/00:40 | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.00_CEX|4.00]] | |||
| rowspan="2" | 2.713.832 || style="font-family:monospace" | F9E840430B2BC982CB1A71B7BDD7FC35 || 11/11/22/03:19 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.01_CEX|4.01]] | |||
| style="font-family:monospace" | 953090CBCB96626899731B711B3D5B6A || 11/12/23/01:11 | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.10_CEX|4.10]] | |||
| rowspan="2" | 2.713.720 || style="font-family:monospace" | 47E7FA52DB7BDEDF2187EB02D868834D || 12/02/05/23:20 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.11_CEX|4.11]] | |||
| style="font-family:monospace" | 8A90DB2A206BE79423A99D4CF2458241 || 12/02/11/07:16 | |||
|- | |||
! [[4.15_CEX|4.15]] | |||
| ? || ? || ? || ? || ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.20_CEX|4.20]] | |||
| rowspan="2" | 2.713.904 || style="font-family:monospace" | 8AC80356D1EFDDCFF7A7AD82136137D2 || 12/06/15/02:11 || rowspan="2" | same || rowspan="2" | ? | |||
|-{{cellcolors|#bbbbff}} | |||
! [[4.21_CEX|4.21]] | |||
| style="font-family:monospace" | E482927E47B00C1478313E343DD652C4 || 12/06/30/01:15 | |||
|- | |||
! [[4.23_SEX|4.23 S]] | |||
| 2.713.888 || style="font-family:monospace" | A2CF9C4C00B40779FB5C529849E0D6A4 || 12/07/31/00:24 || ? || ? | |||
|- | |||
! [[4.25_CEX|4.25]] | |||
| 2.713.904 || style="font-family:monospace" | 24107753F0B02075DAB20492BA67167D || 12/09/07/07:05 || <abbr title="same code than 4.20 CEX and 4.21 CEX.... but different than the 4.23 SEX in between, grrrr">same</abbr> || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[4.78_CEX|4.78]] | |||
| 2.649.144 || style="font-family:monospace" | BF78A0DC74084B43777A7F8CE6C7B66A || 15/12/17/01:20 || ? || ? | |||
|- | |||
! [[4.80_CEX|4.80]] | |||
| ? || ? || ? || ? || ? | |||
|- | |||
! [[4.81_CEX|4.81]] | |||
| 2.649.272 || style="font-family:monospace" | 0C76DE974439B12546EA494639C8EE9A || 16/10/24/19:25 || ? || ? | |||
|- | |||
! colspan="6" style="background:#80ff80; line-height:75%" | Abandoned (last revision) | |||
|-{{cellcolors|#ddddff}} | |||
! [[4.82_CEX|4.82]] | |||
| rowspan="3" | 2.649.288 || style="font-family:monospace" | C5957F268EE9E1429DE3AF0BC15F1395 || 17/08/24/15:44 || rowspan="3" | Last || rowspan="3" | 0x18 | |||
|- | |||
! ~ | |||
| colspan="2" style="text-align:center; background-color:#ddddff;" | ''Any'' | |||
|- | |||
! [[4.88_CEX|4.88]] | |||
| style="background-color:#ddddff; font-family:monospace" | 4002EC6CB88F5D2D5E7DF0B0F80A6A0A || style="background-color:#ddddff;" | 21/04/12/11:35 | |||
|} | |||
<span style="font-size:small"> | |||
{{widedot}}'''Decrypted (elf)''': changes <abbr title="When comparing two decrypted files of the same revision from different firmwares the only differences are the build label (1 area with size 0x20) and the target firmware (2 areas with size 0x2)">every firmware version</abbr><br> | |||
{{widedot}}'''<abbr title="0x20 bytes">Build label</abbr>''': yes, with timestamp, search for '''-sgpu-sspu-sli4'''<br> | |||
{{widedot}}'''<abbr title="2 bytes">Target Firmware</abbr>''': yes repeated '''two''' times<br> | |||
{{widedot}}'''Revision''': unknown | |||
</span> | |||
</div><div style="float:left;"> | |||
{| class="wikitable" style="line-height:100%; font-size:70%; margin-left:5px" | |||
|+ ps1_rom.bin | |||
! Firmware !! Bytes !! MD5 !! <abbr title="Revision">Rev</abbr> | |||
|- | |||
! [[1.00_CEX|1.00]] ~ [[2.01_CEX|2.01]] | |||
| colspan="4" {{no}} | |||
|- | |||
! [[2.10_CEX|2.10]] | |||
| ? || ? || ? | |||
|- | |||
! ? | |||
| ? || ? || ? | |||
|- | |||
! [[3.40_CEX|3.40]] ~ [[3.74_CEX|3.74]] | |||
| 4.089.584 || style="font-family:monospace" | FBB5F59EC332451DEBCCF1E377017237 || ? | |||
|- | |||
! [[4.00_CEX|4.00]] ~ [[4.88_CEX|4.88]] | |||
| 524.288 || style="font-family:monospace" | 81BBE60BA7A3D1CEA1D48C14CBCC647B || ? | |||
|} | |||
<span style="font-size:small"> | |||
{{widedot}}'''Format''': Not compiled or encrypted for every firmware<br> | |||
{{widedot}}'''Build label''': unknown<br> | |||
{{widedot}}'''Revision''': unknown | |||
</span> | |||
</div> | |||
</div> | |||
<br style="clear: both;" /> | |||
== | == Command IDs mapping == | ||
All the PS1 emulators have some game settings hardcoded inside them organized in a table using a hierarchy, pretty much the same structure used by ps2_gxemu.self and ps2_softemu.self to store the CONFIGS<br> | |||
There is a point of the hierarchy where is indicated the number of commands and the offset where are located. Every command is composed by ID[4] and data[4] (where the data coould be another offset to load more data from a deeper level of the hierarchy)<br> | |||
That IDs differs in between the PS1 emulator versions because are not a direct ID, it seems every ID is mapped to a different ID (probably static and common for all emu versions) in a separated table | |||
< | |||
====How hardcoded config is read based on ps1emu.==== | |||
Like mentioned above config is created from 2x u32 values. Lets call first value command, and second value param.<br> | |||
Command is used to calculate address for param, and only param is stored on obtained address.<br> | |||
Emulator then check for params, and if found (usually when not zero) apply settings based on them.<br> | |||
<pre> | <pre> | ||
0x10BC8 lwz r0, 0(r9) # load HASH | |||
0x10BCC cmpw cr7, r0, r27 # compare title HASH with one from DB | |||
0x10BD0 bne cr7, loc_10BB8 # loop till HASH found | |||
0x10BD4 slwi r0, r10, 4 # config number << 4 to get offset from first entry in table | |||
0x10BD8 addi r24, r1, 0xAB0+var_A40 | |||
0x10BDC extsw r0, r0 | |||
0x10BE0 clrldi r3, r24, 32 | |||
0x10BE4 add r29, r0, r8 # r29 now points to game entry in config table | |||
0x10BE8 lwz r4, 4(r29) # load pointer to game ID | |||
0x10BEC bl sub_137FF8 | |||
0x10BF0 nop | |||
0x10BF4 lwz r28, 8(r29) | |||
0x10BF8 cmpwi cr7, r28, 0 | |||
0x10BFC ble cr7, loc_10C58 # check config count is not 0 or less | |||
0x10C00 lwz r26, 0xC(r29) # r26 is now pointer to configs for game | |||
0x10C04 li r30, 0 | |||
0x10C08 li r29, 0 | |||
0x10C0C lwz r25, off_17B5D8 # "core.c: CoreCheckTitle: param[%d] = 0x%"... | |||
0x10C10 | |||
0x10C10 read_conf_loop: # CODE XREF: CoreCheckTitle+2DC↓j | |||
0x10C10 add r11, r30, r26 # r11 is now pointer to currently read config for game | |||
0x10C14 addi r29, r29, 1 # count... | |||
0x10C18 clrldi r11, r11, 32 | |||
0x10C1C mr r3, r25 # just for print | |||
0x10C20 addi r30, r30, 8 # add 8 so next time in loop we read new config (4), | |||
0x10C20 # and new params (4) if game have more than one config | |||
0x10C24 lwz r4, 0(r11) # load command | |||
0x10C28 lwz r0, 4(r11) # load params | |||
0x10C2C slwi r9, r4, 2 # r9 = r4 << 2 so shift our command to the left by 2, and store in r9 | |||
0x10C30 clrldi r5, r0, 32 # just print again | |||
0x10C34 addi r9, r9, 0x10 # add 0x10 to shifted command value | |||
0x10C34 # to create address where param of config will be stored | |||
0x10C38 extsw r4, r4 | |||
0x10C3C extsw r9, r9 | |||
0x10C40 add r9, r9, r31 # r31 is value that change between emu versions. | |||
0x10C40 # That way emulator can keep correct config IDs without changes to table. | |||
0x10C40 # r31 0x2B0930 + what we currently have in r9 after previous calculations. | |||
0x10C44 stw r0, 4(r9) # Store param on finally calculated address + 4. For example for config 04 | |||
0x10C44 # address will be 0x2B0954. | |||
0x10C48 bl print_ | |||
0x10C4C nop | |||
0x10C50 cmpw cr7, r28, r29 # r28 overall config count | |||
0x10C50 # r29 currently read count | |||
0x10C54 bne cr7, read_conf_loop | |||
</pre> | </pre> | ||
====Known ps1emu.self commands==== | |||
* 0xB param is magic word for libcrypt. | |||
* 0xE param is divider for 0x204CC00 (psx cpu speed), result is stored on fixed address and used by many functions. | |||
* 0x15 when param is set to 3, force game reload with ps1netemu. Is not known what other param values do. | |||
== | == Commands Info == | ||
The command ID's varies in between firmware versions, most probably because new functions was added every few versions, reorganized, etc... and this changes created a "displacement" of the old commands that causes them to increase his ID<br> | The command ID's varies in between firmware versions, most probably because new functions was added every few versions, reorganized, etc... and this changes created a "displacement" of the old commands that causes them to increase his ID<br> | ||
At the time of writing this we dont know how to map that variable ID's to an static ID (that could be valid for all firmware versions), so by now in this list is needed to indicate the firmware version where the command ID was found<br> | At the time of writing this we dont know how to map that variable ID's to an static ID (that could be valid for all firmware versions), so by now in this list is needed to indicate the firmware version where the command ID was found<br> | ||
Coincidentially there are a few commands that preserves his ID in between | Coincidentially there are a few commands that preserves his ID in between firmware versions, most probably is because are the first commands implemented (up to netemu command 0x04)) and the variable ID given to them is a very low value, so always was kept at a low position in the commands list and was not disturbed by the modifications made to the other commands. | ||
<br><br> | |||
According to internal tables (4.86): | |||
* ps1_emu support commands up to 0x15 | |||
* ps1_newemu support commands up to 0x18 | |||
* ps1_netemu support commands up to 0x3C | |||
Beside functions that read command params directly, every emulator have function (madeup name) ReadInternalConfigValue(u32 command_id). This function take command_id as only variable, and return param in r3 for selected command. This is used widely to read command params, that include libcrypt commands. | |||
<br><br> | |||
Function mentioned above is placed on (in emu memory, 4.86): | |||
* ps1_emu 0x10638 | |||
* ps1_newemu 0x12F54 | |||
* ps1_netemu 0xB65F0 | |||
=== Command 0x01 (netemu 3.40 up to 4.88) === | === Command 0x01 (netemu 3.40 up to 4.88) === | ||
Used by SLPM_865.49, SLPM_865.50, SLPS_017.16, SLPS_004.16, SLUS_004.33) | |||
*Valid values found | *Valid values found | ||
**2 (in SLPM_865.49, SLPM_865.50, SLPS_017.16) | |||
**2 | **1 (in SLPS_004.16, SLUS_004.33) | ||
=== Command 0x02 (netemu 3.40 up to 4.88) === | === Command 0x02 (netemu 3.40 up to 4.88) === | ||
The command data contains an offset that points to an area where are stored a list of sectors (4 bytes each), there are only 3 games using this command and are libcrypt protected: MediEvil (SCES-00311), Vagrant Story (SLES-02754), and Crash Team Racing (SCES-02105)<br> | |||
The command data contains an offset that points to an area where are stored a list of sectors (4 bytes each) | |||
The libcrypt protection is related with subchannel data stored by sectors, in redump.org this data is managed with the SBI files, displayed in a hexeditor view in each specific game page. If we convert the data from the official format to decimal and we compare it with the sector numbers in the redump.org SBI file it can be seen all the libcrypt protected sectors from the SBI file are included in the official format<br> | The libcrypt protection is related with subchannel data stored by sectors, in redump.org this data is managed with the SBI files, displayed in a hexeditor view in each specific game page. If we convert the data from the official format to decimal and we compare it with the sector numbers in the redump.org SBI file it can be seen all the libcrypt protected sectors from the SBI file are included in the official format<br> | ||
The official format seems to include a lot more sectors which purpose is unknown<br> | The official format seems to include a lot more sectors which purpose is unknown<br> | ||
<u>MediEvil</u> | <u>MediEvil SCES-00311 at absolute offset 0x16298C in ps1_netemu.self 4.88</u> http://redump.org/disc/592/ | ||
<small><pre | <small><pre> | ||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
Line 511: | Line 564: | ||
</pre></small> | </pre></small> | ||
<u>Vagrant Story</u> | <u>Vagrant Story SLES-02754 at absolute offset 0x162A8C in ps1_netemu.self 4.88</u> http://redump.org/disc/9978/ | ||
<small><pre | <small><pre> | ||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
Line 630: | Line 683: | ||
</pre></small> | </pre></small> | ||
<u>Crash Team Racing SCES-02105 at absolute offset 0x1627E4 in ps1_netemu.self 4.88</u> http://redump.org/disc/798/ | |||
<small><pre> | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
001627E0 00 00 06 A3 00 00 0E 21 00 00 17 79 ...£...!...y | |||
001627F0 00 00 29 CB 00 00 2B 21 00 00 2E 22 00 00 31 31 ..)Ë..+!..."..11 | |||
00162800 00 00 37 19 00 00 37 1E 00 00 38 35 00 00 38 95 ..7...7...85..8• | |||
00162810 00 00 38 9A 00 00 3A D0 00 00 3A D5 00 00 3B 1A ..8š..:Ð..:Õ..;. | |||
00162820 00 00 3B 1F 00 00 3B D0 00 00 3B D5 00 00 3C 12 ..;...;Ð..;Õ..<. | |||
00162830 00 00 3C 17 00 00 3D 0C 00 00 3D 11 00 00 3F 27 ..<...=...=...?' | |||
00162840 00 00 3F 2C 00 00 48 91 00 00 55 35 00 00 57 A1 ..?,..H‘..U5..W¡ | |||
00162850 00 00 58 38 00 00 59 38 00 00 5B 67 00 00 62 A9 ..X8..Y8..[g..b© | |||
00162860 00 00 62 C5 00 00 78 4F 00 00 78 CA 00 00 7E 94 ..bÅ..xO..xÊ..~” | |||
00162870 00 00 90 30 00 00 9A D5 00 00 9E 05 00 00 A4 3D ...0..šÕ..ž...¤= | |||
00162880 00 00 A4 42 00 00 A5 C0 00 00 A5 C5 00 00 A8 04 ..¤B..¥À..¥Å..¨. | |||
00162890 00 00 A8 09 00 00 A8 A9 00 00 A8 AE 00 00 A9 5A ..¨...¨©..¨®..©Z | |||
001628A0 00 00 A9 5F 00 00 A9 90 00 00 A9 95 00 00 AA 72 ..©_..©...©•..ªr | |||
001628B0 00 00 AA 77 00 00 AD 18 00 00 AD 1D 00 00 C5 5C ..ªw........Å\ | |||
001628C0 00 00 EC 56 00 00 FB CA 00 01 04 52 00 01 04 7C ..ìV..ûÊ...R...| | |||
001628D0 00 01 08 F4 00 01 22 A3 00 01 26 79 00 01 2F 8B ...ô.."£..&y../‹ | |||
001628E0 00 01 2F A6 00 01 2F CE 00 01 53 A8 00 01 79 10 ../¦../Î..S¨..y. | |||
001628F0 00 01 86 0D 00 01 C3 96 00 01 CD 83 00 01 EA 08 ..†...Ö..̓..ê. | |||
00162900 00 01 F6 92 00 02 02 57 00 02 1C 08 00 02 53 85 ..ö’...W......S… | |||
00162910 00 02 91 5D 00 02 93 8F 00 02 93 A6 00 02 AB 93 ..‘]..“...“¦..«“ | |||
00162920 00 02 AB FB 00 02 BC 8C 00 02 CA 39 00 02 D2 17 ..«û..¼Œ..Ê9..Ò. | |||
00162930 00 02 F1 35 00 03 16 06 00 03 4A 45 00 03 4C B6 ..ñ5......JE..L¶ | |||
00162940 00 03 68 26 00 03 6B 1D 00 03 92 B8 00 03 92 F2 ..h&..k...’¸..’ò | |||
00162950 00 03 9B 5D 00 03 A7 76 00 03 BA 90 00 03 C5 1A ..›]..§v..º...Å. | |||
00162960 00 03 C5 41 00 03 C5 A3 00 03 FC F1 00 03 FD DA ..ÅA..Å£..üñ..ýÚ | |||
00162970 00 04 14 C2 00 04 1F 49 00 04 26 57 00 04 87 5F ...Â...I..&W..‡_ | |||
00162980 00 04 8E 65 00 04 C0 DA 00 00 00 00 ..Že..ÀÚ.... | |||
000006A3 | |||
00000E21 | |||
00001779 | |||
000029CB | |||
00002B21 | |||
00002E22 | |||
00003131 | |||
00003719 --- to decimal ---> 14105 (mentioned in the redump SBI file) | |||
0000371E --- to decimal ---> 14110 (mentioned in the redump SBI file) | |||
00003835 | |||
00003895 --- to decimal ---> 14485 (mentioned in the redump SBI file) | |||
0000389A --- to decimal ---> 14490 (mentioned in the redump SBI file) | |||
00003AD0 --- to decimal ---> 15056 (mentioned in the redump SBI file) | |||
00003AD5 --- to decimal ---> 15061 (mentioned in the redump SBI file) | |||
00003B1A --- to decimal ---> 15130 (mentioned in the redump SBI file) | |||
00003B1F --- to decimal ---> 15135 (mentioned in the redump SBI file) | |||
00003BD0 --- to decimal ---> 15312 (mentioned in the redump SBI file) | |||
00003BD5 --- to decimal ---> 15317 (mentioned in the redump SBI file) | |||
00003C12 --- to decimal ---> 15378 (mentioned in the redump SBI file) | |||
00003C17 --- to decimal ---> 15383 (mentioned in the redump SBI file) | |||
00003D0C --- to decimal ---> 15628 (mentioned in the redump SBI file) | |||
00003D11 --- to decimal ---> 15633 (mentioned in the redump SBI file) | |||
00003F27 --- to decimal ---> 16167 (mentioned in the redump SBI file) | |||
00003F2C --- to decimal ---> 16172 (mentioned in the redump SBI file) | |||
00004891 | |||
00005535 | |||
000057A1 | |||
00005838 | |||
00005938 | |||
00005B67 | |||
000062A9 | |||
000062C5 | |||
0000784F | |||
000078CA | |||
00007E94 | |||
00009030 | |||
00009AD5 | |||
00009E05 | |||
0000A43D --- to decimal ---> 42045 (mentioned in the redump SBI file) | |||
0000A442 --- to decimal ---> 42050 (mentioned in the redump SBI file) | |||
0000A5C0 --- to decimal ---> 42432 (mentioned in the redump SBI file) | |||
0000A5C5 --- to decimal ---> 42437 (mentioned in the redump SBI file) | |||
0000A804 --- to decimal ---> 43012 (mentioned in the redump SBI file) | |||
0000A809 --- to decimal ---> 43017 (mentioned in the redump SBI file) | |||
0000A8A9 --- to decimal ---> 43177 (mentioned in the redump SBI file) | |||
0000A8AE --- to decimal ---> 43182 (mentioned in the redump SBI file) | |||
0000A95A --- to decimal ---> 43354 (mentioned in the redump SBI file) | |||
0000A95F --- to decimal ---> 43359 (mentioned in the redump SBI file) | |||
0000A990 --- to decimal ---> 43408 (mentioned in the redump SBI file) | |||
0000A995 --- to decimal ---> 43413 (mentioned in the redump SBI file) | |||
0000AA72 --- to decimal ---> 43634 (mentioned in the redump SBI file) | |||
0000AA77 --- to decimal ---> 43639 (mentioned in the redump SBI file) | |||
0000AD18 --- to decimal ---> 44312 (mentioned in the redump SBI file) | |||
0000AD1D --- to decimal ---> 44317 (mentioned in the redump SBI file) | |||
0000C55C | |||
0000EC56 | |||
0000FBCA | |||
00010452 | |||
0001047C | |||
000108F4 | |||
000122A3 | |||
00012679 | |||
00012F8B | |||
00012FA6 | |||
00012FCE | |||
000153A8 | |||
00017910 | |||
0001860D | |||
0001C396 | |||
0001CD83 | |||
0001EA08 | |||
0001F692 | |||
00020257 | |||
00021C08 | |||
00025385 | |||
0002915D | |||
0002938F | |||
000293A6 | |||
0002AB93 | |||
0002ABFB | |||
0002BC8C | |||
0002CA39 | |||
0002D217 | |||
0002F135 | |||
00031606 | |||
00034A45 | |||
00034CB6 | |||
00036826 | |||
00036B1D | |||
000392B8 | |||
000392F2 | |||
00039B5D | |||
0003A776 | |||
0003BA90 | |||
0003C51A | |||
0003C541 | |||
0003C5A3 | |||
0003FCF1 | |||
0003FDDA | |||
000414C2 | |||
00041F49 | |||
00042657 | |||
0004875F | |||
00048E65 | |||
0004C0DA | |||
00000000 | |||
</pre></small> | |||
=== Command | === Command 0x03 (netemu 3.40 up to 4.88) === | ||
Command ID 0x03 seems to match too in between netemu from firmware 3.40 and 4.88 | |||
=== Command | === Command 0x04 (netemu 3.40 up to 4.88) === | ||
Command ID 0x04 seems to match too in between netemu from firmware 3.40 and 4.88 | |||
=== Command | === Command 0x05 (netemu 3.55 up to 4.88) === | ||
Command ID 0x05 seems to match too in between netemu from firmware 3.55 and 4.88<br> | |||
The game configs inside ps1_netemu.self 3.40 doesnt seems to use this command, so is not posible to see if it matches in between 3.40 and 3.55/4.88 | |||
=== Command 0x17 (netemu 4.83 up to 4.88) === | === Command 0x17 (netemu 4.83 up to 4.88) === | ||
*Or command 0x15 (netemu 3.40 up to 3.55) | *Or command 0x15 (netemu 3.40 up to 3.55) | ||
*Or command 0x0B (emu | *Or command 0x0B (emu 3.40 up to 4.88) | ||
*Or command 0x0A (newemu 3.40 up to 4.88) | *Or command 0x0A (newemu 3.40 up to 4.88) | ||
This is the libcrypt magic word. This command is used only in 3 games (SCES_016.95, SLES_019.07, SLES_013.01). see: [[PS1 Custom Patches]] | This is the libcrypt magic word. This command is used only in 3 games (SCES_016.95, SLES_019.07, SLES_013.01). see: [[PS1 Custom Patches]] | ||