What's new
Does anyone else know if attract mode works in 4:3 640x480i cabinets?
 
I used the default theme that is used and created filters based on the All Killer No filler Game list and added/removed my own stuff that is suited best for me. Seems to work pretty well

View: https://www.youtube.com/watch?v=8W7_O020V8s
Just did the install with @chunksin's GroovyTime image. Screw doing it the long way. It's the way to go.

I will scrub the discussion and redo the sections. Will just supplement his work with the parts concerning the actual interfacing to an arcade cab and being non-destructive while doing so. Will add in parts for further customization of themes and such.

I should have tried this image sooner. Where was this image 10+ years ago when I found HyperSpin and it took me 3 years to figure out how to install it, LoLoL! Nice work @chunksin and big thanks!
 
Last edited:
This is good information.

I'd like to share my experience with groovymame.

I did this a few months ago. I got a pretty awesome setup going. I didn't put it in a cab but I wanted 240p-perfect arcade gaming on my Supergun setup. This was for the games I either can't find or am unwilling to pay high prices for (in the hunt, being one).

The end result was a beautiful experience. I was happy to finally have a great emulation setup, even if it's in a decent sized box next to the TV.

Then, the very next day, I learned that recalbox works in 240p mode with rpi4.

I already had a pi2jamma and rgbpi. The pi2jamma wasn't good enough because it required a very old version of mame (advmame) to use pi4. The rgbpi only supports rpi3 and I can definitely tell the difference between rpi3 and real thing. Some games don't even run at full speed.

Recalbox + pi2jamma + rpi4 SEEMS just as good as the groovy setup I had just completed.

I'm not a huge fan of RetroArch and it's use of cores. I'm not a huge fan of recalbox's rigidness in configuration either. But with the recalbox I was very easily able to add any console/games that I wanted. Attract-mode can't scrape images without locking up the PC. It's not a hardware resources issue, I'm using a beefy PC with 16gb of RAM.

This is just my experience, and I'm not trying to discourage anyone. My groovymame setup is awesome. But my rpi4 setup SEEMS just as good.
 
Last edited:
I really like this thread and some of the things shown here might prompt me to revisit a MAME setup at some point.
Groovy MAME to me has always been the ONLY way to use MAME for gaming. I've always seen MAME at it's root not as a gaming tool but as hardware documentation tool that simply uses it's ability to play games as a way to prove that the documentation is correct, I use MAME almost daily for this purpose, but I'm mostly digging through source code or running the debugger in order to better understand how to fix or exploit real hardware, not for gaming. Groovy MAME builds on the excellent code-base of MAME and retools it to an experience build for actual game-play... but I digress.

About 6 years ago I put together a guide on running MAME in a cab: http://solid-orange.com/1476 I'm sure its WAY outdated now but there might be some things in there that give you some ideas of areas to cover or aspect you haven't thought of, it was mostly hardware focused.

Two areas that I'd love to see in a MAME setup of my own:
1. utilization of Memory save states so that when you select a game it skips over the "boot up" process and dumps you straight to the title screen. I think this would just greatly improve the experience of selecting the game and getting right to it. Unlike console games, arcade games were designed to get you into the action as soon as you dropped your token so that you could get to the next token drop ASAP. The whole initialization wait after selecting a game in most emulation setups ends up being jarring and kind of out of place in an arcade experience.

2. integration with a 2nd monitor (potentially a high res LCD) that could do interesting stuff like show the the game logo, the game-play in a window next to play stats and high-score info, maybe an instruction card, and maybe also offer a feed from a webcam to show the players face. Almost like a live version of a competitive streaming setup.

Gaming on a whole has turned incredibly insular, even in multiplayer games people are essentially alone in a crowd of thousands. To me arcade games are the ultimate in face-to-face multiplayer, and even single player arcade games are best enjoyed with multiple players taking turns to best each other's scores... so any features that help promote that aspect are something I'm interested in.
 
Last edited:
Step 4: Input/Output Options to an Arcade Cab

There are three arcade cab-types that we shall concern ourselves with from here:
  1. A fully wired JVS w/tri-sync monitor
  2. A fully wired JVS cab with a VGA-only monitor
  3. A fully wired JAMMA cab
