Downloads containing Format-events.txt

Downloads
Name Author Game Mode Rating
JJ1: Jazz Graphics PackFeatured Download Doubble Dutch JJ1 Level 8 Download file

File preview

---------------------------------------------------------------------------
-----------------------
Event notes:
---------------------------------------------------------------------------
-----------------------

Some notes on the various event variables, including specfic notes on
behavior and modifiers:



****************
BEHAVIOR:
****************

-This governs how the event behaves; mostly how it moves in the level. It
isn't associated with any other bytes and can be almsot completely
stand-alone

0: FACE JAZZ: The basic item behavior; the event will have one animation
when Jazz is left of it, and another when Jazz is right of it, aside from
that, it will do nothing. (It is used a lot for bosses though)

1: SINK: Event will fall down until it hits a blocking tile, then it will
sit

2: WALK L\R: The basic enemy behavior; the event will move (using byte 16,
movement speed) until it runs out of flat solid tiles to stand on or hits a
wall; then it will turn around

3: SEEK JAZZ: Event will (Actually only sometimes!) move randomly and make
'swipes' at Jazz, trying to come as close to him as possible. (Other times
it just moves back and forth like (2))

4: WALK L\R AND DOWNHILL: Like (2), event will walk until it hits a wall,
then turn, but if i runs out of ground it will fall down

5: UNKNOWN

6: SPECIAL BEHAVIOR: An event using this will refer to the special behavior
block in the level for instruction on how to move. It will start reading at
byte 23 (Multi-Purpose) x 512. For most events byte 23 is 1, thus they will
start reading at byte 512 in the (decompressed) block.

Special behavior blocks consist of 8192 bytes. A special behavior starts
with two bytes detailing how many v\h byte pairs to read. (I.e how many
'steps' the behavior has, each step takes 1/32 of a second.) This is
followed by said v\h pairs. Each pair gives the v and h location of the
event in that step divided by 8 pixels. (Values are relative to event spawn
spot, these can be between 0 and 7F [Positive] or FF and 80 [Negative] 1
Tile right and one tile up is thus '$F8 $08') A given block can contain a
maximum of 16 behaviors, one every 512 bytes

7: SNAKE: Event will move depending on byte 23 (Multi-purpose) with 0 being
slow l\r, 1 being l\r and 2+ being wacky patterns (Try each of these out,
they rock!). The head sprite L is given byte 7 (Anim left) the body by byte
26 (Medivo ball length) and the tail by byte 25 (bridge length) with the R
sprites being 1 greater in all cases. The body segment number is given
(Including head)  by byte 24 (Y-axis) Byte 10 (Strength) is strength PER
SEGMENT, The segment seperation (As opposed to number) is given by byte 27
(Medivo ball direction) with 1 being 1/4 tile apart

8: HIPHOP BIRD: Will follow Jazz and fire enemy shot 31 (Birdshot) at
enemies

9: UNKNOWN

10: SAVE POINT: When Jazz destroys this event, the position one tile above
the event is saved as his starting position when he dies.

11: FALL TO GROUND: Event will fll at a steady speed until it hits a solid
tile, when it will stop. The speed cannot be changed

12: FLOAT L\R: Basic floater behavior; the event will move across until it
hits a wall, then reverse direction

13: FLOAT U\D: Like (12) but here event floats up or down until it hits a
blocking tile, then it reverses direction. If Jazz is 'crushed' between
this and a ceilng, he will scream

14: MOVE L\R: Event zaps back and forth at high speed

15: FLOAT TO MEET JAZZ: Event will move up\down until it is at the same
height as Jazz

16: MISSILE: Event moves in a straight line from right to left or left to
right across a level as governed by the magnitude (255 for left, 1 for
right) . Speed cannot be changed

17: UNKNOWN

18: UNKNOWN

19: UNKNOWN

20: UNKNOWN

21: REPLACE BLOCK: This event must have a byte 10 (Strength) value; when it
is destroyed it will replace the tile it is on with one dictated by byte 23
(Multi-purpose) This is often used for shootable scenery. Note that any
tile replaced when the event destroyed will have color 127 (Transparent)
set as black until it is offscreen, when it willr eturn to transparent.
This will look odd if your replacing tile has any see-through bits in it.
If you use too many of this event (30+) then the level will 'overload' and
all tile 0 will be replaced with the replacing tile

22: RAIN: Event falls to the ground sits, disappears, then falls agian,
semi-randomly

23: FLIP TILES: When used with event 123 ONLY, will flip the tiles stores
at byte 23 (Multi-purpose) and byte 24 (Y-axis)

24: CRAWL: A repeat behavior, moves l\r and can go downstairs

25: FLOAT UP: This makes Jazz... well, float, depending on te strength of
the magnitude byte. Unlike sucker tubes or springs, the suck is smooth, not
in jerks. Byte 24 (Y-axis) will change the suck from l\r (0) to u\d (1) If
Y-axis is 'used' the strength is given by byte 23 (Multi-purpose)

26: FLIP ANIMATION: Event sits still (No movement) and simply changes its
animation depending on where Jazz is; (It changes when Jazz touches it.)

27: FLOAT ON WATER: Event will float in space facing Jazz unless the water
level is higher than it, in which case it will float on the water's surface

28: BRIDGE: Conists of 16 sprites in a flexible line. Byte 25 (Bridge
length) defines the bridge length in tiles divided by 2 Byte 23 (Y-axis)
defines how much the bridge sinks when Jazz is on it. Birdges have
magnitude 255 and byte 23 (Multi-purpose) 20 [If it is otherwise, the
bridge is a tile longer.)

29: PEZROCK BALL: Event consists of a nub, chain and ball that move around
in a circle about the nub. Byte 9 (Magnitude) controls both the speed and
direction (+ve clockwise, -ve anticlockwise), byte 25 (Bridge length)
controls the number of chain links and byte 26 (Medivo ball length)
controls the seperation between links (In 1/8 of a tile) Sprites are
controlled by byte 6 (Left animation) for the ball, byte 23 (Multi-purpose)
for the nub and 24 (Y-axis) or the chain (These are SPRITES, not animation
sequences!)

