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: Homebrew arcade console project: R-K'd  (Read 2752 times)

0 Members and 1 Guest are viewing this topic.

olin

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19
  • Last login:June 30, 2018, 01:54:44 pm
  • I want to build my own arcade controls!
Homebrew arcade console project: R-K'd
« on: October 02, 2016, 06:28:50 pm »
I'm posting my small project called R-K'd, which is a home brew arcade console. The work I did covers the case design (front and back panels for the case), hw design (custom video card  that outputs RGB video signal to a TV with SCART connector) and also software (the emu fronted and customised MAME emulator that employs the video card).

The front panel has 2 USB slots for joysticks or other USB controller and flash disk.  Also there's coin and start buttons there.  Back panel has power connector, power switch, audio out connector, TATE switch and SCART connector for RGB TV output. Both panels are 3D printed using ABS, the center of the case is a regular instrument case you can buy on e-bay.

Internally the console sports 2 mini computers: ODROID-XU4 running at 2GHz handling the emulation and Beaglebone Green generating the video signal via custom circuit.

I also made very utilitarian front-end that allows to switch the UI between TATE and YOKO mode. Customised MAME emulator fully supports non-standard video refresh rates and various video resolutions without scaling or other undesired effects. This is my second prototype I made, the first one runs horizontal games, this one is dedicated for vertical games. The whole console draws about 8W under the load and is more or less silent (I replaced the stock fan on XU4 by silent NOCTUA fan).

The whole thing could be probably placed inside a cab, but as my space at home is very limited the console format works for me the best. Overall it was a great fun designing and making it during my spare time at weekends and nights. In total it took about 18 months from the initial thoughts till the finish.

Snapshots follow:

Slippyblade

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3167
  • Last login:June 05, 2024, 10:30:57 am
  • And to the death god we say, "Not today!"
Re: Homebrew arcade console project: R-K'd
« Reply #1 on: October 02, 2016, 08:32:29 pm »
What kind of guts are in there?

olin

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19
  • Last login:June 30, 2018, 01:54:44 pm
  • I want to build my own arcade controls!
Re: Homebrew arcade console project: R-K'd
« Reply #2 on: October 03, 2016, 04:41:09 pm »
What kind of guts are in there?

The main board is an ODROID-XU4 mini computer that has 4 ARM Cortex A15 CPU cores and 4 ARM Cortex A7 cores. In the console I only enabled single A15 core to simplify CPU cooling (basically the CPU generates less heat, which prevents CPU throttling) over long play sessions. The A15 Core runs at 2GHz and is able to keep the frequency long term (several hours) in my setup. The A7 cores support the video image transport to videocard and are clocked between 1.2GHz to 1.4GHz depending on the game. ODROID-XU4 has 2 Gigs of onboard RAM, so plenty for MAME. Operating system wise it runs on Armbian linux optimised for servers (no graphical interface, no background updates, no printing background tasks or other rogue services). All cores use preformance CPU governor - that is the CPU freq is fixed and doesn't change when the CPU load drops. That's important in order to keep smooth gameplay.

The second minicomputer - Beaglebone Green  (BBG)- is ARM Cortex A8 board with 512 MB of RAM clocked at 1GHz and it serves as an arcade videocard. This board also runs Linux (this time I used even more minimal distro built via 'buildroot' project, so the whole operating system takes only about 19 MBytes packed). Mounted on top of BBG is ARVID cape, which converts digital video signals to analogue RGB and composite sync signals. If I'm not mistaken these signals should be compatible with some arcade monitors, they are just trimmed at 1V (co conform to European TV specs) so colors might look quite dark on an Arcade monitor (could be solved by increasing the attenuation resistor on each color component, so the output is up to 3.3V).

Both mini computers are connected via ethernet cable, compressed (zlib) video data are sent from XU4 to BBG. This works surprisingly quite well, 100MBit Eth interface has no issues with the stream throughput and BBG is able to decompress the frames with minimal latency (lesss than 1ms).  XU4 has no internal audio card so I had to resort to a USB dongle audio card (hidden under the XU4 on the picture). The whole setup is able to run many 2D games at full speed using arvidMAME v.0.163, but currently struggles speed-wise with advanced machines like taito F3 or risc based machines (MIPS, SH2, PPC etc.). Generally I'd say 95% of 2D machines released prior 1993 run full speed, after that the results may vary depending on the machine architecture. To give you an idea, for example raiden2 runs full speed (later seibu 2D games as well), toaplan 2D games and cave shmups based on M68k run full speed too (all with correct refresh rates :).
The console is powered by 5V 4A power supply that came with the XU4 and seems to be OK when 2 joysticks or a joystick and USB flash disk is connected.

Bellow is commented 'guts' picture:

nexusmtz

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 489
  • Last login:June 01, 2022, 03:14:22 am
Re: Homebrew arcade console project: R-K'd
« Reply #3 on: October 04, 2016, 03:19:04 am »
I'm posting my small project called R-K'd, which is a home brew arcade console. The work I did covers the case design (front and back panels for the case), hw design (custom video card  that outputs RGB video signal to a TV with SCART connector) and also software (the emu fronted and customised MAME emulator that employs the video card).

ARVID is a great example of using a BB as a peripheral to solve a specific problem in an os-independent (from the host os standpoint) and future-proof manner.  I understand that it's not at DisplayLink's level yet, but that doesn't mean it couldn't be.

Have you been talking with Calamity here? It seems that Groovymame and ARVID might fit together well.

It's cool to see ARVID as a part of another project. I hope that more people will become interested in it after seeing it in a reproducible implementation. Good luck and nice work!

stigzler

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 983
  • Last login:March 21, 2025, 06:36:05 am
  • It seemed like a good idea at the time....
    • Mago Arcade
Re: Homebrew arcade console project: R-K'd
« Reply #4 on: October 04, 2016, 07:07:30 pm »
A fellow Odroid XU4 owner! Nice bit of hardware patching going on in this - also handy to know about the CPU throttling as going to be running Upscaled PSX, N64 + PSP on my build. If it gets choppy - I know where to look.