MiSTerJamma Board
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
MiSTerJamma Board
Originally a thread on the MiSTer board, but it's not a direction in which Sorgelig wants his project to develop.
http://www.atari-forum.com/viewtopic.php?f=117&t=38775
The aim is to create a board to connect a DE10 nano straight to an arcade machine, with no unnecessary additional logic between the FPGA and the sticks, buttons and CRT.
Simple proof of concept here, only wired for a single player, hard coded to only support Jamma, and only patched/tested with GnG:
Hacky wiring: https://imgur.com/JHVAEUR
Sources: https://github.com/MisterJamma/Arcade-GnG_MiSTer
Inputs are wired directly to the FPGA, but should really go through passive EMI filters to protect the FPGA:
https://wiki.neogeodev.org/index.php?title=CRE401
https://www.digikey.com/en/articles/pro ... lectronics
The RTL is written to support 6 buttons plus coins and start per player, plus a test button. No polling, USB or software between the buttons and the FPGA.
Video output is the same R2R DAC which MiSTer uses. HDMI output is still active, but not needed.
Audio output goes through the only active components required- a 2 channel power amplifier IC.
RTL changes from MiSTer are not much more than wiring at the moment. It needs a little more work to re-enable compatibility with existing MiSTer hardware. Although it's not essential, there doesn't seem any need to break this compatibility. There are enough pins to allow the RTL to detect which board is connected and switch the pins as needed. You will need to build your own cores (.rbf), but they will currently work with the MiSTer software stack.
http://www.atari-forum.com/viewtopic.php?f=117&t=38775
The aim is to create a board to connect a DE10 nano straight to an arcade machine, with no unnecessary additional logic between the FPGA and the sticks, buttons and CRT.
Simple proof of concept here, only wired for a single player, hard coded to only support Jamma, and only patched/tested with GnG:
Hacky wiring: https://imgur.com/JHVAEUR
Sources: https://github.com/MisterJamma/Arcade-GnG_MiSTer
Inputs are wired directly to the FPGA, but should really go through passive EMI filters to protect the FPGA:
https://wiki.neogeodev.org/index.php?title=CRE401
https://www.digikey.com/en/articles/pro ... lectronics
The RTL is written to support 6 buttons plus coins and start per player, plus a test button. No polling, USB or software between the buttons and the FPGA.
Video output is the same R2R DAC which MiSTer uses. HDMI output is still active, but not needed.
Audio output goes through the only active components required- a 2 channel power amplifier IC.
RTL changes from MiSTer are not much more than wiring at the moment. It needs a little more work to re-enable compatibility with existing MiSTer hardware. Although it's not essential, there doesn't seem any need to break this compatibility. There are enough pins to allow the RTL to detect which board is connected and switch the pins as needed. You will need to build your own cores (.rbf), but they will currently work with the MiSTer software stack.
Re: MiSTerJamma Board
I don't see how this is useful; there are already solutions (non-official) for direct input bypassing USB.
The rest (RGB, sound) can be retrieved directly from standard setup. What does this offer on top of that?
The rest (RGB, sound) can be retrieved directly from standard setup. What does this offer on top of that?
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
I have not seen any direct input system. There is snac, but that still goes to the ARM processor, doesn't it? Would be interested if there's some other system. Is there another alternative?
The standard analog IO board has a lot of components which are of no use for a Jamma set up. A board which only has the parts needed for Jamma should cost about the same as that. I have not seen any other way to put this together that did not need a lot of additional hardware.
The standard analog IO board has a lot of components which are of no use for a Jamma set up. A board which only has the parts needed for Jamma should cost about the same as that. I have not seen any other way to put this together that did not need a lot of additional hardware.
Re: MiSTerJamma Board
SNAC goes directly to the FPGA, but officially it's only provided to connect unusual hardware e.g. lightguns.
There has been two unofficial solutions released since, with forked cores:
https://github.com/antoniovillena/MiSTer_DB9
https://github.com/bootsector/LLAMA
Both solutions basically use the "SNAC port" but slightly differently.
The second one has the advantage of also supporting USB (so it's like an open Blisster which operates in both modes).
I notice there is also this, which is pretty much what you are after:
https://www.antoniovillena.es/store/pro ... a-adapter/
There has been two unofficial solutions released since, with forked cores:
https://github.com/antoniovillena/MiSTer_DB9
https://github.com/bootsector/LLAMA
Both solutions basically use the "SNAC port" but slightly differently.
The second one has the advantage of also supporting USB (so it's like an open Blisster which operates in both modes).
I notice there is also this, which is pretty much what you are after:
https://www.antoniovillena.es/store/pro ... a-adapter/
Re: MiSTerJamma Board
I know a thread that would be closed already with the usual "this is not my vision for MiSTer, so, F U" if it was in a different category on this forum...
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
PCB (untested): https://github.com/MisterJamma/DE10Jamma

2 players
joystick + 6 buttons + coin + start per player
Select button - use to call up OSD so core can be selected
Test button - connect to core to access normal arcade PCB test menu.
CPS1 kick connector for buttons 4-6 (button 4 is also on the edge connector in standard MVS position). Connector pitch is 2.5mm, not 2.54mm. It may be a good idea to also add a 2.54mm pitch header?
FPGA inputs protected with basic RC filters (https://www.digikey.com/en/articles/pro ... lectronics)
stereo audio power amplifier (for mono Jamma, RTL should be set to give L output 0 and R channel should output R+L signal)
3v3, 5v and 12v fan headers, with standard PC pinout
Supplies +5V from edge connector to barrel connector for connection to DE10, through standard DE10 power socket and protection circuit.
Button connections to DE10 reordered from GnG test code, to make PCB cleaner.
R2 or R3 could be used to detect the board as they are not present on the MiSTer IO board: add weak pull up in FPGA and see if line is pulled low at reset. Using pins to detect the boards seems wasteful though and the MiSTer code mixes pin based board detection with flags from the ini file. Just using the ini file seems like a sensible basic option - like an old DOS configuration file for add on boards. These methods only really matter if a more open MiSTer fork is started. For only JAMMA use, there is no need for any configuration settings, and RTL can be compiled just for this type of board.

2 players
joystick + 6 buttons + coin + start per player
Select button - use to call up OSD so core can be selected
Test button - connect to core to access normal arcade PCB test menu.
CPS1 kick connector for buttons 4-6 (button 4 is also on the edge connector in standard MVS position). Connector pitch is 2.5mm, not 2.54mm. It may be a good idea to also add a 2.54mm pitch header?
FPGA inputs protected with basic RC filters (https://www.digikey.com/en/articles/pro ... lectronics)
stereo audio power amplifier (for mono Jamma, RTL should be set to give L output 0 and R channel should output R+L signal)
3v3, 5v and 12v fan headers, with standard PC pinout
Supplies +5V from edge connector to barrel connector for connection to DE10, through standard DE10 power socket and protection circuit.
Button connections to DE10 reordered from GnG test code, to make PCB cleaner.
R2 or R3 could be used to detect the board as they are not present on the MiSTer IO board: add weak pull up in FPGA and see if line is pulled low at reset. Using pins to detect the boards seems wasteful though and the MiSTer code mixes pin based board detection with flags from the ini file. Just using the ini file seems like a sensible basic option - like an old DOS configuration file for add on boards. These methods only really matter if a more open MiSTer fork is started. For only JAMMA use, there is no need for any configuration settings, and RTL can be compiled just for this type of board.
Re: MiSTerJamma Board
I'm still following this btw. I think it's an interesting idea, and could suit well for people who may own a given game but the PCB is failing. Rather than general pupose MiSTer, dropping a DE10-Nano with this board configured to boot to a single game could be a nice alternative.MisterJamma wrote:PCB (untested): https://github.com/MisterJamma/DE10Jamma
2 players
joystick + 6 buttons + coin + start per player
Select button - use to call up OSD so core can be selected
Test button - connect to core to access normal arcade PCB test menu.
CPS1 kick connector for buttons 4-6 (button 4 is also on the edge connector in standard MVS position). Connector pitch is 2.5mm, not 2.54mm. It may be a good idea to also add a 2.54mm pitch header?
FPGA inputs protected with basic RC filters (https://www.digikey.com/en/articles/pro ... lectronics)
stereo audio power amplifier (for mono Jamma, RTL should be set to give L output 0 and R channel should output R+L signal)
3v3, 5v and 12v fan headers, with standard PC pinout
Supplies +5V from edge connector to barrel connector for connection to DE10, through standard DE10 power socket and protection circuit.
Button connections to DE10 reordered from GnG test code, to make PCB cleaner.
R2 or R3 could be used to detect the board as they are not present on the MiSTer IO board: add weak pull up in FPGA and see if line is pulled low at reset. Using pins to detect the boards seems wasteful though and the MiSTer code mixes pin based board detection with flags from the ini file. Just using the ini file seems like a sensible basic option - like an old DOS configuration file for add on boards. These methods only really matter if a more open MiSTer fork is started. For only JAMMA use, there is no need for any configuration settings, and RTL can be compiled just for this type of board.
Re: MiSTerJamma Board
I've also been thinking along similar lines and have a couple of comments on what I see so far
IO board is meant to give 0-0.7v p2p into 75 ohm for VGA output, arcade expects 0-5v
so you need to add one of the many available VGA-Arcade amplifier circuits to the RGB output. (such as http://mirrors.arcadecontrols.com/evilt ... ga2arc.htm)
For stereo output I would leave it as neo geo pinout (as you have) but add a jumper on board to select the left output (at edge) selectable between GND and LEFT - that way you don't need to touch the core at all, and your cab will only ever receive what it can handle.
for mine I was also planning to use through hole resistors as per earlier version of IO board etc. as they are easier for most people to solder (besides I have loads of those and no surface mount at all - just like the bulk of my arcade PCB's) - but that is just preference, not going to affect the end result.
IO board is meant to give 0-0.7v p2p into 75 ohm for VGA output, arcade expects 0-5v
so you need to add one of the many available VGA-Arcade amplifier circuits to the RGB output. (such as http://mirrors.arcadecontrols.com/evilt ... ga2arc.htm)
For stereo output I would leave it as neo geo pinout (as you have) but add a jumper on board to select the left output (at edge) selectable between GND and LEFT - that way you don't need to touch the core at all, and your cab will only ever receive what it can handle.
for mine I was also planning to use through hole resistors as per earlier version of IO board etc. as they are easier for most people to solder (besides I have loads of those and no surface mount at all - just like the bulk of my arcade PCB's) - but that is just preference, not going to affect the end result.
Re: MiSTerJamma Board
yes, but then you also need his IO board which puts the price up a lot - if it's going into a cab it doesn't need to look pretty!Newsdee wrote:I notice there is also this, which is pretty much what you are after:
https://www.antoniovillena.es/store/pro ... a-adapter/
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
Macro - I followed your suggestion & added a mono/stereo jumper, rather than controlling this through the core.
V1.1 board is built and working perfectly. Sound and picture are great.
TDA7496 follows the arcade tradition of having far more power available than you would actually need!
The only issue I had with the PCB was the routing of the video output to the green pad of the Jamma edge connector which was routed into the side of the the pad. It still works fine, but was not what I had intended & looks messy on the PCB. This has been fixed in github.
PCB was $12 delivered, for 5 pieces from jlcpcb. I bought a lot more parts than needed for one PCB from LCSC for $20. I had to source the 1% 604R resistors and TDA7496 from Mouser, which cost me as much for postage as the parts
Assembly was fine. I would recommend using flux for the 604R resistor packs - it was a lot easier to "sweep solder" these down with flux.
In small batches, I'd expect the normal MiSTer hardware suppliers to be able to sell these for about the same as the standard "I/O Board"
Ghosts and Goblins fork updated for DE10Jamma: https://github.com/MisterJamma/Arcade-GnG_MiSTer
This core includes detection of the DE10Jamma board, using the pull-down resistors connected to the AUDIO_L and AUDIO_R pins, so should be compatible with existing MiSTer boards such as the analog "I/O Board".
"Select" button can be used to bring up the MiSTer OSD.
I am now trying to figure out how to control the OSD from the player 1 controls. Given there is an OSD button on the IO Board, I am hopeful there is a way to control the OSD from the GPIO/Arduino connectors in MiSTer already.
V1.1 board is built and working perfectly. Sound and picture are great.

TDA7496 follows the arcade tradition of having far more power available than you would actually need!
The only issue I had with the PCB was the routing of the video output to the green pad of the Jamma edge connector which was routed into the side of the the pad. It still works fine, but was not what I had intended & looks messy on the PCB. This has been fixed in github.
PCB was $12 delivered, for 5 pieces from jlcpcb. I bought a lot more parts than needed for one PCB from LCSC for $20. I had to source the 1% 604R resistors and TDA7496 from Mouser, which cost me as much for postage as the parts

Assembly was fine. I would recommend using flux for the 604R resistor packs - it was a lot easier to "sweep solder" these down with flux.
In small batches, I'd expect the normal MiSTer hardware suppliers to be able to sell these for about the same as the standard "I/O Board"
Ghosts and Goblins fork updated for DE10Jamma: https://github.com/MisterJamma/Arcade-GnG_MiSTer
This core includes detection of the DE10Jamma board, using the pull-down resistors connected to the AUDIO_L and AUDIO_R pins, so should be compatible with existing MiSTer boards such as the analog "I/O Board".
"Select" button can be used to bring up the MiSTer OSD.
I am now trying to figure out how to control the OSD from the player 1 controls. Given there is an OSD button on the IO Board, I am hopeful there is a way to control the OSD from the GPIO/Arduino connectors in MiSTer already.
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
Some pictures:










Re: MiSTerJamma Board
This looks awesome. I will definitely be one of the first in line.
I love that it uses a CPS kick harness which will come in handy for 4p support.
I love that it uses a CPS kick harness which will come in handy for 4p support.
Last edited by SteelRush on Thu Aug 20, 2020 12:02 pm, edited 1 time in total.
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
Looking at the pinout for 3 player (https://wiki.arcadeotaku.com/w/CPS1,_CP ... Connectors), I would need to add connections to pins 6 & 10 of the kick connector. There are still spare pins available on the DE10 to allow this without resorting to multiplexing the pins, which I would rather not do - certainly for the game controls (UDLR & 4 buttons).
The 4th player looks like it uses another kick connector. There are not enough FPGA pins left to simply wire those up.
https://www.arcade-museum.com/pinouts-game/7276.html
Moving all the start, coin & select inputs to a serial interface could work, without touching the player controls, but I would be surprised if there are enough people out there with 3 or 4 player cabinets for it to be worth the additional complexity for everyone else.
The board detection logic I added to the AUDIO_L & AUDIO_R pins allows for easy identification of 4 different boards, and still use a common set of RBF files. This could allow for a more complex 3/4 player board, if anyone wanted to make one.
The 4th player looks like it uses another kick connector. There are not enough FPGA pins left to simply wire those up.
https://www.arcade-museum.com/pinouts-game/7276.html
Moving all the start, coin & select inputs to a serial interface could work, without touching the player controls, but I would be surprised if there are enough people out there with 3 or 4 player cabinets for it to be worth the additional complexity for everyone else.
The board detection logic I added to the AUDIO_L & AUDIO_R pins allows for easy identification of 4 different boards, and still use a common set of RBF files. This could allow for a more complex 3/4 player board, if anyone wanted to make one.
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
I have Jotego's CPS1 core working with 2 players!
Changes;
https://github.com/MisterJamma/jtframe/tree/DE10
https://github.com/MisterJamma/Template ... /tree/HEAD
Changes;
https://github.com/MisterJamma/jtframe/tree/DE10
https://github.com/MisterJamma/Template ... /tree/HEAD
-
- Atarian
- Posts: 2
- Joined: Sat Apr 10, 2021 2:30 pm
Re: MiSTerJamma Board
Cool project! I love the mvs audio integration.
-
- Atarian
- Posts: 2
- Joined: Sat Apr 10, 2021 2:30 pm
Re: MiSTerJamma Board
Is this board still being developed? It would be cool to see changes made that sorgelig mentioned in regards to inputs, so it could officially be supported. The mvs compatibility really sets this unit apart from other options.
Re: MiSTerJamma Board
Your BOM and GitHub show 604R packs for the RGB channels, but the schematic has 475R. Which is correct for proper impedance? Also, C7/C11 is listed as 470nF in BOM and 100nF in the schematic. Datasheet for the TDA7496 shows 100nF so that should be the correct part.MisterJamma wrote: Sat Aug 15, 2020 7:37 pm PCB was $12 delivered, for 5 pieces from jlcpcb. I bought a lot more parts than needed for one PCB from LCSC for $20. I had to source the 1% 604R resistors and TDA7496 from Mouser, which cost me as much for postage as the parts![]()
This is a fantastic project and I hope you haven't abandoned it!
If anyone is interested I'll have completed boards assembled in a few weeks. Let me know via pm.
Last edited by PiXEL8 on Wed Jun 02, 2021 9:09 pm, edited 3 times in total.
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
been away for too long, sorry!
My hope is that this gets picked up by someone influential like jotego & is added to the 'unofficial' cores.
The board itself is complete - nothing more needed & could be supported officially if sorgelig wanted to. I did not see anything from sorgelig about changes to inputs to allow official support. There is a commercial/closed-source Jamma interface, but it has to use USB for input in order to work with sorgelig's cores, which means unnecessary input latency & jitter, and more cost. I wanted to make a board which is as close to the original as possible. So all input goes directly to the core. I know USB is not terrible, but with spare pins available on the FPGA, it just makes no sense to not use them.keilmillerjr wrote: Thu Apr 29, 2021 6:18 am Is this board still being developed? It would be cool to see changes made that sorgelig mentioned in regards to inputs, so it could officially be supported.
My hope is that this gets picked up by someone influential like jotego & is added to the 'unofficial' cores.
I used 604R for my own board - sorgelig mentioned both values having been validated for the analog IO board, although that will not have been with Jamma cabs! So long as you only use one value, I wouldn't expect the exact value to make a visible difference, and Jamma displays normally have a very wide range of input adjustment. It will change the source impedance, but I don't think this is defined in the Jamma specifications. If anyone knows better, please correct me.PiXEL8 wrote: Wed Jun 02, 2021 4:43 pm Your BOM and GitHub show 604R packs for the RGB channels, but the schematic has 475R. Which is correct for proper impedance?
C7 and C11 are both decoupling capacitors - C7 decouples the control voltage & C11 the supply rail. Using a somewhat larger value in the same package is fine in this case. This is why I added the footnote on GitHub "Values for some components do not match the schematic, and have been adjusted to reduce the number of different components."PiXEL8 wrote: Wed Jun 02, 2021 4:43 pm C7/C11 is listed as 470nF in BOM and 100nF in the schematic. Datasheet for the TDA7496 shows 100nF so that should be the correct part.
-
- Retro freak
- Posts: 12
- Joined: Mon Apr 13, 2020 9:21 pm
Re: MiSTerJamma Board
This is related to PiXEL8's question about the resistor values in the R/2R DAC. Jamma input is not terminated with 75R, it is relatively high impedance, which gives a much larger output signal.Macro wrote: Mon May 04, 2020 1:23 pm IO board is meant to give 0-0.7v p2p into 75 ohm for VGA output, arcade expects 0-5v