Skip to main content

MMBN3 Custom Battle Guide

Mega Man Battle Network 3 is considered to be one of the finest Battle Network games. It became the precedent for many improvements which are taken for granted in later games like multiple versions and chip class.

To follow this guide, you need VisualBoyAdvance (VBA) and a backup of the game. I do not condone piracy, but if you somehow already have a copy, follow along.

To create your own battle in this game, the most accessible battle is the MetalMan freefight since you can always fight him there and for the longest point in the game.
You can download saves and state saves which are already at this part of the game.

Download Battle Network 3 saves.

Here is where you should be. Before accepting the battle, customize it first.

Using VBA’s Memory Viewer window, the following steps will let you make temporary changes. Remember that any changes will be lost if the emulator is closed. You can make the changes permanent if the same steps are done in a hex editor such as HxD.

Below is a list of offsets you may use to start modifying the Battle Settings, depending on your version. Regardless of version, the data is the same.

White A6BE US
0812BD48
Blue A3XE US
0812BE48
White A6BP EU
0812BD48
Blue A3XP EU
0812BE48
White A6BJ JP
0812C5B8
White A6BJ JP (v1.1)
0812C630
Black A3XJ JP
0812C6C8
Black A3XJ JP (v1.1)
0812C740

Aside from the first 4 bytes, these should be the default values:
1C A1 01 08 00 00 00 00 0A 04 01 00 01 FF 00 20

The Battle Settings format is documented below. Use this as a guide for the following sections explaining the format.

0x00 Object Setup Pointer (4 bytes)
0x04 Optional Folder Pointer (4 bytes)
0x08 Background
0x09 Battle Mode
0x0A Folder Order
0x0B Unknown
0x0C Allow Running
0x0D Starting HP
0x0E Battlefield
0x0F Music/Battle Type

Remember, you can add the value listed next to the format to the original pointer to accurately locate the proper data on any version.

Object Setup Pointer

This pointer should point to where the enemy and player data is. You can load a battle you created in free space if you type the new offset here.
Default varies by version.

0x04 Optional Folder Pointer

These 4 bytes are reserved for a pointer to a pre-built folder in the game. This folder will override whichever folder the player has equipped. This is optional, so if you don’t change it, nothing happens.
Default is: 00 00 00 00

0x08 Background

This lets you change the background for the current battle. The full list is below.
Default is: 0A

00 = ACDC Area BG
01 = ACDC Square BG
02 = Lan's HP BG
03 = Yai's HP BG
04 = Principal's PC BG
05 = Zoo Comp BG
06 = Hospital Comp BG
07 = Tamako HP BG
08 = Dex's HP BG
09 = Hospital Comp 2 BG
0A = Generic Comp BG
0B = Virus Breeder BG
0C = Virus Breeder 2 BG
0D = SciLab Area BG
0E = SciLab Area BG
0F = Mayl's HP BG
10 = Undernet BG
11 = WWW Comp BG
12 = WWW Comp 2 BG
13 = WWW Comp 3 BG
14 = WWW Comp 4 BG
15 = Alpha BG
16 = Secret Area BG
17 = Hades bg
18 = Yoka Area BG
19 = Beach Area BG
1A = Zoo Comp 2 BG
1B = Zoo Comp 3 BG
1C = Zoo Comp 4 BG
1D = Alpha Battle BG

Download all backgrounds.

0x09 Battle Mode

Battle Modes let you play special battle types like tutorials. You can also get the final boss defeat effect. The full list is below.
Default is: 04

0x00 = Normal Battle
0x01 = Tutorial 1
0x02 = Tutorial 2
0x03 = Tutorial 3
0x04 = Normal Battle
0x05 = Sequential Battle
0x06 = Normal Battle (No results)
0x07 = Normal Battle (No results)
0x08 = Alpha Battle End
0x09 = Normal Battle (No results)
0x0A = Sequential Battle

Though there are multiple Sequential Battle modes, it is unknown how to activate a sequential battle.

0x0A Folder Order

This byte changes what order your folder comes in. By default, your folder comes in a random order. If the value is 00, your folder appears in whatever order it is in the folder screen (such as sorted by Code or ID). Below are the possible outcomes.

00 = Folder is in order
01 = Folder is randomized

Default is: 01

0x0B Unknown

This value is never read.
Default is: 00

0x0C Allow Running

This is a little different but if the byte at 0x0F is less than 10 and this byte is 00, then you can run away from the battle. Otherwise, changing this value on its own has no apparent effect.
Default is: 01

0x0D Starting HP

When this value is not 00, you start the battle with max HP. Since by default this value is FF, you always start with max HP.
Default is: FF

0x0E Battlefield

This byte lets you choose a pre-made battlefield to load for the battle. There are 129 different stages to choose from.
Default is: 00

Download all stages.

0x0F Music/Battle Type

In this game, changing music is merged with certain battle properties similar to the first game. You can change music this way, but it is very limited. There are 4 main battle types you can choose from which change the music.

10 = Virus Battle
20 = Boss Battle
40 = Final Battle
60 = N1 Grand Prix
FF = No Music

A particular exception is made to Virus Battle. When the value at 0x0C is 00, then you can run away from the battle.
Default is: 20
To use any track from the game as battle music, leave the value at 20 and go to the following offset for your version:

White A6BE US
080076C5
Blue A3XE US
080076C5
White A6BP EU
080076C5
Blue A3XP EU
080076C5
White A6BJ JP
08007659
White A6BJ JP (v1.1)
08007659
Black A3XJ JP
08007659
Black A3XJ JP (v1.1)
08007659

You’ll find a 1A value, which means its using the Boss Battle theme. The full music list is below.

00 = Title Screen
01 = Mysterious Theme
02 = ACDC Theme
03 = School Theme
04 = Indoors Theme
05 = Hospital Theme
06 = Yoka Theme
07 = Beach Theme
08 = SciLab Theme
09 = TV Station Theme
0A = N1 Grand Prix
0B = Hades Isle Theme
0C = Secret Cave Theme
0D = Event Occurrence
0E = Sad Theme
0F = Hero Theme
10 = Transmission
11 = Principal PC Theme
12 = Zoo Comp Theme
13 = Hospital Comp Theme
14 = NOTHING
15 = Alpha Area Theme
16 = Internet Theme
17 = Undernet Theme
18 = Secret Area Theme
19 = Virus Battle
1A = Boss Battle
1B = Alpha Battle
1C = N1 Grand Prix Battle
1D = NOTHING
1E = Winner Theme
1F = Style Change
20 = Loser Theme
21 = Game Over
22 = Boss Prelude
23 = Credits Theme
24 = Castle Wily Theme
25 = Navi Customizer Theme
FF = Mute

Now, if you follow the first pointer in the format, you can edit the Object Setup data. This lets you edit objects, enemies, and the player on the battlefield.
Default values are: 00 01 02 00 D2 06 02 01 19 03 02 0B 19 04 02 0B FF

To read the Object Setup data, follow the documentation below.

0x00 Enemy Value
0x01 X-Position
0x02 Y-Position
0x03 Object Type

These 4 bytes fill up one “slot”. Slots can become the player, enemies, or objects. The game stops reading slots after it encounters FF. When you are finished preparing the battle, you must add FF after the last value. Unfortunately, this game only supports 4 enemies and the fourth is less supported than the previous game. The fourth enemy won’t have its HP displayed or its name. Having 4 enemies on at once also glitches the graphics on the custom screen, though defeating one enemy fixes that problem. Also with 4 enemies, Navi chips won’t dim the screen, but still work. And since there is no such thing as a quadruple delete in this game, something else appears instead.

0x00 Enemy Value

This value determines the enemy you encounter. This value is also used differently when the Flag is used. More on that in the Object Type section. The full enemy list is below.

00 = MegaMan
01 = Mettaur
02 = Mettaur2
03 = Mettaur3
04 = Mettaur Omega
05 = Cannodumb
06 = Cannodumb2
07 = Cannodumb3
08 = Cannodumb Omega
09 = Fishy
0A = Fishy2
0B = Fishy3
0C = Fishy Omega
0D = Swordy
0E = Swordy2
0F = Swordy3
10 = Swordy Omega
11 = Ratty
12 = Ratty2
13 = Ratty3
14 = Ratty Omega
15 = HardHead
16 = ColdHead
17 = HotHead
18 = HardHead Omega
19 = Jelly
1A = HeatJelly
1B = EarthJelly
1C = Jelly Omega
1D = Shrimpy
1E = Shrimpy2
1F = Shrimpy3
20 = Shrimpy Omega
21 = Spikey
22 = Spikey2
23 = Spikey3
24 = Spikey Omega
25 = Bunny
26 = TuffBunny
27 = MegaBunny
28 = Bunny Omega
29 = WindBox
2A = VacuummFan
2B = StormBox
2C = Wind Omega
2D = PuffBall
2E = PoofBall
2F = GoofBall
30 = PuffBall Omega
31 = Mushy
32 = Mashy
33 = Moshy
34 = Mushy Omega
35 = Dominerd
36 = Dominerd2
37 = Dominerd3
38 = Dominerd Omega
39 = Yort
3A = Yurt
3B = Yart
3C = Yort Omega
3D = Shadow
3E = RedDevil
3F = BlueDemon
40 = Shadow Omega
41 = Brushman
42 = Brushman2
43 = Brushman4
44 = Brushman Omega
45 = Scutz
46 = Scuttle
47 = Scuttler
48 = Scuttzer
49 = Scuttlest
4A = Scuttle Omega
4B = Beetle
4C = Deetle
4D = Geetle
4E = Beetle Omega
4F = Metrid
50 = Metrod
51 = Metrodo
52 = Metrid Omega
53 = SnowBlow
54 = LowBlow
55 = MoBlow
56 = SnowBlow Omega
57 = KillerEye
58 = DemonEye
59 = JokerEye
5A = KillerEye Omega
5B = Momogra
5C = Momogro
5D = Momogre
5E = Momogra Omega
5F = Basher
60 = Smasher
61 = Trasher
62 = Baser Omega
63 = Heavy
64 = Heavier
65 = Heaviest
66 = Heavy Omega
67 = Pengi
68 = Penga
69 = Pengon
6A = Pengi Omega
6B = Viney
6C = Viner
6D = Vinert
6E = Viney Omega
6F = Slimer
70 = Slimey
71 = Slimest
72 = Slimer Omega
73 = Elebee
74 = EleWasp
75 = EleHornet
76 = EleBee Omega
77 = Needler
78 = Nailer
79 = Spiker
7A = Needler Omega
7B = Trumpy
7C = Tuby
7D = Tromby
7E = Trumpy Omega
7F = AlphaBug Red
80 = AlphaBug Blue
81 = AlphaBug Yellow
82 = AlphaBug Omega
83 = Quaker
84 = Shaker
85 = Breaker
86 = Quaker Omega
87 = N.O
88 = N.0-2
89 = N.0-3
8A = N.0 Omega
8B = Eleball
8C = Elesphere
8D = Eleglobe
8E = Eleball Omega
8F = Volcano
90 = Volcaner
91 = Volcanest
92 = Volcano Omega
93 = Totem
94 = Totam
95 = Totun
96 = Totem Omega
97 = Twins
98 = Twinner
99 = Twinnest
9A = Twins Omega
9B = Boomer
9C = Gloomer
9D = Doomer
9E = Boomer Omega
9F = Number-1
A0 = Number-2
A1 = Number-3
A2 = Number-M1
A3 = Number-M2
A4 = Number-M3
A5 = Number-G1
A6 = Number-G2
A7 = Number-G3
A8 = FlashMan
A9 = FlashMan Alpha
AA = FlashMan Beta
AB = FlashMan Omega
AC = BeastMan
AD = BeastMan Alpha
AE = BeastMan Beta
AF = Beastman Omega
B0 = BubbleMan
B1 = BubbleMan Alpha
B2 = BubbleMan Beta
B3 = Bubbleman Omega
B4 = DesertMan
B5 = DesertMan Alpha
B6 = DesertMan Beta
B7 = DesertMan Omega
B8 = PlantMan
B9 = PlantMan Alpha
BA = PlantMan Beta
BB = PlantMan Omega
BC = FlameMan
BD = FlameMan Alpha
BE = FlameMan Beta
BF = Flameman Omega
C0 = DrillMan
C1 = DrillMan Alpha
C2 = DrillMan Beta
C3 = DrillMan Omega
C4 = Alpha
C5 = Alpha Omega
C6 = GutsMan
C7 = GutsMan
C8 = GutsMan
C9 = GutsMan Alpha
CA = GutsMan Beta
CB = Gutsman Omega
CC = ProtoMan
CD = ProtoMan Alpha
CE = ProtoMan Beta
CF = Protoman Omega
D0 = MetalMan
D1 = MetalMan Alpha
D2 = MetalMan Beta
D3 = MetalMan Omega
D4 = Punk
D5 = Punk Alpha
D6 = Punk Beta
D7 = Punk Omega
D8 = KingMan
D9 = KingMan Alpha
DA = KingMan Beta
DB = KingMan Omega
DC = MistMan
DD = MistMan Alpha
DE = MistMan Beta
DF = MistMan Omega
E0 = BowlMan
E1 = BowlMan Alpha
E2 = BowlMan Beta
E3 = BowlMan Omega
E4 = DarkMan
E5 = DarkMan Alpha
E6 = DarkMan Beta
E7 = DarkMan Omega
E8 = JapanMan
E9 = JapanMan Alpha
EA = JapanMan Beta
EB = JapanMan Omega
EC = Serenade
ED = Serenade Alpha
EE = Serenade Beta
EF = Serenade Omega
F0 = Bass
F1 = Bass
F2 = BassGS
F3 = Bass Omega

A few things to note (starting from the top)
You can’t use MegaMan as an enemy. he just copies your moves.
Enemies 7F and 80 have no proper names, but have been named anyways.
Enemies CS and C7 are broken placeholder names. Though it says GutsMan, they appear as glitched WindBoxes.
Enemies D7, ED, and EE are not normally encountered but work just fine.
Enemy F0 is the invincible version of Bass you encounter in the story. You cannot defeat him normally.

0x01 X-Position

The second byte specifies the X-position of the object. Values represent whole panels on rows. Use the table below.

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

0x02 Y-Position

This byte determines the object’s Y-position. Values represent whole panels on columns. Use the table below.

[01]
[02]
[03]

Object Type

This byte determines if you’re fighting an enemy or not. The object slots can be used to create objects and enemies. Objects like Rock Cubes don’t count against the maximum enemy limit. Below is the full list of object types.

00 = Player MegaMan
01 = Enemy
02 = Rock
03 = Rock Cube
04 = Metal Cube
05 = Ice Cube
06 = Guardian
07 = Black Bomb
08 = NOTHING
09 = Flag
0A = NOTHING
0B = Metal Gear

A few things to note.
The object limit has been raise to 4. You can have a maximum of 4 objects in the battle at once. Of these 4, only 3 of the objects may be the same kind. This means you can have 3 Rock Cubes, but not 4. You can have a regular Rock be the 4th though.
The Black Bomb made through this deals 150 damage when detonated.
Flags can belong to either the red side or the blue side and both if you give one to each side. Flags get their HP from the enemy value. A value of 01 equals 8HP for the flag. Values 00-7F specify HP for the red side’s flag. 80-FF specify HP for the blue side. 1016 is the maximum HP allowed for a Flag. When a Flag is deleted, the side it was on loses.

And that concludes the MegaMan Battle Network 3 Custom Battle Guide! This only covers the basics of what you can do.
Here is a sample video demonstrating what this guide lets you do!

Discussion topic on the TREZ Forums