Tuesday, December 01, 2009

SuperTux - Resolution Independent Parallax Scrolling

Spend the last few days on getting resolution independent parallax scrolling to work in SuperTux and updating level 1-13, results can be seen in this little video and hopefully set the bar on how Milestone2 will look like when done:

Friday, November 27, 2009

Things I don't like about Git

I recently evaluated Git again for possible use in SuperTux, still some things I don't really like about it:
  • lack of sparse/narrow/shallow checkout, this means initial checkout will be 200MB instead of 100MB
  • no free hoster that allows >1GB repositories (havn't checked all, but those I did came out way short)
  • some free hosters that might allow >1GB repositories don't allow having multiple repositories
  • git submodule doesn't seem to be quite ready to replace our trunk/supertux, trunk/supertux-editor, trunk/media/, ... layout as it for example doesn't support automatic tracking of HEAD from the remote repositories, it also feels rather hacky and not properly integrated into git
  • lack of metadata versioning, if you delete a branch in git that you haven't merged, then its gone after the next gc/repack (+ two weeks time limit it seems), in SVN on the other side you can checkout the way the tree was at a specific date, its impossible to lose history unless you hack the repository
  • handling of subdirectories, in SVN its more comfy to just hack around in a subdirectory without bothing whats above it, in Git you always act against the whole repo instead of just the subdirectory, minor usability quirk, still a bit annoying
So for the time being I think I'll stay with SVN.

Tuesday, November 03, 2009

Getting Krita to work in Ubuntu Karmic

Krita, KDE's take on a graphics application, still contains a nasty bug in Ubuntu Karmic that stops it from functioning with a Wacom graphics tablet. The cause of this issue is rather simple, QT expects a device name of stylus, while Ubuntu assigns the tablet names like Wacom Intuos2 6x8. Luckily one can override the name easily with hal. Just create the file /etc/hal/fdi/policy/10-wacom.fdi containing:

<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">


<match key="input.x11_options.Type" contains="stylus">
<merge key="info.product" type="string">stylus</merge>

<match key="input.x11_options.Type" contains="eraser">
<merge key="info.product" type="string">eraser</merge>



You have to reboot after this change or replug your Wacom. A proper fix for this issue seems to be in Qt 4.6, but Ubuntu Karmic is stuck with 4.5 at the moment.

Gimp Double Toolbar Patch for Ubuntu Karmic

I updated my Gimp Double Tooolbar Patch for Ubuntu Karmic/Gimp 2.6.7. Results can be found in my PPA at:
The prebuild packages are available by apt-get via:
deb http://ppa.launchpad.net/grumbel/gimp/ubuntu karmic main
deb-src http://ppa.launchpad.net/grumbel/gimp/ubuntu karmic main
Edit: Location of the packages has changed.

Monday, October 26, 2009

Galapix meets Mandelbrot

Just hacked together some mandelbrot set support for Galapix. Its rather slow and rather buggy, but should make a good test case for expanding Galapix to support more then just plain image sources and of course it makes pretty pictures too:

Command to display mandelbrot is: build/galapix.sdl view buildin://mandelbrot

Saturday, October 24, 2009

Galapix 0.1.2

Just did two Galapix releases in a row, as the first one contained an annoying little bug I overlooked, so here are a list of all changes from 0.1.0 to 0.1.2:
  • added automatic check for libspnav
  • added proper configuration variables to build script
  • EXIF support
  • Zoomify support
  • available thumbnails are now loaded directly at startup, instead of dynamically later on
  • FileEntry and TileEntry generation has been merged to allow faster loading
  • image refresh on F5 has been fixed
Download is availabel at:

Thursday, October 22, 2009

Ubuntu 9.10

Just did a Ubuntu 9.10 Beta upgrade, so here a few quick notes:
  • memtest86+ gives a few error messages during the upgrade
  • the new Grub1.97beta4 is modular (see /boot/grub/*.mod) and much slower then the previous one, in numbers that is: it takes 40sec(!!!) to load grub
  • my internal speaker stopped working, the sound is now handled by the soundcard, haven't figured out how to turn it back to the speaker, removing pckspkr from the blacklist and loading it manually didn't help
  • the gnome-volume-control/mixer is gone, replaced by some another tool that doesn't allow much control and doesn't work at all without pulseaudio, gnome-alsamixer is still there as an alternative, but volume buttons on the keyboard no longer work without pulseaudio
  • the soundcard now makes a very noticable *klack* whenever an app starts using sound, annoying, seems to be fixed after tweaking the mixer settings with gnome-alsamixer
  • timer-applet now crashes a lot, also had crashes of Pidgin and Rhythmbox, maybe sound related
  • Gnome keyring now asks on the command line for a passwort instead of with a new window, breaks using svn in emacs, haven't figured out how to fix it, libpam-gnome-keyring might be the guilty package
  • Rhythmbox is behaving weirdly, sometimes seems to get stuck
  • my USB HD now gets its USB port resets a lot, even when not in use, it also no longer properly suspends after inactivity

Saturday, October 17, 2009

Galapix 0.1.0

Over the last two weeks I did some more work on Galapix, mainly just finishing up some work on the threading I started a long while ago and never fully finished. So Galapix SVN is now quite a bit more usable again. I also did a new Galapix release, which includes all the stuff that has allocated over the last year, namely support for a ton of new image formats, SVG, Krita, Gimp, RAW images along with archive files are now supported. There is now also a Gtk based GUI, but its still rather incomplete.

For those that don't know what Galapix is, its an zoomable image viewer for large collections of images, see this old Galapix 0.0.3 video:

You can find Galapix at:

Saturday, October 10, 2009

OpenGL Manpages for Ubuntu

Ubuntu currently doesn't ship OpenGL manpages, which is quite annoying. So here a quick howto on how to install manpages on Ubuntu:
  1. apt-get install subversion docbook2x
    Maybe you need more docbook related stuff, haven't checked the exact requirements.
  2. Download the xml docbook source from the svn repository:
    svn co https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/docs/man
  3. Go to the directory with the XML files and run:
    for i in *.xml; do docbook2x-man -N "$i"; done
    The -N is there to fetch dtd's from the net, which is really slow, but the easiest thing to do, alternative would be to setup a catalog file and pass it in with -C.
  4. Last step will give you *.3G files, which are the manpages, copy them to /usr/local/share/man/man3/
  5. Run sudo mandb to update the mandb cache
  6. Run man glCreateShader to see if everything worked out
Note that you can find prepacked man pages for Ubuntu elsewhere on the net and there are also some floating around on an FTP server from SGI, but I found those all to be outdated, lacking newer OpenGL functions.

Tuesday, September 29, 2009

Windstille Editor - Animation Progress

The animation system in the Windstille Editor is making progress, it is now somewhat usable for very simple animations, the little test video shows what works so far:

Saturday, September 26, 2009

Windstille Editor - Animation and Stuff

Time to write a quick little update on what is going on with Windstille and the Windstille Editor. First the boring stuff, I cleaned up the build system a good bit and removed a number of unneeded includes. PhysFS is now also mostly gone and replaced by a very basic Pathname class, this makes some things such as taking filenames from command line much cleaner and simpler.

One of the bigger changes of the last few weeks is that I switched from the old direct drawing to a SceneGraph based approach. That should allow a much cleaner integratation of shader effects and also allows some speedup, that wheren't easily doable with the previous approach. The final rendering also got moved into a Compositor class, so that clean separation between framebuffer_object based rendering and non framebuffer_object based rendering is now easily doable. The integration of the SceneGraph is however not quite complete, so the old SceneContext stuff is still hanging around for backward compatibilty for now.

Next thing that got a major revamp is the NavGraph edit tools in the editor. They now feature grid and object snapping and have proper support for multiple layers, so that you can have the character walk behind certain layers or change layers on the fly, which wasn't previously possible. Undo/redo also works now for the NavGraph and got a major cleanup for everything else.

The game engine itself also got a revamp so that it now can load and play the new decal based levels, the old tilemap based stuff will soon be a thing of the past, but is again at the moment still kept for backward compatibilty.

The last big thing is still pretty much in development, it is an animation system that should allow the creation of keyframe based sprite animation. I think I have most of the way I want to do it figured out, now its just a matter of actually implementing it.

A screenshot of the current state of the editor:

Friday, July 24, 2009

USB Snooping - Super Box4 - 2 Player

Currently trying to figure out how to get rumble to work on the Playstation2 controller or more specifically the Playstation 2 controller connected to a blue "Super Box4 - 2 Player" converter box (cheap thing bought on ebay a long while ago). As the driver of this thing isn't compatible with Windows Vista, I had to switch to a different USB snoopying tool and to Windows98, the resulting log is available at:
As far as I can tell, this is what makes it rumble:

TransferBufferLength = 00000004
TransferBuffer = e41f98f5
TransferBufferMDL = 00000000
00000000: 02 01 00 ff
UrbLink = 00000000
RequestTypeReservedBits = 00000022
Request = 00000009
Value = 00000202
Index = 00000000

The 02 should be the controller number, ff the rumble strength, there is also something going on with the other bytes, I think the 00 might be the other motor. However so far I haven't been able to replicate the rumble on Linux. Using usbdebug from xboxdrv source tree I get:

usb> ctrl 22 09 202 0 02 01 00 ff
Sending to ctrl: 34 9 514 0: [4] { 0x02, 0x01, 0x00, 0xff } -> -2 'No such file or directory'

Randomly varying some numbers gives other error messages, so it shouldn't be quite close to the solution. Not sure what is going wrong, maybe I am overlooking something obvious.

Tuesday, July 14, 2009

Some Sega Genesis/Mega Drive Reviews

Played through a whole bunch of Sega Genesis games over the last few weeks, time for a little quick review of everything:

Aladdin: The level design is pretty impressive as it feels very organic and non-tile like (similar to Earthworm Jim which comes from the same people), animation is great, the gameplay itself however was a bit of a disppointment, as it got a little repetative, the story, told through very simple dialog cutscenes, feels rather disconnected from the game, so its hard to tell what is going on when you don't know the movie. Over all however a decent game, just not as good as I expected.

Sonic 1: The first few levels looks and feels like you expect from a Sonic game, very fast with loops and stuff, but most levels after that feels Mario-like, i.e. slow exploration, which plays pretty crappy as Sonic takes way to long to accelerate for that kind of gameplay. I didn't enjoy it much.

Sonic 2: A good bit better then the first, here most levels have the fluid fast feel of the first one and you also have Tails in addition to Sonic available. Had some fun with it.

Sonic CD: I enjoyed this one the most. The level have the most fluid feel to them and aren't as annoyingly complex as those in Sonic 3. There is also a time travel mechanic that changes the level theme, which is a nice twist.

Sonic 3: It pretty much continues what Sonic 2 did, just a little lengthier this time around. I ran quite a few times out of time in a level due to their size which was pretty annoying. I prefer the shorter levels of the previous games. The levels also where way to complex this time around.

Sonic & Knuckles: Levels seemed shorter in this one again, which is good. Overall it seemed decent enough, but probally a little stale, as there wasn't much new stuff.

Sonic Spinball: This merges a somewhat controlable Sonic into a pinball game. As a plain pinball game this probally isn't all that interesting, as the four tables are all rather boring, but when seen as an exploration game its pretty fun, as you have to figure out which things to hit and where to go to reach the next level. So till you have figured that out its fun, after that there doesn't seem to be much point to it.

ComicZone: I love this one. Its pretty short, but its also pretty much a one of its kind game. Its a beat'em up kind of game set in a comic book with some puzzles thrown in. Loved the little rat that you can use to hunt for secrets or for solving puzzles and also that each screen is unique. Great game overall.

Turrican: Looks like a half decent port of the Amiga original, the difficulty however seems to be screwed up badly, this one is much harder then the original. The last level was pretty damn annoying to navigate around in.

Universal Soldier: This is an oddball of a game, its Turrican 2 with a Universal Soldiers movie license and sprites thrown in, which really doesn't make any sense. It also jumbles the level order a bit around and introduces some completly new levels, while leaving out some of the original ones. The music got also a little trashed as well. Turrican 2 is obviously a much better game then this, but overall its actually a decent enough port if you can look past the Universal Soldier crap.

Mega Turrican: This is not a port, but actually the real original Turrican 3, which was later ported to the Amiga. Its a pretty decent game on its own, but the grappling hook is a little annoying to control and the game lacks the large explorative levels of Turrican 2, it feels more console like.

Gunstar Heroes: A decent jump and shoot game, but for my taste way to much is going on at the screen at the same time, it lacks the precision of a Contra game. Didn't like it that much.

X-Men 2: Clone Wars: Decent comic licence game, looks pretty good and plays pretty well, but story is kind of not really there and gameplay gets a little repetative over time, but as you have plenty of characters to chose from you can add in some varity.

Saturday, June 27, 2009

Worst PCI installation ever...

As my computer is a little low on USB ports, 4 on the back filled with mouse, keyboard, graphic tablet and monitor, leaving no place for an USB HD and printer, I decided to install a USB PCI card. Shouldn't be so hard, after all I have done that a few times before. What I didn't expect was how totally broken the design of my PC case is.

Normally you would expect the screws to be on the inside of the case, but not here, the screws for the PCI card are on the outside. This means you have to wrestle the top of the blind through a quite small opening, but that of course isn't enough, as you try to wrestle the thing through the opening, the bottom of the PCI card collides with the actual PCI port. There is also a corner on top of the whole mess which you have to navigate around and even when you are close to being done, you still have to perfectly hit a thing at the bottom of the PCI blind. And of course all that happens with one of those tiny half-height cards that don't give you any surface to properly grap them, right next to a huge PCI card which doesn't give much free room for your hands on top of that. Capacitors right next to the PCI slot add some additional challange on top, as you constantly end up hitting them with your PCI blind.

Even after I finally managed to wreste the card into the slot somehow, I can't say I understand how that piece of crap case is meant to function. It seems to require a ton of luck to hit that one tiny position and rotation angle that allows you to fit in the PCI blind without hitting the PCI port, which is next to impossible.

Tuesday, June 23, 2009

Star Trek: The Next Generation – A Final Unity (PC)

A Final Unity was released back then almost 15 years ago in 1995, so I am yet again a little late with the review. The gameplay consists of two core parts, away missions, that feature classic point&click adventure gameplay and tasks on the Enterprise itself, that involve navigation and ship on ship battles. The adventure part is the dominant one as most of the fighting and ship repairs can be delegated to either Worf and Geordi and thus run completly on their own. I made plenty use of that, so I can't really comment on how they play if you don't run them on autopilot.

On the away mission the player is in control of four characters and can switch between them at any point. The characters act however as a group, so you can't have different characters on different screens, they also all share a single inventory. They however have different abilities and they also act as a build in help system, you can talk to them at any time and they give you hints on what to do next. Sometimes it can annoy a bit to have four characters standing around, as they can get in the way, covering hotspots you have to click, you then have to manually move them out of the way.

The actions you have at your disposal include Look, Walk, Use and Talk and can be rotated via the right mouse key, which makes the game easy to use. The walk speed of the characters is quite slow. The game does allow to fast-forward the walking by holding the shift key, which causes however is a little fast and pretty much an instant warp function on a faster PC.

The puzzles in the game are for most part logical and easy to solve, especially with the helpful comments of your teammates, they however can sometimes end up a little bit on the tedious side, as especially in the beginning they are more about doing things then figuring out what to do. Dialogs also happen to be mostly of the "click every answer" type. One of the more annoying parts of the game is that the dialog varity is a little limited, using items that can't be combined always gives a single default answer and contacting starfleet always presentents you with the same few questions and answer choices, some more varity and context related answers would have been welcome.

The story of the game is overall ok, its not great, as it starts rather slow and ends in the classical, but rather uninteresting, "ancient superace created mighty weapon" plot. The story also lacks interesting characters, so its mostly diplomaty talk, which isn't all that organic or interesting.

What the game does really well is the mix of away missions and tasks on the bridge. The tasks on the bridge remove the feel of a static point&click structure and gives the game a more organic exploration feel, which fits very well with the TV show. When on the bridge the game also tends to have delayed events, i.e. you wait for a call of somebody and it will take a few minutes to come in and in those minutes you can talk to other people on the bridge or check engineering or such. Its a small thing, but helps to make the game feel alive and less predictable. The game also offers some freedom of choice, so its not a completly linear experience and on a replay one an discover a few new things, that might have gone unsolved the first time around.

The game also offers a difficulty selection, not quite sure how that affects the game in detail, but the harder difficulties allow you to manually select the teammembers and items you want to take with you on a mission. I played on the lowest difficulty setting, so no idea how much additional frustration and trial&error results from that. The game does have character death, on the lowest difficulty setting at least the game however was solvable without any bigger issues, only very close to the end dieing become a little bit of an issue, so saving often can't hurt.

The graphics in the game are a pretty mixed bag. The technical limits aren't that bad, with 640x480 and 256 colors the game looks decent enough, but the graphic style is a problem, as its very inconsistent. Some characters are digitalized real people while others are hand drawn and in some cutscenes you get 3d models, which again don't fit in with the rest. The backgrounds also have their problems, as they have a colored pencil look, which doesn't fit well with the character sprites. The character sprites themself of course have issues too, while they have plenty of frames for animation, the animation looks often rather awkward, with incorrect anatomy and heads that look a little like a bad copy&paste job. The art design of the backgrounds also looks a little over the top, more like classic sci-fi magazine covers, then things like you would see in a TNG episode.

On the technical side of things the game is a little troublesome, its one of those late DOS games that cause some trouble with Dosbox, so making it run there isn't trivial as it involves things like replacing the DOS4GW extender and patching the install routine. As I didn't manage to make it work in Dosbox I used an old 800Mhz Athlon computer with Windows98 to play it, which for most part went well. My TFT did have a little trouble keeping up with graphic mode changes, so sometimes I had to power-toggle it to show me a picture again. Disabling Windows detection in the properties is needed as well and my computer is a little to fast for the game, causing the ship battle sequences to run rather speedy. The core adventure parts however ran fine, except for a few crashes here and there.

Overall, A Final Unity isn't perfect, the story isn't all that interesting and the graphic style is rather inconsistent, but it manages to caputure the feel of a TNG episode extremely well and makes a pretty decent Star Trek game.

Wednesday, June 17, 2009

Motion Sensing 2.0

Now with all three console platforms getting motion sensing, time to sum up some thoughts:

Nintendo's Motion Plus: Looks like a decent addition to the Wiimote, judging from the videos I have seen and the technical specs it won't do 1:1 mapping, but will give a much better detection of movements then the Wiimote alone due to the new gyro sensor. The best part about it is probally that sooner or later we might see Linux drivers for it.

Microsoft's Natal: It looks really impressive for the first five minutes, since its basically motion capture for use in your living room, but on closer inspection its much less impressive. Natal seems to only be able to track arm and leg movement, but not foot or finger movement, so it will be pretty useless for any serious gaming, as you don't have any detail in the motion data. Navigating a character or firing a weapon could get quite troubesome when the thing can't detect your hands properly. An additional controller would fix that, but so far Microsoft hasn't announced one. Considering that Microsoft hasn't shown a single demo that could be considered a normal full fledged game and it is hard to image how you would even do normal gameplay with it, Natal will probally stay a casual gaming device. It looks to much like a solution looking for a problem.

Sony's Motion Wand: Sony's solution looks to be by far the best of all. It doesn't do full body motion caputure like Natal, but it does full 1:1 mapping of position and rotation. Seeing the video where the controller was replaced by 3d objects looked really good and demonstrated how exact the tech is. Sony also managed to demostrage a wide varity of possible gameplay with the device (sword fighting, fps, rts, graffiti, etc.), so it should be quite useful for non-casual titles. As the device is finished its not yet clear how many buttons it will have and if it will feature an analogsticks, so they have still potential to screw it up. Another point that will be interesting to see is how good their pointing capabilites are, the Wiimote has a special IR camera and sensor bar for that, Sonys solution on the other side doesn't seem to have either of that, so it might end up less preciese in that area.

Tuesday, June 16, 2009

Installing Windows98, again

As the SoundBlaster Live! didn't want to work in DirectSound (dxdiag displayed no sound card found) I am now trying a complete reinstall of Windows98 on the Athlon 800 in the hope it helps. On my last try I did install a lot of crap before I found the right driver, so I might have screwed up a thing or two in the process. With all the notes and downloads from the last try this one should hopefully run a little faster. Some general gaming notes:
  • Syndicate Wars: Works with SbLive!, doesn't work with on-board sound, the game runs a little to fast
  • Fallout, Planscape: Tourment: don't work with on-board sound, sound plays at twice the speed
  • F22:TAW: works with on-board sound
  • Outcast: doesn't work with the TFT, it shows up ok, but the TFT displays a fat "i don't like this resolution" warning that can't be canceled (maybe its time to setup a CRT...)
Now to some Windows reinstalling again:
  • The first status bar of the Windows98 install stays for over a minute at 100%, looks like a crash, but actually works fine if you wait long enough
  • Windows98 installation takes around 10min till the first reboot
  • then around 4min till the second reboot
  • then another 4min till the third reboot
  • after around 20min Windows98 is freshly installed
  • Samba network works out of the box, makes driver copying easy
  • installing Matrox driver then rebooting
  • now trying to install SoundblasterLive! (that stuff comes with a ton of crap extra software)
  • rebooting fifth time at the 25min mark
  • sound works - for the first time I could hear the EAX logo sound, which was silent on the old install, maybe a good sign for DirectSound
  • upgrading to InternetExplorer6, the webinstaller takes a while to download
  • reboot number 6, now at around 32min into the reinstall
  • Windows Update goes to a non existing page when no internet connection is available
  • so back to the confusing Internet connection setup: easy enough this time around, I cancel the MSN advertisment dialog and use the IE menu Tools/InternetOptions/Connection to set it up manually instead
  • with Internet connection up and running Windows Update stops missbehaving
  • downloading some 18MB of security updates
  • reboot 7 at the 43min mark
  • installing Opera, 7zip and Flash
  • dxdiag, using DirectX6, detects the SBLive! and plays sound
  • now trying to upgrade to DirectX9c via Windows Update
  • reboot 8 at the 54min mark
  • sound is still working, even with DirectX9c
  • now trying to install Via4in1 and doing reboot 9
  • onboard audio is disabled, so I ignoring the Via Vinyl audio driver
  • installing Sidewinder Precision 2 driver and rebooting for the tenth time
  • Sidewinder driver is causing a bit of trouble, it comes with two setup.exe, one top level and one in a subdirectory, you have to start the top-level one, as the subdirectory one will give you an incomplete and broken installation
  • now at the 1 hour mark and all the core parts seem to be installed and working fine, time to install some games and restore Grub
  • some days later...
  • since F22:TAW has a tiny few graphical glitches and slowdowns (very minor stuff really), I decided to replace the Matrox G450 DH with a Geforce5fx that I had floating around
  • installing the Nvidia Geforce5fx was straight forward as far as drivers go (Nvidia's webpage is pretty well organized), but there is a little problem: all I get is a black screen after the login screen
  • ripped the Nvidia out and put the Matrox back in, Nvidia worked fine in Linux, but the black-screen problem didn't provide a clue on how to fix it
  • installed a USB2.0 PCI card, seems to work fine in Linux, in Win98 it gets an exclamation mark in the device manager, however it seems to work there too
  • USB storage doesn't work with Win98, might need special driver
  • installed an USB mass storage driver for Win98, worked smoothly
  • replaced old 10Mbit network card with a "new" RTL-8139 100Mbit network card, Windows98 didn't have a driver for that and with no network to download it from, I had to use an USB stick to transfer the driver, after installing a wrong driver first, a crash on reboot, and cleanup of the incorrect driver, it seems to work fine now
  • the RTL-8139 is giving problems in Linux, it doesn't detect a link even so the cable is plugged in, after a complete cold reboot it works now (suspicion: the Win98 driver kills the card for Linux, two reboots later, the theory still holds)
  • installed a 200GB drive, the BIOS detects it has 30-something GB drive and Grub can only access its first few gigabytes, but under Linux it seems to fully work
  • Linux has some annoying frameskips every 2 seconds on DVD playback, Windows98 with Mplayer Classic doesn't have them and feels much more response with DVD playback
Now to the games:
  • F22:TAW installs fine and has sound, but music is again causing trouble, still doesn't sound pretty and more importantly it causes the game to crashe, which it hasn't done before. Luckily the music can be disabled in when installing, after which is seems to run fine. There is a patch for the game available here, which improves the game, but doesn't fix the music issue. The game seems a lot crashier with the SBLive! then it did with the onboard sound, pretty annoying.
  • Fallout: seems to work fine with the SBLive!
  • Syndicate Wars: Still works with SBLive!
  • STTNG: A Final Unity: Works after disabling Windows detection in the properties, but runs a little to fast in the battle scenes. The graphic mode causes some trouble, the TFT displays a black screen, but after some Alt-Enter'ing it ended up showing the picture, not sure whats up with that.
PS: The old Athlon is running a 40GB and a 45GB IBM Deskstar, hope I don't murder those drives with all that reinstalling, after all they don't have the best health record...

Sunday, June 14, 2009

Installing Windows98

Today I reinstalled Windows98 Second Edition on an old box, in the hope that it would work for some older games that are to new for Dosbox to old to work in Wine or WindowsXP. So here a quick summary of my experience:
  • W98 isn't much good at hardware autodetection, so I had to manually download the w9x_682.exe driver for the Matrox G450 Dual Head to get rid of 640x480 and 16 colors
  • my Logitech MX500 USB mouse works out of the box
  • boot time is very fast at around 10sec and beats my DualCore box
  • getting Internet to work is a little confusing, as W98 wants to install a modem, not the LAN, a little clicking through random boxes and entering gateway server manually makes it work
  • Internet Explorer 5 isn't to happy with the default msn.com start up page and crashes often
  • Firefox3 doesn't work on W98, so I go with Opera 9.64 which works fine
  • WindowsUpdate gives an error with IE5, so I'll upgrade to IE6 first, after which it seems to work
  • installing DirectX9
  • sound is not working, so I am downloading Via 4in1 for the Gigabyte 7VX mainboard along with driver for audio
  • audio driver for 7VX doesn't work, the 7VX-1 seems to be a different mainboard, but thats not listed on Gigabyte, so I am downloading the VIA driver Vinyl driver for the T82C686 AC97 Audio Controller manually from Via, sound is now working
  • W98 can't read .zip, so I am downloading 7zip
  • you have to reboot W98 a lot, oh how I missed that...
  • Via produced sound hickups in multiple games and sound plays at twice the speed, tried to transplant a Soundblaster Live!, but that caused Windows to just freeze on startup and didn't work in Linux either, ripped it out again for now
  • F22:TAW works great, except music, which is way to loud and crap and resists the volume control, disabling it completly is however possible
  • Installing Logitech Mouseware driver makes the mouse stop working, it gets detected properly when plugging it in, but after a reboot it no longer reacts, after uninstalling the driver it works again
  • the onboard gameport doesn't detect the Sidewinder 3D Pro (I remember that there was an issue with 3D Pro and fast computers or so, forgot the details)
  • Sidewinder Precision 2 USB works, but only as HID device, it is not registered by the Sidewinder driver, maybe I need a different driver
  • Sidewinder Precision 2 software does not exist on the web, its not offered by Microsoft and by no other site, I searched for a long long while before giving up and instead went hunting for the original driver CD, luckily with success, my Sidewinder Precision 2 stick now works
  • being forced to insert the W98 CD whenever a driver gets installed is annoying
  • the Gigabyte 7VX-1 is a OEM motherboard not supported by Gigabyte, seems like no BIOS upgrade is available (not yet sure if I need one, but I might end up putting a 200GB drive in) for that one
  • removed an old modem PCI card, inserted the Soundblaster Live! into the slot and this time it seems to work
  • Windows sound effects and sound in Linux work with Soundblaster Live!, but F22:TAW complains about sound card being busy at startup, no sound in Fallout either, DirectSound seems broken
  • W98 fails Windows Genuine check, can't download stuff from Microsoft webpage...
  • can't figure out why DirectSound isn't registering my sound card, even so normal Windows apps have sound, reinstalling Soundblaster Live! driver didn't help, now trying a complete reinstall of Windows98 again

Wednesday, June 10, 2009

More faces

Created some more faces, don't really have any clear use for them, just relaxing do to them while listening to a podcast. Overview picture of all faces can be found here. If anybody needs some for his or her game, this offer still stands.

git clone http://pingus.seul.org/~grumbel/vegastrike.git/

Saturday, May 23, 2009

Mass Effect (PC)

As my Xbox360 purchase has been put on hold yet again, kind of indefinitely this time, I went with the PC version of Mass Effect. Unlike Bioshock Mass Effect does not support a gamepad, so I had to go with mouse and keyboard, which however worked quite fine, as the UI of Mass Effect has been changed quite a bit to work well with mouse and keyboard.

The game puts you in the shoes of Shepard on a quest to save the galaxy. RPG typical you can create a custom character at the start of the game and as always I chosed to pretty much skip that step and go with one of the provided default character. I never quite understood what the point is of having the choice happen before the game and not actually in the game itself, as is for example the case in Gothic 2. Having to make a choice about your characters abilites before the game even starts is not only time consuming and annoying it also forces you to make descisions about powers and abilities that you have no idea about how they will influence story and gameplay. Its bad game design that has its place in western RPGs for way to long and I would strongly prefer it if games would just skip it and leave customization to the gameplay itself.

Once beyond the character creation the game actually starts and luckily leaves most of other RPG issues aside. The fighting in Mass Effect is not just third person shooter like, its pretty much a straight third person shooter, including cover mechanic and tactical commands for your squad members and it plays suprisingly well. The fighting is also seamlessly inegrated into your normal gameplay, so you can pull your weapon whenever you like.

Aside from walking on foot you also have a vehicle at your disposal, which seems to be a 3D version of that thing you drove in Moon Patrol, with which you do exploration on other planets. Driving around in the Mako is a little less perfect then the shooting, as that vehicle seems to be pretty much weightless and it bounces around like crazy when you hit an obstacle, but it does its job very well of giving the game some varity and scale.

While all that driving around and shooting is lots of fun, the game however has some really annoying problems with the way it handles death. The first one is that you can die really quickly in this game, some death are instant one-hit kills, if you don't dodge a blast you are dead. Which by itself wouldn't be that bad, but combined with the lack of proper auto-save, unskipable cutscenes and a terribly long death animation slowmo can get extremely annoying. The game also does not allow saving while in the mid of a fight. So you are basically stuck with retrying the same fight over and over again till you figured out what kills you and how to avoid it. The good thing however is that you can toggle the games difficulty at any time, thus basically reducing the one-hit kills to simple shots that destroy most of your shields, but let you life, thus giving you the needed time to properly plan the attack and evasion. On the "Casual" setting the game is really easy and those issues pretty much never arrive, but on the higher difficulty they can be pretty much game breakers.

The dialogs are another huge part of this game. Mass Effect features an innovative dialog wheel that along with great character art gives the game a cinematic feel. The dialog wheel unlike normal dialog selection always pops up before the last line of dialog has ended, so you can smoothly chain dialog together without interruption. Similar to Kotor the dialog in Mass Effect features good, neutral, evil choices for dialog, which happen to be mapped to the top and bottom part of the wheel and thus allows easy selection without convusion.

The dialog wheel is however not without problems. One small issue is that there is a noticable disconnect between what your character says and what is displayed as choice on the wheel. Due to the good/neutral/evil answers that is never really a practical problem, but it often feels unnecessarily confusing. Another issue is that already selected dialog options aren't removed from the list of available selection, thus leading to accidental repetitions of dialog, made worse by the lack of a proper skip button. You can skip dialog by pressing space, but as space also happens to trigger the next dialog line you might end up accidentially selecting an option instead of skipping dialog, it would have helped if those two functions would be on separate keys.

The bigger problem however is the dialog itself. The good/evil separation causes the dialog to always be flat and predicable, you hardly ever need to chose an answer, instead you just go with the default depending on if you play good or evil. The dialog also just goes a little to smooth, if you select the good answer, the result will pretty much always be good, unexpected consequences just never happen in the whole game. The dialog also happens to be a little to exposatory for its own good, you can asks almost every character about their backstory, the universe and everything and they will happily chatter along. But while you might gain some information that way, thats just not how dialog should work, you are talking to a character after all not an encyclopedia.

Another big issue with the dialog system is that the choices you have available are the result of your RPG stats, if you don't have invested any points in Charm, you won't have a certain answer available. That doesn't sound so bad by itself, but it caused the game to basically run into a brick wall for me a few times, when the lack of choice means that you can't actually say what you want to say and the dialog thus gets into a loop. There was a key scene in the game where I had to basically had to decide about the life or death of an NPC and the lack of choices predetermined the outcome for no good reason. This was hugely annoying and frustrating. Luckily I had a few level points left, could use an earlier save and invest everything in Charm and thus go past that point with a satisfying selection, but it was a huge immersion breaker non the less and feelt just utterly arbitary dialog restriction. Similar issues happened before a few times, but luckily after having maxed out Charme those issues where completly gone and the dialog become much more enjoyable.

In terms of overall story the game is a bit of a mixed bag, it starts out interesting and it ends in a great final, but what happens in between feels a little arbitrary and disconnected. There are to many quests that have little to do with the main plot and feel like a waste of the characters time. A story that basically consists of a race against time just isn't the best place to put random side quests and exploration into.

One thing I liked quite a bit was the decryption mini-game, which is used to open some crates to get the items within. The game happens to be basically a circular version of Frogger, where you start on the outer ring and have to move your cursor to the center while obstacles rotate around and a clock ticks down. What makes the game work is that it provides a good amount intensity for the few seconds it takes to solve it. The controls also happen to be very simple and direct, so if something goes wrong it is basically always your fault, not the games one. It is so far the best mini-game I have seen of its kind. Mini-games in most other games almost always ended up being to boring or chumbersome to use and took the intensitivy out of the game, instead of increasing it (see Bioshock).

While much the above might all sound quite negative, my final take on the game is however pretty much nothing but positive. The game picks bits and pieces from the RPG genre, Gears of War, Full Spectrum Warrior, Moon Patrol, Star Control 2 and plenty of more and combines them into and absolutely awesome epic space adventure game. For all the faults that the game has, there are simple enough workarounds that lets you enjoy the game to its fullest. The dialog might not always be as gripping and interesting as in the best adventure games out there, but thanks to the terrific character art and voice acting it is still way more interesting then your average RPG. Not each piece might be the best you can find in its genre, but the simple fact is that there just isn't anything that combines as much as Mass Effect does. There just isn't another shooter around that also gives you great dialog and free space exploration.

My first play through the game took around 16h, focusing pretty much only on the main quest and that was fun enough, but the game really truely gripped me when I went back and sank another 10h into it doing each and every side quest I could find. The combination of old school exploration gameplay with modern day shooting and dialog is simply something that absolutely clicked for me and I didn't have that much fun with any game in quite a long long while.

Update: I played through the game now again for a second time, this time choosing the adapt class instead of soldier and going mostly with evil choices in dialog instead of the good ones. Overall it doesn't really change much, most of the quests you get stay exactly the same and even if you reject a quest in the dialog you will often still get it into your journal, as the game doesn't really allow you to be a bad guy. Some of the adapt powers seem kind of useless, lifting hardly ever worked and stasis seemed pointless, throw and singularity on the other side, when leveled up to the max, could be kind of fun. The assault rifle however continued to work best in fights. I however did discover a tiny few quests that I have missed the first time around and I learned that the licenses you can buy in shops are actually useful, as they increase how many grenade and medigels you can carry. On my first play through I pretty much completly ignored the shops and thus licenses. The shops themselves however still feel overall useless, aside from the licenses there really is never anything interesting to buy, as the gear you will find in random container is good enough and gear in shops always way to expensive. Another thing I learned that its a good idea to switch of the auto-leveling for your teammates, as that will allow you to increase their electronics and decryption skills which you need to gather items from containers.

Zack & Wiki (Wii)

This review will be quick, as I haven't finished the game beyond the first five levels. In terms of gameplay Zack & Wiki is pretty close to Gobliins, meaning that while it shares a few core mechanics with the adventure genre, its really isn't one, as story is pretty much completly non-existent. In Zack&Wiki you have set pieces that provide you with puzzles and obstactles that you have to overcome to reach a tresure at the end of the level. Navigation is done point&click style with just the Wiimote. Puzzles are all environment or motion based, as you don't have an inventory and can only carry one item.

On the plus side of things solving puzzles can be fun and there is plenty of motion detection gimmicky to toy around with. But the game sadly tends to ruin the fun quite effectivly. Motion detection is as usual not exactly reliable, so you can just randomly waggle your way through the game. Puzzles have the tendency to be on the trial and error side of things, not following logic. The objects you use are for most part the result of you magically turning enemies into object, i.e. there is no clear connection between the objects and the world, its just ad hoc magic that requires you to try everything in the world. What however absolutely kills the fun is dieing. Zack&Wiki boldly ignores the last two decades of adventure gaming and constantly kills the player, turning its try&error gameplay into an exercise in frustration. Made even worse trough the lack of savepoints, so you have to restart the level completly each time.

Long story short, for the time being I gave up on the game, just to annoying to play.

ArmA: Armed Assault (PC)

Time for a quick series of game reviews. First in row is ArmA, the successor to Operation Flashpoint, which happens to be one of my favorite games of all times. ArmA doesn't try anything risky, instead it pretty much continues Operation Flashpoint. The graphics are improved, the GUI is a little streamlined, now giving you a default action for objects and a big menu to collect weapons, but the core gameplay is pretty much exactly the same as before. So much actually that ArmA seems more like a face lift then a real successor. This is kind of a downer as Operation Flashpoint had quite a handful of issues such as awful indoor fighting, which mostly continue to persist.

The biggest change from the predecessor is probably the story. Instead of a character based story, the story is this time told via news casts and interviews only. This removes quite a bit of the immersion and lets the missions seem a little random. The story gets more interesting towards the end, but it takes quite a while to pick up. Another change is in that you now no longer have a completly linear mission progression, but instead each mission has optional side missions. While it sounds interesting on paper I found it to further dilute the story aspect of the game, makes it hard to keep track of what is actually going on between all those side missions. I also found the difficulty in the missions a bit out of balance, some earlier missions gave me quite a hard time and seem to feature and overly huge amount of enemies, giving the game a more arcade like feel then a realistic one, there are also now explosive barrel, which really don't fit the game. Against the end of the campaign those issues however seem to have gone and the game started to provide just as much fun as Operation Flashpoint did back in the day.

Overall its a pretty fine game, but it can't quite hold up to Operation Flashpoint as a whole and aside from a few tweaks here and there it just doesn't bring much new to the table. ArmA2 is going to be released in a few days, lets see if that brings anything new.

Monday, May 18, 2009

Parallel Bash

With todays multi-core processors Bash has a problem, as by default it only does sequential evaluation. One can launch processes into the background with the & operator, but that doesn't give much control over how many processes are launch at once. There however is a quick workaround:

function pwait() {
if [ "$#" -eq 0 ]; then

while [ $(jobs -p | wc -l) -ge $MAXPROC ]; do
sleep 1

The above can be inserted into .bashrc and then used like this:

for i in *; do
dosomething $i &
pwait 10

The parameter to pwait gives the number of parallel processes to run. You can toy around with that value as well as with the sleep time to improve results. It would be better to be able to use wait instead of busy waiting, but there doesn't seem to be an easy way to accomplish that.

Edit: The dosomething must not be in (), since else jobs won't catch it and the thing will not work.

Wednesday, May 13, 2009

Adonthell Sprites

Created a bunch of sprites for Adonthell today:

Update: You can find the complete cast at:

Friday, May 08, 2009

Lets get political...

This blog post is for German readers only, if you have censorship issues in your country, and who doesn't, please try to support your local organizations.

Germany is on its best way to install Internet censorship measures, so time to get a little political and do something against it. One cause of action is the current petition against the blocking of Internet pages which can be found at the link below. Once registered, with your real name, you can sign the petition (this is the real deal, not one of those useless Internet petition pages):
The next issue is the German pirateparty, which is still in need for signatures so that it can take part in the next Bundestags election. To sign up for it you have to print out a page, sign it and send it to them, more detailed instructions can be found at:

Wednesday, May 06, 2009

Linux joystick calibration considered useful

For a long time I was under the impression that joystick calibration is no longer needed with current day joysticks, yesterday I however figured out that I was wrong, kind of at least. While it is true that todays joysticks normally don't need to be calibrated manually, the values they submit over USB are fine the way they are, the Linux joydev calibration interface can still prove extremely useful or harmfull for that matter. The way calibration in Linux works is that you basically have four values for each axis (they are stored a little different internally in js_corr::coef[], but you can convert):
  • center_min
  • center_max
  • range_min
  • range_max
These are calculated from absflat, absmin and absmax as reported by evdev and in turn I assume by USB (haven't yet looked where those values come from) and used to transform the raw USB values (range often 0,255, but can vary with sticks) to the one of the joydev interface (range -32767, 32767). The thing now is that these values have terrible defaults for most of the sticks I have tested, resulting in a deadzone far larger then needed and in a loss of far range of the joystick.

On the SideWinder Precision 2 stick for example they result in a 10% deadzone, which is very noticable and annoying in games, as they make it impossible to make small movements. They also result in a deadzone on the throttle control, which is totally useless. The cool thing is that those issues are not a limitation of the hardware, but just the result of the calibration values and those can be tweaked with ease, jstest-gtk contains a tab where you can tweak those values directly. Or if you don't want to bother with that, you can just use jscal, which ships with most distros:

jscal -s 6,1,0,127,127,4227201,4194176,1,0,127,127,4227201,4194176,1,0,127,127,4227201,4194176,1,0,127,127,4227201,4194176,1,0,0,0,536854528,536854528,1,0,0,0,536854528,536854528 /dev/input/js0

The values are not persistant, so a reboot or unplug will reset them.

That issue aside, one can do a few more useful things with the calibration interface, such as inverting an axis. The joydev interface also allows to reorder axis and buttons, if the default might not be suited for a game, that feature seems to be broken in jscal that ships with Ubuntu, but will be implemented in jstest-gtk soon (Update: its implemented).

One annoying thing with the joydev however is that there doesn't seem to be a way to get the event device associated with the joydev device, there also doesn't seem to be a way to reset calibration and button mapping back to the defaults, once changed.

Edit: The above explanation, while true, has only limited use, as most games use SDL and SDL will use evdev by default, not joydev and evdev doesn't support any kind of calibration. SDL can however be forced to use the joystick device via:

export SDL_JOYSTICK_DEVICE=/dev/input/js0

Monday, May 04, 2009

Time for a new joystick tester

As jstest is console based and as jscalibrator is an old rusty Gtk1 application, I started to write a shiny new jstest application based on Gtk2 over the weekend, called jstest-gtk. Not quite sure how far I'll take this, but currently planed features include:
  • classic joystick testing
  • classic calibration
  • axis and button remapping
  • axis inversion
There are some more ideas floating around, such as evdev and SDL support, force feedback testing, support for toggling LEDs on devices that have them, HAL, etc., so there is plenty of work if somebody wants to contribute.

Thursday, April 30, 2009

Grand Theft Auto: Chinatown Wars (DS)

Time for a quick little GTA:CW review. What I really liked about the game was that for the first time in a long while it felt like a full blown original game on the system. Most other games either boil down to simple puzzle mini-game stuff or cheap rip-off of titles from the big consoles. GTA:CW on the other side, while not 100% original, knows that its not running on a big console and doesn't try to emulate GTAIV. Instead it goes back to a more cartoony style of the original GTA PSone titles and for most part success quite well with it.

Car chases are over the top ridiculous with a new mechanic that lets you crash policecars into buildings and objects to get rid of them, giving it a nice Micromachines/Matchbox feel. It never feels realistic, but its always fun. Fighting with weapons is just as over the top, with flamethrowers, miniguns, molotov cocktails and chainsaws being at your disposal. The AI never looks good in those fights, but it doesn't have to, because the game does a good job of just throwing enough of those dumb enemies at you. Mission design provides quite a bit of variety and a drug trading system gives you something to do between the missions.

What I however probally like the best in the game is how it uses the lower screen. There are a few useless mini-games on there, but they are used rarely, most minigames are ok and some minigames are actually kind of cool. I really like how you can pay the toll by throwing coins while driving, its a really nice way to give a game more interactivity without interrupting the core gameplay. Most of the time however the lower screen isn't used for minigames, but as a fully functioning PDA/GPS system. You can read mails on the thing, define a routes you want to drive, look for people to trade drugs with, order weapons in a online shop and all that stuff. You also can switch weapons on it and throw grenades. It is great to finally see a game that uses the screen for extending the core game, instead of trying to replacing it. Thinking about it, the whole use of the lower screen is actually quite close to what I experimented with in my WindstilleDS prototype thing, so no supprise that I really like it.

But with all things pretty, there are of course a few ugly parts too. The most ugly being the story. While I like the way the story is told technically, via decent looking static-image cutscenes, the dialog is just awful. I don't mind profanity in a game, but here they are just trying to hard, every sentence is filled with it and you don't really meet a single friendly character in the game (well, there is tha girl, but that gets killed like 15 minutes into the game...). Which of course kind of makes you question why the hell you work for those guys in the first place. On top of that the plot just isn't interesting either. So it boils basically down to doing random jobs for random people for random reasons, to bad that they didn't come up with something more interesting.

Another thing that feels badly broken in the game is the virtual economy. Drug trading can make you thousands of dollar in a single deal, while solving missions hardly pays anything. When you can get a hundred times the money for simply driving from A to B, instead of solving a complex mission, it just doesn't feel right. On the positive side of things, I however had quite a bit of fun with it, in the beginning I once ran out of money, leaving nothing for drug trading and me stranded driving a taxi around to get some money in the pocket again, followed by me buying all the safe houses I could find, since drug traiding really pays once you have enough money to invest.

The last three issues aren't GTA:CW specific, but apply to all GTA titles and its annoying that they are still not fixed. The first one is the lack of reset points in the missions. You can easily restart missions and skip the cutscenes by just pressing a button, but you don't have any reset points in the mission itself, which gets really annoying when you die close to the end of it. The other big issue I have with the series is a direct consequence of former one. As you don't have any reset points, all the missions are all extremely simple and short. Its annoying to have such a huge world, but then only missions that can be solved in 5 minutes and are completly local in scope. It would be much more fun to have a proper quest system and some persistantce in the game instead of just missions and no persisntance. The final issue I have is simply that the game doesn't give you anything to do once you are done with the main quest. You can still drive around, find some hidden stunt jumps and trade drugs, but there really isn't much of a reason to do so. Once the story is over you won't receive any new mail for new missions and the whole world just runs kind of dry. It would be nice if the game would auto-generate new missions or something to keep things interesting, but it doesn't.

Overall, is not a perfect game, the story is just to bad for that, but its a really fun game for the 12 hours it lasts and for the first time since Mario64DS it felt like a full game making it to the DS, it makes great use of the hardware without feeling gimmicky or ugly.

Wednesday, April 29, 2009


Currently playing a bit around with the Twitter clone identi.ca, not sure if I'll stick with it or not, but so far it looks quite usable, especially the ability to post and read messages via Jabber/XMPP is pretty cool.

Also did a redesign of the SuperTux webpage, its now a good bit less ugly then before.

Saturday, April 25, 2009

Quick Windstille Update

As mentioned before I am at the moment mostly working on the content side of things, so here two quick images, one a little building, the other a little cave. There is some more stuff floating around in the SVN repository, but its still mostly just testing and experimentation. Stuff is also still mostly in black&white, have to get rid of that habit one day and add some color.

On the coding side of things there hasn't been much progress. The editor now features undo/redo and you can drag&drop objects from the Object Selector right into Gimp. There is also a new button to save screenshots in the editor. I started a bit work on integrating the ParticleSystem into the editor, but that hasn't yet gone very far.

Friday, April 17, 2009

Braid Review (PC)

Just finished the PC version of Braid, so here a quick little review. The 2D graphics are pretty cool, Braid does some great things with particles, color and light that give it a very dynamic quality, haven't seen anything quite like it. Music is pretty good too. The story is far out in the weird artsy territory, every now and then it seemed to make a little sense, but then it lost me again. The story doesn't really have any impact on the gameplay, so its no big deal, but a little more coherence would have been nice. The way it is it leaves a bad "Now what was that about?" taste in the mouth.

In terms of gameplay Braid is obviously quite innovative, it does quite a few things with its time travel mechanic that one hasn't seen before and for most part its successes and is great fun. However not all puzzles are fun to solve, quite a few result in a huge number of trial an error attemps as the game mechnics aren't always obvious. Another issue is that the time rewind mechanic isn't usable for 'undo' in some puzzles, which adds another layer of trial an error. The game is also pretty much puzzle-only, it doesn't waste any time with game'y levels in which you use already familiar mechanics, its pretty much a run from one puzzle to the next, which gives the game a bit of a stop&go feel, as no real gameplay flow will settle in. I would have prefered a bit more classical jump'n run action, which thanks to the endless rewind is great when when it actually happens. Speaking about time rewind, I would have prefered it if the game would allow dynamic rewind via the analog triggers, the way it is implemented you have to hold X for rewind and can toggle with the triggers between 1x, 2x, 4x, 8x speed, its very easy to overshoot the target that way. I missed a way to fast forward the game (outside of timerewind) as well, as there are quite a few puzzles where you have to stand on the spot and wait for an enemy, fast forward would have been welcome there. Overall however a pretty great little puzzle game with some pretty cool crazy ideas.

Monday, April 13, 2009

Windstille Development Update

As previously mentioned, focus is now moving a bit away from the editor and back to the content side of things, as I have to get more of an idea what I want before I can figure out how to implement it. Anyway, there has still been a bit of editor progress, the navgraph tools got a little more improvments, a little compatibilty fix for older Gtkmm was added and some classes where split into seperate files. Most importantly however the layer tree got rolled back to a flat layer list, as the tree was just making things to complicated and error prone without actually providing any real advantage. This breaks the file format a bit, but the sectors in SVN have already been properly converted. Another new thing today is improved drag&drop, you can now drag stuff directorly from the ObjectSelector into Gimp, reload in the ObjectSelector is hooked up as well, meaning you no longer need to leave the editor to update graphics or mess around with a file select dialog.

I also replaced the COPYING file, it no longer contains the full GPLv3 license text, but instead an explanation which files fall under which license along with links to the licenses, namely GPLv3 and CC-by-sa.

Grub2 on an old Asus A7V

I happen to own an old computer with a Asus A7V mainboard (state of the art back in 2000), which happens to have a Promise PDC20265 controller on it. Said controller provides a few additional IDE ports for additional harddrives, on one of them hangs my Linux drive. So far so good, that setup works quite fine in Linux, the trouble however is booting it with Grub2.

First problem is that the Bios has a different idea about the drive ordering then Linux has, so editing /boot/grub/device.map is needed to swap the two drives around.

Second problem is a little more tricky, since not only is the ordering wrong, the second drive is completly missing in the first stage of Grub2, as can be seen by typing "ls", so neither the second stage nor any files can be loaded from it. So booting will fail.

Solution: Mount the Windows drive, the one tha Grub2 can see (sdb), to /mnt, then do a:

grub-install /dev/sdb --root-directory=/mnt

This will give you a /boot/grub/ directory on yoru Windows drive and a working Grub2, but without the menu. To fix this up I simply created a minimal menuentry that boots into the real Grub2 menu on the second drive, which Grub2 luckly can see without problem once Grub2 is fully booted.

$ cat /mnt/boot/grub/grub.cfg
set default=0
set timeout=0
menuentry "Real Grub" {
configfile (hd1,1)/boot/grub/grub.cfg

Some notes:
  • With Grub1 I had similar trouble, but I seem to have somehow managed to work around that, not sure how I did that, as there ain't a Grub1 install on sdb.
  • grub-install creates a /boot/grub/device.map with hd0 and hd1 in it, that can't be right, since Grub2 starts numbering with 1, not 0. (Edit: Only partitions start at 1, disks still start at 0)
  • I remember that there once was a grub-install --config-file option or something similar to make the grub.cfg hack unneeded, but that seems gone.
  • sudo wodim /usr/lib/grub-rescue/grub-rescue-cdrom.iso, as you don't want to break your booting without a rescue disc

Wednesday, April 08, 2009

Windstille Editor - Day 22

Aside from some further work on the texture packer, the editor now got some additional control points to scale an object only along the x- or y-axis.

New thing today are two new tools for navigation graph editing, along with load and save of the graph to the sector file. Probably time to let the game engine catch up to the editor and then figure out how to implement all the other stufff that will be needed (animation support, particle system, characters, dialog, etc.).

Sunday, April 05, 2009

Windstille Editor - Day 19

Work is slowly migrating away from the editor, back to the main Windstille codebase, which is a good thing, since the editor is now quite usable. There is still quite a bit missing, such as the NavigationGraph stuff and anything that involves scripting or actual game objects, but at least some of that has to wait for the game engine to catch up. Undo/Redo is probally the biggest editor-specific thing still missing. There are also some open questions left, such as if the editor should stick to structured layers or be changed to a simple flat list, so far the structured layers have been rather useless, but then I haven't tried to build a truely large sector with it.

All that thinking about the future of Windstille asside, I coded a texture packer today, so that images can share the same textures. This fixes some issues with blending artifacts in non-power-of-two textures and also allows to waste a little less space on larger textures.

Saturday, April 04, 2009

Windstille Editor - Day 18

Fixed a bunch of issue with the rotate and scale ControlPoints today, they are now properly placed on rotate or scaled quads. They also now work properly with scaled or rotated quads. Another new addition is pixel perfect selection of objects. Other then that there has been some more work on moving and improving graphics.

Friday, April 03, 2009

Windstille Editor - Day 17

No work on the editor today, but some more work on trying to build sectors with it and some works on integrating some more graphics that have been flowing around in the media/ directory. This time its stuff in color.

Faking directional shadows via a simple black blob, scaled and rotated, works quite nicely (sink in the toilet room). Still missing a proper object property dialog that would allow adjust alpha of a decal properly. The mirror is actually the same object as the house in the city sector, just scaled down, while obviously not perfect, it nicely shows how reusable objects are even for completly different purposes.

Thursday, April 02, 2009

Windstille Editor - Day 17

A few keyboard shortcuts have been added today, also the ObjectSelector got a little, still mostly empty, toolbar. When drag&dropping objects they now scale correctly to the current zoom level. A context menu is now present as well.

A new feature is uv-coordinate based object flipping, which is nice and simple, as it doesn't change the object shape. It however is a little redundant, as the same could be done with rotation and scaling. One big issue right now is that its to easy to end up with holes in the map, either due to float impression or duo to scaled object that don't fall on clean integer coordinates, the hope is that flipping might help to limit that.

Wednesday, April 01, 2009

Windstille Editor - Day 16

Not much on the coding side today, the ControlPoints now have little graphical arrows instead of rectangle and images are forced to integer positions. Other then that they are still unfinished in many ways.

On the level side of things I tried to replicate a few more of the previous artworks. Still just night/dark stuff with plenty of light added, have to try a daylight setting sooner or later. Color is also still mostly missing.

Tuesday, March 31, 2009

Windstille Editor - Day 15

The icons in the ObjectSelector got a little cleanup, they now can have an image background and keep their aspect properly. They are also sorted alphabetically. After the upgrade to Ubuntu9, which brought a new Gtk, the spacing between the icons seems quite a bit larger then before, which is a little annoying, haven't yet found a way to turn the padding back to something smaller.

Moving objects with parents now works properly without the double-move issue.

The editor now allows ControlPoints, which can be grabbed for scaling and rotation of Decal. Still a bit broken, but seems solid enough in concept. I tried first to implement full Quad manipulation allowing drag&drop of all four vertices, but that didn't turn out all to useful, to easy to end up with broken looking polygons, so for the moment I rolled back to simple scale and rotation.

Sunday, March 29, 2009

Windstille Editor - Day 13

Mostly some clean-up again, parentship between objects should now survive loading, saving as well as duplication and copy&paste. FileReader got a little const cleanup. The select tool nows properly selects only objects which are in it, instead of all things that collide with it. Object duplication now preserves layers, so that one can duplicate large groups of objects spread over many layers with ease. The LayerManager now provides show/hide all and lock/unlock all buttons, a auto-lock button is presented as well, limiting editing to the current layer.

Other then that, there are some more graphics that got moved over from the media/ area and the existing sectors got a little cleanup.

Ubuntu 9.04 Jaunty (Beta)

Tried to upgrade to the Ubuntu 9.04 Beta today. Upgrade itself went smooth, restart didn't, seems like Nautilus ran amok opening a gazillion windows, currently worked around by killing and removing Nautilus. Might not be Nautilus fault, as there is something fishy with the gnome-session manager.

Button mapping for my mouse and Wacom got mixed up as well, that was fixed by a simple:

xinput set-button-map "Wacom Intuos2 6x8" 3 9 1
xinput set-button-map "ImExPS/2 Logitech Explorer Mouse" 3 2 1 2 2 2 2 2 2

The eraser on the Wacom still doesn't work.

Gimp and Emacs don't start from the panel, even so their command line seems correct. A new icon drag&dropped from the Application menu works, maybe some incompatibilty in the .destkop file or so?

Krita4 still crashes on startup.

Flash doesn't work even so the flashplugin-nonfree is installed. Seems to work now after creating a new Profile.

Saturday, March 28, 2009

Windstille Editor - Day 12

Mostly minor stuff and polish today, the ObjectTree class got renamed into LayerManager, FileWriter writes things a little more Lisp-like, the Open, Save, SaveAs functions now behave more normal, giving you overwrite warnings, starting in the right directory and such, the Tabs now contain proper filenames and RecentFile handling is integrated as well. The output to stdout got a little cleaned up and some of it got redirected to the statusbar. Also fixed a crash that happened when objects got parented to themselves, leading to an endless loop.

On the levels/graphics side of things, there was a little cleanup as well, the trainstation.wst and mine.wst sectors got split into layers and a new sector worker.wst got created. Also the trainstation got some improved trains, which however are a little broken due to parenting not being properly loaded. The new layer systems is quite nice to work with so far, a toggle function that limits editing to the current layer is however missing.

Windstille Editor - Day 11

The ObjectTree got retooled into a LayerManager. It now only shows layers, not all objects and allows to toggle layer visibility, lock layers to avoid accidental editing and move them around to reorder them. The layer name can be edited as well. The old Blender-like layer system is still in place and will likely stay for a while, but mostly obsoleted by the new one. The main advantage of the new layer system is that it enforces object ordering, so objects can't be raised or lowered above the layer boundaries. This makes it a little less flexible, but a lot easier to use, since now one hasn't to worry about an object ending half a way in a wall instead of cleanly below or above it. Copy&paste between layers works as well, so its fairly easy to split up old levels into layered ones.

Thursday, March 26, 2009

Windstille Editor - Day 10

New stuff today includes a Blender-like layer system, along with functioning Copy&Paste and a simple grid. Building simple rooms so far works mostly ok, but an easy way to see on which layer an object is and a way to move objects between layers is still missing. Another important thing that is missing is pixel perfect select/grabbing, currently it works by bounding rectangle, which is annoying, since all the transparent light objects get in the way. Snapping to proper integer positions is missing as well, leading to annoying gaps between graphics. Scaling of decal is also missing and needs to be added next.

The ObjectTree so far has turned out rather useless. The object count is just to high for it to be useful. Maybe it would help to be able to group objects and use the ObjectTree as a way to mark the object group that gets currently activly edited. That however would kind of duplicate the layer system. Not quite sure yet how to progress here, but a better way to seperate the level into foreground, background, light, highlight and shadow stuff seems to be needed, since it currently gets quite confusing fast. There is currently also no way to properly mark the z-position at which the player should enter. The current Blender-like layer system doesn't care about ordering at all, which makes it quite flexible, but also not well suited for this task, in which strict object order would be helpfull.

Wednesday, March 25, 2009

Windstille Editor - Day 9

Today the Windstille Editor got more advanced snapping, meaning selections of multiple objects snap properly. It also got a basic load and save functionality, so its now usable for level prototyping, actual level building has to wait till the navigation graph stuff is in place.

I reconstructed the trainstation in the level editor, which thanks to the snapping was very easy. The lack of layers however is problematic, since it makes it a little tricky to pick the right object in more complex scenes, something that need to be fixed in the future.