• Please review our updated Terms and Rules here

SDL2TRS in Linux

tezza

Veteran Member
Joined
Oct 1, 2007
Messages
4,731
Location
New Zealand
I've been exploring Linux over the past few months. As a learning exercise I decided to have a go at installing SDL2TRS in a couple of my VirtualBox Linux environments. Using the .deb file on offer, I managed to install it no problem in Linux Mint 20.2. (see photo). The emulator seems to work fine apart from jerky sound.

sdl2trs.jpg

On Arch Linux it was a different story. I had all the dependences installed and compiled the AUR-supplied PKGBUILD but no go. I suspect some of the updated dependencies were not backward compatible with what was required. Anyway, it was fun, a good way to learn about Linux and something different from my go-to trs80gp and TRS32 emulators in Windows.

Tez
 
Last edited:
  • Like
Reactions: ACK
There are tutorials for on the Debian forum for:
DosBox is needed for some of the TRS-80 Emulators.

1. DOSBox https://forums.debian.net/viewtopic.php?f=16&t=61888

2. SDLTRS https://forums.debian.net/viewtopic.php?f=16&t=67657
There is an updated SDLTRS package that I have somewhere, but will have to look for it.

3. Z80 Emulator https://forums.debian.net/viewtopic.php?f=16&t=66644

4. XTRS by Tim Mann https://forums.debian.net/viewtopic.php?f=16&t=61891

5. TRS80 by David Keil https://forums.debian.net/viewtopic.php?f=16&t=61890

6. TRS80GP by George Phillips Runs fine in Debian under WINE. I have the Model 1, 2, 3, and 4 running.
wine trs80gp.exe -m1 -d0 td28rs2.dmk
wine trs80gp.exe -m2 -frehd -d0 l2-631ss.imd
wine trs80gp.exe -m3 -d0 ND80M3-3.DSK -d2 imd-DS
wine trs80gp.exe -m4 -d0 MMCPM231.DSK


TRSTOOLS also runs fine on Debian 11 - 64 Bit under Crossover (21.0.0) by Codeweavers. I have the following command:
"/home/larry/.cxoffice/TRSTools/desktopdata/cxmenu/Desktop.C^5E3A_users_crossover_Desktop/trstools.lnk" %u

in the Launcher.


That should get you running whatever you want. Similar Tutorials are on the OLD Ubuntu Forums.


Larry
 
  • Like
Reactions: ACK
Thanks Larry. I'll stick to just SDL2TRS on this Linux platform. Windows is still my most used OS and those other emulators work just fine there. I won't bother installing them in the Linux environment as well. SDL2TRS (derived from XTRS) was exclusively Linux though, so I thought I'd give it a go.

Tez
 
  • Like
Reactions: ACK

Attachments

  • hc_1690.jpg
    hc_1690.jpg
    212.1 KB · Views: 14
  • hc_1689.jpg
    hc_1689.jpg
    307.8 KB · Views: 13
  • Like
Reactions: ACK
Just a note that trs80gp has had a native linux version for a little while (and MacOS and Raspberry Pi).

SDL2TRS is Free- AND Open-Source Software (BSD-2 License): you can just compile it for other machine architectures (like SPARC64) ... system requirements are also very low: it runs on a Pentium II with 300 MHz ...

 
  • Like
Reactions: ACK
The emulator seems to work fine apart from jerky sound.
Hi, you could try to adjust the "Cassette Default Sample Rate" (ALT-T key): current XTRS uses 11025 instead of 44100 for sound ...
 
  • Like
Reactions: ACK
  • Like
Reactions: ACK
One thing I'm confused about is how to select the EACA models. They don't show up in the config menu? Only the TRS-80 ones?
Seems that my eMail didn't reach you ... the EACA models are just "extended TRS-80 Model I"-clones for SDL(2)TRS: just load the ROM for the EACA/TCS machine in Model I-mode (the default) and the emulator should auto-detect the system (EACA EG 3200 "Genie III" or TCS Genie IIIs) ... some systems (LNW80, TCS SpeedMaster/Genie IIs) must be selected in the "Emulator Settings" as "Speedup Kit" ...
 
Last edited:
  • Like
Reactions: ACK
Seems that my eMail didn't reach you ... the EACA models are just "extended TRS-80 Model I"-clones for SDL(2)TRS: just load the ROM for the EACA/TCS machine in Model I-mode (the default) and the emulator should auto-detect the system (EACA EG 3200 "Genie III" or TCS Genie IIIs) ... some systems (LNW80, TCS SpeedMaster/Genie IIs) must be selected in the "Emulator Settings" as "Speedup Kit" ...
Thanks. Yes, your letter was sitting in my SPAM folder for some reason. I just found it. Thanks for the zips (and that information). I might try installing on Arch Linux again. I didn't use yay. I Installed git and used it to clone sdl2trs 1.2.21-1 from the AUR repository. Then used $ makepkg --syncdeps to build the package. I had a permissions issue first which I seem to solve and the final error was "sdltrs FATAL ERROR: failed to initialize SDL: Failed loading udev_device_get_action: /usr/lib/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action". I'm sure all the dependences were installed. Mind you, I'm a novice at Linux so there is a good chance I missed something. Arch-Linux is unforgiving. I'll try it with yay at some stage. Meanwhile, thanks for working on the emulator. Seems to work fine!
 
  • Like
Reactions: ACK
tezza,
sdltrs FATAL ERROR: failed to initialize SDL: Failed loading udev_device_get_action: /usr/lib/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action"

Is telling you that a library is not installed.

In Debian 11 it would be:
sudo apt install git libsdl2-dev libreadline-dev

