Hey guys, I know I'm kinda new here, but I've been lurking for years. Recently, I finally decided to build my own cabinet and this forum has been particularly useful. So first of all, thanks a lot to everyone contributing here.
Setup:So first I'll mention my setup. I built a cabinet with spare parts and a bit of ingenuity here and there given the lack of authentic hardware here where I live (third-world country). I have collected real circuit boards throughout the years, though, but functioning monitors are impossible to find. So here's the deal, I modified a 25" CRT TV with a csync combiner circuit to plug it into a PC. Here are the details:
- Modified Sony CRT TV, 25", only supports 15.7 Khz (doesn't support extended horizontal sync range, so no 800x600 interlaced)
- Sony PVM monitor with an off the shelf sync combiner that does support 800x600 interlaced
(for testing only, it's not part of the cabinet), I use this for consoles
- Self built EDID dongle chip with 640x480 interlaced EDID data burned in (the bin file I burned came from switchres)
- AMD APU A6-7400k (Dual-core)
- AMD Radeon HD 7770 (modified to add GOP driver for UEFI)
- AMD Radeon HD 6450 (modified with Atom-15 and added GOP driver for UEFI)
(for testing only, it's not part of the cabinet)- Windows 10 Pro Edition
- GroovyMame v0.171 and Attract Mode as frontend
- Cheap 120GB SSD
Reasoning:
- I wanted fast boot times and flicker-free boot experience. Windows 7 simply didn't offer that on the TV I have (it goes out of sync several times during the boot process by trying to sync to 800x600, ATOM-15 doesn't help here in my setup since my TV doesn't support the 16.2KHz required to support said resolution) and Windows 10 boots faster, doesn't switch resolutions during the boot process and if using the UEFI GOP driver makes it very fast and seamless.
- I also wanted to play games on Demul which requires a fast PC. The 7770 is probably the cheapest card I could find that runs Demul games fullspeed. I could probably go for a Radeon 6950 for something strictly faster and more compatible or a 6870 and maybe it would perform similarly, but I didn't have those at hand and finding 6-series card is getting increasingly harder in my country.
- Arcade monitors are simply impossible to find, so I had to get creative and decided to use a TV
- PVM monitors are likewise increadibly hard to find and are usually expensive, heavily used, and small. There are, also, no guarantees that they will sync to 800x600i
Videocard, Emudriver and UEFI, findings and issues:First, let me talk about what I have tried. Using the HD 6450 I booted the PC but UEFI outputs 800x600 and the TV intended for the cabinet can't sync in that mode because it requires around 16.2 KHz. The PVM monitor works fine.
Using the EDID dongle, the UEFI screen syncs to 640x480 interlaced as it should by using the UEFI GOP driver (UEFI GOP drivers will sync to whatever the EDID data indicates and will stick to that, in my particular motherboard 640x480 works but looks weird as if the resolution wasn't enough). It syncs ok, so the TV won't get damaged, but there's a lot of overscan. Windows will boot fine whether it's using the default AMD drivers or using CRT Emudrivers 2.0 beta 8. I decided against this card because I would like to use Demul to play some NAOMI games and those require a beefier GPU. The Radeon 6450 simply wasn't enough.
Using the Radeon HD 7770, things were a bit more painful. Everything works ok unless I use the EDID dongle. When using that dongle, the UEFI screen will sync properly to 640x480 interlaced (albeit with overscan), Windows will boot fine using AMD's drivers, but not with the CRT Emudriver. It'll get stuck booting Windows. If I remove the dongle, the UEFI screen will try to sync to 800x600 (non-interlaced since this videocard was not modified using ATOM-15), which will look garbled on a 15KHz TV or Monitor, and then boot fine into Windows.
Summary of my findings:
If using UEFI, a possible alternative (I don't know how other UEFI motherboards will react, though, but my Asus motherboards respect the EDID data) to ATOM-15 is to use a UEFI GOP-capable videocard (I patched mine to support UEFI GOP, there's extensive information on the net to add a GOP driver to a Radeon card, Radeon 5-series upward only) and a EDID dongle with the wanted mode burned in. However, there appears to be some compatibility issue with CRT-Emudriver when using the GOP driver and a Radeon 7770 (perhaps it happens with all Radeon 7-series cards, or perhaps it's a bug of the underlying radeon driver that was later fixed by AMD). I'm currently using the 7770 without the EDID dongle to get Windows to boot properly.
GroovyMame and Attract Mode:When using the Attract Mode frontend and GroovyMame, the frontend freezes once exiting the game unless GroovyMame is using the BGFX mode. I don't know if there are any side effects of using this mode, but apparently it works ok. I'd love to use the D3D mode, though.
Hiding Windows 10 and building a cabinet around itIt's certainly easier to hide Windows 7 as I made a few tests using Windows 7, but Windows 7 doesn't allow me to use the UEFI GOP driver on the videocard which means that I can't force my motherboard to sync 640x480i instead of 800x600i or boot really fast. There's just one thing I haven't been able to hide in Windows 10: the "Logging in [user]" animation screen. I was able to hide the boot splash, the desktop, the mouse pointer and everything else, however, I haven't been able to hide that screen. It lasts at most 1 second, though. It's not terrible, but it breaks the otherwise great illusion afforded by this particular setup. Windows 10 supports a kiosk-mode (presumably, other versions do as well) that is similar to replacing the shell with a frontend.
CRT Emudriver and PC gamesAs long as the game is not newer than the drivers, I haven't had any issues. I wasn't able to play Street Fighter V, for example, but SFIV works just fine. While there aren't that many new games that I would like to play in an arcade cabinet, SFV is one that I'll be missing out on. Considering I have Steam running and available, I'd love to have the chance to play newer releases.
Current Status:I've almost finished building the arcade, but I still have the issues mentioned above. I've had to build me a few circuits to make everything work as seamless as possible (I have one that powers on and off the TV in tandem with the PC). Since the CRT tube has a few seconds delay when warming up, I don't see the TV trying to sync to a 31khz resolution, however, it does show when rebooting or when turning on the PC and TV is already warmed up. This one bugs me, but I don't know how to solve it. I'd love to have Calamity chime in, maybe I could be of help (I'm a software developer, so I know a bit of programming, but drivers are not my area of expertise).
I feel like the driver issue with newer games and the freeze could be solved by using a newer driver as a base for EmuDriver, but I don't really know if it is feasible or easy since I don't really understand the modifications done to de driver at a low-level.
In my opinion, if these issues could get fixed, I believe that Windows 10 could replace Windows 7 as a favorite for building arcade cabinets. It boots faster and the boot process is more seamless (when booting, the TV simply doesn't flicker between resolutions, for example), but after many weekends researching and testing variations of my circuits, I simply don't know where to continue searching except here.
Sorry for the long post, I know many won't read this in it's entirety, but hopefully it helps someone else. It would've helped me by saving me a lot of hours if I had known some of this issues beforehand. Hopefully it's useful to someone else and hopefully the issues mentioned can be solved now that they're out in the open. I certainly will keep trying.
Note: When mentioning 800x600 interlaced I'm actually referring to the mode that the Atom-15 tool burns into the videocard bios which is 800x600@~53hz which ends up being around 16.2KHz.