CPCWiki forum

General Category => Games => Topic started by: XeNoMoRPH on 07:36, 10 January 23

Title: Bomb Jack remake
Post by: XeNoMoRPH on 07:36, 10 January 23
spectacular and very promising remake by Antony Flack:




Title: Re: Bomb Jack remake
Post by: Gryzor on 07:54, 10 January 23
Oh wow. Is he turning it into a complete game? 
Title: Re: Bomb Jack remake
Post by: eto on 12:51, 10 January 23
Is that a very clever dithering of 4 colours or are there more than 4 colours (per line)?
Title: Re: Bomb Jack remake
Post by: TotO on 13:36, 10 January 23
Quote from: eto on 12:51, 10 January 23Is that a very clever dithering of 4 colours or are there more than 4 colours (per line)?
I think both. I love the UI design, it is part of the game.
Title: Re: Bomb Jack remake
Post by: Prodatron on 14:43, 10 January 23
Quote from: eto on 12:51, 10 January 23Is that a very clever dithering of 4 colours or are there more than 4 colours (per line)?
I was wondering about this as well. It seems, that there is black, white, light blue, red, but also yellow (the castle level).
But I think that's the monitor, and inside the game area there is no yellow, just white. Otherwise it would waste a terrible amount of rastertime.
Title: Re: Bomb Jack remake
Post by: fgbrain on 17:09, 10 January 23
looks lovely... great animations with many nice colors (in mode 1) & gfx.

I believe its 128kb only and for a good reason!

hm, another unknown guy comes up with a gem??
Title: Re: Bomb Jack remake
Post by: abalore on 19:47, 10 January 23
very good color usage, and fast sprites. I think the developer could think of making a cartridge version too to be able to play on 64kb CPCs too, and to optimize the sprite drawing even more.
Title: Re: Bomb Jack remake
Post by: VincentGR on 23:06, 10 January 23
Saw this yesterday.
Ok BJ was great on the CPC, but I wish we had superb games like this one back then.
Title: Re: Bomb Jack remake
Post by: eto on 11:44, 11 January 23
Regarding the colours/mode 1:

It's really impressive how the CTM helps to accomplish the effect of having more than 4 colours, but I wonder how that looks in emulators, on an LCD or even on a GT65. 
Title: Re: Bomb Jack remake
Post by: TotO on 11:51, 11 January 23
Don't care how it looks on emulator or a CPC w/o using a CTM/CRT. It will be great when they will emulate the display too. :)
Title: Re: Bomb Jack remake
Post by: norecess464 on 19:25, 11 January 23
Hey! It's a totally impressive preview here

- the vertical-shaped resolution is obvious, perfectly fits the game design
- MODE 1 ? really ? you got me. Thanks to the dithering, I initially thought more inks were involved
- splendid pixel-based movement for the sprites (at 50hz?)

Now the flaws of the original game appears immediately obvious.

Please take your time to turn this into a great finalized game, it totally worth it :) 
Title: Re: Bomb Jack remake
Post by: OneVision on 10:09, 12 January 23
This is one of the most awesome remake I've seen on this machine. And on OLD !
The 50hz sensation is thrilling, very arcade-ish.

Can't wait to play it !
Title: Re: Bomb Jack remake
Post by: GUNHED on 13:26, 12 January 23
Yes, there are more inks used. Listen to his videos.  :) :) :) Great to see that more coders use the power of MODE 1!  ;D ;D ;D
Title: Re: Bomb Jack remake
Post by: Carnivius on 13:39, 12 January 23
Never even liked playing Bombjack but I'm finding the development of this version pretty interesting from a technical viewpoint.
Title: Re: Bomb Jack remake
Post by: TotO on 13:58, 12 January 23
Quote from: GUNHED on 13:26, 12 January 23Yes, there are more inks used. Listen to his videos.
Sure, you can see ink change for the score and round.
Title: Re: Bomb Jack remake
Post by: Cwiiis on 15:21, 12 January 23
This is fantastic, really nice work - especially impressive to see this on the stock CPC... I was kind of considering Bomb Jack for a Plus remake at some point in the future, but here's someone proving that the Plus is totally unnecessary to do a good job :)
Title: Re: Bomb Jack remake
Post by: GUNHED on 18:03, 12 January 23
Quote from: Cwiiis on 15:21, 12 January 23This is fantastic, really nice work - especially impressive to see this on the stock CPC... I was kind of considering Bomb Jack for a Plus remake at some point in the future, but here's someone proving that the Plus is totally unnecessary to do a good job :)
Right, the Plus is necessary to do a fantastic job.  :) So wait for the Plus version of the game.  ;)
Title: Re: Bomb Jack remake
Post by: Gryzor on 18:52, 13 January 23
Quote from: andycadley on 18:06, 13 January 23Although all this Plus chatter probably ought to be moved off this thread, the work here deserves the praise more than this discussion attached. @Gryzor ?
Yup will do

[EDIT] Just did, and cleaned offensive posts from all parties.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 11:02, 16 January 23
Hello, I am the author of the Bomb Jack port/idiot in the video.

To answer the question about colours, in the main play area I am using 0 (black), 25 (light yellow), and depending on the level, either 11 or 14 (sky blue/violet), and 6 or 15 (red/orange).

