> Dumb question: Since Pong is now available in MAME, could other discrete games from
> the bronze age be added?
In theory, Gotcha, Quadrapong and Rebound could be added to MAME without any new TTL devices required to be simulated. All someone would need to do is create the "netlist" schematic description for each game, plus the glue code that connects it into a typical MAME driver. And the bar may have been lowered to the point that even a less talented dev like myself might be able to give it a try. (see below)
Any other game from DICE would require anything from minimal to substantial work to model the additional devices they require.
> Would it matter whether or not DICE has tried to make them
That doesn't necessarily help or hurt, but code from DICE can't be directly dropped in. But it needs only modest amounts of adaptation.
Two issues which were conquered, as I understand it: sourcecode licensing and code compatibility:
a. Prior to the MAME relicensing project, MAME and DICE had incompatible licenses. However, eventually MAME and DICE developers made a gentleman's agreement to permit sharing relevant code between the two projects. DICE's code, while licensed GPLv3, had permission to be used under the GPLv2 license when bundled with MAME. MAME reaped the benefits with this when Pong Doubles was added. Meanwhile, MAME's relevant netlist/game code would be permitted to be transferred to DICE's license. Or something like that.
Ever since MAME was relicensed to overall GPLv2 or greater (and more than 90% of the code 3-clause BSD licensed), this is not any more an issue.
b. MAME's schematics description language ("netlist"), developed for Pong, was not compatible with DICE's description language. However, couriersud later made some changes and wrote a library to simplify compatibility.
According to couriersud, if MAME had all the same TTL devices modeled that DICE had, you'd be able to largely port over DICE's drivers, replacing terminology for terminology, but approximately 10% of the code would need to be changed due to the design differences between MAME and DICE.
Excerpt from an email from couriersud from late 2013:
Migrating DICE netlists should be pretty easy. There's some work needed though
a) DICE works on physical pin assignments, i.e. connect some pin to pin 12. I prefer "connect something to CLK" - assuming pin 12 is the CLK signal. However, with the netlist design you can take an existing chip and just write a wrapper which adds the necessary aliases.
b) For the connections DICE uses preprocessor macros as well. We'll just need to redefine the macro.
Manual work is needed for the "analog" parts like e.g. NE555. But this is only 10% of the work.
Some examples if somebody already wants to start ...
DICE: CHIP("D8", 7410),
Netlist: netlist.register_dev(NET_NEW(7410), "D8");
DICE: CONNECTION("F8", 11, "F9", 14),
Netlist: netlist.register_link("F8" "." "11" , "F9" "." "14");
Pretty straightforward to derive macros CHIP and CONNECTION here.
This would also mean, that we could leave a lot of the DICE work untouched (e.g. copy+paste) and give appropriate credit for the hard work the colleagues from the DICE project did.
Note that MAME's netlist syntax may have changed a little since 2013.
... all that said, in general MAMEdevs enjoy reinventing the wheel, ie. "Not Invented Here" syndrome.
I made this pastebin to compare the two systems in terms of devices simulated and what's still required for each game in DICE several months ago. It's possible it's not as simple as this, either.
I would not recommend reading this without being passing familiar with both MAME netlist and DICE systems and/or TTL devices.