Log in

TADS 3 System Development

QTads 2 public Git repository

TADS 3 System Development

QTads 2 public Git repository

Previous Entry Share Next Entry
I've pushed the initial commit of QTads 2 into the Git repo yesterday. It can be fetched with:

  git clone git://qtads.git.sourceforge.net/gitroot/qtads/qtads


  cd qtads
  make -j2
  (Replace "2" with the amount of CPUs or CPU cores in your system.)

Don't try "make install". Simply run the binary from the build directory.

You can keep your local copy of the repository up to date with:

  git pull
  (From inside the qtads directory.)

There are feeds that can be used to monitor commits:



The repo can be browsed at:


There's still a lot left to implement, but at least it now runs games without aborting every other turn :P Being able to run "Six Stories" was sort of a requirement I've set before releasing the code:

Bug reports at this stage are a bit of an oxymoron; there's a lot of functionality obviously missing. The main reason I made it public now is hope that people with C++ and Qt knowledge might want to contribute to the development.

There are still some crashers left, the most important one being a crash that occurs when navigating through banner windows (in Eric Eve's "Shelter from the Storm", for example.) Banner support in general is currently quite broken.
  • Nikos - this is really exciting. I don't think you said outright what the real big deal here is, although the screen shot tells the tale: this is HTML TADS for Linux! Congratulations on getting this going - no matter how many details remain, getting it to the point of being able to run Six Stories like this is huge.
    • Porting HTML Tads is a weird experience, to say the least. I guess the basic obstacle was that everything has pretty much to be in place for the whole to work; you can't start small and then add code bit by bit. Though not as complicated, the whole reminded me a bit of the "Black Triangle":


      In this case, it means the rest will be put in place with considerably less effort.
  • Thanks so much for your efforts! Hyperlinks are unresponsive in the ancient banner-heavy T2 WIP I tested it with but everything already looks the way it should. This is very good news.
  • It seems I've got to a point where 1893 is kind of working:

    Screenshot of 1893

    This is just the demo version of 1893 though. Is there a chance someone could lend me the full version so I can test? :P
    • I've got a copy of the full version of 1893 that I can "lend" you. (I'm sure Peter Nepstad won't mind; it's in a very good cause!) I'll email it to you tonight. If I send it to the address you use on r*if, will it reach you?
  • As bugs getting squashed and functionality added means the first release is getting nearer, I updated the homepage to be ready for it, and took the opportunity to also change its look&feel:


    Please feel free to report any typos you come across.
  • I've uploaded binaries of the current development version for people who can't build from sources. Please let me know whether they work or not (Linux binaries are known to give trouble across different Linux distributions.)

    Linux 32-bit (x86):

    Linux 64-bit (x86-64):

    Mac OS X 64-bit (Intel):
    • I tried out the latest (23/4) 32-bit Linux binary today, and it runs on my Ubuntu 9.10. Sound, images, hyperlinks all work. But Arrival makes it seg-fault, at the point where the spaceship lands. Terminal says:

      int os_locate(const char*, int, const char*, char*, size_t)
      Looking for: tadserr.msg
      virtual void CHtmlSysFrameQt::start_new_page()
      Creating new banner. parent: 0x0 type: 0 where: 2 other: 0x0 pos: 0 style: 1
      virtual int CHtmlSysFrameQt::get_exe_resource(const textchar_t*, size_t, textchar_t*, size_t, long unsigned int*, long unsigned int*)
      resname: Resources/Ship Crash.jpg fname_buf: seek_pos: 0xbfa75eb4
      Loading "JPG" image from ./Resources/Ship Crash.jpg at offset 0 with size 0 url: Resources/Ship Crash.jpg
      QFile::seek: IODevice is not open
      virtual int CHtmlSysFrameQt::get_exe_resource(const textchar_t*, size_t, textchar_t*, size_t, long unsigned int*, long unsigned int*)
      resname: mp3/Crash Landing.mp3 fname_buf: seek_pos: 0xbfa75f04
      Loading sound from ./mp3/Crash Landing.mp3 offset: 0 size: 0 url: mp3/Crash Landing.mp3
      QFile::seek: IODevice is not open
      Segmentation fault
      • OK, I'm able to reproduce this here too. You are missing the extra files for Arrival (those containing the graphics and sounds):

        (There are download links for "arrival.rs0" and "arrival.rs1". They need to be in the same directory as the *.gam file.)

        Of course, this is still a bug. The interpreter shouldn't crash just because of missing multimedia resource files. I'll push a fix for this in Git soon.

        Thanks for the report!
        • Aha. I did have the resource files, but I'd renamed "arrival.gam" to "Arrival.gam", without changing the names of the resource files. Not a problem on Windows, of course, but wrong on case-sensitive operating systems.
  • Uploaded updated binaries:

    Linux 32-bit (x86):

    Linux 64-bit (x86-64):

    Mac OS X 32-bit (Intel, OS X 10.5 and newer):
  • MNG animations are now implemented. That means you can play Macrocosm (http://ifdb.tads.org/viewgame?id=c8qs0xgkkfp5u6u4). Note that, currently, memory consumption can go through the roof since music and video is kept in RAM (we're talking about 180MB right after the intro in Macrocosm). It's not the game's fault, it's mine.

    Linux 32-bit (x86):

    Linux 64-bit (x86-64):

    Mac OS X 32-bit (Intel, OS X 10.5 and newer):
  • I've implemented one of the last* remaining core features: MIDI music support.

    To test MIDI, you can play "Futz Mutz":


    Music should be playing right after loading the game, and it should switch to a different tune after the intro, and yet another in the menus when you type INFO.

    On Linux, MIDI music support requires a working MIDI sound system. Usually, it's enough to install Timidity using your package manager, which (at least in Ubuntu) will set up the ALSA sequencer correctly to play MIDI. On Debian/Ubuntu, simply "aptitude install timidity" should do it. Updated binaries:

    Linux 32-bit (x86):

    Linux 64-bit (x86-64):

    Mac OS X 32-bit (Intel, OS X 10.5 and newer):

    (* The last one missing being support for sound (cross)fades.)
  • I just uploaded a new set of binaries:

  • A final 2.0 release draws nearer. There are a few things left to do before that happens. One of them was the configuration dialog. The most needed functionality, like changing fonts, sizes, colors, hyperlink appearance and enabling/disabling media functionality is now provided.

    Also, the application now follows local desktop standards and guidelines. For example, on Gnome and XFCE, changes apply instantly and there's only a "Close" button. On KDE, changes don't apply instantly, and there are OK/Apply/Cancel buttons. The behavior changes at runtime, according to which DE the interpreter is running in, which means there's no need to have different binaries for each DE.

    On the Mac, there are no buttons at all and changes apply instantly.

    There were other changes and bugfixes as well. The new build can be found at the usual location:

  • The input focus bug on Mac OS X should be fixed now :) A few other bugs were fixed as well (like being able to insert weird looking, non-printable characters in the edit field, and a crash that occurred in some rare cases when clicking on links.)

    I've uploaded the new build (2010-06-04) for Linux and Mac to the download page.

    Please give this build a try. If you find any bugs or even just weird behavior, please report it; I'm going to wrap this up for a 2.0 release soon.
Powered by LiveJournal.com