Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: CRT Arcade Cabinet - My findings and issues  (Read 4448 times)

0 Members and 1 Guest are viewing this topic.

lugaidster

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 6
  • Last login:August 22, 2019, 02:19:15 am
  • I want to build my own arcade controls!
CRT Arcade Cabinet - My findings and issues
« on: November 06, 2016, 11:01:14 pm »
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 it
It'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 games
As 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.

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1804
  • Last login:Yesterday at 11:15:38 pm
  • Is running at 15kHz
Re: CRT Arcade Cabinet - My findings and issues
« Reply #1 on: November 07, 2016, 12:15:27 am »
Well, it's not software its mechanical, but you could use a timed relay on the monitor. Set it to flick on after 15-20 seconds or so, once your frontend has loaded.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7461
  • Last login:May 23, 2025, 06:07:25 am
  • Quote me with care
Re: CRT Arcade Cabinet - My findings and issues
« Reply #2 on: November 07, 2016, 04:08:56 pm »
Hi lugaidster,

Thanks a lot for your post, full of useful information.

Specially, thanks for pointing me to the UEFI-mod topic, I've been a bit out of the loop since I made ATOM-15 and it's definitely an interesting route to explore.

With regards to the 7770 not working with CRT Emudriver plus the EDID dongle, I'm wondering if you also applied the EDID emulation from VMMaker, maybe there could be a conflict there. The other possibility you're suggesting seems more likely (too old driver).

An Emudriver version based on newer drivers was indeed planned for this year. However, the last six months have been more complicated than usual and I had to put off this project.

Important note: posts reporting GM issues without a log will be IGNORED.
Steps to create a log:
 - From command line, run: groovymame.exe -v romname >romname.txt
 - Attach resulting romname.txt file to your post, instead of pasting it.

CRT Emudriver, VMMaker & Arcade OSD downloads, documentation and discussion:  Eiusdemmodi

R-Typer

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 143
  • Last login:September 09, 2024, 12:50:41 pm
  • C64 Rulez!!!!
Re: CRT Arcade Cabinet - My findings and issues
« Reply #3 on: November 07, 2016, 04:30:54 pm »
Newer EmuDrivers !?!?! YAAAAAY!!!!  :D :D :D

K-rnivoro

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 34
  • Last login:May 03, 2020, 11:51:55 am
  • I want to build my own arcade controls!
Re: CRT Arcade Cabinet - My findings and issues
« Reply #4 on: November 08, 2016, 08:56:21 am »

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'm electronic engineer, even though I consider there is no point trying to reinvent things... Go for a J-PAC from Andy's Ultimarc. That protects your CRT from 25-31 KHz signals, also puts your signal in the right levels for a CRT arcade monitor (which is very often overlooked).

For the power on circuit, I assume you are using a 110VAC (or 220VAC) relay controlled by a 5V or 12V rail from the PC's PSU, allowing to power the CRT, speakers amplifiers and some others devices (except the PSU itself).
Regards.

lugaidster

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 6
  • Last login:August 22, 2019, 02:19:15 am
  • I want to build my own arcade controls!
Re: CRT Arcade Cabinet - My findings and issues
« Reply #5 on: November 08, 2016, 01:19:23 pm »
Hi lugaidster,

Thanks a lot for your post, full of useful information.

Specially, thanks for pointing me to the UEFI-mod topic, I've been a bit out of the loop since I made ATOM-15 and it's definitely an interesting route to explore.

With regards to the 7770 not working with CRT Emudriver plus the EDID dongle, I'm wondering if you also applied the EDID emulation from VMMaker, maybe there could be a conflict there. The other possibility you're suggesting seems more likely (too old driver).

An Emudriver version based on newer drivers was indeed planned for this year. However, the last six months have been more complicated than usual and I had to put off this project.

There's a couple of things going on that are pretty weird. The first thing is that it doesn't work with either edid emulation or without it. Once the dongle is plugged in on the 7770, the PC freezes during the boot process while using Emudriver. The other thing is that Windows simply doesn't sync properly when using the information stored on the EDID chip, and it's only Windows for certain. If no drivers are installed, then Windows will keep using the UEFI GOP driver, and then it will sync properly. This happens on both Radeons. But the weirdest thing of all is that if I plug a regular LCD screen instead, everything works just fine. Perhaps this is something that could be solved by tweaking the EDID data, maybe it has something in it that makes the driver freeze... I don't know, it's something that came to my mind now. The thing is that I created the EDID file using switchres, I have no idea how to create it otherwise with the proper timings.

I think it probably is because it's an older driver, I don't know.

As I said in the first post, I'm a software developer, but I rarely go that low-level so I'm not sure if I could be of help. However, if there's anything I could do to help you build a driver based on a newer one, let me know and I'll try.

By the way, thanks for all your contributions to the scene, I wouldn't be building an arcade if not for them.


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'm electronic engineer, even though I consider there is no point trying to reinvent things... Go for a J-PAC from Andy's Ultimarc. That protects your CRT from 25-31 KHz signals, also puts your signal in the right levels for a CRT arcade monitor (which is very often overlooked).

For the power on circuit, I assume you are using a 110VAC (or 220VAC) relay controlled by a 5V or 12V rail from the PC's PSU, allowing to power the CRT, speakers amplifiers and some others devices (except the PSU itself).
Regards.

I actually have a J-PAC installed, but I only use it for input as it is a no-go when using a modded TV for RGB rather than an arcade monitor. Arcade monitors have a different Vpp specification for colour (2-4 Vpp for each color channel) while TVs use 0.7 Vpp like a regular VGA adapter. The J-PAC has an amplifier to transform VGA voltages to something an arcade monitor would expect, which would seriously mess up the colors on my TV.

As for the Power I actually built an edge-trigger because the TV I have is digital and goes into stand-by whenever I plug it in. I couldn't find a setting that would turn it on when plugged so I wired the edge-trigger to the power button. It's a simple circuit around 3 XOR-gates and a few resistors and caps. What it basically does is have the cap with the resistor on one of the two inputs and that plugged to a voltage source from the PC. The cap+resistor combo delays the signal just enough (a few hundred millies) to actually get a pulse on the output when power is applied, then when power goes out, another pulse appears while the cap discharges. I have a transistor on the output to act as a switch and that's it. When the PC turns on it sends a pulse and turns on the TV, when the pc turns off, it sends another pulse and the TV turns off.
« Last Edit: November 08, 2016, 01:21:40 pm by lugaidster »

Paradroid

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 687
  • Last login:March 17, 2025, 05:06:02 am
    • SCART Hunter
Re: CRT Arcade Cabinet - My findings and issues
« Reply #6 on: November 08, 2016, 03:22:10 pm »
Any chance of some photos and a schematic? :)

Sent from my SM-A300Y using Tapatalk

My MAME/SCART/CRT blog: SCART Hunter

lugaidster

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 6
  • Last login:August 22, 2019, 02:19:15 am
  • I want to build my own arcade controls!
Re: CRT Arcade Cabinet - My findings and issues
« Reply #7 on: November 15, 2016, 12:31:16 pm »
Any chance of some photos and a schematic? :)

Sent from my SM-A300Y using Tapatalk

Sure thing, anything specific?