Emulation

From PS3 Developer wiki
Jump to navigation Jump to search

For backwards- and crossproduct compatibility, several files in dev_flash are available/used.

ps1emu

Note: not available in early Tool/DECR and Debug/DEX firmwares.

Files

 ps1_emu.self      (1.02++)
 ps1_netemu.self   (1.70++)
 ps1_newemu.self   (2.10++)
 ps1_rom.bin       (2.10++)   CRC32: D5FF6273 / CRC16: 111D (file is same as in 3.72 and all versions in between)
  • 1.70:
    • Added the ability to play original PlayStation format games downloaded from the PlayStation Store.
    • Added rumble functionality for USB accessories which support it when playing PS2 games.
    • Saved data from PlayStation format software now usable on both PSP and PS3 systems.
    • Backwards compatibility for PS1 and PS2 games was improved.
  • 2.10:
    • Users can now play PlayStation game discs on a PSP with remote play (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).

Note: since 2.10++ all 3 ps1 emulators, ps1_emu.self, ps1_netemu.self, ps1_newemu.self uses the since then added ps1_rom.bin biosfile.

hashes

ps1_emu.self
FW MD5 Note
1.02 c656b842d872e0815d2aaad026908da3
1.10 5e2282040a9eb7730b62eb96f21a6f94
1.11 54a8c4b3466c0165a4b170fd83b4d1e4
1.30 72d19068a9479ee6b6757806353e6c3d
1.31 044da58856359c94bb92e28712ce0bab
1.32 7061d1989c98553a414c19a6a46f61ef
1.50 300ee8e8b128b29cd87b10658571e657
1.51 2934a8d0d0886665666d4ea2db9f7af2
1.54 7bdaf16ad21f16d9410aca13a294251d
1.60 bf39536e7aea712a532cffd08c9605b8
1.70 d83eca64a8529821a13b388341d39b14
1.70 Debug/DEX b094ea054830d49f8ead4d4adda7b2bc
1.80 3695804dae4bc106a0830a9485aae7a9
1.80 Debug/DEX 233cc0e9b12510ca0dc51b5df50e6bd6
1.81 a5c0c2b4764b0cbda17381734ee95358
1.82 aeadbdc9d923ee32f6ad706638725cf3
1.90 8ab19e6b87e81e04b5b99fd5a6cf48fd
1.92 19400edd711c6c1fe9be3a6f1221a985
1.92 Debug/DEX 3caa7ef05bb0d728a3511c6497e4c8c3
1.93 aa33a9426b351699ff68fead221982f3
1.94 da4f0a9a7f57424c4b0eb269f78a5159
2.00 c4677412d54726cba59901fbafff7d38
2.00 Debug/DEX f5509b391ded1d4c254574d73768f65c
2.01 4ef410f7b5ada86d10394aea087cdcde
2.10 6451118515eb87fe9d3ce5d465d28a12
2.10 Debug/DEX a434b978f24430247a03c5bba271e3c0
2.15 Debug/DEX 5d4236e27aa89e50791e6faa66c79c3f
2.16 f2f1f98e45dd2b3b71e71b52ab1c9615
2.17 c47bc00aee4b8f710e4e9ff050d0296a
2.17 Debug/DEX a1f3382ad0135caed85c19cccb1178b8
2.20 fd0e3694d0374e29e22db6353b464023
2.20 Debug/DEX 204f3e5dccf7c97d9af0a87a8f7d0357
2.30 cd6a4f270095038630359c34b77e236c
2.30 Debug/DEX f3cac1526a389698750f4bf56c68bc89
2.35 d498c31a9c4c3f0516d7cc76d016a2e7
2.36 08761183c9033e206e01d23311a0e509
2.36 Debug/DEX 68f66590a6158553dbac68bd571cad9b
2.40 b9eb72f6c206b63f3fd7798e3bdbceef
2.40 Debug/DEX 6e84da787764c8705da49f88b5d30dc0
2.41 dc19c9d04779efb3d50b56db4014977d
2.41 Debug/DEX e039699f3ef78ba27da3bcb753e562d6
2.42 089c0f8f7acef16304535a68c4f81396
2.42 Debug/DEX 782f2842e962953902a06d15e75dbb59
2.43 39ddd13267ffd5a525b78faf4a4755e2
2.50 cfcc49badf8f70591f1cf2941cda9047
2.52 310fa01a09c8af7d119cd248a61ffac0
2.52 Debug/DEX 00920acc54ce523a831cae5edb6585f8
2.53 6b7de028cf362575451790a31ce4d391
2.53 Debug/DEX 9acaa6b97a9b8c407f1ef0c8d1526b02
2.60 9a34496d1dd92b150e8c03388d1aa856
2.60 Debug/DEX 5ee911524e23974da25f2e1ef73b0fc3
2.70 3aa6ab5140f666c23c5e4efdd988f374
2.70 Debug/DEX 2a4876d9214234839c2413fbedc66d63
2.76 511d6b676cdceba3600de5ba465fd05e
2.76 Debug/DEX b04cdde6e4b8c9cdcf0324505c056389
2.80 c869d36800e9843a93fdf8e895f1239b
3.00 d630dd9e851ca3fc620a29ff87229cdf
3.00 Debug/DEX 600538836083b722c118e823fe0ce9b6
3.01 875bd447fa910103dd24cf90b93df8a1
3.01 Debug/DEX 1ef3f962e69a972f91ff3b5e3ce26cd2
3.10 a0bfdcc73bc1e3ccb6ddf23e09d2c348
3.10 Debug/DEX 2710b3ddc32a2f05a035e6090b3e7d03
3.15 0cac7feeea410fcf0316447ce90a4818
3.15 Debug/DEX d56ba64e17e893f6456febceaeb135a5
3.21 93489fda874ac03adb125b874c6d4c3f
3.21 Debug/DEX 7b179af6ad526ac986df3ebd6c7828fa
3.30 941bfbc36388cd9a317af7a8f7b0e369
3.20 Debug/DEX 958e5c97080bf71de37efc89ce96acf6
3.40 9f4571a5bf3972d9be3070e1409c34a1
3.41 BAD 3f82776340844a790122baca413e5858
3.41 FIX 3f82776340844a790122baca413e5858
3.41 Debug/DEX 6e23a8facffbbe4d6ab8f398108d7241
3.42 5e64ef4af2fd05dc59439a7cb513767e
3.50 6d1afa5546e5cea928a9b1cd8f022411
3.55 87a6f1845e7b623627448db09e1db413
3.55 Debug/DEX 1824c1ecf9d1b5ca492935ef594a448a
3.56 BAD cb4ac012f62f43b7ead5f63785e86827
3.56 FIX af4ebc9c12f7439289ebde7dbde80eea
3.65 df89982c6247ebc5b4fdca57dd86c51f
3.72 0bdff1c7ff965f7f60ddbe9a4adb7d0e
ps1_netemu.self
FW MD5 Note
1.70 bc2f923e733bb35211568bc021a6ba3b
1.80 bfab49b77c0ab1602c0351adb90459de
1.81 1a7d9feae27ed65eeb65ec42d262a090
1.82 7ce12ddf05c1a12de1940ec5cad00dfb
1.90 571b154a66f9ba5e5c908fc0588da340
1.92 96e5f33f75b6122cb43d06848d23a1a5
1.93 abd4320ed586777bdaee9975638db6ff
1.94 5cccb786aad619cf65049b8ceb37fe44
2.00 cd9ce1e7096d07029db107a3369557db
2.01 fbadbe348ba2ff0424edf7a72a6f8cab
2.10 aa7cd946d36cdfc44fb827fe5d26dc47
2.17 44cf7cca74628712b11a47b2328be9aa
2.60 29e4c302a6411c48aff06ab976d789bd
2.70 0aa4a5b1a74cf03e7a0be87aca6859b8
2.76 37c5563fb77194bc1b18e8210d03a4e6
3.00 3663392b6be24d9602121542b60b9976
3.01 bab7c89e240c18f8b5460418a77a60e7
3.10 464c1647df9a1be080bfe49063b31a9b
3.15 f1f0e60f5a05db292d3089894c4445bd
3.21 490403573e68ca798a3856f976f9182d
3.30 a55aa5d654a05e0a992c56f36fd2d4e7
3.40 555a57d2494f879976ff36217fbf62db
3.41 BAD 1e28c61c6756856fab6fdb2f953672d8
3.41 FIX 1e28c61c6756856fab6fdb2f953672d8
3.42 0976465bc64054a794e83ceca2137d5c
3.50 c45ae95868e1dc220cc8780ec368211d
3.55 44a86f3981a1b51b7f621a459b5b4f9e
3.56 BAD b16054849c77716985ee0880be9b0251
3.56 FIX fa9ea14113762f8792ab12afa0a34420
3.65 df89982c6247ebc5b4fdca57dd86c51f
3.72 3a169ae2cd72d87e3e7376bfb92c4f8c
ps1_newemu.self
FW MD5 Note
2.10 421812e9f1894e31d8741f945cd1c1f7
2.17 a83914a0432f781470186d4786e8ccd2
2.60 bf11b806a4aff3dbfbf5dc08efe7320e
2.70 b08f853fd20a73179a07887c3d4365cc
2.76 d8b35b2fc2ff065bae16448fb56c7c05
3.00 cb015dec30c54dfda6dd305f5785a677
3.01 fadcfd75e85c95b412906464cbc288bb
3.10 fc195cf6e47f8a5a76277f7ef9d1922a
3.15 deb1c134f04560a8403b2008e2ecde75
3.21 b72bc165662beb2ff95cf348c5227439
3.30 427b6e67e3ff4238003e6c479b27d4cc
3.40 0466721e81870594fcc4d155708d919e
3.41 BAD 90f15cb10f32c35c144b13dea84bca0a
3.41 FIX 90f15cb10f32c35c144b13dea84bca0a
3.42 5c423b64d286beb1740e7af39d151416
3.50 b8996b41e5c26a4add1644191fd22624
3.55 aaf9f916146274d684205f3db893e45a
3.56 BAD b31b881e6bc5e3447ae6617689d0a6d5
3.56 FIX 396523d47b6f27977b4082ca95c41fc5
3.65 27302089f7baa6895e0f5bc9fd1d8c55
3.72 18ee6a06499c14642b00a6b9b8903edd

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)

