Posts for Bag_of_Magic_Food

Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Yeah, maybe pick something on one of those obscure systems that Mednafen runs.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Oh, so it would look like Metal Storm, or the Skycutter form from Kid Chameleon!
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Hey, 150 megabytes is a lot to me!
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Hmm, so only the X-coordinate of the explosion matters for how soon you collect the power in this game, but in Mega Man 4 and Mega Man 3 GB you want it centered between all four sides as much as possible, huh. Were there any other Mega Man games where the victory timing works like this? I imagine it's even trickier in this game because you lose your momentum immediately when the boss explodes, so both MegaMan and his opponent would have to be in the middle for the fastest finish. Is that why you're getting Shadow Blade so early? So you can throw it straight up at somebody while you're both in the middle?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Doesn't rewinding mean the emulator has to make a whole bunch of extra savestates without asking?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Don't the major publications get special permission to use those or something?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Doesn't the Master System version make you wait a lot more on the first boss, though? Unless you know of some trick to jump higher...
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Hmm, I suppose you'd need a plain old screen recorder to show the actual slow speed you use.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Right, I was going to try those things in the final run too, but I just wanted to rearrange the folder the regular way this time to get an idea of the time spent. It only took a second to get the 3 Cannons in the tutorial, but then I had 4 Cannons total, and other strategies will require 3, 4, or 5 specific chips that we'll only get once. Have you tried out the scripts that show you the order of the 30 chips in battle yet? Hey, minor update: I found some things that affect how long RockMan "flinches" after he gets hit. I noticed that in some frame timing tests, I lost control of him for 25 frames, while in others, I regained control after only 21 frames. It turns out that it depends on what armor RockMan's wearing. Flinching lasts 25 frames with NormalArmor, but 21 frames with any of the three elemental armors. So you can save 4 frames every time you get hit by equipping armor... But I believe that equipping one takes 47 frames even if you're already on the status menu, so unless you plan on getting hit 12 times after getting an armor but before getting saito.bat, I don't think that would save time. It's just a funny bit of trivia for now. Did you notice that Hub.bat makes you not flinch at all? Well, I examined the timing closely. During a hit, there was only 1 frame on which MegaMan wouldn't respond to controls. But taking a hit does disrupt whatever attack animation he's in before that. You lose your charge, real-time battle chips fail, and even the rapid-firing MegaBuster will be stopped if you're hit before the shot leaves the gun. So that's something to watch out for when shooting the LifeVirus. Uh, I forgot to mention last time I updated this that MegaMan always gets 78 frames of invincibility time after he gets hit, no matter whether he has armor or Hub.bat. Most enemy Navis get a total of 142 frames of invincibility when they flinch, but I just checked the FireMan battle, and he only stayed invincible for 95 frames, so I'll make sure to check that timing on all the other bosses too. I finally made a movie of that old strategy for NumberMan that wins in under 18 seconds by the game's clock. http://dehacked.2y.net/microstorage.php/info/328786581/NumberAS.vbm Maybe a few more frames can be shaved by changing when I attack with the buster or replacing a 5 ball with a 4 ball with better luck, but it's good enough for now. I may try some other strategies against NumberMan soon to see how much time the Quake1 A, Steal A, and PowerUp really save.
put yourself in my rocketpack if that poochie is one outrageous dude
Post subject: Re: The Rules of The Newbie Corner
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Raiscan wrote:
Start simple. Practice on simple games with simple mechanics and simple goals. Super Mario Bros. is an example of simplicity on the surface, with a deep creamy filling of glitches that can be exploited.
Ah, this is a good guideline. I've met some newbies who had ambitions to make TASes of long, complicated, 3-dimensional games, just because they were their favorite games to play. Many of our younger members didn't grow up with the simple sidescrollers that make for quick and cool-looking TASes, so we need to look for opportunities to introduce them to the classics now and then!
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
braindx wrote:
Jack into the piano and collect the Recovery-50 L, but not @Mayl. (is this necessary? -- not including for right now; how much extra time is it?)
Um, yes it is necessary. Sorry if I didn't explain this before. Dex forces you to give him a Recov50 L before he'll let you fight GutsMan to win the /Dex link. So this forces Recov50 into your library, but you won't have the chip itself to trade later unless you pick up another copy while delivering that message to Roll.
braindx wrote:
not counting the one in e-mail from dad that never checked- already have crossgun though
If I were going to pick up any repeat chips just to have more to put in the trader, this CrossGun C would be first priority, because I found it's only 62 frames to read that e-mail if you're already on the e-mail you're forced to read to collect an HPMemory and PowerUp. Normally grabbing a chip on the overworld takes at least 88 frames, but in an e-mail it's faster because you don't have to watch Lan/MegaMan's arm-pump animation before clearing the dialog. That's why it saves a bit of time to get @Mayl that way.
braindx wrote:
School5 – smalldetour for Can C?
Now the Cannon C before NumberMan, that costs 4 seconds, and I see 8 other repeat chips that are faster to grab, so I would leave this out unless you have some amazing Zeta-Cannon1 strategy to try. (Or you could get it if you don't want to miss any "lost forever" items while you're testing, as the Cannon C mysteriously disappears after you beat NumberMan even if you didn't pick it up, just as all the items in the oven mysteriously disappear after beating FireMan, Lan's breakfast disappears along with its Recov10 A after the first day of school, and Yai stops offering a 10000z gift after the WWW Party of Death.)
braindx wrote:
If were not going to use Beta/Sigma sword to defeat anyone there's no point in getting it. It's only to get an extra chip.
Right, if I don't need the LongSwrd that much, I could just get a random LongSwrd O later. I was planning on Steal + BetaSword for the polar bears in the waterworks, but I could retry it with 4 swords and a buster to see if that even costs any more time after cutting out the Program Advance activation time. SigmaSword is a nice strategy on ElecMan, but only if I can't get any more amazing combination of chips such as Snakegg1 + WoodTowr. And what was I going to use to win TriSpear G, anyway...? (I've forgotten! D: )
braindx wrote:
I'll have to see about this because GMD it may be better to just get money and mass buy chips from the vendors to use for traders.
Kirk was thinking of something like this too. My thought is "beware the middleman": For each new chip this nets you, remember to add up the time to get the money, the time to make the purchase, and the time to use the exchanger machine. I'm not saying it won't work, just that like anything else, it'll have diminishing returns once we use up the fastest sources of money.
braindx wrote:
Inside the Water Works' Main Network, in the area where you must fall through the ice to the paths below. (decent size detour -- 10-20s)
Um, no, this isn't a detour at all. It's on the path to the faucet on the right you need to turn on to clear a path off the ice. Interestingly, the other faucet on the left turns out to be completely unnecessary, as you can take a shortcut to the faucet on the right by sliding straight northward and just barely missing two holes on either side of you. But I still haven't found a way to bypass that faucet on the right, so the PowerUp costs virtually no time at all to grab for what it's worth, and it's on my "must get" list for sure.
braindx wrote:
3. Jack-in to the Summer School's blackboard in Dentown. (gotta come here anyway for 60 chips memo; can also get barrier so probably worth it)
Yeah, this was the one I was agonizing over. I found this added 16 seconds total in jacking in and out and running over to the item, plus a bit more if you consider that you need to equip it before it'll increase your level to show the old man, and I don't think you need the menu otherwise at that point. This decision may come down to the usefulness of Charge.
braindx wrote:
8. Inside the fourth traffic light Lan and MegaMan jack-in to stop the runaway bus in Dentown.
I was thinking of getting this one, too, if money's tight. It's a pretty quick detour.
braindx wrote:
For the HP Mem we have a dilemma here. IF we grab them in Area1 (which we may not be coming back to after the first couple bosses)
Heh, I think the fact that you have to backtrack to the shop or to any Area 1 mystery data puts the final nail in the coffin for the "Dex's PC" shortcut.
braindx wrote:
We could just ditch both; how does this affect latter chip battles though like LifeVirus with +4 instead of +5 blaster (well, HubBatch would make it +5 vs. +6)?
I'll double-check this, but I believe that Hub.Batch maxes out your MegaBuster no matter what PowerUps you used before. Well, and except for Charge, it really takes your buster beyond the maximum, with a 6-point base attack, and you can fire once every 5 frames no matter where you are. As an added bonus, you no longer flinch from hits, though I recall you still lose your charge when hit. So as for your concerns about rapid-fire...
braindx wrote:
P.S. Megaman fires blaster faster when closer to the enemy (at least it seemed like it from the frame advances I was doing with Protoman) so getting in front row vs. LifeVirus may be faster? I noticed you did the run mostly in the middle square.
Sir VG wrote:
The thing you have to remember about LifeVirus is that you have take the aura off with a high enough attack, but the rapid fire from up close may help once it's down. But yes, it's faster. I noticed that even when I played unassisted.
braindx wrote:
Yeah, that's what I thought. MM can't initiate another firing sequence until the next shot lands or misses, and shots take a frame or two to travel over empty squares. So getting up close makes you fire faster
This only applies before Hub.Batch. Without it, Rapid level 5 only lets you fire once every 5 frames when you're right up against the enemy, and then it's an additional 2 frames you have to wait between shots for each additional panel between MegaMan and his target. So it's 1 shot per 7 frames across 1 empty square, 1 shot per 9 frames across 2 empty squares, 1 shot per 11 frames across 3 empty squares, and so on. At Rapid level 1, you can fire once every 7 frames up close, then it's an additional 4 frames between shots for each additional space in between. 7 frames with no squares, 11 frames with 1 sqaure, 15 frames with 2 squares... (Other levels of Rapid use various values in between.) That's why the "run and gun" style works slightly better when the enemy is sitting in the back, because it resets MegaMan's buster wait time. I think battle chips always have the same time to wait before moving or shooting again, but a longer time before being able to use another battle chip, so I tend to use a chip after arriving on a panel, then use the buster until stepping off. And you're right that shots take an extra frame per panel they travel across before they hit, but that doesn't seem to be related to how fast the MegaBuster fires. For example, when I was fighting a Mettool in the back after I had moved up with one Steal, there were times when I could have fired at a row the Mettool wasn't in but was about to move to, so it still got hit. But although the shot only had to travel across one empty space, which means it should have only taken 11 frames to fire again, the game saw two empty spaces in front of MegaMan at the time he fired, so I had to wait 15 frames before the next shot instead. So in those cases I would wait 3 frames to make the game realize the shot was headed for the Mettool and save a frame over firing as early as possible. Silly, huh? So I'm pretty sure the game doesn't care what the shot's doing when it decides MegaMan's rate of fire; it just looks at what's in front of him and checks the lookup table for his level of Rapid. Hub.bat changes all that so that it's 5 frames per shot no matter how far away from the target you are. It's as if Hub bends space to pull every enemy into "point-blank range". In that case, I may as well not move if I don't have to. Here's something I made just now. http://dehacked.2y.net/microstorage.php/info/1274522642/FireMans.vbm I recorded a battle with FireMan, and this time, I included the entire trip to the Folder so I remind myself how long it was. I would say that opening the menu to go to the Folder an extra time adds almost exactly 2 seconds, and each chip to be swapped adds about 6 frames on average. Manipulating the Navi AI is still a bit of a mystery to me, though. I know that shooting the enemy affects its decisions as well as the prize at the end (if it's not set like the V1 and V2 Navis). But it seems as if all odd numbers of shots produce nearly the same sequence of moves from FireMan, as do all the even numbers of shots. Then when the number of shots gets high enough, the pattern gradually changes. I don't know... Maybe enemy moves are chosen in a similar way to Folder orderings. I could really use some help with this.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Right, I've been comparing the times to collect each source of money to see what would be the fastest combination for whatever set of items is desired. I think we can agree that fighting random battles for money is grossly inefficient. Don't forget that every boss battle except GutsMan rewards you with money, too. FireMan: 1000z NumberMan: 1500z StoneMan: 2000z Ice Cube Bears: 2000z IceMan: 2500z SkullMan: 2500z ColorMan: 3000z ElecMan: 3500z ProtoMan: 3000z Blue Shielded Cannons: 3000z BombMan: 4000z MagicMan: 5000z Now, the money from BombMan and MagicMan wouldn't matter since they're past the chip collection and level checkpoints, but that still gives you 24000 zenny before then. That should cover most of the level-up items I want to buy, and then a few more large, quick money pick-ups like the 5000z in the power plant net could be used to get the last few chips for the library or HPMemories. Don't forget that if we do buy more than 4 HPMemories, then we should add the 4000z one from Area 3 first, which is cheaper than Area 1's last HPMemory and can be bought at the same time as WoodArmor. As for the other shops... Higsby's counter is a good stop, as you could buy a few cheap chips on your way to collect the Hig Memo and dump them in the trader on the way out if you wanted. The vendor in Area 4 has Cloudier for a decent price, but the only other items of interest are IceCube, which you can get as a random item, and a more expensive armor, so it may not be worth the trip over there. Area 5's shop is directly on the path and has several new chips, though most of them expensive, as well as the next cheapest PowerUp at 20000z if you really wanted to buy another one. You're on the same track as I am about the Area 1 vendor. Get the first PowerUp early if it helps enough on NumberMan, and definitely get the second PowerUp before StoneMan. Each stop at a vendor on the path does add about three and a half seconds just to visit, so I definitely want to minimize them, but they're still a much better deal than random battles in that regard!
braindx wrote:
If we can manipulate the GMDs to spawn at 2G and 1C and get 1000z from each we can make a quick detour to the vender to get a powerup early... should allow less chips to kill both fireman and numberman during battle (one less flinch + potentially not entering the battle screen again would be good).
Extra Attack probably wouldn't save time on FireMan because you can just use four swords to win. I think substituting 30 buster shots for one of the swords would take a lot longer than just waiting for the flinch time to end. For that cool double-AreaSteal strategy on NumberMan, I still need to take off 10 HP with the buster and destroy the number balls, so Attack level 2 would help a little there. I ought to try some other strategies, though, since that Steal A adds almost 6 seconds to grab, a bit much for an otherwise useless repeat chip. And that sounds just like my plan for collecting 2000 zenny in the first two passes through Area 1. Whether or not we buy the first PowerUp then, we'd need to start saving up 5000 for the second PowerUp. FireMan and NumberMan will give 2500z altogether as prize money, and another 2 1000s before the vendor will bring it to 4500z. So then we could just plan on grabbing 500z from the oven before then, and it should all work out. Some other things I remembered about ProtoMan: You may have noticed he moves 5 spaces before attacking. If you use AreaSteal at all, then instead of attacking, he'll just Steal the area right back after his 5 moves. What's funny is to keep blocking one of the panels so he'll keep using Steal and never attack. If you time it so that you're in transit between panels when ProtoMan uses the AreaSteal, you won't even take damage from it in the process. Obviously, destroying panels changes ProtoMan's definitions of "front" and "back" columns, which can eventually make it hard to determine when he's ready for an attack. Who knows if any of this information is helpful in figuring out the glitch?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Hey, so, when I labeled the maps I stole from vgmaps.com, I decided to change the labeling system to make it easier to understand. Now I've assigned each item a number from 1 to 6 and each location a letter from A to X. And now the script spits out a jumble of letters.
local tempstate = {}
local i
local j

dumpfile="places.dump"
io.output(dumpfile)

value = 0
tempstate[value] = savestate.create()

for j = 0,300 do
    savestate.save(tempstate[value])
    for i=1,100 do
        joypad.set(1,{["right"]=true,["up"]=true,["B"]=true})
        vba.frameadvance()
    end

    io.write(j, ": ")
    if(memory.readdword(0x020034CC) == 0x00BEFF0E) then
        io.write("A")
    end
    if(memory.readdword(0x020034CC) == 0x0194FEB6) then
        io.write("B")
    end
    if(memory.readdword(0x020034CC) == 0xFEECFFA4) then
        io.write("C")
    end
    if(memory.readdword(0x020034CC) == 0x01A8FFFC) then
        io.write("D")
    end
    if(memory.readdword(0x020034B8) == 0x001400A4) then
        io.write("E")
    end
    if(memory.readdword(0x020034B8) == 0x011A00DC) then
        io.write("F")
    end
    if(memory.readdword(0x020034B8) == 0xFF540110) then
        io.write("G")
    end
    if(memory.readdword(0x020034B8) == 0xFE9E011C) then
        io.write("H")
    end

    for i=1,200 do
        joypad.set(1,{["right"]=true,["B"]=true})
        vba.frameadvance()
    end

    if(memory.readdword(0x020034CC) == 0xFE74FF64) then
        io.write("I")
    end
    if(memory.readdword(0x020034CC) == 0x0032FFA8) then
        io.write("J")
    end
    if(memory.readdword(0x020034CC) == 0xFE3E0040) then
        io.write("K")
    end
    if(memory.readdword(0x020034CC) == 0xFF9AFFF6) then
        io.write("L")
    end
    if(memory.readdword(0x020034E0) == 0x00C8FF24) then
        io.write("M")
    end
    if(memory.readdword(0x020034E0) == 0x0164FF8A) then
        io.write("N")
    end
    if(memory.readdword(0x020034E0) == 0xFFEC00CC) then
        io.write("O")
    end
    if(memory.readdword(0x020034E0) == 0x004CFFD0) then
        io.write("P")
    end
    if(memory.readdword(0x020034F4) == 0x0022018E) then
        io.write("Q")
    end
    if(memory.readdword(0x020034F4) == 0x00F600DA) then
        io.write("R")
    end
    if(memory.readdword(0x020034F4) == 0xFFD80164) then
        io.write("S")
    end
    if(memory.readdword(0x020034F4) == 0x00C400FA) then
        io.write("T")
    end
    if(memory.readdword(0x020034B8) == 0x00F0FEB8) then
        io.write("U")
    end
    if(memory.readdword(0x020034B8) == 0x0158FDC6) then
        io.write("V")
    end
    if(memory.readdword(0x020034B8) == 0xFF78FE54) then
        io.write("W")
    end
    if(memory.readdword(0x020034B8) == 0x01DCFEF2) then
        io.write("X")
    end
    io.write("\n")

    savestate.load(tempstate[value])
    vba.frameadvance()
end
Here are the maps to refer to. http://img.photobucket.com/albums/v299/RyanFerneau/Sector1powerupslabeled.png http://img.photobucket.com/albums/v299/RyanFerneau/Sector2powerupslabeled.png MS Paint makes some nice labels, huh? And the blue mystery data is the wrong shade of blue because it steadfastly refuses to add colors to the palette. Simply look for the letters the script gives to see where the items will be on that frame. Take a look at where the numbers are. For all locations that share a number, there will be mystery data in only one of them. Hmmm, didn't I give the general route earlier? Well, I'll describe the trips through the Internet again. The first trip involves retrieving a Prog for Glyde. You have to do this before the oven emergency will start. This trip is all Area 1. Along the way, we should bump into the entrance to Area 2, because that's necessary to get Dex to challenge you later. The second trip is to beat StoneMan, so you'll go from Area 1 into Area 2 and take the branch to the northwest, stopping at StoneMan. If you want to try to use Dex's PC as a shortcut, you should bookmark the access portal with @Dex on this trip. The third trip is the shortest, as all you do is go from Lan's computer into Mayl's to deliver a message. But you can still get one random mystery data on that path. The fourth trip comes after you receive the Hig Memo. Start from Area 1 again. This is your last chance to shop there! If you bookmarked Dex's PC, you can use that computer for the shortcut now. Take the southeast-pointing branch of the fork in Area 2 this time, which will take you to a door that requires /Miyu. (Though you started out going southeast, you end up at a door that's northwest of the door that requires /Sal. Don't get confused now!) /Miyu takes you into Area 4, so proceed to the end where you use Mr. Higsby's memo and fight three strong viruses. Once you win, you'll finally enter Area 5, or what's considered the first zone of the Undernet. At this point Higsby sends you an e-mail that allows you to ask for the memo at the SciLab, but with my plan we're not done here yet. Proceed to where there are two doors. The door above is locked, but the door to the right will take you to Area 9. From there it's a quick trip down to Area 3, where you can bookmark Dad's PC for a great shortcut. That's right, you can get into Area 3 without /Sal by using this back entrance! Before jacking out, we'll probably have to continue on to the vendor to buy the cheapest armor for an easy 6 levels. Once you have all four memos, you can begin the fifth and final trip into the Internet. This time, start at Dad's PC and go back the way you came in, up through Area 9, where you can now get back into Area 5 with the Lab Memo, and straight up to Area 6 with the same memo. Follow the path to Area 7, then to Area 8, then to BombMan at the end. Once you defeat BombMan, that's it! Jack out and talk to Dr. Hikari, and you're done for the day and with this game's Internet. The only other digital area you would visit twice is the Waterworks net. It branches in the second area, and you're forced onto one branch first because the other's blocked. Once you beat the mini-boss, you go back to ACDC Town and eventually acquire a Handle that allows you to take the other path to IceMan after you re-enter the water cooler. Does that answer all your questions? If you wanted to know more about the route through the real-world story, well, I could explain that too, but it's easier to understand if you try a minimalist run yourself once or twice.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
t3h Icy wrote:
In a Speedrun, I'm not sure how viable this is since switching weapons to and from, as well as using Rain Flush takes up precious frames.
Maybe in a Rockman Complete Works 4 run? :)
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Wow, nice find! So somebody already discovered that glitch a year ago and did some analysis on it. And now 4 different attacks have been reported to cause the glitch, so it probably works with anything that makes ProtoMan flinch. We just need to find the right moment in his attack pattern then. I'm not sure Shotoman really understood the differences in ProtoMan's attacks; whether he takes a wide swing or a long swing depends on where MegaMan is in relation to him, just as with the Swordy viruses. Charging up lets ProtoMan teleport directly in front of MegaMan instead of just to his own front column, and he'll do so up to three times if MegaMan dodges his sword. But sometimes he'll also attempt do his regular, front-column attack three times in a row, without even teleporting to the back again between tries, only stopping when MegaMan's been hit or ProtoMan's missed three times. So if you got hit by the first swipe of that attack, you couldn't tell it apart from the regular attack, I think. As for BombMan, I was probably just going to shoot him a few times at the very beginning to get the 20 points or so in, as it takes a second for the bombs to get set up anyway. Then I may not even need the Charge attribute at all, depending on what I use on ElecMan. So I think the only annoying thing would be manipulating the 280 damage to happen. And you're right that several of the bosses will only require TriSpear + GutsShoot, and in MagicMan's case maybe a HiCannon for a finisher. Other weaker bosses can be taken out faster with a row of Swords. I recall that even IceMan can be finished more quickly with 5 swords and then just shooting him 20 times to take off the remaining 100 HP than with waiting for GutsShoot to form, so it probably doesn't help to gamble for electric chips to use on him either. The thing about ElecMan is that you're thrown into ProtoMan's battle immediately afterward with no time to re-arrange the folder, so unless you want to try to wait for the chips you need to randomly swap themselves into place, you'll have to set up the chips for ProtoMan's battle before ElecMan's main battle. And unless the game just happens to pick the same folder slots for the first 5 chips then, you won't be able to use the same chips in both battles. So my plan was to use GutsShoot on ProtoMan, since his battle would be very slow with all that shielding, and find something else to use on ElecMan. But if you can figure out that multiple hit glitch on ProtoMan, we may be able to use Quake3 to finish him off fairly quickly (likely starting with a MiniBomb so he doesn't have to flinch again), which would free up TriSpear + GutsShoot for ElecMan. ElecMan's first fight is the one where you have to hit him for at least 50 HP 3 times, and I found that ShokWave + MiniBomb + MiniBomb was the fastest way to do that out of what I had, because it's slower to make ElecMan flinch, and it's slower to start off with an attack as slow as MiniBomb that lets him start to move to another square. So that would be one of the drawbacks to getting ShokWave P next to the area 3 vendor later instead of the ShokWave L early on. HiCannon, Dash, and TriSpear would work just as well I believe, but we'll want at least the Dash for GutsShoot later, and I think setting up the folder for 3 battles in a row would be the most efficient when there's hardly any time in between the two forms of ElecMan anyway. Do you remember the viruses you fight after when using the Hig Memo to get into Area 5 (the Undernet)? That's another battle where the DynaWave + Quake3 + AquaTowr strategy really helps. GutsShoot does bypass the shield, as it does with most objects belonging to the enemy, but that's a very inefficient way to beat something with 250 HP. So it's quite valuable to have Quake3 C and DynaWave C, but I hate the time sink required in jacking into Miyu's vase and then trying to get a perfect battle against a blue Mettool + one, and that's why I'm hoping they'll show up quickly enough in the chip trader. Hmm, what else was I gonna say... KirkQ said I could just post Lua scripts with code tags, so here are a few that we made:
local AD1 = 0x020003f4    -- good
local AD3 = 0x02006448  -- good
local AD1Value
local AD3Value
AD1Value = 7
AD3Value = 7
while true do
memory.writebyte(AD1, AD1Value)
memory.writebyte(AD3, AD3Value)
    vba.frameadvance();
end
Here's a simple one. It's just a cheat that prevents you from ever getting into any random encounter battles. Now you can roam the cyberworld without fear! Keep in mind that it doesn't affect non-random battles, so stay away from boss triggers until you're ready. And be careful not to leave a cheat like this on when you open another ROM, because there's no telling what might happen!
local tempstate = {}
local iterations
local value
local i
local j
local keys

local ChipID = 0x02019009
local ChipCode = 0x0201900a
local ChipIDValue
local ChipCodeValue

moviefile = "MemDump.vbm"
-- output file. contains ingame frame, scroll, position and hitbox information
dumpfile = moviefile..".dump"
io.output(dumpfile)

value = 0
tempstate[value] = savestate.create()
savestate.save(tempstate[value])

--iterations = 32768
iterations = 2000
for j = 1,iterations do	
    vba.frameadvance()
    savestate.save(tempstate[value])

    joypad.set(1,{["A"]=true})

    for i=1,60 do
	vba.frameadvance()
    end
    
    joypad.set(1,{["A"]=true})
    vba.frameadvance()
    vba.frameadvance()
    vba.frameadvance()
    
    joypad.set(1,{["A"]=true})
    vba.frameadvance()
    vba.frameadvance()
    vba.frameadvance()

--Insert 7 more here for special
    
    --joypad.set(1,{["A"]=true})

    --for i=1,3 do
        --vba.frameadvance()
    --end    
    
--------------------------
    
    

    joypad.set(1,{["A"]=true})

    for i=1,41 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["B"]=true})
    
    for i=1,13 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["A"]=true})
    
    for i=1,41 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["B"]=true})
    
    for i=1,8 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["A"]=true})
    
    for i=1,9 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["B"]=true})
    
    for i=1,55 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["A"]=true})
    
    for i=1,9 do
        vba.frameadvance()
    end
    
    joypad.set(1,{["B"]=true})
 
    for i=1,15 do
        vba.frameadvance()
    end
 
