ksherlock / ample

Apple Emulator Frontend for MAME

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  1. ibm/rtpc
  2. ibm/rs6k7009
  3. hp/hp9k310
  4. hp/hp9k320
  5. hp/hp9k330
  6. hp/hp9k332
  7. hp/hp9k340
  8. hp/hp9k360
  9. hp/hp9k370
  10. hp/hp9k380
  11. hp/hp9k382
  12. dec/d2k300axp
  13. dec/d2k500axp
  14. dec/dpcaxp150
  15. dec/ds2100
  16. dec/ds3100
  17. dec/ds5k133
  18. dec/pdp11qb
  19. dec/pdp11ub
  20. dec/pdp11ub2
  21. intergraph/ip2000
  22. intergraph/ip2400
  23. intergraph/ip2500
  24. intergraph/ip2700
  25. intergraph/ip2800
  26. intergraph/ip6000
  27. intergraph/ip6400
  28. intergraph/ip6700
  29. intergraph/ip6800
  30. mips/rc2030
  31. mips/rc3230
  32. mips/rs2030
  33. mips/rs3230
  34. sgi/crimson
  35. sgi/indigo2_4415
  36. sgi/indy_4610
  37. sgi/indy_4613
  38. sgi/indy_5015
  39. sgi/indigo
  40. sgi/pi4d30
  41. sgi/pi4d35
  42. sgi/indigo_r4000
  43. sgi/indigo_r4400
  44. sgi/pi4d20
  45. sgi/pi4d25
  46. sgi/iris3130
  47. sgi/4d410
  48. sgi/o2
  49. sgi/octane
  50. sgi/pi4d50
  51. sgi/pi4d70
  52. sony/nws3860
  53. sony/nws1580
  54. sony/nws3260
  55. sony/nws3410
  56. sony/nws5000x
  57. sun/sun1
  58. sun/sun2_120
  59. sun/sun2_50
  60. sun/sun3_110
  61. sun/sun3_150
  62. sun/sun3_260
  63. sun/sun3_50
  64. sun/sun3_60
  65. sun/sun3_e
  66. sun/sun3_460
  67. sun/sun3_80
  68. sun/sun4_110
  69. sun/sun4_20
  70. sun/sun4_25
  71. sun/sun4_300
  72. sun/sun4_400
  73. sun/sun4_40
  74. sun/sun4_50
  75. sun/sun4_60
  76. sun/sun4_65
  77. sun/sun4_75
  78. sun/sun_s10
  79. 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.

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:

  1. DEC VT52 - works fine
  2. DEC VT100 - works fine
  3. DEC VT101 - works fine
  4. DEC VT102 - works fine
  5. DEC VT240 - works fine
  6. DECstation 2100 - initializes correctly and hangs (as expected)
  7. DECstation 3100 - initializes correctly and hangs (as expected)
  8. DECstation 5000/133 - initializes correctly (with expected errors) and gets to SRM
  9. 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
  10. 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
  11. HP 9000/310 - works fine
  12. 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
  13. HP 9000/330 - works fine
  14. HP 9000/332 - works fine
  15. HP 9000/340 - works fine, seems to be some quoting issues in the CLI generator, maybe this applies to all?
  16. HP 9000/360 - works fine
  17. HP 9000/370 - works fine, doesn't find a boot device, maybe MAME?
  18. HP 9000/370 - works fine
  19. HP 9000/382 - works fine
  20. 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
  21. IBM PC RT 015 - same as 010
  22. IBM PC RT 020 - same as 010
  23. IBM PC RT 025 - same as 010
  24. IBM PC RT A25 - same as 010
  25. Intergraph machines power on, but will need more investigation, as I am not familar with CLIX
  26. MIPS RC2030 - works fine
  27. MIPS RS2030 - works fine
  28. MIPS RC3230 - works fine
  29. MIPS Magnum 3000 - works fine
  30. SGI IRIS Indigo - works fine
  31. SGI Indigo 2 - works fine
  32. SGI IRIS Indigo R4000 - works fine
  33. SGI IRIS Indigo R4400 - black screen, likely MAME
  34. SGI Indy R4600 100 - works fine
  35. SGI Indy R4600 133 - works fine
  36. SGI Indy R5000 - works fine
  37. SGI Personal IRIS 4D/20 - works fine
  38. SGI Personal IRIS 4D/25 - works fine
  39. SGI Personal IRIS 4D/30 - black screen, likely MAME
  40. SGI Personal IRIS 4D/35 - works fine
  41. Sony NWS-3260 - works fine
  42. Sony NWS-3410 - flashing green cursor
  43. Sony NWS-1580 - works fine
  44. Sony NWS-5000X - works fine
  45. Sun-1 - works fine
  46. Sun 2/50 - works fine
  47. Sun 2/120 - works fine
  48. Sun 3/50 - works fine
  49. Sun 3/60 - works fine
  50. Sun 3/110 - works fine
  51. Sun 3/75-180 - works fine
  52. Sun 3/260 - works fine
  53. Sun 3/E - black screen
  54. Sun 3/80 - black screen
  55. Sun IPC - works fine
  56. Sun IPX - works fine
  57. Sun SLC - works fine
  58. Sun ELC - white screen
  59. 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

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.