MiSTerJamma Board

Moderators: Mug UK, Zorro 2, spiny, Greenious, Moderator Team

Post Reply
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

MiSTerJamma Board

Post by MisterJamma »

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.
User avatar
Newsdee
Atari God
Atari God
Posts: 1561
Joined: Fri Sep 19, 2014 8:40 am

Re: MiSTerJamma Board

Post by Newsdee »

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?
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

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.
User avatar
Newsdee
Atari God
Atari God
Posts: 1561
Joined: Fri Sep 19, 2014 8:40 am

Re: MiSTerJamma Board

Post by Newsdee »

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/
ElDoctor
Atari nerd
Atari nerd
Posts: 46
Joined: Thu Mar 05, 2020 7:10 pm

Re: MiSTerJamma Board

Post by ElDoctor »

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...
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

PCB (untested): https://github.com/MisterJamma/DE10Jamma
Image

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.
reflex
Atari freak
Atari freak
Posts: 52
Joined: Sat Jan 11, 2020 4:03 am

Re: MiSTerJamma Board

Post by reflex »

MisterJamma wrote:PCB (untested): https://github.com/MisterJamma/DE10Jamma
Image

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.
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.
Macro
Atari User
Atari User
Posts: 35
Joined: Wed Jul 18, 2018 2:35 pm

Re: MiSTerJamma Board

Post by Macro »

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.
Macro
Atari User
Atari User
Posts: 35
Joined: Wed Jul 18, 2018 2:35 pm

Re: MiSTerJamma Board

Post by Macro »

Newsdee wrote:I notice there is also this, which is pretty much what you are after:
https://www.antoniovillena.es/store/pro ... a-adapter/
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!
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

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. :D
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.
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

Some pictures:

Image
Image
Image
Image
Image
SteelRush
Atarian
Atarian
Posts: 1
Joined: Sun Jul 05, 2020 3:22 pm

Re: MiSTerJamma Board

Post by SteelRush »

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.
Last edited by SteelRush on Thu Aug 20, 2020 12:02 pm, edited 1 time in total.
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

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.
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

keilmillerjr
Atarian
Atarian
Posts: 2
Joined: Sat Apr 10, 2021 2:30 pm

Re: MiSTerJamma Board

Post by keilmillerjr »

Cool project! I love the mvs audio integration.
keilmillerjr
Atarian
Atarian
Posts: 2
Joined: Sat Apr 10, 2021 2:30 pm

Re: MiSTerJamma Board

Post by keilmillerjr »

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.
PiXEL8
Atarian
Atarian
Posts: 1
Joined: Mon May 24, 2021 6:16 pm

Re: MiSTerJamma Board

Post by PiXEL8 »

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 :(
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.

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.
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

been away for too long, sorry!
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.
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.

My hope is that this gets picked up by someone influential like jotego & is added to the 'unofficial' cores.
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?
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 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.
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."
MisterJamma
Retro freak
Retro freak
Posts: 12
Joined: Mon Apr 13, 2020 9:21 pm

Re: MiSTerJamma Board

Post by MisterJamma »

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
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.
Post Reply

Return to “FPGA Chat”