By fully wired, I mean none of the components inside of the cab that allow real arcade PCB's to be connected and played on the cab have been stripped out. The other thing that you should adhere to is that you want a cab that has a Street Fighter 2 button layout natively. Don't take a Donkey Kong cab and convert it to MAME, someone is going to execute you. Seriously. Sell that to a collector if you have such a cab and ask in the transaction that as part of the deal that you want a Dynamo or 3Koam Street Fighter-style cab. Or just acquire one outright. It is simply to much work to rework a non-JAMMA/JVS cab for MAME. Let alone the mention of how destructive the endeavor is to such a cabinet. If you have a Japanese candy cab, you are mostly set. Just make sure the control panel is 2L12B (2 players with 6 input buttons per player). This will allow you to play most of the games in MAME's library.

A Warning Regarding the VGA/RGB Cable on a JVS Cab

Sometime in the past, the VGA/RGB cable in your JVS cab may have been replaced with a standard computer monitor cable. All of the pins on a standard VGA monitor cable will be populated. A JVS cab's RGB cable looks very similar to a standard computer monitor's VGA cable. However, it will only have pins populated for Red/Green/Blue/Video Ground/Sync. A standard computer VGA cable is fine for connecting JVS PCB's to your JVS cab. However, you are now connecting a PC to your JVS cab. Pin 9 on a fully populated computer VGA cable will carry a 5 volt signal from the PC to your arcade monitor. I've seen this blow up a Sanwa PFX chassis before. Best that you ensure that the VGA cable in your JVS cab only has the Red/Blue/Green/Video Ground/Sync pins populated. If your JVS cab's RGB has been replaced by a standard computer monitor VGA cable, remove excess pins with needle nose pliers to be safe. Additionally, we do not want Windows to attempt to perform any EDID. We will set the monitor specifications using CRT Emu.

JVS cab with a VGA-only monitor

A fully wired JVS cab with either a tri-sync monitor or a VGA-only monitor connects to a PC in the same way. The only difference is in the installation setup of CRT Emu. For VGA only JVS cabs, follow the guidance laid out here for 31khz cabs. Additionally, you must not run ATOM-15. This hacks the BIOS for AMD graphics cards to output a 15khz signal as the PC boots up before Windows loads. A VGA only monitor will not be able to display a 15khz video signal. Either way, the video connection for the PC is through the JVS cab's VGA/RGB video connection. The audio is connected from your PC right into the cab's stereo amp. You'll need a 3.5mm stereo jack adapter for this. Something like this:

1644684624071.png


Find one that you like as there are lots of choices.

As for controls, there is JVS-Pac 2 that simplifies the controls interfacing. Plug your JVS cable into the JVS-Pac 2, plug your PC into the JVS-Pac 2. If for whatever reason you cannot acquire the JVS-Pac 2, it is out of stock or what ever, then you can do something like this with a controller PCB of your choosing.

1644685188679.png


Though I would no longer recommend using a Zero Delay encoder board (pictured above) for MAME (more on this later), this shows you can be non-destructive as you build out your JVS MAME cab. Your button/joystick harness simply plugs into the adapter that you've crimped together for your controller PCB. This is reversible and therefore non-destructive. There are a few things if you interface controls as such:
  1. You'll need the tools to do the crimping
  2. You'll need the proper connectors and pins to do the crimping
  3. You'll have to program the joystick input commands in MAME to control the games
  4. You'll have to do some extra wiring if you want to control coining up through the coin drop
  5. You'll have to route the USB cable inside of your cab so that it is nice and tidy
I figured out how to do this back when there was no such thing as a JVS-Pac 2. Though I have never used JVS-Pac 2, I would highly recommend going the route of JVS-Pac 2. @invzim makes fine products.

JVS cab with a tri-sync monitor

The PC connects same as above mentioned with JVS cab with a VGA-only monitor, however you can run games at native 15khz resolution. Therefore, set GroovyMAME's 'switchres' setting to '1' and install Calamity's CRT Emu driver through GroovyTime to output a 15khz signal from your PC. You can also optionally run Atom-15 to hack the AMD graphics card's BIOS to output a 15khz signal during bootup. Might be a good idea to run Atom-15 should you ever decide to move your MAME rig to standard JAMMA cab.

JAMMA cabinet

