#14960·pcsx2

[BUG]: EyeToy only checks first Camera Device ( + Solution)

Author: GraviatiusCreated Sep 15, 2026Updated Sep 15, 2026
LabelsBugUSB

Describe the Bug

If you have more than 1 Camera on your device, the initialization of the Cam fails, if its not the first one in order from your machine. This happens, because it goes through the machines cameras in order, checks if its the one that is configured in the setting, and if not it breaks out of the loop, instead of continuing. (in: cam-windows.cpp - DirectShow::InitializeDevice) I made a personal build and changed the "if (!selectedDevice.empty() && selectedDevice != var.bstrVal){ break;}" to a continue; and everything worked perfectly

Reproduction Steps

Have 2 or more Cameras connected to you pc (or in my case: an Avermedia capture card) and select a cam for EyeToy, that is not first in order. It will fail to initialize the camera.

Expected Behavior

If you have more than 1 camera connected, it should always correctly start the one that has been configured in the settings. Not give up after checking if the first one is the right one

PCSX2 Revision

v2.9.53

Operating System

Windows 11

If Linux - Specify Distro

No response

Logs & Dumps

Log how it is currently: [ 381.1984] EyeToy : configured for MPEG format [ 381.2423] EyeToy : Image width : 320 [ 381.2583] EyeToy : Image height : 240 [ 381.2819] EyeToy : mirroring OFF [ 381.3014] EyeToy : mirroring OFF [ 381.3029] EyeToy : mirroring OFF [ 381.3030] EyeToy : mirroring OFF [ 381.3219] EyeToy : mirroring OFF [ 381.4217] EyeToy : mirroring ON [ 381.4818] EyeToy : Image width : 320 [ 381.4821] EyeToy : Image height : 240 [ 381.5005] EyeToy : configured for MPEG format [ 381.5604] EyeToy : Image width : 320 [ 381.5607] EyeToy : Image height : 240 [ 381.6205] EyeToy : Image width : 320 [ 381.6208] EyeToy : Image height : 240 [ 381.6417] EyeToy : mirroring ON [ 381.6622] EyeToy : initialization done; start the camera [ 381.6625] EyeToy : eyetoy_open(); hw=1, w=320, h=240, fmt=0, mirr=1 [ 381.6726] Camera: 'Elgato Facecam Neo' [ 381.6728] Camera: cannot find 'OBS Virtual Camera' [ 381.6730] (Eyetoy) Failed to open video device

Log with a continue, instead of a break: [ 14.4435] EyeToy : LED : 0 [ 14.4456] EyeToy : mirroring OFF [ 14.4640] EyeToy : mirroring OFF [ 14.4657] EyeToy : mirroring OFF [ 14.4658] EyeToy : mirroring OFF [ 14.4845] EyeToy : mirroring OFF [ 14.5844] EyeToy : mirroring ON [ 14.6448] EyeToy : Image width : 320 [ 14.6451] EyeToy : Image height : 240 [ 14.6632] EyeToy : configured for MPEG format [ 14.7231] EyeToy : Image width : 320 [ 14.7234] EyeToy : Image height : 240 [ 14.7613] EyeToy : mirroring OFF [ 14.7651] EyeToy : mirroring OFF [ 14.7665] EyeToy : mirroring OFF [ 14.7831] EyeToy : mirroring OFF [ 14.7854] EyeToy : mirroring OFF [ 14.8854] EyeToy : mirroring ON [ 14.9631] EyeToy : Image width : 320 [ 14.9633] EyeToy : Image height : 240 [ 14.9647] EyeToy : configured for MPEG format [ 15.0240] EyeToy : Image width : 320 [ 15.0243] EyeToy : Image height : 240 [ 15.0842] EyeToy : Image width : 320 [ 15.0845] EyeToy : Image height : 240 [ 15.1212] EyeToy : mirroring ON [ 15.1261] EyeToy : initialization done; start the camera [ 15.1263] EyeToy : eyetoy_open(); hw=1, w=320, h=240, fmt=0, mirr=1 [ 15.1351] Camera: 'Elgato Facecam Neo' [ 15.1353] Camera: 'DroidCam Source 2' [ 15.1354] Camera: 'OBS Virtual Camera' [ 15.1512] Camera: GetStreamCaps min=320x240 max=320x240, fmt=db6fc9f0 [ 15.1514] Camera: GetStreamCaps min=320x240 max=320x240, fmt=db6fc9f0 [ 15.1515] Camera: GetStreamCaps min=320x240 max=320x240, fmt=db6fc9f0