Karnov (NES)/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(adding everything I have in my notes)
m (Hawk moved page Karnov/RAM map to Karnov (NES)/RAM map)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
$0C - Render Scroll X
{{rammap|game=Karnov}}
$0D - Render Scroll Y
$0E - Render Scroll Y high bit << 4 ($10 or $00)
$24 - Render palette (32 bytes)
$61 - Current stage 0-8
$62 - Player State: Facing left (bit 7)
$63 - Player X
$64 - Player Y
$65 - Player Equipment: shield (bit 4), shot type (bits 3-0)
$68 - Player Health: 0 red/healthy, $C0 blue, $80 dead


Player shot structure 8 x 3 bytes:
$04 - Game Mode function pointer (2 bytes): based on index from $10, see below
$6E - Shot Status
$0C - Render Scroll X
$6F - Shot X
$0D - Render Scroll Y
$70 - Shot Y
$0E - Render Scroll Y high bit << 4 ($10 or $00)
$10 - Game Mode: $0B active play, $10 final boss fadeout, $11 congratulations music begins
$24 - Render palette (32 bytes)
$61 - Current stage 0-8
$62 - Player State: Facing left (bit 7)
$63 - Player X
$64 - Player Y
$65 - Player Equipment: shield (bit 4), shot type (bits 3-0)
$68 - Player Health: 0 red/healthy, $C0 blue, $80 dead