This cabinet will represent most scenarios where a user will connect a PC to an arcade machine. From here, there are choices for the input controls interface and we'll go through only the ones you should consider. Additionally, the PC interface for a JAMMA cab also is leveraged for video and audio input.
  1. Ultimarc's J-Pac
  2. JAMMASD
  3. JAMMAizer or SCART2ARC30
The J-Pac was the first to market for PC-to-arcade interfacing. It is the least expensive option. MAME natively maps control inputs to specific keyboard keys. There is no need to program inputs to control games with the J-Pac as it is effectively a keyboard encoder. J-Pac also has circuitry that will protect your arcade should you feed it a 31khz computer video signal. However, the J-Pac has its shortcomings:
  • There is no audio amp
    • This is huge
    • You'll have to wire up and power an audio amp separately
  • There is no direct connection for a CPS2 style kick harness
    • You will have to wire up an adapter
    • Please, no hacking
  • I don't much like the video amp in J-Pac
    • I feel it lacks contrast and crushes whites
Similarly to the J-Pac, the JAMMASD has a keyboard encoder built in. There is no need to program MAME control inputs. However, it 1Ups the J-Pac in that it has an onboard audio amp. You simply jack the 3.5mm audio cable from your PC into the JAMMASD and JAMMASD routes that audio goodness to the JAMMA edge connector. Easy as 3.14159. Here are the shortcomings with JAMMASD:
  • It is more expensive than J-Pac
  • There is no direct connection for a CPS2 style kick harness
    • You'll have to wire up an adapter
    • Please no hacking
Though I bought a JAMMASD a while ago, I have yet to have the time to use it. I can't speak to the qualities of its video amp yet but I expect it to be at least as good if not better than J-Pac's. If the decision for me was to only connect a PC to a JAMMA cab, no other source devices like a video game console, and I want to be the most economical in terms of money spent and time spent, the JAMMASD would be my choice.

SCART2ARC30 & JAMMAizer

You can read my comparison of the two over here. With these options, you are afforded the ability to also connect video game consoles which is a huge bonus. If you have one of these devices already, no need to double up and buy a separate interface just for MAME. With MAME, the button mapping advantages JAMMAizer has over SCART2ARC30 is neutralized. Button mapping is controled via MAME's software. SCART2ARC3 has circuitry that will product your standard resolution arcade monitor should you incorrectly feed it a non-15khz signal; JAMMAizer does not. Not a big deal if you know what you are doing with CRT Emu.

The shortcomings going with these devices are:
  • They are more expensive than the other two options by a good amount
  • You'll need to ensure you have purchased the optional VGA connections to connect your PC
    • An added expense
  • You'll need separate 2x10 controller PCB's with the 2x10 pin header
    • One each for 1p and 2p
    • Both PCB's are added expenses
  • There is no keyboard encoder and you will have to program input commands to play MAME
  • Additionally, JAMMAizer is OOP right now
    • No word on when it will come back in stock
  • SCART2ARC is the 3rd iteration (version 3.0) from Tim Worthington and is readily available now, but......
    • The previous 2 revisions had went OOP before
    • No telling when/if SCART2ARC30 will go OOP
One last word with any of the devices above and native keyboard encoding (J-Pac, JAMMASD, JVS-Pac 2). No matter what, you will have to do some programming/mapping of input commands to some degree. Whether this is for the front end or for special commands in MAME, like escaping out of a game back to the front end or shutting down the PC. There is just an added step of mapping Up/Down/Left/Right/Buttons 1-6/Start during setup. This just takes a few extra minutes while you are performing some special input combinations mapping anyway. Also, having a joystick/multi-concole PCB allows for other applications like fight sticks and such. Therefore, I don't consider any of the interfaces with native keyboard encoding to have an advantage over joystick/multi-console controller PCB's.
 
Last edited:
Id say keep your guide too. It's another option. Many ways to do the same thing.
Shoot, I edited it out already and switched things up to GroovyTime. Maybe I'll make a video on it because typing it out sucks.
I'm not a huge fan of RetroArch and it's use of cores. I'm not a huge fan of recalbox's rigidness in configuration either. But with the recalbox I was very easily able to add any console/games that I wanted. Attract-mode can't scrape images without locking up the PC. It's not a hardware resources issue, I'm using a beefy PC with 16gb of RAM.
Many options with emulation. PC is the most flexible. Most emulation users won't even interface to an arcade cab. I suspect it would be like less than 1%

