Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

The 3-D Battles of World Runner/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Work in progress -- qFox)
(Added object data -- qFox)
Line 13: Line 13:
|-
|-
|0x0035 || Heading || 0x00 = forward, 0xFF = backward (when bumping into pillar)
|0x0035 || Heading || 0x00 = forward, 0xFF = backward (when bumping into pillar)
|-
|0x004B || Ground status || 0x1E if you are walking, 0x14 if you are floating ;) (this probably means you are dying, unless you're jumping)
|-
|-
|0x0052 || Forward movement || Freezing this causes you not to move forward (allowing you to analyze enemy movement for rom analyze ;)
|0x0052 || Forward movement || Freezing this causes you not to move forward (allowing you to analyze enemy movement for rom analyze ;)
Line 54: Line 56:
|0x00EF || 3-D Effect ||
|0x00EF || 3-D Effect ||
|-
|-
|0x0400-402 || Enemy data || Still analyzing, but this whole range is meant for enemy data.
|0x0400-402 || Shadow sprites ||
|-
|0x0500 - 0x05FF || Object data || Details about ingame objects are put here. See below for details.
|-
|0x0603 - 0x0608 || Score || (value minus 0x30) is score, xxxxxx, where 100's = 0x0606, 1000's = 0x0604 etc. when the counter ticks at 999900, 0x0607's lowbyte turns to 9 as well (only time ever). After that no increments are possible. The game doesn't use the 0x0608 lowbyte, but you can set them all to 9 to get the game to show 999999 as score :) What the 0x30 represents I can't tell.
|0x0603 - 0x0608 || Score || (value minus 0x30) is score, xxxxxx, where 100's = 0x0606, 1000's = 0x0604 etc. when the counter ticks at 999900, 0x0607's lowbyte turns to 9 as well (only time ever). After that no increments are possible. The game doesn't use the 0x0608 lowbyte, but you can set them all to 9 to get the game to show 999999 as score :) What the 0x30 represents I can't tell.
|-
|-
Line 76: Line 81:
This also means the max one jump can be is 96 frames, at fast this means 192 frames
This also means the max one jump can be is 96 frames, at fast this means 192 frames


More later...
[[Object Data]]
 
Objects are stored in the 0x0500-0x05FF range. 16 bytes for each object. Object can be an enemy but also stars and pillars, even the black gap is an object. Basically anything that's not tiled ground, background or music.
 
I determined the bytes mean as follows:
 
  0x05-0: object type (see list below), 0 = empty
  0x05-1: horizontal start position, one of eight: 00 20 40 60 80 A0 C0 E0 (enemies only use half of these). they snap to the gridlines you see ingame.
  0x05-2: not sure yet, always zero?
  0x05-3: not sure yet, always 3F when object, 0 otherwise?
  0x05-4: not sure, but if you change it, the object disappears untill you change it back
  0x05-5: possibly something to do with forward position...
  0x05-6: sets color of pillar :D
  0x05-7: seen this used with the explosion object (0x28) as a countdown from 8 to 0, after which the object disappears (becomes 00). also contains contents of green pillars (3=gun, 2=potion?, 1=poison, 4=heart, 5=invincible, 6=time, 7&8=you! :p, anything up 6 is bogus)
  0x05-8: when you bump into a pillar, this value indicates where the item is. when it disappears (whether you get it or not) it resets the contents to 0.
  0x05-9 - 0x05-B: unused (not reset at start)
  0x05-C: object cycle counter. 0 = start position, different enemies count to different numbers. freezing this address freezes the movement of that object
  0x05-D: object tile counter. always counts up, but only when on screen, not sure how this works but when you freeze it, the object appearance will freeze
  0x05-E: weird. dunno
  0x05-F: some kind of argument? for pillars (0x2F), 00 indicates green ok pillar, 01 indicates purple killer pillar
 