Earlier version of Debian would be:
sudo apt-get install git libsdl2-dev libreadline-dev

Other Linux Distro's use different package managers.

Larry
 
  • Like
Reactions: ACK
final error was "sdltrs FATAL ERROR: failed to initialize SDL: Failed loading udev_device_get_action: /usr/lib/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action". I'm sure all the dependences were installed.
SDL2 can use udev on Linux to support devices like Joysticks: seems there is some breakage, maybe libudev is not installed or outdated. On Arch-Linux "sudo pacman -Syu" for full system upgrade sometimes solves such issues ... or introduces new ones ... ;)

Mind you, I'm a novice at Linux so there is a good chance I missed something. Arch-Linux is unforgiving.
Arch-Linux is "bleeding edge" ... and sometimes this hurts ... ;)

Providing software packages for various Linux distributions is very little fun, so I'm grateful that Tércio Martins (from Brazil?) maintains the AUR packages of SDL(2)TRS ... :)

Meanwhile, thanks for working on the emulator. Seems to work fine!
Thanks! Please let me know if there are any questions, issues or requests ... :)
 
Last edited:
  • Like
Reactions: ACK
tezza,


Is telling you that a library is not installed.

In Debian 11 it would be:
sudo apt install git libsdl2-dev libreadline-dev

Earlier version of Debian would be:
sudo apt-get install git libsdl2-dev libreadline-dev

Other Linux Distro's use different package managers.

Larry
Hi Larry,

Possibly. It's also possible that Arch Linux updates have broken something. As Jenz says, being on the bleeding edge can often do this. Anyway, while I have dabbled with Arch Linux, I've decided I don't like living with a rolling distro which requires so much hands-on management. Yesterday for some unexplained reason, my Arch Linux kernel failed to load and I had to get things back using a live installer for repair. I'm happy with Linux Mint and will stick with that as my main Linux platform for now.

Tez
 
  • Like
Reactions: ACK
Seems that my eMail didn't reach you ... the EACA models are just "extended TRS-80 Model I"-clones for SDL(2)TRS: just load the ROM for the EACA/TCS machine in Model I-mode (the default) and the emulator should auto-detect the system (EACA EG 3200 "Genie III" or TCS Genie IIIs) ... some systems (LNW80, TCS SpeedMaster/Genie IIs) must be selected in the "Emulator Settings" as "Speedup Kit" ...
I substituted my System 80 blue label ROM for the usual TRS-80 ROM. As you would know the ROM has a small difference in the way it handles cassette functionality. I'm pleased to report that I could read/write BASIC CAS files just fine and these CAS files could also be read in other TRS-80 emulators. Also, a BASIC music program for the System 80, that normally has to be tweaked to run on the TRS-80 M1 ROM (as it uses the cassette port) also worked just fine. The "extensions" in the System 80 ROM, like the lower case driver, also seemed to work, although I didn't test all the functionality of that 1.5k ROM extension.

So well done on getting the emulator to seamlessly deal with these small differences.

I enjoyed the stringy floppy capability. My virtual wafers loaded just fine.
 
  • Like
Reactions: ACK
The "extensions" in the System 80 ROM, like the lower case driver, also seemed to work, although I didn't test all the functionality of that 1.5k ROM extension.
The System 80 blue label ROM is identical with the HT-1080Z ROM (Hungary) and the Dismac 8001 (Brazil). The System 80 Mark II/Educator seems similar to the TCS Genie II, but the ROM is different. The F1 - F4 keys of both models are supported, so you can run (and use) WORP-9 with the System 80 MK-II ROM in SDL(2)TRS. Support for the UART ports of the System 80 was added in SDL(2)TRS version 1.2.18, so connecting to a real machine using the serial device port in Linux should work in theory ...
 
  • Like
Reactions: ACK
[BASIC CAS files] So well done on getting the emulator to seamlessly deal with these small differences.
I enjoyed the stringy floppy capability. My virtual wafers loaded just fine.
These features come from XTRS, so kudos goes there! :) Alan "EtchedPixels" Cox wrote the emulation of memory expansions ("Dave Hufman", SuperMem, HyperMem, Selector) and the Lowe LE-18 HRG card back in 2018 for XTRS: https://github.com/EtchedPixels/xtrs ...

The "Selector" is compatible with LNW80 CP/M: with the support of the extended HRG (480*192 pixels) in SDL(2)TRS and the options "-speedup lnw80" and "-selector" you can enjoy CP/M in 80*24 graphics screen mode:

lnw-cpm.png
 
Last edited:
  • Like
Reactions: ACK
SDL2TRS is Free- AND Open-Source Software (BSD-2 License): you can just compile it for other machine architectures (like SPARC64) ... system requirements are also very low: it runs on a Pentium II with 300 MHz ...

Not even nearly that much. When I first packaged xtrs for Debian, my development box was an AMD "5x86"--a 486 clone clocked at 133 MHz. :D
 
  • Like
Reactions: ACK
When I first packaged xtrs for Debian, my development box was an AMD "5x86"--a 486 clone clocked at 133 MHz. :D
The IBM Thinkpad 600 (Pentium II 300 MHz and 256 MB), running Debian 2.2, was just ready to use here ... ;) I've also done some testing on a Pentium 75 (comparable to the AMD "5X86"): usable, but sound output via ISA card caused some games to "stutter" ... SDL(2)TRS still supports the old SDL 1.2 lib and 8 bit color depth, so running it on 800*600 screen resolution with 256 colors is possible ...
BTW: an official Debian-package maintainer for SDL(2)TRS would be really great... :)
 
  • Like
Reactions: ACK
Back
Top