Computer: Game: Platform
FPGA Dongle for MAME Arcade Acceleration   (+4)  [vote for, against]
(Via USB or some other ports like thunderbolt or lightpeak)

Current MAME Arcade is a massive resource hog. This is because it has emphasis on accurate game emulation. This is not helped by the fact that some are "completely undocumented and cannot be reverse-engineered in detail" and must be emulated low level. Emulations by software is slower than running on 'actual hardware', such as the actual original chip... or in our case, having a similar function duplicated in an FPGA.

What if we could accelerate a MAME Arcade session by using a pluggable FPGA on a 'dongle'. This device functions via placing the virtual arcade's CPU (or other MCUs like FXchip in NES) schematic into the FPGA dongle instead of the computer. This will allow for fast and accurate emulations of the virtual machine's CPU in the FPGA.

Having it as a dongle format would be very useful, as you can easily boost the power of any laptop or PCs in emulating a MAME session.

tl;dr: Instead of software emulation of the hardware of old arcade games, use an FPGA dongle to simulate most of it.

p.s. Other application for the dongle. Instant and portable 'custom acceleration of stuff' such as converting video files, or code breaking.
-- mofosyne, Aug 11 2011

MAME http://en.wikipedia.org/wiki/MAME
Emulation software [mofosyne, Aug 11 2011]

Make it a bi-directional USB and plug a joystick into the backside.
-- RayfordSteele, Aug 11 2011


MAME is simply a very poor simulator. Due to the number of chip sets, on board hardware, etc, the software is running with the full capacity to simulate ANY game, while each individual game will only call on a narrow range of resources. Placing the software on an external media does nothing to address this problem since the ROM is going to be loaded into the "playground" that MAME is using on the hard drive before it begins emulation. There is no benefit to this idea unless your dongle can be miraculously blessed with the circuitry found in the cartridge which, as you pointed out was "completely undocumented and cannot be reverse-engineered in detail".
-- WcW, Aug 11 2011


We are not placing software into an external media. The FPGA is not a file storage device. Instead it actually 'creates the physical' connections using basic logic gates. So it emulates the arcade hardware down to the gate level in 'hardware'.

Anyway, my bad in saying 'reversed engineered'. Specifically this device would be useful for simulating 'chips' which had been 'decapped' and their connections read out to something like 'VHDL' codes(describes connections between gates).
-- mofosyne, Aug 12 2011


It's an interesting concept, but there are many technical (and perhaps intellectual) barriers to such an idea, and speaking as an actual MAME developer, the user proposing the idea does not appear to have a correct notion of what it is that makes MAME slow. Furthermore, his explanation that this could help "decapped" chips is invalid, as the decapsulation process is only used on chips that have some manner of internal ROM. Indeed, custom gate arrays are not a target of the MAME Decapping Project due to the fact that they lack anything that can be "read out" in the process of decapsulation. For that matter, none of the decapping targets for MAME are remotely slow on a modern PC, the user is quite deluded. The arcade systems that are slow in MAME - specifically, ones that use high-powered 3D GPUs or one single high- powered CPU - cannot be made any faster through any sort of FPGA-based parallel process, full stop. The former is often too complex to be reasonably re-written in Verilog or VHDL, and the latter is simply an insolubly linear problem that parallelization via an FPGA cannot help.
-- MooglyGuy, Aug 12 2011


Is USB bandwidth really that good?
-- nineteenthly, Aug 12 2011


It is an interesting idea to have an kind of versatile accelerator, that could be used for emulation MAME, and others (Amiga) or to speed up any other kind of simulation/emulation. Puting everything into an FPGA makes it very complex, costy, and is unneeded. Better to have devices hooked-up to the FPGA, like (GPU) processors, and use the FPGA partly to define the architecture (bus logic & glue) and do some conversions. An PC can handle the peripherals like printers and floppy (emulation). I don't think the size would fit on a USB stick, and prefer ethernet instead of USB. This could make the device also stand-alone in a local-network: a server could handle the mass-storage, and an DVB-stream could be output on your television set. And of course remote controled key/joy as input device(s).
-- AdeasAT, Mar 14 2012



random, halfbakery