| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | rea | |||||||||||||||||||||||||
2 | ***NOTE*** This is for an unheadered [1.0] ROM. This information may not be accurate for other versions. | |||||||||||||||||||||||||
3 | ***Note*** ALL numerical values are in hex unless otherwise specified | |||||||||||||||||||||||||
4 | See RAM map for more info: | https://docs.google.com/spreadsheets/d/1cpgw9Y73WL7vmUOfnK21utcTQ7sUeOZu4874buAmPf0/edit#gid=0 | ||||||||||||||||||||||||
5 | TYPE: | INFO: | EXAMPLE (HIJINX)/NOTES: | CONTRIBUTOR(S): | ||||||||||||||||||||||
6 | FORMULA: | OBJECT MAP: | $7e003e * 2 + 8000 = xxxx = Array at $3dxxxx. | $7e003e = 16, *2 = 2c +8000 = 802c | RainbowSprinklez | |||||||||||||||||||||
7 | Object map at $3dzzzz where zzzz is array value | Value at $3d802c is 95dc, so $3d95dc | ||||||||||||||||||||||||
8 | FORMULA: | LEVEL TERRAIN: | $7e088b AND ffe0 + $7e00d3 (3 bytes) | $7e088b = 0 AND ffe0 = 0 | RainbowSprinklez, Myself086 | |||||||||||||||||||||
9 | $7e088b is x cam | $7e00d3 = d90000, so converting to our format, $190000 | ||||||||||||||||||||||||
10 | TEXT | FUNKY | $3C3334-$3C35C9 | German text right after | RainbowSprinklez | |||||||||||||||||||||
11 | TEXT POINTERS | FUNKY | $3c036c~$3c038a | German pointers after. Last 8 bytes are | RainbowSprinklez | |||||||||||||||||||||
12 | 4 bytes of donkey only and 4 of diddy only | |||||||||||||||||||||||||
13 | TEXT | CANDY | $3c315b-$3c3333 | RainbowSprinklez | ||||||||||||||||||||||
14 | TEXT POINTERS | CANDY | $3c0344~$3c0356 | delicious turds | RainbowSprinklez | |||||||||||||||||||||
15 | ||||||||||||||||||||||||||
16 | TEXT | STAGE NAMES | $38a508-$38a7e6 | German text right before | RainbowSprinklez, Mattrizzle | |||||||||||||||||||||
17 | TEXT POINTERS | STAGE NAMES | $38a1ea-38a245 | 2 bytes per pointer; German pointers before | RainbowSprinklez, Mattrizzle | |||||||||||||||||||||
18 | FORMULA | STAGE NAME POINTERS | ((Value at ($38:a07a + $7e:003e) AND #ff ) * 2 ) + a1e2 | ONLY useful to hackers as we know where the pointers are | RainbowSprinklez | |||||||||||||||||||||
19 | MISC | OBJECT | All objects exist in bank $35. $35xxxx based on the object pointer. Objects end in bytes 00 80. If you are careful, you can edit various properties, such as enemy speed | RainbowSprinklez, Myself086 | ||||||||||||||||||||||
20 | ||||||||||||||||||||||||||
21 | FORMULA | MAP PATH SET GRAPHICS POINTERS | $7e0002 * 2 + f32a = $3cxxxx, where xxxx is the result of your addition. Path pointers are there 0xbcf32a | ***Must be on the map you want to edit for $02 to read correctly | RainbowSprinklez, Mattrizzle | |||||||||||||||||||||
22 | MAP PATH SET GRAPHICS POINTERS | |||||||||||||||||||||||||
23 | FORMULA | BANANA MAPS | Array at $7e003e + $b8b41d, AND 00ff (store in $30) | Reptile rumble's 3e (for second map) = 1. 16 bits at b41d is 701. AND ff = 01 = $30 | RainbowSprinklez | |||||||||||||||||||||
24 | Double $30, add 16 bit value at (c0e1+$30) to c0e1 | Double 1 (2), 16 bit value at c0e3 = 10a. Banana map at c1eb | ||||||||||||||||||||||||
25 | http://www.dkc-atlas.com/forum/viewtopic.php?f=38&t=1167#p21476 | Simion32 | ||||||||||||||||||||||||
26 | ARRAY - 8 bit | $0xbcbaba | base $3e | RainbowSprinklez, Myself086 | ||||||||||||||||||||||
27 | PATHS | // 3 bytes: Level to beat, first link, second link | Myself086 | |||||||||||||||||||||||
28 | .def LevelLinkTable 0xb89853 .def LevelLinkTableB 0xbcba67 | |||||||||||||||||||||||||
29 | ARRAY - 8 bit | $0xbcf44b | A VERY powerful array. Tells the game what to do based on where we are going (coords of level on map) | RainbowSprinklez | ||||||||||||||||||||||
30 | ARRAY - 8 bit | $0X80F708 | 6 bytes, where taking each Funkys Flights takes you | indexed by $3e - #0xf4 | RainbowSprinklez | |||||||||||||||||||||
31 | ARRAY - 24 bit | $0xb8944b | Where a file saves in SRAM | RainbowSprinklez | ||||||||||||||||||||||
32 | MUSIC ARRAY - 16 bit | $0x3983b6 | LUT of music indexed by $3e | RainbowSprinklez | ||||||||||||||||||||||
33 | TRACK ARRAY - 24 bit | $0x8ab159 | 24 bit pointer on which track to play | instruments still messed up, since track | RainbowSprinklez | |||||||||||||||||||||
34 | 0 | doesn't hold instruments | ||||||||||||||||||||||||
35 | e9c6a4 regular boss boogie | Indexed by track number | ||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | PHYSICS | 0xBFB187 | How much to mod acceleration | 0 is normal, 3 is half | RainbowSprinklez | |||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ARRAY - 16 bit | 0x81d102 | 1e15 setter by level (3e) | One of the most powerful arrays | RainbowSprinklez | |||||||||||||||||||||
40 | THEME LOCATION ARRAY | 0x818b94 - 0x81bbd | Where the various themes are in ROM | RainbowSprinklez | ||||||||||||||||||||||
41 | 32 BIT ARRAY OF SPRITE GRAPHICS | 0xbbcc9c | 32-bit sprite graphic array | 16f0 is funky plane (00db0000) Index already setup for 32 bit array | RainbowSprinklez | |||||||||||||||||||||
42 | Object Function Pointer Array | 0xbf8177 | 32-bit indexes, indexed by [d45] * 4 | (_$8177) | RainbowSprinklez | |||||||||||||||||||||
43 | Hitbox array | 0xbb8000 | Sprite graphic index / 2 | RainbowSprinklez | ||||||||||||||||||||||
44 | Cooords index | 0xbc8000 | Index + 4 | start - $bc0000,x | RainbowSprinklez | |||||||||||||||||||||
45 | Tilemap X Cam Start | 0xbc0000 | X coords start | end - $bc0002,x (left boundary of final screen) | RainbowSprinklez | |||||||||||||||||||||
46 | Tilemap X Cam End - 0x100 | 0xbc0002 | X coords end - 0x100 | where x = ($bc8000,$3e * 2) - 4 | RainbowSprinklez | |||||||||||||||||||||
47 | Default Animation scripts | 0xbe8572 | 16 bit array, indexed by [d45] | Animation script at $be0000 + 16-bit pointer | RainbowSprinklez | |||||||||||||||||||||
48 | Donkey function status function | 0xbf84c5 | indexed by [$1029] * 2 | RainbowSprinklez | ||||||||||||||||||||||
49 | Game over routine | 0x80de7b | RainbowSprinklez | |||||||||||||||||||||||
50 | Life Lost Music Switch | $BE/9841 22 36 90 B9 JSL $B99036[$B9:9036] A:0011 X:0002 Y:9858 P:envmxdIzc | RainbowSprinklez | |||||||||||||||||||||||
51 | SONG TO PLAY | $B9/801B 7C B6 83 JMP ($83B6,x)[$B9:8E61] A:014A X:014A Y:B828 P:envmxdIzc | ||||||||||||||||||||||||
52 | $B9/8E61 A9 0D 00 LDA #$000D A:014A X:014A Y:B828 P:envmxdIzc | // This lda says which song, up to 1b | ||||||||||||||||||||||||
53 | $B9/8E64 5C 36 90 B9 JMP $B99036[$B9:9036] A:000D X:014A Y:B828 P:envmxdIzc | |||||||||||||||||||||||||
54 | ARRAY 8-BIT | BCF44B | Z coords of level | |||||||||||||||||||||||
55 | ARRAY 8-BIT | BCF54B | X coords of level | |||||||||||||||||||||||
56 | ARRAY 8-BIT | BCF64B | Y coords of level | |||||||||||||||||||||||
57 | ARRAY 16-bit | BCF3E2 | What levels are on each map (heads) | Indexed by $7e0002, array always in bank bc | ||||||||||||||||||||||
58 | ARRAY 16-bit | BCF32A | What levels are on each map (paths) | Indexed by $7e0002, array always in bank bc | ||||||||||||||||||||||
59 | ARRAY 8-BIT | .def LevelSelectRight 0xbcf74b | ||||||||||||||||||||||||
60 | .def LevelSelectLeft 0xbcf84b | |||||||||||||||||||||||||
61 | .def LevelSelectUp 0xbcf94b | |||||||||||||||||||||||||
62 | .def LevelSelectDown 0xbcfa4b | |||||||||||||||||||||||||
63 | b580bc | Start of command 8100 | Entity start animation | |||||||||||||||||||||||
64 | ARRAY 32 BIT | 80e1aa | Array of all the tilemaps on the overworld | |||||||||||||||||||||||
65 | ARRAY 32 BIT | 0x80e176 | Array of all the tilesets indexed by $02 * 4 | |||||||||||||||||||||||
66 | ARRAY 16 BIT | 0x80e1de | Array of palettes indexed by $02 * 2. Always in bank b9 | |||||||||||||||||||||||
67 | ARRAY 8 BIT | 0xb9a17c | RGB of each color in the rare logo. 2 rows (0x60 bytes) | |||||||||||||||||||||||
68 | 0xb9a11c | rgb808, r and g same | ||||||||||||||||||||||||
69 | DECOMPRESSION ROUTINE | 0xb89700 | Decompress | |||||||||||||||||||||||
70 | Animation Script Command array | 0xbe83cd | byte 0 of animation script | |||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | 0xb9a50e | Start of vram init array by theme | b9a50e + (theme) * 2 | |||||||||||||||||||||||
73 | Get current kong index | 809b9c | jsl | Puts index in Y | ||||||||||||||||||||||
74 | Camera Map | 0xbc8000 | (16 bits at ($3e*2+bc8000))+bc0000 | |||||||||||||||||||||||
75 | Instrument pointer array 16 bit | 0x8ab20d | Array based on track number. Which instruments to point to | |||||||||||||||||||||||
76 | Array 24 bit | 9xb6984c | x and y coords of mini-drums | |||||||||||||||||||||||
77 | Array 16 bit | 0xbed9ae | Barrel cannon gfx to use | Based on type | ||||||||||||||||||||||
78 | Array 16 bit | 0xbed9ce | Auto barrel cannon gfx to use | Based on type | ||||||||||||||||||||||
79 | Overworld letters GFX | 0xe9d6dc | 0x60 letters, 10 bytes each | Stored as 2bpp but use 4 | ||||||||||||||||||||||
80 | Overworld Heads 1 | 0xc20000 | 0x380 bytes | 7*0x380 (7 indices in animation) | ||||||||||||||||||||||
81 | Percentage Array | 0xbcc288 | Bool - which stages to count for % Also counts max % possible | Non-zero = count | ||||||||||||||||||||||
82 | Sin table | 0xbcbcf0 | ||||||||||||||||||||||||
83 | 24 bit array | 0x818b94 | Tilemap by theme | |||||||||||||||||||||||
84 | 0x818bc0 | If vertical, bank meta is in | Overlaps with 16 bit meta array | |||||||||||||||||||||||
85 | 24 bit array | 0x818c04 | Physics map | |||||||||||||||||||||||
86 | 0x818bbe | 16 bit meta map | ||||||||||||||||||||||||
87 | 0x818be8 | Related to tilemap | ||||||||||||||||||||||||
88 | 0x818c2e | Last tile with physics | ||||||||||||||||||||||||
89 | 0x818c4a | ??? | ||||||||||||||||||||||||
90 | Alphabet | 0xe9d6dc | Stored in 2bpp format | |||||||||||||||||||||||
91 | Function | 0x809713 | Level every frame | |||||||||||||||||||||||
92 | Function | 0xb90000 | Level Init | |||||||||||||||||||||||
93 | Array - 32 bit | 0xb9d7ae | Color math settings | |||||||||||||||||||||||
94 | Interleaved Rareware Palette | 0xb9a17c | rgb each is 1 byte, 5 bits each | Interleaved Rareware logo palette | ||||||||||||||||||||||
95 | Music waveform array, 16 bit | 0x8ab20d | Indexed by track number | |||||||||||||||||||||||
96 | ARRAY 8 BIT | 0xBCF74B | Level right takes you | |||||||||||||||||||||||
97 | ARRAY 8 BIT | 0xBCF84B | Level left takes you | |||||||||||||||||||||||
98 | ARRAY 8 BIT | 0xBCF94B | Level up takes you | |||||||||||||||||||||||
99 | ARRAY 8 BIT | 0xBCFA4B | Level down takes you | |||||||||||||||||||||||
100 | ||||||||||||||||||||||||||