Light yellow looks like light grey, almost white when it is put next to a sky blue pixel. 14 and 15 together make a nice medium grey. On a real CPC monitor, the pixels smear into the CRT dots and you can create many combinations of colours that don't even look like dithers. The classic Amstrad colours, the secondary colours like purple and orange, pink and lime create the best effects because they have a little bit of R, G and B so they light up all the phosphors. Also they are the colours that will dither beyond the CPC palette, whereas primary colours only dither into secondary colours. I really like some of the softer colours you can find in dithers; it takes the edge off the CPC's acid trip palette a little. 

Here, I am limited by trying to recreate Bomb Jack, but that's the challenge. The overall effect still works on LCD I think, although you can obviously see more clearly how it is done. My main priority is looking good on the original CPC monitor.

Actually, my main priority is to try to get the gameplay accurate, but doing some nice Mode 1 graphics is a bonus. In general I have tried to use mostly dithered colour in the background (avoiding using pixels of the same colour next to each other), which helps the sprites to stand out. Also using 4-colour masked sprites rather than three colours plus transparent makes a big difference in Mode 1 I think.

I have also long thought that the Plus machine would be an excellent candidate for a faithful port of Bomb Jack. The sprite specs seem almost made for it, and of course the colours. But I don't have a Plus machine, so I did this instead. And it turns out the regular CPC ought to be, just about, fast enough to do a faithful port, hopefully. All the collisions are in now, and that wasn't much of a speed hit.

It makes a big difference IMO to hit 50hz and see the sprites appear to glide over the background like proper hardware sprites.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 11:16, 16 January 23
And actually perhaps somebody here can help me.

I originally intended the whole game to fit into 128k, but as I continue to pack everything in I'm concerned I might not quite fit it all and don't want to sacrifice a nice animated title screen or cut back on any other fun effects like that for lack of memory, so I think I may have to acquaint myself with the disk drive. I could free up 20k of RAM right now if I loaded the background images off the disk instead of having them squatting in memory all the time. And if I did that, I could add extra pictures as well. And then there's high score saving. There's definitely perks to getting the disk drive involved.

I'm a total noob at this though, and I've never tried to load a file from asm before. I'm going to need the firmware back no doubt but I nuked the firmware and dumped a screen buffer all over its jump block and the AMSDOS ram block and all its worky bits. 

That's fine, I don't need the screen buffer when I'm loading from disk, and I can restore all the firmware memory I pasted over if I stash it first. Surely somebody must have done this before though and can save me ploughing through loads of documentation. Can anybody tell me exactly what minimal memory locations I need to save/restore and what I need to call to get data on and off the disk? 
Title: Re: Bomb Jack remake
Post by: Nich on 11:31, 16 January 23
Quote from: Anthony Flack on 11:16, 16 January 23Surely somebody must have done this before though and can save me ploughing through loads of documentation. Can anybody tell me exactly what minimal memory locations I need to save/restore and what I need to call to get data on and off the disk?