--    joypad.set(1,{["B"]=true})
 
--    for i=1,25 do
--        vba.frameadvance()
--    end

--    joypad.set(1,{["start"]=true})
 
--    for i=1,20 do
--        vba.frameadvance()
--    end

    joypad.set(1,{["A"]=true})
 
--    for i=1,30 do
    for i=1,44 do
	vba.frameadvance()
	gui.text(0,0,"ID: " .. memory.readbyte(ChipID))
	gui.text(0,10,"Code: " .. memory.readbyte(ChipCode))
    end

    ChipIDValue = memory.readbyte(ChipID)
    ChipCodeValue = memory.readbyte(ChipCode)    
    
    io.write(ChipIDValue, "\n")
    io.write(ChipCodeValue, "\n")
    
    savestate.load(tempstate[value])
end
An old classic from KirkQ, which I modified a bit to streamline the timing. I learned most of what I know about Lua by studying this. This is the script that retries the chip trading machine on each successive frame and records what you would have gotten. To run this, you need to be in the dialog box that asks whether you would like to trade, because the first thing this does it choose Yes. In the output file, each odd-numbered line contains the chip's ID as seen in the library, and the line immediately following contains the chip's letter code, where 0 through 25 correspond to A through Z. Some of that commented-out code was in case you had fewer than 5 chips left, so it couldn't start to trade again to see what was at the top of the folder. You can also make a variation of this to use the 10-chip trader, as Kirk's comment shows. You may have noticed I let the script wait a couple more frames than necessary for each action, but that was because I don't want it to fail when a bit of random lag sets in. Accessing the Folder takes longer the more kinds of chips you have. Oh, and that it outputs to the screen at the end isn't really necessary, but it shows that it's working and doesn't harm anything.
local tempstate = {}
local iterations
local value
local i
local j
local addressvalue