$8F - Items: mask (bit 5), bombs (bit 1), boots (bit 0
Player shot structure 9 x 3 bytes:
$92 - Map X scroll target
$6E - Shot Status
$93 - Map Y scroll target
$6F - Shot X
$9F - Map X scroll
$70 - Shot Y
$A0 - Map Y scroll
$BB - Bombs Count
$C0 - Bomb Visible
$C1 - Bomb X
$C2 - Bomb Y
$C4 - Scrolling state
$CA - PPU Update Buffer (14 bytes: address x 2, data x 2, address x 2, data x 2, address x 2, data, address x 2, data)
$D8 - Fireball Orb State: Active (bit 7)
$D9 - Fireball Orb X
$DA - Fireball Orb Y
$0200 - OAM Buffer (256 bytes)
$040B - Lives Count
$040C - 16 x 12 map tile type buffer (collision, spawn triggers, pickups)
$04CC - Attribute Cache
$054C - Row list for level background data (13 bytes)


$8F - Items: mask (bit 5), bombs (bit 1), boots (bit 0)
$92 - Map X scroll target
$93 - Map Y scroll target
$9F - Map X scroll
$A0 - Map Y scroll
$BB - Bombs Count
$C0 - Bomb Visible
$C1 - Bomb X
$C2 - Bomb Y
$C4 - Scrolling state
$CA - PPU Update Buffer (14 bytes: address x 2, data x 2, address x 2, data x 2, address x 2, data, address x 2, data)
$D8 - Fireball Orb State: Active (bit 7)
$D9 - Fireball Orb X
$DA - Fireball Orb Y
$0200 - OAM Buffer (256 bytes)
$040B - Lives Count
$040C - 16 x 12 map tile type buffer (collision, spawn triggers, pickups)
$04CC - Attribute Cache
$054C - Row list for level background data (13 bytes)


Enemy structure 6 x 16 bytes:
Enemy structure 6 x 16 bytes:
$650 - Type (bits 6-0), Active (bit 7)
$650 - Type (bits 6-0), Active (bit 7)
$651 - Status: Facing left (bit 7), Falling from jump (bit 6), State (bits 5-0) = 0-3 walk, 5 fire, 6 duck, 8 jump, $A-$B climb, $17 falling straight down, $19 dying, $1A dead
$651 - Status: Facing left (bit 7), Falling from jump (bit 6), State (bits 5-0) = 0-3 walk, 5 fire, 6 duck, 8 jump, $A-$B climb, $17 falling straight down, $19 dying, $1A dead
$652 - X
$652 - X
$653 - Y
$653 - Y
$655 - Damage
$655 - Damage


$6CF - Dragon state: Active (bit 7)
$6CF - Dragon state: Active (bit 7)
$6D0 - Dragon damage
$6D0 - Dragon damage
$6DB - Dragon X
$6DB - Dragon X
$6DC - Dragon Y
$6DC - Dragon Y
$6DD - Dragon X high byte
$6DD - Dragon X high byte
$6DE - Dragon Y high byte
$6DE - Dragon Y high byte


During final boss:
During final boss:
$6CF - Boss Head State
$6CF - Boss Head State
$6D0 - Boss Sequence: 0-7 (starts at 1), looks up order from $C:$ACB3
$6D0 - Boss Sequence: 0-7 (starts at 1), looks up order from $C:$ACB3
$6DA - Boss Head X
$6D2 - Boss damage (3 bytes)
$6DB - Boss Head Y
$6DA - Boss Head X
$706 - Fireball State: Active (bit 7)
$6DB - Boss Head Y
$707 - Fireball X
$706 - Fireball State: Active (bit 7)
$708 - Fireball Y
$707 - Fireball X
$708 - Fireball Y


== See Also ==
== See also ==
[[Karnov:ROM map]]
*[[Karnov:ROM map]]
 
{{Internal Data}}

Latest revision as of 20:56, 28 January 2024

Chip tiny.png The following article is a RAM map for Karnov (NES).

$04 - Game Mode function pointer (2 bytes): based on index from $10, see below
$0C - Render Scroll X
$0D - Render Scroll Y
$0E - Render Scroll Y high bit << 4 ($10 or $00)
$10 - Game Mode: $0B active play, $10 final boss fadeout, $11 congratulations music begins
$24 - Render palette (32 bytes)
$61 - Current stage 0-8
$62 - Player State: Facing left (bit 7)
$63 - Player X
$64 - Player Y
$65 - Player Equipment: shield (bit 4), shot type (bits 3-0)
$68 - Player Health: 0 red/healthy, $C0 blue, $80 dead

Player shot structure 9 x 3 bytes:

$6E - Shot Status
$6F - Shot X
$70 - Shot Y
$8F - Items: mask (bit 5), bombs (bit 1), boots (bit 0)
$92 - Map X scroll target
$93 - Map Y scroll target
$9F - Map X scroll
$A0 - Map Y scroll
$BB - Bombs Count
$C0 - Bomb Visible
$C1 - Bomb X
$C2 - Bomb Y
$C4 - Scrolling state
$CA - PPU Update Buffer (14 bytes: address x 2, data x 2, address x 2, data x 2, address x 2, data, address x 2, data)
$D8 - Fireball Orb State: Active (bit 7)
$D9 - Fireball Orb X
$DA - Fireball Orb Y
$0200 - OAM Buffer (256 bytes)
$040B - Lives Count
$040C - 16 x 12 map tile type buffer (collision, spawn triggers, pickups)
$04CC - Attribute Cache
$054C - Row list for level background data (13 bytes)

Enemy structure 6 x 16 bytes:

$650 - Type (bits 6-0), Active (bit 7)
$651 - Status: Facing left (bit 7), Falling from jump (bit 6), State (bits 5-0) = 0-3 walk, 5 fire, 6 duck, 8 jump, $A-$B climb, $17 falling straight down, $19 dying, $1A dead
$652 - X
$653 - Y
$655 - Damage
$6CF - Dragon state: Active (bit 7)
$6D0 - Dragon damage
$6DB - Dragon X
$6DC - Dragon Y
$6DD - Dragon X high byte
$6DE - Dragon Y high byte

During final boss:

$6CF - Boss Head State
$6D0 - Boss Sequence: 0-7 (starts at 1), looks up order from $C:$ACB3
$6D2 - Boss damage (3 bytes)
$6DA - Boss Head X
$6DB - Boss Head Y
$706 - Fireball State: Active (bit 7)
$707 - Fireball X
$708 - Fireball Y

See also