All numbers in hex. If they appear in 0x0500, 0x0510, 0x50520 ... 0x05F0, that's the object.
 
  01 - 0A = different stars
  0B = gap (the stuff you fall down into)
  0C = ? (ground?)
  0D = star jumping left to right and back
  0E = jump frog
  0F = jump frog moving horizontally
  10 = green froglike enemy
  11&12 = jump thing? dunno
  13&14 = hand "enemy"
  15 = green horizontal enemy slow
  16 = white bouncy enemy
  17 = green horizontal enemy fast
  18 = white horiontal high floating enemy
  19 = some kind of hovering circling enemy
  1A = circling darkgreen ghost
  1B = zigzag darkgreen ghost
  1C = double zigzag darkgreen ghost
  1D = square moving enemy
  1E = moving left, jumping right, enemy
  1F = just a shadow...
  20 = like a shark-thing enemy
  21 = part of a bigger picture... moving left and right
  21 = same thing but circling
  23 = shark again
  24 = green enemy, twisted tiles
  25 = 24 fast
  26 = shark
  27 = crap
  28 = explosion (transition to 00, countdown from 0x8 on 0x0537)
  29 = white horizontal moving enemy
  2A = horizontal dark ghost
  2B = half a green horizontal enemy
  2C = screwy green horizontal enemy
  2E = warp bubble
  2F = pillar (with args?)
  30 = dunno, just a shadow
  31-35 = locks up nes
  36 = horizontal moving star
  37-3A = locks up nes
  3B = lock up, but nice tiles
  42 = dunno, looks weird, not locking up though, seems to be a string if you make more of them
  41 = cool colors (not the 3d thing!)
  45 = horizontal moving star
  46 = starts some weird bossmode when done while playing
  4E = dunno
  52&53 = soft reset when done while normal mode
  55 = weird boss mode
  58 = wrong tiled green horizontal enemy
  5A&5B = weird boss mode
  5C = tiled crash
  62 = nothing? there are more like this
  71 = weird colors again
  72 = weird colors with you flashing white
  i got bored of it here... :p


{{stub}}
{{stub}}

Revision as of 16:55, 25 July 2008

Chip tiny.png The following article is a RAM map for The 3-D Battles of World Runner.


RAM Address Function Details
0x0022 Horizontal ground scrolling If this does not change, the ground does not scroll left or right.
0x0023 Vertical ground scrolling If this does not change, the ground does not scroll forward or backwards.
0x0024 - 0x0025 Input flags Controller input
0x002E Horizontal position The game is 255 units or positions wide in a wrap around world
0x0035 Heading 0x00 = forward, 0xFF = backward (when bumping into pillar)
0x004B Ground status 0x1E if you are walking, 0x14 if you are floating ;) (this probably means you are dying, unless you're jumping)
0x0052 Forward movement Freezing this causes you not to move forward (allowing you to analyze enemy movement for rom analyze ;)
0x005D Height Offsets at 0 when on the ground, moves up/down by 2. you can fire when this value <= 2 going or staying down. once jumping, you have one frame to fire.
0x0065 Airborne 0=no, 1=yes
0x007c Unsure 0x0A means uncontrollable...
0x0080 Invincibility Timer
0x0082 Invincibility Activated
0x0083 Timer Some kind of count down when fired, doesnt seem to impact gameplay... starts at 28 every shot
0x0089 Timer low
0x008B Timer high
0x0092 new life state 0 = starting game (reset) or nothing (just alive), 224 = gameover, 128 = unmoveable (like coming onscreen new game) until 0, 112 = dying until 128
0x00A8 Some kind of forward position
0x00C0 Some kind of forward position
0x00D0 Distance of current shot You can not fire when this is >0, and it reaches 0 before the last shot leaves the visual range. Resets immediately when hitting an enemy.
0x00D9 Something about height as well Offsets at 181 when on the ground and decreases as you go up. There are more addresses like this one in the 0x02xx range
0x00E0 Number of Lives in Reserve
0x00E1 Rocket
0x00E3 Red Potion
0x00E5 Number of Stars
0x00EE World
0x00EF 3-D Effect
0x0400-402 Shadow sprites
0x0500 - 0x05FF Object data Details about ingame objects are put here. See below for details.
0x0603 - 0x0608 Score (value minus 0x30) is score, xxxxxx, where 100's = 0x0606, 1000's = 0x0604 etc. when the counter ticks at 999900, 0x0607's lowbyte turns to 9 as well (only time ever). After that no increments are possible. The game doesn't use the 0x0608 lowbyte, but you can set them all to 9 to get the game to show 999999 as score :) What the 0x30 represents I can't tell.
0x06C0 - 0x070F Ground Indicates land, where "you" seem to be on 0x070D, E or F and 0x06C0 is at the horizon. Only lowbytes are used, E means land, 4 means gap. The graphics are adjusted according to these values (freezing them to 14 will mean there appear no gaps and you never fall)
0x0700-0x071F Palettes
0x0780-0x079F Top ground tiles Reflect the rotating ground tiles except for the bottom row (one full bottom row tile in height). Does not change if 0x0023 does not change.
0x07A0-0x07BF Bottom ground tiles Reflect the bottom pixels of the ground tiles. Only one big tile high. Does not change if 0x0023 does not change.


