Lady Bug (finished)

2021-08-03 - Added the ladybug death animation and uploaded a new disk image to jsbeeb here.

If you want to download the BBC disk image then click here.


2021-08-02 - Added the remaining enemy bugss and all thats left now is the ladybug death animation sprites and code. Check out my youtube channel for the latest changes here.

I have also uploaded a copy to run on the javascript bbc emulator jsbeeb here. If you're interested in this emulator then visit https://bbc.godbolt.org/

Personally I use the windows version of beebem emulator during the development of this game and have found it simply amazing.

You could even run this game on a real bbc computer !.

Once the project is completed I will make the full game source code available for download including the source code for the utilitys used to convert images into bbc format.


2021-07-30 - Well its been a while, I've added a lot to the game and I would say its 99% done with just a couple of small things remaining. Check out my youtube channel for the latest changes here.


2021-04-04 - Testing some bug movement, I dont have any enemy bug sprites drawn yet or any AI logic so the bugs are just moving around

2021-04-05 - I've just added some AI aiming code and uploaded another video to youtube here.


2021-04-04 - Testing some bug movement, I dont have any enemy bug sprites drawn yet or any AI logic so the bugs are just moving around randomly. I've uploaded a video to my youtube channel here.

Its early days yet and theres still plenty of work to do on this game but slowly i'll get there.


I'm currently writing a port of Universal's 1981 arcade game Lady Bug for the Acorn BBC Micro Computer, progress is slow as I dont have a lot of spare time but I do put in an hour here and there its coming along ok.

The Acorn BBC Microcomputer was a computer adopted by schools here in england back in 1981 and although expensive (£399 without a screen !, around £1564 / €1838 allowing for inflation) it was very popular for home users learning basic and assembly language programming or just playing games.

The machine is very basic with an 8 bit 6502A processor running @ 2 MHz, 32K of ram, limited graphics in both resolution and color, no hardware sprites and a simple sound chip capable of generating square waves so its quite a challenge to write an arcade quality game for such limited hardware made harder by the fact that not all the 32K of ram is availble for programming.

The standard BBC Model B with 32K , System Kernel, Disk File System and Basic Interpreter use the first 6.25K of ram for workspace. The computer has a text display mode and a graphics display mode but using a graphics mode has a major impact on the available program memory as it usually requires 20K of ram to display the bit mapped image which reduces your available program space to a miserly 5.75K which clearly is not enough for a complete arcade style game with graphics and sound.

Disabling the System Kernel, Disk File System and Basic Interpreter after the game loads allowed me to regain the lost 6.25K and creating a custom graphics mode using only 14K of ram gained an extra 6K giving me a total of 18K available for the game program, graphics and sound.

18K is still a pretty small amount of memory to work with and some tricks have to be pulled to squeeze everything in. An example is the function to draw the player and enemy sprites was modified to be able to draw the sprites either normally or vertically flipped from the same image source which cuts the storage required in half and when theres 8 different enemys plus the player each with multiple frames of animation this really saves a lot of memory.

Other programming tricks are also needed to get everything to fit. I'll give a complete description and source code when it's completed.

With the kernel disabled even simple things like printing a letter "A" on the screen (which would normally be system call to the kernels print function) now require a print function written from scratch, any characters to be printed also need their pixel patterns stored in program memory. Keyboard input, sound output and anything else needed must all be written and included in the game and requires a deep understanding of the system hardware input/output and support logic, cpu interrupts and bare-metal assembler programming. It's all part of the fun :)

It's very early on in development and im currently still writing the functions needed for the game and only have a test program so far for checking the sprite rendering, animation, text printing, maze initialization and display, score and game stats display, keyboard input etc.


Here's a video of the original arcade game that im recreating.