Surfing
A while (probably a few years ago) I came accross a fun little game called Audiosurf. About a week ago I was bored and decided to play it again for a bit.
For those of you unfamiliar with it, Audiosurf is a music-based game. The idea is that you can select any song from your hard drive (or audio CD), and the level you play through is generated based on the music. You control a sort of flying-car-thingy that you can move left and right accross a thing that resembles a highway with 3 or 4 lanes, and the object of the game is to pick up colored blocks that appear on said highway. When you get clusters of at least 3 blocks of the same color, the blocks magically vanish, and your score magically goes up. There are of course a few things to worry about, but if you can think quickly and anticipate what’s coming, it’s not too difficult.
Again, the level is based on the music, so if you have really calm music it’ll be slow and mellow and there won’t be a whole lot of blocks to worry about, but pick some intense music and there will be tons of blocks, the track will quite possibly be twisting and turning, and you have to think REALLY fast to pick up what you want and avoid what you don’t want.
It sounds pretty simple, and yeah, it is pretty simple, but it’s also really addictive, and the just-one-more factor for this game is incredibly high.
Then came, The Idea.
This game bases the tracks on music, and since it keeps online high scores, there cannot be a random element as to how it generates the tracks (because that could create unfair advantages for some players). This means it just picks the audio file apart and works with that, basing its decisions on things like when beats occur, the tempo of the song, the presence (or absence) of certain frequency ranges, the shifts in frequencies throughout the song, and so on.
What if you can figure out exactly how the game’s algorithm works, and use the knowledge to create a sort of ‘level editor’ for the game, which in turn generates .mp3 files that, when played in Audiosurf, recreate exactly whatever level you had in mind? There are a few restrictions of course (for instance, the game never places two blocks directly adjacent, because then it’d be impossible to pick them both up, or it could create a ‘wall’ of blocks that you cannot pass through without picking up at least one of them). And sure, it’s going to sound horrible, with lots of bleeps and noises, possibly much like what happens when you listen to the signal from a 56k modem using a phone, but it’d be pretty neat.
No, this is not something I’m actually going to do (I’m not that bored, or at least, not at the moment), but it’s a fun thought experiment.
Comic
As some of you may know I regularly check on several webcomics – in particular, Cyanide & Happiness, Ctrl+Alt+Del, and of course, xkcd. Last night another one got added to the list: The System uses a simplistic drawing style utilizing figures and icons you could find on signs, and some of the best jokes I’ve seen in a while (I was hooked at comic #3, which is still one of my favorites). I can highly recommend it
To clarify on the story in the previous post; yes, it is in Na’vi. If you’re interested in what it means, the original can be found here.
Seven
So, I decided to finally take the plunge and install Windows 7 (64-bit) on my laptop (I have hestitated to do that for a reason I will come to shortly). So far it’s working well, it’s running pretty smoothly (especially considering I got the Ultimate edition). Installing Win7 is really easy (much more so than the XP setup process, which can be quite intimidating to novice users) and despite the fact that this is a laptop, I had no driver issues whatsoever (thanks to Acer).
I like having 64-bit now. Computer hardware has been capable of 64-bit for a long time now, yet it is heavily underused (mostly because people are afraid of it and the extremely crappy 64-bit drivers that XP had). But it definately has it’s advantages, and so far I havn’t come accross a single 32-bit application that didn’t work in a 64-bit OS environment.
Doing all the configuration and re-installing applications is the bit I hate though. Yes, I could have just used the ‘upgrade’ function, but I had a lot of software installed that I don’t really use anymore anyway, and a lot of stuff that needed to be updated, so then you can just as well start from scratch. I finally moved to Office 2007 (instead of 2003), reinstalled/fixed SolidWorks (running 2010 Premium SP2 now, even though I despise the extremely lengthy and complicated setup process big time), and updated a ton of other applications. Still, it’s a long process and not altogether a lot of fun. A lot is back up again, but not everything…
One thing I did have issues with were the drivers for various USB -> RS232 adapters. I frequently use serial ports, and since my laptop has none of its own, I’m stuck with using the (often crappy) USB adapters. And of course, it seems that there is no such thing as a Windows 7 driver (let alone a 64-bit Windows 7 driver) for any of them.
I like Win7 so far, but am not installing it on my desktop PC just yet. Two reasons for that: first, I hate having to re-install everything (particularly SolidWorks, which I have just re-installed anyhow). Second, I hope to be doing some hardware upgrades soon, which would require me to re-install the OS anyway, and I’m not exactly feeling like repeating the previous step several times over if it’s not absolutely necessary.
Anyway, on an entirely different note, I thought I’d post a little story (not mine, but I like it):
Trro lamu krr a terìran Nantang.
Terìran mì na’rìng.
Ultxarolun pol Yerikit. Poehu lu prrnen.
Nantang plltxe san Kaltxì, ma tsmuke.
Mì tal ngeyä prrnenä a sanhì lor nìtxan lu nang!
Nìrangal lirvu oeyä frrnenur lora sanhì sìk.
Yerik plltxe san sanhì tsun livu frrnenur ngeyä.
Pìsyeng oel ngar.
Kem si fìfya.
Frrnen hì’i lu nìtxan a krr, apxa txepit txula oel.
Tepvil sanhìti ngop.
Tsakem sivi nga tsun fpi frrnen ngeyä.
Tsakrr lora sanhì layu kop for sìk.
‘Efu Nantang nitram.
Zene sivi a kemit olomum.
New livu lora sanhì frrnenur peyä.
Ayvulit zamolunge ‘awsiteng.
Txepit apxa txolula.
Evengit nìwotx yem nemfa txep.
Tepvi tswayon.
San lìyu for lora sanhì sìk plltxe.
Po pxaw txep srew.
Krromaw plltxe Yerikur san.
Krr a fol txepit tok lu txan nìtam srak?
Lu set for lora sanhì srak? sìk.
Srane sìk plltxe Poe.
Tolul neto tengkrr herangham.
Evengit ta txep molunge Nantangìl.
Lu fo nawnekx. Lu kerusey.
Po steri. Yerikit folewi.
Nantangìl vay set ferewi Yerikit, slä ke stä’nì kawkrr.
First person who can (correctly) tell me what it is about gets a cookie.
Ancient
Who still remembers the good ol’ days of the PlayStation One?
I certainly do. It has been the only game console (the venerable gameboy aside) that I’ve ever owned, and back in the day, I used to play on it a lot. I never got any other consoles afterward though, but that’s mostly because I’m not too much of a gamer anyway (an occasional game I enjoy, but not much more than that) and I don’t want to spend a fortune on a console, another fortune on accessories, another fortune on games, and even more fortunes if you want to be able to play said games online. Especially not if all of those fortunes are not going to be used more than once or twice a week, at best.
Anyway, on a little side project, this week I took an old PSX controller for something different. What else than play PlayStation games can one do with a PSX controller, you might ask? Well, hook it up to a microcontroller and use it to control whatever you want, of course!

The something else to control is kind of missing in this picture, but you get the idea. There’s a PlayStation controller hooked up to a PIC18F2520 (its a PIC18F2520 because I happened to have it at hand, and it’s running at 40 MHz – not because that much is needed to read a few buttons, but because all my delay routines and template configuration files are based on that and I was too lazy to adjust everything). There’s a few LEDs for testing purposes, RS232 connection which sens the state of the controller out to my PC, and my trusty USB logic analyzer (which is awesomely useful in projects like this).
Interfacing the PSX controller isn’t all that difficult. There are nine wires – two for power to the controller (red and black for +5V and GND, respectively), two for power to the vibration motors (various sources state 7-9 V, but they run on 5 V just as well), and five wires for communication (one for bits sent to the host, one for bits sent to the controller, clock, attention (like the chip select in SPI), and an acknowledge signal from the controller). The clock runs at 250 KHz (500 KHz for the newer PS2 controllers, though the protocol for those is identical). During a transmission the attention line is made low by the host, data is clocked in at the rising edge of the clock signal, and after each byte the controller pulls the acknowledge line low for a short period – in other words, fairly simple stuff. The only thing that is kind of annoying is that it is a synchronous protocol (i.e. data is sent to and received from the controller at the same time), but otherwise, it’s not hard.
The PIC asks the controller ‘how are you?’ about 50 times a second, and the controller responds with 6 bytes of useful data – 2 bytes for all of the buttons (there are exactly 16 buttons, so that’s convenient) and 2 for each of the analog sticks. The PIC compares the data to an internal buffer to detect if something has changed, and if so, the output on the serial console is updated. It poops out the status of all buttons, with some VT100 terminal control codes to clear the screen and make the output look pretty. On powerup, there is even a pretty screen with the classic “Press Start” message (in blinking text, woohoo!).
Unfortunately that is about as far as it goes right now. If I had more of these controllers and a little graphical LCD, you could do fun things with it though! (I need to keep that in mind
)
Furthermore, I am also starting to play a bit with ARM microcontrollers. Got an evaluation copy of CrossWorks for ARM (which is an awesome piece of software – expensive, but awesome!), and a bunch of LPC2103/2138 chips (LQFP packages… not a lot of fun, but quite doable with a bit of practice). These chips are an awesome platform for a lot of things, thanks to their speed and memory size, which would put any PIC or AVR to shame, and with a much more efficient instruction set as well. But more on that later.
Mass Effect 2
I’ve enjoyed playing the first Mass Effect game a while back, and just finished Mass Effect 2.
The short version?
I like it! Possibly better than the first, although I was kinda disappointed that only such a small section of the citadel is accessible.
Which leads me to the one thing that did bother me throughout the game… Like so many other games, it suffers from what I call the Pokémon effect. Every object, every character, every place you encounter is there for a reason. Aside from general things like NPCs that run a store, EVERY character you can actually talk to or who makes remarks you pass by, is there for one assignment or another. Every door, corridor and room exists for a specific reason, and more annoyingly, nearly every object placed in those rooms as well. Specifically I’m referring to objects that can be used as cover during a firefight (or objects that can be used to your (dis)advantage, such as the explosive containers), because those kinds of objects are only found in the locations where you will be fighting, and just by looking what objects there are ahead of you makes it really easy to predict if/when you’ll be attacked. Also the game world is very linear; yes, you can fly your ship around in between missions, but once you’re on a mission there is only the correct way a head and every other path is conveniently blocked by stacks of crates, a door that cannot be opened, or debris (except for the occasional sideroom that’s got a few goodies you can pick up).
A good example of a game that doesn’t have this problem would be Oblivion. For instance, there are lots of houses you can visit, with one or more people living in them, that aren’t of any real significance. Occasionally you need them for a quest, but otherwise they’re just decoration (yes, you can rob them or use them as food if you become a vampire, but otherwise). Even during a quest you’re mostly free to move as you like rather than being forced along one specified route.
The tons of voiced dialogue and voice acting were outstanding, and is something I can really appreciate in a game. They could have come up with a few more lines for teammates to shout during combat though; when you hear the same lines five times over during each firefight, they tend to get boring (even annoying) quickly.
Nevertheless – Pokémon effect aside, I can definately recommend ME2. Oh, and this time around I am going to make sure I keep the save game to import it into the 3rd installment of the Mass Effect games
Thoughts
So, like everyone else I’ve seen the movie Avatar, in 3D of course. As everyone else I agree that the story could have been a bit better and less predictable at times. But the visual quality, effects, and the whole 3D things is simply amazing. Seriously. I’m not going to be able to watch any other movie the same way again. It’s that good. No, the 3D isn’t perfect, there are occasional flaws and there is still room for improvement in the technology… but as for perfection – it’s a damn big step in that direction. I truly feel that this is going to be the future of movies and games but later on television as a whole as well.
(For those who think that won’t happen or don’t see the advantages… remember that there were lots of you when the internet or computers or cell phones or cars or many other such things were first introduced!)
I’m really looking forward to an Avatar sequal (which is coming, by the way! Mr. Cameron has confirmed that already).
I’ve also tried the game. It’s a good way to kill a some time and for a movie tie-in it’s actually not that bad, but it could have been much better.
Let’s start with this: you can choose to play for either tha Na’vi or the RDA, this is decided somewhere after half an hour or so of gameplay. You have to arrest one guy who does ‘secretly’ work for the Na’vi but gets caught. He points in the distance and say ‘look what you’re doing’ and you have to decide right then and there, based on pretty much nothing, whether you’re going to betray your own species or exterminate another.
Anyway, I played through the game on the Na’vi side. The Na’vi in the game seem really eager to trust you (except for one guy, but he’s turned around later on) and saddle you up with various things that their own kind only goes through after many years. It also caught my attention how quite a lot of them just happen to speak English (and how often the subtitles are different from the actual speech). In fact, very few seem to ever speak their own language in the entire game, and when they do, it’s usually pretty poorly (more on that later). The storyline of the game is not particularly interesting (I dare use the word generic), and the ending is less than impressive. Near the end you get to fly the Toruk (I use that word because the ‘human’ name is way too long to remember), which seems awesome at first but after 200 meters or so you get off again and that’s it. A flight you could just as well have done on your own Ikran (which you receive fairly early in the game, after which you only get to fly it ‘manually’ a few times, which is fun even though the controls are terrible), and I really have the impression (as with a lot of things in the game) that they put it in just because you’ll probably recognize it from the movie and you’d be disappointed if it wasn’t in the game. But they could have done so much more with it.
Also the main character is as tactful as an untrained dog when faced with a yummy treat most of the time, and the game is pretty simple. The soldiers barely pose a challenge and if you just need to get past them to reach some place, you just jump on one of the horsy creatures, send it into a gallop, and you’ll run straight past anything and barely take any damage at all.
But all in all it’s not a bad way to spend your free afternoon (though I’d never spend the full € 50 on it. Seriously.)
The Na’vi language is actually really interesting and I’ve taken some time to learn more about it. It has some really nasty things in it though – word order within a sentence is pretty free for instance, but that’s mostly because a lot of information goes into the verbs, which use infixes (rather than pre- or suffices which are used by most languages). Infixes can turn a root verb into s omething that is barely recognizable. Except for the basic verb, it may contain things like how the speaker feels about it, when it’s happening (which can be the present, immediate future, distant future, immediate past, or distant past) and who it relates to (me, you, me and the other guys standing here but not including the guy being spoken to, and a whole lot of other variations). You can basically say ‘Im going hunting this afternoon, the guy over there is coming with me and I think it’s a pretty good idea’ in a single verb.
But what really bothered me in the game is that, even with my basic understanding, the Na’vi used in the game is done pretty poorly. Nearly every NPC you come accross has a different way of pronouncing things (especially the really characteristic sounds like the kx, tx and px) and if you compare all of the speech, it’s a miracle that these guys even understand each other at all. I understand that the voice actors for the game didn’t get the thorough training and exercise that the actors in the movie did, but still, they could have done so much better.
One awesome thing I’ve noticed is a fun reference in the (rather good) TV series Farscape. In I believe it was episode 7 of season 4, there’s an elevator (or rather, a guy on a screen in the elevator) talking about how boring it was to go up and down all the time and how he’d like to go sideways just once. That quote, plus the entire idea of a sentient elevator, is yet another awesome reference to an awesome trilogy that is currently made up of six books.
2010
2010 is already going pretty quickly (hell, its almost time for 2011). I was reminded by the fact that an arbitrary number advanced by one by the yearly e-mail telling me I need to renew this domain name (which is done by the way – damnleet.com is mine and stays mine!). Not that counting years means anything to me. The earth made (approximately) one revolution around the sun from completely arbitrary and meaningless starting point. And at a completely random moment in history (or well, not entirely random – mankind made a couple of other really stupid decisions at the time, most of them involving a carpenter and a few pieces of wood) we decided to start counting those revolutions. But guess what, the earth’s gonna keep doing that for a couple billion years to come. Big deal. Looking at it like that, it’s kinda like celebrating every time you’ve taken a step on a 50 km hike. It doesn’t mean anything, it’s not significant in any way, and yet, we celebrate it.
That can only lead me back to the conclusion that lots of things lead me back to: people are weird.
But I can understand that they need to celebrate something. There is so much going on that isn’t worth celebrating, that we try to make the most out of the things we can be more or less happy about. On the grand scale of the universe it’s as significant as a single drop of water is on a planet filled with nothing but oceans, but for a creature as proud of himself as a human, one thing it cannot afford to have is a sense of perspective.
On a smaller scale of things, I’m (temporarily!!) taking a few things offline (specifically some of the more space-consuming parts of the photo album). I really need to upgrade the disk space I have on this server (a few minutes ago there were 7 megabytes of it available), and getting a few GB’s freed up will help to keep everything going until there is more space available. Don’t worry – everything will be back online as soon as possible!
exFAT
Why does Microsoft have to be stupid again?
Microsoft recently announced the licensing model for their new exFAT filesystem (article in Dutch). exFAT is a filesystem that supposedly is especially suitable for flash-based storage media, such as flash cards, MP3 players, USB sticks, smartphones, and so on – stuff that you carry around, basically.
Of course there was the immediate need to raise the file size limit to 256 terabytes, because that is what they did. (For comparision, that’s over 300 times the amount of space on an average home PC.) Granted, FAT32 – which is in use by most devices today – is kind of limiting with 4 gigabytes (a decent HD movie can’t be stored in a FAT32 filesystem), but 256 TB?!
Anyway, since they want to make exFAT the new standard for portable devices, obviously they need it to be supported widely by both operating systems and storage devices. So, the obvious choice to Microsoft is to introduce a paid licensing model, which is really restrictive and requires you to sign non-disclosure agreements. This way, there is very little chance that open source initiatives are going to support exFAT (think Linux, for starters). But lets also look at it from a device manufacturer’s point of view: you’d have to pay for a license (not to mention the cost of implementation) of a new filesystem, which in the end, doesn’t really add that much. Sure, we can have bigger files now, but I’m making an MP3 player with maybe a few gigs of space, where the average file size is about 5 megabytes – who cares about large files? Plus, my MP3 player will only work on Windows operating systems (while I’ve just gone through all the trouble of letting it talk on USB as a mass-storage device, so any platform/OS can use it). And there is a perfectly good, widely supported alternative (FAT32), to which specifications can easily be found anywhere in the Interwebz, and which I’ve probably already used on older devices so I can just copy that code over and be done with it.
Gee. Difficult choice.
Games
I’m not much of a gamer person. I do enjoy the occasional game every once in a while, but many games can’t really keep my attention for long. Occasionally there is a game that does manage to do just that, and if there is it’ll quite often keep my attention for a wee bit too long (the “oh crap, it’s 5 AM and I have to get up at 6:30″ kind of too lon), but luckily that only happens a few times a year.
One such time has just passed. The game in question is Dragon Age: Origins, which is a very nice RPG from Bioware. Even the main storyline alone is really really long, but it’s also really really addictive (those two don’t mix well together if you want to avoid the 6:30 problem I mentioned earlier). I just finished playing the game today… it took me about 60 hours to get through the entire main quest (without doing too many sidequests, but not always taking the easiest route either). It generally ran smoothly on my PC – which is not known for its awesome performance in the graphics department – and there are just so many things I like about the game. For instance, I like how you can make all sorts of decisions that can affect the game world in a fairly important way. I like how one of the characters in the game is voiced by Claudia Black (also known as Vala Mal Doran in Stargate SG-1), which is particularly fun because those two characters are quite much alike in terms of personality (and if you know the Stargate character, you know how much fun that can be ^^)). I like… well, there isn’t a whole lot not to like actually.
I did also play Call of Duty Modern Warfare 2 (yes, on easy, because I suck at shooters big time
). Went through the campaign in one day and thats pretty much the only interesting bit to me. It was pretty good though.
For the rest… I got myself a copy of DCS: Blackshark, which is pretty cool, a hell of a learning curve though (but that was to be expected). It’s not that I’m doing badly at it (actually I’d say its not bad at all considering my all of perhaps 2 hours in the game so far), but it’s just the getting used to the million different keyboard commands (which often involve ctrl/alt/shift keys, and even more so you need to specifically use the left or right one, because otherwise you’ll probably activate something entirely different) and procedures that makes it difficult.
On an entirely unrelated matter, I just came accross this little Flash game. It’s a Hitchhikers-themed game where you’re destroying as many Earths as possible. It’s quite entertaining to play for a bit (random tea breaks? what the hell?
).
“Unconventional”
In my life, I have seen many bad websites. I have seen many terrible websites. I have even seen websites that, were they publicly known, could likely become the cause of WW3.
But rarely I have seen pages that are so fucking terrible that there are not even words for it (except perhaps ‘oh my god, fifteen minutes and the page still isn’t done loading’, which actually sums up many of the shortcomings of this particular website).