Regioning

PS1
DiscID's
PS1
Region
PS3
SKU suffix
PS3
TargetID's
SLPS
SLPM
SIPS
PAPX
PCPX
NTSC-J
(Japan and Asia)
00 (Japan)
05 (South Korea)
06 (Singapore / Malaysia)
07 (Taiwan)
09 (China)
12 (Hong Kong)
0x83
0x86
0x8A
0x8B
0x8D
SLUS
SCUS
SCUD
SLUD
PBPX
LSP
NTSC-U/C
(North America)
01 (North America)
11 (Mexico)
0x84
0x88
SLES
SCES
SCED
SLED
PAL
(Europe and Oceania)
02 (Australia / New Zealand)
03 (U.K. / Ireland)
04 (Europe / Middle East / Africa)
08 (Russia / India)
0x89
0x87
0x85
0x8C

DiscID explained

  • The first letter indicates the storage format (always S=CD/DVD for PSX/PSone and PS2/PStwo, for PS3 it is B=Bluray).
  • The second letter indicates if the game is first party (C = Sony), or licensed from third party (L = others).
  • The third letter indicates: A=Asia, P or J=Japan, U=United States, or E=Europe.
  • The last letter indicates the type: D = Demo, S = Game, M = ?.

Note that for some third party games, Sony may take it and repackage with appropriate material for other territories, thus the game become first party as well.

