Advance Mess and BBC Micro and joystick control
-
@caver01 Thanks for having another look. That's really appreciated. I had a look on the Advance Mame forums. Not a lot of guidance there.
@edmaul69 I've dug around a bit on the internet, but I couldn't find any guidance for a tape switch like -cart or -floppy for Advance Mess. On the MESS forums, there's reference to tape support being broken and then fixed as of MESS 0.129, with the suggestion being that loading tapes by typing *TAPE and then LOAD "" (or something like that) is the way to go. My recommendation would be to find a repository of floppy (.ssd) files instead. I can't help there given the forum rules but googling will no doubt be of assistance.
-
@spud11 ok i found ssd files but they do the same thing. Did you use -cart or -floppy in the emulatots.cfg?
-
@spud11 also does it auto load the games or do i need to type something?
-
@edmaul69 You will need the -floppy switch. For example:
sudo /opt/retropie/emulators/bbcmicro/advmess bbcb -cfg /opt/retropie/configs/bbcmicro/advmess.rc -floppy /home/pi/RetroPie/roms/bbcmicro/Thrust.ssd
(Note that I have installed advmess in a different location from advance mame and I've got a separate advmess.rc.)
The
-floppy
switch is just like putting the game into the BBC's floppy drive. It does not start the game automatically. You will still need to typeCHAIN "THRUST"
(or whatever the rom's name is) manually as it won't auto load. The discussion I'm having with @caver01 above is about trying to automate the loading/starting of the games. -
@spud11 do i need to type the parenthesisis in bbc micro? The parenthesis key types an asterik
-
@spud11 said in Advance Mess and BBC Micro and joystick control:
script_emulation \ . . . delay(200); \
Hey, try getting rid of that trailing backslash on the very last delay(200) script command. That character denotes a broken line to be continued on the next line, and as this is the end of your script, you don't want one because whatever is next in your .rc file will be added to the very long script command.
-
@edmaul69 It depends on whether you have a US or UK keyboard. You need the parentheses. Try holding
shift
and pressing the2
key. -
@caver01 Thanks. No, same outcome unfortunately.
-
@spud11 Ok, one more thing, I noticed that in the script you have above, the second to last line does NOT have the backslash, but that one should have it, because your script command continues on the next line with that last delay(200);
-
@caver01 Hi. I added the
\
back in on the second last line, but again it didn't work. There must be something fundamentally flawed with the script or perhaps how I've included it in theadvmess.rc
file. -
@spud11 said in Advance Mess and BBC Micro and joystick control:
@caver01 Hi. I added the
\
back in on the second last line, but again it didn't work. There must be something fundamentally flawed with the script or perhaps how I've included it in theadvmess.rc
file.There is some ambiguity in the documentation about simulate_event() vs. simulate_key(). I wonder if you can use simulate_event? Also, you might troubleshoot using a much smaller script, something that only types C or something shorter at first.
Also, I would probably try a script_play as I think this is what I did to get it to type scroll lock a while back.
It seems like a powerful feature. I wish we could get you up and running with it.
-
@spud11 Also, regarding flaws, these backslashes have to be correct as I have noted (add back the missing one on second-to-last line, and remove the trailing one at the end) or else the command will break the .rc file.
Another test would be to avoid the use of backslashes completely. Maybe TABs in the file is messing it up. I think my early script simply had everything on one line.
This would be a valid test:
script_play delay(20000); simulate_key(key_c,100);
Of course, it would only type the C key after 20 seconds, but it could be a start.
Is there something else in your .rc file messing this up? A wonky comment line or something?
-
@spud11 first off my problem. i cat get any games with more than one word in the name to work. so if say i name 3d Convoy to 3dconvoy and enter that name in advmess bbc commandline i get bad filename. if i name it convoy inside and outside of advmess i get file not found. do you know how i know what to name them?
now to make the config correctly. so i am not sure why you set up an emulators.cfg for 1 game? you can set it up for all games. open up your bbc micro's emulators.cfg file and change it to this:
advmess= sudo /opt/retropie/emulators/bbcmicro/advmess bbcb -cfg /opt/retropie/configs/bbcmicro/advmess.rc -floppy %ROM% default = "advmess"
now all of your games will work on 1 config.
-
@caver01 I'm now getting to the
BASIC
screen again (which is good), so theadvmess.rc
file is definitely working once again. (I suspect because I use Windows, the line endings had reverted to Windows rather than Unix format.)But both the
script_play delay(20000); simulate_key(key_c,100);
andscript_emulation delay(20000); simulate_key(key_c,100);
don't produce anything on screen.I've pulled the timings back a bit as follows:
script_play delay(2000); simulate_key(key_c,100);
andscript_emulation delay(2000); simulate_key(key_c,100);
. No go on these either.I've then tried
script_play delay(2000); simulate_event(key_c,100);
andscript_emulation delay(2000); simulate_event(key_c,100);
Neither work. What about the
scroll lock
issue? Perhaps I first need to try to get the emulator intopartial emulation
mode first? Not sure. -
I want to make sure that I can use my joystick for every game and I was finding that the
advmess.rc
wasn't saving any of my customised input configurations for each game.The easiest way I could find to set up the joystick was to use
xboxdrv
. Because each BBC Micro game has a different keyboard setup, I can't useruncommand-onstart
to invokexboxdrv
becauseruncommand-onstart
includes system-based, not individual game-based,xboxdrv
configurations.To ensure that I could set up individual game-based
xboxdrv
configurations, I need to have separate bash scripts for each game which first invokexboxdrv
then commenceadvmess
emulation. -
@spud11 since you have it going to a specific .rc file wouldnt it just be easier to point to say thrust.rc for thrust and have the controls for thrust in that rc file and make one for each game than trying to setup xboxdrv for every game?
-
@edmaul69 Yes, it would but the individual game confis wouldn't save in advmess.rc.
-
@spud11 but if it saves it as a whole system in the config and not individual config it wouldnt matter if only one game is looking at that .rc file. which shouldnt have to be called advmess.rc either.
-
A couple of notes about the configs. . . I was going to have separate .rc files per floppy disk image for my AppleII MESS setup when I discovered that it was adding my keyboard adjustments with prefixes for each disk image file. That meant I could use one .rc file for everything. Once you have a prefix, you could theoretically use the same prefix for the scripts--one line for each disk image--assuming we get scripting working.
As for my scroll lock, I never did find it it. I think it got erased on an old SD card. In any case, I was getting out of full emulation mode on my keyboard only so that I could invoke the TAB menu and configure keys. I don't think this is an issue for what you are trying to accomplish.
-
@caver01 and @edmaul69 Agree with you both. Trouble was no changes were saving to the advmess.rc at all, so I couldn't rely on advmess for input changes. No idea what the problem was. I might have another go at it in a couple more days.
So with advmess messing up for me, it wound up just being easier to note the default keyboard controls for each game and then use xboxdrv.
About separate advmess.rc files, I need separate advmess.rc files for each game if I want to include a script_play like CHAIN "THRUST" or CHAIN "ELITE". I can't have both in the same advmess.rc file. Unfortunately, I can't get any of these scripts to work.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.