Difference between revisions of "Mario vs. Donkey Kong 2: March of the Minis:Notes"

From Data Crystal
Jump to navigation Jump to search
Line 3: Line 3:
 
{{Todo|Combine and check the different notes}}
 
{{Todo|Combine and check the different notes}}
  
==Hiccup's Notes==
+
Notes by different people:
===Level 1-1===
+
* Hiccup ([https://cdn.discordapp.com/attachments/804573885730914316/805542848120225792/mvsdk_1-1_docs.txt 1-1 level format notes for USA version])
<pre>
+
* VGamer78 ([https://cdn.discordapp.com/attachments/804573885730914316/804579268507205662/mario_vs_donkey_kong_2_sprite_ids.txt Sprite IDs for unk version], [https://cdn.discordapp.com/attachments/804573885730914316/804832361308618762/level_documentation.zip 1-6 level format notes for unk version])
note for self: bit 0 is the rightmost bit.
+
* TheMarioVariable ([https://cdn.discordapp.com/attachments/804573329620598857/810271905675346000/MvsDK2_HEX_Documentation_New.odt Level format notes for European version]
 
 
 
 
research was done with USA rev 0 ROM.
 
 
 
 
 
the order  object instances are in their respective array defines their location in the levels' "grid". object instances can be half-way between two "grid points" - they don't have to fit 1:1 with a "square".
 
 
 
background, titleset and music is per world, not per level.
 
the tile "patterns" used for each world are in the floorXX_patterns.bin files (where XX is the world id)
 
 
 
 
 
0x0-0x35 seems to be a header or array of dummy/control objects.
 
 
 
 
 
starting at 0x30, at the latest, is the array of interactive objects. the last instance in this array in 1-1 seems to be at 0x7B6.
 
instances are pairs of bytes. first byte is object type. second byte is parameter.
 
object types:
 
01 = nothing?
 
02 = nothing?
 
03 = mini mario
 
parameters:
 
00T0000D
 
D = is mini mario direction
 
0 = right
 
1 = left
 
T = mini mario type
 
0 = normal
 
1 = gold
 
04 = crash
 
05 = nothing?
 
2B = nothing? (used)
 
B1 = nothing?
 
B2 = glitchy
 
enemy that catches mini mario when touched? (glitchy graphics in setup i tried it)
 
B3 = nothing?
 
B4 = starman powerup
 
unused, but haven't checked if its offscreen in some level or anything
 
no obvious parameters
 
B4 = bouncing fireball
 
maybe the one spawned by fire mario. don't know if its placed in a level or not.
 
B5 = yellow spring
 
files:
 
data\anims\spring_anim.bin
 
6A = piranha plant
 
files: data\anims\pirahna_plant1_anim.bin
 
data\anims\pirahna_Plant1_Ball_anim.bin
 
parameters:
 
30 0110000 up ?
 
68 1101000 down ?
 
60 1100000 right ?
 
70 1110000 up ?
 
38 0111000 up fireball
 
18 0011000 up no fireball
 
08 0001000 down no fireball
 
 
 
 
73 = bouncing candle [world 4]
 
9F = blue spring
 
FF = nothing?
 
 
 
0x7b0-0x7ff in 1-1 is part of the array of tile objects. the first instance in this arrway in 1-1 seems to be at 0x7B8.
 
its not clear how many bytes makes up an instance, but the first byte of each instance seems to describe the object type.
 
object types:
 
see /tile_objs/
 
 
 
 
 
roughly 0x16b8-0x1a77 in 1-1 seems to be the array of collision tiles.
 
 
 
 
 
some kind of object array
 
2B = goal
 
 
 
</pre>
 
 
 
==VGamer78's Notes==
 
===Level 1-9===
 
<pre>
 
Alright so we will be look at 1-9 as a guide. As of right now, I barely know anything but I will tell
 
you what I have learned so far.
 
 
 
The first few lines of code I believe is the header data for the level. The only thing I understand from it
 
so far is the sprite data. In level 1-9 you should see some lines of code in a hex editor that look like this :
 
 
 
03 00 00 00 96 00 00 00 9C 00 00 00 A6 00 00 00 AE 00 00 00 B5 00 00 00
 
 
 
All of this is the sprite data in the level. If the sprite you are trying to put in a level isn't one
 
of these values, the sprite will be invisible in the level. It seems like the sprite values count in 8
 
bytes. Meaning the six 0's after each value has to be that way. In case if you are wondering what each value
 
is.
 
 
 
03 is for Mini Mario
 
96 is for the elevator platform itself (yes it's a sprite)
 
9C is for Shy Guy's
 
A6 is for Hammers
 
AE is for Toss/Circus Kong
 
B5 is for the Yellow Springboard
 
 
 
 
 
As of right now, I don't know how you can add more sprite data to a level since what I have tried has
 
crashed the game so far. But we will be looking at two things you can do if you want to edit the sprites.
 
After the header data, you will see a bunch of 00's. All of this is where the sprites are stored in levels.
 
This is usually very long and will go on until you see things such as 1B a few 00's and then 1B again and so on.
 
For how sprites work in the levels themselves all I know is that it goes by XX (sprite number itself) and the value
 
after that is it's facing position. 00 is facing right and 80 is facing left. When scrolling in the level data
 
for 1-9, the first sprite you should find is is A6 00, which is the hammer powerup. If we were to change
 
this to 9C 00, it will become a Shy Guy. We could also use this sprite as a guide if we wanted to add
 
another sprite next to it in a level. The 00 00's next to this can have sprites on them, they just are empty.
 
You will notice that all of the levels in the sprite section of the data has a lot of 00 00's since all levels
 
have more sprite positions without sprites instead of vice versa.
 
 
 
If we want to add a sprite from another level here, we are able to but there are things we need to consider.
 
The method we will have to do is replace a sprite slot with the one we want. If we want to replace the
 
Circus/Toss Kong with the Capture Kong in the level. What we would need to do is change the AE 00 00 00
 
to B2 00 00 00 in the sprite header data section. When we do this the Circus/Toss Kong's in the level will
 
now be invisible if we were to test the level. What we could do is either get rid of the Circus/Toss Kong's
 
in the level or replace them with Capture Kong's.
 
</pre>
 
 
 
===Sprite IDs===
 
<pre>
 
03 - Mini Mario
 
63 - Bob-omb (From the Shy Guy Minigame)
 
65 - Spark (no generator)
 
66 - Oil Drum (Jumps up and down) unused?
 
67 - Fireball
 
68 - Thwomp
 
69 - Crab
 
6A - Piranha Plant (Mouth Open)
 
6B - Piranha Plant's Fireball
 
6C - crashes game
 
6D - Blooper
 
6E - Bomb-fish (From Special Kit 3)
 
6F - Podoboo
 
73 - Candle
 
74 - Snapjaw
 
75 - Vertical Snapjaw
 
76 - Jumpstand?
 
96 - Elevator Platform
 
97 - Donut Block (Doesn't Fall?)
 
98 - Water/Lava Platform
 
9A - Bomb Block
 
9B - Bomb (From Gray Blocks)
 
9C - Shy Guy
 
9D - Small Brown Barrel??
 
9E - Brown Box
 
9F - Blue Springboard
 
A2 - Balance Board Platform
 
A4 - Vertical Facing Yellow Switch Door
 
A5 - Yellow Switch Button
 
A6 - Hammers
 
A7 - Vertical Facing Switch Door
 
A8 - Yellow Switch Button
 
A9 - Vertical Facing Yellow Switch Door (Again?)
 
AA - Yellow Switch Button (Again?)
 
AB - Yellow Switch Door
 
AC - Yellow Switch Door (Again..)
 
AD - Yellow Switch Door (Again?)
 
AE - Toss Kong
 
B2 - Capture Kong
 
B3 - Weird Brown Egg
 
B4 - Starman powerup (Gives you the blue shield ability) * unused
 
B5 - Yellow Springboard
 
B7 - Gray Shy Guy
 
B8 - Firebar
 
B9 - Crush Kong
 
BA - Cool Kong
 
BB - Lift Platform (From Floor 6 and 8)
 
BF - Kong Thwomp
 
C0 - Donut Block
 
C1 - Phantom Guy (Yellow)
 
C2 - Boo (unused)
 
C3 - Skeleton Guy
 
C4 - Blue Shy Guy (Shoots a Snifit Bullet sometimes)
 
C5 - Snifit
 
C9 - Starman (unused)
 
D0 - Blue Shield (From DK Basement Stage 2)
 
</pre>
 
 
 
 
 
==TheMarioVariable's Notes==
 
Note: European ROM was used
 
===Level Format===
 
====Hex Header====
 
These are always found at the very beginning of every level file. These codes are needed to load primary files.
 
 
 
0x00 = Unknown (always set on 0A 00 00 00)<br>
 
0x04 = Loads actor values (always set on 14 00 00 00)<br>
 
0x08 = Loads tileset values<br>
 
0x0C = Links to hex that loads level size values<br>
 
0x10 = Links to hex that loads level special features (pipes, water, etc)<br>
 
 
 
=====Example from Room G-1=====
 
xxxx
 
  
 
{{Internal Data|game=Mario vs. Donkey Kong 2: March of the Minis}}
 
{{Internal Data|game=Mario vs. Donkey Kong 2: March of the Minis}}

Revision as of 11:27, 14 February 2021

Notes by different people:


Internal Data for Mario vs. Donkey Kong 2: March of the Minis

ROM MapRAM MapText TableNotesTutorials