Welcome Guest [Log In] [Register]
MMBN4 Custom Battle Guide; New method!
Topic Started: Oct 27 2011, 05:22 PM (1,794 Views)
MegaRockEXE
Member Avatar
BN Guides Author

It's been a very long time since the previous MegaMan Battle Network 4 guide. Things have changed and I've come up with a much handier method for making custom battles now. I promise: less hassles, more flexible.

So far I've only got it working for Red Sun US. There is still the EU version and all JP versions left.
You're going to need VBA and a backup of the game. Same procedure most people should already be familiar with.

Making a battle is the goal, but since the game offers no anytime freefights, we can't do that. Instead the DogHouse Comp will be the subject. Early access advantages. You're still going to run around, but save yourself the time and create a state save where the next step is likely the battle.

So you're in the DogHouse.
Posted Image

Start by actually making the battle. This method involves making the battle in free space. We will be using VBA's Memory Viewer to write temporary changes. The changes can always be made permanent through HxD or other hex editor. Here are the offsets for the default freespace on unpatched games.

Code:
 
Red Sun +Blue Moon (US)
087F73A0


Enter this in the memory viewer and have the view on 8-bit. The first part we'll write is the battle's settings. The settings format is documented below. You add the hexadecimal offset to the free space offset to locate the exact function a byte has. Use the documentation to fill in all the appropriate data for your battle.

Code:
 
0x00 Unknown (must be 20 to encounter battle)
0x01 Battlefield Setup
0x02 Unknown
0x03 Music
0x04 Battle Mode
0x05 Background
0x06 Enemy Level/Effect
0x07 Battle Number Count
0x08 Objects Setup Pointer (4 bytes)


0x00
I don't know what this is but all I know is it must be 20 so you can actually encounter the battle. You shouldn't have to worry about this.

0x01
This byte sets the kind of battlefield which will load. The game has a couple hundred predefined battlefields, usually in order by panel. I don't have list so try anything. Make it 00 for a plain field.

0x02
Don't know. Make it FF.

0x03
Byte which sets the music. Below is a list of values you can use. Default is 14.
Code:
 
00 = Title Screen
01 = Mysterious Shademan Theme
02 = ACDC Theme
03 = Indoors Theme
04 = ElecTopia Theme
05 = DenDome Theme
06 = Castillo Theme
07 = Netopia Theme
08 = NAXA Theme
09 = Tournament Selection
0A = Dracky Castle
0B = Crisis
0C = Sad Theme
0D = Hero Theme
0E = Transmission
0F = ElecTownTower Theme
10 = ToyRobo Comp
11 = Space Comp
12 = Network Theme
13 = Undernet Theme
14 = Virus Battle
15 = Boss Battle
16 = Final Battle
17 = Tournament Theme
18 = Results
19 = Loser
1A = Game Over
1B = Enemy Encounter
1C = Credits
1D = Navi Customizer
1E = Reuslts (short version)
1F = Tournament Winner
20 = Dracky Comp
21 = Operation Battle Music
22 = No Music


0x04
Byte which sets the Battle Mode. It can turn a regular battle into a battle with special properties. Below is a list of possible values. Default is 00
Code:
 
1B = Can't run away
40 = Tutorial 1
41 = Tutorial 2
42 = Tutorial 3
43 = Double Soul Tutorial
44 = Free Tournament Mode
45 = No Results
46 = Network Battle (auto-disconnects)


0x05
Byte which sets the background. Below is a list of possible values. Default is FF which adapts to the current map's background.

Code:
 
00 = ElecTownTower BG
01 = ToyRobo BG
02 = Lan's PC BG
03 = Regular PC BG
04 = ACDC Area BG
05 = Town Aea BG
06 = Castillo BG
07 = YumLand BG
08 = Undernet BG
09 = Dark Regular PC BG
0A = Space BG
0B = Mayl BG
0C = Dex BG
0D = Yai BG
0E = Hotel BG
0F = Soldier BG
10 = Town HP BG
11 = Black Earth BG
12 = Dracky BG
13 = Netopia Area BG
14 = Netfrica Area BG
15 = Sharo Area BG
16 = Satelite BG
17 = Duo BG
18 = Green Tournament BG
19 = Blue Tournament BG
1A = Gold Tournament BG


0x06
This byte can affect enemy levels in the current battle and make the tournament green lines appear. Bytes are made in bits to get the desired effect. If you're using Windows 7, the Windows Calculator will be great for this part.
Posted Image
In Programmer mode, with Hex selected, notice the 1s on the bottom-right of the bits viewer. Clicking on the 1s and 0s toggles them and in the table below, 1 is the 1 flagged on the right, and 8 is the one on the left. It don't know what else it can do. Default is 81.

This byte has 3 known effects. The byte is composed of bits to combine effects. Using the table below, add the values in hex to get the desired effects. Default is 81.
Code:
 
1 = Battle can be encountered
2 = Unknown
4 = Unknown
8 = Unknown
10 = Unknown
20 = Tournament Intro
40 = Unknown
80 = Force Lower Level


