Emulation

From PS3 Developer wiki
Revision as of 16:59, 3 October 2011 by Euss (talk | contribs) (→‎Savegames)
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.

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