AdvMESS For Dummies - a basic guide
-
Hmm, it doesn't want to work with bbcm at all. Replaced every entry in EMULATORS.CFG and BBCMICRO.RC, but crashed every time.
-
I can boot from bbcm, but it's still trying to be a Master 128 because I get a
"This is not a language"
Which is a Master error, since the Model B will always look for a language from the highest rom downwards. This can be fixed on a Master with "*CONFIGURE LANG 12", but you need to then do a shift-break - and I don't know what the break key is.
More testing to do.
Edit:
bbcb - works. Boots to BBC Computer 32k, Acorn DFS.
But, nothing boots. Not a single game. *cat lists disk contents, but *!boot just takes me back to a command prompt with a few characters. Beginning to think this is a lost cause, and this Mess emulation is just too old. Need a more upto date Mess. -
@John_RM_70 Huh. Yet bbcb works perfectly for me, shows up as 32K and all games load fine with the CHAIN command. Weird business.
(Not as weird as the bug I just got trying to run Castle Quest, though. All the keys work fine, and appear to map to the joystick as normal, but you can't jump left. Jumping right, no problem. Left, no dice. All other games mapping the same keys to the same joystick, absolutely fine, jump in any direction you like. It's just this one.)
-
@SpudsMcToole Could you share your bbcb.zip ?
Mine conforms to the Mess required sizes and correct crc's, yet I can only get games to work with the bbcbp128.zip.
Even more weird, I can't get a single game to work from here -> http://www.bbcmicro.co.uk/index.php
I just get "Bad program", when I use *!BOOT - on all the games I have downloaded.
Yet, they all work on my real Master 128, and on Beebem on my PC.
I can't even save any configs from inside Mess, especially since I want a custom resolution and multiplier - which helps with the scaling on a CRT.This is the most bizarre, weird, and damn frustrating emulator I have ever used.
-
@John_RM_70 That's the exact same place I've been getting most of mine from, so it shouldn't be the files.
The forum won't let me attach bbcb.zip, not sure how to add it, but I'm pretty sure it's just the one from the BIOS site listed in the original post.
-
Do our configs differ ?
Here is minedefault = "advmess"
advmess = "/opt/retropie/emulators/advmame/bin/advmess bbcb -cfg /opt/retropie/configs/mame-advmame/bbcmicro.rc -floppy %ROM%"It can't be anything in bbcmicro.rc, there really isn't anything in there that would do this.
-
@John_RM_70 I've got:
default = "advmess" advmess = "/opt/retropie/emulators/advmame/bin/advmess bbcb -cfg /opt/retropie/configs/mame-advmame/bbcmicro.rc -floppy %ROM%"
Which seems to be identical. I don't think it can be bbcmicro.rc that's causing your problem, because if there's so much as a single character out of place there you'll just get dumped back to ES, you won't get to the BBC OS screen.
-
@SpudsMcToole @John_RM_70 I switched back to the
bbcb
BIOS and all 4 games I've so far got ready are working - Thrust, Planetoid, Elite and Chuckie Egg. (With Elite, I found that the command suggested by you, John,*!BOOT
worked instead ofCHAIN "LOAD"
).What I did notice from John's bios list was that some of the bioses would need to be renamed - for example,
dfs09.rom
appears asdfs090.rom
in the zip file of bioses I have. -
@spud11 This command - CHAIN "LOAD" - is for loading cassettes. Most of the games out there are .ssd (single sided disk) or .dsd(double sided disk) and to load them it's normally *!BOOT, or *LOADER, etc... On a real BBC, you can just press shift+break and disks boot, but I don't think this version of mess has a break key defined.
I had a look through bbc.c on github, and I think I got the bios names wrong. There it says this.
https://imageshack.com/a/img922/9927/5OcQYP.png
I have used a png pic because I can't get the formatting to work properly, and the text was all over the place.
Anyway, that list makes more sense, such as bbcm = BBC Master.
I don't think dfs09.rom or dfs090.rom, makes much difference. "dfs", is just Disk Filing System, and I think the most used is 1.44.
I think there should be a parent bios, bbca.zip, which would contain ALL the roms. Then each system would have it's unique rom, such as bbcb.zip, or bbcm.zip, only containing what it needs. Will try this, in a minute.@spud11 When you boot the Model B rom, do you see this ?
BBC Computer 32K
Acorn DFS
BASICOr do you see anything different ? I'm thinking my problem is the dfs.
-
@John_RM_70 That is exactly the boot text that I get.
-
@John_RM_70 I've also had a look at Advance Mame's documentation: https://www.advancemame.it/doc-script . You are right. There's no simulated key for
shift-break
:EVENT key_a, key_b, key_c, key_d, key_e, key_f, key_g, key_h, key_i, key_j, key_k, key_l, key_m, key_n, key_o, key_p, key_q, key_r, key_s, key_t, key_u, key_v, key_w, key_x, key_y, key_z, key_0, key_1, key_2, key_3, key_4, key_5, key_6, key_7, key_8, key_9, key_0_pad, key_1_pad, key_2_pad, key_3_pad, key_4_pad, key_5_pad, key_6_pad, key_7_pad, key_8_pad, key_9_pad, key_f1, key_f2, key_f3, key_f4, key_f5, key_f6, key_f7, key_f8, key_f9, key_f10, key_f11, key_f12, key_esc, key_backquote, key_minus, key_equals, key_backspace, key_tab, key_openbrace, key_closebrace, key_enter, key_semicolon, key_quote, key_backslash, key_less, key_comma, key_period, key_slash, key_space, key_insert, key_del, key_home, key_end, key_pgup, key_pgdn, key_left, key_right, key_up, key_down, key_slash_pad, key_asterisk_pad, key_minus_pad, key_plus_pad, key_period_pad, key_enter_pad, key_prtscr, key_pause, key_lshift, key_rshift, key_lcontrol, key_rcontrol, key_lalt, key_ralt, key_scrlock, key_numlock, key_capslock, key_lwin, key_rwin, key_menu.
This means the
script_play
command would need to type out the whole*1BOOT
for cassettes and theLOADER
command etc for others. -
Thanks spud.
I had another look on github, and also couldn't find a shift-break.This means the script_play command would need to type out the whole *1BOOT for cassettes
*!BOOT is for disks only. For cassettes, you need CHAIN "", or CHAIN"gamenamexxx". And, you might also need to manually "Play" the virtual cassette drive from the tab menu "Tape Control". I think it would depend on the Mess emulation. Does it emulate a cassette in real-time ? Or is it a sort of quick load ? I haven't tried cassettes, yet. If it's a quick load, then it should load cassettes automatically.
I still can't fathom this out, it's plain bonkers. If I boot to a Master 128, then games work. But then, I think the 128 used a different/newer dfs, or it's using a watford dfs. If I boot to a Model B, then nothing works, although I can *CAT disks, so something is working - just not *!BOOT. -
@John_RM_70 Damn. That's a bit problematic. There is therefore a huge number of variables - what roms/games we've downloaded, what format they are in (tape/disk), what bioses we've each got, what commands are needed to get things working and what model of BBC we're each using. I really hadn't realised just how many commands there appear to be to get games working.
It's definitely a quick load, no matter which command you use. 3 of the games I've got work with the CHAIN command so they must be tapes/cassettes. They load instantaneously. The version of Elite I have loads with the *!BOOT command so that must be a disk. It loads instantaneously as well.
-
I had a chat with a old mate I went to school with and he said something along these lines.
CHAIN "LOADER"
Will work for a disk image, normally a cassette converted to a disk image. CHAIN, loads the first program as a "basic" program. You can shorten CHAIN "" with CH."GAMEXX". If it's not a basic program, you will get a error message
"Bad program"
You can then try "*RUN GAMEXX"
I tried the CHAIN method and ran out of memory, so if anyone gets "No Room" error, then you simply type MODE 7.
I have been successful in running games directly, not using *!BOOT. So, CHAIN "CHUCKIE" - for chuckie egg. *!BOOT - for me, only runs on the Master 128 roms, it doesn't work in the Model B roms. Weird.Also, pressing the dot key "." will change videomode, so will have to see where that is.
-
@John_RM_70 Sounds like it's going to just be trial and error for each game. I can't see any other way to make things a bit simpler.
It's a real pity
beebem
doesn't have sound support as it would be the best solution, I think. -
@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.
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.