local AD1 = 0x02004910
local AD2 = 0x02004911
local AD3 = 0x02004912
local AD4 = 0x02004913
local AD5 = 0x02004914
local AD6 = 0x02004915
local AD7 = 0x02004916
local AD8 = 0x02004917
local AD9 = 0x02004918
local AD10 = 0x02004919
local AD11 = 0x0200491A
local AD12 = 0x0200491B
local AD13 = 0x0200491C
local AD14 = 0x0200491D
local AD15 = 0x0200491E
local AD16 = 0x0200491F
local AD17 = 0x02004920
local AD18 = 0x02004921
local AD19 = 0x02004922
local AD20 = 0x02004923
local AD21 = 0x02004924
local AD22 = 0x02004925
local AD23 = 0x02004926
local AD24 = 0x02004927
local AD25 = 0x02004928
local AD26 = 0x02004929
local AD27 = 0x0200492A
local AD28 = 0x0200492B
local AD29 = 0x0200492C
local AD30 = 0x0200492D

moviefile = "BattleMemDump.vbm"
dumpfile = moviefile..".dump"
io.output(dumpfile)

value = 1
tempstate[value] = savestate.create()
savestate.save(tempstate[value])

iterations = 1000
for j = 1,iterations do	
    vba.frameadvance()
    savestate.save(tempstate[value])

    joypad.set(1,{["left"]=true})
    vba.frameadvance()
    joypad.set(1,{["left"]=true})
    vba.frameadvance()

    for i=1,75 do
	vba.frameadvance()
    end
    
    joypad.set(1,{["start"]=true})

    for i=1,120 do
        vba.frameadvance()
    end
    

    io.write(memory.readbyte(AD1)," ")
    io.write(memory.readbyte(AD2)," ")
    io.write(memory.readbyte(AD3)," ")
    io.write(memory.readbyte(AD4)," ")
    io.write(memory.readbyte(AD5)," ")
    io.write(memory.readbyte(AD6)," ")
    io.write(memory.readbyte(AD7)," ")
    io.write(memory.readbyte(AD8)," ")
    io.write(memory.readbyte(AD9)," ")
    io.write(memory.readbyte(AD10)," ")
    io.write(memory.readbyte(AD11)," ")
    io.write(memory.readbyte(AD12)," ")
    io.write(memory.readbyte(AD13)," ")
    io.write(memory.readbyte(AD14)," ")
    io.write(memory.readbyte(AD15)," ")
    io.write(memory.readbyte(AD16)," ")
    io.write(memory.readbyte(AD17)," ")
    io.write(memory.readbyte(AD18)," ")
    io.write(memory.readbyte(AD19)," ")
    io.write(memory.readbyte(AD20)," ")
    io.write(memory.readbyte(AD21)," ")
    io.write(memory.readbyte(AD22)," ")
    io.write(memory.readbyte(AD23)," ")
    io.write(memory.readbyte(AD24)," ")
    io.write(memory.readbyte(AD25)," ")
    io.write(memory.readbyte(AD26)," ")
    io.write(memory.readbyte(AD27)," ")
    io.write(memory.readbyte(AD28)," ")
    io.write(memory.readbyte(AD29)," ")
    io.write(memory.readbyte(AD30)," ")
    io.write("\n")
    
    savestate.load(tempstate[value])
