Editing 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 19: | Line 19: | ||
*Firmware [[2.10_CEX|2.10]]: | *Firmware [[2.10_CEX|2.10]]: | ||
**Added '''ps1_newemu.self''' | **Added '''ps1_newemu.self''' and '''ps1_rom.bin''' (CRC32:D5FF6273 / CRC16:111D file is same as in 4.11 and all versions in between) | ||
**Users can now play PS1 game discs on a PSP with remote play, PSP firmware version 3.50 or newer is required. (this feature was not announced). | **Users can now play PS1 game discs on a PSP with remote play, PSP firmware version 3.50 or newer is required. (this feature was not announced). | ||
**Backwards compatibility for PS1 and PS2 games was improved (Update was also unannounced but evident in Sony's backwards compatibility search site). | **Backwards compatibility for PS1 and PS2 games was improved (Update was also unannounced but evident in Sony's backwards compatibility search site). | ||
**Note: since 2.10++ all PS1 emulators, ps1_emu.self, ps1_netemu.self, ps1_newemu.self uses the since then added ps1_rom.bin bios file. | |||
* | |||
}} | }} | ||
== | == Files == | ||
=== Emulator versions === | |||
This needs a table with emulator versions "by firmware" with the firmware versions at table headers and checksums inside cells, something like this: | |||
{| class="wikitable" style="font-size: | {| class="wikitable" style="font-size:small;" | ||
|+ | |+PS1 Emulator versions | ||
! | ! rowspan="2" | File Name !! colspan="6" | Firmware !! rowspan="2" | Notes | ||
|- | |- | ||
| | ! [[1.00_CEX|1.00]] !! [[1.02_CEX|1.02]]~[[1.70_CEX|1.70]] !! [[1.70_CEX|1.70]]~[[1.80_CEX|1.80]] !! [[1.80_CEX|1.80]]~[[2.10_CEX|2.10]] !! [[2.10_CEX|2.10]]~[[4.81_CEX|4.81]] !! [[4.81_CEX|4.81]] | ||
|- | |- | ||
| | ! ps1_emu.self | ||
| ? || MD5: ? || MD5: ? || MD5: ? || MD5: ? || MD5: ? || | |||
|- | |- | ||
| | ! ps1_netemu.self | ||
| colspan="2" {{no}} || MD5: ? || MD5: ? || MD5: ? || MD5: ? || | |||
|- | |- | ||
| | ! ps1_newemu.self | ||
| colspan="4" {{no}} || MD5: ? || MD5: ? | |||
|- | |- | ||
! ps1_rom.bin | |||
| colspan="4" {{no}} || MD5: ? || MD5: ? || | |||
| | |||
|} | |} | ||
== | === Game formats === | ||
See: [[PSISOIMG0000]] and [[Iso.bin.edat]] | |||
=== Savegames === | |||
*Location: /dev_hdd0/savedata/vmc | |||
== | |||
Note: capitalisation of filename is important: name it xxx.VM1 instead of xxxx.vm1 (e.g. Internal Memory Card.VM1 for PSX/PSone, Internal Memory Card.VM2 for PS2/PStwo) | Note: capitalisation of filename is important: name it xxx.VM1 instead of xxxx.vm1 (e.g. Internal Memory Card.VM1 for PSX/PSone, Internal Memory Card.VM2 for PS2/PStwo) | ||
The .VMx files appear to be raw memory card data: | The .VMx files appear to be raw memory card data: | ||
* [[ | * [[Game_Saves#Virtual_Memory_Card_PS1_.28.VM1.29 | .VM1 Playstation 1 Memory cards]] can be edited by [http://www.psdevwiki.com/files/devtools/MemcardRex/ MemcardRex] [[http://www.mediafire.com/?wf82vc4oeb932w3 MemcardRex v1.5]] | ||
* [[ | * [[Game_Saves#Virtual_Memory_Card_PS2_.28.VM2.29 | .VM2 Playstation 2 Memory cards]] can be edited by [http://www.psdevwiki.com/files/devtools/mymc/ mymc] [[http://www.csclub.uwaterloo.ca:11068/mymc/ mymc]] | ||
== Arguments == | == Arguments == | ||
Line 585: | Line 78: | ||
| argv[4] || unknown || 1200 || <!-- Screen Resolution... related ? --> | | argv[4] || unknown || 1200 || <!-- Screen Resolution... related ? --> | ||
|- | |- | ||
| argv[5] || unknown || 1 || | | argv[5] || unknown || 1 || Screen Upscaler ? (full/normal/off = 2/1/0) | ||
|- | |- | ||
| argv[6] || unknown || 0 || | | argv[6] || unknown || 0 || Screen Smoothing ? (on/off = 1/0) | ||
|- | |- | ||
|} | |} | ||
Line 595: | Line 88: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ps1_netemu.self arguments | |+ps1_netemu.self arguments | ||
! | ! 7 arguments !! Name !! Example !! Notes | ||
|- | |- | ||
| argv[ | | argv[0] || self starting location || dev_flash/ps1emu/ps1_netemu.self || | ||
|- | |- | ||
| argv[ | | argv[1] || ISO.BIN.EDAT location || || | ||
|- | |- | ||
| argv[ | | argv[2] || unknown || || | ||
|- | |- | ||
| argv[ | | argv[3] || unknown || || | ||
|- | |- | ||
| argv[ | | argv[4] || unknown || || | ||
|- | |- | ||
| argv[ | | argv[5] || unknown || || | ||
|- | |- | ||
| argv[ | | argv[6] || unknown || || | ||
|- | |- | ||
|} | |} | ||
Line 625: | Line 114: | ||
| argv[0] || self starting location || dev_flash/ps1emu/ps1_newemu.self || | | argv[0] || self starting location || dev_flash/ps1emu/ps1_newemu.self || | ||
|- | |- | ||
| argv[1] || VM1-1 | | argv[1] || VM1-1 location || dev_hdd0/savedata/vmc/filename1.VM1 || | ||
|- | |- | ||
| argv[2] || VM1-2 | | argv[2] || VM1-2 location || dev_hdd0/savedata/vmc/filename2.VM1 || | ||
|- | |- | ||
| argv[3] || Regionnumber/TargetID || 0082 || | | argv[3] || Regionnumber/TargetID || 0082 || | ||
Line 633: | Line 122: | ||
| argv[4] || unknown || 600 || | | argv[4] || unknown || 600 || | ||
|- | |- | ||
| argv[5] || | | argv[5] || unknown || null/empty || | ||
|- | |- | ||
| argv[6] || unknown || 1 || | | argv[6] || unknown || 1 || | ||
Line 643: | Line 132: | ||
|} | |} | ||
== PS1 games management in multiman == | ==Game settings== | ||
===Game settings hardcoded in PS1 emulators=== | |||
http://www.ps3hax.net/showpost.php?p=261592&postcount=1264 | |||
{{spoiler|TitleID settings hardcoded in ps1_emu.self|{{TitleID settings hardcoded in ps1_emu.self}}}} | |||
{{spoiler|TitleID settings hardcoded in ps1_netemu.self|{{TitleID settings hardcoded in ps1_netemu.self}}}} | |||
{{spoiler|TitleID settings hardcoded in ps1_newemu.self|{{TitleID settings hardcoded in ps1_newemu.self}}}} | |||
=== CONFIG === | |||
Created by the Emulator at path: /USRDIR/CONFIG | |||
Content: | |||
<pre> | |||
00000000 1C 00 00 00 50 53 31 45 6D 75 43 6F 6E 66 69 67 ....PS1EmuConfig | |||
00000010 46 69 6C 65 00 97 0A 54 04 00 00 00 01 00 00 00 File...T........ | |||
00000020 0F D4 CC B9 10 00 00 00 64 69 73 63 5F 6E 6F 00 ........disc_no. | |||
00000030 04 00 00 00 00 00 00 00 93 D1 5B F8 ..........[. | |||
</pre> | |||
{| class="wikitable" | |||
|- | |||
! Offset !! size !! data !! notes | |||
|- | |||
| 0x00 || 0x04 || 1C 00 00 00 || size of content | |||
|- | |||
| 0x04 || 0x14 || "PS1EmuConfigFile" || | |||
|- | |||
| 0x18 || 0x04 || 00 97 0A 54 || | |||
|- | |||
| 0x1C || 0x04 || 01 00 00 00 || | |||
|- | |||
| 0x20 || 0x04 || 0F D4 CC B9 || crc | |||
|- | |||
| 0x24 || 0x04 || 10 00 00 00 || size of content | |||
|- | |||
| 0x28 || 0x08 || "disc_no" || | |||
|- | |||
| 0x30 || 0x04 || 04 00 00 00 || amount of discs | |||
|- | |||
| 0x34 || 0x04 || 00 00 00 00 || disc number | |||
|- | |||
| 0x38 || 0x04 || 93 D1 5B F8 || crc | |||
|- | |||
|} | |||
==PS1 games management in multiman== | |||
=== Manual starting SELF method === | === Manual starting SELF method === | ||
#Insert PSX/PSone disc (region/pressed doesn't matter) | #Insert PSX/PSone disc (region/pressed doesn't matter) | ||
Line 652: | Line 189: | ||
#Select either one of the ps1 emulation SELF files | #Select either one of the ps1 emulation SELF files | ||
Note: Some games run better with ps1_emu.self (e.g. | Note: Some games run better with ps1_emu.self (e.g. Motal Kombat) while others run better with ps1_netemu.self (e.g. Resident Evil 3). If it doesn't work, try another ps1 emulation SELF file. | ||
Downside: memory card options are unavailable unless you created a Virtual Memorycard ''before'' starting MultiMAN (XMB::Category Game:: Memory Card Utility (PS/PS2) > Create a PS1 memory card. Set it to Slot 1 (Press Triangle while selecting the Memory Card, then Assign it). Note: naming it "Internal Memory Card" sometimes works better than other names. MultiMAN 02.07.07 seems to solve the savegame issues. | Downside: memory card options are unavailable unless you created a Virtual Memorycard ''before'' starting MultiMAN (XMB::Category Game:: Memory Card Utility (PS/PS2) > Create a PS1 memory card. Set it to Slot 1 (Press Triangle while selecting the Memory Card, then Assign it). Note: naming it "Internal Memory Card" sometimes works better than other names. MultiMAN 02.07.07 seems to solve the savegame issues. | ||
Line 663: | Line 200: | ||
=== Arguments handling=== | === Arguments handling=== | ||
From multiman.cpp source (line 2502) http://code.google.com/p/multiman/source/browse/source/multiman.cpp?r=8c5b662f1c54d4f95f646949cae3d033b15b1a2e | From multiman.cpp source (line 2502) http://code.google.com/p/multiman/source/browse/source/multiman.cpp?r=8c5b662f1c54d4f95f646949cae3d033b15b1a2e | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
{ | { | ||
char* launchargv[9]; | char* launchargv[9]; | ||
Line 696: | Line 233: | ||
*Notes: | *Notes: | ||
**The '''''full screen''''' commented argument seems to be the '''Upscaler''' setting available from XMB {{icon category settings}} ⇨ '''[Game Settings]''' ⇨ '''[PS/PS2 Upscaler]''', with values: '''full/normal/off = 2/1/0''' | **The '''''full screen''''' commented argument seems to be the '''Upscaler''' setting available from XMB {{icon category settings}} ⇨ '''[Game Settings]''' ⇨ '''[PS/PS2 Upscaler]''', with values: '''full/normal/off = 2/1/0''' | ||
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> | {{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> |