News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Zero Mission Data Guide

Started by interdpth, May 09, 2016, 11:12:43 PM

Previous topic - Next topic

interdpth

Yo! I see you're hacking Zero Mission!

Please check the following resources and this thread!

http://datacrystal.romhacking.net/wiki/Metroid_Zero_Mission:ROM_map
http://datacrystal.romhacking.net/wiki/Metroid_Zero_Mission:RAM_map

And newly found, to change the intro song when Samus "Awakens" the address is 0x060600 and is a single byte.
0x605F8 is the Awaken sound to accompany the intro.

FelixWright

#1
Don't forget to add what biospark found: To change the theme which plays after she "awakens" and that theme plays, find address 0x605F8 and change that single byte to whatever's desired

Edit: Thanks dawg

Luce Seyfarth

#2
I use these pages on datacrystal a lot whenever possible, actually. Here's what I found in the past that isn't listed there:

1. When you get the Fully Powered Suit in Chozodia, Gravity Suit is given to you automatically if you didn't collect it beforehand, just like Varia Suit. The code for this is found at 0x0600EE and is also used when you get Varia Suit normally:


@ 0x0600EE

2020 -> 2020: mov r0, 20 (20 is Gravity Suit)
-- the following is used when getting Varia Suit as well
0843 -> 4308: orr r0, r1  (add Gravity Suit/ Varia Suit to suit and misc. items value)
D073 -> 73D0: strb r0, [r2, f] (store suit and misc. items value to its address ar 0300153f)


You may change the first instruction if you want to make Gravity Suit item-based like me.

EDIT:
change it to

7B90 -> 907B: ldbr r0, [r2, e] (load collected items to r0)



2. To make Ridley appear independent of if you got Gravity Suit, look at his AI:


@ 0x0322D2

01D1 -> D101: bne 1 (branch if Gravity Suit not collected)


Change that to


01E0 -> E001: b 1 (branch whenever)



3. In RAM, address 0x00004A is is a switch for the game HUD; If it is set to anything other than zero, the minimap, energy bar etc. become invisible. This is used for ex. at the ship landing sequence. Having this set to anything other than zero also locks the game if you get into your ship and then come out again.
Address 0x00004B is a switch for button locks, setting it to a number other than zero enables button locking.


4. In RAM, address 0x001D21 is used for music flags, as stated on datacrystal. Information says that values of 10, 20 and 40 do "something". Well, I've found this:
20 is set after Space Pirates see you for the first time prior to getting the Fully Powered Suit, when the alarm is off.
40 is set when Space Pirates see you prior to getting the Fully Powered Suit, while the alarm is on

I don't remember when 10 is set, but is has something to do witch this, too.



raygun

A while ago I copied all of the datacrystal ram addresses to the metconst wiki map, and added some of my own addresses.

http://wiki.metroidconstruction.com/doku.php?id=zero_mission:data_maps:ram_map