Add MAME configs for UNIX workstations and servers
ajacocks opened this issue · comments
Would you consider adding the configurations for the following UNIX workstations and servers to Ample? It's such a fantastic front end, and it'd be great to do all of my non-gaming MAME emulation using it:
- ibm/rtpc
- ibm/rs6k7009
- hp/hp9k310
- hp/hp9k320
- hp/hp9k330
- hp/hp9k332
- hp/hp9k340
- hp/hp9k360
- hp/hp9k370
- hp/hp9k380
- hp/hp9k382
- dec/d2k300axp
- dec/d2k500axp
- dec/dpcaxp150
- dec/ds2100
- dec/ds3100
- dec/ds5k133
- dec/pdp11qb
- dec/pdp11ub
- dec/pdp11ub2
- intergraph/ip2000
- intergraph/ip2400
- intergraph/ip2500
- intergraph/ip2700
- intergraph/ip2800
- intergraph/ip6000
- intergraph/ip6400
- intergraph/ip6700
- intergraph/ip6800
- mips/rc2030
- mips/rc3230
- mips/rs2030
- mips/rs3230
- sgi/crimson
- sgi/indigo2_4415
- sgi/indy_4610
- sgi/indy_4613
- sgi/indy_5015
- sgi/indigo
- sgi/pi4d30
- sgi/pi4d35
- sgi/indigo_r4000
- sgi/indigo_r4400
- sgi/pi4d20
- sgi/pi4d25
- sgi/iris3130
- sgi/4d410
- sgi/o2
- sgi/octane
- sgi/pi4d50
- sgi/pi4d70
- sony/nws3860
- sony/nws1580
- sony/nws3260
- sony/nws3410
- sony/nws5000x
- sun/sun1
- sun/sun2_120
- sun/sun2_50
- sun/sun3_110
- sun/sun3_150
- sun/sun3_260
- sun/sun3_50
- sun/sun3_60
- sun/sun3_e
- sun/sun3_460
- sun/sun3_80
- sun/sun4_110
- sun/sun4_20
- sun/sun4_25
- sun/sun4_300
- sun/sun4_400
- sun/sun4_40
- sun/sun4_50
- sun/sun4_60
- sun/sun4_65
- sun/sun4_75
- sun/sun_s10
- sun/sun_s20
This is a lot of drivers, I know. So, would you alternatively consider making the interface driven from config files, so that I could create a UNIX drivers list, along with their associated configs (RAM, boards, etc.)?
That is a big list.
The UI is driven by config files (example) which are pre-generated from the mame -listxml
output because -listxml
is often inconsistent and lies about some things so I don't want to do it at runtime.
However, there is a hardcoded list of slots within Ample so that needs to be changed before it will work for arbitrary machines. That is something I've been meaning to address so I'll work on that.
Do any of them work? Most are flagged as MACHINE_NOT_WORKING
or MACHINE_IS_SKELETON
.
Yep! Quite a few work rather well.
Offhand:
- HP 9000/3xx (https://wiki.mamedev.org/index.php/Driver:HP300)
- HP 9000/4xx (https://wiki.mamedev.org/index.php/Driver:Apollo)
- SGI Indy (https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=114911#Post114911)
- SGI Indigo (https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=122528&Searchpage=1&Main=9487&Words=irix&Search=true#Post122528)
- Sun SPARC (https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=44666&page=515 and https://computernewb.com/wiki/Boot_SPARCStation_1_in_MAME)
- Intergraph (https://wiki.mamedev.org/index.php/Driver:InterPro)
I'd be happy to help, if there is something that I can do
Here is a version of Ample Lite with most of the machines above. You'll need to bring your own MAME.
Looks good! I tested with MAME 0.260 from https://sdlmame.lngn.net/
I used the following launch shell script:
#!/bin/bash
#
# Obtain path to script.
#
# Note that 'grealpath' provides reliable soft-link resolution, without requiring
# any Bash gymnastics.
#
script_file=$(/opt/local/bin/grealpath "${0}")
script_dir=$(dirname "${script_file}")
cmd="${script_dir}/mame"
bgfx_path="${script_dir}/bgfx"
languagepath="${script_dir}/language"
pluginspath="${script_dir}/plugins"
artpath="${script_dir}/artwork"
hashpath="${script_dir}/hash"
ctrlrpath="${script_dir}/ctrlr"
cmdline=()
cmdline+=( "${cmd}" )
cmdline+=( -bgfx_path "${bgfx_path}" )
cmdline+=( -languagepath "${languagepath}" )
cmdline+=( -pluginspath "${pluginspath}" )
cmdline+=( -artpath "${artpath}" )
cmdline+=( -hashpath "${hashpath}" )
cmdline+=( -ctrlrpath "${ctrlrpath}" )
# Note that Mame handles duplicate arguments, using the last one found.
# Net-Net, there's no need to check whether the user specified the same
# parameters, as theirs will take precedence.
"${cmdline[@]}" \
"${@}"
I used https://arcade.vastheman.com/minimaws/machine/ as a reference, and verified by running manually from the shell.
Testing the systems with default config, one by one, yielded these results:
- DEC VT52 - works fine
- DEC VT100 - works fine
- DEC VT101 - works fine
- DEC VT102 - works fine
- DEC VT240 - works fine
- DECstation 2100 - initializes correctly and hangs (as expected)
- DECstation 3100 - initializes correctly and hangs (as expected)
- DECstation 5000/133 - initializes correctly (with expected errors) and gets to SRM
- PDP-11 (QBUS) - works fine, except that attaching scsi disks to the TTI QTS-1 fails due to command-line generation problems
- Ample generates this for for a qts-1 scsi host in sbus slot 1:
- mame.sh pdp11qb -skip_gameinfo -nosamples -window -nomax -video bgfx -rs232 null_modem -qbus:1 qts1 -:scsibus:0 aplcdsc
- The correct command-line should be:
- mame.sh pdp11qb -skip_gameinfo -nosamples -window -nomax -video bgfx -rs232 null_modem -qbus:1 qts1 -qbus:1:qts1:scsibus:0 aplcdsc
- There should also be a BIOS version choice for the QTS-1 of 1.7 or 2.3, and an RS-232 interface
- Ample generates this for for a qts-1 scsi host in sbus slot 1:
- the pdp11ub and pdp11ub2 seem to be exact clones, and not actual unibus pdps, so we can probably mark these as non-working for now
- HP 9000/310 - works fine
- HP 9000/320 - works, but there seems to be an extra pair of ' characters in the CLI generator somewhere. For example:
- mame.sh hp9k320 -skip_gameinfo -nosamples -window -nomax -video bgfx -sl1 98550 -sl2 '' -hard1 /Users/ajacocks/Documents/hp9k320-hdd.img -cdrm1 /Users/ajacocks/Downloads/hpux9_install.iso
- HP 9000/330 - works fine
- HP 9000/332 - works fine
- HP 9000/340 - works fine, seems to be some quoting issues in the CLI generator, maybe this applies to all?
- HP 9000/360 - works fine
- HP 9000/370 - works fine, doesn't find a boot device, maybe MAME?
- HP 9000/370 - works fine
- HP 9000/382 - works fine
- IBM PC RT 010 - can't select 5.25" disks for 5.25" drives. 3.5" drives seem to allow disk selection. Seems to suffer from similar CLI issues as the qbus pdp-11
- for example, this:
- mame.sh rtpc010 -skip_gameinfo -nosamples -window -nomax -video bgfx -:fdc:1 '' -flop1 '/Users/ajacocks/Downloads/IBM AIX 2.1.1 (5.25-1.2mb) [IBM RT]/maint/disk01.img'
- should be:
- mame.sh rtpc010 -skip_gameinfo -nosamples -window -nomax -video bgfx -isa6 fdc -isa6:fdc:fdc:0 35hd -isa6:fdc:fdc:1 525hd
- I need to go through the floppy selection logic with a finer-toothed comb. 3.5" HD floppy drives don't seem to show up in the command-line, but 3.5" DD ones do
- for example, this:
- IBM PC RT 015 - same as 010
- IBM PC RT 020 - same as 010
- IBM PC RT 025 - same as 010
- IBM PC RT A25 - same as 010
- Intergraph machines power on, but will need more investigation, as I am not familar with CLIX
- MIPS RC2030 - works fine
- MIPS RS2030 - works fine
- MIPS RC3230 - works fine
- MIPS Magnum 3000 - works fine
- SGI IRIS Indigo - works fine
- SGI Indigo 2 - works fine
- SGI IRIS Indigo R4000 - works fine
- SGI IRIS Indigo R4400 - black screen, likely MAME
- SGI Indy R4600 100 - works fine
- SGI Indy R4600 133 - works fine
- SGI Indy R5000 - works fine
- SGI Personal IRIS 4D/20 - works fine
- SGI Personal IRIS 4D/25 - works fine
- SGI Personal IRIS 4D/30 - black screen, likely MAME
- SGI Personal IRIS 4D/35 - works fine
- Sony NWS-3260 - works fine
- Sony NWS-3410 - flashing green cursor
- Sony NWS-1580 - works fine
- Sony NWS-5000X - works fine
- Sun-1 - works fine
- Sun 2/50 - works fine
- Sun 2/120 - works fine
- Sun 3/50 - works fine
- Sun 3/60 - works fine
- Sun 3/110 - works fine
- Sun 3/75-180 - works fine
- Sun 3/260 - works fine
- Sun 3/E - black screen
- Sun 3/80 - black screen
- Sun IPC - works fine
- Sun IPX - works fine
- Sun SLC - works fine
- Sun ELC - white screen
- Sun 1+ - works fine
There are lots of card selections that aren't implemented for various systems, but I can go through those in detail in a different report. This one took a few hours to test out, already!
Thanks for the additions!
- Verified that commit dc6a215 fixed the 5.25" FDD issue with IBM RT.
- Verified that the SCSI device command-line selection seems to be fixed by commit 43a7f31
- The hp9000 slot selection cli generation is better, but you can still end up with blank slot entries by removing default cards
- for example, removing the BASIC ROM card from slot 2:
- mame.sh hp9k340 -skip_gameinfo -nosamples -window -nomax -video bgfx -sl2 '' -hard1 /Users/ajacocks/Documents/ip2000.chd -cdrm1 /Users/ajacocks/Downloads/hpux9_install.iso
- for example, removing the BASIC ROM card from slot 2:
Thanks for the testing and feedback. Ample tries to keep the previous selection for slots of the same name when the machine changes. For Apple II and Mac I think that makes sense, but I'll think about if there's a better way to handle that. You can right click and reset slots.
Glad to help!
I’d like to be able to assist with the configuration of existing machines and the addition of new ones, but I’m still working to understand the Python code.
The plists are pretty easy to understand, so I will probably start there.