Resolution

PSX Native resolution

Games are always 4:3 with any resolution between 640x480 NTSC / 640x512 PAL (the bios initialisation screen) and lower:

  • Horizontal: 256 (rare e.g. Dragon Warrior VII), 320, 368 (occasionally 384 e.g. SF Zero 3 but not X-Men vs SF which was shrunk to 368), 512 or 640
  • Vertical: 240 (NTSC), 256 (PAL), 480 (NTSC), 512 (PAL)

Tekken 3 uses a strange pixel area of 368x480. Regardless of the screen area, the aspect ratio is still 4:3 for all PlayStation games. Very common resolutions : 320x240 for NTSC and 320x256 for PAL.

PS2 Native Resolution

Video output resolution: variable from 256x224 to 1280x1024 pixels

PS/PS2 Upscaling & smoothing

Options added to XMB since 1.80++ Both options can be set individually.

PS/PS2 upscaling:

  • Off - Disable upscaled output.
  • Normal - Upscale and display at a size that matches the screen size (keep 4:3 aspect ratio)
  • Full - Upscale and display at full screen by changing proportions and stretching the image (to widescreen)

PS/PS2 smoothing:

  • Off - Disable smoothing
  • On - Use smoothing to reduce the roughness of the displayed image (note: when titles that support progression scan have this option turned on, they revert back to 480p with no alterations)