end
Here's a script Kirk made to retry a boss battle (such as FireMan, which you would have to be one pixel to the right of) many times and record the sequence of folder slots chosen to form the chip order in battle. Now that's what you'll need to optimize the final TAS, but if I'm just testing from the start of a battle, I use this script I made:
local tempstate = {}
local iterations
local value
local i
local j
local addressvalue

local AD1 = 0x02004910
local AD2 = 0x02004911
local AD3 = 0x02004912
local AD4 = 0x02004913
local AD5 = 0x02004914
local AD6 = 0x02004915
local AD7 = 0x02004916
local AD8 = 0x02004917
local AD9 = 0x02004918
local AD10 = 0x02004919
local AD11 = 0x0200491A
local AD12 = 0x0200491B
local AD13 = 0x0200491C
local AD14 = 0x0200491D
local AD15 = 0x0200491E
local AD16 = 0x0200491F
local AD17 = 0x02004920
local AD18 = 0x02004921
local AD19 = 0x02004922
local AD20 = 0x02004923
local AD21 = 0x02004924
local AD22 = 0x02004925
local AD23 = 0x02004926
local AD24 = 0x02004927
local AD25 = 0x02004928
local AD26 = 0x02004929
local AD27 = 0x0200492A
local AD28 = 0x0200492B
local AD29 = 0x0200492C
local AD30 = 0x0200492D