Anyhoo, I made a video long ago on HyperSpin setup. I customize my games database in HyperSpin using Don's HyperSpin tools. Then I import the customized list into AttractMode:
  • Here is that video
  • Here is the command that imports HyperSpin's list into AttractMode
I don't even bother using scraping commands.
 
@RealMFnG - thanks for mentioning the JVS-PAC 2.
The only difference is with a VGA-only cab, you'll have to install GroovyTIME for an LCD (not install CRT Emu), then run all your games at 640x480 resolution with GroovyMAME's 'switchres' setting set to '0'. You'll be able to play the games still, but the video will be upscaled to 640x480.
I would highly recommend not going in this direction, crtEmuDriver & GroovyMame is fantastic for VGA monitors - I have one myself and did a write-up on it. The key is that it does line-doubling, giving you a result that is pretty much indistinguishable from a tri-sync or 15kHz only. Detailed write-up here:

https://irkenlabs.com/jvs-pac2/mame-for-31khz-cabinets
 
@RealMFnG - thanks for mentioning the JVS-PAC 2.

I would highly recommend not going in this direction, crtEmuDriver & GroovyMame is fantastic for VGA monitors - I have one myself and did a write-up on it. The key is that it does line-doubling, giving you a result that is pretty much indistinguishable from a tri-sync or 15kHz only. Detailed write-up here:

https://irkenlabs.com/jvs-pac2/mame-for-31khz-cabinets
My GroovyMame cab uses an original JVS-PAC and sega jamma IO, I love it.
 
@RealMFnG - thanks for mentioning the JVS-PAC 2.

I would highly recommend not going in this direction, crtEmuDriver & GroovyMame is fantastic for VGA monitors - I have one myself and did a write-up on it. The key is that it does line-doubling, giving you a result that is pretty much indistinguishable from a tri-sync or 15kHz only. Detailed write-up here:

https://irkenlabs.com/jvs-pac2/mame-for-31khz-cabinets
Ahh yeah, excellent point. Will update accordingly.
 
Two areas that I'd love to see in a MAME setup of my own:
1. utilization of Memory save states so that when you select a game it skips over the "boot up" process and dumps you straight to the title screen. I think this would just greatly improve the experience of selecting the game and getting right to it. Unlike console games, arcade games were designed to get you into the action as soon as you dropped your token so that you could get to the next token drop ASAP. The whole initialization wait after selecting a game in most emulation setups ends up being jarring and kind of out of place in an arcade experience.
If I understand your question properly, this is relatively easy to do as follows:

1. Set up your variant of Mame
2. Create a save state post load for the game
3. Ensure that Mame is configured to "load and save on exit" with that save state
4. Go to the save state file and make the save state is flagged - "Read Only" in properties so it can no longer be overwritten
5. ---> Viola, when you load into the game, Mame will skip the boot sequence. On exit, it will not overwrite your desired state.
6. ---> Bonus, if you don't have a dedicated "insert coin" button, you can insert coins and effectively fake "Freeplay" for games that don't have it. You can load the game with max coins inserted with this technique. The drawback is that attractmodes for most games will not play with coins inserted.

Faking freeplay was the core reason I set up with this workaround many years ago. One of my cabs was only 2L12B+start and I didn't feel the desire to drill an additional hole or wire up the coin eject buttons to insert coins - since that'd be unintuitive for users unfamiliar with how I set it up.

Edit - I use a similar "Read Only" workaround for Steam's "loginusers" file to go into offline mode automatically without nagging me with a popup (and fucking up my FE focus) on boot. (no persistent internet on my cabs)
 
Last edited:
Step 5: Powering the PC

You must tap into your cab's AC to power your PC. We will explain this from the perspective of 120 volt AC prevalent here in the US.

When I say tap, I mean T-A-P. Not tape (T-A-P-E), like you see in the below picture.

1644715079411.png


Slice 'n Dice tape jobs like the one shown above is what a scrub would do (you aren't a scrub are you?). Also, this can be dangerous as this is a live AC line. We want to be non-destructive here. We also want to be safe. And we want to prove that we aren't scrubs. So we want to acquire the proper connector specific for our cab so we can wye off the cab's AC line. That is the proper way to do things.

I'll have example pics shortly............

