Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - [Coding competition 2024] Bomb Jack Remake by eruiz00

Reply to topic

Rate this entry!

1 (Terrible) 0% 0%
2 0% 0%
3 0% 0%
4 0% 0%
5 4% 4%
6 0% 0%
7 25% 25%
8 29% 29%
9 29% 29%
10 (Excellent) 12% 12%
This poll has expired.
Author Message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
[Coding competition 2024] Bomb Jack Remake by eruiz00
Post Posted: Wed Mar 27, 2024 11:52 am
Last edited by Maxim on Tue Apr 02, 2024 9:14 am; edited 2 times in total
https://www.smspower.org/Homebrew/BombJackRemake-SMS



Quote
The arcade legendary classic now in your console!!!
Jack is a tiny but explosive character whose dynamism will take your breath away!
From platform to platform he is trying to light the bombs which will bring him a lot of points, superbonuses and lives.
But this won’t be easy. His enemies are numerous and they may transform astoundingly in order to be better able to catch him.
A captivating challenge for everyone!
All the stages and features from the original.
Fast and furious action, not for the faint of hearth!
Gently increasing in difficulty, changing the challenge in a smooth manner.
  View user's profile Send private message Visit poster's website
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
A little video from a bombjack expert xD
Post Posted: Wed Mar 27, 2024 6:57 pm
  View user's profile Send private message
  • Joined: 23 Jan 2010
  • Posts: 439
Reply with quote
Post Posted: Thu Mar 28, 2024 10:50 am
Is strange that game now have a vertical scrolling and not total gameplay screen.Moreover, the hud stay hidden when the player fall.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3828
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Thu Mar 28, 2024 4:01 pm
I am playing this game (on Emulicious) since a few minutes and I couldn't avoid noticing that sometimes the Z80 CPU usage spikes at 100% (yes, I always play with the debugger open LOL!)
It seems to happen when I pick up a bomb.
I know that you need to update 4 tiles of the background to remove a bomb, and that it's not a very quick operation, but I wonder what makes it so slow...

edit: oh, it's because of the update of the score?
  View user's profile Send private message Visit poster's website
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
Post Posted: Thu Mar 28, 2024 4:37 pm
Ummmm... When you get a bomb the Game has to do 4 things:
1.Replace the titles for the without bomb ones.
2.Update the score, in the on vram screen tilemap, if needed (visible).
3.Update the score, in the ram tilemap, so appear updated when scrolling.
4.Do the rest of things (check for Next bomb, check if has to finish the stage, etc)

I splitted these 4 things in the 4 frames following the bomb-player intersection....

If I had to choose one, I think the long math (the score is a 32bits long) and having to repaint It in screen (6 divisions by 10, to get the digits) are the culprits here.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3828
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Thu Mar 28, 2024 5:10 pm
eruiz00 wrote
If I had to choose one, I think the long math (the score is a 32bits long) and having to repaint It in screen (6 divisions by 10, to get the digits) are the culprits here.


I think this is probably it. Try to profile that using Emulicious and if indeed it's that, you probably want to switch to using packed BCD - you can fit up to 8 digits in 4 bytes, but if you need only 6 you can save some time.
  View user's profile Send private message Visit poster's website
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
Post Posted: Thu Mar 28, 2024 5:50 pm
Ummmm... And the bcd math? (Mainly sums)...

Could not be even better than using bcd to use a unsigned int?????
As all scores are multipliers of 10... I can use an unsigned int instead of a long and get Up to 655350 points... Which seems enough.
  View user's profile Send private message
  • Joined: 01 Feb 2014
  • Posts: 878
Reply with quote
Post Posted: Thu Mar 28, 2024 6:10 pm
Do you do multiplications for the score too? If you're only doing additions, you can use Jonathan Cauldwell's method of storing and calculating score: https://chuntey.wordpress.com/tag/high-scores/

Sure, it seems excessive to use one full byte per digit, but then its only a few bytes in total and updating the score is very fast.