while true do	
    gui.text(0,0, memory.readbyte(AD1) .. " " .. memory.readbyte(AD2) .. " " .. memory.readbyte(AD3) .. " " .. memory.readbyte(AD4) .. " " .. memory.readbyte(AD5))
    gui.text(0,10, memory.readbyte(AD6) .. " " .. memory.readbyte(AD7) .. " " .. memory.readbyte(AD8) .. " " .. memory.readbyte(AD9) .. " " .. memory.readbyte(AD10))
    gui.text(0,20, memory.readbyte(AD11) .. " " .. memory.readbyte(AD12) .. " " .. memory.readbyte(AD13) .. " " .. memory.readbyte(AD14) .. " " .. memory.readbyte(AD15))
    gui.text(0,30, memory.readbyte(AD16) .. " " .. memory.readbyte(AD17) .. " " .. memory.readbyte(AD18) .. " " .. memory.readbyte(AD19) .. " " .. memory.readbyte(AD20))
    gui.text(0,40, memory.readbyte(AD21) .. " " .. memory.readbyte(AD22) .. " " .. memory.readbyte(AD23) .. " " .. memory.readbyte(AD24) .. " " .. memory.readbyte(AD25))
    gui.text(0,50, memory.readbyte(AD26) .. " " .. memory.readbyte(AD27) .. " " .. memory.readbyte(AD28) .. " " .. memory.readbyte(AD29) .. " " .. memory.readbyte(AD30))
    vba.frameadvance()
end
Okay, I'm not sure if any of those variables are necessary, as this started out as a commented-out version of KirkQ's script. Anyway, this just displays the order of chips in the latest battle in a clump in the corner of the screen. We don't yet know how to find this sequence before a battle begins, but what you can do is save-state while viewing the folder, close out and enter the battle in an optimized way, and record the sequence you get; you'll probably only need the top row. Then you can reload that state and move the chips you want into those slots where 0 is top and 29 is bottom and it's 7 per page. You can take your time doing this, because the sequence doesn't change while viewing the folder. Then close out of the menu and enter the battle with the same timing as before, and you should have exactly what you need.
local tempstate = {}
local i
local j

dumpfile="places.dump"
io.output(dumpfile)

value = 0
tempstate[value] = savestate.create()

