Emulation

From PS3 Developer wiki
Revision as of 09:54, 30 September 2011 by Euss (talk | contribs) (→‎ps2emu)
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++)

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

block diagram of a real PS2

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


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++)