mame
mame copied to clipboard
pc_lpt_device does not allow for internal Centronics default slot handling
https://github.com/mamedev/mame/blob/ddbdbb3a616a704a9d0bb43731e424b2bf98ba2b/src/devices/machine/pc_lpt.cpp#L49
There's currently no way to override pc_lpt_device with arbitrary internal slots, required by Arcade games such as
atari/mediagx.cpp and misc/neomania.cpp.
There are two courses of action that I see here:
- Make the
pc_lpt_deviceto have an optional extra argument at constructor time for the default tag, move the declaration tocentronics_devicesanyway (asdevice.option_add_internal?). - Make getter virtuals for
centronics_devicesand the default option tag, making the overrides local to the driver.
Of the two, I'd much prefer option 1. In principle, I think that interface devices should be decoupled from the peripheral connector slots that they normally control as much as is practical.
Option 1 should be fine for now.
The Centronics port device itself has design issues, but that’s a bigger issue to deal with.