for j = 0,80000 do
    savestate.save(tempstate[value])
    for i=1,100 do
        joypad.set(1,{["right"]=true,["up"]=true,["B"]=true})
        vba.frameadvance()
    end

    io.write(j, ": ")
    if(memory.readdword(0x020034CC) == 0x00BEFF0E) then
        io.write(0)
    end
    if(memory.readdword(0x020034CC) == 0x0194FEB6) then
        io.write(1)
    end
    if(memory.readdword(0x020034B8) == 0x001400A4) then
        io.write(2)
    end
    if(memory.readdword(0x020034B8) == 0x011A00DC) then
        io.write(3)
    end
    if(memory.readdword(0x020034B8) == 0xFF540110) then
        io.write(4)
    end
    if(memory.readdword(0x020034B8) == 0xFE9E011C) then
        io.write(5)
    end
    if(memory.readdword(0x020034CC) == 0xFEECFFA4) then
        io.write(6)
    end
    if(memory.readdword(0x020034CC) == 0x01A8FFFC) then
        io.write(7)
    end
    io.write(", ")

    for i=1,200 do
        joypad.set(1,{["right"]=true,["B"]=true})
        vba.frameadvance()
    end

    if(memory.readdword(0x020034CC) == 0xFE74FF64) then
        io.write(0)
    end
    if(memory.readdword(0x020034E0) == 0x00C8FF24) then
        io.write(1)
    end
    if(memory.readdword(0x020034F4) == 0x0022018E) then
        io.write(2)
    end
    if(memory.readdword(0x020034E0) == 0x0164FF8A) then
        io.write(3)
    end
    if(memory.readdword(0x020034B8) == 0x00F0FEB8) then
        io.write(4)
    end
    if(memory.readdword(0x020034B8) == 0x0158FDC6) then
        io.write(5)
    end
    if(memory.readdword(0x020034B8) == 0xFF78FE54) then
        io.write(6)
    end
    if(memory.readdword(0x020034F4) == 0x00F600DA) then
        io.write(7)
    end
    if(memory.readdword(0x020034E0) == 0xFFEC00CC) then
        io.write(8)
    end
    if(memory.readdword(0x020034E0) == 0x004CFFD0) then
        io.write(9)
    end
    if(memory.readdword(0x020034F4) == 0xFFD80164) then
        io.write("A")
    end
    if(memory.readdword(0x020034F4) == 0x00C400FA) then
        io.write("B")
    end
    if(memory.readdword(0x020034B8) == 0x01DCFEF2) then
        io.write("C")
    end
    if(memory.readdword(0x020034CC) == 0x0032FFA8) then
        io.write("D")
    end
    if(memory.readdword(0x020034CC) == 0xFE3E0040) then
        io.write("E")
    end
    if(memory.readdword(0x020034CC) == 0xFF9AFFF6) then
        io.write("F")
    end
    io.write("\n")

    savestate.load(tempstate[value])
    vba.frameadvance()