When tapping into the AC line, here is the rule of thumb:
  1. We want to tap into the AC line after the last switch that powers a component that uses AC, and
  2. Before the AC line runs into the monitor ISO transformer, if any
Each cab is different in terms of AC wiring. Just about all Japanese Candy cabs have more than one AC switch that both have to be set to on for the cab to power on. Some US 3Koam Z-back cabs don't have an AC switch. These cabs turn on as soon as you plug them in. With Dynamo cabs, some have an AC switch mounted to the top of the cab. Some Dynamo cabs have the AC switch integrated into the PSU.

Another thing to note is that your arcade PSU is not used to power the PC in a MAME setup. But it may be used to power the interface device for your PC to your cab:
  • JVS-Pac 2 requires the JVS I/O to be powered on. The JVS I/O is powered by the arcade PSU in your cab
    • As such, you cannot bypass your arcade PSU if using JVS-Pac 2
  • SCART2ARC3 and JAMMAizer are powered via the JAMMA edge connector
    • As such, if using either, you cannot by pass your arcade PSU
  • J-Pac is powered from USB
    • You may bypass powering your arcade PSU
  • I am not yet sure how JAMMASD is powered yet
    • Will add notes to the discussion as I find out
A PC of course draws AC current for power. In some cases, a decision to bypass powering the arcade PSU so that it does not draw current should be considered. But we don't want to be destructive in doing so. We simply want to bypass it, if possible. When possible and depending on the cab, it is best to tap the AC powering the arcade PSU to power the PC. Doing so ensures the arcade PSU is not powered on and draws current needlessly. But this is not possible in many cases even if you are using an interface that does not require power from the arcade PSU, such as in the example below:

1644725062372.png


In this case, AC power from the wall plugs directly into the arcade PSU. From the PSU, you have DC voltage to power an arcade PCB through the JAMMA harness (the red/yellow/black cables on the right of the pic). Then there are AC power lines coming off the arcade PSU. One rail goes to power the marquee (the one on the left in this pic). One rail goes to power the monitor (the green/yellow and black cables on the right in this pic). You find these PSU's often in US Dynamo and Z-back cabs. Unfortunately, you cannot bypass the arcade PSU for such cabs without being destructive. You simply have to make a concession that the arcade PSU has to be be on when running a MAME PC in this scenario, regardless of your interface of choice not requiring power from the arcade PSU. It is a small concession, but you should be aware of it. Leave such a PSU installed as is. We shall wye off the AC line coming off the PSU.

Again, given the variables of your cab, how you chose to interface to your cab, consider bypassing powering your arcade PSU if possible. It is not entirely necessary to do so. But it does save a little bit of power as you are running your PC in your cab. And it may prolong the life of components if they don't need to be powered on during operation.
 
Last edited:
I'll have example pics shortly
On My Fix it Felix cab the original power supply was missing, so I went to home depo and bought an actual outlet and box and installed that where the PSU used to go:
ac_outlet.jpg

If your lucky your cab will already have an outlet wired up

you'll notice that this cab DID already have a pair of outlets from the factory. they were both occupied however interestingly the cab had a 110 to 100V transformer so the original outlet was setup for 100V and my new outlet was for 110.
 
@chunksin, is the version of AttractMode in GroovyTime a specially compiled version that you created? Or can we just replace the *.exe file if we want to upgrade to the latest version of AttractMode?
 
I tried @chunksin 's Groovytime image on friday, really great and thought out insataller, however it didn't anticipate my dumbness so i'm still stuck. Probably it's just something really stupid, but i don't know how to fix it.

I don't get any inputs to work apart from the keyboard that i used for the setup.

I tried the following:
Jammaizer with Brooks 4in1 boards attached
Antonio Villena Jamma adapter (originally intended for his mister setups)
@invzim s JVS-PAC 2.

In the Attract Mode control configuration i get no inputs to register, in the JVS-PACs test mode it registers the button presses and the stick movements...
I also tried different USB connectors on the PC, that didn't help either.

I think i didn't get Windows to properly recognize the input devices in the device manager, but i honestly have comepletely forgotten how to do that without windows holding my hand (Plug and Play made me soft...);(

Any ideas ?

EDIT:
damint - it was @chunksin of course - looks like i need another coffee X/
 
Last edited:
Back
Top