Jump to content
LaunchBox Community Forums

Autoboot Command / Script for MAME SWL (Computer Systems)


SiriusVI
 Share

Recommended Posts

Hey everyone,

over the last few days I've been trying to get various computer systems to work with mame and having games automatically loaded via autoboot command. With the help of @JoeViking245 and @kurzih I was able to get several the Acorn Electron roms to automatically boot when starting a rom via LaunchBox. You can accompish this either by using a command line or by editing the electron.ini in...system\mame\ini\ (if you use retroarch:

Example:

#
# SCRIPTING OPTIONS

autoboot_command          "*cat\n\n\n\n\n\n*run !boot\n"
autoboot_delay            2
autoboot_script          


Since I'm a total noob when it comes to figuring out working autoboot commands, I thought it would be great to have a thread where we can share and collect autoboot commands (or even scripts) for several computer systems when emulated with Mame. The idea is that anyone who has figured out how to autoboot roms for a particular system can post instructions here and I'm going to add them to the following chart:

System

Format

Command line Mame Standalone

Command line Mame RetroArch

Aamber Pegasus

cart

 

"pegasus -rp \"L:\LaunchBox\Games\Aamber Pegasus\" -rom1 \"%romfile%\""

ABC 80

flop

abc80 -skip_gameinfo -autoboot_delay "3" -autoboot_command "loadhiresinv\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nrun\n" -flop1

 

every rom needs its own command line, because the file name has to be typed out to boot each individual game. The command line above is an example for booting the game "hiresinv.zip".

Also, depending on your machine, you might need to add a couple of ” \n”.

 

Acorn Electron

cart

 

"electron -exp romboxp -rp \"L:\LaunchBox\Games\Acorn Electron\" -cart1 \"%romfile%\""

cass

