Internationalized NetHack / Blog: Recent posts

X11 support discontinued, and other rants

X11 support is discontinued. It's too much of a pain to code, it's too much of a pain for the user to set up, and the Xorg people have neglected to fix their @#$% Label widget. Also, Athena widgets are ugly.

This reduces the supported user interfaces from seven to six. Ne.W.T. and Qt 3 may follow someday, if I get sufficiently irritated with them; SDL2 and Qt 4 do more or less the same thing, and do it better.... read more

Posted by Ray Chason 2014-10-12


mruby is a lightweight implementation of Ruby that seems just perfect for this project. It's not quite ready for prime time, but it's simple enough that I can competently hack it.

I've contributed a couple of patches to it, and that's mainly to support nethack-i18n.

Using mruby will mainly be of benefit on Windows; you won't need RubyInstaller to run nethack-i18n anymore. You'll still need it to build, at least for the time being.... read more

Posted by Ray Chason 2014-03-02

Bad Apple

I recently upgraded my Mac to Mavericks, and now the Qt and Ne.W.T. interfaces don't build.

The Qt package has "#include <QtCore QtCore="">" in QtGui; but the QtCore header is not in a directory called QtCore. The SDL/SDL.h header has similar difficulties.

The Mac port is Curses only until I resolve this.

I was trying to chase down a segfault that I hit while dancing on a magic trap; a purple worm had spit me out and I felt charismatic. Unfortunately the dump file contained nothing useful.... read more

Posted by Ray Chason 2014-01-18

Another Mac port

Just found this on Reddit. This, along with some more locales, is high on the wish list. I just might have a few busy weeks of coding after the holidays have come and gone.

Posted by Ray Chason 2013-12-20

A Mac port

The code in git now supports Mac OS X with the curses, Qt and Ne.W.T. interfaces. A tarball should follow, once I've tested various display enhancements on Windows.

MacRuby seemed to provide everything needed. It compiled and linked, with a bit of tweaking to the code (the function I was using for UTF-8 conversion wasn't there). But actually running the program produced an error: "'.../libmacruby.dylib' was compiled with -fobjc-gc-only, but the application does not support GC". It was necessary to compile MRI from source, which went without a hitch, but that's more than the user should have to deal with. I'm not satisfied with this, and still hope to get it working with MacRuby.... read more

Posted by Ray Chason 2013-01-16

A Mac port?

I am now the proud owner of a Macbook. Dang, but Macs are expensive. Anyway, it might now be feasible to release a Mac port of nethack-i18n.

This is my "learn Mac programming" project.

What it's going to take:

  • A C++ compiler -- I've grabbed Xcode off the App Store.
  • Ruby -- there's a Ruby interpreter already present, but it's 1.8. MacRuby claims 1.9 compatibility and comes with Rake, under the name "macrake", but it does not seem to have any libraries. I'll probably need to compile from source.
  • One or more user interfaces. Some possibilities that come to mind are:
    • curses -- /usr/lib has curses but not cursesw; but the provided curses seems to have the wide character functions. A quick test ('(0x2500..0x257F).each {|x| print x.chr(Encoding::UTF_8)}; puts' in MacRuby) shows that the terminal supports UTF-8.
    • Ne.W.T. -- SDL claims to support Mac OS X. That ought to be enough.
    • Qt -- Qt 4 and 5 claim to support Mac OS X. That ought to be enough.
    • X11 -- if the breakage that afflicts the X11 interface on Xorg is fixed on Mac OS X, I'll be willing to call X11 supported on Mac, in spite of Athena Widgets being ugly.
    • A native Cocoa port? That may be a last resort. To my knowledge, no existing NetHack variant has a Cocoa interface.
    • The classic Mac interface? It's for Carbon, which Apple says is deprecated. I'm not sure if the current Xcode supports Carbon.
  • Probably quite a few things I haven't anticipated.... read more
Posted by Ray Chason 2013-01-05

More on Qt 4 interface

The Qt 4 interface had a vexing bug in which the final game report (the tombstone, or the ending score report if you ascended) did not appear. That has finally fallen and I have gone ahead and made a release.

There's still trouble with the initial character selection dialog. I am not yet satisfied with the Qt 4 interface.

Edit: The trouble is with initial name selection. It seems to be a general problem when playing on Linux with other than your user name.

Posted by Ray Chason 2012-12-09

Qt 4 interface; Xorg has bugs

An interface for Qt 4 is now tested on Linux (one more Wizard joins the demigods, yay!) and up in Git. I have it built on Windows 7 and a test game is in progress.

The X11 interface seems sound so far as it is feasible to build one. Xorg, however, has a serious bug with Unicode support in its Athena Widgets. (Have I mentioned that Athena Widgets are ugly?) The corresponding bug in XFree86 is fixed. I have filed a bug report against Xorg and confirmed that the fix for XFree86 works for Xorg as well; but until the fix goes mainstream, the X11 interface is officially unsupported, and the Rakefile will disable it by default.... read more

Posted by Ray Chason 2012-08-05

Tile-based interfaces now available

NetHack-i18n now supports tile-based interfaces on Windows and Linux. The primary tiled interface is Ne.W.T. for Linux and Win32 for Windows. Windows also supports Ne.W.T., but it's a bit of a pain to build (it needs SDL, SDL_image, SDL_mixer and SDL_ttf). Linux also supports Qt, but the Qt interface still has much of the roughness of the original.

I made an attempt at X11 support, but it seems that the Athena Widgets Unicode support is broken on Ubuntu, or maybe I just haven't figured out how it works. Have I mentioned how ugly Athena Widgets are?... read more

Posted by Ray Chason 2012-06-17

Windows support added

A Curses-based Windows binary is now available.

The one uploaded uses win32a for its Curses library. The unmodified PDCurses for Win32 also works, with different compile time options, but has the limitations of the Win32 console. Win32a on the other hand doesn't seem to gracefully handle copy off of the screen, so this is best avoided. It requires RubyInstaller for its Ruby interpreter.... read more

Posted by Ray Chason 2012-06-03

First bilingual release

Today marks the first release that supports the Spanish locale.

I quite extensively refactored the English-specific code and have probably introduced some bugs. I'll be back when (not if :-/) I find any bugs.

Then it's on to Windows.

Posted by Ray Chason 2012-05-27

El gnomo con la varita de muerte

The Spanish locale is now in a more or less playable state and I've spent the last few days giving it an initial shakedown.

Marisela la valquiria humana neutral was a valiant girl. Aside from the usual bestiary, she battled dungeon panics, segfaults and the RNG alone knows how many exceptions in the Ruby code. Dozens of bugs will never leave my hard disk, thanks to Marisela.

Alas, Marisela joins all those bugs in the Great Beyond, thanks to something with a wand of death. The hijo de **** was beyond sight and I have no idea whether it was a gnome.... read more

Posted by Ray Chason 2012-05-18 Labels: Testing

Initial release of Internationalized NetHack

The initial release of Internationalized NetHack is now available.

It's mostly of interest to developers at this point. Only an English locale presently exists, it only runs on Linux, and some stray language dependencies undoubtedly remain. A Spanish locale, based on the existing Spanish NetHack project, is now in progress, and may help ferret out any remaining language dependencies.

Posted by Ray Chason 2012-02-20

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks