Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
Rock n' Bolt Enhanced   [2024]

Rock n' Bolt Enhanced Released by :
Extend [web]

Release Date :
5 February 2024

Type :
C64 Game

User rating:**********  10/10 (20 votes)   See votestatistics
**********  10/10 (9 votes) - Public votes only.

Credits :
Code .... Grue of Beyond Force, Extend, Kasettilamerit
Graphics .... Trurl of Extend
Bug-Fix .... Grue of Beyond Force, Extend, Kasettilamerit
Test .... Grue of Beyond Force, Extend, Kasettilamerit
  Trurl of Extend

Download :

Look for downloads on external sites:
 Pokefinder.org


Summary
Submitted by Grue on 5 February 2024
Rock 'N Bolt
Old classic game, but tiresome to play for longer when levels get more complicated. I always wanted to have an option to continue off from the level I earlier reached so I decided to take a look at it.
First I was checking available versions and noticed that there was a crack from ESI stating that Rock 'N Bolt had a new version, they called it V2. I decided to download all the cracks and noticed that the game had indeed 2 versions with slight changes in the code.
So I took this "V2" version and started to reverse engineer the code in Ghidra. Later when I had "enough" basic information about it, I extracted the game binary with the vice and imported it into 6502Bench and started to make source code for the game.
It took ages and most of the pain in converting the game into relocatable source code was the music routine, which included new addresses for some of the music data in the music data part itself. But in the end, I managed to make the sources for the game.
Happily also Trurl / Extend was interested in this project and he suggested that we should try to convert the prettier sprites from the Colecovision version and import them into this new c64 version. Trurl went into it and supplied me with Spriteset converted from The Colecovision. The new sprites are multicolor with a hires layer. 100% clones would've taken 6 hires sprites so they are not exactly like on Colecovision but close enough. The original game used just multicolor ones and the hero looked like a monkey to me. There were 2 sprites free in the original game, so it was doable in the easiest way, no sprite multiplexing needed. When the hero of the game was updated in the new form, new problems appeared. There were now 6 sprites instead of just 4 when the elevator was rising up at the end of the level. The game changed the background color on some lines and those started to jitter like hell when 6 sprites started to steal cycles. In the end, Trurl came up with the implementation to hide the jitter by using bitmap bytes, I didn't know how but praise Trurl for being such persistent in these matters! Also, I don't have access currently to real C128 for testing and Vice x128 is useless for debugging glitching caused by 2Mhz mode. Trurl made extensive testing so we could get rid of all the glitches my code changes caused on the screen. Colecovision version also had more sprites than the C64 version, which are also imported in.

Level progress is saved at the end of each level before the elevator rises up. But only if the game is played in the time mode. It doesn't matter how tight the time limit is, it just needs to be on.
When starting a new game, select the MAX option in the level selection to continue from where you got it last time.
I also wanted the hero to rise higher in the end elevator so the border is opened at the end of the level.
I also implemented 2Mhz mode in the border area for the C128 and other speeders that enable speed increase when $d030 is used. I'm not 100% sure if it's needed, the game is quite snappy as it is, but the music routine is very slow from time to time so it sure can cause screen update glitches when the beam racing in the game code is lost.

So here we are, a new enhanced edition of Rock 'N Bolt.


Changes that I remember making.

- Splitting source code into smaller more easy to manage pieces
- More sensible memory area usage without large empty gaps, making room for future improvements.
- Better random routine from codebase64, the original routine was quite poor with only tens of different values until it started to repeat itself.
- While testing I got at least one level that couldn't be finished due to bad placement of elements.
- Was the original random routine rigged to work with the level generation?
- Improved random number generator is still used, you can restart the level and it's generated with a different seed.
- Code cleanups, removed "tons of" unused code and some leftovers like sprite color changes which weren't used.
- Opening borders to make the hero rise up to the border area
- Enable $d030 in the border area and blank screen code to speed up the game with c128 or other d030-activated CPU speeders.
- Change the $d015 writes also to memory so they can be restored at irq
- Implemented option to choose MAX player at the level selection menu.
- Save the MAX level the player has got into, if played in timed mode
- The player now can choose to start from the level achieved earlier.
- Lots of hair-pulling with real c128 testing, Trurl, you're awesome!
- x128 is an almost useless piece of crap that comes into making c64 games to use $d030 speeding.
- too many fixes with GFX glitches to list here.
- Reordered sprites, elevator from sprite 3/4 to 6/7 as
- "Bitmap Beauty" sprite changed from sprite 2 to sprite 4
- Changed Sprite bits so sprites 0 and 1 are hires and the rest multicolor
- Sprite 0 and 1 are now hires layer (topmost) and sprites 2 and 3 are multicolor.
- Reorganized sprites in the data in a more usable way, first 4 hires heads, then 4 mc heads,
hires animations for running and then MC animations.
- Adjusting code to use new sprite pointer values
- a lot of debugging here, a bit too hc to go into details
- Animation frames work, but strangely our hero runs head in the wrong direction etc bugs.
- Jumping triggers sprite pointer updates I missed earlier, fixed.
- Adjusting sprite x-coord hi-bits to use 4 player sprites instead of just 2
An annoying bug appeared on the low border, very mysterious but in the end it was caused by the sprite DMA and 6 sprites on the same line.
- Took me way too long to realise and patch around it.
- After removing my debug code some bugs reappeared at the upper border
- turning extra sprite colors black got rid of it, I fear that c128 testing will bring it back.
- Standing pose after 20 idle frames if controls are not used
- Tuned that into 8 frames which seems to be perfect
- Fixed sprite orientation issues
- Fixed MAX level and MAX timer options
- The level counter display now wraps around at 99, you can advance levels normally.
display just misses a digit for the hundreds.
The last of the C128-specific glitches gone
- You can now use Joystick in either port to play.
- Trurl invented a nice bitmap modification to hide brown $d021 color change jittering when sprites moved over it
- Final touches, getting rid of gray dot in the border area while setting the screen color the first and only time
- Reminder: Do not enable screen (d011) while 2Mhz is on, it causes trash on the screen on the first frame even if you enable it in the border area.
Search CSDb
Advanced
Navigate
Prev - Random - Next
Detailed Info
· Summaries (1)
· User Comments (12)
· Production Notes (1)
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
Forum
· Discuss this release
Support CSDb
Help keep CSDb running:



Funding status:




About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.094 sec.