This thread (https://www.cpcwiki.eu/forum/programming/game-overwrites-amsdos-can-i-re-enable-it/msg222667/#msg222667) contains Z80 assembler code to load files from disc when the firmware has been overwritten.

The areas of memory that you may, or will, need to preserve are:


You may also need to save the address of the stack pointer (SP) when you're using the firmware, and restore it once you're finished.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 11:36, 16 January 23
Brilliant. When you say the value of &ABFC may need to be lowered, is this something I need to check for in order for the game to work if you have things hanging out of the back of your CPC that I don't?

I haven't read the thread yet. I should go read the thread, maybe this is all covered. First CPC project, so learning as I go.
Title: Re: Bomb Jack remake
Post by: Gryzor on 11:36, 16 January 23
Hey, @Anthony Flack , welcome here, thanks for the awesome-looking remake and also thanks for the clarifications!
Title: Re: Bomb Jack remake
Post by: Nich on 12:00, 16 January 23
Quote from: Anthony Flack on 11:36, 16 January 23Brilliant. When you say the value of &ABFC may need to be lowered, is this something I need to check for in order for the game to work if you have things hanging out of the back of your CPC that I don't?
Actually, my code in the thread I linked to only initialises ROM 7, which is where AMSDOS or ParaDOS is installed. However it is possible to install other DOSes such as ROMDOS in other ROM slots, so I usually like to initialise all ROMs (using CALL &BCCB rather than CALL &BCCE).

Unfortunately I don't know of any way to check what value should be used instead of &ABFC. I tested a configuration in WinAPE that installs lots of ROMs (Protext, Prospell, Maxam, Utopia, ROMDOS) and it reserved memory from &A5FE-&B0FF, so that is an indication of how much memory you may need to copy temporarily.
Title: Re: Bomb Jack remake
Post by: Cwiiis on 12:07, 16 January 23
I've found that if you're using the firmware functions, you also need to restore shadow registers (excluding `af) - in my game, I just avoid the firmware memory area and backup the shadow registers to allow use of firmware disk functions. (obviously only if you're using shadow registers - but I'm guessing you are :))
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 12:26, 16 January 23
Gotcha, so I could just save out that whole chunk of memory if I want to be extra safe. Or maybe just lowering it a bit would be reasonable. Either way it's good to know that can happen.
Title: Re: Bomb Jack remake
Post by: andycadley on 12:37, 16 January 23
If I'm understanding correctly, it's only if you care about the contents, right? Initializing AMSDOS (or other ROMs) will cause them to allocate some storage here and set it's contents with appropriate default values.

If you just have a big, trashable buffer there you shouldn't have to worry, right?
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 12:47, 16 January 23
That whole 16k bank is a totally trashable buffer in-between stages, yes. If all I have to do is &BCCB to make all that memory good then yeah I can and will ignore it! 
Title: Re: Bomb Jack remake
Post by: Jean-Marie on 13:08, 16 January 23
Quote from: Anthony Flack on 11:16, 16 January 23I could free up 20k of RAM right now if I loaded the background images off the disk instead of having them squatting in memory all the time.
You can have the background images compressed in memory, using for example ZX0 (https://github.com/einar-saukas/ZX0), then decompress them when needed. Unless they're already compressed?
Title: Re: Bomb Jack remake
Post by: roudoudou on 14:25, 16 January 23
Here is a loader from Ast
you must adapt drive backup in your programm, then it's easy to restore when you want to load later

   org #a000
;
; Loader with Rom 7 init (Amsdos)
; ----AsT/iMPact 2018
;
   ent $

   ld hl,(#be7d); get current drive in A
   ld a,(hl)
    push af
   ld c,7 ; init rom 7
   ld de,#40
   ld hl,#abff
   call #bcce
    pop af
   ld hl,(#be7d) ; put drive back
   ld (hl),a
;
   ld b,finname-name
   ld hl,name ; nom du fichier a charger
   ld de,#c000 ; buffer
    call #bc77
   ld hl,#c000 ; start
   call #bc83
   jp #bc7a

name db "sid.bin"
finname
Title: Re: Bomb Jack remake
Post by: TotO on 14:37, 16 January 23
@Anthony Flack Welcome to cpcwiki! :)

We have a little exchanged on youtube. Congratulation for your project.
I'm happy to have found your colour palette by doing a mockup using bright yellow and blue. ;D

I'm sure you will find some help here form people like @abalore or @roudoudou for your technical issue.
EDIT: Oups, I have not seen the next page before posting. :D
Title: Re: Bomb Jack remake
Post by: abalore on 14:38, 16 January 23
Quote from: Anthony Flack on 11:02, 16 January 23Hello, I am the author of the Bomb Jack port/idiot in the video.

To answer the question about colours, in the main play area I am using 0 (black), 25 (light yellow), and depending on the level, either 11 or 14 (sky blue/violet), and 6 or 15 (red/orange).

Light yellow looks like light grey, almost white when it is put next to a sky blue pixel. 14 and 15 together make a nice medium grey. On a real CPC monitor, the pixels smear into the CRT dots and you can create many combinations of colours that don't even look like dithers. The classic Amstrad colours, the secondary colours like purple and orange, pink and lime create the best effects because they have a little bit of R, G and B so they light up all the phosphors. Also they are the colours that will dither beyond the CPC palette, whereas primary colours only dither into secondary colours. I really like some of the softer colours you can find in dithers; it takes the edge off the CPC's acid trip palette a little.

Here, I am limited by trying to recreate Bomb Jack, but that's the challenge. The overall effect still works on LCD I think, although you can obviously see more clearly how it is done. My main priority is looking good on the original CPC monitor.

Actually, my main priority is to try to get the gameplay accurate, but doing some nice Mode 1 graphics is a bonus. In general I have tried to use mostly dithered colour in the background (avoiding using pixels of the same colour next to each other), which helps the sprites to stand out. Also using 4-colour masked sprites rather than three colours plus transparent makes a big difference in Mode 1 I think.

I have also long thought that the Plus machine would be an excellent candidate for a faithful port of Bomb Jack. The sprite specs seem almost made for it, and of course the colours. But I don't have a Plus machine, so I did this instead. And it turns out the regular CPC ought to be, just about, fast enough to do a faithful port, hopefully. All the collisions are in now, and that wasn't much of a speed hit.

It makes a big difference IMO to hit 50hz and see the sprites appear to glide over the background like proper hardware sprites.
Hello! You are doing a great work!

My suggestion is that you make a cartridge game, compatible with all systems. You'll be able to have a lot more content, instant load and no disk management.

You can do it in a standard cartridge format to run in my Plus2CPC and Play2CPC expansions.
Title: Re: Bomb Jack remake
Post by: BSC on 20:55, 16 January 23
Quote from: abalore on 14:38, 16 January 23My suggestion is that you make a cartridge game, compatible with all systems.
How is that compatible with a CPC without the according add-on?

Regarding memory @Anthony Flack : If you target a 128k machine and will not be using all of its memory, you could use one of the additional memory banks (&4000 to $7fff) as buffer area and leave the firmware and Amsdos jump blocks etc just as they are. No restore needed, just use everything as-is. You could even use the screen memory as a buffer area. Hiding your buffers could be done by means of colours or the CRTC (e.g. setting screen height to zero chars). What I am trying to say: If you are loading things from disk anyways, you don't have to have all assets in memory at all times, potentially freeing enough RAM to leave "the system" intact.
Title: Re: Bomb Jack remake
Post by: abalore on 21:26, 16 January 23
Quote from: abalore on 21:25, 16 January 23
Quote from: BSC on 20:55, 16 January 23
Quote from: abalore on 14:38, 16 January 23My suggestion is that you make a cartridge game, compatible with all systems.
How is that compatible with a CPC without the according add-on?




A game for 128K is only compatible for one of the three CPC models. And one of the two plus models.

A cartridge game runs in a vanilla Plus, and in all CPCs with adapter, and also in the unmodified GX4000

Title: Re: Bomb Jack remake
Post by: Prodatron on 21:50, 16 January 23
Well, I don't think that there are more C4CPC adapters around than 6128 + 464 with memory expansions.
Title: Re: Bomb Jack remake
Post by: abalore on 21:56, 16 January 23
Quote from: Prodatron on 21:50, 16 January 23Well, I don't think that there are more C4CPC adapters around than 6128 + 464 with memory expansions.

You also have homebrew cartridges, many people here manufacture them. Also, the 464 and 664 users would need also the DDI expansion and Floppy Drive
Title: Re: Bomb Jack remake
Post by: abalore on 21:59, 16 January 23
By the way, the cartriges can be run also in a M4 board
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 23:08, 16 January 23
I don't have any capacity to play cartridge games. I have a stock 6128. Converting to cartridge is perhaps a job for later. It seems like a waste to release a cartridge game without Plus features though. Perhaps a Plus version and a non-Plus version could both fit on the cart.


The reason the buffer area is not at &4000-&7fff is because that is the one ram bank that you can swap any of the extra ram banks into. I have swappable code and graphics in there and they need to be able to write to either &8000 or &c000, depending on which is currently the back buffer.

Given the limited ways that you can swap the extra RAM in and out, this seemed like the best way to ensure that everything fits together. I could probably put the firmware stuff into bank 5, and do a C2 bank switch to restore it, but I guess copying a few K of memory from somewhere else is only going to make the load slower by maybe one frame, anyway. 
 
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 01:16, 17 January 23
Quote from: Jean-Marie on 13:08, 16 January 23
Quote from: Anthony Flack on 11:16, 16 January 23I could free up 20k of RAM right now if I loaded the background images off the disk instead of having them squatting in memory all the time.
You can have the background images compressed in memory, using for example ZX0 (https://github.com/einar-saukas/ZX0), then decompress them when needed. Unless they're already compressed?
They are cut into tiles, so 5 images currently occupies 20k.

I thought about adding extra compression, but figured it would only claw back a few extra K at best. Loading from disk would free it all, including potentially the code to draw it. Because the data could be loaded into a buffer, executed and then trashed.

Still, it is nice to have it all in memory at once with no disk access. I'm not in a rush to change everything over just yet. But it would be fun to add some extra pictures, and it seems like high score saving is a must, and I'll need disk access if I want that.

Incidentally, is there any nonvolatile RAM you can save high scores to on a cartridge? Or would you just keep a spare disk for all your cartridge save files?
Title: Re: Bomb Jack remake
Post by: abalore on 07:46, 17 January 23
Quote from: Anthony Flack on 01:16, 17 January 23Incidentally, is there any nonvolatile RAM you can save high scores to on a cartridge? Or would you just keep a spare disk for all your cartridge save files?
We use rewritable cartridges for Alcon2020, we save scores and settings. Or the whole cartridge can be updated to a new game version or to a different game.

But only when used along with the Play2CPC expansion. In normal Plus cartridge slots they are just read-only.
Title: Re: Bomb Jack remake
Post by: GUNHED on 13:50, 18 January 23
Buffering the system area has the advantage to be able to work with anything else than only drive A. Examples are B drives, B drives with bigger formats, hard-discs, RAM discs, modern mass media.

Regarding the Cartridge format... I understand that people want to push their projects. But most of the users imho own a CPC6128. So to target the stock CPC6128 first would make sense. After the stock CPC6128 it would be the same computer with ROM expansion (f.e. the M4 expansion sold over 1000 times!).
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 06:32, 20 January 23
Yes I'm not against the idea and actually would like to try a cart/rom version that will work in 64k, and a Plus-enhanced version that might be able to run in 64k even from disk, but I'd have to buy some more hardware first, so I'm starting with the system I currently own myself. It was good enough for Orion Prime.

It's something to keep in mind when placing self-modifying code.

When you say buffering the system area, do you mean I should copy and restore the whole (estimated) rom area as well, rather than re-initialising the roms every disk access?

Sorry, I've never stick a rom in a CPC ever. Just trying to get a handle on how much of the system area needs to be copied and restored, and how much of it only needs to be made available. 
Title: Re: Bomb Jack remake
Post by: abalore on 08:27, 20 January 23
Quote from: GUNHED on 13:50, 18 January 23After the stock CPC6128 it would be the same computer with ROM expansion (f.e. the M4 expansion sold over 1000 times!).

FYI , the M4 can run cartridge images.
Title: Re: Bomb Jack remake
Post by: TotO on 13:40, 20 January 23
As I understand, Bombjack currently looks very promising but lack of memory. So, to push the project further it is instesting to think about ROM / Cartridge as that allow to play on all systems while the users own a device (or emulators) to read ROM or CPR files.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 03:45, 21 January 23
I am going to begin by writing a game that I myself can play on my own CPC, which is an ordinary 6128 with no cartridge slot. After that we will see. 
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 07:39, 21 January 23
I should clarify: I'm not in danger of running out of operating memory. Not on the 6128 anyway. So there's no problem that will sink the project. 

I was just trying to decide whether to try to pack everything into one load. At first I was going to but now I think, hmm maybe nah.

It's not a matter of whether the game will work, but things like whether the title page logo gets to be animated. 
Title: Re: Bomb Jack remake
Post by: norecess464 on 08:41, 21 January 23
@Anthony Flack I'm probably wrong with this answer, so please take the following with a grain of salt ;D

I'm under the impression than your remake could fit in a regular Amstrad CPC 6128 with a single load and no extra use of ROM storage.

Few points of investigation:

- What is the result if you pack separately the complete background images / unpack them to screen when necessary ?
- Code section sometimes can take lots of memory, maybe you could try unpacking some parts of code/data "on demand", cf. menu code, game code, etc.
- If it's not done yet, maybe you can save some additional space by generating the sprite left/right at level startup?
- Sometimes, bitfields (for enemy statuses etc) can be better approach vs. an array of bytes
- If you don't plan using disc accesses, you can eventually remove the firmware code + redirect interrupts, and free the RAM between &A500+ to &C000 for your own usage. Even in that case, please take note it's still possible to read a file without the firmware (cf. FDC Tools from @Targhan : http://www.julien-nevo.com/arkos/fdc-tools/)
- Maybe what is blocking you, is the memory schema when using the extra 64Kb of the Amstrad CPC 6128 ? : I would strongly suggest to learn about &C1, &C2, &C3 banking modes if you are not aware of them
- Since your remake is 50hz-based, do you need page flipping (2 screen buffers) at all ? MAYBE you can sort the sprites vertically to restore background+redraw them at new position before they get displayed on the monitor ?
- Think about another approach ? Often with 8-Bit programming, there are multiple solutions for the same problem.

Good luck ! It's a very exciting project you get there. And please continue to share your progress ! 8)
ps. it's already pretty good in its current state
Title: Re: Bomb Jack remake
Post by: TotO on 09:46, 21 January 23
@Anthony Flack Thank you for the clarification. Sure, it is great if you can run it on a stock CPC 6128. I thought that you were worried because 20K left, while it is always a prototype of the game engine and the display performance for all the sprites.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 10:01, 21 January 23
Interesting... I haven't thought to try running the complete images through compression.

I think saving the high scores is desirable enough to want to re-enable disk access even without any loading. I'll have a look at that link too, is it easy to use?

For anything in the main loop, it's good to be able to optimise for speed, because I need it. This includes not trying to do anything clever with a single-buffered screen. Not just the sorting but the erasing, overlapping rectangles, sprites piling up in the same region of the screen... I figure the ability to do a nice clean hardware double buffer is one of the rare blessings granted to the CPC by the hardware gods and I will accept their blessing, this time anyway.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 10:49, 21 January 23
Quote from: TotO on 09:46, 21 January 23@Anthony Flack Thank you for the clarification. Sure, it is great if you can run it on a stock CPC 6128. I thought that you were worried because 20K left, while it is always a prototype of the game engine and the display performance for all the sprites.
The main game itself is mostly in, all the enemy sprites including some not yet shown, collisions are all done although bombs don't get removed yet, type and display panel is mostly done. You can cycle through all 63 stages. I love games of this era - nice compact amount of content. 

Memory isn't quite tight exactly, but I'm cautious as I plan out the remaining moves... something for the DOS, something for the music data, menus and transitions, title screen, win/lose animations, some more showoff screen effects, extra game modes, and the immediate question of whether I should draw this POW coin that has to appear in seven different colours in a more memory-efficient or speed-efficient way... all the graphics have been done, not quite all are encoded yet.

Title: Re: Bomb Jack remake
Post by: GUNHED on 16:06, 21 January 23
Quote from: abalore on 08:27, 20 January 23
Quote from: GUNHED on 13:50, 18 January 23After the stock CPC6128 it would be the same computer with ROM expansion (f.e. the M4 expansion sold over 1000 times!).

FYI , the M4 can run cartridge images.
Sure, and after every Cartridge-Run I do need to reinstall every ROM I use. Well, this is done quick with my ROManger - but still I do need to install FutureOS first. So honestly, the idea of running Carts is great for Gamers only, but not for Coders or who ever is using ROMs.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 23:40, 21 January 23
Targhan's code is impressive of course, but the AMSDOS file loader doesn't seem to have a corresponding save routine, and I think high score saving is the main reason I want to keep DOS open. I sure don't fancy doing a deep dive to figure it out myself, and I guess if it had more functions it would soon end up bigger than the firmware ram area anyway. 

So, firmware it is. 
Title: Re: Bomb Jack remake
Post by: Prodatron on 02:23, 22 January 23
Yes, I really recommend to save the firmware at #A500-#BFFF and don't use any proprietory solutions for accessing the FDC/disc drive. Today we have a lot of mass storage (SD card, USB, IDE) supporting DOS extensions like M4Board, SYMBiFACE III, UniDOS etc. It would be just great, if every new piece of software is compatible with these systems. For this you just save this area and that's it.
Title: Re: Bomb Jack remake
Post by: abalore on 11:29, 22 January 23
You also can do things a lot simpler by forgetting about managing files and write data into disc sectors directly. For instance, you can reserve last sector in disc to save high scores.
Title: Re: Bomb Jack remake
Post by: GUNHED on 21:25, 22 January 23
Quote from: Prodatron on 02:23, 22 January 23Yes, I really recommend to save the firmware at #A500-#BFFF and don't use any proprietory solutions for accessing the FDC/disc drive. Today we have a lot of mass storage (SD card, USB, IDE) supporting DOS extensions like M4Board, SYMBiFACE III, UniDOS etc. It would be just great, if every new piece of software is compatible with these systems. For this you just save this area and that's it.
Exactly!  :) :) :)
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 23:28, 22 January 23
Looking at the firmware manual for the first time ever (I remember it was famously out of print for the longest time - it would have been nice to have in the 1980s), that part is as simple as can be. Which makes sense I guess if it's essentially BASIC without its trousers on.

If I understand correctly, if you run a binary file directly, it deactivates all the ROMs and everything has to be re-initialised before you can use the drive again. But if you load your code into memory and then call it from a small BASIC program, nothing is disturbed.

Is there any reason not to do this? 
Title: Re: Bomb Jack remake
Post by: Nich on 00:09, 23 January 23
Quote from: Anthony Flack on 23:28, 22 January 23If I understand correctly, if you run a binary file directly, it deactivates all the ROMs and everything has to be re-initialised before you can use the drive again. But if you load your code into memory and then call it from a small BASIC program, nothing is disturbed.

Is there any reason not to do this?
Using a BASIC loader means there is one more file stored on the disc. :D
Title: Re: Bomb Jack remake
Post by: Prodatron on 11:23, 23 January 23
Quote from: Anthony Flack on 23:28, 22 January 23But if you load your code into memory and then call it from a small BASIC program, nothing is disturbed.
You are right.
For later:
There is even the possibility to put a binary directly behind the basic code into the same file, so you only have to load the little basic program and have the binary included as well.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 10:48, 02 February 23
All right - as I prod at the CRTC like a klutz, I have another compatibility question for those that know better:

On the bonus screen between stages, I want to bring in the sides of the border on the centre part of the screen. So to have a 32 character wide screen at the top, a 20 character wide screen in the middle, and back to a 32 character wide screen at the bottom.

Without doing any kind of rupture, I was messing around with just changing the values of R1 and R2 while the screen is drawing. Changing R1 is no problem, and pulls in the right hand side border. But changing R2 to centre the image is messing with HSYNC timings and changing it midscreen causes an interesting effect... which I guess anybody who's ever messed with R2 is well aware of. 

(https://i.postimg.cc/3JN8YVsX/Border-Change.png)

Now, this should actually be completely fine for what I want, because there will only be black space on the lines where the screen skews diagonally. My CPC monitor seems to be fine with displaying this as well.

But am I doing a bad thing that will mess up on LCD screens, or make Baby Jesus cry? If so, I will have to rethink my idea.
Title: Re: Bomb Jack remake
Post by: Axelay on 11:23, 02 February 23
I don't know about LCDs in general, but I did see this one video where the title screen on Sub Hunter (banging R2 for the wave effect) appeared to be messing up an OSSC.

Title: Re: Bomb Jack remake
Post by: Anthony Flack on 11:49, 02 February 23
Oh, you used the skewing behaviour as an effect? Nice.

I see what you mean with the OSSC there, but if that's the only problem that's surfaced after 11 years of Sub Hunter wiggling peoples' HSYNC, I guess it must be generally OK...
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 00:33, 18 March 23
CRTC being tortured behind the scenes, before I hide it all under black ink. 

(https://i.ibb.co/F3vsqJ7/Bonus-Screen.png)
Title: Re: Bomb Jack remake
Post by: McArti0 on 09:41, 18 March 23
You must FIRST change R0 to 63+(32-20)/2=69.

Waiting ONE line 69 NOPs or litle more.

Set R2 to R2-6

Set  R0 to 63

Title: Re: Bomb Jack remake
Post by: McArti0 on 10:54, 18 March 23
org #b941
int equ $+1
jp custom_int

org &a400
.custom_int
di
push bc
push af
ld bc,&bc00
out (c),c
ld bc,&bd00+63+6
out (c),c
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

ld bc,&bc01
out (c),c
ld bc,&bd00+20
out (c),c

nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

ld bc,&bc02
out (c),c
ld bc,&bd00+36
out (c),c
ld bc,&bc00
out (c),c
ld bc,&bd00+63
out (c),c

push hl
ld hl,custom_int2
ld (int),HL
pop hl

pop af
pop bc
.end_custom_int
di
EX AF,AF'
JP C,#B978
JP #B945

.custom_int2
di
push bc
push af
ld bc,&bc00
out (c),c
ld bc,&bd00+63-6
out (c),c

nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

ld bc,&bc01
out (c),c
ld bc,&bd00+32
out (c),c

nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

nop:nop

ld bc,&bc02
out (c),c
ld bc,&bd00+42
out (c),c
ld bc,&bc00
out (c),c
ld bc,&bd00+63
out (c),c

push hl
ld hl,custom_int
ld (int),HL
pop hl

pop af
pop bc
.end_custom_int2
di
EX AF,AF'
JP C,#B978
JP #B945
Title: Re: Bomb Jack remake
Post by: McArti0 on 12:40, 18 March 23
A How this work  :P

(about:invalid)
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 22:21, 20 March 23
Quote from: McArti0 on 09:41, 18 March 23You must FIRST change R0 to 63+(32-20)/2=69.

Waiting ONE line 69 NOPs or litle more.

Set R2 to R2-6

Set  R0 to 63


I was wondering if there was a clean way. Those are blank lines anyway but I'll do it properly
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 05:53, 03 April 23
Oh, I never got back to say, all done now: display is nice and tidy. Thanks for that McArti0
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 13:53, 30 July 23
Update: 

Title: Re: Bomb Jack remake
Post by: Gryzor on 14:16, 30 July 23
I was so good at this when I was a little one, hope I've got some skills left when this comes out... 
Title: Re: Bomb Jack remake
Post by: HAL6128 on 14:24, 30 July 23
This is sooo great! Super good and cool Mode 1 graphics and animations.
Seems that's the movements are very precise. 
Well done! Great to see a progress and looking forward to the sound implementation.
Title: Re: Bomb Jack remake
Post by: TotO on 14:26, 30 July 23
Just yesterday, since a long time, I checked to see if any update. ;D
This version looks really great. Fantastic work in progress. Congratulation!

Now, it is a shame when the levels colour require to use orange instead of red.
May be an idea will be to have alternative background to the Egypt one?
(that anyway do not render well in mode 1)
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 14:30, 30 July 23
No way would I ever remove the Egypt background. It's Bomb Jack!
Title: Re: Bomb Jack remake
Post by: TotO on 14:33, 30 July 23
I was sure about the answer. ;D
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 14:51, 30 July 23
For sure if you were doing something from scratch you could design the art specifically to look as good as possible on the CPC hardware. This is the opposite case, where the target is already decided and I just have to try to work with what is given. In some instances that has meant going to a fair bit of effort to imitate an effect that, on the original hardware, would have been really simple.
Title: Re: Bomb Jack remake
Post by: Prodatron on 15:34, 30 July 23
Fantastic! Great to see, that you nearly finished it!
Do you already have any idea how to implement the music and the sound fx?
Maybe using available tools like Arkos Tracker II or build it from scratch?
Title: Re: Bomb Jack remake
Post by: TotO on 15:40, 30 July 23
The arcade use the same soundchip and CPU. May be something like a register replay?
If the VGM RIP can help: https://vgmrips.net/packs/pack/bomb-jack-arcade
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 16:07, 30 July 23
The same sound chip, only they used three of them... I don't think it will be too difficult to reproduce the music by ear; I played it on the guitar easily enough. What will be interesting is trying to see how much I can get away with cramming sound effects into the same channels. 
Title: Re: Bomb Jack remake
Post by: TotO on 16:11, 30 July 23
Great!

May be I'm wrong, but I think the music use one chip and the sfx the others.
You may allow to have music only, sfx only, and both together. (mixed or using sound expansion)
Title: Re: Bomb Jack remake
Post by: Jean-Marie on 18:40, 30 July 23
Arcade perfect ! Full marks.
Title: Re: Bomb Jack remake
Post by: abalore on 01:14, 31 July 23
Great work
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 02:06, 31 July 23
Quote from: TotO on 16:11, 30 July 23Great!

May be I'm wrong, but I think the music use one chip and the sfx the others.
You may allow to have music only, sfx only, and both together. (mixed or using sound expansion)

I think so too. The music sounds like it can be reproduced in three channels, although they might be using extra channels in some places to make it sound more full. 

Indeed I was thinking the same thing with regards to giving people the option to have either or both. 
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 02:34, 31 July 23
Quote from: Prodatron on 15:34, 30 July 23Fantastic! Great to see, that you nearly finished it!
Do you already have any idea how to implement the music and the sound fx?
Maybe using available tools like Arkos Tracker II or build it from scratch?
So far, I've not even made a single beep. But I look forward to figuring it out. I want to build something from scratch so I can understand it.
Title: Re: Bomb Jack remake
Post by: norecess464 on 13:58, 31 July 23
I love what you are doing  ;D

Good luck with the audio part -- doing this from scratch (cf. with no external tracker / existing audio player etc) won't be easy.
Title: Re: Bomb Jack remake
Post by: kawickboy on 22:24, 14 August 23
Maybe a playcity support could be considered. This hardware is perfect for such arcade port (Alcon2020...).
Title: Re: Bomb Jack remake
Post by: XeNoMoRPH on 10:50, 11 November 23
gameplay : https://files.fm/u/w3d6af9bf5#/view/xqgbzjaxv4
Title: Re: Bomb Jack remake
Post by: Gryzor on 11:15, 11 November 23
Oooh nice! :)
Title: Re: Bomb Jack remake
Post by: Prodatron on 12:42, 11 November 23
Looks fantastic!
Title: Re: Bomb Jack remake
Post by: lmimmfn on 13:38, 11 November 23
That looks absolutely amazing, one of the best looking mode 1 gfx for an arcade conversions, love the use of the extra colours in the panels at the top/bottom
Title: Re: Bomb Jack remake
Post by: HAL6128 on 14:40, 11 November 23
Nice graphics and crazy cool sound and effects.
Title: Re: Bomb Jack remake
Post by: poulette73 on 17:10, 11 November 23
Increbible !  Very nice ! 👍
Title: Re: Bomb Jack remake
Post by: trocoloco on 12:16, 12 November 23
Bravo, masterful conversion, what a wonderful use of mode 1 and rasters
Title: Re: Bomb Jack remake
Post by: Maniac on 10:47, 13 November 23
Amazing work! Really great use of Mode 1 and associated screen tricks. Love it and can't wait to play!
Title: Re: Bomb Jack remake
Post by: OneVision on 10:00, 15 November 23
The gameplay looks perfect, so do the graphics. And it seems to be at 50 Hz which is very rare on CPC and feels so arcade-ish.
A brilliant conversion I wish to play real soon !
Title: Re: Bomb Jack remake
Post by: sigh on 23:34, 15 November 23
WOW! You absolutely smashed it! Brilliant work and the pixel art is lovely.
Title: Re: Bomb Jack remake
Post by: SerErris on 15:12, 17 November 23
Awesome really great. Are we there yet?
Title: Re: Bomb Jack remake
Post by: BSC on 22:52, 17 November 23
Unbelievable! It looks almost like the arcade version. How the did you manage to make it look so good? The music and sound effects are also top-notch. Really well done! 
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 05:57, 18 November 23
Quote from: BSC on 22:52, 17 November 23How the did you manage to make it look so good?

That's a broad question, but there's quite a few interesting little touches in there I could talk about. Problems that I found fun ways to solve.

There are more than 4 colours per line in quite a few places (vertical colour splits). In several places I'm also using dithered colours but inverting the dither pattern at 50hz which disguises the dither. For example the rainbow colours at the top of the screen, and the entire background of the bonus screen. The flashing GAME OVER letters do this too.

The title page is quite complicated and ruptured in a couple of places; the top part of the screen is double-buffered, the bottom part of the screen is single buffered, and the title part itself is a six-buffered animation (animated in hardware). The colours on the title are interlaced, and the interlacing pattern also alternates at 50hz so you get the impression of more than 4 colours per line. I was quite curious as to how this was going to look and it turned out to be one of the more successful special effects I think.

For speed, I use two screen buffers and a third "clean" buffer to clear the sprites away. Many of the sprites are "compiled", ie hard-coded, and some like the P ball use self-modifying code on a hard-coded sprite to get all the different colours. Updates to the score panel are buffered and prioritised, so it doesn't try to update your score and increase your power meter on the same frame as you collect a bomb for instance, but does them one after another. It helps.

One effect which I was quite pleased with which is fairly subtle is the effect on the player when you are powered up; the arcade game cycles the player's colour palette and I can't do that so I wasn't sure what to do. In the end the player's sprite is ORed against an animated mask pattern and that did the trick nicely.

Title: Re: Bomb Jack remake
Post by: dodogildo on 07:30, 18 November 23
Excellent job. Thanks for describing it in details. Would sure help and encourage emerging authors/creators as well. A+++++
Title: Re: Bomb Jack remake
Post by: FruityFrank on 08:04, 18 November 23
Pure magic! can't wait to play. Many thanks for the hard work and many hours you invested here!!
Title: Re: Bomb Jack remake
Post by: BSC on 11:44, 18 November 23
Quote from: Anthony Flack on 05:57, 18 November 23That's a broad question, but there's quite a few interesting little touches in there I could talk about. Problems that I
found fun ways to solve.
Thanks for the insights, now you made me even more curious ..

Sounds like all your tricks and solutions would convert nicely into a series of explanatory videos on YouTube :)

Title: Re: Bomb Jack remake
Post by: BSC on 12:04, 18 November 23
Quote from: Anthony Flack on 05:57, 18 November 23There are more than 4 colours per line in quite a few places (vertical colour splits). In several places I'm also using dithered colours but inverting the dither pattern at 50hz which disguises the dither. For example the rainbow colours at the top of the screen, and the entire background of the bonus screen. The flashing GAME OVER letters do this too.
Regarding dithering and colors, did you use inks 0, 2, 15 and 25 for the game area in level 1? At least it looks like it. I made a quick experiment, see screenshot. I think dithering in Mode 1 is quite useful.

edit: I changed my guess from ink 11 to 2 and replaced the screenshot.
Title: Re: Bomb Jack remake
Post by: Anthony Flack on 21:43, 18 November 23
You were right the first time, it's ink 11 in stage 1.
Title: Re: Bomb Jack remake
Post by: CyrilAmstrad on 15:02, 08 December 23
Great work ! WIP on good way :)
Powered by SMFPacks Menu Editor Mod