# Bomb Jack GX

**URL:** <https://forum.cpcwiki.eu/t/bomb-jack-gx/661>\
**Category:** Games!\
**Tags:** game\
**Created:** [October 3, 2026, 1:48am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661 "2026-10-03T01:48:55Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anthony\_Flack](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/anthony_flack/32/35_2.png) [@Anthony\_Flack](https://forum.cpcwiki.eu/u/Anthony_Flack)\
**Post date:** [October 3, 2026, 1:48am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/1 "2026-10-03T01:48:56Z")

</div>

> **[Bomb Jack GX by AnthonyFlack](https://anthonyflack.itch.io/bomb-jack-gx)**
>
> A conversion of the arcade game for the Amstrad 464/6128 Plus computers and GX4000 console

I released this at EXACTLY the same time as CPCWiki went down so I never got to talk about the technical details. The code uses a lot of exact timing so once again I unintentionally made a test for emulators, as I find out when people post videos of it looking wrong…

I removed the Extra Sugar modes because all those scoreboards and achievements were designed for a disk-based system that would save your progress. So I thought, I will set it up to play like the arcade game and just have one score table to keep it simple for a cartridge.

Then shortly before the game was done the PicoGX was given the ability to read/write to the SD card so I added high score saving at the last minute. I think it would have been the first game to use this feature if the Bloodwych mod hadn’t beat me to it. So, maybe I could consider putting the Extra Sugar content back in but I would have to redraw all the new backgrounds I made for Extra Sugar, which only exist in 4 colours. And to be honest not that many people have downloaded Bomb Jack GX compared to Extra Sugar which is interesting.

Memory map is completely different and a lot of code had to be tweaked to remove self-modifying stuff so it could run from ROM. Screen doesn’t need to be double buffered any more thanks to hardware sprites and most code runs from ROM, so 64k is more than enough RAM. And the ROM is only 128k so again, plenty of room.

 ![image](https://forum.cpcwiki.eu/uploads/default/original/1X/4a6b7321be3e888f37a09f0d79b7f6bea74c9cc1.jpeg)

The background pictures obviously are in Mode 0 this time and actually use more colours than the arcade because I used anti-aliasing/blending wherever I could to try to make them look a bit less chungus in Mode 0. They were all touched up by hand. They also use colour splits where possible to get more than 16 colours. Or 12 colours, since the platforms always take up 4.

The interrupt system is way more complicated than Extra Sugar but the game structure was way easier to write thanks to the PRI, which might be the GX’s most underrated feature. Any timing-critical code was put on the interrupt chain which made everything so much simpler, and tidier.

Sprite code was all completely redone to use hardware sprites. The game needs a maximum of 12 sprites for game objects (1 player + 9 enemies + P ball + B coin). I was worried about how much time it would take to update the asic to animate them, since sprite memory isn’t indexed (which is so annoying). So to make them go faster, the sprite data is all compiled sprites and where possible stored as a delta, ie only the pixels which are different from the previous sprite are changed. The enemy animations all work this way, and they take turns updating, 4 at a time. So in fact sprite updating is done quite quickly, usually before the visible frame has started drawing. And the game logic was already fast, so the game runs at 50hz comfortably.

More time was burned on the sprite multiplexing which was again handled by the interrupt. After the game objects, I had 4 more sprites left over and I wanted to multiplex them into 24 bombs. This is a piece of cake when they’re stacked vertically, but the trouble is there can be as many as 7 bombs on a line. So, whenever there are more than 4 the game does a tricky horizontal multiplexing where the sprites are moved back and forth every scanline so they appear twice. This requires precise timing and is one point of failure for emulators.

The rainbow meter at the top of the screen is also made from two of the bomb sprites. These are quickly redrawn into bombs in the time between the top display ending and the playfield beginning. So the game often has more than 30 sprites on screen at a time and can have more than 16 sprites on a line. Can’t do that on a Master System or NES.

The extra lives at the bottom of the screen are not sprites but are done with colour splits like Extra Sugar does.

 ![image](https://forum.cpcwiki.eu/uploads/default/original/1X/c8daa0010685fde87b0ffe92d5fd08078ec2917e.png)

The title screen is a completely different solution to the same problem - I want the logo to be high res but you need at least 7 colours to draw it, and they can’t be split easily. This time I had hardware sprites on my side, but the lettering is too big to cover entirely with hardware sprites. So I ended up drawing the logo in mode 1 using two shades of blue, black and orange, and the lettering is covered with a strategic arrangement of hardware sprites combined with colour splits on the orange channel. It rewrites two of the hardware sprites while it’s doing this, so 18 sprites in total are used. Again this requires precise timing, so again this is something that doesn’t look 100% correct in all emulators.

Apart from that it all came together pretty quickly. The GX is fun and still has a lot of untapped potential.

---

<div class="post-metadata">

**Author:** ![SagaDS](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/sagads/32/160_2.png) [@SagaDS](https://forum.cpcwiki.eu/u/SagaDS)\
**Post date:** [October 3, 2026, 6:51am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/2 "2026-10-03T06:51:25Z")

</div>

Thanks so much for such valuable information about technical solutions.  
Shame on me, I didn’t launch your game yet… I am more happy to program on old hardware than playing on them. But your work is amazing, thank you again for it.

---

<div class="post-metadata">

**Author:** ![Gryzor](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/gryzor/32/7_2.png) [@Gryzor](https://forum.cpcwiki.eu/u/Gryzor)\
**Post date:** [October 3, 2026, 6:54am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/3 "2026-10-03T06:54:11Z")

</div>

Man, this looks so arcade perfect I’m still in awe even after all this time…

Thanks for the detailed write-up 🙂

---

<div class="post-metadata">

**Author:** ![rexbeng](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/rexbeng/32/356_2.png) [@rexbeng](https://forum.cpcwiki.eu/u/rexbeng)\
**Post date:** [October 3, 2026, 7:03am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/4 "2026-10-03T07:03:27Z")

</div>

Very cool! Pity it never could be on the same quality level as “games created in the past few months using AI”, but, hey, neat effort nonetheless!

..and I think we have found our new meme 😛

---

<div class="post-metadata">

**Author:** ![SerErris](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/sererris/32/227_2.png) [@SerErris](https://forum.cpcwiki.eu/u/SerErris)\
**Post date:** [October 3, 2026, 9:44am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/5 "2026-10-03T09:44:21Z")

</div>

Can you please let it go. What is all the fuzz about it.

---

<div class="post-metadata">

**Author:** ![dodogildo](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/dodogildo/32/31_2.png) [@dodogildo](https://forum.cpcwiki.eu/u/dodogildo)\
**Post date:** [October 3, 2026, 10:05am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/6 "2026-10-03T10:05:09Z")

</div>

Any plan to add extra sugar to GX version as well?

PS.Sometimes I enjoy more reading about a game than actually playing it. In this case, I enjoyed both.

---

<div class="post-metadata">

**Author:** ![slider271](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/slider271/32/501_2.png) [@slider271](https://forum.cpcwiki.eu/u/slider271)\
**Post date:** [October 3, 2026, 11:35am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/7 "2026-10-03T11:35:57Z")

</div>

Thanks very much for the really interesting write-up, and for making both excellent conversions of Bomb Jack, especially the GX version.

Love that it saves the hiscores, it’s a really good score chaser 🙂

---

<div class="post-metadata">

**Author:** ![Typhon](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/typhon/32/173_2.png) [@Typhon](https://forum.cpcwiki.eu/u/Typhon)\
**Post date:** [October 3, 2026, 12:00pm UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/8 "2026-10-03T12:00:38Z")

</div>

I’m so jealous that you managed to get sprite multiplexing working on the Plus. I’ve never been able to get it to work successfully without hideous graphical glitches and weird pauses. My kingdom for an asic sprite pointer table!

---

<div class="post-metadata">

**Author:** ![Anthony\_Flack](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/anthony_flack/32/35_2.png) [@Anthony\_Flack](https://forum.cpcwiki.eu/u/Anthony_Flack)\
**Post date:** [October 3, 2026, 10:22pm UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/9 "2026-10-03T22:22:55Z")

</div>

> [@dodogildo](#):
>
> Any plan to add extra sugar to GX version as well?

Like I say it’s possible, so maybe one day. The biggest barrier is I’d have to redraw all the extra backgrounds. And there have been much fewer downloads of the GX game compared to CPC.

The conversion process was fun though, as massive chunks of the game would come together all at once.

---

<div class="post-metadata">

**Author:** ![slider271](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/slider271/32/501_2.png) [@slider271](https://forum.cpcwiki.eu/u/slider271)\
**Post date:** [October 3, 2026, 10:26pm UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/10 "2026-10-03T22:26:12Z")

</div>

I’d be happy if you worked on updating another Amstrad game you were interested in! Or maybe an arcade game that didn’t get a CPC release that you love…

Or Platypus CPC+!

---

<div class="post-metadata">

**Author:** ![Anthony\_Flack](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/anthony_flack/32/35_2.png) [@Anthony\_Flack](https://forum.cpcwiki.eu/u/Anthony_Flack)\
**Post date:** [October 3, 2026, 10:40pm UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/11 "2026-10-03T22:40:14Z")

</div>

I built it into the interrupt chain so that once it was working I didn’t have to worry too much about it. I put a lot of code onto the interrupt. It’s too bad the regular CPC doesn’t have a PRI. It’s such a simple feature but makes timing-critical stuff so much easier.

It also helps that the bombs don’t move around. Vertical multiplexing is easy, but the horizontal required timing down to the NOP and only just manages to work. It also takes all the CPU for those lines but I had loads of spare CPU time.

Because interrupts have a few NOPs of uncertainty in their timing, depending on what you are interrupting, I got precise interrupts when I needed them by calling them a line early, then setting the PRI to interrupt again on the next scanline. The interrupt function then WAITs for the interrupt to trigger within the interrupt. Wastes a scanline of CPU time but gives you an interrupt with exact timing.

---

<div class="post-metadata">

**Author:** ![AndyCadley](https://forum.cpcwiki.eu/user_avatar/forum.cpcwiki.eu/andycadley/32/177_2.png) [@AndyCadley](https://forum.cpcwiki.eu/u/AndyCadley)\
**Post date:** [October 4, 2026, 10:34am UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/12 "2026-10-04T10:34:08Z")

</div>

> [@Anthony\_Flack](#):
>
> The interrupt function then WAITs for the interrupt to trigger within the interrupt. Wastes a scanline of CPU time but gives you an interrupt with exact timing.

If you’re cunning about this, you can use some of that time for prep work. There is only a small variation in possible interrupt times so you do the early interrupt, then you can get a good 50 NOPs worth of work prepped before a HALT that leads into the next scan line. It’s especially handy if you’re using DMA to time scan line interrupts (rather than multiple PRIs) because then you’re not even burning some of that setting the PRI again.

---

<div class="post-metadata">

**Author:** ![kawickboy](https://forum.cpcwiki.eu/letter_avatar_proxy/v4/letter/k/dc4da7/32.png) [@kawickboy](https://forum.cpcwiki.eu/u/kawickboy)\
**Post date:** [October 5, 2026, 3:38pm UTC](https://forum.cpcwiki.eu/t/bomb-jack-gx/661/13 "2026-10-05T15:38:37Z")

</div>

It must be admitted, though, that Rodrik’s cartridge hasn’t been out for very long.

Because frankly, there is clearly a way to completely blow the—nevertheless excellent—MSX2 version out of the water.
