Skip to main content

MMBN5DS Custom Battle Guide

Mega Man Battle Network 5 DS is the slightly enhanced port of the GBA version of the game. This game introduces the Party Battle System which lets you swap out Navis during battle. Some extra features were also added like voice acting.

This guide will require you to use the DeSmuME emulator and a backup of the game. I do not condone piracy, but if you somehow already have a copy, follow along.

Just like in the GBA version, this guide will focus on the MagnetMan freefight for Team ProtoMan and the KnightMan freefight for Team Colonel. Both Navis can be fought in Oran Area 1.

You can also download a save for this part of the game.

Download Battle Network 5 DS saves.

Here are the freefights.

Using DeSmuME’s Memory viewer window, the following steps will let you make temporary changes. Also, because the RAM will be edited, changes will be lost if you reload the game or don’t state save after making changes. You can find the same data on the NDS file itself and make the changes permanent if you follow this guide using a hex editor like HxD.

The Battle Settings offset is the same regardless of the version selected or used. Go to the following offset.

021D2DB8

The Battle Settings has the following data as default values.
00 64 16 00 FF 00 38 00 D7 88 01 40 34 1D 02

The format for the Battle Settings is the same as before and is documented below.

0x00 Battlefield
0x01 Unknown
0x02 Music
0x03 Battle Mode
0x04 Background
0x05 Battle Count
0x06 Panel Column Pattern
0x07 Unknown
0x08 Battle Effects (4 bytes)
0x0C Object Setup Pointer

Remember to use the previous offset as a base offset to add these values and properly locate the correct data.

0x00 Battlefield

First byte specifies the battlefield to use. The game has 190 different stages. At 00, the stage is plain with no special panel types.
Default is: 00

Download all stages.

0x01 Unknown

This byte is never read and has no effect on the battle.
Default is: 64

0x02 Music

This byte lets you use any track from the game as background music for the battle. The new tracks from the game are also selectable. The full music list is below.
Default is: 16

00 = No Music
01 = Title Screen
02 = Mysterious Theme
03 = ACDC Theme
04 = Indoors Theme
05 = SciLab Theme
06 = Oran Island Theme
07 = Queen Bohemia Theme
08 = End City Theme
09 = Nebula Base Theme
0A = No music
0B = Old Mine Theme
0C = Event Occurrence
0D = Sad Theme
0E = Hero Theme
0F = Transmission
10 = Main Comp Theme
11 = Drill Comp Theme
12 = Factory Comp Theme
13 = Internet Theme
14 = Undernet Theme
15 = Virus Battle
16 = Boss Battle
17 = Final Battle
18 = Liberate Complete
19 = Winner Theme
1A = Loser Theme
1B = Game Over
1C = Boss Prelude
1D = Credits Theme
1E = Navi Customizer
1F = Winner Theme (short version)
20 = Ship Comp Theme
21 = Gargoyle Comp Theme
22 = Liberation Mission
23 = Mini-Game Theme
24 = 1 Turn Liberate
25 = BN1 Battle Remix
26 = BN2 Battle Remix
27 = BN3 Battle Remix
28 = BN4 Battle Remix
29 = BN4.5 Battle Remix

0x03 Battle Mode

The Battle Mode byte lets you play special types of battles like tutorials. The full list is below.
Default is: 00

00 = Normal Battle
01 = Crossover Battle
02 = Tutorial 1
03 = Tutorial 2
04 = Tutorial 3
05 = Double Soul Tutorial
06 = Liberation Battle
07 = Unused Chaos Unison Tutorial
08 = Party Battle System Tutorial

Some notes:
Crossover Battle is sort of unplayable without a connection.
The Party Battle System is disabled for all tutorials except its own tutorial.
The Party Battle System behaves differently in the Liberation Battle mode where MegaMan is always reserved as support, but does nothing.

0x04 Background

This byte lets you change the background for the battle. The full background list is below.
Default is: FF

00 = Main Comp BG
01 = Drill Comp BG
02 = Lan's HP BG
03 = Mayl's HP BG
04 = Dex's HP BG
05 = Yai's HP BG
06 = Generic Comp Yellow BG
07 = Generic Comp Blue BG
08 = ACDC Area BG
09 = Oran Area BG
0A = SciLab Area BG
0B = VisionBurst BG
0C = ACDC Area BG
0D = Oran Area BG
0E = SciLab Area BG
0F = End Area BG
10 = Ship Comp BG
11 = SciLab HP BG
12 = End Area BG
13 = Gargoyle Castle HP BG
14 = End Area BG
15 = Soul Server Comp BG
16 = Gargoyle Comp BG
17 = Factory Comp BG
18 = Undernet BG
19 = Nebula Area BG
1A = Undernet BG
1B = Nebula Grey Battle BG
1C = Nebula Area BG