electron -skip_gameinfo -autoboot_delay "2" -autoboot_command "*tape\nchain""""""\n" -cass

"electron -exp plus3,bios=1 -autoboot_delay 2 -autoboot_command *tape\nchain\"\"\"\"\"\"\n -rp \"L:\LaunchBox\Games\Acorn Electron\" -cass \"%romfile%\""

flop (ADFS)

electron -skip_gameinfo -autoboot_delay "2" -autoboot_command "*cat\n\n\n\n\n\n*run !boot\n" -flop

"electron -exp plus3,bios=1 -autoboot_delay 2 -autoboot_command *cat\n\n\n\n\n\n*run!boot\n -rp \"L:\LaunchBox\Games\Acorn Electron\" -flop1 \"%romfile%\""

flop (DFS) = .ssd files

electron -exp plus1 -cart1 seds -cart2 ap5 -skip_gameinfo -autoboot_command "*cat\n\n\n\n\n\n*exec !boot\n" -flop

 

some games need *run instead of *exec

"electron -exp plus1 -cart1 seds -cart2 ap5 -autoboot_delay 2 -autoboot_command *cat\n\n\n\n\n\n*exec!boot\n -rp \"L:\LaunchBox\Games\Acorn Electron\" -flop1 \"%romfile%\""

 

some games need *run instead of *exec

rom

 

"electron -exp plus2 -rp \"L:\LaunchBox\Games\Acorn Electron\" -rom1 \"%romfile%\""

Apple II

 

 

 

Apple IIGS

Flop (floppy games that need to boot from OS)

apple2gs -skip_gameinfo -flop3 "PATH TO System 6.0.1 DISK IMAGE" -flop4

"apple2gs -flop3 sys601:flop1 -rp \"L:\LaunchBox\Games\Arcade\" -flop4 \"%romfile%\""

 

Software list roms must be in the correct folders for this to work. So, in my example, the apple2gs roms should be placed here: “L:\LaunchBox\Games\Arcade\apple2gs”

BBC Micro

cass

bbcm -skip_gameinfo -autoboot_command "*tape\nchain""""""\n" -cass

 

floppydisk1

mame bbcb -skip_gameinfo -autoboot_delay "1" -autoboot_command "*cat\n*exec !boot\n" -floppydisk1 D:\mame\roms\bbcb\CastleQuest.zip

 

Comment: Can supply file format as .zip or the unzipped .ssd file

 

Camputers Lynx

cass

lynx128k -skip_gameinfo -autoboot_command "mload""""""\n" -cass

 

Dragon 32/64

cass (Basic Games)

dragon64 -autoboot_delay 4 -autoboot_command cload\n -cass

 

if emulating the Dragon 32 replace dragon64 with dragon32

 

cass (Machine Codes Games)

dragon64 -autoboot_delay 4 -autoboot_command cloadm\n -cass

 

if emulating the Dragon 32 replace dragon64 with dragon32

 

Fujitsu FM-7

 

To my understanding FM7 disks boot right away, so no need for an autoboot for them.

 

cass

fm7 -skip_gameinfo -autoboot_command "LOADM”“,,R\n" -autoboot_delay 4 -cass

 

(Note! Same thing with Sharp X1 the ”“ after LOADM are not the same as "", Mame will just quit if it's wrong. And unfortunately this machine does not auto-play the cassette unit automatically so you'll need to play the tape yourself within MAME after you see "Searching" after the autoboot command has been executed.)

 

Matra & Hachette Alice

cass

alice90 -skip_gameinfo -autoboot_command "cload\n" -cass

 

Memotech MTX512

cass

mtx512 -skip_gameinfo -autoboot_command "load""""""\n" -autoboot_delay 3 -cass

 

Oric Atmos / Oric 1

cass

orica -autoboot_delay 4 -autoboot_command cload\"\"\n -cass

 

if emulating the Oric 1 replace orica with oric1

 

Philips VG 5000

cass

vg5k -skip_gameinfo -autoboot_command "cload\n" -autoboot_delay 3 -cass

 

Sam Coupé

flop

samcoupe -skip_gameinfo -autoboot_command "\nBOOT\n" -flop1

 

It might be necessary to add an autoboot delay, such as:

samcoupe -autoboot_delay 2 -skip_gameinfo -autoboot_command "\nBOOT\n" -flop1

 

Sharp X1

cass

x1 -skip_gameinfo -autoboot_command "CHAIN”“\n" -autoboot_delay 9 -cass

 

(You need to be careful with the ”“ they are not "" :D)

 

Tandy Radio Shack Color Computer

flop

 

 

flop (Pac-Man)

coco3 -autoboot_delay 2 -autoboot_command run\"pacman\"\n -flop1

 

flop (Donkey Kong)

coco3 -autoboot_delay 2 -autoboot_command run\"donkey\"\n -flop1

 

flop (Donkey Kong Remix)

coco3 -autoboot_delay 2 -autoboot_command loadm\"dkremix\":exec\n -flop1

 

There is a long wait (over 1 minute) before Donkey Kong Remix opens!

 

flop (Assembly Demo)

coco3 -autoboot_delay 2 -autoboot_command loadm\"asm-demo\":exec\n -flop1

or

coco3 -autoboot_delay 2 -autoboot_command loadm\"asm-auto\":exec\n -flop1

 

 

 

 

 

Directories such as: "L:\LaunchBox\Games\Acorn Electron\" must be replaced with your own directories. They must point towards where your bios file(s) for the system in question is located.

Do you think this is a good idea? I have started with the Acorn Electron autoboot commands and I hope I didn't make any mistake putting those together?. Feel free to participate by adding to this list.

Edited by SiriusVI
  • Like 1
Link to comment
Share on other sites

I've just realized that I may need to include a separate column for mame in retroarch, since it's a bit more complicated to pass on the autoboot command in retroarch. In fact, I'm stuck and I have no idea how to continue.

I'm able to run a game and pass on certain parts of the commands, but not all of them. Here's an example. This is what's inside my "Extra command-line Parameters" for Acorn Electron cassette tapes:

 

"electron -autoboot_delay 2 -autoboot_command *tape\nchain""""""\n -rp \"L:\LaunchBox\Games\Acorn Electron\" -cass \"%romfile%\""

 

Everything boots fine, the delay is set to "2" and on screen I can see that the autoboot sequence is being entered fine until it gets to the quotes. This is what I'm seeing on screen:

>*tape
>CHAIN

This is what I should be seeing:

>*tape
>CHAIN""""""

As you can see it stops after CHAIN and right before the 6 """""". So it seems like the Extra command line parameters field is unable to pass along the command to type quotes.

Does anyone have an idea how I can make this happen? I've tried different variations, all of which lead to the game not launching at all, such as:

"*tape\nchain""""""\n"

or

*tape\n"chain"""""""\n

Edited by SiriusVI
Link to comment
Share on other sites

This looks like a very good and needed project.

With MAME itself (not RA core) I use a slightly different command line for the cassette games.

electron -autoboot_delay 2 -autoboot_command *tape\nchain\"\"\n -cass

And if using the electron.ini file instead
autoboot_delay 2
autoboot_command *tape\nchain""\n

By the way is there a reason why you use 6 double quotes with CHAIN instead of the normal 2? 
 

Link to comment
Share on other sites

21 minutes ago, spycat said:

By the way is there a reason why you use 6 double quotes with CHAIN instead of the normal 2? 

If I use less than 6 I will get an error message, such as: Missing """ (depending on how many quotes I'm missing.)

But I might have made another error at some point, I really don't know what I'm doing half the time, haha. I'm still learning. I will be sure to test your versions as well and include them in the chart, although I can only test with RetroArch at the moment, since I don't have Mame Standalone setup.

 

Actually, I'm already stuck trying to autoboot Apple II Cassettes. Some Apple II cassettes require to switch to Integer Basic before you can start the tape and load it. You enter Integer Basic by holding CTRL + B and then press RETURN. Is there a way to send a command like this to mame "Press Return while holding CTRL +B"? Also, how can I do something like "send [F2]"?

Link to comment
Share on other sites

I'm the opposite in that I only use MAME itself.
I can't help with the Apple as I don't emulate it.
 
Here are a couple of straightforward ones.

Oric Atmos (if emulating the Oric 1 replace orica with oric1).

Command line MAME standalone parameters
orica -autoboot_delay 4 -autoboot_command cload\"\"\n -cass

As all Oric game tapes use the same loading commands you could just use system ini files, oric1.ini and orica.ini containing
autoboot_delay 4
autoboot_command cload""\n


Dragon 32/64 emulating the Dragon 64 (if emulating the Dragon 32 replace dragon64 with dragon32).

Command line MAME standalone parameters for BASIC games
dragon64 -autoboot_delay 4 -autoboot_command cload\n -cass

Command line MAME standalone parameters for machine coded games
dragon64 -autoboot_delay 4 -autoboot_command cloadm\n -cass
 

Link to comment
Share on other sites

@spycat Thank you so much. I've included your systems in the chart.

Is there any wy to easily distinguish between Dragon 32/64 Basic and Machine Coded games? E.g. do the file extensions differ or is there a clue in the hash file?

I may figure out apple2 mself, It's just that I lack some basic skills, such as not knowing how to send a button combination or function keys. If I type: "-autoboot_command F2", it just literally types F2 (which makes sense), so I need a command that tells it to send [F2].

Edited by SiriusVI
Link to comment
Share on other sites

Hi!
 

Here's a few more I've been using myself, so why not share them too. Some are useful for floppies some cassettes only:
 

Sharp X1:
x1 -skip_gameinfo -autoboot_command "CHAIN”“\n" -autoboot_delay 9 -cass
(You need to be careful with the ”“ they are not "" :D)

Sam Coupé:
samcoupe -skip_gameinfo -autoboot_command "\nBOOT\n" -flop1

BBC Micro:
bbcm -skip_gameinfo -autoboot_command "*tape\nchain""""""\n" -cass

Camputers Lynx:
lynx128k -skip_gameinfo -autoboot_command "mload""""""\n" -cass

Matra & Hachette Alice:
alice90 -skip_gameinfo -autoboot_command "cload\n" -cass

Memotech MTX512:
mtx512 -skip_gameinfo -autoboot_command "load""""""\n" -autoboot_delay 3 -cass

Philips VG 5000:
vg5k -skip_gameinfo -autoboot_command "cload\n" -autoboot_delay 3 -cass


And Bonus for Apple IIGS for floppy games that need to boot from OS:
apple2gs -skip_gameinfo -flop3 "PATH TO System 6.0.1 DISK IMAGE" -flop4

Apple II floppies boot fine (at least the ones I've tested) without autoboot: apple2ee -skip_gameinfo -flop1


Good night! :)

Link to comment
Share on other sites

One way of determining whether a Dragon game uses CLOAD or CLOADM is by checking the game's original cassette or inlay for details. The majority of commercially published games use CLOADM.
Also, a small number of games will not open automatically but need you to type RUN (for BASIC files) or EXEC (for binary ones) once the tape has finished loading. I don't know how this could be automated. 

The Tandy TRS-80 floppy games Pac-Man, Donkey Kong and Donkey Kong Remix and the Assembly Demo use unique loading commands and so custom parameters are needed in LaunchBox.

coco3 -autoboot_delay 2 -autoboot_command run\"pacman\"\n -flop1

coco3 -autoboot_delay 2 -autoboot_command run\"donkey\"\n -flop1

coco3 -autoboot_delay 2 -autoboot_command loadm\"dkremix\":exec\n -flop1

There is a long wait (over 1 minute) before Donkey Kong Remix opens!

coco3 -autoboot_delay 2 -autoboot_command loadm\"asm-demo\":exec\n -flop1
or
coco3 -autoboot_delay 2 -autoboot_command loadm\"asm-auto\":exec\n -flop1

Link to comment
Share on other sites

Thanks @spycat and @kurzih!

7 hours ago, spycat said:

One way of determining whether a Dragon game uses CLOAD or CLOADM is by checking the game's original cassette or inlay for details. The majority of commercially published games use CLOADM.

There wouldn't happen to be a list somewhere, would there?

10 hours ago, kurzih said:

And Bonus for Apple IIGS for floppy games that need to boot from OS:

How may games are there that need this method? In the mame ash file I found only 2 games:

Thexder v1 (no OS, not self booting)

Cribbage King / Gin king v1.01 (no OS, not self booting)

 

Is that all or are there more? (Or did I misunderstand something?)

Link to comment
Share on other sites

22 minutes ago, SiriusVI said:

How may games are there that need this method? In the mame ash file I found only 2 games:

Thexder v1 (no OS, not self booting)

Cribbage King / Gin king v1.01 (no OS, not self booting)

 

Is that all or are there more? (Or did I misunderstand something?)

You're welcome!

There indeed isn't probably many Apple IIGS games that require that. I'm afraid I don't have a proper answer/list of games that do. There was the unreleased Shuffle Puck Cafe that probably requires the OS too (says unable to load ProDos otherwise).

But I would think that many that don't need the OS do still work with the OS option, if one doesn't mind clicking the game from the OS to start it. As I said, that was just a "bonus" command line :D. I have this option as the default command line and if a game wouldn't work then I'd use a custom command line without the OS. Probably a matter of preference and I kind of like the old school 6.01 IIGS OS. I don't mind loading from there.

EDIT: maybe the "none boot" mention (from the game files' name) in the TOSEC IIGS collection might work for a list of games that requires the OS.

Edited by kurzih
Link to comment
Share on other sites

No prob! :)

Sorry nothing here. I did try to find out if that would be possible earlier and I suspect my skills for coding some "sendkeys" would have hit the wall anyway :D 

That would have saved a lot of command lining indeed

But do tell us if you manage to find a way!

Link to comment
Share on other sites

18 hours ago, kurzih said:

But do tell us if you manage to find a way!

I've spent hours googleing but found no real solution that works for me, the reason being most likely that I have realy no knowledge of how command lines actually work. I imagine there must be a universal command that tells a commind line to send a specific key combination or function keys. there must be, right? Maybe I don't find anything because the answer is too obvious and the internet is rolling its eyes on me. 

Link to comment
Share on other sites

Unfortunately, I'm not getting any further. With acorn electron, this command automatically triggers the tape to play in mame:

"*tape\nchain""""""\n"

But I can't figure out how to do the same in apple 2. It's possible that it cannot be done via autoboot_command, since that just passes plain text. Maybe there is a text command that hits "play" on apple2, but I couldn't find one.

The other option would be to send specific keys and key combinations. @JoeViking245 taught me that for some apple games, you must:

1. Hold CTRL + B and then press Enter to get into Integer Basic mode

2. Play the tape by pressing F2

3. Typing "LOAD" then press Enter

4. Wait till the process is finished and then type "RUN" and press Enter

This can maybe be done via a LUA script. Here are some key combinations:

https://github.com/me2d13/luamacros/wiki/List-of-Keys

I've tried creating a script file with some code from mame tutorial and loading it with the an apple game, but nothing happens. I don't know if the script is even recognized:

https://docs.mamedev.org/techspecs/luaengine.html

I've created a plain text file with the code in it as the tutorial specified and then pointed the autoboot_script from the "apple2.ini" to the file, like this:

# SCRIPTING OPTIONS
#
autoboot_command          
autoboot_delay            2
autoboot_script           "M:\LaunchBox\Emulators\RetroArch\system\mame\scripts\apple2_cass_autoboot.txt"
console                   0
plugins                   1
plugin                    
noplugin  

As I said, the effect was that the rom still booted, but nothing happens. Maybe someoe with a little more experience than me can help me how to run a simple script.

Edited by SiriusVI
Link to comment
Share on other sites

On my part I only managed to get into Integer basic mode without pressing anything like this:

apple2e -skip_gameinfo -autoboot_command "INT\n" -autoboot_delay 12 -flop1 "PATH TO IMAGE DISK dos33mst.dsk" -cass

Notes:

  • this partial solution works with the Apple II/e model and I loaded "Apple DOS 3.3 BASICS (1980)" disk to do that.
  • Main issue (same as yours): the cassette does not start itself when writing "LOAD" after the "INT" which is executed fine with autoboot.
     

The game I got to work was the cassette game bomber1.zip. But I needed to manually start the tape and then wrote "LOAD", waited, and then wrote "RUN" to finally get the game running.

Hopefully this might give a clue to a solution where everything is automated, but I doubt we might find one since cassette loading times differ and we need that "run" command after the program has been loaded. 

Edited by kurzih
Link to comment
Share on other sites

Thanks so much for looking into this @kurzih!

18 minutes ago, kurzih said:

but I doubt we might find one since cassette loading times differ and we need that "run" command after the program has been loaded. 

Well, couldn't we just set a fairly long loading time and just accept that this is one bitter pill to swallow for the benefit of an automated launch? Besides, Retroarch can fast forward, so waiting times are irrelevant anyway for people using it.

18 minutes ago, kurzih said:

Main issue: the cassette does not start itself when writing "LOAD" after the "INT" which is executed fine with autoboot.

This is probably the biggest issue as far as I understand. Maybe some of the awesome and talented people in this forum will look into it? Please ??

Edited by SiriusVI
Link to comment
Share on other sites

12 minutes ago, JoeViking245 said:

@SiriusVI Try changing the file extension to .lua so that it knows it's a Lua script.


apple2_cass_autoboot.lua

Not sure if that'd work, but 1 sure way of finding out.:D

Yeah, I'v tried that. In fact I had it as .lua first until I've seen the tutorial mention a plain text file. 

Edited by SiriusVI
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...