A good walk spoiled

A couple of months ago, I was watching a round up of new C64 game releases on YouTube. There had been a 4k game competition and the entries were being shown. One that caught my eye was Golf Dash. You moved a golf ball around different levels trying to get the ball into the hole. Once you moved the ball it traveled in that direction until it hit a wall – or a box in the later levels. A simple premise that was very playable.

Screenshot from the C64 version.
The 1st hole on the C64

As it was using the hi-res graphics mode on the C64, it was a good candidate for porting to the ZX Spectrum. The first thing I had to do was play through the 17 levels to get all the level data. Once I’d done that, I got the ball rolling (sorry!) and colliding with the walls. This got me as far as the 11th hole as this introduces boxes into the mix. These took a bit of time to get right as the ball has to stop when it hits a box – but the box then carries on moving until it hits something. At this point I’d got a working port of the game.

In game screenshot from Golf Dash.
The 1st hole on the Spectrum

I could have stopped here but I thought it would be nice to add in a level editor to let you design your own holes. This did make things more complicated as the original level designs were done in such a way as to stop you doing silly things like letting the ball or boxes go off the edge of the screen.

I also wanted to add some extra holes so I decided to ask for some assistance. I had previously helped out a member on the Spectrum Computing forum, Equinox, to get a 128k compatible version of Rockfall for a project they were working on. I thought that someone who could dream up new levels for a Boulder Dash style game would be able to design some new holes for a golf based puzzle game.

Equinox helped shake out some logic bugs in the game code with the original set of levels, suggested some gameplay tweaks (which ended up adding two modes of play based around the fastest time to finish or the least amount of shots taken), bomb proofed the level editor code and submitted some new holes. He also provided this rather fine loading screen.

Golf Dash loading screen.
The Golf Dash title screen – water feature, trees and bunker sold separately

With the addition of new holes I decided to add the concept of different courses. The original C64 holes were now Brown Pines, Equinox’s holes were Equinox Springs – an unintentional pun that I had to have pointed out to me – and my own course The 9 Bob Bits.

I had planned for a Christmas day release. I was still working on my last hole design at 11.00pm on Christmas Eve. A last minute bug notwithstanding, I managed to release it on Christmas day morning.

You can download the game here. Any bug fixes or improvements will be made available from the thread at the Spectrum Computing forum. I hope you enjoy playing it and want to say a big thank you to Equinox for all his help in getting this over the finish line.

Many happy returns!

Today marks the 41st birthday of the ZX Spectrum, so I thought I’d mark the occasion by bringing some presents to the party.

Let’s start with a party game. Or more accurately the digital download of Winter Wonder Worm. This isn’t the complete version you get if you purchase the tape from TheFutureWas8Bit – but you do now get 4 levels to worm around in. You can download it from here.

In a bizarre coincidence, the first public release (v0.01) of my long filename browser the ZXUNO and DivMMC / DivIDE devices was also released on this day three years ago. To mark this anniversary, I’ve released v0.24 today as well. This includes some new features, obligatory bug fixes, speed ups and a full rewrite of the .brwscfg configuration program in assembly. You can see me previewing a development version of it in the following video:

Version 0.24 can be downloaded here.

And what’s a birthday party without jelly? I’ve got you covered there as well, especially if you lurrrvve green jelly. I did a mod of my Kempston joystick mod of Snake Pit for Rod Hull so the eggs were changed into green jellies. This probably makes more sense if you were watching certain TV programs on BBC2 back in the 1990s. You can avoid snakes and chow down on jelly here. Here’s a video of Rod playing my green jelly mod:

Enjoy!

Take a worm out for a quick spin

You can now download a playable single level demo of Winter Wonder Worm.

If that leaves you wanting for more worm turning action, the full game can be purchased on tape from TheFutureWas8Bit. This has 6 levels, speed settings and an extra game mode

A cut down digital release will be available here in the future.

This worm IS for turning!

Towards the end of October last year I took a break from my long filename esxDOS browser and started work on something different – a conversion of a homebrew game on the Gameboy Color, called Willy Wonderworm. This is a variant (or twist if you’ll forgive the pun) on the traditional snake game where you control a snake, moving around a screen eating food and getting larger and larger having to avoid collisions with the walls and your own tail. This version lets you twist and turn around in angles rather than restricting you to 90 degree turns.

If I’ve not explained that clearly, I’ve recorded a short YouTube video which shows me playing my version, Winter Wonder Worm and explaining the different game modes.

As I neared completion of the game, I sent a copy to Rod Hull, proprietor of the retro hardware and software website, TheFutureWas8Bit who certainly knows his snake games. He liked it and asked if I wanted to release the game as a cassette on his 699 cassette range.

I will be adding a digital download at some point in the future – however this won’t have all the features available on the cassette release. So for that full on worm rotating experience, head over to TheFutureWas8Bit to buy Winter Wonder Worm as an actual cassette tape! I’m also hoping to publish a longer blog on how the game came into existence, the challenges I faced and how it evolved into the version you see in the video.

Room For Improvements

Recently, I was watching Rod Hull lament about the lack of joystick control in Mike Singleton’s Snake Pit. Having seen keyboard patches for other Spectrum games which fix terrible controls in classics like Jet Pac (Q, W, E, R and T for goodness sake!) I wondered how difficult it would be to adapt the game to use the Kempton joystick interface provided by the divMMC Future.

Armed with a pen, my trusty notebook and a ZX Spectrum emulator – Fuse in my case as I’m on Linux – I started my investigations. After some initial dead ends, I tracked down the keyboard reading routine. I then wrote some new code which took input from the Kempston joystick (on loan from my esxDOS browser) and converted that to the keypresses the game was expecting, so the original game code would be none the wiser as to what was going on. I then patched the original routine to call my new code and crossed my fingers.

After managing to get Fuse to emulate a Kempston interface and mapping the keyboard to be the attached joystick, it did indeed work. I then made a patched version available and after getting Rod Hull’s seal of approval in his rather lovely follow up video I then went about tidying up the patch and doing a final release. This involved me modifying the game to start using the joystick and – more importantly – adding a little cracker-esque message screen at the start.

Not all blue screens are bad.

Snake Pit with Kempston joystick support is available here.

After getting this all set up, I decided to package up a couple of other patches and fixes I had kicking around. When I got my +2 up and running a few months back, I’d tried running a +2 timed version of deMarche’s Paralactika demo to see how the cool multicolour effects looked on real hardware. The .tap file I had promptly reset after loading. On power up, esxDOS forces a 128k machine into USR 0 mode (basically the 48k BASIC prompt but with access to all the memory pages) whereas the loader was expecting standard 128k mode and was doing the memory paging in a way that didn’t work in USR 0 mode. So, I rewrote the loader to take this into consideration and the demo loaded and started up correctly. Paralactika fixed for esxDOS / USR 0 mode is available here.

Finally, I’d come across a 128k mod of Manic Miner which played AY music in game and also included an in-game cheat menu. The original file was a .z80 snapshot and it was causing the full-screen preview code in my esxDOS browser to crash. After fixing that, I had a play around with it and noticed that the music code was hanging – playing the last note over and over again – when you turned the music off or ended up on the Game Over screen. The mod code was using an interrupt based music player for the 128k music and was just enabling and disabling interrupts to start and stop the music. They weren’t calling the ‘stop’ routine to silence the AY chip in the music player which is why the music was getting stuck. After patching the code to do this, I then extracted the code and made it into a .tap file with the original Manic Miner animated loading screen as I’m not a fan of snapshot files. Manic Miner 128k with fixed music playback is available here.