Pcsx2: EyeToy Play(1-3) - the video sent by the USB plugin isn't shown

Created on 31 May 2020  路  10Comments  路  Source: PCSX2/pcsx2

PCSX2 version:

  • v1.7.0-dev-60-g802318399

PCSX2 options:

  • default

Plugins used:

Description of the issue:
The attached plugin emulates an EyeToy. The following games works:

Bob the Builder
Clumsy Shumsy
EyeToy - Kinetic
EyeToy - Kinetic Combat
Nickelodeon SpongeBob SquarePants - Movin' with Friends
Sega Superstars

but EyeToyPlay(1-3) doesn't. Observation which may be or not related : PCSX2 shows IPU1 running when IPU1 DMA disabled! CHCR 1 QWC 126.

snap4

How to reproduce the issue:

  • Install USBqemu-wheel-0.10.0, configure it to emulate an EyeToy and load EyeToyPlay(1)

All 10 comments

Nobody? 馃槥 The EyeToy plugin is ready

That IPU error is common on many games and so far no solution has been found.

If there are no on-screen artifacts with the error, then this can be closed. As prafull said, it's very common to see.

artifacts? the decoder fails on the spot

the ticket was updated to reflect the progress

@turtleli i understand that you are an IPU master. would you mind taking a look at this?

I'm not an IPU master. I know almost nothing about it.

I'm not an IPU master. I know almost nothing about it.

damn. RedDevilus lied to me.

damn. RedDevilus lied to me.

_Isnt IPU more turtleli stuff?_ what i said
I wasn't sure, if you look at IPU.cpp then turtleli has worked on it

@seta-san had the idea to patch EyeToy1 to use ipu_decompressRGB instead of ipu_decompressYCrCb and the game finally displays something :

Serial = SCES-51513
[patches = C0FCD1CE]
    // replace decompressYCrCb with decompressRGB
    patch=0,EE,0015cc80,word,16620033
[/patches]

The color issue is expected considering that it uses an incorrect function to decode the frames.
My observations are that:

  1. "IPU1 running when IPU1 DMA disabled" isn't observed while the patch is applied.
  2. ipu_decompressRGB function is 3 times shorter than ipu_decompressYCrCb : 0x1A8 bytes vs 0x4F4 bytes
  3. ipu_decompressRGB contains a single sceIpuSync call, but ipu_decompressYCrCb contains 6 sceIpuSync calls
  4. GameIndex.dbf contains a few sceIpuSync patches; sceIpuSync isn't properly emulated??

The idea is that ipu_decompressRGB is shorter and it works, unfortunately we need ipu_decompressYCrCb which is more complex and it fails:

1
2

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mirh picture mirh  路  6Comments

RinMaru picture RinMaru  路  5Comments

backgamon picture backgamon  路  5Comments

bryc picture bryc  路  5Comments

Nezarn picture Nezarn  路  6Comments