Mariusz: The passion for programming is still with me


With two outstanding ports from C64 released during the year and four other games in development for Atari computers, Mariusz "mariusz" Wojcieszek is -indisputably- one of the most active members of the current Atari 8-bit scene in Poland. In this interview, he revealed to Atariteca his short term plans as well as the background of such prolific production.

ATARITECA:Tell us a little about yourself.

Mariusz Wojcieszek: My name is Mariusz Wojcieszek, I am 39 years old. I live with my wife and two kids in Poland, in a small village near Poznań. I work as a project manager for a small software company located in Poznań.

How did you get involved with the Atari 8-bits?

It started long, long ago (“in a galaxy far away…”); seriously speaking, it was middle of 1980’s and it was my friend’s Atari 800XL. I started with playing River Raid, Bruce Lee, Montezuma’s Revenge, Quasimodo, Goonies. Later, when my parents finally agreed to buy me a computer, I got an Atari 800XE and started some programming. This was the beginning of my professional career as a software engineer. Actually, no code from these years has survived until today, but the passion for programming is still with me.

Do you still own an Atari 8-bit computer?

I don’t have real Atari now, but Altirra seems to give a good experience – it emulates every hardware quirk I remember about real hardware.

The Great Escape, Fairlight: A Prelude and Bobby Bearing... Why did you choose to port isometric games?

First of all, I liked these games and missed them on Atari back in 80s. Nowadays many of them were ported (like Knight Lore and Alien 8), but I still wanted more. Also, when I decided to do some Atari programming, I was looking for games which could have ports completed in reasonable time. These isometric games were good candidates, as they are not using hardware sprites on C64 nor other special C64 capabilities, so they run on Atari with only a few routines patched.

Which of these three projects do you like the most? And why?

I like every project. With The Great Escape I had to spend biggest time out of these three, because I had to learn Atari programming once again, then C64 hardware and code analysis, etc. I also spent some time trying to optimize its performance and I am pretty satisfied with the effects, as game runs around three times faster than C64, with speed comparable to Spectrum version (which was the fastest). Fairlight has good atmosphere and astonishing graphics – it also gave me biggest headache while trying to optimize the game, as it looks to be line by line converted from Z80 assembly, so code is weird and difficult to understand. Bobby Bearing is small and nice, and it was the fastest port to be made, as game doesn’t require any optimizations.

Tell us a little about “Saboteur!”, the port you has just released. Are you moving away from isometric games?

Again, I wanted something different than previous games. And Saboteur! is very nice as an action game, with exploration, fight, etc. I think such games are missing on 8-bit Atari.

Most other programmers tend to finish one project before jumping into the next one. But you seem to prefer to develop many projects at once... Why?

I only make code for the games, so I need others to help me with additional graphics, loading screens, music and sound effects. While I wait for these, I usually spend time looking at another game from C64.

Total Eclipse is the first "3D" project in your hands. Why did you moved from isometric games? Do you plan to port other pseudo 3D adventure games?

With Total Eclipse I wanted to try something different. Also, I read discussions on AtariAge where people were wondering that this game could be fast and look good in Atari, so I decided to try it by myself. The other Freescape games (Driller, Darkside, Castle Master, etc.) will be also possible to port to Atari.

In technical terms, which one of your projects (current and past) satisfies you the most?

It was The Great Escape – I had some nice ideas for performance which gave good results. My favorite was how I handled the scrolling of the play area: TGE uses offscreen frame buffer to do all rendering, and blits this buffer to screen. When the hero is moving outside, scrolling is applied when buffer is blitted on screen. On C64 this was done in software, so every byte had to be rotated four times (scroll by 4 pixels) when saved. This resulted in huge CPU load. On Atari, I have two screen buffers, one with hardware scroll applied, so I save scrolling in software.

With Total Eclipse I liked the idea of  the main screen design done by me and Jose (Pereira) – we use PM/G graphics for columns on the side which allows us to use different colors for 3D view, exactly as C64 version had. Also, with Total Eclipse I had to learn how to do 3D maths efficiently on 6502 – most of the game speedup comes from new and improved routines for multiplication and division.

Saboteur! was really easy, it took me two evenings – one for studying C64 code, and second for writing the Atari version. The reason for such fast port is that it was actually one table in the game which had to be changed (the table containing pointers to screen rows and columns) and one routine which was clearing screen buffers (Atari is using $1800 bytes for screen buffer while C64 is using $2000 bytes). Of course I had to comment all SID accesses (music and sound fx) and place in my routines for reading keyboard and joystick, but this is usual work. For now, I expect there will be some work with getting color overlays to work.

What was the most complicated/challenging feature in the development of each of your projects?

The biggest challenge was actually developing a way to efficiently analyze C64 games (I use VICE + ICU64 for debugging C64 games and Infiltrator Disassembler for disassembling the games); and also how to prepare the Atari version efficiently – now I just load C64 game image directly on Atari, apply necessary patches and add Atari initialization. I also developed a few standard routines for reading joystick, reading keyboard which return data exactly in the same way as C64 expects it, which now saves time in next ports.

How do you value the participation of members from AtariAge's forums?

They all make final release of the game(s) possible, providing music, sound effects, loading screen and graphics. Without them, games could not be finished. So thanks for Jose, Poison, Philsan, Wieczór and all others giving me precious advices and helping to resolve the problems.

What do you think will be the next release among your current WIP? (speaking about Fairlight: A Prelude, Bobby Bearing and Total Eclipse).

It will be either Fairlight or Bobby Bearing, depending which musician will finish his work first. Total Eclipse requires some more work with additional graphics and saving and loading game state.

Porting games from other platforms/systems is wonderful. But if you had the chance, what original game would you like to make for Atari 8-bits?

I like Mojon Twins games much (Uwol, Sir Ababol) and I would like to see these games on Atari.

What do you think of contests like ABBUC?

I think contests like ABBUC are great, as they boost game development on 8bit platforms. My games can't take part in ABBUC competition, as they are not originals and I do not have appropriate permissions from original authors.

Which are your all-time favorite Atari 8-bit games? Why?

My favorite games are River Raid, Bruce Lee, Montezuma’s Revenge, Quasimodo, Goonies from the beginning of Atari year. Then I liked Zybex, Draconus and Polish games from 1990’s: Robbo, Fred, Misja, Lasermania. Why these? They were addictive, with reasonable difficulty and well-engineered.

What are your thoughts on the Atari 8-bit scene in Europe?

It looks that scene is not very big (compared to other 8bit micros, like Spectrum or Commodore 64) but the people are very friendly and helpful.

Any recommendations for those that like you want to embark themselves on the task of resurrecting/creating games for Atari 8-bit computers?

Never stop when there is a problem. Wait a little and idea for solving the problem will come to mind. If not, ask on AtariAge's forums.