Super Pitfall:ROM map
From Data Crystal
Sprite manipulation parameters 00 = nothing 40 = flip H 80 = flip V C0 = rotate 180 0x193E8 to 0x193EF = Harry's attributes 0x1842E to 0x18453 = Harry standing right 0x18454 to 0x18465 = Harry walking right 1 0x18466 to 0x18477 = Harry walking right 2 0x18478 to 0x18489 = Harry walking right 3 0x1848A to 0x1849B = Harry walking right 4 0x1849C to 0x184AD = Harry walking left 1 0x184AE to 0x184BF = Harry walking left 2 0x184C0 to 0x184D1 = Harry walking left 3 0x184D2 to 0x184E3 = Harry walking left 4 0x18506 to 0x18515 = Jumping right 0x18516 to 0x18527 = Jumping left 0x1854A to 0x18559 = Swimming right 1 0x1855A to 0x18569 = Swimming right 2 0x1856A to 0x18579 = Swimming right 3 0x1857A to 0x1858B = Swimming right 4 0x1858C to 0x1859D = Swimming left 1 0x1859E to 0x185AF = Swimming left 2 0x185B0 to 0x185C1 = Swimming left 3 (185BF change to 40 to fix the tile) 0x185C2 to 0x185D3 = Swimming left 4 0x185D4 to 0x185E5 = Ladder 1 0x185E6 to 0x185F7 = Ladder 2 0x185F8 to 0x18609 = Ladder 3 0x1860A to 0x1861B = Ladder 4 0x1861C to 0x1862D = Ducking 0x18B3C to 0x----- = Bullet right amount of tiles 0x18B3D to 0x----- = Bullet right vertical position (originally 18. change to 23 [does not affect its hit box though]. 0F shoots from the foot) 0x18B3E to 0x----- = Bullet right tile 0x18B3F to 0x----- = Bullet right transform and color 0x18B40 to 0x----- = Bullet left 0x190B0 to 0x190BD = Dying 1 0x190BE to 0x190CB = Dying 2 0x19144 to 0x19153 = Standing position fine tuning (change to F8 E6 00 E6 F8 EE 00 EE F8 F6 00 F6 F8 FE 00 FE so the standing pose doesn't enter the floor by 2 pixels) 0x1EC22 to 0x----- = Change to 0A so standing position is correct when exiting ladder to the left 0x1EC42 to 0x----- = Change to 0A so standing position is correct when exiting ladder to the right 0x020B5 to 0x----- = Change to 0A so standing position is correct when standing on moving platforms 0x01F96 to 0x----- = Change to 0A so standing position is correct when standing on falling platforms 0x1870C to 0x18743 = Spider walking 0x1877C to 0x1878F = Unused spider 0x18934 to 0x----- = Change to D5 to fix waterfall 0x1895A to 0x----- = Change to D5 to fix waterfall 0x188C2 to 0x----- = Change to FF to fix moai 0x188F6 to 0x----- = Change to FF to fix moai 0x189A2 to 0x----- = The balloon metatile 1 0x189C0 to 0x----- = The balloon metatile 2 dynamic (uses background bank): 0x01008 to 0x----- = Wide spikes chain 0x01018 to 0x----- = Moving spikes background 0x0102C to 0x----- = Narrow spikes chain 0x02133 to 0x----- = Lava top 0x0219E to 0x----- = Water top 0x0246A to 0x02479 = Crystal balls 0x0247A to 0x----- = Locks 0x02492 to 0x----- = Diamond 0x024A6 to 0x----- = Lion 0x205FF to 0x----- = Niece cursed 0x02905 to 0x----- = Width and height of replaced graphics temporary graphic pointers = new pointer 0x02327 to 0x----- = crystal balls (AB48) (2B58) (change to from A9 BA 48 85 22 A8 A4 to A9 48 85 22 A9 AB) 0x02587 to 0x----- = Niece (AB40) 0x026A9 to 0x----- = Lion 0x02786 to 0x----- = Raj 0x02841 to 0x----- = Small gold 0x0284A to 0x----- = Width and height of replaced small gold 0x02877 to 0x----- = Small gold width and height 0x028FC to 0x----- = Medium gold 0x02932 to 0x----- = Medium gold width and height 0x029B7 to 0x----- = Big gold 0x029C0 to 0x----- = Width and height of replaced big gold 0x029ED to 0x----- = Big gold width and height 0x1D637 to 0x----- = Around that, intermission headers 0x1E1DB to 0x----- = Change to FF to solve the lives problem 0x1E118 to 0x----- = Change to EA EA to fix the demo crashing 0x1E124 to 0x----- = Change to EA EA to fix the demo crashing 0x17090 to 0x----- = New FF setter for the hud's 4 digits 0x17050 to 0x----- = Where it breaks to the new FF setter 0x01E8D to 0x----- = Color or the big moving platform 0x0201B to 0x----- = Color or the small moving platform 0x0261A to 0x----- = Which sprite to load for the lion cage 0x0261F to 0x----- = Which palette to use for the lion cage sprite 0x026EC to 0x----- = Lion cage's vertical hitbox 0x026F0 to 0x----- = Lion cage's horizontal hitbox 0x025DC to 0x----- = Niece's vertical hitbox 0x025E0 to 0x----- = Niece's horizontal hitbox 0x18D6A to 0x18D6D = Imp's shot right 0x18D6E to 0x18D71 = Imp's shot left 0x1936C to 0x19377 = Fix imp's metasprite positions 0x19194 to 0x1919B = Fix lobster's metasprite positions 0x192F6 to 0x19349 = Cavemen metasprites
max length type (EST.) used by ---- ------ ------- 00 8 Harry various positions 01 8 02 8 03 8 04 8 05 4 06 6 07 6 Unused 08 6 Unused 09 5 Unused 0A 7 Unused 0B 7 0C 16 0D 1C 0E E 0F D 10 8 Vine 1 11 8 Vine 2 12 8 Vine 3 13 8 Vine 4 14 8 Vine 5 15 8 Vine 6 16 8 Vine 7 17 8 Vine 8 18 4 19 7 Unused 1A D Unused 1B 10 1C C 1D B 1E 12 1F HUD 20 6 21 2 22 2 23 2 Key 24 8 Unused 25 9 26 5 27 8 28 8 29 E Unused
0x04020 to 0x040EF = Overworld room ID map 0x040F0 to 0x07BFF = Start of each room mapping in 2x2 metatiles. Each room is 15x16 (240) bytes long. 0x0C020 to 0x0C0EF = Darkworld room ID map 0x0C0F0 to 0x0E0CF = Darkworld metatile map 0x10020 to 0x100EF = Hidden areas room ID map 0x100F0 to 0x13A1F = The hidden areas rooms 0x13920 to 0x13A1F = An unused test room with gold and ladders 0x14000 to 0x1421F = Object list mapping for overworld quest 1. They are read 1 by 1 depending on coordinates on the map (1 for each room). These are simple pointers to the object list bellow. Objects are read from that point onward untill they hit a FF and that means no more loading objects for that room. an object list can have any number of objects, just make sure pointers point to the right places after FF
Room's Object List
Rooms can reutilize object lists.
0x14220 to 0x147F6 = Object list for overworld quest 1. Each item takes 3 bytes. First byte is type, second is horizontal position and third is vertical position. Some items take 4 bytes, so the second is a parameter, and the last two are the position 0x14A9F to 0x14C60 = Object list for darkworld 0x14E60 to 0x14FB8 = Object list for big warpzone 0x14FB9 to 0x15015 = Object list for medium warpzone 0x15016 to 0x15046 = Object list for small warpzone 0x1F71A to 0x----- = Spawn point list. This is just the screen coordinates where to position harry when spawning on room. It doesn't know which room it is on.
0x142dc to 0x----- = Where the first gun is stored 0x142dd to 0x----- = Item parameter. it's used on warps for example (01 to 0x08 are preset warp destinations) 0x142de to 0x----- = Gun horizontal position 0x142df to 0x----- = Gun vertical position 0x142b1 to 0x----- = The warp to the darkworld 0x1dc44 to 0x----- = Warp list pointer 0x1dc66 to 0x----- = Warp list location. each warp is 4 bytes long. (map, room, hor pos, vert pos). map: 0 = main 1 = underworld 2 = alternate 0x144ED to 0x----- = Where one of the diamonds are stored (13). 0x1DBE6 to 0x1DC25 = The button sequence for the demo
Increase a note by a halfstep by adding 15 to the hexidecimal value. To raise it by an octave, increase the hexidecimal value by one. Value Note ---- ---- 0F Rest 12 A#3 22 ??? 32 C-4 42 C#4 52 D-4 62 D#4 91 F#3 A1 G-3 B1 G#3 C1 A-3 F6 REST
0x19B1C to 0x19B26 = Extra life 0x19B50 to 0x19B5A = Grab item 0x19B74 to 0x19B7E = Shot sound 0x19B9C to 0x19BA6 = Jump sound
A note is represented by two bytes: Byte 1: Note letter and octave Byte 2: Time until next note.
0x19BF4 to 0x19CBC = Balloon music
0x19CBD to 0x19CBF = Triangle Channel Data 0x19CC1 to 0x19D34 = Triangle Channel Notes 0x19D40 to 0x19D85 = Noise Channel
(Source: nesrocks & FCandChill)
|Internal Data for Super Pitfall|