30: MEDIVO BALL: Event consists of a nub, chain and ball and moves in a
swinging motion. Byte 9 (Magnitude) defines the speed and direction (+ve
clockwise, -ve anticlockwise, though this doesn't matter), byte 27 (Medivo
ball direction) controls the start position (x/256 x 360 is the location in
degrees clockwise from 3 O'clock; thus 64 = 1/4 =90 degrees is straight
down and 128 is 9 O'clock), byte 25 (Bridge length) controls the number of
chain links and byte 26 (Medivo ball length) controls the seperation
between links (In 1/8 of a tile) Sprites are controlled by byte 6 (Left
animation) for the ball, byte 23 (Multi-purpose) for the nub and 24
(Y-axis) for the chain (These are SPRITES, not animation sequences!)

31: SLIDE-FLY: Event moves left and right for a distance in tiles given by
byte 23 (Multi-purpose) at a speed governed by byte 25 (bridge length)
while floating in the air. Byte 9 (Magnitude) governs the initial direction
(l\r)

32: SLIDE_FLY: Almost identical to (31), bu more difficult to use

33: STALKER: Event will follow Jazz if he is not facing it

34: BOUNCE: Event will sit for a time given by byte 24 (Y-axis) then bounce
upward to a height given by byte 23 (Multi-purpose) using the sound in byte
22 every bounce Byte 16 (Movement speed) seems to be take over 'waiting
time' after JCS94 saves levels (ERROR!)

35: CRAWL_SNEAKER: Event will move l\r and when Jazz is close move until 1
tile away from him. It will not fall off edges and crawls on the ground (It
will be still if in air)

36: CRAWL-STALKER: Event will move l\r seeking Jazz and fall down off
endges

37: REPEL JAZZ: Identical to (38) but more difficult to use

38: REPEL JAZZ: Pushes Jazz in a direction when touched. Unlike (25), it is
a single shove, not a smooth float. This is used for sucker tubes, The
Y-axis will change the suck from l\r (0) to u\d (1) and the magnitude will
give the 'force' of the push

39: FALL ON JAZZ: If Jazz is under or over the event, it will fall down
until it hits blocking tiles. The amount of time needed before the event
falls is controlled by byte 23 (Multi-purpose)

40: MONOCHROME JAZZ: When Jazz touches this event, he turns monochrome.

41: TURN RANDOM: Event sits, but occasionally turns, flipping from (left to
right or vice versa)

42: REFLECT: If byte 3 (Graphical effects) is set to $3F, this will reflect
jazz of itself like a mirror. Used best with red tiles

43: REFLECT 2: Identical to (42) bu better used with green tiles

44: LEAP: Event will jump towards Jazz at high speed

45: TRANSLUCENT: When Jazz touches this event the tile it is on becomes
foreground except for colors 128-143 which will change Jazz's colors to
match theirs. (Kinda like MONOCHROME Jazz, except this can be any color)
(Color 127 is transparent of course, like foreground with transparency)

46: BIG BUNNY: Event behaves exactly like the big bunny boss of ep 6. This
event should be kept caged or it will run everywhere. An important bytes
are byte 14 (Enemy shot frequency) which defines how often it will shoot

47: MOVE: Event moves in a direction and speed governed by magnitude,
passes offscreen and disappears

48: OWL BOSS: Event will fly back and forth rapidly. After shooting five
times (The event doesn't HAVE to shoot.) it will change event to event 2

49: MOVE 2: Event moves l->r or r->l depending on the value of
magnitude. A repeat behavior

50: When event is near Jazz it will jump towards him and destroy itself

51: EGG: Event will smash open with sprites of byte 23 (Multi-purpose) and
seek a boss event to orbit

52: JUMP SLAM: Object will jump around and slam into the ground; this is
used for some bosses

53: DREEMPPE TURTLE: Event will stay still using the sprite value at byte
23 (Multi-purpose) untilt he water level is a tile above it, when it will
move l\r as in (2) using the l\r animations

54: SINK 2: Event sinks into the ground and disappears

55: UNKNOWN

56: PUSH DOWN: When Jazz touches event he is pushed down, the opposite of
(25) and almost identical to it

57: RANDOM SHOT: Every byte 24 (Enemy shot frequency) seconds, event will
spawn a byte 23 (Multi-purpose) number of shots in a short burst. The shot
is given in byte 13 x times 

58: BUBBLE: Event will, when underwater, float up to the water's surface
and dissapear. This happens only ONCE, then the event is destroyed

59: ZOONIC: Event will run back and forth and shoot at byte 13 shots at
Jazz. All the behavior is hardcoded

60: DEVAN BOSS: This is hardcoded and doesn't like normal levels. It's
Devan and his guard from Deckstar

61: RANDOM SEEK: Moves erratically, but slowly heads towards Jazz

62: BUBBLE BOSS: The boss from Lagunicus; hardcoded and doesn't like normal
levels. Will float on a water level spawning shots if any are coded

63: UNKNOWN

64: INVISIBLE: This event does almost nothing

65: FLIP ANIMATION: Every few seconds event will change l and r animations



****************
MODIFIER:
****************

-This governs mostly what happens when the event is destroyed or touched;
it is how it affects Jazz. Often related to byte 9 (Magnitude), byte 23
(Multi-purpose) and byte 16 (Movement speed)


0: HURT: When Jazz touches this event's sprite, he will be hurt.

1: INVINCIBILITY: When destroyed, will provide Jazz with invincibility for
a period dicated by byte 23 (Multi-purpose)

2: HEALTH: When destroyed, increases Jazz's health by 1

3: HEALTH: Repeat of (2)

4: EXTRA LIFE: When destroyed, increases Jazz's life count by 1

5: JUMP: When destroyed, Jazz gets a jump increase of 1/ a tile

6: PLATFORM: Jazz can stand on the event like it is solid ground. It can
also push him or knock him down

7: IGNORE BYTES 29-30: The basic 'nothing' modifier; when the event is
shot, no animation appears, though this itself can be ignored. Used by
events when nothing else will do, or if the end aniamtino really should be
ignored

8: BOSS: A health meter will appear and when the event is destroyed the
level will end

9: TIMER: When destroyed, Jazz gets a minute of extra time

10: SAVE POINT: When destroyed, the tile above the event is saved as Jazz's
start position if he dies

11: ITEM: When destroyed increases Jazz's item count by 1

12: RAPIDFIRE: When destroyed increases Jazz's shot rate by 1

13: WARP: When Jazz touches this event in warps him to x,y in the level as
dictated by bytes 23 (Multi-purpose) and 24 (Y-axis)

14: +10 ODD WEAPON: When destroyed, gives Jazz 10 of the odd weapon. This
weapom can be used if the level is programmed right

15: +15 TOASTER: When destroyed, increases Jazz's toaster count by 15

16: +15 RF: When destroyed, increases Jazz's RF missile count by 15

17: +15 LAUNCHER: When destroyed, increases Jazz's launcher count by 15

18: +2 TOASTER: When destroyed, increases Jazz's toaster count by 2

19: +2 RF: When destroyed, increases Jazz's RF missile count by 2

20: +2 LAUNCHER: When destroyed, increases Jazz's launcher count by 2

21: +1 ODD WEAPON: When destroyed gives Jazz 1 of the odd weapon. This
weapon can be used if the level is programmed right

22: UNKNOWN

23: JAZZ TRANSFORM: Turns Jaz into a turtlette. If the level is programmed
right, the animation can be changed to anything. In this form Jazz cannot
jump or fall down, only move l\r

24: JAZZ TRANSFORM 2: Similar to (23), can be useful if programmed right

25: JAZZ TRANSFORM 3: Similar to (23) and (24), can be useful too

26: SPEED: When destroyed will cause jazz to move at doubble speed for a
time dictated byyte 23 (Multi-purpose) and will doubble music speed until
the end of the loop

27: END LEVEL: When destroyed, ends the level and brings up the PERFECT
screen

28: WALK JAZZ Used with (25) 'float up' when Jazz stands on it, can also be
used as one way l\r if there is no associated 'float up' behavior (E.g the
Owls in Raneforus) Here byte 9 (Magnitude) defines both strength and
direction, and byte 25 (Bridge length) makes the event push Jazz instead of
moving him smoothly

29: SPRING UP: When touched will propel Jazz in an upward direction given
by magnitude and if byte 24 (Y-axis) is larger than 1, the l\r as dictated
by byte 23 (Multi-purpose)

30: TNT: When destroyed, gives Jazz 1 TNT. Although this event is always
associated with bytes 23-28 being equal to 9, this isn't necessary for the
event to function

31: CHANGE WATER LEVEL: When destroyed the event bings the water level
up\down to itself It also freezes in it's 'finnish anim' This can be used
in levels without water

32: FLOAT JAZZ: Used with (25) 'float up' when this has Jazz passing
through it

33: ONE HIT SHIELD: When this event is destroyed, Jazz gets a one hit
shield.

34: HIP_HOP: When destroyed gives Jazz a shooting bird companion

35: AIRBOARD: When destroyed, will give Jazz an airboard

36: FOUR HIT SHIELD: When this event is destroyed, Jazz gets a four hit
shield.

37: BONUS GEM: When destroyed, gives Jazz the bonus gem

38: REMOVE AIRBOARD: When destroed, removes Jazz's airboard

39: +15 ODD WEAPON: When destroyed gives Jazz 15 of the odd weapon. If the
level is programmed right, this weapon can be used

40: +2 ODD WEAPON: When destroyed gives Jazz 2 of the odd weapon. If the
level is programmed right, this weapon can be used

41: SECRET LEVEL: When destroyed, takes Jazz to a level defined by bytes 23
(Multi-purpose) and 24 (Y-axis) These define the level number and world
number respectively

42: UNKNOWN

43: SPRINGLIKE: Behaves like a spring, but harder to use



****************
BYTE 1: DIFFICULTY
****************

Defines the dificulty level this event first appears on. It will appear on
all harder difficulties. Always between 0 (easy) and 4 (Turbo); usually 0
or 2



****************
BYTE 3: REFLECT
****************

When used with behavior (42) and (43) (Reflect boxes) it will reflect
things off the event. Is either 0 or 63 and is often set with non-reflect
events, with no effect



****************
BYTE 6-7: NORMAL ANIMATION
****************

The animation sequence (Not sprite) the event uses when it is left and
right of Jazz respectively. Or when it is moving left or right.

Is sometimes used by behaviors as the 'normal' sprite; for example it
defines the sprite used in a bridge and the ball of a medivo ball.



****************
BYTE 9: MAGNITUDE
****************

This defines one of two things, depending on what the event behavior is.
Firstly it can control the strength of an efect, how high a spring bounces,
how hard a tube sucks. Here 'negative' or up\leftward magnitudes are
256-strength, while down\rightward magnitudes are 0+strengh.

The second, used for most other events is the initial direction with 255
being left and 1 being right. This is for things like walking turtles say.

Direction is often changed by byte 24 (Y-axis) from l\r (0) to u\d (1)



****************
BYTE 10: STRENGTH
****************

This is how many shots are needed to kill the sprite. Immortal events must
have the 'hurt' modifier, or else they will be destroyed when Jazz touches
them.



****************
BYTE 12: POINT
****************

When an event is destroyed, this value x 10 is added to Jazz's score.



****************
BYTE 13: ATTACK
****************

Controls what attack the event uses. For example, value 1 makes the event
shoot blaster bullets. Thus, for shooting events, it is used to control
*what* is shot.

For non shooting events it is remarkably consisten across levels, which
suggests it does *something*; but something not immediately apparent.
Therefore, if an event doesn't have a byte 14 (Enemy shot frequency) value,
this value s meaningless, or nearly so



****************
BYTE 14: ENEMY SHOOTING FREQUENCY
****************

Defines how often an event spawns a shot.



****************
BYTE 16: SPEED
****************

For events that walk, float or fly, this controls how fast they do so.
Otherwise speed will be controlled by byte 9 (Magnitude)



****************
BYTE 18: ANIMATION SPEED
****************

Defines how fast the event animates; sometimes this value can be useless,
but not often



****************
BYTE 21: EVENT ID
****************

This is usually the same as the event number. It's pretty much useless,
though the HOCUS cheat uses it to seek event 2 to teleport to



****************
BYTE 22: SOUND
****************

This is the sound played when the evet is 1.) Destroyed (By a shot or Jazz
getting it) or 2.) Touched (Jazz bounces on a spring, gets sucked by a
tube...) A sond will only play if the number is the same as a cached sound
in the LEVEL SOUND LIST.