Download all backgrounds.

0x05 Battle Count

For values above 00, the number of the battle appears after the viruses appear. This is normally reserved for sequential battles.
Default is: 00

0x06 Panel Column Pattern

By default, there are 3 red columns on the left and 3 blue columns on the right. Because of Liberation battles, it is possible to have irregular column patterns. Each column can either be a 0 bit or 1 bit, red, or blue. Using this simple binary-to-hex converter, enter the column order in bits, in reverse. For example, 111000 becomes 38, the normal stage. Use the output hex value in the game. When an irregular pattern is used, you can turn your Navi around with L or R. Push both L and R to enter the custom screen.
Default is: 38

0x07 Unknown

This byte is never read and has no effect on the battle.
Default is: 00

0x08 Battle Effects

This 32-bit, 4 byte value serves as flags for various effects in battle. You can add the values in hex to use multiple effects. The list of effects are below.
Default is: D7 88 01 00

00000001 = Boss Ranking Mode
00000002 = Show Results
00000004 = Start with Max HP
00000008 = Network Battle
00000010 = Recover to Max HP After Battle
00000020 = Allow Running and Keep Full Sync
00000040 = Keep HP After Battle
00000080 = Folder is Randomized
00000100 = Allow Game Over
00000200 = Unknown
00000400 = Multiplayer Sequence Battle
00000800 = Battle Counts for Karma
00001000 = Regulate Panels
00002000 = Unknown
00004000 = Allow Locate Enemy SubChip and Keep Full Sync
00008000 = Force Low Enemy Level
00010000 = Unknown
00020000 = Unknown
00040000 = Force ChaosLord Name
00080000 = Unknown
00100000 = Disallow Dark Chips
00200000 = Use Default Karma
00400000 = Party Battle Multiplayer
00800000 = Disallow Party Battle System

Some notes:
In Boss Ranking Mode, defeating 1 enemy can still get you an S-rank. The other boss-specific rules apply.
Network Battle won’t work and ends the battle immediately.
For 00000040, this means you keep the HP you had at the end of the battle, similar to virus battles. If you ended with 1HP, you have 1HP back on the overworld.
00000400 will make the second battle vs a 100HP MegaMan. It is unknown how to customize the sequence battle.
The 00000800 bit will make the battle count for Karma. Karma goes up by 1 every time you either win or run from battles with this bit. If this bit is not on, Dark Chips won’t have any negative impact to your karma or HP.
00001000 is odd because on irregular stages, the panels instantly change to something else. If the stage is already normal, winning the battle will turn all the panels red.
You will need the 00008000 bit to force lower enemy levels if you want to fight weaker enemies. Otherwise, every enemy is instantly raised in level based on the Nebula Hole opened.
When 00040000 is on, the enemy’s name is overwritten with “ChaosLord”. This affects all enemies on the blue side.
00100000 will make Dark Chips poof in battle regardless. You can still Soul Unison with them.
00200000 will make MegaMan appear with the default, starting Karma. Even if you are dark, this forces neutral so you can use Soul Unison. Using Dark Chips will have a negative impact on MegaMan since this mode is normally reserved for the Soul Unison tutorial.
New to this game, if 00400000 is on, the battle loads as a Party Battle Multiplayer mode. The game will get stuck on the custom screen waiting for the other player. If this bit is enabled mid-battle, unexpected things happen and the game will still get stuck on the custom screen. Lan also won’t speak during the battle.

0x0C Object Setup Pointer

This pointer points to where the Object Setup data is. This is data on what enemies or objects are in battle and where they appear.
Default is:  40 34 1D 02

After you’ve set all the Battle Settings and state saved, you can move on to the Object Setup. Follow the offset from above and you should go to 021D3440.

The Object Setup format is documented below.

0x00 Object Type
0x01 X- and Y-Coordinates
0x02 Enemy Value (2 bytes)

Every “slot” takes up 4 bytes and every slot can become an enemy, the player, or an object. The game stops reading when it encounters F0 after the last enemy value. This game greatly improves upon battle capabilities. Up to 4 enemies are natively supported, and on each side. Some more complex enemies may probably cause the game to act irregularly if too many enemies are in the battle.

0x00 Object Type

This value affects directly affects how the Enemy Value functions. You can use a slot to make objects like Rocks or enemies on the red or blue side. The full object type list is below.

00 = Player-Controlled Navi
01 = Opponent Player-Controlled Navi
10 = Fight on Red Side
11 = Fight on Blue Side
20 = Mystery Data
30 = Rock
70 = Flag
80 = Rock Cube
90 = Guardian

Some notes:
00 and 01 are both reserved for the Navi you normally control on the left and for multiplayer battles, the Navi your opponent controls on the right.
11 will be the value to make enemies while 10 will put that enemy on the red side. When you put enemies on your side, you do not share HP and enemies may behave strangely as they only normally target MegaMan and other Navis you play.
For Mystery Data to work, values 08 and above will give an actual reward.
You can have up to 2 Rocks on the battlefield. However, you can have up to 5 Rock Cubes.
A Rock Cube can become an Ice Cube when the value at 0x02 is 03. The value at 0x03 also becomes the Rock Cube’s HP which can have a maximum of 256 HP.
Flags function the same way as they have the past games. The Enemy Value becomes the Flag’s HP. Values 00-7F are HPs for your flag and 80-FF become HPs for the opponent’s flag. A flag deleted means the side the flag was on loses.

0x01 X- and Y- Coordinates

Coordinates have been condensed to one value. Similar values apply just like before. Use the following values and add them to place the object on the desired panel. For example, the player normally starts on the center-left, 22, and the opponent on center right, 25.

[10]
[20]
[30]

[01][02][03][04][05][06]

0x02 Enemy Value

Enemy value is now handled by 2 bytes. 00-FF handle viruses while 0100-01FF handles Navis. The first byte of the Enemy Value also functions as the Flag’s HP. The full enemy list is below.