0x07
Byte which adds a battle counter at the start of the match. Default is 00. If the byte is 01, it will say Battle 1, and so on.

0x08
This is where the pointer to the Objects Setup goes. We'll use the free space 087F73B0. Since the view is in 8-bit, you write the pointer backwards: B0 73 7F 08

Here are default bytes you can use for a regular battle:
20 00 FF 14 00 FF 81 00 + pointer



Now since you already chose the location for the Objects Setup, we can work on that part next.
Objects take 4 bytes and can be anything from Rocks to MegaMan. The Objects Format is documented below.

Code:
 
0x00 = Object/Enemy Value
0x01 = X-Position
0x02 = Y-Position
0x03 = Object Type


0x00
This byte changes depending on what the object type is. In most cases, odd numbers means its the enemy and even numbers mean its on your side. If this byte is FF, no more values will be read and effectively cuts off a battle.

If 0x03 is set to Enemy, here are the value for different enemies.
Code:
 
00 = 4000HP MegaMan
01 = Mettaur
02 = MettaurEX
03 = Mettaur2
04 = Mettaur2EX
05 = Mettaur3
06 = Mettaur3EX
07 = VolGear
08 = VolGearEX
09 = VolGear2
0A = VolGear2EX
0B = VolGear3
0C = VolGear3EX
0D = Billy
0E = BillyEX
0F = Silly
10 = SillyEX
11 = Killy
12 = KillyEX
13 = Gaia
14 = GaiaEX
15 = Gaia+
16 = Gaia+EX
17 = GaiaMega
18 = GaiaMegaEX
19 = Spikey
1A = SpkieyEX
1B = Spikey2
1C = Spikey2EX
1D = Spikey3
1E = Spikey3EX
1F = Shrimpy
20 = ShrimpyEX
21 = Shrimpy2
22 = Shrimpy2EX
23 = Shrimpy3
24 = Shrimpy3EX
25 = Boomer
26 = BoomerEX
27 = Gloomer
28 = GloomerEX
29 = Doomer
2A = DoomerEX
2B = Trumpy
2C = Tuby
2D = Tromby
2E = MuteAnt
2F = Xylos
30 = TrumpySP
31 = MagTect
32 = MagTectEX
33 = MagTect+
34 = MagTect+EX
35 = MagTectX
36 = MagTectX EX
37 = Melody
38 = MelodyEX
39 = Hellody
3A = HellodyEX
3B = Felony
3C = FelonyEX
3D = Dharma
3E = DharmaEX
3F = Karma
40 = KarmaEX
41 = Dogma
42 = DogmaEX
43 = Kilby
44 = KilbyEX
45 = Kilbur
46 = KilburEX
47 = Kilbo
48 = KilboEX
49 = Weather
4A = Whomper
4B = Winger
4C = Wonder
4D = Wither
4E = WeatherSP
4F = Spidy
50 = SpidyEX
51 = Webby
52 = WebbyEX
53 = Arachy
54 = ArachyEX
55 = Lark
56 = LarkEX
57 = Bark
58 = BarkEX
59 = Tark
5A = TakrEX
5B = CirKill
5C = CirKillEX
5D = CirCrush
5E = CirCrushEX
5F = CirSmash
60 = CirSmashEX
61 = Moloko
62 = MolokoEX
63 = Milko
64 = MilkoEX
65 = Macko
66 = MackoEX
67 = Walla
68 = WallaEX
69 = Walland
6A = WallandEX
6B = Waldon
6C = WaldonEX
6D = Elemperor1
6E = Elemperor2
6F = Elemperor3
70 = Elemperor4
71 = Elemperor5
72 = ElemperorSP
73 = BombBoy
74 = BombBoyEX
75 = BombWorker
76 = BombWorkerEX
77 = BombLaboror
78 = BombLabororEX
79 = WindBox
7A = VaccuumFan
7B = WindBox2
7C = VaccuumFan2
7D = WindBox3
7E = VaccuumFan3
7F = NO NAME
80 = Roll
81 = RollV2
82 = RollV3
83 = RollSP
84 = GutsMan
85 = GutsManV2
86 = GutsManV3
87 = GutsManSP
88 = WindMan
89 = WindManV2
8A = WindManV3
8B = WindManSP
8C = SearchMan
8D = SearchManV2
8E = SearchManV3
8F = SearchManSP
90 = FireMan
91 = FireManV2
92 = FireManV3
93 = FireManSP
94 = ThunderMan
95 = ThunderManV2
96 = ThunderManV3
97 = ThunderManSP
98 = ProtoMan
99 = ProtoManV2
9A = ProtoManV3
9B = ProtoManSP
9C = NumberMan
9D = NumberManV2
9E = NumberManV3
9F = NumberManSP
A0 = MetalMan
A1 = MetalManV2
A2 = MetalManV3
A3 = MetalManSP
A4 = JunkMan
A5 = JunkManV2
A6 = JunkManV3
A7 = JunkManSP
A8 = AquaMan
A9 = AquaManV2
AA = AquaManV3
AB = AquaManSP
AC = WoodMan
AD = WoodManV2
AE = WoodManV3
AF = WoodManSP
B0 = TopMan
B1 = TopManV2
B2 = TopManV3
B3 = TopManSP
B4 = ShadeMan (invincible story version)
B5 = ShadeManV2
B6 = ShadeManV3
B7 = ShadeManSP
B8 = BurnMan
B9 = BurnManV2
BA = BurnManV3
BB = BurnManSP
BC = ColdMan
BD = ColdManV2
BE = ColdManV3
BF = ColdManSP
C0 = SparkMan
C1 = SparkManV2
C2 = SparkManV3
C3 = SparkManSP
C4 = HeelNavi
C5 = HeelNaviV2
C6 = HeelNaviV3
C7 = HeelNaviSP
C8 = NormalNavi
C9 = NormalNaviV2
CA = NormalNaviV3
CB = NormalNaviSP
CC = HeelNavi
CD = HeelNaviV2
CE = HeelNaviV3
CF = HeelNaviSP
D0 = LaserMan
D1 = LaserManV2
D2 = LaserManV3
D3 = LaserManSP
D4 = KendoMan
D5 = KendoManV2
D6 = KendoManV3
D7 = KendoManSP
D8 = VideoMan
D9 = VideoManV2
DA = VideoManV3
DB = VideoManSP
DC = NaviShadow
DD = NaviShadowSP
DE = NaviBlack
DF = NaviBlackSP
E0 = Duo
E1 = DuoV2
E2 = DuoV3
E3 = DuoSP
E4 = Bass
E5 = BassSP
E6 = BassXX
E7 = NO NAME
E8 = NO NAME
E9 = NO NAME
EA = NO NAME
EB = NO NAME
EC = NO NAME
ED = NO NAME
EE = NO NAME
EF = NO NAME
F0 = MegaManDS
F1 = RollDS
F2 = GutsManDS
F3 = WindManDS
F4 = SearchManDS
F5 = FireManDS
F6 = ThunderManDS
F7 = ProtoManDS
F8 = NumberManDS
F9 = MetalManDS
FA = JunkManDS
FB = AquaManDS
FC = WoodManDS
FD = NO NAME


