mame icon indicating copy to clipboard operation
mame copied to clipboard

video/voodoo.cpp: VGA passthrough support for Voodoo 1 & 2

Open angelosa opened this issue 2 years ago • 3 comments

Voodoo 1 and 2 fbiInit0 bit 0 drives to external pin vga_pass, required for switching between multiple devices over the same screen. The catch is that this should also swap between who controls the CRT, which sounds like #5801 league. fbinit3 bit 11 is a read only bit for VGA_PASS reset value.

Known systems requiring this which can be used for :

  • pf2012 bootscreen CPLD
  • savquest S3 trio64uv
  • konami/nwk-tr.cpp
  • konami/gticlub.cpp (hangplt)

This doesn't apply to Voodoo Banshee and Voodoo 3, which has their own 3dfx VGA controller sub-device.

angelosa avatar Jun 16 '23 21:06 angelosa

Does racingj in nwk-tr.cpp count as well? That game has a tendency to display both CG board tilemap customs during POST which explains why you can't see some text during POST (and in earlier versions when this was displayed as two screens, you could see the missing text on the other screen). Could be an entirely different can of worms if I'm wrong.

Hydreigon223 avatar Jun 16 '23 23:06 Hydreigon223

Possibly ya, hangplt is another one (where it definitely wants the back layer to be displayed for the cross hatch test in service mode, in place of Voodoo layer being full white there).

angelosa avatar Dec 26 '23 18:12 angelosa

Switching who controls screen timings is something MAME really isn’t good at.

The only way I can think of implementing it right now would be to have some member function on the “cooperating” device (i.e. the VGA’s CRTC in this case) like set_controls_crt(bool) where passing false causes it to suspend setting screen timing parameters, and passing true pushes screen parameters immediately if it was previously false and resumes setting screen timing parameters.

cuavas avatar Jan 22 '24 14:01 cuavas