00 = Test Virus
01 = Mettaur
02 = Mettaur EX
03 = Mettaur2
04 = Mettaur2 EX
05 = Mettaur3
06 = Mettaur3 EX
07 = Powie
08 = Powie EX
09 = Powie2
0A = Powie2 EX
0B = Powie3
0C = Powie3 EX
0D = BugTank
0E = BugTank EX
0F = BugTank2
10 = BugTank2 EX
11 = BugTank3
12 = BugTank3 EX
13 = Handi
14 = Handi EX
15 = Handi2
16 = Handi2 EX
17 = Handi3
18 = Handi3 EX
19 = Dominerd
1A = Dominerd EX
1B = Dominerd2
1C = Dominerd2 EX
1D = Dominerd3
1E = Dominerd3 EX
1F = MetFire
20 = MetFire EX
21 = MetFire2
22 = MetFire2 EX
23 = MetFire3
24 = MetFire3 EX
25 = Shakey
26 = Shakey EX
27 = Shakey2
28 = Shakey2 EX
29 = Shakey3
2A = Shakey3 EX
2B = Trumpy
2C = Tuby
2D = Tromby
2E = MuteAnt
2F = Xylos
30 = Trumpy SP
31 = NinJoy
32 = NinJoy EX
33 = NinJoy2
34 = NinJoy2 EX
35 = NinJoy3
36 = NinJoy3 EX
37 = WindBox
38 = VacuummFan
39 = WindBox2
3A = VacuummFan2
3B = WindBox3
3C = VacuummFan3
3D = Lark
3E = Lark EX
3F = Lark2
40 = Lark2 EX
41 = Lark3
42 = Lark3 EX
43 = BombBoy
44 = BombBoy EX
45 = BombBoy2
46 = BombBoy2 EX
47 = BombBoy3
48 = BombBoy3 EX
49 = Zomon
4A = Zomon EX
4B = Zomon2
4C = Zomon2 EX
4D = Zomon3
4E = Zomon3 EX
4F = CannonGuard
50 = CannonGuard EX
51 = CannonGuard2
52 = CannonGuard2 EX
53 = CannonGuard3
54 = CannonGuard3 EX
55 = Catack
56 = Catack EX
57 = Catack2
58 = Catack2 EX
59 = Catack3
5A = Catack3 EX
5B = Drixol
5C = Drixol EX
5D = Drixol2
5E = Drixol2 EX
5F = Drixol3
60 = Drixol3 EX
61 = Batty
62 = Batty EX
63 = Batty2
64 = Batty2 EX
65 = Batty3
66 = Batty3 EX
67 = Skarab
68 = Skarab EX
69 = Skarab2
6A = Skarab2 EX
6B = Skarab3
6C = Skarab3 EX
6D = Champy
6E = Champy EX
6F = Champy2
70 = Champy2 EX
71 = Champy3
72 = Champy3 EX
73 = Draggin
74 = Draggin EX
75 = Draggin2
76 = Draggin2 EX
77 = Draggin3
78 = Draggin3 EX
79 = Whirly
7A = Whirly EX
7B = Whirly2
7C = Whirly2 EX
7D = Whirly3
7E = Whirly3 EX
7F = Marina
80 = Marina EX
81 = Marina2
82 = Marina2 EX
83 = Marina3
84 = Marina3 EX
85 = Flashy
86 = Flashy EX
87 = Flashy2
88 = Flashy2 EX
89 = Flashy3
8A = Flashy3 EX
8B = Eleogre
8C = Eleorge EX
8D = Eleogre2
8E = Eleorge2 EX
8F = Eleogre3
90 = Eleogre3 EX
91 = Cactikill
92 = Cactikill EX
93 = Cactikill2
94 = Cactikill2 EX
95 = Cactikill3
96 = Cactikill3 EX
97 = WuNote
98 = WuNote EX
99 = WuNote2
9A = WuNote2 EX
9B = WuNote3
9C = WuNote3 EX
9D = Appley
9E = Appley EX
9F = Appley2
A0 = Appley2 EX
A1 = Appley3
A2 = Appley3 EX
A3 = BigBrute1
A4 = BigBrute2
A5 = BigBrute3
A6 = BigBrute4
A7 = BigBrute5
A8 = BigBrute6
A9 = TinHawk1
AA = TinHawk2
AB = TinHawk3
AC = TinHawk4
AD = TinHawk5
AE = TinHawk6
AF = Bladia1
B0 = Bladia2
B1 = Bladia3
B2 = Bladia4
B3 = Bladia5
B4 = Bladia6
B5 = Mettaur1
B6 = Mettaur1 EX
B7 = Mettaur2
B8 = Mettaur2 EX
B9 = Mettaur3
BA = Mettaur3 EX
BB = Mettaur1
BC = Mettaur1 EX
BD = Mettaur2
BE = Mettaur2 EX
BF = Mettaur3
C0 = Mettaur3 EX
C1 = Mettaur1
C2 = Mettaur1 EX
C3 = Mettaur2
C4 = Mettaur3 EX
C5 = Mettaur3
C6 = Mettaur3 EX
C7 = Tuby
C8 = Tuby EX
C9 = Tuby2
CA = Tuby2 EX
CB = Tuby3
CC = Tuby3 EX
CD = Flag
CE = Rock
CF = Otenko
D0 = RockCube
D1 = IceCube
D2 = Nothing
D3 = Nothing
D4 = BombCube
D5 = BlackBomb
D6 = Wind
D7 = Fan
D8 = TimeBomb
D9 = TimeBomb+
DA = Nothing
DB = Anubis
DC = PoisonPharoah
DD = Fanfare
DE = Discord
DF = Timpani
E0 = Silence
E1 = DarkSonic
E2 = VDoll
E3 = Guardian
E4 = Voltz
E5 = AirSpin
E6 = ChaosLord
E7 = RedFriut
E8 = ChemicalFlash
E9 = ModMegaMan
EA = BCMegaMan
EB = SCMegaMan