If 0x03 is set to Mystery Data, this byte is used to get the reward pool defined in the game. I do not know what the reward polls hold. Values start at 0B and up.

If 0x03 is set to Flag, this byte sets the HP and the side of the flag. Flags can have a maximum of 1016 HP. Values 00-7F are reserved for HP for your flag. 80-FF are reserved for the enemy's flag's HP. Flag HP is in 8s so to get an 800 HP flag, you would divide 800 by 8 and convert it to hex. 64h = 800HP. To make it an enemy flag, just add 80h to 64h.

0x01
X-position of the object in whole panels. Use the table below.
[1][2][3][4][5][6]

0x02
Y-position of the object in whole panels. Use the table below.
[1]
[2]
[3]

0x03
Object type byte. Use the values below to create the specified object.
Code:
 
00 = Playable MegaMan
01 = Enemy
02 = Mystery Data
03 = Rock
04 = GutsMan DS
05 = MetalMan Gear
06 = *nothing*
07 = Flag
08 = Fight on left side


Refer to 0x00 for their individual use.

There are some limitations in setting up battles. You can have a maximum of 4 Enemies or MegaMan on one side. The 4th enemy will behave oddly as the game does not natively support 4 enemies on one side. You can only have 2 Rocks on the battlefield. Same for Flag and the MetalMan gear. A third won't show up. You can only have 1 Mystery Data. Enemies on your side will usually have a hard time hitting enemies.

Finally, don't forget to actually have the battle show up. Go to the offset below.

Code:
 
Red Sun (US)
080FE610

Blue Moon (US)
080FE61C


Type in the free space offset correctly and the battle you made should be the only battle to show up.

I hope that made sense and I'm glad I've been able to write a more comprehensive guide. The other games should get the same treatment. Please don't repost without my permission and enjoy!
Edited by MegaRockEXE, Feb 14 2012, 02:02 PM.
The Rockman EXE Zone | YouTube
Profile
Quote
 
Prof. 9
Member Avatar
Moderaptor

It certainly looks better than the previous guide.

Instead of teaching how bits work (rather awkwardly) you could instead instruct the user to add up certain values to get the effects they want. People who know how bits work will instantly recognize what they have to do, too.
:ninja: Follow me on Twitter! :trap: Fork me on GitHub!
Posted Image
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

Prof. 9
Oct 29 2011, 10:42 AM
It certainly looks better than the previous guide.

Instead of teaching how bits work (rather awkwardly) you could instead instruct the user to add up certain values to get the effects they want. People who know how bits work will instantly recognize what they have to do, too.
Good point. Seems the only bits that work as 80, 20, and 1.
The Rockman EXE Zone | YouTube
Profile
Quote
 
exeguy1
No Avatar
Newb
Any way to make other DS navis appear besides GutsmanDS?
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

Updated!
Added Blue Moon offsets, added "can't run away" byte. De-staffed the 0x06 byte. And also added a break between the battle settings and object setup sections.
The Rockman EXE Zone | YouTube
Profile
Quote
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Guides & Research · Next Topic »