Blast from the past – Soko Maniac

Long time ago I dreamt about creating an Atari game. It is quite funny to go back in time in my mind and remember all those old days. I started coding on Atari quite long time ago, firstly in Basic and TurboBasic. I still  have Atari 800 XL that belonged to my older brother back in the 80’s. He showed me the way to write programs before I even got in touch with English language. It was quite surprising back then (in 2nd grade of elementary school where I attended one of my first English classes) to discover that those Basic commands are not just random code names with specific behavior, but they have actual literal meaning in English. Soko Maniac is game based on Sokoban game that already existed on PCs (CGA mode).

Father of one of my friends at school had PC. He was actually a PC game programmer, however, I have not seen any of his games and none of them are online available for download in some abandonware archives… but I know his games were inspired by adventure games line Leisure Suit Larry, Maniac Mansion and some other Sierra games. …anyway, I have seen Sokoban running on his computer and I decided to make an Atari version of that game.

I asked my friend to redraw levels from game on paper grid so I could “transfer” it to my Atari computer. It took some time to build up the game logic and I decided to omit multiple target locations of boxes to simplify the game… so there is only one door in each lever where all boxes have to be pushed to.

I think I started coding this game in Turbo Basic and I saved my progress on tape (XL12 data recorder)  in turbo2000. After a year or so I found out that there are utilities that can load and save Basic game in Turbo2000 without using Turbo Basic (TSAVE/TLO) so I transferred game to more common “platform”. I created several versions of game, the last one was from 1996 when game got shelved but not forgotten.

Now after 20 years after last update of Soko Maniac I decided to unpack my Atari XL12 with all the cassettes and search for the game of my youth… and I found it!

I contacted Fandal and he forwarded my request to Baktra who is really knowledgeable about Atari “Turbo stuff”. He suggested me the apps that can be used to transfer my Turbo programs from tape to disk (over sio2pc) and he also created special tape to disk copier that can read any block of Turbo2000 data (even those long headers used in TurboBasic with TLO/TSAVE commands). So armed with these “weapons” I started to search 20+ cassettes for the game. Sure I had many tapes with content lists so I did not need to look there, but I also had more than 10 cassettes without any description whatsoever. Yeah, I thought it would be a waste to write something on those cassette stickers/casings because I was often recording stuff there and I never knew what will stay there and what will be temporary and rewritten eventually.

My XL12 is so old that it had serious troubles to even play the cassettes. Some of them were too “tight” so I had to open the cassette recorder and see for myself that motor was rotating but plastic belt was slipping there so I winded small piece of cotton wool on the plastic wheels so belt got better grip and whoila, my XL12 was fully operational again!

I have found several old programs in Turbo Basic written by my brother on those tapes and also some games which I plan to release soon.

Soko Maniac was recorded on TDK tape made from yellow translucent plastic – the only one cassette of that type and I have to admit I was almost sure that I will find it there once I saw that yellow plastic. There were several versions of the game and the last one was called SOKOT12 (version 12). It contained data of 24 levels, however, only 8 of them were actually adjusted for the game. Rest of them were just copied from the source (paper sheets provided by my school friend) with multiple targets for boxes to be placed to.

So I decided to finish the game development and I was totally annoyed by that number of imperfections of Basic so I transferred it back to Turbo Basic… where there is IF ELSE ENDIF way of defining the conditions. I was also amazed by some codings and logical errors that were present in the code… well, I was 12 in 1996, it was pretty ingenious for that age when I look back now.

So I fixed some issues and speeded up some routines… also added WASD keyboard controls (because it is fairly easy to do unintended move when playing with joystick). I also had to play through all those 24 levels and I changed most of them to comply with the single door. It took some time, some of those levels are so nasty. That is why I decided to start the game with 30 lives 😀 – there were just 3 originally.

Last but not least, I coded completely new animation that will show up once you beat all those 24 levels.

It was really painful 😀 to code on Atari … I mean without using cross-platform code editing tool… 40 characters per line is brutal. Line numbering is deadly (I also managed to delete some lines by typos in line numbers)… aaargh. I’m used to different comfort when coding assembler stuff for Atari using PSPad and MADS…

Game was released as a part of NYD 2017.

Enough reading, here you can see gameplay video:

Note: You can use WASD keys or Joystick to play the game.


Soko Maniac
Soko Maniac
Version: 1.0
130.0 KiB


Skyscraper took 4th place in this year’s Abbuc Software Contest. I have created gameplay video that shows the overall game progress. […]

Reverse Master, Master Mind 1, Tetris, Minesweeper, Gardnerova hra – more blasts from the past

Similarly as described in my previous post I revived additional pieces of software from my Cassettes. This time there are […]

6 thoughts on “Blast from the past – Soko Maniac

  1. Ok, I seem to be stuck at level 20, which in my opinion cannot be resolved. Or did I miss something?

  2. I am stack at level 20. It seems to be unresolvable, unless I am missing something.

  3. Your comment was marked as spam, I pulled it back.
    Will check that 20th level soon and let you know…

Leave a Reply

Your email address will not be published. Required fields are marked *