Template:PS2 emulators workload comparison: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(moved from PS2 Emulators page. The comment from math should be moved out of the table at some point... also the table needs an small rebuild to specify the explicit emulators filenames)
 
No edit summary
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
|+PS2 emulators workload comparison {{ed right|PS2 emulators workload comparison}}
|+{{ed right|PS2 emulators workload comparison}}
! colspan="4" | PS2 (GS+EE)
! colspan="4" | PS2 (GS+EE)
|-
|-
! Core !! Job !! Source !! Notes
! Core !! Job !! Source !! Notes
|-
|-
| SPU0 || IOP || SPU ASM ||  
| SPU0 || Spu2 || SPU Assembly || Spu2 emulator
|-
|-
| - || DMA || Hardware [[CXD2953AGB]] || Only in [[CECHAxx]] and [[CECHBxx]] PS3 models with [[COK-00x|COK-001]] motherboard
| SPU1 || Sif || SPU Assembly || Some kind of bridge to IOP, since SIF is part of EE hardware.
|-
|-
| SPU2 || Isolation || C++ Raw SPU || Used for MagicGate Encryption and others (?)
| SPU2 || Timer || SPU Assembly || IOP timers.
|-
|-
| - || IPU || rowspan="2" | Hardware [[CXD2953AGB]] || rowspan="2" | Only in [[CECHAxx]] and [[CECHBxx]] PS3 models with [[COK-00x|COK-001]] motherboard
| SPU3-6 || - || - || Unknown, emulator seems to not use them
|-
|-
| - || GFIF
|-
| SPU5 || PS2-SPU2 || C++ || about 50% load average
|-
| - || VU1 || Hardware [[CXD2953AGB]] || Only in [[CECHAxx]] and [[CECHBxx]] PS3 models with [[COK-00x|COK-001]] motherboard
|-{{cellcolors|lightgrey}}
| SPU7 || - || - || Unavailable: Factory disabled SPU
| SPU7 || - || - || Unavailable: Factory disabled SPU
|-
|-
| PPU:0 || PS2-Devices || C++ and PPU ASM ||
| PPU:0 || PS2-Devices || C++ and PPU ASM ||
|-
|-
| PPU:1 || - || - || unused?
| PPU:1 || IOP || PPU ASM || Interpreter, dmas, iop hw regs, etc.
|-
|-
| PS2-EE || Emotion Engine || rowspan="2" | Hardware [[CXD2953AGB]] || rowspan="2" | Only in [[CECHAxx]] and [[CECHBxx]] PS3 models with [[COK-00x|COK-001]] motherboard
| PS2-EE || Emotion Engine || rowspan="2" | Hardware [[CXD2953AGB]] || rowspan="2" | Only in [[CECHAxx]] and [[CECHBxx]] PS3 models with [[COK-00x|COK-001]] motherboard
Line 33: Line 27:
! Core !! Job !! Source !! Notes
! Core !! Job !! Source !! Notes
|-
|-
| SPU0 || IOP || SPU ASM ||  
| SPU0 || IOP || SPU ASM || I/O Processor (originally PS1 main processor)
|-
|-
| SPU1 || DMA || SPU ASM ||  
| SPU1 || PS2-SPU2 || SPU ASM || Sound processing unit 2
|-
|-
| SPU2 || Isolation || C++ Raw SPU || Used for MagicGate Encryption and others (?)
| SPU2 || IPU || SPU ASM || Image Processing Unit
|-
|-
| SPU3 || IPU || SPU ASM ||  
| SPU3 || VU1 || SPU ASM || Vector Unit 1
|-
|-
| SPU4 || GFIF || SPU ASM ||  
| SPU4 || EEDMA || SPU ASM || EE DMA plus VIF1 handler
|-
|-
| SPU5 || PS2-SPU2 || C++ || about 50% load average
| SPU5 || GSGIF || SPU ASM || GIF (GS Interface, very limited since GS is on board)
|-
|-
| SPU6 || VU1 || SPU ASM ||
| SPU6 || ? || ? || Emulator never access it directly but can be possibly used for MagicGate. Emulator sends/receives MG data thru virtual uart port 10.
|-{{cellcolors|lightgrey}}
|-{{cellcolors|lightgrey}}
| SPU7 || - || - || Unavailable: Factory disabled SPU
| SPU7 || - || - || Unavailable: Factory disabled SPU
Line 56: Line 50:
|-
|-
! colspan="4" | PS2 Software
! colspan="4" | PS2 Software
|-
| colspan="5" | problematic, see Mathieulh quoted below
<pre>
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.
</pre>
|-
|-
! Core !! Job !! Source !! Notes
! Core !! Job !! Source !! Notes
|-
|-
| SPU0 || IOP || SPU ASM ||  
| SPU0 || IOP || SPU ASM || I/O Processor (originally PS1 main processor)
|-
| SPU1 || EEDMA || SPU ASM ||
|-
|-
| SPU2 || Isolation || C++ Raw SPU || Used for MagicGate Encryption and others (?)
| SPU1 || SPU2 || SPU ASM || Sound Processing Unit 2
|-
|-
| SPU || GSE || SPU ASM || Graphic Synthesizer <!-- this row should be deleted because the GSE job is made by SPU4 ? -->
| SPU2 || VU1 || SPU ASM || Vector Unit 1
|-
|-
| SPU3 || IPU || SPU ASM ||  
| SPU3 || EEDMA || SPU ASM || Emotion Engine DMA Controller
|-
|-
| SPU4 || GSEGFIF || SPU ASM ||  
| SPU4 || GSEGIF || SPU ASM || GIF
|-
|-
| SPU5 || PS2-SPU2 || C++ ||
| SPU5 || GSE || SPU ASM ||
|-
|-
| SPU6 || VU1 || SPU ASM ||
| SPU6 || IPU || SPU ASM || Image Processing Unit
|-{{cellcolors|lightgrey}}
|-{{cellcolors|lightgrey}}
| SPU7 || - || - || Unavailable: Factory disabled SPU
| SPU7 || - || - || Unavailable: Factory disabled SPU
Line 99: Line 77:
! Core !! Job !! Source !! Notes
! Core !! Job !! Source !! Notes
|-
|-
| SPU0 || IOP || ||  
| SPU0 || IOP || SPU ASM || I/O Processor (originally PS1 main processor)
|-
| SPU1 || SPU2 || SPU ASM || Sound processing unit 2 (originally SPU from PS1)
|-
|-
| SPU1 || SPU2 || ||  
| SPU2 || VU1 || SPU ASM || Running VU1 code translated previously on PPU side.
|-
|-
| SPU2 || VU1 || ||  
| SPU3 || EEDMA || SPU ASM || Partial DMAC, mostly channels 1/2, and VU1 CODE r/w. Also process VIF1 commands (incl. Unpacks).
|-
|-
| SPU3 || EEDMA || ||  
| SPU4 || FE || SPU ASM || GIF unit, processing GIF tags, handling GS internal registers, etc.
|-
|-
| SPU4 || FE || ||  
| SPU5 || BE || SPU ASM ||  
|-
|-
| SPU5 || BE || ||
| SPU6 || IPU || SPU ASM || EE Image Processing Unit
|-{{cellcolors|lightgrey}}
| SPU7 || BE || PPU/SPU ASM || Factory disabled SPU. Emulator set name for JOB, but never try to start/set it as active. Although a lot of code in emulator is ready to use it.
|-
|-
| SPU6 || IPU || ||
| PPU:0 || - || - ||
|-
|-
| SPU7 || BE || || <!-- Factory disabled SPU ? -->
| PPU:1 || Emotion Engine || C++ and PPU ASM ||
|-
|-
|}<noinclude>[[Category:Templates]]</noinclude>
|}<noinclude>[[Category:Templates]]</noinclude>

