Thursday 4 February 2016

Amiga - done and dusted

I've taken the Amiga port as far as the PC-based Allegro port. The game is now fully playable

Original ZX Spectrum Knight Lore for the Amiga - fully playable
It's been a whirlwind exercise the last few days, and it's entirely possible (even probable) that my Amiga code is absolute rubbish. For those in the know, I create a custom screen (no window) and attach a custom bitmap and specify the palette. I also maintain another bitmap for off-screen rendering, which I access via memory pointers to the bitmap plane memory. Then I use the blit functions to move areas from the buffer to the screen. For the keyboard input, I create a message port and read the matrix.

It runs on AmigaOS 3.1 and - presumably - higher. There are still a few kinks but my goal wasn't - at least at this point - to have a polished commerical-grade product. There is still one annoying bug in the C game port that causes the player to fall through the floor... can't reproduce it reliably yet so there's not much I can do about it.

EDIT: Looks like the aforementioned bug is triggered by walking on a collapsing block!

It also requires that you click on the screen with the mouse after running the game, or key presses will be directed to the shell and pause execution whenever the game outputs to stderr. I'm still looking for a solution to that one. The Amiga developer scene is almost non-existent; the few forums I have visited today have only a handful of posts from the last few years.

The 68020-based A1200 can easily cope with the speed - there's a delay in the main loop.

And it still locks up at game end, as it does on the PC.

I might try to fix the keyboard focus issue but soon I'll move onto the Neo Geo. It is going to require a completely different approach to the graphics, as there is no bitmap, only sprites. I have been thinking about it over the last few months and I think I've worked out how to approach it. The somewhat tedious and error-prone part is converting all the graphics across.

UPDATE: Removed stderr output and uploaded AmigaOS binary


  1. Hi! :)

    I discovered this blog a few days ago (from one of your post in wos) and i have read fully, really amazing projects and what a lot of fantastic work you have made along those years.

    This is the Amiga forum that you are looking for:

    It's the equivalent to WOS in the amiga world, it's really alive and you will get answer to any doubt you have about coding.

    Congratulations!!! :)

  2. Hi again! :)

    I have made a thread about your project in EAB:

    You are welcome to the forum and feel free of show your project and ask for help, i am sure that you will find a nice place to stay and share your projects :)

  3. Hi Kevin,

    I was looking for your blog and found this:

    Is that you?

    1. Hi TenLeftFingers, no thats not me, my blog is here :)

      I noticed recently there are a lot of KS names.