Editing Talk:PS2 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 8: | Line 8: | ||
0x18E1F0, sub_4670C (4.70) | 0x18E1F0, sub_4670C (4.70) | ||
0x348EC8, sub_44338 (4.70) | 0x348EC8, sub_44338 (4.70) | ||
in id0x01, function id 0x18 | |||
condition: [ 0x20183F04 (+200000000 base) ] == 0x0C060F2C | |||
setting: | |||
stores 0 in address 0x20183F04, 0x20183F34, 0x20183F3C - with 200000000 base | |||
0x183F0C, sub_46334 (4.70) | |||
0x183F3C, sub_45DA4 (4.70) | |||
0x183D74, sub_47B50 (4.70) | |||
====Function Mapping==== | ====Function Mapping==== | ||
Line 203: | Line 211: | ||
|}{{clear}} | |}{{clear}} | ||
=== | ===ps2_netemu command 0x4=== | ||
Patch SPE 3 program (eedma) by searching for ila r4, xxxxx, starting at 0x178A0 and replacing them with (0x42000004 | ((value << 7) & 0x1FFFF80)<br> | |||
0x42000004 is ila r4 opcode. Due to opcode encoding example result of that patch with value 0x08 will be 0x42000404 (ila r4, 0x08). | |||
There is little bit more than that, but main purpose is just to patch SPE program behavior. | |||
* What are the valid values? The official config from The Suffering uses a 0x8 value, yet the flashing does still happen. Increasing it to 0x20 seems to fix the flashing.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 14:42, 22 February 2022 (UTC) | |||
** 0x00 - 0x3FFFF. Well you can use higher values, but it will be truncated by mask to something below 0x40000 anyway. Default is 0x12345 if i understand correctly. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 16:29, 22 February 2022 (UTC) | |||
* | |||
===ps2_netemu command 0x5=== | ===ps2_netemu command 0x5=== | ||
This command seems to be disabled in netemu, but is used in gxemu with ID 0x4 | |||
*There are several games that uses it in his config data hardcoded inside ps2_gxemu.self such: | |||
* | **SLES-51823 | 1 | cmd: 0x4 Hunter: The Reckoning Wayward | ||
** | **SLES-54135 | 1 | cmd: 0x4 Grand Theft Auto: Liberty City Stories | ||
**SLES-54136 | 1 | cmd: 0x4 Grand Theft Auto: Liberty City Stories | |||
**SLES-54622 | 1 | cmd: 0x4 Grand Theft Auto: Vice City Stories | |||
**SLES-54623 | 1 | cmd: 0x4 Grand Theft Auto: Vice City Stories | |||
**SLPM-65340 | 1 | cmd: 0x4 Shinseiki Evangelion: Ayanami Ikusei Keikaku with Asuka Hokan Keikaku | |||
**SLPM-66275 | 1 | cmd: 0x4 Onimusha : Dawn of Dreams | |||
**SLUS-20001 | 1 | cmd: 0x4 Tekken Tag Tournament | |||
**SLUS-21423 | 1 | cmd: 0x4 Grand Theft Auto: Liberty City Stories | |||
**SLUS-21590 | 1 | cmd: 0x4 Grand Theft Auto: Vice City Stories | |||
===ps2_netemu command 0x0B=== | |||
There is a lot of misunderstanding about that command. | |||
Offset seems to be dependent on read mode, is not about what media we use. This is dependent how game read data, more precisely how game read that one sector we want to patch. | |||
PCSX2 "CDVD reads" logs can help here: | |||
'''CDRead requested block size (CD disc):''' | |||
*2048 = Offset + 0x18 (skip 12 sync bytes, 4 of header, and 8 of subheader) | |||
*2328 = Offset + 0x18 (skip 12 sync bytes, 4 of header, and 8 of subheader) | |||
*2340 = Offset + 0x0C (skip only 12 bytes of sync data) | |||
* | |||
= | '''DVDRead requested block size (DVD Disc):''' | ||
*2064 = Offset match, but only until the 349th sector. Otherwise is offset - 0x0C because that read mode see data as ID DATA (4) + ID DATA EDC (2) + Reserved bytes (6) + 2048 data + EDC (4). Why there is some weirdness that about first sectors, no idea. Maybe it is something common for DVD discs that i'm not aware off. | |||
"Offset + XX" for CD assume that you use Isobuster RAW mode. "Offset - XX" for DVD assume that you use Isobuster NON RAW mode (ISO can't store all data, so is missing ID/Resv bytes too.<br> | |||
Keep in mind there is a bug in pcsx2 where fastboot "force" 2048 CD read on DVD disc for executable. That one will match 2064 read for us. | |||
* You are very right. I was not aware about different read modes you can specify in the sceCdRead command. That makes sense and that explains that Freekstyle issue. Regarding the whole offset misunderstanding, I know it could be confusing sometimes when you open the mounted file system through the HxD for example (only data bytes are seen). It is important to load the image file in the hex editor directly (or use the "Load image file" in HxD), or check the RAW box in the Isobuster's sector viewer.<br> When it comes to the DVD discs, I know the offset correction is somehow related to the DVD RAW 2064 bytes per sector mode. But I am not sure if it is not applied until the 349th sector precisely - it is what I noticed by looking into the Psychonauts and Street Racing Syndicate configs. The latter has got the patch data applied to the 349th sector without the 0xC correction at all. It is the farthest example I have found.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 14:47, 20 February 2022 (UTC) | |||
* The next 0x0B sector DVD patch in ascending order is in the Ace Combat Zero: The Belkan War config (402nd sector). It does use the +0xC correction. So it is somewhere between 349th and 402nd sector the correction starts to be applied.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 14:00, 22 February 2022 (UTC) | |||
===ps2_netemu command 0x10=== | |||
This accuracy command introduces a lot of lag when used improperly. Sometimes including only one offset brings a noticeable performance issues. Judging by its official use (GT4 licence freezing), I think it does improve the VU0 (not COP2) accuracy in the background, but using the EE memory offset as a parameter. As it could slow down the emulation a little bit, it could be incorrectly used as a fix for various, unrelated issues. | |||
* This is probably incorrect as VU0 is not running in sync with EE on this emu. Also to run COP2, VU0 program need to finish, or halt on mbit at least. So command like that will be completely random. But fact is that 0x10 can be REALLY slow, because doing MUL/DIV/SQRT/RSQRT on software is really demanding. Also i will clean up some descriptions in main ps2 emulation page, because there is wrong data here and there. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 18:45, 27 February 2022 (UTC) | |||
** Done. I'm slowly getting rid of EE and VU0 recompiler in that emu. So in near future i should be able to list which opcodes are exactly use wchich command. Also just in case. 0x10, 0x26, 0x27 config names come from PS4 emu parser, so those should be accurate. Emulator to use one of those commands like 0x10, need to perform check from function that parse/recompile/whatever opcode. When opcode doesn't have that check in emulator, then in theory 0x10 shouldn't activate itself even when correct offset is hit. But that need more work to make sure how it work. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 19:09, 27 February 2022 (UTC) | |||
** | |||
===ps2_netemu command 0x12=== | ===ps2_netemu command 0x12=== | ||
Line 338: | Line 296: | ||
seg017:00000000001984C0 bgt cr6, next_value | seg017:00000000001984C0 bgt cr6, next_value | ||
</pre> | </pre> | ||
====type 2==== | ====type 2==== | ||
Fix | Fix on Interpretation? | ||
<pre> | <pre> | ||
Line 369: | Line 325: | ||
*0x21C | ptr to 3rd value *0x2AC (0x367) | *0x21C | ptr to 3rd value *0x2AC (0x367) | ||
</pre> | </pre> | ||
Line 404: | Line 352: | ||
stw r9, 0x1238(r31) save count>>1 | stw r9, 0x1238(r31) save count>>1 | ||
std r11, 0x1240(r31) save ptr to table values start | std r11, 0x1240(r31) save ptr to table values start | ||
---big handler, different register settings?--- | |||
===ps2_netemu command 0x4D=== | |||
Ok, i don't get that config. Here is what happen in assembly: | |||
0xD820 ilhu r19, 0x7FFF | |||
0xD824 lqr r20, Q_cfg_0x4D ; 0x3F800000 in wild arms | |||
0xD82C iohl r19, 0xFFFF | |||
0xD834 and r17, r80, r19 ; r17 = Q & 0x7FFFFFFF mask | |||
0xD840 ceqi r15, r17, 0 ; r15 = r17 (shortcut to move 0 or value if exist to r15) | |||
0xD844 lqr r10, ST_Q | |||
0xD84C cwd r9, 0x30+var_30+8(sp) | |||
0xD850 rotqbyi r16, r20, 4 ; load mask from config to r16 | |||
0xD858 and r12, r15, r16 ; tempQ & 0x3F800000 (r15 and with mask from cfg 0x3F800000) | |||
0xD860 or r5, r80, r12 ; or r80(Q) with r12(Q masked with 0x3F800000) | |||
0xD868 shufb r7, r5, r10, r9 ; Prepare correct write for Q (r5 stored to r10 + 8) | |||
0xD870 stqr r7, ST_Q ; write result as Q value in STQ | |||
I removed irrelevant code that setup RGBA for readability, its not affecting Q. So my point is that all that masked Q is finally ored with r80. So with whole untouched Q value. Doen't that make all those operations irrelevant, or i made some mistake here?<br> | |||
This config can be quite important because it should help to fix issues like Galerians Ash without dirty static patches. More games affected: [[https://github.com/PCSX2/pcsx2/issues/5137 | List]] | |||
==XMB messages related with PS2 Emulation== | |||
< | {{Boxcode|title=explore_category_sysconf.rco\Text\English.xml|code=<syntaxhighlight lang="xml"> | ||
<Text name="msg_ps_ps2_upconvert">PS/PS2 - Upscaler</Text> | |||
<Text name="msg_ps_upconvert">PS - Upscaler</Text> | |||
<Text name="msg_ps_ps2_smoothing">PS/PS2 - Smoothing</Text> | |||
</ | <Text name="msg_ps_smoothing">PS - Smoothing</Text> | ||
<Text name="msg_ps_ps2_smoothing_explanation">Reduces the roughness of the displayed image.</Text> | |||
</syntaxhighlight>}} | |||
=== | {{Boxcode|title=game_ext_plugin.rco\Text\English.xml|code=<syntaxhighlight lang="xml"> | ||
This | <Text name="msg_error_cannot_play_ps2disc_scee">This title is not currently compatible with the PS3™ system. Please visit faq.eu.playstation.com/bc for a list of PlayStation®2 format software titles that are compatible, and to update the System Software that will enable your PS3™ system to play additional PlayStation®2 format software titles.</Text> | ||
<Text name="msg_error_cannot_play_ps2disc_scea">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.us.playstation.com/Support/CompatibleStatus to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text> | |||
<Text name="msg_error_cannot_play_ps2disc_scej">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.jp.playstation.com/ps3/status/ to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text> | |||
<Text name="msg_error_cannot_play_ps2disc_scek">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.playstation.co.kr/info/bc to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text> | |||
<Text name="msg_error_cannot_play_ps2disc_sceasia">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://asia.playstation.com/status to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text> | |||
<Text name="msg_cannot_run_ps2_fromat_corretly_stop">A problem has occurred. This PlayStation®2 format software was forced to quit.</Text> | |||
</syntaxhighlight>}} | |||
=== | {{Boxcode|title=explore_plugin_full.rco\Text\English.xml|code=<syntaxhighlight lang="xml"> | ||
<Text name="msg_setting_file_ps2">Settings File (PlayStation®2)</Text> | |||
<Text name="msg_your_bb_navigator">Your PlayStation®BB Navigator</Text> | |||
<Text name="msg_system_driver_ps1">System Driver</Text> | |||
<Text name="msg_system_driver_ps2">System Driver (PlayStation®2)</Text> | |||
<Text name="msg_error_cannot_play_ps2_format">This model of the PS3™ system is not compatible with PlayStation®2 format software.</Text> | |||
</syntaxhighlight>}} | |||
==Obsolete experiments== | |||
This is kept here for historical purposes, but needs to be rewritten or deleted | |||
===Getting Playstation 2 Software Emulator working=== | |||
Method (on Firmware 3.55, without! Cobra-USB Dongle or Downgrade) for all consoles (fat & slim). | |||
1. Replace following files on your consoles /dev_flash/ | |||
with the ones included in this archive | |||
p3dwik-ps2compatfiles.rar | |||
2. Get into Factory Service Mode (FSM Tool/Dongle) | |||
3. Insert your Original PS2 Game Disc | |||
4. It will run. | |||
Note: Backups wont work. You're getting the compatibility of the 2.60 software emulator with all of its bugs. | |||
Download: [http://www.sendspace.com/file/bm9z9v p3dwik-ps2compatfiles.rar]<br> | |||
Possible compatibility Lists: | |||
* http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530 | |||
* [[Talk:Emulation#PS2.2FPStwo]] | |||
=== | ====boot_ps2==== | ||
http://foxbrew.org/ps3/otheros-utils/boot_ps2.git <br /> | |||
http://www.multi...upload.com/QKK7ETPHXZ boot_ps2-src.rar (1.43 KB) <br /> | |||
http://www.multi...upload.com/YCZ63Y6TQ5 boot_ps2.pkg (69.17 KB) <br /> | |||
any chance of having this package resigned for 4.21 cfw? might be useful to see if it'll boot ps2_netemu.self LPAR. | |||
(can boot ps2lpar, but also petitboot if otheros installed! 50:50 chance) | |||
[http://rghost.net/42586725 boot_ps2 4.xx eboots.zip (153 KB)] <br /> installing 3.55 pkg and replacing the eboot and editing the sfo should work. | |||
== | === Enable Playstation 2 on non BC's=== | ||
[[http://www.ps3devwiki.com/index.php?title=Emulation#Getting_Playstation_2_Software_Emulator_working Getting Playstation 2 Software Emulator working]] | |||
[[Image:Vsh_ps2_change1.png|left|thumb|400px|XMB Game Settings non BC/BC,patched]]<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | |||
< | |||
==== Service Mode in relation to PS2 emulation tests ==== | |||
* Service mode resets display settings (on default it uses HDMI with composite on MultiAV connector) - this means that users of Component cables can get garbled screen / no display output (in tests below, the primairy screen) unless using composite wiring/screen (in tests below, the secondairy screen). | |||
* Service Mode also resets user presets like disc autoboot, so it needs to be disabled again if needed. | |||
* Any made Virtual Memory Cards previously will be removed and you will have no access to them, nor be able to create one. | |||
* When PS3 is switching to PS2, connection with Sixaxis / Dualshock 3 will be lost (even when using USB wired connection). In some cases easily resyncable by using PS button, but in other cases the leds stay off and the controller cannot be used (until ps2 mode is exited or console rebooted) | |||
* As a workaround for above wireless controller issue, you can use an USB2PS2 converter and connect an old PS2 / Dualshock2 controller. | |||
==== tests on 2000 series PS3 Slim ==== | |||
Testplatform: | |||
SKU: 2000 series slim (minver 2.70) | |||
2. | Firmware: 3.55 'Rogero 3.4' mmap114+peek/poke but no SS-patches | ||
3. | Memorycards: MC:PS1 in slot1, MC:PS2 in slot2. | ||
Mainscreen: Component+Composite 576i+P/720i+P//1080i | |||
Sec.screen: Composite 576i | |||
48 titles tested (PAL disc on PAL SKU) // [[User:Euss|Euss]] | |||
* Without Factory Service Mode : gives "Incompatible Data" when inserting PS2 disc | |||
* When enabling [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] without factory service mode (patch4 set as http://pastie.org/private/jp8zhvuocjz95cfrjm0uzg) : no changes in XMB:Game (still only PS upscaler/smoothing, no PS2 mention at all) | |||
* When enabling [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] without factory service mode (patch4 set as http://pastie.org/4355919) : gives XMB:Game PS2 smoothing/upscaling options, it also make an inserted disk to be seen as PS2 format. Still same problem of ¨incompatible title¨ and loss of BT/settings. Also after returning to XMB, it no longer sees the disc as PS2 format but as incompatible data (which suggests the lv2 patch is undone, as lv2 is reloaded when returning from the ps2 lpar) | |||
* Using [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] without factory service mode : no resetting of date/time/displayoutput (still output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation), and after a long while comes up with the message that the title is not compatible and that the ps3 needs to be updated (Basic nag screen that is on BC PS3s when inserting a noncompatible title). | |||
http:// | |||
any | * With Factory Service Mode enabled (there are no Xmb options to combinetest with [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] or [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg]): gives ´PS2 disc´ detected at disc icon, but starting gives: resetting of date/time/displayoutput (effectively disabling my mainscreen), then all connection to any bound bluetooth device is lost, even when connected via USB (needs multiple PS button reactivation), and after a long while comes up with the message that the title is not compatible and that the ps3 needs to be updated (Basic nag screen that is on BC PS3s when inserting a noncompatible title). | ||
( | In short: [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] and Factory Service Mode seem to enable simulare (it tries to boot it) while [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives you more options e.g. using [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher]. | ||
Perhaps hardswapping out all the dev_flash ps2 emu files for the same software only emulator would circumvent the 'incompatible title' message. | |||
=== | ==== Second test: FW 2.70/3.15 ==== | ||
Silent Hill : gives disk icon "unsupported data" and error message like "This model of the PS3 system is not compatible with Playstation2 format software" when run via disc icon. Using [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives title not supported error message like "This title is not currently compatible with the PS3 system". | |||
==== Third test: FW 3.55 OtherOS++22GB (with SS Patches) ==== | |||
Silent Hill : gives disk icon "unsupported data" and error message like "This model of the PS3 system is not compatible with Playstation2 format software" when run via disc icon. Using [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives blackscreen lockup, not reacting on PS button, or powerbutton, requiring removing powercord. | |||
==== | ===== considering titles to test ===== | ||
* | * http://en.wikipedia.org/wiki/List_of_PlayStation_3_backward_compatible_PlayStation_2_and_PlayStation_games | ||
* http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530 | |||
* http://us.playstation.com/support/compatiblestatus/index.htm | |||
* | These have no listed issues: | ||
* Half-Life | |||
* Hulk | |||
* Medal of Honor: Frontline | |||
These have minor issues listed (but should still play): | |||
* Silent Hill 3 | |||
* Second Sight | |||
==== tests on CECHC04 (partial BC) ==== | |||
on 3.41 or on 3.55 in normal XMB mode (no disc icon in XMB): boot_ps2.pkg gives no resetting of date/time/displayoutput (still output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation), and after a long while comes up with the message that the "The system was not turned off properly" as if it had experienced poweroff and from there booted back to XMB. It then returns to the XMB, but first gives an error screen, mentioning 0x80028F17 occured (''PS2 mode error 0x80028F17 "An error occurred during the start operation (80028F17)," PlayStation 2 disc Boot Error, also related to PS1 PSN games.'') | |||
on 3.41 or on 3.55 in normal XMB mode (disc icon in XMB): boot_ps2.pkg gives resetting of date/time/displayoutput (no output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation). The game is playable on secondary screen, and exit to XMB with holding PS button goes without 0x80028F17 errors, but does give the "The system was not turned off properly" error. | |||
* | no disc icon: | ||
* Medal of Honor: Rising Sun | |||
* Half-Life | |||
disc icon: | |||
* Hulk | |||
* Second Sight | |||
* Silent Hill 3 | |||
==== Renaming ps2_netemu to ps2_emu ==== | |||
Tested renaming ps2_netemu.self to ps2_emu.self on CECHB01/rogero 4.21 with dev_blind mounting via multiMAN but boots to black screen, no disc activity, but controller shuts off and is synced. No PS button menu or anything. | |||
boot_ps2.pkg boots, no disc activities, then throws up an error depending if the file is resigned for 4.21 or not. (tried both a resigned and the existing version) | |||
==== PS2 on non BC HW - Tests ==== | |||
{| class="wikitable sortable" | |||
|- | |||
! rowspan="2" | Title !! rowspan="2" | DiscID !! colspan="2" | Disc Icon !! colspan="3" | ps2_softemu !! rowspan="2" | Remarks | |||
|- | |||
== | ! <abbr title="Normal Mode">Normal</abbr> !! <abbr title="Factory Service Mode">FSM</abbr> !! 2.50 !! 2.60 !! 2.70 | ||
|- | |||
| Action Replay MAX || SCED54409 || || {{ps2cd}} || || || {{no}} || | |||
= | |- | ||
| Battlefield 2 Modern Combat || SLES53729 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| Constantine || SLES52872 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| Demo Disc 3-073-543-11 || PBPX95514 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| EyeToy Play || SCES51513 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| EyeToy Play 2 || SCES52748 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| EyeToy Play 3 || SLES53315 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| Freedom Fighters || SLES51467 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| Ghost in the Shell Standalone Complex || SLES53020 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| GoldenEye Rogue Agent || SLES52974 || || {{ps2dvd}} || || || {{no}} || | |||
|- | |||
| Guerrilla Strike || SLES53344 || || {{ps2cd}} || || || {{no}} || | |||
|- | |||
| Gunfighter 2 Revenge of Jessy James || SLES51289 || || {{ps2cd}} || || || {{no}} || | |||
no | |||
{| | |||
|- | |- | ||
| Half Life || SLES50504 || || {{ps2cd}} || || || {{no}} || | |||
|- | |- | ||
| HDLoader || - || || {{ps2cd}} || || || {{no}} || | |||
|- | |- | ||
| | | International Golf Pro || SLES52349 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Jet Ion GP || SLES50544 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | killer7 || SLES53366 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Kya Dark Lineage || SLES51473 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | London Racer Destruction Madness || SLES53654 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | London Racer Police Madness || SLES53536 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Manhunt || SLES52023 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Max Play - 10 Classic Retro Games || - || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Medal of Honor European Assault || SLES53332 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Medal of Honor Frontline || SLES50684 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Medal of Honor Rising Sun || SLES51873 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Medal of Honor Vanguard || SLES54683 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Men in Black II Alien Escape || SLES50789 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Network Access Disc || SCES51578 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #66 || SCED54409 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #67 || SCED54410 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #68 || SCED54412 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #69 || SCED54413 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #70 || SCED54415 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #72 || SCED54417 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #73 || SCED54418 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #74 || SCED55113 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #75 || SCED55114 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #77 || SCED55117 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | OPM #79 || SCED55119 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Perfect Ace Pro Tournament Tennis || SLES51735 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Prisoner of War || SLES50397 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Ratchet & Clank 3 || SCES52456 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Red Baron || SLES53434 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | SAS Anti-terror Force || SLES53435 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Second Sight || SLES52670 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Seek and Destroy || SLES51603 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Silent Hill 3 || SLES51434 || || {{ps2dvd}} || {{yes}} || || {{no}} || | ||
|- | |- | ||
| | | Socom US Navy SEALs || SCES50928 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Socom II US Navy SEALs || SCES51904 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Socom 3 US Navy SEALs || SCES53300 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Socom US Navy SEALs Combined Assault || SCES54477 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Swap Magic 3 plus (PAL version 3.6) CD || SCED54409 || || {{no}} || - || || {{no}} || | ||
|- | |- | ||
| | | Swap Magic 3 plus (PAL version 3.6) DVD || SCED54409 || || {{ps2dvd}} || {{yes}} || || {{no}} || | ||
|- | |- | ||
| | | Tenchu Wrath of Heaven || SLES50679 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Terminator 3 Rise of the Machines || SLES52152 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | The Great Escape || SLES51315 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | The Hulk || SLES51508 || || {{ps2dvd}} || {{yes}} || || {{no}} || | ||
|- | |- | ||
| | | The Matrix Path of Neo || SLES53799 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | The Plan || SLES53965 || || {{ps2cd}} || || || {{no}} || | ||
|- | |- | ||
| | | Time Crisis 3 || SCES51844 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Tom Clancy's Ghost Recon || SLES51181 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Tom Clancy's Rainbow Six 3 || SLES52288 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Tom Clancy's Splinter Cell || SLES51466 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Tom Clancy's Splinter Cell Chaos Theory || SLES53007 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Tom Clancy's Splinter Cell Pandora Tomorrow || SLES52149 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | | Trapt || SLES53824 || || {{ps2dvd}} || || || {{no}} || | ||
|- | |- | ||
| | |} | ||
==== Tests on NON-BC CECHP01/NTSC-U (Firmware 2.60/boot_ps2.pkg) ==== | |||
<br> | |||
<br>Amplitude - Intro prompts are completely glitched, unresponsive to controller input. | |||
<br>Backyard Football 2007 - Graphical glitches during menu and gameplay. Frame rate is okay. | |||
<br>Boogie - Intro FMV runs very slow, fails to recognize input after the title screen. | |||
<br>MLB 08: The Show - Intro videos run smoothly. Menus load with no issue. Gameplay is extremely slow with graphical glitches. Network configuration utility is completely garbled. | |||
-- Moose | |||
Comparative listings: http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530 | |||
==Hidden/Inaccessible menu in ps2_emu== | |||
Apparently PS2EMU (CECH A/B) have some hidden menu that is able to print IOP configs from bios (XPARAM.ELF), i didn't found way to get there, my only idea is replacing other menu with that one in jump case at 0x5D980 (emu around 4.78). Case 21, and 22 is what seems to be hidden menu. | |||
More info about printed data: https://www.psdevwiki.com/ps3/PS2_Emulation#TitleID.2FDiscID_in_ps2_netemu.self | |||
==Crazy Taxi check== | |||
Emulators ps2_netemu, and ps2_gxemu (maybe others too), after calculating game hash perform compare check to 0x2BD12D81ED. | |||
ID match US release of Crazy Taxi. This id is kinda special, because Swap Magic CD version, and some other Datel products like Action Replay use Crazy Taxi TOC in their retail discs. | |||
Is known that they literally ripped part of disc (with key/logo, and TOC), and frankesteined it with own products. | |||
So mentioned check first compare hash, and if that match, then run function that perform another check at disc sector 267559 (0x41527), so exactly where main executable is. | |||
I didn't figured out what next, but this is probably anti AR/Datel/SM check. What's weird, there seems to be nothing for TimeSplitters2 which if i recall correctly was used for DVD version of Swap Magic. | |||
==== | ==CDVD Commands== | ||
< | ===Netemu=== | ||
<pre> | |||
4.75 and up. | |||
Supported CDVD N Commands: | |||
Supported CDVD N Commands: | |||
opd_ptr num name | opd_ptr num name | ||
Line 1,088: | Line 859: | ||
Every "mechacon_auth" command return zeroed result with different size. Only exception here is 0x81 which return 1. | Every "mechacon_auth" command return zeroed result with different size. Only exception here is 0x81 which return 1. | ||
</pre> | </pre> | ||
==EE I/O Handlers list== | ==EE I/O Handlers list== | ||
Line 1,678: | Line 1,378: | ||
|- | |- | ||
|} | |} | ||
1000F800 to 1000F8B0 seems to be some fake regs for testing purposes. Probably not existing on real PS2. | 1000F800 to 1000F8B0 seems to be some fake regs for testing purposes. Probably not existing on real PS2. | ||
* 1000F820 return "DrJock TV Quiz P" | |||
* 1000F830 return "hD bags few lynx" | |||
* 1000F820 return "DrJock TV Quiz P" | |||
* 1000F830 return "hD bags few lynx" | |||
That make string "DrJock TV Quiz PhD bags few lynx" - This is perfect summary of Sony work. Since correct pangram should use "MrJock". So even here they made mistake. | That make string "DrJock TV Quiz PhD bags few lynx" - This is perfect summary of Sony work. Since correct pangram should use "MrJock". So even here they made mistake. | ||
* | * 1F00F880 return hardcoded value of 0x4457, which match emu revision i'm working on. Can be just coincidence. | ||
==Random notes about SPE in ps2_netemu== | ==Random notes about SPE in ps2_netemu== | ||
===EEDMA on SPE3=== | |||
That one is one of most misleading names in whole emulator.. <br> | |||
DMA channels are handled in: | |||
===EEDMA on SPE3=== | |||
That one is one of most misleading names in whole emulator.. <br> | |||
DMA channels are handled in: | |||
*0 - VIF0 on PPU only | *0 - VIF0 on PPU only | ||
*1 - VIF1 dma, and VIF1 hw reads/writes including fifo write are handled in SPE3 (EEDMA) | *1 - VIF1 dma, and VIF1 hw reads/writes including fifo write are handled in SPE3 (EEDMA) | ||
Line 1,785: | Line 1,399: | ||
*8 - SPRfrom dma is handled on PPE only it seems | *8 - SPRfrom dma is handled on PPE only it seems | ||
*9 - SPRto dma is handled on PPE only it seems | *9 - SPRto dma is handled on PPE only it seems | ||
Additionally EEDMA handle VU1 code writes/reads | Additionally EEDMA handle VU1 code writes/reads. Only VU1 code, VU1 data is handled by SPE2 (VU1), and any VU0 r/w is handled by PPU only.<br> | ||
So is more like "Close to GS" DMA handler. | So is more like "Close to GS" DMA handler. | ||
Line 1,791: | Line 1,405: | ||
===VU1 emulation on SPE=== | ===VU1 emulation on SPE=== | ||
When I disassembled VU1 SPE program, i noticed that real code is really small part of that. Not much to run real VU recompiler/interpreter. | When I disassembled VU1 SPE program, i noticed that real code is really small part of that. Not much to run real VU recompiler/interpreter. | ||
Then i found out something impressive in my opinion. Real deal is that real code delivered to SPE is created on PPE dynamically based on real PS2 VU1 code. Due to similarity of SPE with VU requested in IBM by Sony at design level, there is no VU1 interpreter or recompiler per se. Emulator take VU1 code, dismount it to parts by OP field types, and reassemble into ready SPE code using ready hex templates. I'm not familiar with professional naming of that operation, but its like ahead of time translation of code. So when VU1 code reach SPE is already translated to SPE opcodes. In other terms, SPE responsible for running VU1 is really running VU1 code in some way. | Then i found out something impressive in my opinion. Real deal is that real code delivered to SPE is created on PPE dynamically based on real PS2 VU1 code. Due to similarity of SPE with VU requested in IBM by Sony at design level, there is no VU1 interpreter or recompiler per se. Emulator take VU1 code, dismount it to parts by OP field types, and reassemble into ready SPE code using ready hex templates. I'm not familiar with professional naming of that operation, but its like ahead of time translation of code. So when VU1 code reach SPE is already translated to SPE opcodes. In other terms, SPE responsible for running VU1 is really running VU1 code in some way. | ||
In latest ps2_netemu function responsible for translating VU1 code into SPE ready code is located at 0x13C69C | In latest ps2_netemu function responsible for translating VU1 code into SPE ready code is located at 0x13C69C | ||
===IPU skip mpeg hack=== | |||
There are some leftovers of SKIP MPEG hack in SPE 6 (IPU), i'm not sure that is still available. | There are some leftovers of SKIP MPEG hack in SPE 6 (IPU), i'm not sure that is still available. | ||
Looking at cmd 0x1A there is small chance that is mentioned hack, but i can't confirm yet. | |||
===SPE4 and SPE5=== | ===SPE4 and SPE5=== | ||
Line 1,853: | Line 1,446: | ||
== ps2_netemu supported video modes == | == ps2_netemu supported video modes == | ||
Both HDTV modes (0x51 1080i and 0x52 720p) crash the emulator | 0x53 video mode (576p) seems to work right. Both HDTV modes (0x51 1080i and 0x52 720p) crash the emulator. Tested by forcing the values in the sceGsResetGraph function. | ||
== Emu Patches == | == Emu Patches == | ||
===Skip demo disc check=== | ===Skip demo disc check=== | ||
Line 1,923: | Line 1,471: | ||
in 4.75+ emu: 0x8EEA0 beq cr7, demo_check ---> nop | in 4.75+ emu: 0x8EEA0 beq cr7, demo_check ---> nop | ||