Lutris' blog

Archive for February, 2010

Day 3: Space Invaders on Atari 8 Bit (1980)

by on Feb.26, 2010, under lutris

Today we have a classic ! Well , almost. Like a lot of games, Atari conversions were not as good as their Arcade counterparts and the same goes for Space Invaders on the Atari 8Bit computers.

I want my classic Space Invaders aliens back !

Nevermind, the arcade games already works in Lutris thanks to sdlmame, and today I added support for the Atari800 emulator. For the first time in the Lutris marathon, we actually have and emulator which is correctly supported in Debian and Ubuntu. No weird script to run, nothing to compile, just one click and it’s installed. Another great thing is that the AtariOS and Roms are freely and legally available, you can download them from the emulator’s website. This seems to be an easy day then ? Well, since almost everything just worked out of the box, I added some nifty features to the Atari800 runner.  First thing is the Bios autodetection. All you have to do is give the path to where you store your Atari Bios and OS and Lutris will automatically find out which files are the good ones to put on the command line. This is also going to be useful for other runners…

Another thing I added is resolution autodetection. No more weird list of resolutions with stuff that’s not even supported by your monitor.

There should be some extra options for joypad configuration but that will come another day.

Leave a Comment more...

Day 2: Auto Racing on Intellivision (1979)

by on Feb.24, 2010, under lutris

Today we’re going to talk about Mattel’s Intellivision which was one the Atari 2600 main competitors at that time. The Intellivision had weird controllers with numeric keypads and a bunch of awesome crappy games !  If you want to know everything about the Intellivision you should check out James Rolfe’s (aka The Angry Video Game Nerd) review of this console.

I chose one of the few games that came out in 1979 : Auto Racing, which may not be the best one but will do the job for testing purposes.

Intellivision emulators

Since I’ve never tried to play an Intellivision game before, I have a look in Synaptic to see what emulators are in Ubuntu. Well guess what ? There is none.  As if it wasn’t enough that I had to package o2em and update liballegro, I now have to package an Intellivision emulator. After spending some time researching an emulator on the web, I come to the conclusion that jzintv is the best emulator around for that console. The great thing is that it’s GPL and it has Linux binaries, so I won’t do any compiling today. I also tried Bliss which comes in two flavors : a C++ version for Windows and a Java version. I managed to get the Java version to run in Netbeans but I don’t wan’t to package some Java stuff as I have very little knowledge of that language. Furthermore, Blissjava had annoying bugs and I didn’t actually got to play a game, I only got to the menu. Let’s forget about Bliss, jzintv is supposed to be much better anyway.

One issue I got with this emulator is that I didn’t understand to activate the 1-Player mode and I was kinda forced to launch the game with 2 players. Related to this issue, the second controller uses the top row number keys and I have an Azerty keyboard so I don’t get these keys directly (and pressing Shift+<number> doesn’t work). I already had similar issues with other emulators and while I think it would be better to patch the emulator to behave correctly with non-US keyboards, it’s a pretty massive task which is up to the emulator’s developers. Lutris has many workarounds for common issues that gamers meet and this is one of them. For example you can ask Lutris to hide the Gnome panels during gameplay if they are still visible in a fullscreen game. I could also set up an option to switch to a QWERTY keyboard layout while the user is gaming.

Besides this, there was not big issue with jzintv, if you want to try it out, you should make sure you have the binary in your PATH and that exec.bin and gron.bin (the Bios files) are in the directory you chose as the Bios path.

Superb Hi-Res graphics !

With another emulator not in the Ubuntu and Debian repositories, I starting to wonder if I should allow alternate methods to install runners and I probably will have to. Not every runner is Open Source and I doubt I will manage to push every one of them in the official repositories. Installing from any source was one of Lutris’ initial plans, and while it’s not yet implemented, it surely will some later day.

We’re a few more days with old school pixelated stuff,  but at least tomorrow we’ll get to see a classic. Meanwhile, you can enjoy some B-52, Motorhead and Pink Floyd, or if you’re more into movies : Alien, Star Trek and Rocky II.

Leave a Comment more...

Day 1: Cosmic Conflict on Odyssey 2 (1978)

by on Feb.24, 2010, under lutris

Ah …1978. The year I was born. This was also the year when the Odyssey² was released by Magnavox (Which was later bought by Phillips). The Odyssey² was one of the first gaming consoles with a microprocessor (The other ones where the Atari 2600 and the Fairchild VES).

Well, this looks like fun !

Just look how great the specs of this machine are :

  • Intel 8048 8-bit microcontroller running at 1.79 MHz
  • CPU-internal RAM: 64 bytes
  • Audio/video RAM: 128 bytes
  • BIOS ROM: 1024 bytes
  • 160×200 resolution (NTSC)
  • 16-color fixed palette; sprites may only use 8 of these colors

