There is no waranty for the information in this document, though it should be fairly accurate. It mainly covers the C64 internals of Boulder Dash. The Atari 400 and Plus/4 versions are almost identical. Other systems usually feature a completely different engine.
The latest version of this document can be found at www.gratissaugen.de/erbsen
All numbers marked with $ as well as memory adresses are given in hexadecimal.
Engine abbreviation:
BD1: Boulder Dash 1
BD2: Boulder Dash 2
PLCK: Peter Liepa Construction Kit
1stB: First Boulder Dash (aka. New Boulder Dash)
CrDr: Crazy Dream
CrLi: Crazy Light
The start signal is another frequently used term in this
document. It describes the point in time the cave timer starts. It is accompanied
with a crack sound and the status bar changes.
Micro Fun release | First Star Software rerelease | Electronic Arts release (Super Boulderdash) | |
Comment: | This release has no
logo under the title screen.
Boulder Dash 3 is based on this version. |
This release features the First Star Software logo under the title screen. | This release has an additional EA logo on the left of the First Star Software logo. |
Program: | copy protection: $8cf2-$8d8f
game $5000-$8b86 (caves can be stored beyond that point) |
$5000-$9001 | $5000-$8fc0 (without intro) |
Start: | copy protection: $8cf2;
sys36082
game: $8ab3; sys35507 |
$8e69; sys36457 | intro: $438a; sys17290
game: $8e50; sys36432 |
Title screen: | $66e8-$6acf | ||
Bottom lines after F1 hit: | $6b7c-$6b8f, $6b90-$6ba3, $6c68-$6c9b | ||
Cavepointers | specified relative to $582e, Lo/Hi-Byte: $5806-$582d, intermission at the end. | specified relative to $581e, Lo/Hi-Byte: $57f6-$581d, intermission at the end. | |
Animation switch table: | $8379-$838c | $8740-$8753 | $8744-$8757 |
The animation switch
table has one byte per entry with the following meanings:
bit0 = animate Fireflies
bit1 = animate Butterflies
bit2 = animate Amoebas
Offset Description
------ -----------
$00 unused. Though it usually reads the
cave number
$01 Magic Wall milling time, also max.
Amoeba time at slow growth
$02 Initial Diamond value
$03 Extra Diamond value
$04 Initial randomiser seed value for difficulty
level 1
$05 Initial randomiser seed value for difficulty
level 2
$06 Initial randomiser seed value for difficulty
level 3
$07 Initial randomiser seed value for difficulty
level 4
$08 Initial randomiser seed value for difficulty
level 5
$09 Diamonds needed on difficulty level
1
$0A Diamonds needed on difficulty level
2
$0B Diamonds needed on difficulty level
3
$0C Diamonds needed on difficulty level
4
$0D Diamonds needed on difficulty level
5
$0E Cave time for difficulty level 1
$0F Cave time for difficulty level 2
$10 Cave time for difficulty level 3
$11 Cave time for difficulty level 4
$12 Cave time for difficulty level 5
$13 Colour 1
$14 Colour 2
$15 Colour 3
$16 unused, general purpose in some fangames
$17 unused, general purpose in some fangames
$18 Random element number 1
$19 Random element number 2
$1A Random element number 3
$1B Random element number 4
$1C Probability of element 1
$1D Probability of element 2
$1E Probability of element 3
$1F Probability of element 4
$20 onwards: cave data, deliminated with $FF.
The cave data (beginning
at offset $20) is broken into variable sized records where the first byte
contains the object to store (low 6 bits only) and the kind of structure
to create (upper 2 bits). Depending on the structure to create, there are
2, 4 or 5 bytes of parameters that follow.
A cave can have up to 255 byte. Valid positions are column=0..39
and row=2..23 whereas 0;2 is the top left corner on the border.
The four structure codes are:
Offset Description
------ -----------
$00 Magic Wall milling time, also max.
Amoeba time at slow growth
$01 Initial Diamond value
$02 Extra Diamond value
$03 Cave time for difficulty level 1
$04 Cave time for difficulty level 2
$05 Cave time for difficulty level 3
$06 Cave time for difficulty level 4
$07 Cave time for difficulty level 5
$08 Diamonds needed on difficulty level
1
$09 Diamonds needed on difficulty level
2
$0A Diamonds needed on difficulty level
3
$0B Diamonds needed on difficulty level
4
$0C Diamonds needed on difficulty level
5
$0D Initial randomiser seed value for difficulty
level 1
$0E Initial randomiser seed value for difficulty
level 2
$0F Initial randomiser seed value for difficulty
level 3
$10 Initial randomiser seed value for difficulty
level 4
$11 Initial randomiser seed value for difficulty
level 5
$12 Probability of element 1
$13 Probability of element 2
$14 Probability of element 3
$15 Probability of element 4
$16 Random element number 1
$17 Random element number 2
$18 Random element number 3
$19 Random element number 4
$1A onwards: cave data, deliminated with $FF followed by the animation
switch:
bit0 = animate Fireflies
bit1 = animate Butterflies
bit2 = animate Amoebas
The cave data (beginning at offset $1A) is broken into variable
sized records where the first byte is the structure code. Depending on
the structure to create, there are 3, 5, 6 or 8 bytes of parameters that
follow.
A cave can have up to 250 byte. Valid positions are column=0..39
and row=0..21 whereas 0;0 is the top left corner on the border.
Rockford extended the engine in order to use maps of an object
and Construction Kit Caves in the Profiboulder series.
The random number generator works exactly like in BD2 and
is also used for the Slime permeability.
The structure codes are:
Construction Kit | Gamemodul disk version | Gamemodul tape version | |
Comments: | The editor can handle both, disks and tapes. | Reads a game-file and then all the caves in it.
After game over, you can press enter to play again or load a different game. The name of the currently loaded game is displayed under the Boulder Dash logo. |
Just reads the caves like they are stored on tape.
After game over, you may choose to play again or load a different caveset. Since no gamefile is used, there is no game name display. |
Start: | $7ef0; sys32497 | Original gamemodul: $5997; sys22935
Softkillerpacker: $5997; sys22935 Knibblepacker v1-v2.x: $27f6; sys10230 Knibblepacker v3 intro: $1cc0; sys7360 Knibblepacker v3 game: $6b00; sys27392 No One Packer beta (has ASCII-Intro): $0b00; sys2816 No One Packer 2.x: $27a0; sys10144 No One Packer 5.x: $6700; sys26368 Rockford packer with highscores: $67a0; sys26528 |
$59b9; sys22969 |
Program: | $2800-$8187 | $2800-$7000 (without the caves)
in addition to that: Knibblepacker v2.x: $2700-$b500 No One Packer beta: $0b00-$0c20 for intro text No One Packer v2.x: $27a0-$27ff, $9a00-$9de8 |
$2800-$6f00 (without the caves) |
Caves: | $be00-$bff0 generated after a save action. | Beginning with $7000 in
steps of $0200 Bytes for each cave. Max. 48 (Atari 60) caves.
At the beginning of the first unused cave slot, there are 16 $00 bytes, which has to be saved with the game, except when all slots are used. |
|
Selection Table: | $5e8b: 13 byte per cave
|
Format of a C64 BoulderDash Construction Kit file:
Offset Bytes Range Description
------ ----- ----- -----------
0000 0013
unused. Usually filled with $44 (code for titanium wall), but don't count
on that.
0014 01b7 0- F 840 nybbles
of cave description (without the bottom border)
01b8 0001 00-14 Cave delay
(00 = fast, $14 = slow)
01ba 0001 00-FF Cave time in
seconds (1 second = 60 TV fields)
01bc 0001 00-63 Diamonds needed
01be 0001 00-63 Diamond value
01c0 0001 00-63 Bonus Diamond
value
01c2 0001 00-08 Slime permeability
(is translated to a bit pattern by the engine)
01c4 0001 00-FF Amoeba time
at slow growth
01c6 0001 00-FF Magic Wall
milling time
01da 0001 00-01 0=cave, >0=intermission
01db 0001 00-0F Border color
01dd 0001 00-0F Background
color
01df 0001 00-0F Foreground
color 1
01e1 0001 00-0F Foreground
color 2
01e3 0001 00-07 Foreground
color 3
In Diego effect enabled engines, there are:
01e5 0003
For detection. If there are diego effects, these are $20 $90 $46
01ea 0001 00-3F A Bouncing
Boulder converts to this element
01eb 0001 00-3F A Falling Diamonds
converts to this element
01ec 0001 00-3F An Explosion
converts to this element
01ed 0001
Pointer to Dirt graphic
01ee 0001
Pointer to Growing Wall graphic
01ef 0001 00-ff Maximum Amoeba
size
Nybble Codes (the High Nybble is drawn first)
0 Boulder
1 Diamond
2 Magic Wall
3 Brick Wall
4 Titanium Wall
5 Growing Wall
6 Mrs. Rockford
7 Dirt
8 Firefly
9 Butterfly
A Amoeba
B Slime
C Hidden Exit
D Visible Exit
E Inbox
F Space
Text character set: $2800-$2bb0 (Some are unused)
Graphics character set: $2bb0-$2db0, $3100-$3900
Title music: $3000-$3100
Original Boulder Dash Logo (Gamemodul, Softkiller packer and Rockford
packer): $3900-$3b00
Title Screen (may include Highscores), as used in most other level
packers: $6000-$63e8
Start: $1fa9 ($695a for the "First Boulder Dash"-games)
Program: $1f00-$c119 (some cave lay inbetween.)
Intro screens may be present at $0c00-$13e8 and will be overwritten
during the game.
Title music: $5e18-$5f18
Title screen: $6000-$63e8
Caves: $7010-$bfbe. Beginning with $7010 in steps of $0400 bytes
for each cave. There are opcodes between some caves. There must be 20 caves
in total.
Size per cave entry: $03ae byte
Name of Highscoresfile: $63f0-$6400
Selection table: $3cd0-$3ce4 (1 byte per cave
Booleans are true if value<>0.
Pattern means, all bits have equal value.
Format of a 1stB cave file (decompressed):
Offset Bytes Range Description
------ ----- ----- -----------
0000 0370
880 byte of cave description (including all borders)
0370 0003 000-999 Cave time in seconds
(1 second = 60 TV fields)
0373 0003 000-999 Diamonds needed
0376 0003 000-999 Bonus Diamond value
0379 0003 000-999 Diamond value
037C 0002 000-999 Amoeba time at slow growth
(MSB first)
037E 0002 000-999 Magic Wall milling time
(MSB first)
0380 0001 00-01 Firefly and
Butterfly direction change automation.
0=off, >0=on
0381 0001 00-FF Firefly and
Butterfly direction change delay.
0381 0001 00-01 Diagonal walking
0=off, >0=on
(Yes, it's used twice and it's a known bug)
0382 0001 pattern Amoeba slow growth probability
0383 0001 pattern Amoeba fast growth probability
0384 0001 00-0F Border color
0385 0001 00-0F Background
color
0386 0001 00-0F Foreground
color 1
0387 0001 00-0F Foreground
color 2
0388 0001 00-07 Foreground
color 3
0389 0001 00-01 0=cave, >0=intermission
038A 0001 00-14 Cave delay
(00 = fast, $14 = slow)
038B 0001 00-FF Slime permeability
038C 0001 00-01 0=normal intermission,
1=scrolling intermission (buggy)
038D 0001
Magic Wall Sound $F0=on, $D0=silent
038E 0001
Growing Wall direction $2E=horizontal, $2F=vertical
038F 0001
Firefly and Butterfly direction $2C=forward, $2D=backwards
0390 0002 000-880 Maximum Amoeba size (MSB
first)
0392 0001 00-7F Extra time
per collected Clock
0393 0001 00-7F Time penalty
0394 0001 00-03 Biter delay
0395 0001 00-01 Magic Wall
activation will convert Amoeba. 0=on, 1=off
0396 0001 00-7F A Bomb Explosion
converts to this element
0397 0001 00-7F An Explosion
converts to this element
0398 0001 00-7F A Bouncing
Boulder converts to this element
0399 0001 00-7F A Diamond Birth
converts to this element
039A 0001 00-7F A Diamond falling
into a Magic Wall converts to this element
039B 0001 00-7F A Bladder has
to touch this element in order to convert
039C 0001 00-7F A Falling Diamond
converts to this element
039D 0001 00-7F Biters eat
this element
039E, 039F 00-7F Two elements penetrating
Slime (adding $03 while doing this)
03A0 0003 string Version "V2.2" or
"2.6". V2.0 did not have this.
03A0 000E string Name of cave using
the internal character codes. This was implemented in V2.2. The Cavepacker
overwrites the Version string while packing the game.
Since V2.1, the construction kit uses a run length compression scheme when saving a cave to disk. The cavepacker decompresses the caves and stores the 20 caves in an uncompressed file.
The cave data (beginning at offset $49) is broken into variable
sized records where the first byte is the structure code. Depending on
the structure to create, there are 3, 5, 6 or 8 bytes of parameters that
follow.
A cave can have up to 1024 byte. Valid positions are column=0..39
and row=0..21 whereas 0;0 is the top left corner on the border.
The random number generator works exactly like in BD2 and
is also used for the Slime permeability.
Three byte values are
BCD encoded numbers. MSB first ($00..$0f).
Booleans are true if value<>0.
Pattern means, all bits have equal value.
Format of a CrDr cave file:
Offset Bytes Range Description
------ ----- ----- -----------
0000 0003 000-999 Cave time in seconds
(1 second = 60 TV fields)
0003 0003 000-999 Diamonds needed
0006 0003 000-999 Bonus Diamond value
0009 0003 000-999 Diamond value
000C 0002 000-999 Amoeba time at slow growth
(MSB first)
000E 0002 000-999 Magic Wall milling time
(MSB first)
0010 0001 00-01 Firefly and
Butterfly direction change automation.
0=off, >0=on
0011 0001 00-FF Firefly and
Butterfly direction change delay.
0012 0001 pattern Amoeba slow growth probability
0013 0001 pattern Amoeba fast growth probability
0014 0001 00-0F Border color
0015 0001 00-0F Background
color
0016 0001 00-0F Foreground
color 1
0017 0001 00-0F Foreground
color 2
0018 0001 00-07 Foreground
color 3
0019 0001 00-01 0=cave, >0=intermission
001A 0001 00-14 Cave delay
(00 = fast, $14 = slow)
001B 0001 00-FF Slime permeability
001C 0001 00-01 0=normal intermission,
1=scrolling intermission (buggy)
001D 0001
Magic Wall Sound $F0=on, $D0=silent
001E 0001
Growing Wall direction $2E=horizontal, $2F=vertical
001F 0001
Firefly and Butterfly direction $2C=forward, $2D=backwards
0020 0002 000-880 Maximum Amoeba size (MSB
first)
0022 0001 00-7F Extra time
per collected Clock
0023 0001 00-7F Time penalty
0024 0001 00-03 Biter delay
0025 0001 00-01 Magic Wall
activation will convert Amoeba. 0=on, 1=off
0026 0001 00-FF A Bomb Explosion
converts to this element
0027 0001 00-FF An Explosion
converts to this element
0028 0001 00-FF A Bouncing
Boulder converts to this element
0029 0001 00-FF A Diamond Birth
converts to this element
002A 0001 00-FF A Diamond falling
into a Magic Wall converts to this element
002B 0001 00-FF A Bladder has
to touch this element in order to convert
002C 0001 00-FF A Falling Diamond
converts to this element
002D 0001 00-FF Biters eat
this element
002E, 002F 00-FF Two elements penetrating
Slime (adding $03 while doing this)
0030 0003 string Version "V4.0".
0034 0001 switches bit 0: Diagonal
walking
bit 1-7: not used
0035 0001 00-FF Delay of gravitation
change
0036 0001 00-FF Time for Pneumatic
Hammer
0037 0001 00-FF Time for hammered
Walls to reappear
0038 0001 00-FF Acid speed
0039 0001 00-FF Acid eats this
element
003a 0001 switches bit 0-1: gravitation
00: up
01: down
10: left
11: right
bit 2: snap Explosions
bit 3-7: not used
003b 0001
Pointer to Growing Wall graphic
003c 0001
Pointer to Dirt graphic
003d 0002
not used
003f 0001 00-01 >0=hammered
Walls will reappear
0040 0001 00-FF Initial randomiser
seed value
0041 0001 00-FF Random element
number 1
0042 0001 00-FF Random element
number 2
0043 0001 00-FF Random element
number 3
0044 0001 00-FF Random element
number 4
0045 0001 00-FF Probability
of element 1
0046 0001 00-FF Probability
of element 2
0047 0001 00-FF Probability
of element 3
0048 0001 00-FF Probability
of element 4
0049 onwards: cave data, deliminated with $FF.
The structure codes are:
Character set file: $26a0-$3b00
$3368 Version "V3.0"
For details see graphic character
set.
Introscreen file: $0c00-$0fec
$0c00-$0fe8 Screen
$0fe9 Border color
$0fea Background color
$0feb Foreground color
Title screen file: $5ed9-$6398
$5ed9-$5edc Version "V3.0"
$5edd-$5fdc Title music
$5fdd Music waveform
$5fde Music envelope voice
1
$5fdf Music envelope voice
2
$5fe0-$5ff7 Color nybbles one for each line. The high nybble is
used for big letters, and the lower nybble for other chars.
$5ff8 Regular cave name color
$5ff9 Last played cave name
color
$5ffa Border color
$5ffb Background color
$5ffc Foreground color 1
$5ffd Foreground color 2
$5ffe No effect ($d024)
$5fff not used
$6000-$6398 Title screen (first 23 lines)
Cavepack file: $6ffc-$cbff (max.)
$6ffc-$6fff Version "V3.0"
$7000-$702f Cave pointers LSB
$7030-$705f Cave pointers MSB
$7060-$708f Selection table
$00 = cave can be selected
$01 = cave can not be selected
$ff = no cave present
$7090 $ff (end of selection
table)
$7091-$7093 Patch code. The engine does a JSR $7091 during initialisation.
default=$60 $60 $60=RTS
$70a2-$cbff Names and caves
The names are stored right in front of the caves and have always
14 bytes.
There can be up to 48 caves.
Name of Highscoresfile: $63f0-$6400
Caves are compressed with a run length encoded algorythm and are decompressed during run time directly into the working array. The parameters are copied to $0370. The escape byte is $bf, followed by the repeated byte value and the byte count. A cavefile starts at $c400 with the string "DLP".
Booleans are true if value<>0.
Pattern means, all bits have equal value.
Format of a CrLi cave file (decompressed):
Offset Bytes Range Description
------ ----- ----- -----------
0000 0370
880 byte of cave description (including all borders)
0370 0003 000-999 Cave time in seconds
(this seconds are for real on both NTSC and PAL systems)
0373 0003 000-999 Diamonds needed
0376 0003 000-999 Bonus Diamond value
0379 0003 000-999 Diamond value
037C 0002 000-999 Amoeba time at slow growth
(MSB first)
037E 0002 000-999 Magic Wall milling time
(MSB first)
0380 0001 00-01 Firefly and
Butterfly direction change automation.
0=off, >0=on
0381 0001 00-FF Firefly and
Butterfly direction change delay.
0382 0001 pattern Amoeba slow growth probability
0383 0001 pattern Amoeba fast growth probability
0384 0001 00-0F Border color
0385 0001 00-0F Background
color
0386 0001 00-0F Foreground
color 1
0387 0001 00-0F Foreground
color 2
0388 0001 00-07 Foreground
color 3
0389 0001 00-01 0=cave, >0=intermission
038A 0001 00-14 Cave delay
(00 = fast, $14 = slow)
038B 0001 00-FF Slime permeability
038C 0001 00-01 0=normal intermission,
1=scrolling intermission (buggy)
038D 0001
Magic Wall Sound $F0=on, $D0=silent
038E 0001
Growing Wall direction $2E=horizontal, $2F=vertical
038F 0001
Firefly and Butterfly direction $2C=forward, $2D=backwards
0390 0002 000-880 Maximum Amoeba size (MSB
first)
0392 0001 00-7F Extra time
per collected Clock
0393 0001 00-7F Time penalty
0394 0001 00-03 Biter delay
0395 0001 00-01 Magic Wall
activation will convert Amoeba. 0=on, 1=off
0396 0001 00-7F A Bomb Explosion
converts to this element
0397 0001 00-7F An Explosion
converts to this element
0398 0001 00-7F A Bouncing
Boulder converts to this element
0399 0001 00-7F A Diamond Birth
converts to this element
039A 0001 00-7F A Diamond falling
into a Magic Wall converts to this element
039B 0001 00-7F A Bladder has
to touch this element in order to convert
039C 0001 00-7F A Falling Diamond
converts to this element
039D 0001 00-7F Biters eat
this element
039E, 039F 00-7F Two elements penetrating
Slime (adding $03 while doing this)
03A0 0003 string Version "V3.0"
03A4 0001 00-01 Diagonal walking
0=off, >0=on
03A5 0001 00
reserved
03A6 0001 00-7F Too big Amoeba
converts to this element
03A7 0001 00-7F Enclosed Amoeba
converts to this element
03A8 0001 00-FF Acid speed
03A9 0001 00-7F Acid eats this
element
03AA 0001 01
reserved
03AB 0001 00-7F Growing Wall
looks like this element
03AC 0001 00-7F Dirt looks
like this element
03AD 0001 01
reserved
03AE 0001 01
reserved
03AF 0001 01
reserved
BD1, BD2, PLCK | 1stB | CrDr | CrLi | |
$00 | Space | |||
$01 | Dirt | |||
$02 | Brick Wall | |||
$03 | Magic Wall | |||
$04 | Exit | |||
$05 | Exit open | |||
$06 | Destructible Titanium Wall* | Hidden Exit | ||
$07 | Titanium Wall | Hidden Exit open | ||
$08-$0b | Firefly (left, up, right and down) | |||
$0c-$0f | Firefly delayed | |||
$10 | Boulder | |||
$11 | Boulder delayed | |||
$12 | Boulder falling | |||
$13 | Boulder falling delayed | |||
$14 | Diamond | |||
$15 | Diamond delayed | |||
$16 | Diamond falling | |||
$17 | Diamond falling delayed | |||
$18 | Clock Birth stage 1 | |||
$19 | Clock Birth stage 2 | |||
$1a | Explosion stage 1 | Clock Birth stage 4 | ||
$1b | Explosion stage 2 | Clock Birth stage 4 | ||
$1c | Explosion stage 3 | Biter Switch | ||
$1d | Explosion stage 4 | Biter Switch delayed | ||
$1e | Explosion stage 5 | T | ||
$1f-$24 | Diamond Birth stages | |||
$25 | Inbox | |||
$26-$29 | Rockford Birth stages | |||
$2a | Growing Wall* | |||
$2b | Growing Wall delayed | |||
$2c | Firefly/Butterfly Switch | |||
$2d | Firefly/Butterfly Switch delayed | |||
$2e | Growing Wall Switch | |||
$2f | Growing Wall Switch delayed | |||
$30-$33 | Butterfly (down, left, up and right) | |||
$34-$37 | Butterfly delayed | |||
$38 | Rockford | Titanium Wall | ||
$39 | Rockford delayed | Slime | ||
$3a | Amoeba | Bomb | ||
$3b | Amoeba delayed | Sweet | ||
$3c | Mrs. Rockford* | Boulder Birth stage 1 | ||
$3d | Hidden Exit* | Boulder Birth stage 2 | ||
$3e | Slime* | Boulder Birth stage 3 | ||
$3f | Boulder Birth stage 4 | |||
$40 | Hidden Exit open* | Bladder | ||
$41-$49 | Bladder waiting stages | |||
$4a-$4f | Explosion stages | |||
$50 | Rockford | |||
$51 | Rockford delayed | |||
$52 | Rockford carrying Bomb | |||
$53 | Rockford carrying Bomb delayed | |||
$54 | Rockford glued | |||
$55 | Rockford glued delayed | |||
$56 | Mrs. Rockford | |||
$57 | Amoeba | |||
$58 | Amoeba delayed | |||
$59-$5f | Bomb Ticking stages | |||
$60-$63 | Bomb Explosion stages | |||
$64 | Ghost | Acid | ||
$65 | Ghost delayed | Acid delayed | ||
$66 | Ghost Explosion stage 1 | Falling Wall | ||
$67 | Ghost Explosion stage 2 | Falling Wall falling | ||
$68 | Ghost Explosion stage 3 | Falling Wall falling delayed | ||
$69 | Ghost Explosion stage 4 | Box | ||
$6a | Gravestone | |||
$6b | Boulder glued | |||
$6c | Diamond glued (not collectible) | |||
$6d | Diamond Key | |||
$6e | Trapped Diamond | |||
$6f | Gravestone with time penalty | |||
$70 | Waiting Boulder | |||
$71 | Waiting Boulder delayed | |||
$72 | Chasing Boulder | |||
$73 | Chasing Boulder delayed | |||
$74-$77 | Titanium Wall Birth stages | |||
$78-$7b | Biter (up, right, down and left) | |||
$7c-$7f | Biter delayed | |||
$80 | Pot | |||
$81 | Rockford steering | |||
$82 | Gravitation Switch | |||
$83 | Gravitation Switch delayed | |||
$84 | Pneumatic Hammer | |||
$85 | Pneumatic Hammer active | |||
$86 | Box | |||
$87 | Box delayed | |||
$8a | Acid | |||
$8b | Acid delayed | |||
$8c | Key 1 | |||
$8d | Key 2 | |||
$8e | Key 3 | |||
$95 | Teleporter | |||
$96 | Juice* | |||
$97 | Skeleton | |||
$98-$a8 | Water stages | |||
$a9-$ac | Cow (left, up, right and down) | |||
$ad-$b0 | Cow delayed | |||
$b1-$b7 | Enclosed Cow | |||
$b8 | Non Eatable Dirt | |||
$b9 | Destuctible Titanium Wall | |||
$ba | Door 1 | |||
$bb | Door 2 | |||
$bc | Door 3 | |||
$bd | Falling Wall | |||
$be | Falling Wall falling | |||
$bf | Falling Wall falling delayed | |||
$c0 | Walled Diamond | |||
$c1 | Walled Suice | |||
$c2 | Walled Key 1 | |||
$c3 | Walled Key 2 | |||
$c4 | Walled Key 3 | |||
$c8 | Alternative Dirt | |||
$e0-$e3 | Alternative Firefly (left, up, right and down) | |||
$e4-$e7 | Alternative Firefly delayed | |||
$e8-$eb | Alternative Butterfly (down, left, up and right) | |||
$ec-$ef | Alternative Butterfly delayed | |||
$f0-$ff | Water |
The
big letters logo:
It is built of the chars $00-$0b:
BD1, PLCK | CrLi | Knib, 1stB, CrDr | BD2 | |
$00 | scroll pattern target | |||
$01 | Color 1 area | combined upper and lower slope target | Color 1 area | |
$02 | Color 2 area | scroll pattern above letter surface target | Color 2 area | |
$03 | Color 3 area (letter surface) | |||
$04 | Dollar sign | scroll pattern left of letter shadow target | cell upper left corner | Brickwall |
$05 | Percent sign | letter shadow above letter surface | cell upper right corner | Dollar sign |
$06 | upper slope source | cell lower left corner | Percent sign | |
$07 | lower slope source | cell lower right corner | upper slope source | |
$08 | left edge with shadow | cell horizintal bar | lower slope source | |
$09 | upper slope target | rotating scroll pattern sourse (1stB and onwards) | upper slope target | |
$0a | lower slope target | rotating scroll pattern target (V3 and onwards) | lower slope target | |
$0b | scroll pattern source | rotating scroll pattern target | scroll pattern source |
Two char wide letters:
$0c: ,
$0d: !
$0e: .
$0f: /
$10: 0
$11: 1
$12: 2
$13: 3
$14: 4
$15: 5
$16: 6
$17: 7
$18: 8
$19: 9
$1a: :
$1b: *
$1c: <
$1d: =
$1e: >
$1f: triple line (tm sign in old games)
$20: space
$21: A
$22: B
$23: C
$24: D
$25: E
$26: F
$27: G
$28: H
$29: I
$2a: J
$2b: K
$2c: L
$2d: M
$2e: N
$2f: O
$30: P
$31: Q
$32: R
$33: S
$34: T
$35: U
$36: V
$37: W
$38: X
$39: Y
$3a: Z
$3b: (
$3c: Diamond
$3d: )
$3e: Rockford's head
$3f: _
$40-$73: Letter's right half (see bellow!)
$74: left vertical cell bar in Knibble sets
$75: right vertical cell bar in Knibble sets
$76, $77: ? (see bellow!)
In Boulder Dash the letters are two chars wide. For the right half
of
it, the engine adds $34 to the first half. In the title screen, this is
done in the editor which makes it possible to place the letters in steps
half the size of a letter. For the ingame texts, only the left half is
stored and the right half is added on the fly.
Prof. Knibble later added the Question mark, though with the $34
rule, the space was used up. He placed it at the end and the rule does
not apply as the char codes are $76 and $77.
PLCK | 1stB | CrLi | |
2600-2700 | Ghost | ||
26a0-2700 | Rockford standing still
Bomb status bar sprite |
||
2700-2800 | Biter | ||
2800-2bb0 | (Text chars, see above!) | ||
2bb0-2c00 | (extended text chars) | ||
2bb0-2cb0 | Firefly | ||
2cb0-2db0 | Diamond | ||
2c00-2c80 | Magic Wall | ||
2c80-2d00 | Biter switch | ||
2d00-2e00 | Rockford blinking and stamping | ||
2db0-3000 | unused | ||
2e00-2f00 | Bladder | ||
2f00-3000 | Slime | ||
3000-3100 | (Title music) | Slime target
Enemy switch forward Enemy switch backwards Growing wall switch horizontal Growing wall switch vertical T Bladder target Clock |
|
3100-3200 | Butterfly target
Magic Wall Target Diamond birth stage 1 Diamond birth stage 2 Diamond birth stage 3 Diamond birth stage 4 Diamond birth stage 5 In/Out Box full |
Butterfly target
Magic Wall Target Diamond birth stage 1 Diamond birth stage 2 Diamond birth stage 3 Diamond birth stage 4 Diamond birth stage 5 Titanium Wall and In/Out Box full |
|
3200-3300 | Amoeba target
Rockford standing still or Mrs. Rockford (see below!) Boulder Dirt (target, see below!) Diamond Target Titanium Wall Rockford target Brick Wall |
Amoeba target
Mrs. Rockford Boulder Dirt Diamond Target Pushable box Rockford target Brick Wall |
|
3300-3400 | Space
In/Out Box empty Firefly target Explosion stage 1 Explosion stage 2 Explosion stage 3 Magic Wall stages 1 & 2 + disolve pattern source Magic Wall stages 3 & 4 |
Space
In/Out Box empty Firefly target Explosion stage 1 Explosion stage 2 Explosion stage 3 Disolve pattern source Bomb |
Space
In/Out Box empty Firefly target Explosion stage 1 Explosion stage 2 Explosion stage 3 Disolve and title scroll patterns source Bomb |
3400-3500 | Rockford blinking and stamping | Sweet
Ghost target Cross Diamond release key Trapped diamond Chasing Boulder Biter target Biter switch target |
Sweet
Acid Cross Diamond release key Trapped diamond Chasing Boulder Biter target Biter switch target |
3500-3600 | Rockford left | ||
3600-3700 | Rockford right | ||
3700-3800 | Butterfly | ||
3800-3900 | Amoeba | ||
3900-3a00 | Firefly | ||
3a00-3b00 | Diamond |