ROCKFORD REMAKE PROJECT


(c) Aleksi Sahala 2006 (updated 4.11.2009, 25.6.2018)


1. THE ORIGINAL GAME

Rockford was a Boulder Dash clone published by Mastertronic ltd. in 1987. The game included
20 levels divided into five difficulty levels each using it's own graphical theme: hunter, 
cook, cowboy, space and doctor.

In addition to five themes, which didn't exist in Boulder Dash, Rockford also included some 
interesting new features as worms, taps and magic lamps, quicksand and time/gold bonus counters. 
Rockford also had a limited number of lifes. 

   Worms: Evil worms transmute gold into rocks, and rocks into non-gold producing enemies. Good 
          worms do the opposite.

   Taps/magic lamps: Taps produce acid, magic lamps produce fire. These elements explode when 
              they touch each other; gold dropped on fire turns into a gold producing enemy.

   Quicksand: Quicksand lets rocks and gold drop through it in random intervals.
   
   Bonus counters: Counters give player random number of extra time or gold when collected.

Rockford's level design also differed a bit from original Boulder Dash. The levels were more action
based and arcadish, needing good reflexes and timing to complete (even more so, because Rockford 
runned at double speed compared to BD).

Rockford included also 20 additional levels which were unplayable. They were designed for a future
add-on which as long as I know, was never released. The levels were about to use five additional
graphic sets, Scuba, Miner, Player, Luck and Music. See section 3. for info how to extract these
levels.


      
                            Screenshots of the Space and Cook themes.


1.5 INFO ABOUT THE HIDDEN STUFF (NEW 25.6.2018)

Thanks to Michael Eberlein's discovery, the graphics files are encoded as planar EGA. 
By using the information provided by Michael and ModdingWiki, I was able to extract 
the tilesets from the game. Interestingly, the tilesets contain some kind of placeholders
for the player characters of the missing themes. The files seem to use standard EGA 
palette, which needs to be replaced by the corresponding palette defined in ROCKFORD.EXE to 
display them correctly. The placeholder sprites are not included in SPACE.FIL.

	

The sprites are most likely:

1. Scuba? (looks like an atmospheric diving suit)
2. Hunter
3. Cook
4. Cowboy / The guy in the title screen (his name is "Rockford")
5. Player? (although this could be also a scuba gear)
6. Music (looks like an orchestral conductor)
7. Space
8. Miner
9. Luck (a clown/joker or some kind of leprechaun)
10. Body

Unfortunately, when the standard EGA palette is replaced by the palettes 
defined in ROCKFORD.EXE, all sprites have seemingly incorrect colors.


1.6 PALETTES FOR EACH THEME

	

No-one knows how the collectibles mentioned in ROCKFORD.EXE should be connected with
the missing themes. The collectibles are mentioned in the following order in 7A2-7EF:

	GOLD	(hunter)	GEMS	(maybe miner or the Rockford placeholder guy)
	APPLES	(cook)		CUPS	(maybe player)
	COINS	(cowboy)	NOTES	(music)
	SUNS	(space)		CLUBS	(maybe luck, refers to suit in a card deck?)
	HEARTS	(body)		JEWELS	(perhaps scuba)

As the standard collectibles are mentioned in order, it would be logical to assume
that also the collectibles for the missing themes are mentioned in order. Thus,
it is possible that the palette suggested for the "leprechaun" (LUCK) sprite is incorrect.

Anyway, as we now have some clues about the player character sprites, we could maybe someday
reconstruct the missing graphics even partly.


2. REMAKE

I released the first beta version of the remake in June 2008, and the version 1.0 in 2nd December 2008. 
Remake runs on Rocks'n'Diamonds engine version 3.2.6. The remake can be downloaded from here.


In version 1.0:

 - All five graphical themes have been created.  
 - All original 20 levels have been exported
 - All hidden 20 levels have been exported
 - All Rockford's special features (worms, taps, etc.) have been scripted and they work ok.