I’ve used this method in all my games without any problems.
  View user's profile Send private message
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
Post Posted: Thu Mar 28, 2024 7:52 pm
Thats great!!!

I Will try to implement using the assembly itself.. but if I cant, even in ansi c, that simple idea Will work way better than the massive divisions...
(Although... Now... In XXI century... Think that all the colleges in the world.... the humanity in general... Is prepared to switch from decimal to hexadecimal system as default 😆
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3828
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Thu Mar 28, 2024 7:57 pm
You can try the method I explained here, which uses packed BCD (two digits per byte)
  View user's profile Send private message Visit poster's website
  • Joined: 06 Mar 2022
  • Posts: 671
  • Location: London, UK
Reply with quote
Post Posted: Fri Mar 29, 2024 2:14 pm
Great stuff @eruiz, very fun indeed!

I don't remember this game being so hard when I used to play it on my Spectrum, but I think I've probably just got softer in my old age :)

The solution to fitting the map on the screen by vertical scrolling is really interesting - was that your idea or did you see that on some other system?

EDIT:
PS. great cover art :)
PPS. I had a question from this and also your pinball game, maybe a naive question, but is it necessary to have two versions of the game for sram and nosram?
  View user's profile Send private message Visit poster's website
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
Post Posted: Fri Mar 29, 2024 8:16 pm
Hi, Will!!!

Let's see... In the pinball rom, if you have got the highscores in the three tables, then the game will let you to play bombjack. You can, also, use the konami code in the title screen, and enter to bombjack directly.

Why bomb jack??? when I finished the pinball game, though that bombjack was doable using the same scrolled engine used for the pinballs, in fact, the engine is the same, most of the in-scene rendering and tilemap maintaining code is the same for both games.

Moreover, In Electronic Dreams I felt that the engine needed to have tilemap based enemies, not only sprite based ones, and this is an first aproximation for such functionality.

For the sram, I build two roms because I have a little unit with a #define to use sram or ram, although I figure that could merge both features with the detection method which sverx & others have commented in the forum.


Do you find the game difficult??? I love it, it makes me cry from level 32.... xD
  View user's profile Send private message
  • Joined: 01 Feb 2014
  • Posts: 878
Reply with quote
Post Posted: Sun Mar 31, 2024 3:59 pm
I’m not familiar enough with the original to compare how closely they match. I used to play Bomb Jack II on the C64 a lot, but that plays very differently.

However, this us very polished. It’s a difficult game, but it controls flawlessly and it looks and sounds great. Well done.
  View user's profile Send private message
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8652
  • Location: Paris, France
Reply with quote
Post Posted: Wed Apr 03, 2024 5:19 am
I am a really big fan of Bomb Jack. Tho it is me or is that version noticeably faster? Stopping your jump or hovering by pressing the button repeatedly seems more difficult to execute.
  View user's profile Send private message Visit poster's website
  • Joined: 25 Jul 2007
  • Posts: 732
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Wed Apr 03, 2024 10:37 am
Ah nostalgia! Many coins were lost to the arcades back in the day playing this as I sipped my cherry coke while wearing roller skates. Great adaptation, well done!
  View user's profile Send private message
  • Joined: 28 Jan 2017
  • Posts: 556
  • Location: Málaga, Spain
Reply with quote
Post Posted: Wed Apr 03, 2024 11:19 am
The question is this Game was going to be the minigame of crazy pinball, which was going to be the minigame of an unreleased 50% done project.... I did not take the effort I would put in the main Game but.....
Lets see... The game is fast, very fast, but I like It as fast as It is... See my video playing 50 levels. I play the game with keyboard (using only the cursors) and I found It very entertaining. Maybe I should put a config to be played at lower rate... I Will check It.
  View user's profile Send private message
  • Joined: 12 Oct 2015
  • Posts: 194
  • Location: Ireland