Samples: http://uk.ps3.ign.com/articles/793/793775p1.html


Manual starting SELF method

  1. Insert PSX/PSone disc (region/pressed doesn't matter)
  2. Start MultiMAN (e.g. 2.07.01++)
  • Since 02.07.05 the PSX and PS2 discs are properly detected. PSX discs will show in XMB Game Column and you can launch the PS1 game from there. It uses ps1_emu.self default (you can choose Load or Load (Net), latter uses ps1_netemu).
  1. Switch to filemanager mode
  2. Browse to /dev_flash/ps1emu
  3. Select either one of the ps1 emulation SELF files

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.

Changes in MultiMAN 2.07.00/01 for ps1_emu handling

These options where needed to make above work:

  • Added: LV2 access rights to use LV1 Storage Manager (syscall 864)
  • Added: LV1 patch for user access to sys_storage functions (syscalls 600 to 623)

ps2emu

Simplified block diagram of a PS2
source

Note: not available in early Tool/DECR and Debug/DEX firmwares.

Files

 ps2_emu.self       (1.02++)
 ps2_gxemu.self     (1.50++)
 ps2_softemu.self   (1.90++)


Mountpoints

 dev_ps2disc
 dev_ps2disc1 


LPAR / AUTH ID's

Name Auth ID Self
(/dev_flash/ps2emu)
Notes
PS2_LPAR 0x1020000003000001 ps2_emu.self
*SCE_CELLOS_SYSTEM_MGR_PS2 0x107000001D000001
PS2_GX_LPAR 0x1020000003000001 ps2_gxemu.self
*SCE_CELLOS_SYSTEM_MGR_PS2_GX 0x107000001D000001
PS2_SW_LPAR 0x1020000003000001 ps2_softemu.self
*SCE_CELLOS_SYSTEM_MGR_PS2_SW 0x107000001D000001

boot_ps2

http://foxbrew.org/ps3/otheros-utils/boot_ps2.git
boot_ps2-src.rar (1.43 KB)
boot_ps2.pkg (69.17 KB)


Difference Emulator Usage

PS2_GX
Core Job Source Notes
SPU0 IOP SPU ASM
SPU1 DMA SPU ASM
SPU2 Isolation C++ Raw SPU Used for MagicGate Encryption and others (?)
SPU3 IPU SPU ASM
SPU4 GFIF SPU ASM
SPU5 PS2-SPU2 C++ about 50% load average
SPU6 VU1 SPU ASM
SPU7 - - Unavailable: Factory disabled SPU
PPU:0 PS2-Devices C++ and PPU ASM
PPU:1 Emotion Engine C++ and PPU ASM
PS2-GS Graphic Synthesizer Hardware PS2-GS Present in CECHC/COK-002
PS2 (GS+EE)
Core Job Source Notes
SPU0 IOP SPU ASM
SPU2 Isolation C++ Raw SPU Used for MagicGate Encryption and others (?)
- DMA Hardware PS2-EE
- VU1 Hardware PS2-EE
- IPU Hardware PS2-EE
- GFIF Hardware PS2-EE
SPU5 PS2-SPU2 C++ about 50% load average
SPU7 - - Unavailable: Factory disabled SPU
PPU:0 PS2-Devices C++ and PPU ASM
PPU:1 - - unused?
PS2-EE Emotion Engine Hardware PS2-EE Present in CECHA/COK-001 and CECHB/COK-001
PS2-GS Graphic Synthesizer Hardware PS2-GS Present in CECHA/COK-001 and CECHB/COK-001
PS2 Software
problematic, see Mathieulh quoted below
 The main issue here is that it's mostly not doable to emulate the GS efficiently with the rest
 of the hardware because the RSX is just not meant for this task and cannot emulate the GS on 
 its own while all the available SPUs and the PPU are already mostly fully used to emulate the 
 rest of the playstation 2 hardware, this explains why sony never could finish the ps2_softemu 
 and that it reached a stalling step.

 I honestly have no idea on how it would be possible to get over the ps3 hardware limitations to
 perform a full ps2 emulation without any of the ps2 hardware present on the console, one thing 
 for sure is that the emulator would have to be entirely rewritten and optimized like no other 
 ps3 software has been.

pspemu

Used for PSPMini's

Files

 psp_emulator.self     (3.15++)
 psp_translator.self   (3.15++)
 \flash0               (3.15++)
 \release              (3.15++)