58
IIDX Camera Hook
bicarus edited this page 2026-01-05 04:47:06 -08:00

This page is about IIDX Cam Hook (-iidxcamhook) option for IIDX 27+.

For IIDX25/26, information on this page does not apply. Instead, just plug in your webcam, enable IIDX Use Official AC Cams (-iidxcabcams), and see if the game will detect your cameras. Very few off-the-shelf webcams will work, YMMV.

Requirements

Version requirements

IIDX Cam Hook (-iidxcamhook) option only works for IIDX27 and up. Both LDJ and TDJ modes will work.

DLL requirements

Camera hook works differently from other I/O emulation - spice has to hijack DirectX9 textures and inject the webcam video feed into it, which requires patching the game. spice2x will attempt to automatically patch the game, so most DLLs should work, although with notable exceptions:

  • IIDX 30 003 does not support camera at all as camera functionality is completely disabled in this version of the game. To fix this, get a different DLL variant of IIDX 30.
  • For IIDX 27, only the final datecode is supported out of the box, you'll need to find offsets on your own for older versions.

Camera (webcam) requirements

  • Most modern USB webcams made in the last 10 years should work, as long as it supports YUY2 or NV12 format.
  • Some software camera emulators will work, while others will not. Devices must show up in Windows Media Foundation in order for Spice to access them.

If your real / fake camera is not supported, look into 2dxcamhook instead which uses another protocol (Spout).

Steps to enable

  1. Plug in your webcam.
  2. In spicecfg, in Advanced tab, enable IIDX Cam Hook.
  3. In Overlay tab, bind a key to Toggle Camera Control.
  4. Launch game, and let the game load.
  5. Press the key you previous bound to bring up Camera Control window.
  6. Adjust camera settings as needed.

FAQ

Camera is not detected in game or test menu

Check the log for messages from camhook or tdjcam. Most likely, your DLL is not supported.

My DLL is not supported?

If you know the offsets for your DLL, you can override them using IIDX Cam Hook Offset Override (-iidxcamhookoffset) option. Take a look at this repo for examples.

My camera is cut off / squished / wrong aspect ratio

Bring up the camera control overlay and change the draw settings.

I want to flip / rotate / mirror my camera image

As of version 24-09-14 this is possible to do in the Camera Control overlay.

Note: IIDX Camera Order Flip (-iidxflipcams) does not "flip" your camera image, it's for changing which of your cameras is used for FRONT vs. TOP camera.

Image is low resolution / low FPS

Bring up the camera control overlay and change the resolution/framerate settings.

I'm trying to display only my controller but the top camera view is cut off

One of the camera layout option in game is to only display the control deck. This needs a manual "focus". Go to test menu, I/O Check, Camera Check and change the TRIMMING value until the red box is located where you desire.

What I see in Test Menu and in-game are completely different

It's to be expected, the game just does that - namely, the displayed aspect ratio is different. Adjust aspect ratio and cropping options during the song in the camera overlay menu.

Camera options in test menu (green sliders) do not work

This is by design. Use the camera control overlay instead.

I have two cameras and they are in the wrong order (front and top cameras)

Use IIDX Camera Order Flip (-iidxflipcams) option.

I have three or more cameras and spice is picking up the wrong ones

Update to spice2x-24-12-06 and use -iidxcamhooktop and -iidxcamhookfront options.

Can I combine camera hook with TDJ play record feature?

Yes! It'll work as you expect, but:

Make sure your webcam is bound to the top camera and not the front camera. The game will intentionally blank out the front face camera in recordings, so you must use the top camera for play record feature. Check or uncheck IIDX Camera Order Flip option to switch the ordering.

Also, be mindful of your privacy as the recorded video with your camera feed will be uploaded to your EA server. spice2x has no control over where your videos are uploaded or how it's shared.

Turning on camera hook causes the game to lag / unstable monitor check / high CPU usage / occasional stutters

Cameras are always on while the game is running. A lot of the camera logic is CPU-bound as well. As a result, you may experience performance issues on lower end hardware.

To mitigate this:

  • Lower the resolution and refresh rate; you really don't need anything higher than 720p.
  • Avoid using horizontal / vertical flip, as these are expensive operations.

The above options can be changed in the camera overlay menu.

Getting OBS Virtual Camera to work

If you have Windows 11 version 22000 or higher, and the latest OBS version, OBS should show up as a device in spice. Check for messages like this in the log:

I:iidx:camhook: MFEnumDeviceSources returned 1 device(s)
I:iidx:camhook: -------- Listing all cameras from MFEnumDeviceSources --------
I:iidx:camhook: Camera 0 Name: OBS Virtual Camera (Windows Virtual Camera)
I:iidx:camhook: Camera 9   ID: \\?\swd#vcamdevapi#..........#{40568484-56a9-4865-b6cc-7a39f7d02837}\{fcebba03-9d13-4c13-9940-cc84fcd132d1}
I:iidx:camhook: --------    End of cameras from MFEnumDeviceSources   --------

if you don't see it, try restarting OBS as admin and click the Start Virtual Camera button. You may also need to follow their troubleshooting guide to register OBS DLLs again.

If you still don't see it, try running the following in PowerShell:

Get-CimInstance -Namespace root\cimv2 -ClassName Win32_PnPEntity | Where-Object { $_.PNPDeviceID -match 'VCAMDEVAPI' } | Select-Object Name, Manufacturer, PNPDeviceID, Present

This should result in Windows Virtual Camera Device showing up, which is the device that OBS and spice will use. If it doesn't show up (and you're on Windows 11 version 22000+) then, well, we're not quite sure, since this doesn't seem to be documented anywhere by Microsoft or OBS...

Developer details

spice2x cam hook uses Windows MF (Media Foundation) API for enumerating and capturing webcams. OBS Virtual Camera uses the legacy DirectShow APIs, which is not compatible. It seems that the new Windows 11 virtual camera stack serves as a compatibility layer, but very little documentation exists.

Camera stuttering for no apparent reason

Check for TikTok LIVE Studio (LSVCam) and uninstall it.

Camera fails to initialize

If you see Failed to create camera: -2147024891 / 0x80070005 (ERROR_ACCESS_DENIED), go to Windows Settings app, Privacy & Security, Camera, and under Let apps access your camera, and ensure desktop apps can access your camera.

If you see Failed to create camera: -2147024893 / 0x80070003 (ERROR_PATH_NOT_FOUND) try rebooting your PC, and updating webcam drivers, and ensure nothing else is using your webcam.