freeuef-alsa is a modded version of the UNIX version of freeuef (for loading tape images into an Acorn Electron). I’m using ALSA for sound output instead of OSS (on linux). You can download the latest ;
So in order to load games into a real Electron in 2015 you either need a cassette player and some cassettes OR a computer running freeuef, some UEF images and the soundcard output hooked up to the tape input of your Electron. Originally I used the Windows version of freeuef inside a Windows VM on my Mac. That never worked that well, so then I looked at the UNIX version of freeuef. It appears to be 15 years old … and trying to get anything with OSS sound working in 2015 is somewhat painful, so I had a go at redoing freeuef to do ALSA sound output.
The main changes I’ve made are;
- Uses 16 bit signed samples instead of the unsigned 8 bit ones used for OSS.
- I’ve removed the output to WAV file mode (might add that back later on)
- The 2nd arg is now the ALSA device name (if you leave it out, it defaults to plughw:1,0)
- Added pause, resume support
It works pretty well for me. This is my first go at ALSA programming and I am pretty sure I am overbuffering the sound output somehow … but it all still works OK. The pause/resume support is particularly handy for games that use the tape relay a lot to stop and start playback. Basically if you are loading and you hear the relay click on the Electron, press SPACE, then when it clicks again (usually you see the word ‘Searching’ on the screen at the same time) then press ENTER to resume playback. Some games do the relay thing maybe once or twice … and others like Exile seem to go nuts doing it (BTW: Exile does indeed load)
Compiling is simply;
And running it is;
./freeuef-alsa somegame.uef plughw:1,0
If you are terrible at guessing ALSA device names, run ‘aplay -l’ and the output will have a lot of ‘card <n> blah blah device <m> blah’ lines. For me, the key one was ‘card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]’ , so the card 1 … device 0 translates into plughw:1,0
So atypically, you enter CHAIN “” on your Electron, then run freeuef-alsa like the example above, hit ENTER … and hopefully you start to see some loading activity on your electron. Play with your volume control with alsamixer or similar. I just turn mine all the way up and it seems to load fine.