To do someday:

 - Fix worm's 180 degree turning (if such scripting is possible)
 - Fix fire and acid behaviour in horizontal movement.
 - Autoset game speed to fast (if such scripting is possible)
 - Set limited number of lives. Now player may try levels as many times as (s)he wants.
 - Merge graphic sets, so that each level set would automatically use correct gfx.
 - Change panel location to top.
 - Reconstruct the five never released graphic sets (I've extracted their palettes from the .EXE).   

     

              COMPARISON: Original Rockford on the left, Remake on the right.


2.1. HOW TO INSTALL AND PLAY THE REMAKE

 1. Install the newest version of the Rocks'n'Diamonds.
 2. Download rockford_v1.zip and extract it into your Rocks'n'Diamonds subdirectory /levels.
    For example D:/games/RnD/levels/Rockford_v1.
 3. Run Rocks'n'Diamonds. 
    Go to setup -> Custom artworks and select the Rockford theme and sounds.
    Remember to check override original graphics box.
 4. Load levels by clicking levelset and choosing Rockford v1.0.


3. GENERAL FILE INFO (ORIGINAL ROCKFORD)

 Rockford files and their functions:

  ROCKFORD.EXE                The game
  CELLMAPS.BIN                Levels
 
  TITLE.FIL                   Title graphics, including credits and info text.
  TITLEANI.FIL                Moving graphical parts of the Title screen.
  MENU.FIL                    Menu graphics.
  
  HUNTER.*                    Theme 1
  COOK.*                      Theme 2
  COWBOY.*                    Theme 3
  SPACE.*                     Theme 4
  BODY.*                      Theme 5	

  *.CAR                       Animations (Planar EGA)
  *.FIL                       Sprites, tiles, objects (Planar EGA)

 Missing files:
 
  These files referred in ROCKFORD.EXE are possibly some unfinished part of the game. 

  SCUBA.*                     Theme 6        
  LUCK.*                      Theme 7                          
  MUSIC.*                     Theme 8  
  PLAYER.*                    Theme 9 
  MINER.*                     Theme 10



3.1. ROCKFORD.EXE

  Palettes:

     The first value is the background color. Each palette is separated by 00.

     0929-0938         title palette 
     093A-0949         menu palette
     094A-0959         hunter palette
     095b-096A         theme6 palette
     096C-097B         cook palette
     097D-098C         theme7 palette
     098E-099D         cowboy palette
     099F-09AE         theme8 palette
     09B0-09BF         space palette
     09C1-09D0         theme9 palette
     09D2-09E1         body palette
     09E3-09F2         theme10 palette
  
     0B98              Toggle dying on / off. 02 = on, 01 = off
                       (Can sometimes create buggy invisible blocks)
			  Press R to make coins appear!

     0D1E -> 0D6D      Money to be collected, in order (theme number):
                       1, 6, 2, 7, 3, 8, 4, 9, 5, 10

                         28 00 28 00 50 00 96 00        Hunter
                         14 00 41 00 82 00 37 00        6 
                         00 00 00 00 00 00 2D 00        Cook
                         14 00 23 00 1E 00 21 00        7
                         1E 00 7D 00 16 00 37 00        Cowboy
                         32 00 1E 00 1E 00 00 00        8
                         00 00 00 00 00 00 3C 00        Space
                         0F 00 0B 00 1E 00 00 00        9
                         00 00 00 00 4B 00 12 00        Body
                         10 00 18 00 39 00 01 00        10

     0EFE -> 0F4D      Level times. In same order as above.         
    
                         6E 00 6E 00 82 00 6E 00        Hunter
                         50 00 8C 00 64 00 6E 00        6
                         6E 00 6E 00 5A 00 82 00        Cook
                         5A 00 64 00 6E 00 64 00        7
                         6E 00 73 00 78 00 73 00        Cowboy
                         82 00 5A 00 6E 00 6E 00        8
                         6E 00 6E 00 8C 00 6E 00        Space
                         82 00 82 00 8C 00 91 00        9
                         82 00 A0 00 AA 00 8C 00        Body
                         8C 00 8C 00 6E 00 B4 00        10

 

3.2. CELLMAPS.BIN                           


  Maps are in order (by theme number) 1, 6, 2, 7, 3, 8, 4, 9, 5, 10, see my formatted file in cellmaps.html
  (order of levels changed). Hidden maps can be played by removing theme 1 from CELLMAPS.BIN. Then maps for theme 6 
  are loaded for hunter, 7 for cook etc. Level times and gold amounts must be changed in ROCKFORD.EXE
  to make the new levels possible to complete.			
   
   
    hex    ascii           tile
 
    00     .               empty space
    01     ☺               diggable dirt
    02     ☻               indestructible wall
    03     ♥               destructible wall
    04     ♦               magic wall
    08     ◘               growing wall
    0C     ♀               quicksand
    10     ►               amoeba
    20                     player start location
    28     (               boulder

                           "butterflies" (enemies producing gold when hit by a stone)    
    2C     ,               enemy - left                
    2E     .               enemy - up
    2f                     enemy - right
    30     0               enemy - down
                         
                           "fireflies" (enemies not producing gold when hit by a stone)
    34     4               enemy - up
    35     5               enemy - left
    36     6               enemy - down
    37     7               enemy - right

    38     8               fire tap
    70     p               evil worm
    74     t               exit   
    78     x               gold bonus 
    7C     |               time bonus
    84     ä               good worm               
    88                    gold
    C4     -               acid tap

    
   
  

3.3. *.FIL and *.CAR

  Yet, I haven't been able to crack the *.FIL and *.CAR files. Different hex values seem to
  indicate different pixel formations, where 00 is empty and ff is full colored. Tile shapes are
  clearly recognizable if the file is split into 80 byte long lines. 


4. PLAYING THE HIDDEN LEVELS IN ORIGINAL ROCKFORD
  
   First, you must to change the level times and gold amounts into correct values. Otherwise playing will be 
   impossible, as you may have to collect 80 gold in a level where only 20 gold is available; or you won't have enough
   time to complete the level.

   MAKE A BACK-UP OF YOUR ROCKFORD.EXE!
   
   a) Open ROCKFORD.EXE in a hex editor (I prefer HxD, as it's free and versatile)
   b) Copy hexes from 00000D26 - 00000D6D (These are the amounts of gold to be collected in themes 6, 2, 7, 3, 8, 4, 9, 5, 10)

      (14 00 41 00 82 00 37 00 32 00 23 00 19 00 2D 00
       14 00 23 00 1E 00 21 00 1E 00 7D 00 16 00 37 00
       32 00 1E 00 1E 00 28 00 1A 00 37 00 3C 00 3C 00
       0F 00 0B 00 1E 00 41 00 12 00 46 00 4B 00 12 00
       10 00 18 00 39 00 01 00)

   c) Replace-paste them on offset 00000D1E (do not insert-paste, or the file size will change and the exe will corrupt!)
   
   d) Copy hexes from 00000F06 to 00000F4D and replace-paste them on offset 00000EFE. This will correct the playing times for hidden levels.

       (50 00 8C 00 64 00 6E 00 6E 00 6E 00 5A 00 82 00 
        5A 00 64 00 6E 00 64 00 6E 00 73 00 78 00 73 00
        82 00 5A 00 6E 00 6E 00 6E 00 6E 00 8C 00 6E 00
        82 00 82 00 8C 00 91 00 82 00 A0 00 AA 00 8C 00
        8C 00 8C 00 6E 00 B4 00)

   e) Save the file.


   Next, you must remove the first four levels from the CELLMAPS.BIN

   MAKE A BACK-UP OF YOUR CELLMAPS.BIN!  

   The Difficult way (if you don't use HxD):

    a) Start dos command console and open CELLMAPS.BIN into Dos text editor. I prefer EDIT or QEDIT, as both have 100% ASCII support. 
    b) Split every line from the 41st character, so that each line has only 40 characters (Rockford levels have 40 x 22 tiles).
    c) Continue splitting until you see the first four levels of the game in ASCII format (see a formatted cellmaps.bin)
    d) Delete the first four levels. This will shift the hidden level set 6 into the place of the original set 1; 7 to 2; 8 to 3 and so on.
    e) Save the CELLMAPS.BIN
    f) If you did everything right, the file size of CELLMAPS.BIN should now be 31 682 bytes instead of the original 35 200 bytes.

  
   The easy way with HxD

    a) Open CELLMAPS.BIN in Hxd
    b) Set bytes per line to 40
    c) Set Endoding into ASCII (you should now regocnize the level borders easily)
    d) Remove first four levels (All data before the line 0000DC0).
    e) Save file

   Voilà!