end
This one I made on my own to test the random item locations in areas 1 and 2 in a similar way to the chip trade tester. It requires that you start out a little below and to the left of the portal from Dex's computer to the Internet (as in where you end up when you enter Dex's PC from the Net) to function fully, as the memory addresses correspond to the actual positions of sprites on the map, so the script needs to visit both areas to see where they are. Since both areas' random item locations are decided when you enter the Internet anywhere, it should be possible to find another place in memory that has all 6 locations so the script wouldn't have to run around, but I'm not very good at address-hunting. Uh, and those numbers it outputs? That was a system I came up with to label each location. I ought to make a map of those soon so everyone can see what the output means.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
I'm thinking of making a set of savestates throughout the planned route through the game so that it will become easier for everyone to test things. In the meantime, check out this movie I made of just the tutorial. http://dehacked.2y.net/microstorage.php/info/136573249/Begins.vbm At first I was just going to shoot the last Mettool of the second lesson ten times and finish it off with a Shotgun, since that starts off a bit faster than a Cannon, but then I discovered that I could MegaBuster it to death before I would have even gotten into the battle chip menu. It's a shame to have to waste a second to get 3 Cannons into place for the third lesson, though that may mean that grabbing the Recov10 A at the beginning for chip trade fodder would be wasting even less time. And why does this page say you can skip the tutorial in this game?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
braindx wrote:
This was in one of the FAQs on gamefaq's:
At Higsby's store, you will find two machines. If you put some Battle Chips of your choice, you can obtain another one, sometimes very rare! As you can see, the type of chip you put as nothing to do with the one you get. 3-chips machine: 3/4 probability of having... 202/256 probability to get a 1-star chip 32/256 probability to get a 2-stars chip 16/256 probability to get a 3-stars chip 5/256 probability to get a 4-stars chip 1/256 probability to get a 5-stars chip 1/4 probability of having... 13/16 probability to get a 1-star chip 2/16 probability to get a 2-stars chip 1/16 probability to get a 3-stars chip 10-chips machine: 3/4 probability of having... 16/256 probability to get a 1-star chip 176/256 probability to get a 2-stars chip 32/256 probability to get a 3-stars chip 16/256 probability to get a 4-stars chip 16/256 probability to get a 5-stars chip 1/4 probability of having... 1/16 probability to get a 1-star chip 11/16 probability to get a 2-stars chip 2/16 probability to get a 3-stars chip 1/16 probability to get a 4-stars chip 1/16 probability to get a 5-stars chip
I suppose the probabilities don't matter because its TAS, but at least you know you can get 4/5 star chips depending on the situation. Unfortunately, it doesn't have Navi star chips listed so you can't tell if it's only normal, Navi, both. I remember using save states to brute force these machines so I didn't have to run around battling viruses to get my full chip set. Fun times, haha.
I brute-forced the machines the same way, but I used a Lua script that KirkQ made to do it tens of thousands of times. I learned that the probabilities seen in that guide don't match up to the actual results; in fact, the 3-chip trader never even dispenses any 5-star chips, even if you have them all already! Didn't you read my post about the rules for the trader machines? What the machines dispense is based on your Data Library, that is, what battle chips you have ever legitimately owned. The 10-chip trader can dispense any chip you don't already have in the library except LifeAura, MagicManV1/V2/V3, PharaohManV1/V2/V3, ShadowManV1/V2/V3, and Bass. The 3-chip trader is much more restricted. It will gives out copies of any 1-star, 2-star, 3-star, or 4-star chips already in your library, but the only chips it will give out for the first time are 1-star chips, 2-star chips minus a certain ten kinds, and 3-star chips minus all the Navis, and then only in certain letter codes, usually whichever codes you don't get from fighting the virus that drops it. A couple of experiments shed some light on how that works. I tried running the "Try the chip trader lots of times" script both before and after getting a new battle chip (which would be added to the Library). The After list was almost identical to the Before list; the only chips affected were the ones with the same star value as the new chip, but otherwise the same star value came up at the same times, and the chips of other star values were all the same. A few chips of the same star value weren't changed, though, and all new chips were also the same, which leads me and Kirk to believe that the trader picks a list of possible chips out of a few possible lists before picking the chip itself. In the case of the 3-chip trader, the lists would be "1-star chips already in the library", "2-star chips already in the library", "3-star chips already in the library", "4-star chips already in the library", and "1-star chips in certain codes, 2-star chips minus those ten in certain codes, and 3-star chips minus the Navis in certain codes". As far as I know the only way to change the sequence of that final "master" list of chips you could win for the first time would be to reset the system and reload your save file. The 10-chip trader is probably like this too, only it would add a "5-star chips already in the library" list, and its "master list" would be much more broader. (Now you may be wondering, "Where does the 4-star list pull from if you don't already have any 4-star chips?" Well, I did a before-and-after test with Roll2, and it turned out to replace a few 1-star chips while not disrupting anything else, so I think the 4-star list starts out as a second 1-star list.)
braindx wrote:
I don't recall if StoneMan flinches or not. I think it's not?
braindx wrote:
Unfortunately, I don't think any of the guides list which chips cause a lot of flinching. :(
StoneMan does flinch, whenever you hit him for 100 points or more at a time. His flinch animation is kinda subtle, though. Here's my list of which Navis flinch at which levels of damage: GutsMan: 60 HP FireMan: 30 HP NumberMan: 30 HP StoneMan: 100 HP IceMan: 100 HP SkullMan: 100 HP ColorMan: 100 HP ElecMan: 90 HP ProtoMan: 60 HP BombMan: 100 HP I didn't test the secret bosses yet. WoodMan, SharkMan, MagicMan, and non-Navi enemies such as LifeVirus don't seem to ever flinch. By the way, I found out that BombMan isn't fire-elemented, as aqua chips didn't do any extra damage to him. I think his bombs are, though, as they still did full damage against WoodArmor. But if you use a fire chip against BombMan's own bombs, they'll explode on him, doing massive damage. It seemed that they randomly did either 140, 210, or 280 points to him, decided with the bomb placement and which bomb you hit, and the 280 damage seemed to be rarer than the 140 and 210.
braindx wrote:
You can get a TimeBomb G code from school area 4/5 fight which would satisfy a chip requirement. If you also grab the HiCannon G that's another chip there, and you can insta-bust him with the GutsShoot combo+bomb+HiCan..... although that might be slower than HiCan + buster + GutsShoot. IF there's no flinch then TimeBomb lay first, then HiCan then GutsShoot MIGHT probably be faster than shooting the buster.
I didn't think Handies dropped TimeBom1 in G code. I don't think you can even get TimeBom1 G from the chip trader until you already have TimeBom1 in your library. I also don't think you can fight blue Canodumbs for HiCannon in the school, but correct me if I'm wrong. I know you can collect HiCannon I as an item sitting there, but I found it takes 11 seconds to go there and back, so I may as well fight an easy battle for HiCannon G (power plant maybe?) if it turns out to save more time than the battle takes. I doubt I'll get to use HiCannon on StoneMan though, and TimeBombs waste time just to set. And they take so long to go off, I'll probably have defeated the boss before then! I considered TimeBom3 P for LifeVirus once, since it would destroy the helper virus, do a lot of damage, and maybe even help me win before the aura goes up the second time. But it's also several seconds to jog over to that item, and at that point I would have already passed the 60-chip requirement and wouldn't need to fill the library anymore. And StoneMan only has 600 HP, so you wouldn't need GutsShoot, HighCannon, AND TimeBomb all together to win fast anyway.
braindx wrote:
Is the Blaster Power/speed/Charge DPS optimized yet? Putting points into charge depends A LOT if you're using chips that are making the Navis you're going to fight flinch. Has this been calculated out?
You're right that whether to increase Charge depends on if you use high-power chips and have to wait for a Navi's invulnerability time to end. A couple of strategies I tried on ElecMan and BombMan used that. But I definitely want to increase Attack to 5 as soon as possible, as that helps out the most in every situation, and I'm not sure about getting a fifth PowerUp to use for Charge at all. If it doesn't save enough time in boss battles, I may buy three extra HPMemories instead to meet the Level 30 requirement, as a fifth PowerUp would require either 8000z more than the 3 HPMemories or an extra jack-in to the summer school blackboard. (I'm pretty sure the WWW PIN is out of the question.)
braindx wrote:
I think it's probably a lot quicker to just drop charge altogether in favor of pow/spd, but I'm not sure if you've optimized the DPS output for that.
I hope you're not referring to the Rapid stat with "spd". It barely helps at all. Even at Rapid 1, with the boss sitting in the back, you can shoot once every 14 frames by moving back and forth between squares to skip the time that MegaMan stands still after firing. At Rapid 2, you can fire across two squares every 13 frames instead. Not a huge difference, huh? But if you're just talking about fast battle chips, then yeah, I'm going only for fast ones except for Program Advances like GutsShoot that would make up for it with power.
braindx wrote:
With the 60 chip limit you need to hit, the fastest way to get them is to manipulate GMDs to give you the chips that you want alongside random battles. Without a good GMD it's like a crapshoot unless you want to brute force test them all to see what you can get.
braindx wrote:
Unfortunately, it looks like money might be a limiter here because you need to buy powerups as well as possibly HPMem. Manipulating GMD for money is probably the best solution, but problematically you would also need to get enough chips and the fastest way to do that is a combo of battle + grabbing GMDs for chips. If we could find out what is in each and every GMD (and their different spawn locations) we solve out how many to get VS. how many random encounter battles we need to do. Depending on how many GMDs you can encounter along the way you can shell money out of them or chips that you need.
Um... Doesn't that same guide that listed the trade probabilities you quoted also tell what items are available in every area, even the random ones? I have a guide that does, and the only error in that section I've found so far is that there doesn't seem to be a Howitzer A in Area 15. Now, assuming you're only referring to the random mystery data in the Internet, there are a few battle chips I could grab from them to add to the Library. The only problem is that a lot of their contents are chips I'd already have, and a lot of others are too far off the path to be worth the trip. Here are the random chips I'm thinking of grabbing on the path that goes through Area 1, Area 2, Area 4, Area 5, Area 9, and Area 3: Recov30 G IcePunch B/M IceCube M Recov150 E and LongSwrd O if I decide that I don't need to use Beta-Sword or Sigma-Sword and therefore don't need to fight for LongSwrd S. Oh and ShokWave P, if I don't need ShokWave L or random money there instead! It's not that many, see? I also plan to get the non-random AquaSwrd A item in Area 4. Thunder1 H and RingZap1 H are too far off the path to the point where it would be faster to fight viruses for them, and to get RockCube would require either fighting StoneManV2 or re-entering the Net an extra time after acquiring the Lab Memo to reach Area 6 early. It is true you can manipulate random mystery data to contain more money. In Area 1, the maximum is 1000z. In Area 2, it's 1500z. And in the other four areas I plan to visit before Ms. Yuri, it's 2000z. The highest amount of money always seems to be the rarest, though. There's also a snag in that the first two areas have random locations for their random items too. I found out a long time ago that Area 1 has 2 items in 8 possible locations, and Area 2 has 4 items in 16 possible locations. Recently I also learned that each item chooses 1 of 4 locations, so there are some combinations of locations that aren't possible because they're shared by the same item. Every time you enter the Internet from anyone's PC, the random items are replenished everywhere, and the random locations for areas 1 and 2 are chosen again and set until you jack out. That means you're getting 1 out of 4^6 = 4096 possible configurations of random item locations when you enter. Could take a while to luck-manipulate, huh? Now, for Area 2, I see there are only going to be 2 locations very close to the path each trip, so I would only be manipulating for 4 items, or a 1 out of 256 chance. Might have to settle for 3, and try something else. But I do want to get two 1000 zennies on both of the first two trips through Area 1 so I can afford 2 PowerUps before StoneMan.
braindx wrote:
Probably don't need to do many more than ~15 random battles to get unique chips I would guess. Once you get 15 or so it may be faster to chip trade them for ~5-6 that you want for your folder. You can probably get the rest of them from GMD/BMD pickups, and buying chips. This would then allow optimization of how many powerups we need to get when and where to speed up boss battles (although it would require a lot of trial and error unless we can write a script to calculate that out -- I don't have that ability).
Actually, I don't think we'll need more than about 5 random battles. The one I'm totally sure of is the one to get Dash G, so you can use GutsShoot. I'm also seriously considering going for TriSpear G, as although it requires an extra jack-in, we can also get Recov200 for the library and 3000z along the way, and it helps a lot in boss battles. (It's 3 shots worth 50 each, so you do 150 damage without causing a flinch!) I also mentioned the possibility of LongSwrd S and HiCannon G, and DynaWave is helpful in a few situations too.
braindx wrote:
optimizing this will be hard because chip battles take about 10-15 seconds, and GMDs while fast (only a couple seconds) are few and far between to get. The question is when you get to the 60 chip limit to get further in the story... IF you got minimal chips, how many chips do you have? If we can work backwards from there you can probably optimize a path and random encounters to get enough.
That's what I'm working on right now. I think we can get pretty close to 60 just by collecting any chip near the path not already in the library and trading them in at the 3-chip exchanger, and we can supplement it by trading a few quick repeat chips and buying a few cheap chips. As you know, we can luck-manipulate the trader machine to give an all-new chip very quickly, so at some point there will be a trip to Higsby's to dump in all the extra chips collected so far to get new chips to fill the library. The quickest time to do that would be while obtaining Higsby's Memo, but that means we wouldn't have the chips collected from the run through the Internet to use the Hig Memo yet. There's also the possibility of getting a few chips that would actually help in battle from these trades, which would be easier done while dumping in a lot of chips as you would be spending the time waiting for the desired chip by getting just any chip, but some of these you would need to make an extra stop for earlier. For example, you could get Snakegg1 N and WoodTowr N to seriously exploit ElecMan's wood weakness, or a FireSwrd G to hit BombMan's bombs before using GutsShoot. Quake3 C and DynaWave C also help out on some of the last few bosses and would be quicker to trade for than to find normally, but they don't come up in the trader as often, and how the timing would work out for any of this is still just guesswork at this point until someone makes an optimized run. The way I see 3-chip trading is that each trade results in a net loss of 2 chips, so each additional chip in your sack is worth one-half of a new chip, and if that chip is also new, then it's like one and a half chips, making it about three times as good as a repeat chip. The one time this idea breaks down is when you get to 2 chips--can't go negative to end up at 0! Basically, for whatever number of chips you dump in, you're getting either half that number rounded down, or half that number minus one if it's already whole. 30 chips would net you 14, 31 would get you 15, 32 would also get 15, 33 would get 16, and so on. Does this make sense? So whatever chips you plan to get after The Great Dumping wouldn't be "worth" as much as they would be beforehand, such as that Barrier R I plan to grab from the summer school locker, and possibly Ratton1 E from the kid beside it. I recorded that getting 1 chip from the trader while you're stopping at Higsby's takes about 254 frames, and each additional chip adds 213 frames plus whatever luck manipulation time. So the average will be about 220 frames per chip, I think. (And I like to think that each new chip you pick up elsewhere already "saves" 4 seconds you would have spent trading in other chips, plus the time spent grabbing the chips to trade.) If you're manipulating it to get chips you'll use later, though, you may have to stop trading for a moment and swap them into the folder, or at least use the Sort function to move them out of the way, so you don't trade them.
braindx wrote:
Oh, and the fact that you can't run from battles is *facepalm* annoying especially since you can in later games. Makes for a pain in the butt trying to map out routes and such
Well, you won't be running from battles at all in a TAS when you can just manipulate luck to not get into any battles in the first place. So the pain in the butt is really trying to figure out how little time you can waste affecting the time to the next battle. :) I figure running against walls will help, as you lose 1 frame every time you change speed or direction, but running into a wall at an angle causes you to run parallel to the wall, with no speed penalty, until you clear the edge. So instead of changing direction twice or letting go of B, you might be able to switch between running against the wall and running with the wall, with only a 1 frame penalty each time. I haven't tested this much, so I don't know if 1 frame of stopping is always enough, but I think so. As for mapping routes, Kirk also came up with a cheat to avoid getting into any random battles at all. What's a good way to post Lua scripts for this stuff?
braindx wrote:
I personally would've chosen to do the TAS for MMBN2 just because of the 50k zenny GMD.
Well, why don't you? I don't think anyone's working on MMBN2 right now, and you seem to know that game better anyway. Take a look at Soulrivers's run to get an idea of how the AirMan scenario would go.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Um, VisualBoyAdvance does let you push the entire D-pad at once, but you have to go into Options->Controls and check "Allow Left+Right / Up+Down".
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Right, I stopped the movie at the end of 1-1 and got 19 seconds myself to see what would happen, because I thought the submission text meant there was a glitch that would cause the score to literally tally forever. But no, it just gives you 300000 instead of 200000. It does last a really long time, though, so long that it's funny in a way. They couldn't find a way to count more than 100 points per frame and stop wasting the player's time? Really?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Where is the movie?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Oh, I was hoping you would show how you got that score, but that movie's basically just a container for a save state. Still, I liked listening to the World 8 music again! I forgot how cool the NES version sounded after only hearing the Mario Party remix and speedruns that interrupt the music with movement beeps.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Or you could take the opposite approach, and say that since we already discovered so many things that God didn't have to do, then we may as well think that God did nothing! But why be so binary-absolutist about it?
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
Here are a few battles I recorded to help me analyze some things. They show off a lot of the battle chips we're considering other than the ones for GutsShoot. http://dehacked.2y.net/microstorage.php/info/1764044193/SigSElec.vbm http://dehacked.2y.net/microstorage.php/info/1028842351/CBombMan.vbm http://dehacked.2y.net/microstorage.php/info/203320218/CVirus.vbm Now it looks as if the time spent collecting Quake3 C and DynaWave C may be worth it. (The DynaWave + Quake3 + AquaTowr strategy also works very well on the guard viruses at the beginning of the Undernet, but I didn't record that battle.) That strategy on BombMan required a fifth PowerUp, though, which I'm still not sure on. Soon we should put together some kind of spreadsheet to organize the times to reach each item and decide which collection of items is fastest overall.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
And GBA is exactly the same as GB. The numerator and denominator were both multiplied by 4.
put yourself in my rocketpack if that poochie is one outrageous dude
Experienced Forum User, Published Author, Active player (278)
Joined: 5/29/2004
Posts: 5712
What I remember about using Dust Crusher in the Game Boy game is that if you want to fire it fast, you need to be right up against the enemy, so that the 4 pieces will briefly spread out inside the enemy, striking the same hitbox and getting absorbed again. I have no clue how well that works in this game though.
put yourself in my rocketpack if that poochie is one outrageous dude