At normal walking speed you can see 128 frames ahead. meaning, 128 after you see a gap for the first time, you'll fall into it. For slow speed double these values, for fast speed half them.

Jumping has speed of +2 and -2 for going up and down for a normal jump Max height is 96 for a normal jump (48 frames) Min height is 32 for a normal jump (16 frames) This means you can release the jump button, once in the air for a gap, if there is land (height/2)+1 frames from your current position. This means, that land has to be between 16 and 48 frames from where you are before you can release the jump button, x2 for slow and /2 for fast. This also means the max one jump can be is 96 frames, at fast this means 192 frames

Object Data

Objects are stored in the 0x0500-0x05FF range. 16 bytes for each object. Object can be an enemy but also stars and pillars, even the black gap is an object. Basically anything that's not tiled ground, background or music.

I determined the bytes mean as follows:

 0x05-0: object type (see list below), 0 = empty
 0x05-1: horizontal start position, one of eight: 00 20 40 60 80 A0 C0 E0 (enemies only use half of these). they snap to the gridlines you see ingame.
 0x05-2: not sure yet, always zero?
 0x05-3: not sure yet, always 3F when object, 0 otherwise?
 0x05-4: not sure, but if you change it, the object disappears untill you change it back 
 0x05-5: possibly something to do with forward position...
 0x05-6: sets color of pillar :D
 0x05-7: seen this used with the explosion object (0x28) as a countdown from 8 to 0, after which the object disappears (becomes 00). also contains contents of green pillars (3=gun, 2=potion?, 1=poison, 4=heart, 5=invincible, 6=time, 7&8=you! :p, anything up 6 is bogus)
 0x05-8: when you bump into a pillar, this value indicates where the item is. when it disappears (whether you get it or not) it resets the contents to 0.
 0x05-9 - 0x05-B: unused (not reset at start)
 0x05-C: object cycle counter. 0 = start position, different enemies count to different numbers. freezing this address freezes the movement of that object
 0x05-D: object tile counter. always counts up, but only when on screen, not sure how this works but when you freeze it, the object appearance will freeze
 0x05-E: weird. dunno
 0x05-F: some kind of argument? for pillars (0x2F), 00 indicates green ok pillar, 01 indicates purple killer pillar

All numbers in hex. If they appear in 0x0500, 0x0510, 0x50520 ... 0x05F0, that's the object.

 01 - 0A = different stars
 0B = gap (the stuff you fall down into)
 0C = ? (ground?)
 0D = star jumping left to right and back
 0E = jump frog
 0F = jump frog moving horizontally
 10 = green froglike enemy
 11&12 = jump thing? dunno
 13&14 = hand "enemy"
 15 = green horizontal enemy slow
 16 = white bouncy enemy
 17 = green horizontal enemy fast
 18 = white horiontal high floating enemy
 19 = some kind of hovering circling enemy
 1A = circling darkgreen ghost
 1B = zigzag darkgreen ghost
 1C = double zigzag darkgreen ghost
 1D = square moving enemy
 1E = moving left, jumping right, enemy
 1F = just a shadow...
 20 = like a shark-thing enemy
 21 = part of a bigger picture... moving left and right
 21 = same thing but circling
 23 = shark again
 24 = green enemy, twisted tiles
 25 = 24 fast
 26 = shark
 27 = crap
 28 = explosion (transition to 00, countdown from 0x8 on 0x0537)
 29 = white horizontal moving enemy
 2A = horizontal dark ghost
 2B = half a green horizontal enemy
 2C = screwy green horizontal enemy
 2E = warp bubble
 2F = pillar (with args?)
 30 = dunno, just a shadow
 31-35 = locks up nes
 36 = horizontal moving star
 37-3A = locks up nes
 3B = lock up, but nice tiles
 42 = dunno, looks weird, not locking up though, seems to be a string if you make more of them
 41 = cool colors (not the 3d thing!)
 45 = horizontal moving star
 46 = starts some weird bossmode when done while playing
 4E = dunno
 52&53 = soft reset when done while normal mode
 55 = weird boss mode
 58 = wrong tiled green horizontal enemy
 5A&5B = weird boss mode
 5C = tiled crash
 62 = nothing? there are more like this
 71 = weird colors again
 72 = weird colors with you flashing white
 i got bored of it here... :p
So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?