Reply with quote
Post Posted: Wed Apr 03, 2024 8:54 pm
Hi eruiz00 - this is such a cool unique idea - to port Bomb Jack to our beloved Sega Master System! Awesome job. I remember playing BJ in the arcades back in the day - each level was screen-dimensioned w/o vertical scrolling :) Nice idea to re-use your engine but unfortunately for this game it is easy to die when an enemy "pops" up when you fall + screen scrolls.
BTW: I don't think the physics were so fast on the jump launch on the original. Also, sorry to nitpick but I found a small bug when you modify some options then view records then back - the options "reset" - I think it would be cool to retain also after Game Over [or have unlimited continues]
Finally, really cool idea to use SRAM to store a High Score TABLE - I've used the devkitSMS SRAM API many times to persist various data including Hi Score but didn't think to persist a Hi Score table - despite this was a staple on video games arcades :)
  View user's profile Send private message Visit poster's website
  • Joined: 21 Jan 2023
  • Posts: 56
Reply with quote
Post Posted: Wed Apr 03, 2024 9:45 pm
Last edited by Z80ASMprogrammer2022 on Sat Apr 06, 2024 6:23 pm; edited 6 times in total
I used to play this loads too back in the day too.

" I don't think the physics were so fast on the jump launch on the original. "

Agreed, certainly the physics isn't quite the same as the original arcade game. It seems non-trivial to recreate the original physics for making a faithful clone. In addition to the differences compared to the original mentioned by others above there is another difference -the AI. The AI in this SMS version is different from the arcade original-this is easy to verify.
On your first game and life after turning on an arcade machine or sega master system do the following. Just run to the bottom left corner as quick as possible on some level (for example on level 1) then do not press any keys and wait until you die. You will see that the enemy patterns (differ much) at death , and the time of death, are different to the arcade version. The enemies in eruiz00's version seem to kill you quicker or find a more direct path to you compared to the arcade original. The sg1000 or ZX spectrum version plays more like the arcade version compared to eruiz00's version-maybe that expected as the developers may have had the exact non-public/secret AI enemy movement/algorithms from Tehkan.But euirz00s version is graphically better than the SG snd ZX spectrum version. But for a homebrew conversion it is an excellent game.


"Is strange that game now have a vertical scrolling and not total gameplay screen"

"each level was screen-dimensioned w/o vertical scrolling :) Nice idea to re-use your engine but unfortunately for this game it is easy to die when an enemy "pops" up when you fall + screen scrolls."

I think such dimensioning made up the core identity (or part of the heart) of the original Bombjack game. The arcade original does not scroll, the C64 and ZX spectrum versions do not scroll and so on.

But for a homebrew conversion it is an excellent game.
  View user's profile Send private message
  • Joined: 28 Mar 2022
  • Posts: 37
  • Location: UK
Reply with quote
Post Posted: Fri Apr 05, 2024 4:10 pm
I'd just like to apologise for how often I completely butcher your name during the video :D

I love this though, I actually didn't think it was too fast but I'm always in favour of difficulty options.
  View user's profile Send private message Visit poster's website
  • Joined: 06 Mar 2022
  • Posts: 671
  • Location: London, UK
Reply with quote
Post Posted: Fri Apr 05, 2024 4:51 pm
Yesterzine wrote
I love this though, I actually didn't think it was too fast but I'm always in favour of difficulty options.

You are playing on a PAL system though right?
Life's so much easier at 50Hz :-p
  View user's profile Send private message Visit poster's website
  • Joined: 23 Jan 2010
  • Posts: 439
Reply with quote
Post Posted: Fri Apr 05, 2024 8:09 pm
Hi eruiz00. Something strange happening i start a new game with 9 lives and from stage 31. I play until stage 48 and game over. I power off my console. After i decide play again from 46 and seems to me that stages repeat like as i was in 31 again. You could confirm if is my mistake?
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 3828
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue Apr 16, 2024 11:50 am
Playing this again - I remember loving it in the arcades when I was a child (well, I must have been 11 or 12 probably - still a child, right?).

Lovely game, and very lovely port. Congratulations.

Anyway, I wonder if it would also be possible to have a separate version that uses the 256×240 pixels resolution (yeah, I know, on PAL SMS IIs only) ... would the game screen fit entirely or would it have to scroll anyway?
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!