QTads 3.0 is out

QTads is a cross-platform, multimedia interpreter for TADS games. It is fully compatible with HTML TADS (aka “Multimedia TADS.”) Both TADS versions in use today (v2 and v3) are supported. It runs on Linux, macOS and Microsoft Windows.

Four years worth of updates in this release. Downloads for Linux (32-bit as well as 64-bit), macOS and Windows:

https://realnc.github.io/qtads/#downloads

Changes since 2.1.7
  • Improved audio engine:

    Game audio is now streamed directly from the game and decoded in real-time
    rather than all of it being extracted and decoded in advance. This
    eliminates the delay and memory use spike in games with long audio tracks.

    Resampling quality is improved and the engine will now correctly apply
    resampling (if needed) in all cases. Previously, certain sample rates could
    cause resampling to be skipped, resulting in audio that plays at the wrong
    speed.

    MIDI music is now rendered using an internal synthesizer (FluidSynth) and
    thus it no longer matters whether or not the operating system supports
    MIDI.

  • Fixed font rendering issues on Windows, improved font quality of bold and
    italics.

  • Fake bold is now used on macOS when the selected font does not have a bold
    variant (like Monaco.)

  • The maximum text width of the game’s main window is now configurable (set
    to 70 characters by default. This only applies to the main window. Banner
    windows created by the game are not affected.

  • Fixed an issue that prevented games from applying custom colors to links.

  • The interpreter now restores the old window position on startup, not just
    the size.

  • You can now press the END key (or whatever shortcut the system uses for
    jumping to the end of a text line or document) during MORE prompts to jump
    straight to the bottom of the text, bypassing further prompts.

  • Fixed an issue where the interpreter sometimes failed to set custom fonts
    requested by the game.

  • Added config dialog button for restoring default settings.

  • The “Typewriter” font setting now allows selecting proportional fonts. Many
    typewriter fonts don’t identify themselves as fixed-width. Lift the
    restriction so that they can be selected.

  • Fixed a possible crash when clicking on an in-game URL and the default
    browser on Windows is set to Microsoft Edge.

  • Improvements for high DPI displays.

  • Fixed not being able to close some dialog windows on Windows.

  • HTTPS links in games are now supported.

  • Improved random number generator.

  • “OS time” is now properly reported with nanosecond precision instead of
    milliseconds.

  • The choice for which fonts to use by default (if no font settings exist
    yet) is now deferred to the OS. Previously, common font names for each OS
    were hardcoded for each font type.

  • TADS VM code fixes and a workaround for dynamic compilation crashes.

  • Building the interpreter now requires at least C11, C++14 and Qt 5.5 or
    newer.

  • It’s now possible to build the interpreter without audio support:

    qmake -config disable-audio

  • The project has moved from sourceforge to github. New homepage:

    https://realnc.github.io/qtads

    New project page:

    https://github.com/realnc/qtads

    The sourceforge project is still there, but only serves as a mirror.

  • QTads is now licensed under the GPL version 3 or later.

10 Likes

what wonders me, is the 16+ M of possible bloat:

ls -l qtads*
-rwxr-xr-x 1 pigi pigi  3575232 gen 21  2016 qtads2
-rwxr-xr-x 1 pigi pigi 20033512 feb 15 20:50 qtads3
file qtads*
qtads2: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.26, BuildID[sha1]=84f213107cbf64c6cc3c97d0466427d44a924203, stripped
qtads3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, stripped

it’s only constructive criticism; later, when I have time I’ll look at both version’s sources…

Anyway, it’s a good work.

Best regards from Italy,
dott. Piergiorgio.

It’s not bloat. v3 is an AppImage, that executable is kinda statically linked to all libraries it needs so it will have no problems in any distro.

1 Like

With ./QTads.AppImage --appimage-extract you can extract the contents of the appimage (the output directory will be called squashfs-root.) It should then become clear why there is a size increase :slight_smile:

1 Like

noted and browsed prior of the systemwide installation.

Dunno why Nikos decided to trade portability for security, but until there’s a trusted source/binary repo from a very trusted (in the common sense) and known developer, (that is, Nikos’s qtads github pages) this choice remain a non-issue.

Is true that I heavily criticise portability issues (esp. I7’s ni) but in this case the portability is more than guaranteed, at the “Franklin’s Price” (that is, vigilance), so can accept it.

For now indeed works fine, even with a filename change for consistency (qtads --> qtads2, Qtads.AppImage -->qtads3) after placed in its appropriate systemwide place.

Best regards from Italy,
dott. Piergiorgio.

You can:

cp squashfs-root/usr/bin/qtads /usr/local/bin/

to get the raw binary and it will then use your installed system libraries. If it works, then you don’t even need the appimage. However, I doubt it will work. You’d need to download the needed versions of the dependent libraries, build them and install them. At this point, you might as well build qtads from source instead, which is easier since then it should only need whatever versions of the libraries you can find in -dev packages in your Linux distro.

The only sane way to get a binary out there that works reliably across different distros (and their different versions) is something like appimage, flatpak or snap. Yey, three choices. Three times the packaging work.

So I just went with appimage, since out of those three choices, it’s the only one that does not require you to install a package manager first and doesn’t download 2GB of library runtimes. I might look into providing a flatpak as well in the future though, since it has become quite popular lately.

Other than that, I’m not sure what other choice I have.

There was an issue with the Linux downloads in this release. Due to how they were packaged, when running on Fedora 31 it was not possible to open any files because the file dialog was not working.

I repackaged and re-uploaded the Linux versions and they should now work correctly.

3 Likes

Just downloaded and tried out the macOS version. I am now running a TADS game on a retina screen without any blur, and I am very happy with this.

Thanks @RealNC and other QTads contributors for all the good work!

2 Likes

Yes, thanks for the new QTads! I’m a big TADS fan!

2 Likes