****************
BYTE 23: MULTI_PURPOSE
****************

Used for a wide range of things, usually to define the magnitude of
something, such as time invincibilty lasts, the tile replacement for
destructable blocks or the length of snakes. Often related to byte 24
(Y-axis) which usually 'switches' or controls the effect that byte 23
controls the strength of



****************
BYTE 24: Y-AXIS
****************

When this is larger than 0 it usually changes the direction of something
from horizontal to vertical. It is also sometimes the vertical magnitude of
something, such as how much a bridge sinks whn Jazz is on it.

Often related to byte 23 (Multi-purpose)



****************
BYTE 25: BRIDGE LENGTH
****************

Controls the length (Or number of pieces) of chains and such, famous for
defining the length of bridges in tiles, divided by two, but also controls
the number of pieces in a medivo ball chain



****************
BYTE 26: MEDIVO BALL LENGTH
****************

Controls the seperation (In eigths of a tile) between medivo ball pieces.
Strongly associated with cyte 27 (Medivo ball start) and 25 (Bridge length)



****************
BYTE 27: MEDIVO BALL START
****************

To figure out where a Medivo ball starts, take this value and divide by
256. Then take THAT value and multiply by 360 degrees, then use 3 O'clock
as 0. Thus 64 is 1/4 or 90 degrees from 3 O'clock, or straight down. This
can be ANY VALUE from 0-255 Values larger than 128 are 'flipped' so 150 =
128 + 32 = 45 degrees, but is at 7 O'clock, not 4 O'clock as expected.

Associated with byte 26 (Medivo ball length) and byte 25 (Bridge length)



****************
BYTE 28: UNUSED
****************

Only used for TNT items, where its value and those of the previous 5 bytes
are set at 9, even though this is not necessary



****************
BYTE 29-39: KILLED ANIMATIONS
****************

These two bytes are usually the same and are the animation sequences (Not
sprites) displayed when Jazz is left or right of an event that has just
been destroyed. It is responsible for the sparkles when items are got, the
explosion when enemies are shot and the fragments when destructable scenery
is shot



****************
BYTE 31-32: ATTACK ANIMATION
****************

These two bytes are usually the same, they are the animation sequences (Not
sprites) displayed when Jazz is left or right of an event spawning another
event (I.e shooting)

Oddly, these bytes are the same, and that works fine, but once JCS94 saves
the level they must be made different or the event will look odd when
shooting