Flashman complete.
I haven’t got nico’s replay file, I compare to the video. I have been 258 frames faster than the nico’s run before beat flashman, but in fact, I only improved 49 frames.
Different between U and J rom.
Title, U is 37 frames faster than J.
Jack in, U’s jackin is faster than J’s. Pass R to jack in, U can save 31 frames. But every story’s jackin saved different frames.
Dialogue, sometime U’s dialogue is longer than J’s. But at now, It only cost me 10 frames.
This game’s GMD(green mystery diamond) is harder to control than mmbn2. When you pass R to jack in, you can make sure the first GMD’s goods which you opened. When you open the first GMD, you can control the next GMD’s goods, but don’t jack out. Before you be in next scene, you can control the next scene’s GMD’s location. For example, I have to wait 12 frames in ACDC2 to control ACDC3’s two GMDs’ location.
If I try again and again, I will waste too much time. I find address 0x02000E68(4bytes) control the GMD’s goods. So I write a lua to display what I can get from GMD.
First, load the savestates8 like the picture and then run the lua. Afret write the rng to the array, you have 10 seconds to load the savestates9, then lua can read the rng from array and write back to the address 0x02000E68. Last, write the goods to the file. Now I can easily find the chip or money which I want. I want to use the code like ‘savestate.create(9)’, but it don’t work, so I have load the savestates9 by myself.
Language: lua
local j
local i
local rng1=0x02000E68
local GMD =0x020094B8
local arr1={}
file = "mmbn3GMD"
mmbn3GMD = file..".dump"
io.output(mmbn3GMD)
--load savestate from slot8 first
slot=savestate.create()
for i=0,50 do
vba.frameadvance()
savestate.save(slot)
joypad.set(1,{["R"]=true})
for j=1,350 do
vba.frameadvance()
--vba.frameadvance()
--vba.frameadvance()
gui.text(0,0,i)
end
arr1[i]=memory.readlong(rng1)
savestate.load(slot)
end
for j=0,300 do
vba.frameadvance()
end
--load savestate from slot9 in this 300 frames
savestate.save(slot)
for i=0,50 do
memory.writelong(rng1, arr1[i])
vba.frameadvance()
joypad.set(1,{["A"]=true})
vba.frameadvance()
vba.frameadvance()
vba.frameadvance()
io.write(arr1[i]," ")
io.write(memory.readshort(GMD))
io.write("\n")
savestate.load(slot)
end
In nico’s run, he got the elec-bug style. If mmbn3 is similar to mmbn2, I don’t worry about I can’t get elec style, though the element is unknow random for me. But the bug style make me trouble. I have to stop this tas after flashman.
These 6 address control the megaman’s style.
02000E60 Guts
02000E61 Custom
02000E62 Team
02000E63 Shield
02000E64 Ground
02000E65 Shadow
02000E66 bug
After battles, megaman can get some style point up. Before he got bug style, he has only 4 chance to get the point up. Every battle can raise up 1 point for 1 or more style.
1 Flashman, 2 Beastman, 3 virus battle: WindBox(100HP), Boomer(70HP)(for chip wind*), 4 virus battle: Pengi(80HP)×2, Penga(100HP)
Now I’m sure he shot flashman 6 times for get the Guts point-up.
Battle 2, get the Custom point-up.
Battle 3, get the Ground point-up. Because Fountain* is ground chip.
Battle 4, get the bug point-up, because of the bug from Customizer.