Impressive, right ? Well at least, we shouldn’t have any problems to emulate this one. 

O2em : The Odyssey² emulator

Turns out that there is one (and only one) pure Odyssey² emulator which is o2em. Mess also emulates the Odyssey² because it emulates pretty much everything on earth, but I will not do anything Mess-related during these 33 days, it deserves better and one day is not enough for a huge project like this one.

The good thing is that o2em can run on Linux. It has an Open Source License (Artistic License), but sadly it’s not included in Ubuntu …  Damnit ! For the first day, it’s not a very good start. Let me explain why.

Lutris uses what I call runners, runners are whatever program that can run games. It can be an emulator like o2em, it can be Wine (because Wine Is Not an Emulator), it can be Linux (because Linux runs native games). Runners should be easy to install. When you launch Lutris, the first menu item you get is “Manage runners”. Selecting it opens a window with a list of runners and some buttons on the right which says “Install” if you don’t have the runner yet or “Configure” if you have it on your harddrive. Installing runners should be done with one mouse click, and for this I use the binary packages available on every Linux distro. This means that if a runner is not packaged for some distro, then you’re out of luck… and o2em is not packaged. As this is the first day, let me explain things more in detail.

Lutris is not just  yet another frontend for emulators

Sure, the goal of Lutris is to provide a nice frontend to launch games easily, but that’s not the main point of focus. I want to make sure that games are able to run forever. Each single video game is a part of our culture and the gaming culture seems in bad shape right now … You might think it’s illegal to download Cosmic Conflict and the Odyssey² BIOS, but isn’t it more important to preserve our video game legacy ?And if you bought a used cartridge on ebay, would Magnavox make any money on it ? Not at all … But legal issues are not the worst part. The really annoying part is that almost nobody cares. Neither Magnavox, nor Linux packagers and we will see similar cases in a few days. Me, and by extension the Lutris project does care that you are able to play an Odyssey² game in 10 years so you can show your kids what video games looked like when you were a kid. This means that as long as the Lutris project is alive i’ll strive to keep the “runners” available and well maintained. First step in order to achieve this is to become a Ubuntu MOTU and even a Debian maintainer. You can follow my progress on becoming a MOTU on my other blog.

For now, I’ll just add a Need Packaging: o2em in my TODO list, I’ll know it will take some time to get into Debian and Ubuntu but the packages will be available as soon as possible on my PPA.

Getting o2em to run

Right now the goal is to be able to run the emulator  regardless of its availability in Ubuntu. I gave the link for the o2em homepage above, and I notice something … The Linux binary is for v1.16 but the latest source is v1.18, guess we’ll have to compile some stuff (That’s the way to go anyway if I want to make a Debian package). I had to change a few things to get o2em to compile, the following script should do it right :

#!/bin/bash
gksu apt-get install liballegro4.2-dev
wget http://kent.dl.sourceforge.net/project/o2em/o2em/1.18/o2em118src.zip
unzip o2em118src.zip
cd o2em118src/SRC
for f in *.C; do mv $f `echo $f | tr '[:upper:]' '[:lower:]'`; done
for f in *.H; do mv $f `echo $f | tr '[:upper:]' '[:lower:]'`; done
sed -i '
/#include <time.h>/ i\
#include <errno.h>
' score.c
LIBALLEG=$(allegro-config --libs)
sed -i -e 's~LIBALLEG = \/usr\/lib\/liballeg.so.4.2 -lalleg_unsharable~LIBALLEG='"$LIBALLEG"'~' Makefile.linux
make -f Makefile.linux
gksu cp o2em dis48 /usr/bin
mkdir $HOME/.o2em
mkdir $HOME/.o2em/bios

Next step is to add the bios file and finding the game, I won’t give you direct links but try typing on Google “The Old Computer” should give you some good hints.

You should now have a running Odyssey² emulator on your machine.If you try it a bit, you’ll notice something … Yes, there’s no sound ! This is a confirmed and yet unfixed bug in Allegro, it’s on Launchpad and on the PulseAudio bugtracker. The worse thing is that this has been fixed for a while, the problem is that Debian and Ubuntu still have Allegro 4.2.2, the current version is 4.9, there’s also a 4.4 branch and the 4.2.3 maintenance release has the fix to this bug. Looks like it’s another task for a MOTU, and when you’re dealing with a library that was once maintainted by the mighty Sam Hocevar himself, you’d better not mess things up ! That’s ok, I’ve finished reading the Debian Policy and I’m about to begin the Debian Maintainer’s guide. And if I fail, there will be some experienced MOTU or Debian Maintainer that manages to package a newer version of Allegro.

