h a l f b a k e r y
We have a low common denominator: 2
add, search, annotate, link, view, overview, recent, by name, random
news, help, about, links, report a problem
or get an account
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
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.
Emulation software [mofosyne, Aug 11 2011]
||Make it a bi-directional USB and plug a joystick into the backside.
||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".
||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).
||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.
||Is USB bandwidth really that good?
||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).