0101 = ProtoMan
0102 = Dark ProtoMan
0103 = ProtoMan Beta
0104 = ProtoMan Omega
0105 = ProtoMan DS
0106 =
0107 = GyroMan
0108 = GyroMan Alpha
0109 = GyroMan Beta
010A = GyroMan Omega
010B = GyroMan DS
010C =
010D = SearchMan
010E = SearchMan Alpha
010F = SearchMan Beta
0110 = SearchMan Omega
0111 = SearchMan DS
0112 =
0113 = NapalmMan
0114 = NapalmMan Alpha
0115 = NapalmMan Beta
0116 = NapalmMan Omega
0117 = NapalmMan DS
0118 =
0119 = MagnetMan
011A = MagnetMan Alpha
011B = MagnetMan Beta
011C = MagnetMan Omega
011D = MagnetMan DS
011E =
011F = Meddy
0120 = Meddy Alpha
0121 = Meddy Beta
0122 = Meddy Omega
0123 = Meddy DS
0124 =
0125 = Colonel
0126 = Dark Colonel
0127 = Colonel Beta
0128 = Colonel Omega
0129 = Colonel DS
012A =
012B = ShadowMan
012C = ShadowMan Alpha
012D = ShadowMan Beta
012E = ShadowMan Omega
012F = ShadowMan DS
0130 =
0131 = NumberMan
0132 = NumberMan Alpha
0133 = NumberMan Beta
0134 = NumberMan Omega
0135 = NumberMan DS
0136 =
0137 = TomahawkMan
0138 = TomahawkMan Alpha
0139 = TomahawkMan Beta
013A = TomahawkMan Omega
013B = TomahawkMan DS
013C =
013D = KnightMan
013E = KnightMan Alpha
013F = KnightMan Beta
0140 = KnightMan Omega
0141 = KnightMan DS
0142 =
0143 = ToadMan
0144 = ToadMan Alpha
0145 = ToadMan Beta
0146 = ToadMan Omega
0147 = ToadMan DS
0148 =
0149 = ShadeMan
014A = ShadeMan Alpha
014B = ShadeMan Beta
014C = ShadeMan Omega
014D = ShadeMan DS
014E =
014F = BlizzardMan
0150 = BlizzardMan Alpha
0151 = BlizzardMan Beta
0152 = BlizzardMan Omega
0153 = BlizzardMan DS
0154 =
0155 = CloudMan
0156 = CloudMan Alpha
0157 = CloudMan Beta
0158 = CloudMan Omega
0159 = CloudMan DS
015A =
015B = CosmoMan
015C = CosmoMan Alpha
015D = CosmoMan Beta
015E = CosmoMan Omega
015F = CosmoMan DS
0160 =
0161 = LarkMan
0162 = LarkMan Alpha
0163 = LarkMan Beta
0164 = LarkMan Omega
0165 = LarkMan DS
0166 =
0167 = GridMan
0168 = GridMan Alpha
0169 = GridMan Beta
016A = GridMan Omega
016B = GridMan DS
016C =
016D = Bass
016E = Bass Alpha
016F = Bass Beta
0170 = Bass Omega
0171 = Bass DS
0172 = Bass XX
0173 = Nebula Grey
0174 = Nebula Grey Alpha
0175 = Nebula Grey Beta
0176 = Nebula Grey Omega
0177 = Nebula Grey DS
0178 =
0179 = ShadeMan
017A = ShadeMan Alpha
017B = ShadeMan Beta
017C = ShadeMan Omega
017D = ShadeMan DS
017E =
017F = MegaMan
0180 = MegaMan
0181 = ProtoMan
0182 = GyroMan
0183 = SearchMan
0184 = NapalmMan
0185 = MagnetMan
0186 = Meddy
0187 = Colonel
0188 = ShadowMan
0189 = NumberMan
018A = TomohawkMan
018B = KnightMan
018C = ToadMan
018D = Dark Cloud
018E = Split
018F = Dark MegaMan
0190 = Dark MegaMan Omega

The Test Virus is a 500 HP Mettaur that never attacks.
Enemies B5-CC are Crossover Battle enemies. These are summoned by the Boktai player during the match. The Mettaurs are different due to the panel effects they cause at the different versions. Bosses 0179-017E are the Crossover Battle versions of ShadeMan. The difference is ShadeMan can now start with chips and can use them.
Enemy values CD-EB and 018D-018E are only names. These are used by Operation Battle to name those objects. In-battle, they appear as Mettaurs.
All bosses have DS version, though only the team Navis have actual DS versions. The other Navis still have DS versions, but are never normally encountered and behave exactly like their Omega version. They also have 3000 HP.
All bosses with the exception of Bass have a no-name version. These usually appear as one of their dark colors and have 4000 HP. Some of them won’t function properly.
Values 0180-018C are also name-only. In-battle they appear as MegaMan. These are used as player-controlled Navi names and are the only values enemies recognize as hittable.

That concludes the Mega Man Battle Network 5 Custom Battle guide.
Here is a video demonstrating a custom battle.

Discussion topic on the TREZ Forums