AdvMESS For Dummies - a basic guide
-
@John_RM_70 I wanted to automate starting Elite, given that it is a disk rather than a cassette. Advmess doesn't have inbuilt simulated keys for the exclamation mark or for the asterisk, but the following
script_play
command successfully types*!BOOT
at the commandline:bbcb[home_pi_retropie_roms_bbcmicro_elite]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_1,75); delay(75); simulate_key(key_b,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_enter,75); delay(75);
Elite will now start automatically.
-
@spud11 Thanks. Is it possible to do this with a wildcard, instead of a specific game ?
I was thinking of Dragon32. Almost all games are CLOADM, vary rare to use CLOAD (Basic). It would be great to use this for testing games, since a lot of games produce IO Errors - although this seems like a emulator problem, rather than a broken take image. -
@John_RM_70 I'm not sure about the wildcard scenario, but @teller has pointed out that you can use a more standardised script for most games: https://retropie.org.uk/forum/topic/13017/advance-mess-and-bbc-micro-and-joystick-control/57
bbcb/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_lshift,150); simulate_key(key_2,50); delay(200); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_lshift,150); simulate_key(key_2,50); delay(200); simulate_key(key_enter,75); delay(75);
I can't see why you couldn't adapt this script for the Dragon 32, for example. Personally, I'm using xroar for Dragon 32 emulation.
-
Thanks for that, I will have a good read.
Take my word on this, but Mess is far better than Xoar. The sound is much better, less crackly. And I found the image quality to be a lot better, although I am on a CRT - I see a better defined, slightly sharper image. This could be the better scaling in Mess, I use Magnify x2 + Integer scaling. -
@John_RM_70 That's good to know. I was planning on "advancing" (pun definitely intended) my knowledge of advmess by setting up a few more systems, such Super Cassette Vision, Arcadia 2001 etc, anyway so will give Dragon 32 a go too.
Let me know whether things improve for you on the BBC Micro front. There shouldn't be any reason why it won't work. I'll also add a few more games and see if I run into any problems similar to those you have.
-
@spud11 said in AdvMESS For Dummies - a basic guide:
I can't see why you couldn't adapt this script for the Dragon 32, for example. Personally, I'm using xroar for Dragon 32 emulation.
I'm trying to do this right now. Getting some weird teething errors when I try to replicate the approach used in the BBC Micro .RC file directly, but am experimenting.
Also, MESS doesn't seem to recognise the .CAS file when I boot it - it thinks there's no tape inserted and I have to go into the MESS menus and select it manually.
-
@spud11 I still can't get *!BOOT to work in the BBC Model B rom, I have to load the actual game name, directly. I might have to have 2 entries in ES, one for Model B 32k, one for BBC Master.
@SpudsMcToole Make sure your .cas files are all lower case, and not zipped. I had a similar issue, so I unzipped them all and made sure everything was the same case.
-
@John_RM_70 It is very strange. I've just had a look at my roms - all of them are in the ssd format, meaning they must be disks. Yet, some load with
CHAIN "LOAD"
, a couple have to be loaded withCHAIN
followed by the romname and Elite will only work with*!BOOT
. The only thing I can think of is that you will probably need to do trial and error for all of them and see which work and probably download a few different romsets. At least once you've got a rom working you can use thescript_play
command to automate the process.I also agree with your suggestion that you'll need separate setups for the BBC B and for the 128, particularly if it is the only way for you to get some games working. That's really easy to do with Attract Mode, but I'm less sure about emulationstation as it's been more than 2 years since I used that front end.
-
@John_RM_70 I've just set out below the
script_play
commands I'm using.The methodology I've used is one where I have 2 standard/generic
script_play
commands - one for the 128 and the other for the B - which just chain "loads" games. (That will apply to all games I add in the future. Most games I've got now seem to work with this standard command.) Where that command hasn't worked (eg Chuckie Egg and Thrust), then I've used a specific chain "name" command which overrides the standard "load" command. And for Elite, I've used the boot command because that works for me. With Elite, I noticed on the disk (using *CAT) it has a file called !BOOT. None of the other disks have that.bbcb/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_k,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_2,50); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_1,75); delay(75); simulate_key(key_b,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_chuckie]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_k,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_2,50); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_elite]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_1,75); delay(75); simulate_key(key_b,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_thrust]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75);
-
Me too, I couldn't fire up Elite.sdd in bbcb so i switched to bbcbp128 and made a script writing *!BOOT and it's booting fine now:
bbcbp128[home_pi_retropie_roms_bbcb_elite]/script_play delay(750); simulate_key(key_scrlock,75); delay(75); simulate_key(key_lshift,150); simulate_key(key_quote,75); delay(75); simulate_key(key_lshift,150); simulate_key(key_1,75); delay(75); simulate_key(key_b,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_enter,75); delay(75);
-
@spud11 That looks great, spud. I will have a closer look a bit later. Whats annoying is this. *!BOOT, still doesn't work for me in BBCB, yet mostly works in BBC Master mode. On real hardware, *!BOOT works perfectly because it's the first thing executed when you press shift+break. If it doesn't exist, it's normally *LOADER, or even CHAIN "FILENAME", but works on both real B and Master. Although the Master still has issues with a few games.
Of course, all this could be eliminated if we had a decent port of Beebem. I tested all these games on Beebem, on my PC, and had no problems at all.
At the moment, I'm better off sticking with real hardware. The problem with that is I can't run a Master and Model B, at the same time, on the same TV - I simply don't have the space. -
@John_RM_70 It's unfortunate about beebem. There is in fact a lot of work being done by people on the stardot forum in respect of various BBC emulators. It's an extremely active community. Although there is discussion of porting the latest emulators to linux, there is no updated "modern" emulator for linux that works with sdl (ie suitable for Retropie).
The problem with beebem seems to be a syncing problem between audio and video. It will require someone with programming knowledge to fix it unfortunately. I wish that were me, but isn't!
-
Unfortunately Firetrack won't work properly. i tested it on bbcb and bbcp128. the game starts fine, but is buggy during gameplay.
-
Unfortunately Astroblaster by Tricky also doesn't work. Same issue like Firetrack.
-
@teller Yes, quite a few games simply don't work in the emulator. None of the super-modern semi-emulated remakes like Astro Blaster or Space Invaders or Centipede do. Them's the breaks.
-
Yep. Same problem as teller.
I will try them on real hardware, and Beebem on PC, just to make sure nothing is missing. -
@SpudsMcToole Firetrack was from 1987.
https://en.wikipedia.org/wiki/Firetrack -
@teller said in AdvMESS For Dummies - a basic guide:
@SpudsMcToole Firetrack was from 1987.
https://en.wikipedia.org/wiki/FiretrackI know. So what? No emulator on any platform runs 100% of games perfectly.
-
Beebem, ran Firetrack, perfectly. As did my Master 128.
This Mess emulator, needs a update, or do a port of Beebem. -
@John_RM_70 Sure, that'd be great. Until that happens we're just going to have to deal with the fact that the Retropie MESS emulation doesn't.
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.