Acorn BBC Micro Emulator (current?)
-
@Lord-Vek said in Acorn BBC Micro Emulator (current?):
I manually copied the files for which you asked me in your previous answer. Now, I can see the two instances of b-em: b-em_allegro and b-em-pico-pi. The question now is, which one should I install? What are their differences?
I must say it's already a long time ago since I made these module-scripts and I am not really sure on which linux version they still work.
I did not implement flags for linux distributions that don't work.
So it can be that bullseye/debian 11 doesn't work.
I think however Buster/debain 10 should work.As far as I can look up and can remember the info is as follows :
b-em-pico-pi is based on the b-em fork of kilograham :
https://github.com/kilograham/b-em
A b-em version adjusted to work on the rpi-pico.
In the readme you can read that the version can also work on a regular rpi or pc.
So my module-script is created for installing it like that.
The advantage is that this version works with the correct speed whereas the latest b-em, from that time, had issues running with the correct speed. It also has a different menu than the normal b-em.
It's basically a rpi-pico build running it on a normal rpi.
A loader script is also added which uses matchbox to get fullscreen and quit option and xdotool for autoloading software (disk only).The other b-em-allegro one is a normal version but we picked it out of the b-em repository on very old commit which worked the best on the rpi.
Basically this means that it also works with the correct speed.
The advantage or disadvantage is (how you look at it) it has a normal menu like the normal b-em version.
A loader script is also added which uses matchbox to get fullscreen and quit and xdotool for autoloading software (tape or disk(.uef or .ssd)).As far as I can remember :
The pico-pi version runs demos and games with advanced graphics pretty good, not really sure if the the allegro version does the same. However the allegro version can run tapes and more disk formats.The basic difficulty is that when source code gets older it sometimes will not compile anymore when gcc upgrades to a newer version.
Tried to implement some fixes in the past but not sure anymore if this is still enough.
So we have to try.
I must say my knowledge, for adapting the source code, will probably not be enough to fix future problems if they occur.If you are looking for the most robust way up till now then you can have a look at mame/lr-mess using my mamedev.sh or add-mamedev-systems.sh scripts. Mame/lr-mess will work but demos and games with advanced graphics will not correctly work and mame/lr-mess has steep a learning curve.
Sadly developing speed of mame/lr-mame/lr-mess has also it's disadvantages.
Compiling on rpi and on older linux distributions becomes more troublesome :- https://retropie.org.uk/forum/topic/34238/lr-mame-lr-mess-source-code-changes-and-or-will-not-compile
- https://retropie.org.uk/forum/topic/34454/lr-mame-binary-not-updating
Also installing it from source on an rpi is not recommended as it takes too much time or will fail.
The proper way is to install it from a binary and accept the binary version that is the best way for now.Btw.
You should read this topic also :
https://retropie.org.uk/forum/topic/29402/bbc-micro-acorn-electron-emu -
@Folly Thanks for the answers Folly. I will try them both then tomorrow. I will also read the topic you suggested.
-
I checked if I they where installed on my rpi4 with RaspberryPiOS(Debian11/Bullseye 32 bit)* and they were installed and both are working.
So basically it should work on both Buster 32 bit and Bulleye 32 bit on a RPI.*my /boot/config.txt contains :
arm_64bit=0
To force the kernel in 32 mode.
More info in this topic :
https://retropie.org.uk/forum/topic/34301/cross-compile-packages-for-rpi1/17
(not doing so can get you into trouble on Bullseye)ps. if you peek into kilograhams fork you will find demo disc in the scr/pico folder.
Tested twiser and bs-party and they both work on both emulators but xmaster from b-em-pico-pi does the best job. The allegro version has some difficulty with the sound. -
@Folly Hello,
This is what I did. I installed b-em-pico-pi. It works fullscreen OK, but it doesn't recognize half the keyboard. It loads .ssd files without problem.
Then I installed b-em_allegro. This is works OK, loads .ssd files also, recognizes keyboard, but it is not running in fullscreen. I couldn't find any shortcuts to enter the menu (does it have a menu?), or make it run in fullscreen. I only discovered that with Ctrl + C it exits the emulator.
From what I could tell, both emulators seem to run at the correct speed. I run Chuckie Egg, Repton and Elite.
Any further help would be appreciated. Thanks for your support. -
@Folly
I discovered also that with Alt + Enter, b-em_allegro goes fullscreen but you have to switch it back in order to exit with Ctrl + C. -
@Lord-Vek said in Acorn BBC Micro Emulator (current?):
I couldn't find any shortcuts to enter the menu (does it have a menu?)
You can use F11 for both emulators.
I discovered also that with Alt + Enter, b-em_allegro goes fullscreen but you have to switch it back in order to exit with Ctrl + C
Looks like you are running from the desktop environment, right ?
Then indeed Alt+enter will work with the allegro version.
Though running it like that, both will start in windowed mode becausematchbox-window-manager
will not work in the desktop environment.
You have to log-out to the CLI environment and runemulationstation
.
Starting something like that will run these emulators withinmatchbox-window-manager
in fullscreen.
It looks like that the pico-pi version doesn't have fullscreen mode.
This is why I implementedmatchbox-window-manager
into the loading scripts.
From there ctrl+c should also work. -
Thanks for the answers.
I don't know, Retropie (Emulation Station) is a desktop environment?
I tested the function keys until F10, because then on 400 you have to press the "function" key with the F1 and F2, so I didn't thought to try F11 and F12. The pico-pi run on fullscreen by itself.
The thing is, I wanted to have a BBC emulator and thanks to you, I now have one. Thanks again and be well! -
Ok, seems you run just a normal RetroPie image.
Nice to hear that you have it running quite good.
Quitting b-em-allegro version can also be done from the menu if ctrl+c is not an option.Enjoy and be well !
-
@Folly Hi Folly. Just joined the forum having got my self a RP4 and installed Retropie. I had a BBC B as a teenager and really keen to get the latest emulation working. I've tried to follow the thread - but it's very very long. Has anyone put together a complete list of steps? I think if I tried to put together steps for the two instruction sets, I'd get things very wrong :-( Many thanks in advance. Paul
-
@pgamble said in Acorn BBC Micro Emulator (current?):
@Folly Hi Folly. Just joined the forum having got my self a RP4 and installed Retropie.
Welcome ;-)
I had a BBC B as a teenager and really keen to get the latest emulation working.
That is great !
BBC B / or other types aren't working out of the box in RetroPie.
Simply because there aren't emulators that really fit well into RetroPie and so no module-scripts have been made for it.A module-script is a bash script that is part of the retropie-setup script and enables the steps to install and configure an emulator within RetroPie.
Therefor I did an attempt to find some emulators that would work and make a module-script for it.
We call these 3rd-party module-scripts.
The emulators I used are not the latest except for mame but with mame the driver is ok but not extremely good.
If you really want the latest then the best way is to find and use one of the latest BBC emulators and use it on a regular PC without RetroPie.I've tried to follow the thread - but it's very very long. Has anyone put together a complete list of steps? I think if I tried to put together steps for the two instruction sets, I'd get things very wrong :-( Many thanks in advance. Paul
What you need to do is add my module-scripts to your RetroPie-Setup folder.
There are many ways of doing this.
I assume you have a original RetroPie image then you need to copy the selected module-scripts to your image just like you do with bios roms or game roms.
The basic folder for emulators is :
~/RetroPie-Setup/scriptmodules/emulators
That will work but then you put 3rd party module-script between the original ones.
A better way is to use theext
folder and create the subfolders like this :
~/RetroPie-Setup/ext/RetroPie-Share/scriptmodules/emulators
Now they are separated from the originals.
RetroPie-Share
is my repository name but basically this can be anything so you can use more names.
When you look for them from the experimental packages in the retropie-setup you will also notice that it is separated and you will see the name.
Then check the posts of @Lord-Vek and me from here :
Acorn BBC Micro Emulator (current?)
You can try to use myadd-ext-repos.sh(don't use this anymore) but if that doesn't work then just copy b-em_allegro and b-em-pico-pi.
Then you start retropie-setup and you can install these ones.
Look also at the HELP for the special keys though they are also discussed in the last posts I mentioned.If you want to use mame or lr-mess then you can go this route :
https://retropie.org.uk/forum/topic/29682/development-of-module-script-generator-for-lr-mess-lr-mame-and-mame-standalone
Be aware that the latest version mame0256 and mostly lr-mess0256 have issues that are discussed lately. -
@Folly Many thanks :-)
-
Finally got this to work! Sorry to ask but is there an easy way to exit from each game back to the menu? The regular START/SELECT hotkey doesn't work in this case. Also, how would I map keyboard key controls to a gamepad? I'm running this inside a PiBoy DMG case so having the buttons as controller would be amazing. Huge thanks for your work on this! :D
-
@MrNoHolster said in Acorn BBC Micro Emulator (current?):
Finally got this to work! Sorry to ask but is there an easy way to exit from each game back to the menu? The regular START/SELECT hotkey doesn't work in this case.
No there isn't.
Both packages are created from programs made for "windows" use.
So controlling the emulator with the keyboard is the default here.
Using the START/SELECT button from the joystick would mean changing the source code which is not inside.
I am not able to do that.
So you need to find a joy2key solution in order to achieve this.
There is a joy2key.py script inside retropie but I am not sure if it's even possible to use that.Also, how would I map keyboard key controls to a gamepad? I'm running this inside a PiBoy DMG case so having the buttons as controller would be amazing. Huge thanks for your work on this! :D
Edited :
Perhaps there are better and other ways but what you could try to do is make a button on your gpio and use ydotool to simultate a keypress.
You can read this post to find more about that solution.
Pehaps I forgot something but I think the only thing you need to do is alter the keypress "5" into (F11-> <alt>+f -> e for b-em) (ctrl + c b-em-pico-pi) for in the commandline.Probably
xdotool
can also be used as this works withinmatchbox-window-manager
.
It's also a better choice when working.
The code could probably be added in the b-em-allegro4-multiload.sh script.
For b-em-pico-pi probably in xbeeb.sh xmaster.sh. -
@Folly Hello,
May I ask, is there a way to get B-em to begin in fullscreen? Something to write to the config for example?
-
@Lord-Vek said in Acorn BBC Micro Emulator (current?):
@Folly Hello,
May I ask, is there a way to get B-em to begin in fullscreen? Something to write to the config for example?
In the past I tried to edit the source but could not get it working.
( for elkulator I could however )
xdotool
could be a solution to simulate the key-presses at start.
I think I experimented with that before.
I certainly have implementedxdotool
to autoload the `roms. -
@Folly Yes, but how exactly can I do that? What should I edit, what commands...?
-
Have a look at :
/opt/retropie/emulators/b-em-allegro4/b-em-allegro4-multiload.shYou would only have to add "alt+enter" before loading the software.
( https://gitlab.com/cunidev/gestures/-/wikis/xdotool-list-of-key-codes )When quitting however you would probably have to do it manually.
The code would probably be something like this :
xdotool sleep 1.5 keydown Alt+Return sleep 1 keyup Alt+Return
(code is working !)
For example you can test it by editing line 12 in b-em-allegro4-multiload.sh for the disc load commandline into this :
/opt/retropie/emulators/b-em-allegro4/b-em $1 -disc "$2" | xdotool sleep 1.5 keydown Alt+Return sleep 1 keyup Alt+Return sleep 1.5 keydown Shift_L+F12 sleep 1 keyup Shift_L+F12
(tested and it looks like it's working ok)
-
Yep! It worked! Thanks again, my friend!
-
For quitting the emulator from fullscreen and with keyboard or joystick I will have a look later if I have the time.
Just to see if I can extract key-presses and joystick-presses while the emulator is running and break the script so the emulator will stop and exit.I think the "Alt+Return" fix has to be implemented in the module-script together with an exit fix once I found that.
-
@Folly It would be nice if the B-em was to be even better!
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.