Category Archives: macosx

NetHack Mac OS X (cocoa) 0.3.2.1 released

Get the latest dist here:
NetHack Mac OS X 0.3.2.1

The source code has been moved to github:
NetHack Mac OS X

I fixed the “forced wizard mode” and XP and turn indicator should now be visible at all times. I also changed the whole source layout to a more NetHack-like one (including the fact that you have have to bootstrap it). There were tags mishaps (0.3 and 0.2 are merely approximate) but anything else went ok.

Please input any issues you find at the known location.

Have fun!

Gimp / X11 Heaven

I’ve been using Gimp for many years on many OSs. On Mac OS X it feels clunky though. Spreading its UI across several autonomous windows means you have to “nearly, but not quite” double-click everytime you want to change tools or tweak something else with your mouse. That is, unless you change the above X11 preferences 🙂

The “Click-through Inactive Windows” is pretty much mandatory for my typical Gimp usage. The “Focus Follows Mouse” is just added sugar for people missing auto-focus on Mac OS X, at least with X11.

Add to that a neat and thoroughly put together Gimp Distribution for Mac OS X, and I’m in heaven 🙂

NetHack 3.4.3 ported to Mac OS X (Cocoa-Port)

There’s nothing more satisfying (ok, at least not that much) to leisurely do on a Sunday than release some nice piece of software, and here it is:

NetHack 3.4.3 native Mac OS X (10.6) Port (Latest .dmg)

More information:

Some weeks ago Bryce Cogswell contacted me about that neglected project of mine, nethack-cocoa, offering his help. It was in a very sorry state (I think had given up in the middle of getting it to draw) So I refreshed it to the current iHack base framework (which I had been creating for the Slash’EM iphone beta and refining for the NetHack ipad port) and handed it over, bare naked as it was. The result now has version 0.2 and you can download and play it.

It’s currently 32-bit only, iHack currrently relies on pointers that size.

Screenshots:

The mythical Apple tablet

I know there’s a chance there won’t even be a tablet, but if the folks at Apple are indeed planning to unveil one at the end of the month, please don’t let it just be an iPhone on steroids. I know it’s very tempting, they are making quite a lot of money with their closed eco system, but please let the tablet OS be open in the same way Mac OS X is, meaning I can run whatever software I choose in whatever way I’ve chosen. The overwhelming factor that let me even contemplate switching to Mac OS X (after a friend started exposing me to it, repeatedly) was that it was essentially a (free)BSD with a nice desktop and all needed drivers preinstalled. I was basically in heaven, and to this day I view it in that way.

That said, even if the new OS is closed like the iPhone OS, the prospect of playing some good old *Hacks on a bigger screen with an efficient UI is so tempting that I feel compelled to port as much and many as I can. The new SlashEM is my first step in that direction, and I’d love to have a playable version by the time the (possibly mythical) tablet gets announced.

SlashEM 0.0.7E7F3 distribution for Mac OS X (tty)

When I felt the need to step through the original SlashEM tty version to get a feel for some seemingly changed behavior for add_menu, and intrigued by Patric’s comment on my Mac OS X SlashEM compile, I thought a native Mac OS X tty version that you don’t need to install, easily debuggable (sort of) from xcode would not be a bad idea. You can download the end result from here. I compiled it for 10.5/i386. Would be interesting to know whether it runs on 10.4 (I guess not but I don’t have that SDK anymore) and on older Intels (like those core duo ‘1’s or whatever they were named). Just unzip the dist and double click SlashEM and it should run in a terminal. As you can see I had to change very little from the original sources (macosx now has its own sys subdirectory, but uses a patched unixmain.c), and this is probably very easy to do with other variants and NetHack itself (leave a comment if you are interested). I have yet to integrate the Makefiles and xcode nicely so everything is built from scratch with one make / press of a button. And beware, there might still be some dat files missing (for quests etc.), and I have yet to do some more extensive wizard testing. Creating fully graphical ports that are as easy to use as any other native app on Mac OS X is of course the goal, but this might take some more time and effort (and the SlashEM iPhone port has priority).

How to compile Slash’EM on Mac OS X (tty version)

These instructions are for the source tarball from the stable Slash’EM Page (0.0.7E7F3 at the time of this writing). I assume that you have unpacked it and moved your bash to the top of the extracted filesystem.


pushd sys/unix/ ; sh setup.sh

You have to uncomment the BSD #define in line #22 of include/unixconf.h, then change line #963 of win/tty/termcap.c (this is a single line):


#if !defined(LINUX) && !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__MACH__)

Next comment out line #340 of the generated src/Makefile, and uncomment the line above (WINTTYLIB = -lncurses). Also make sure you set PREFIX, GAMEUID and GAMEGRP from Makefile to sensible values (example):


PREFIX = /Users/dirk/install
GAME = slashem
# GAME = slashem.prg
GAMEUID = dirk
GAMEGRP = staff

As suggested by Patric, instead of modifying GAMEUID and GAMEGRP, you can also edit the two lines that set CHOWN and CHGRP, and simply set them to true:


CHOWN = true
CHGRP = true

Then all there is left to do is to compile and install:


make
make install

If everything went fine, you will have your slashem binary in ~/install/games/local/bin. To start it cd there and invoke it in your bash: ./slashem.

To customize, I added the following line to .bash_profile:

export SLASHEMOPTIONS="@.slashem.rc"

And the file ~/.slashem.rc with the following contents:


OPTIONS=DECgraphics,number_pad:0,time,autopickup,showexp,pickup_types:$!?+"=/,name:Dirk
OPTIONS=norest_on_space
OPTIONS=runmode:walk
OPTIONS=color
OPTIONS=!hilite_pet

Your config will probably vary.

Have fun playing!