Latest revision as of 17:28, 2 December 2024

PS2 (GS+EE)
Core Job Source Notes
SPU0 Spu2 SPU Assembly Spu2 emulator
SPU1 Sif SPU Assembly Some kind of bridge to IOP, since SIF is part of EE hardware.
SPU2 Timer SPU Assembly IOP timers.
SPU3-6 - - Unknown, emulator seems to not use them
SPU7 - - Unavailable: Factory disabled SPU
PPU:0 PS2-Devices C++ and PPU ASM
PPU:1 IOP PPU ASM Interpreter, dmas, iop hw regs, etc.
PS2-EE Emotion Engine Hardware CXD2953AGB Only in CECHAxx and CECHBxx PS3 models with COK-001 motherboard
PS2-GS Graphic Synthesizer
PS2_GX
Core Job Source Notes
SPU0 IOP SPU ASM I/O Processor (originally PS1 main processor)
SPU1 PS2-SPU2 SPU ASM Sound processing unit 2
SPU2 IPU SPU ASM Image Processing Unit
SPU3 VU1 SPU ASM Vector Unit 1
SPU4 EEDMA SPU ASM EE DMA plus VIF1 handler
SPU5 GSGIF SPU ASM GIF (GS Interface, very limited since GS is on board)
SPU6 ? ? Emulator never access it directly but can be possibly used for MagicGate. Emulator sends/receives MG data thru virtual uart port 10.
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 CXD2972GB Only in CECHCxx PS3 models with COK-002 motherboard
PS2 Software
Core Job Source Notes
SPU0 IOP SPU ASM I/O Processor (originally PS1 main processor)
SPU1 SPU2 SPU ASM Sound Processing Unit 2
SPU2 VU1 SPU ASM Vector Unit 1
SPU3 EEDMA SPU ASM Emotion Engine DMA Controller
SPU4 GSEGIF SPU ASM GIF
SPU5 GSE SPU ASM
SPU6 IPU SPU ASM Image Processing Unit
SPU7 - - Unavailable: Factory disabled SPU
PPU:0 PS2-Devices C++ and PPU ASM
PPU:1 Emotion Engine C++ and PPU ASM
PS2 Netemu
Core Job Source Notes
SPU0 IOP SPU ASM I/O Processor (originally PS1 main processor)
SPU1 SPU2 SPU ASM Sound processing unit 2 (originally SPU from PS1)
SPU2 VU1 SPU ASM Running VU1 code translated previously on PPU side.
SPU3 EEDMA SPU ASM Partial DMAC, mostly channels 1/2, and VU1 CODE r/w. Also process VIF1 commands (incl. Unpacks).
SPU4 FE SPU ASM GIF unit, processing GIF tags, handling GS internal registers, etc.
SPU5 BE SPU ASM
SPU6 IPU SPU ASM EE Image Processing Unit
SPU7 BE PPU/SPU ASM Factory disabled SPU. Emulator set name for JOB, but never try to start/set it as active. Although a lot of code in emulator is ready to use it.
PPU:0 - -
PPU:1 Emotion Engine C++ and PPU ASM