O2em in Lutris

Once I had o2em running (without sound), it was not a big deal to add the functionality in Lutris. Writing a runner module is really not that hard, it’s just a matter of translating a manpage or documentation into the right Python dictionaries.  You can see how a runner is written by looking at the runners/o2em.py file in the source folder. Once the runner has the relevant data, Lutris can build the settings dialog and make up the command line to run the game by itself.

Yay, let’s play some Cosmic Conflict ! Ok … the game is not that great, you have to shoot pixelated Tie Fighters and weird looking spaceships,  that’s all there is to it.

Cosmic Conflict in all it's glory

Playing Odyssey² games might have more historical interest than it brings lots of fun, but bringing this emulator in Lutris will be a very good practice in terms of learning Debian Packaging. As we will see in next days, o2em is far from being the only poorly maintained emulator in the Linux world.

See you tomorrow for more badass ancient games, meanwhile you can listen to Queen, AC DC and Kiss or watch Superman and Jaws 2.

1 Comment more...

33 Games of 33 years in 33 days before Lutris 0.33

by on Feb.22, 2010, under lutris

During the following 33 days, I will choose a game, one for each year between 1978 and 2010 and make it run with Lutris (or try to and take note of the issues).  On the 28th of March, I will conclude this series with the release of Lutris 0.33 which should be good enough to run all of these 33 games with little or no problem.

Tomorrow will be the first game, and yes it will be crappy game, what do you expect from a game made in 1978 ?

Your goal as a reader and Lutris tester will be to run the program, make some tests, give your opinion in the comments, make bug reports in Launchpad ( https://bugs.launchpad.net/lutris ). You have the right to be annoying, to tell me that Lutris sucks, that it’s full of bugs, but be precise !! If you send a bug report , always send the Python backtrace if the program crashed, make GOOD bug reports !

Ok, here’s how to get Lutris running on your computer.

First you need a Linux box, I do all my development on Ubuntu 10.04 Lucid Lynx but it should work on any distribution, if it doesn’t file a new bug but be aware of the fact that I will not install another distro to fix these bugs.

You will need to install some dependencies, for Ubuntu and Debian users you have to install python-yaml.
The following dependencies are optional but you should install them to if you want every feature of lutris : python-pyglet, python-gconf, fuseiso
The source code, you can grab it here : https://code.launchpad.net/lutris or simply type : bzr branch lp:lutris
Keep your source code up to date, you can do this by typing bzr update in the source folder.

You can run Lutris by running the lutris script in the bin/ directory or by installing quickly and typing quickly run

In order to get the debug messages add the -v argument to your command line when running lutris

So it goes a little bit like this :

sudo apt-get install python-yaml python-pyglet python-gconf  fuseiso quickly
bzr branch lp:lutris
cd lutris
quickly run -v

If you have any questions, don’t hesitate to post them in the comments.

2 Comments more...

Lutris: now with a blog !

by on Feb.22, 2010, under lutris

Hello, my name is Mathieu Comandon and I’m the developer of Lutris, a video game interface for GNU/Linux.First let me introduce you to Lutris.

Lutris’ main goal is to make gaming on Linux really easy. Easy as a few mouse clicks, grabbing a joypad and playing because that’s how gaming should be : fun. Many users still run Microsoft Windows because of games, but if you don’t mind missing a few very recent title, there’s is no reason not to run Linux.  Or maybe there is. Gaming on Linux can be really painful sometimes. All you want to do is play, but you have to compile stuff, install libraries,  deal with sound issues … and you don’t want that, right ?

Lutris deals with this stuff  for you. You have simple configuration dialogs with understandable settings that you won’t have to touch again once the game runs right.

I want to support every game that can be made to run on Linux and that’s a lot of games ! I don’t have the exact number but I guess that 98% of video games made between 1978 and 2005 can be run on Linux, and about 70% of games made later on can also run quite well.

Lutris will also be a community (like Steam). You will be able to receive notifications when your friends are online and playing some game so you can join them. There will also be a more technical aspect of the community, ensuring that games work for everybody but I’ll talk about that later.

Enough with vague descriptions, let’s see what Lutris looks like at the moment.

Main window

Main window

Settings dialog

Settings dialog

Fullscreen view

Please keep in mind that Lutris is in a very early stage of development and nothing is definitive yet.

The program has been out there for a few months but when I first released version 0.1, people didn’t get it : there was no deb package, they didn’t read the README file to install the required dependencies and it was full of bugs (it still is, to be honest). Here I will prepare for a good public release but I will talk about the road to Lutris 0.33 in the next blog post.

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Archives

All entries, chronologically...