OC ReMix Legitimized

November 28th, 2008

So, maybe you’ve heard of the longest named Street Fighter game ever (but what with there being so many out there, who among us can really know?) known as Super Street Fighter II Turbo HD Remix. I was surprised to learn that OC Remix, who’s artists have repeatedly allowed me to include their music in my games, handled the soundtrack. It’s even free to download. This impressive feat of fan-service demands to be linked to.

Doom Plays Flash

November 28th, 2008

So, before I could blink, somebody at Newgrounds put together a source port of Doom using Alchemy. Ah well, I was too slow. Through various means I’ve obtained the source code to this port. Mike Welsh, the fellow who created is working on properly releasing the source code. its understandable I suppose, he really did throw it together.

Nonetheless under the powers of the GPL I am providing the thrown together version here if you want it. I haven’t personally compiled it, so you can investigate yourself or wait for Mike’s official version. Good job Mike.

Flash, C/C++ and LLVM

November 18th, 2008

The most interesting thing Adobe has recently announced at Adobe MAX is (easily) Alchemy. It adds some modest support for C/C++ in Flash, but this is still nothing compared to how they did it. Tucked away in the Alchemy FAQ it mentions they used LLVM to do the job. It works by compiling C/C++ to the LLVM instruction set and then converting that to Flash bytecode.

LLVM is intended to act as a medium between a language and an instruction set. If you write a language that compiles to LLVM instructions, you automatically support any instruction set that LLVM supports. If you write a back-end that can understand/convert LLVM instructions, you support any language that compiles to LLVM instructions.

So basically, Adobe may have just opened the door for Python, Java, CIL/.NET languages, and others. I doubt they work right now (I haven’t had the opportunity to try Alchemy yet), and support for Flash’s API would be missing of course, but it appears to be coming.

Update: My guide here is quickly becoming outdated. See what Ben has to say in the comment section.

I really love Opera. It was one of the pieces of software I felt bad about leaving behind during my switch to Linux. Unfortunately on Linux it ran much slower and looked awful, me being a Gnome/GTK kind of guy, and Opera using Qt3.

Well, Opera seems to have gotten some speed boosts lately, plus there’s this project called qgtkstyle which makes Qt4 applications look like GTK applications. I figured out how to combine all this to make Opera integrate pretty well with the visual style I’m using. Here’s how I pulled it off.

Install checkinstall.

$ sudo apt-get install checkinstall

Install qgtkstyle.

See this guide for any details on packages you may need to compile the source.

$ mkdir qgtkstyle-0.1~custom
$ cd qgtkstyle-0.1~custom
$ svn co svn://labs.trolltech.com/svn/styles/gtkstyle .
$ qmake && make
$ sudo checkinstall make install

Install Opera 9.60 Beta (Snapshot 2436).

The only apparent version of Opera that uses shared libraries, rather than statically-linked versions is available here. Download this version. It’s a beta of 9.60 (9.62 being the most current version as of this writing), but I haven’t really had any problems with it

Some visual improvements.

Start Opera. The titlebar should look like a GTK toolbar. Go to Tools->Appearance->Skin, change the color scheme to “System color scheme”. You can try changing the skin to “Qt Native”, but I think it looks awful, so I’m sticking with Opera’s standard theme. Finally, go to Tools->Preferences->Web Pages, and change the normal font to a more reasonable size (14 looks pretty nice on my computer). Do the same for the monospace font, and you’re done!

This is ultimately a hack, just out there for the impatient like me. Hopefully the Opera people will figure out whatever problem is causing them not to used shared libraries with Qt, and hopefully they’ll do it around the time next version of Qt arrives that includes qgtkstyle, making all of this obsolete.