Posts for Bobo_the_King

Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
I'm noticing increasingly strong patterns in the RNG table. I've almost figured out the columns and all I really need to do is write down a formula and find out how the rows work (there's a funky offset parameter that I can't yet make sense of). I'll edit this post when I figure it out. And based on my analysis of the pattern, I've figured out that I switched the values of 0x67 and 0x68. They should be 170 and 172 respectively. I'll update all of my tables, including the one on the reference page.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
FatRatKnight wrote:
Are you thinking about BURNING as a possibility?
The Territorial Oak Mutant M burst into flames! Be sure to catch my edits on my previous post.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Heh, and don't forget that GAZE would have to be the very next ability we learn. Because it rolls to the next YY whenever we learn a new ability, it should "snap" back to particular values. Edit: Incorporating TheAxeMan's latest edit (I noticed!).
TheAxeMan wrote:
-Weapon crits; Could any of these be useful? The big game-breaker would be keeping KING sword. But there are other weapons that can deliver crits in limited cases. Not enough money for most of them though.
Hmm, I don't have enough experience in that area, but this could potentially be really helpful, as Alex Jackson mentions that elemental weapons always score a critical hit in their first use after a soft reset. The only problem is finding an elemental weapon... For quite some time, I've been really drawn to the more sophisticated an eccentric elements of the game-- in particular, martial arts and bombs. Alas, it doesn't look like we'll be using either of them.
TheAxeMan wrote:
-Does COUNTER work if the hit kills you? Could be useful for several fights.
No idea, but it reminds me of those damn exploding trees from EarthBound.
TheAxeMan wrote:
-There is a HYPER cannon in the skyscraper that kills just about anything instantly. It might be too far out of the way to be profitable though.
Not a chance if SAW works the way we think it does. If not, a very slim chance.
TheAxeMan wrote:
-Use equipment to boost stats? The GIANT gauntlet and GETA shoes are each worth +10 Strength. You can buy GIANT gauntlet in world 3 hidden town and GETA shoes in world 4 Northeast down.
Sure beats buying STRONG potions! Great idea!
TheAxeMan wrote:
-There's also a GIANT gauntlet in world 3 jail but it would require walking a bit out of jail. Using teleport here forces you to go through some of the tower and get your bike again, so fighting it out through here could be profitable.
Yeah... according to my notes, it saves about 590 frames or 10 seconds to TELEPOR out of jail. It'd cost another second or two to pick up the gauntlet.
TheAxeMan wrote:
-Confusion, paralysis or sleep? Also probably out due to finances. Also all the bosses are immune to these since they are all the same element as death. There do seem to be some high-level monster abilities that can confuse without elemental limitations though.
Those crossed my mind. I certainly love the idea of reading "ATOM ANT sleeps" instead of waiting while it attacks. Still, I haven't found an instance where we need a status effect and that's usually a good indication that it won't be useful. It's in the back of my mind.
TheAxeMan wrote:
If you could get a monster with the stone version of GAZE you could use it on SEI-RYU.
I'm aware of this and I've been a little lazy about checking it since finding the shortest path to a particular monster can be extremely difficult. But since it's worth checking out for its potential benefit, I'll make it the last thing I check tonight, even if it's just a qualitative analysis. Finally, my own idea: since we won't need to manipulate stat boosts for the last portion of the game, I was thinking we should manipulate it so we always strike first in battle. I don't know if that works against bosses (or other non-random encounters), but it'd make the last section even easier! Edit 2: Just throwing this out here as a fun idea: we could create a Lua script (or if we're feeling masochistic, just a whole bunch of cheat codes) so that every RNG index is set to 254 (corresponding to 0) or all of them to 126 (corresponding to 255). It would make the game wild and maybe virtually unplayable, but it might offer some strange insights into what the RNGs do. And oh my goodness, I just noticed something. The indices corresponding 0 and 255 are 128 apart. Furthermore, the 255th index corresponds to 5 while the 127th index corresponds to 250 = 255 - 5. Oh boy... and the difference with the previous index is 46. At the very least, I smell a pattern. At most, I smell group theory. It's been a while since I last studied group theory, but I have a feeling we might be able to completely deconstruct the table into an extremely simple form. *Sigh*... I know I wouldn't have figured it out without pinning down the exact values, but it just feels so deflating to dismantle my hard-derived table in favor of a short formula. Oh well. Edit 3: Using my spreadsheet of RNG values, I was able to very quickly determine that each RNG value is exactly 128 indices away from its complement. For example, 123 is 128 indices away from 132. I know patterns are good, but this makes me strangely unhappy. Well, I had anticipated taking a light workload on this speedrun tonight. So much for that. Edit 4: No, I take back what I said about the RNG values always being 128 indices away from their complements. The RNG values at 103 and 104 (values 172 and 170) are not complemented by the values at 231 and 232 (values 85 and 83). I'm not striking through the content of my previous edit because the fact that these are consecutive values makes me very suspicious that I just switched two values. It's just a matter of figuring out which ones. Basically, be aware that there probably is a pattern to the RNG but beware those indices (103, 104, 231, and 232) because two of them are probably switched.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
I'm still busy, but some time freed up tonight. I was going to contact some people I talked to today when I suddenly realized I didn't have any of their email addresses.
FatRatKnight wrote:
These are what I expect after mild testing. Tell me if it's wrong.
Finally it's my turn to say it: it's wrong (but it's close). I'm getting 0x00 ~ 0x2A - Divide by 2 0x2B ~ 0x7F - Reset to "original" 0x80 ~ 0xD5 - Subtract 0xD6 ~ 0xFF - Add You switched two results and were off by one on the cutoff between subtract and add.
FatRatKnight wrote:
The random number addresses tend to "wander". If C300 is zero, the following six addresses could also be zero, or perhaps they all happen to be one. Maybe the first half is zero and the later half is one. When you generated those tables, it's possible we thought that C30E was always a fixed value away from C30B after a reset.
I was afraid of that. It's just one of those little details that I never saw fit to test. While it makes luck manipulation a little more complicated, it also opens up new possibilities if we can nudge that offset by just one or two values. We might get it so that C30B offers ability shuffling while C30E actually shuffles them in a way we want! Say... do you think we might be able to get the coveted GAZE (stone) ability this way? I realize it's a loooooooong shot, because the RNG would have to be one value off from the desired value to begin with, but the potential benefit is just too damn much to ignore. Regarding your explanation of the RNG grouping pattern, I actually had no trouble understanding what you were trying to say (but I verified it in the RAM watch just to be sure). I even think I could come up with a model for it. Let me give it a quick shot now without wasting too much time y = floor(m*x + b) where y is the RNG index we want to know. x is the address in question minus C300 (e.g., looking at C30B implies x = 11). b is the value of C300 plus some small offset term (like 0.1). m is... 9/64. (This is the part I'm most unsure of. If it's not 9/64, it should be close. It might not even be rational or explicitly handled in the game.) Go ahead and test that if you're bored. It should be approximately right. I don't think it's worth correcting if it's wrong, though.
FatRatKnight wrote:
I have a small function for generating a range of numbers. It might match the game's way of handling an arbitrary range, or it might be off by some amount. I do not know, but it does a good enough job at approximating that I can't detect errors myself.
I recognize this formula! You discovered it when you theorized why the NPCs preferentially walk northwest. I copied it to the table on the resources page for the POTION and X-POTION formulas. Does this look familiar? INT(RNG*60/255) The only real difference is that you use the floor function (adding 0.5 inside) and I stuck with the INT function.
FatRatKnight wrote:
I think this function fits well with the Ability Uses Shuffler, the numbers at the top of this post would match this function with a D of 3, and a small amount of trying them out led me to link the effects with the results I've been getting. If it's not true, I'm sure further tests will prove me wrong.
Almost. Al-freakin'-most. There's a discrepancy of one byte between your bins for NPC movement and for ability shuffling. By plugging in numbers, I can tell you that NPC movement is consistent with your formula while ability shuffling is not. On the one hand, it's perplexing that there would be any discrepancy at all; both functions should be working off the same formula or the same bins. On the other hand, I'm willing to overlook such a minor flaw, since it's unlikely to affect anything. Of course, we should account for these flaws whenever we can, but attempting to decipher what's going on strikes me as an inefficient use of our time. (If you happen to want a theory, I have one ready: the ability shuffler uses INT(RNG*D/256), substituting 256 for 255 in the denominator. Sloppy programming, but I believe it accounts for everything we see.)
TheAxeMan wrote:
I think that WHIPping could have another advantage. If you have WHIPs at BYAK-KO then could you beat him without STONE? That would save the trip to the hidden sky village, so it could save time even if it takes a lot of turns.
I was able to WHIP BYAK-KO in my first test run. I can't say whipping him is out of the question at this point, but I think it's unlikely to work. (Though I'm aware that the last time I dismissed one of your ideas, FatRatKnight confirmed it was actually a great strategy.) I see the following two problems: •BYAK-KO has 50 Agl. That means he's going to strike first more than SEI-RYU or other enemies and it also means the WHIP is going to miss a lot. •BYAK-KO has 45 Def. and 1,000 HP. We pretty much can't beat him in a reasonable time with WHIPs alone. We'd need POWER (which we might already have from SEI-RYU), but even then the battle would easily take four or five rounds. Compare that with one round for STONE. The glider is pretty fast, so it might be faster to just pick up STONE. Nevertheless, you were right last time, so it's worth testing again. I'll certainly keep it in mind! Edit: I'm editing this post to incorporate and address FatRatKnight's latest comments.
FatRatKnight wrote:
This does not take into account the fact that in place of shopping for bSTONE, we're instead shopping for a WHIP, which will take time on its own.
I believe TheAxeMan's reasoning was that we'd have the WHIPs left over from the SEI-RYU battle, so it technically wouldn't cost any additional time. But if we don't need them for SEI-RYU, I agree it would be extremely unlikely that we'd find use for them against BYAK-KO.
FatRatKnight wrote:
Keep in mind we will have no good damage option. BYAK-KO has 1000 HP to kill, and without bSTONE, we have no other insta-kills, unless we can summon up a MEDUSA monster on our side, but using a non-mandatory battle for that eats up more precious time. The whip should be dealing trivial or no damage, and we might be dealing 150~250 damage per turn starting with round 2.
Looks like we hit upon many of the same points here.
FatRatKnight wrote:
I want to say the WHIP will never take place of bSTONE. It's 20 seconds to the bSTONE and back. An extra round takes roughly 5 seconds, give or take, judging from the SEI-RYU battle. How long to the nearest shop with a WHIP or E-WHIP and back?
Agreed, except for the part about going to the nearest shop. With the extra rounds, I also think that the the net time saved would be virtually a loss. And while we wouldn't have to go out of our way especially to pick up the WHIPs for this battle, we might still have to reorder the party to best manipulate luck for this long battle, costing us another second or two.
FatRatKnight wrote:
I really am tempted to dismiss this without a single test. If there's further push for some sort of whip, I will check, though.
One of us should check the feasibility of the WHIP against SEI-RYU. If that doesn't work, yeah, drop it. If it does, I say TheAxeMan has a case and it wouldn't hurt to check if we can make it work for BYAK-KO too. That's really what this all comes down to: first focus on beating SEI-RYU, who continues to give us the most difficulty, then worry about BYAK-KO, who we already have a valid strategy against.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
I'm a little busy and I don't have too much to say, so I'll try to keep this post uncharacteristically short. I've got one more idea for SEI-RYU: whip him to death. I think it'll be a little slow, but I'd say it's worth analyzing the cost of moving to the shop in Town of Hero, buying WHIPs, equipping them, and using them. The plus side is that we'd cut down on the battle manipulation even further-- we might be able to get away with only using GAZE. Additionally, SEI-RYU wouldn't use much time on his turns since we'd always get "SEI-RYU do nothing".
FatRatKnight wrote:
Other than these two battles, I don't see anything else that clogs up the route at the moment.
We've had a route for a while, but finding the route is tricky. I've got to say I'm disappointed that there doesn't seem to be a quick and/or easy way to defeat SEI-RYU. I'm comfortable with just about every other battle but SEI-RYU simply refuses to go down in under three turns without excessive luck manipulation. I just have this nagging feeling we're missing something and when we figure it out, we'll cruise through the game. I don't have the time today to look at your two test runs, but I'll try to get to them soon and either edit this post or write a new one. I'd like to look into the ability shuffling RNG (especially since we might actually see some use out of it!) because its behavior baffles me. Here's a copy of my old chart:
C30B|Ab1|Ab2|Ab3|Ab4
----+---+---+---+---
 86 | - | + | + | -
 93 | - | + | - | +
 166| - | /2| + | /2
 243| - | + | - | + 
And here's what it looks like with C30E's RNG values in place of those actions:
C30B|Ab1|Ab2|Ab3|Ab4
----+---+---+---+---
 86 | 53| 76|182| 40
 93 | 64|197|124|166
 166| 42| 44| 22|247
 243| 75|193| 80|138
As you can see, there's almost no correspondence between the two tables. I'm hopeful that I got some or all of the numbers wrong because this clearly does not follow the typical bin pattern! Anyway, as I mentioned in the opening sentence, I'm a little bit busy and it'll probably stay that way for a week or two. I'm hoping I'll still be able to work on the run, but it won't be a priority. Things should definitely clear up after November 1st, so if I haven't said anything for a while and it looks like I may be dropping out, please shoot me a PM to knock some sense back into me. Just thought I'd give you a heads-up, though I don't think it'll be an issue.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
I've been working on finding the complete RNG table. I'm actually kind of disappointed I didn't think of deducing it this way earlier. While I was thinking about how to corrupt the ROM, I remembered in one of the GameFAQs topics Alex Jackson talks about the mutant growth system and even explicitly states the bins. I don't know if you remember, but back when I first downloaded a hex editor, I even mentioned that I noticed the bins he referred to in the code. Well, knowing where the bins are and that they work off of C30B, I hex edited them to be five consecutive numbers. For example, I could set it so that the mutant will gain Agl. only if C30B rolls exactly 183, so whatever value of C30B causes an agility gain must correspond to 183. I did a whole lot of clever stuff. I copied the 61 bin RNG table to a spreadsheet (yep, TheAxeMan, I now have a spreadsheet for this game!) because it gave a very good indication of where to look for the next index. I added some cheats so that I would fight a battle against a GOBLIN every step. I wrote a Lua script that forced C30B values that were likely to turn up the number I was looking for based on the 61 bin RNG table. All I had to do was fight 5-9 battles, close the ROM, hex edit the bins to the next five values, change my Lua script, then open the ROM and do it again. It still took a few hours, though. But you're probably not too interested in my methods. Here's the good stuff, the complete RNG table:
 60,153,152,141, 20,225, 79,149,108,169,183, 29,187, 14,159,218,
156,185,  7, 82,116,254,239, 74,204,201,168,194, 91, 17,192, 69,
252,217,167,205,212,222,112,213,211,233,  8, 93,  4, 49, 32,154,
163,249,184, 18,203,190, 47, 10,115,246,151,130,100, 81,127,133,
 67,230, 24,242,107,158,207,234, 19,214,200,157,196,113,224, 90,
 28,198,135, 45, 11,126,144, 53, 76,182, 40, 66,219,145, 64,197,
124,166,216,178, 84, 94, 15,172,170,150,119,221,123,177, 95, 26,
220,134, 56,109,180, 62,175,117,243,118,232,  2, 27,209,255,250,
195,102,103,114,235, 30,176,106,147, 86, 72,226, 68,241, 96, 37,
 99, 70,248,173,139,  1, 16,181, 51, 54, 87, 61,164,238, 63,186,
  3, 38, 88, 50, 43, 33,143, 42, 44, 22,247,162,251,206,223,101,
 92,  6, 71,237, 52, 65,208,245,140,  9,104,125,155,174,128,122,
188, 25,231, 13,148, 97, 48, 21,236, 41, 55, 98, 59,142, 31,165,
227, 57,120,210,244,129,111,202,179, 73,215,189, 36,110,191, 58,
131, 89, 39, 77,171,161,240, 85, 83,105,136, 34,132, 78,160,229,
 35,121,199,146, 75,193, 80,138, 12,137, 23,253,228, 46,  0,  5
I think this is my proudest work thus far! Use it to your heart's content! Edit: I updated the game's resource page with the RNG table. I also updated the RNG address table with their offsets and how the RNG output is used. I left some uses as "Unknown" if I felt they were interesting but we hadn't done any concrete testing on them. If you're looking for something to do (and I doubt you are, since you're busy SAWing), run through a couple of those "Unknown" addresses and come up with a formula for them. Edit 2: And here's the same table in hex:
0x3C,0x99,0x98,0x8D,0x14,0xE1,0x4F,0x95,0x6C,0xA9,0xB7,0x1D,0xBB,0x0E,0x9F,0xDA,
0x9C,0xB9,0x07,0x52,0x74,0xFE,0xEF,0x4A,0xCC,0xC9,0xA8,0xC2,0x5B,0x11,0xC0,0x45,
0xFC,0xD9,0xA7,0xCD,0xD4,0xDE,0x70,0xD5,0xD3,0xE9,0x08,0x5D,0x04,0x31,0x20,0x9A,
0xA3,0xF9,0xB8,0x12,0xCB,0xBE,0x2F,0x0A,0x73,0xF6,0x97,0x82,0x64,0x51,0x7F,0x85,
0x43,0xE6,0x18,0xF2,0x6B,0x9E,0xCF,0xEA,0x13,0xD6,0xC8,0x9D,0xC4,0x71,0xE0,0x5A,
0x1C,0xC6,0x87,0x2D,0x0B,0x7E,0x90,0x35,0x4C,0xB6,0x28,0x42,0xDB,0x91,0x40,0xC5,
0x7C,0xA6,0xD8,0xB2,0x54,0x5E,0x0F,0xAC,0xAA,0x96,0x77,0xDD,0x7B,0xB1,0x5F,0x1A,
0xDC,0x86,0x38,0x6D,0xB4,0x3E,0xAF,0x75,0xF3,0x76,0xE8,0x02,0x1B,0xD1,0xFF,0xFA,
0xC3,0x66,0x67,0x72,0xEB,0x1E,0xB0,0x6A,0x93,0x56,0x48,0xE2,0x44,0xF1,0x60,0x25,
0x63,0x46,0xF8,0xAD,0x8B,0x01,0x10,0xB5,0x33,0x36,0x57,0x3D,0xA4,0xEE,0x3F,0xBA,
0x03,0x26,0x58,0x32,0x2B,0x21,0x8F,0x2A,0x2C,0x16,0xF7,0xA2,0xFB,0xCE,0xDF,0x65,
0x5C,0x06,0x47,0xED,0x34,0x41,0xD0,0xF5,0x8C,0x09,0x68,0x7D,0x9B,0xAE,0x80,0x7A,
0xBC,0x19,0xE7,0x0D,0x94,0x61,0x30,0x15,0xEC,0x29,0x37,0x62,0x3B,0x8E,0x1F,0xA5,
0xE3,0x39,0x78,0xD2,0xF4,0x81,0x6F,0xCA,0xB3,0x49,0xD7,0xBD,0x24,0x6E,0xBF,0x3A,
0x83,0x59,0x27,0x4D,0xAB,0xA1,0xF0,0x55,0x53,0x69,0x88,0x22,0x84,0x4E,0xA0,0xE5,
0x23,0x79,0xC7,0x92,0x4B,0xC1,0x50,0x8A,0x0C,0x89,0x17,0xFD,0xE4,0x2E,0x00,0x05
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
FatRatKnight wrote:
I use this page for my monster needs.
I started working on the meat puzzle with Tower Reversed as well, but I decided it was overly confusing with both meat levels and target levels compared to the GameFAQs article that just says "add one to the highest meat level". I figured they were (mostly) in agreement, so I went with what was simpler to me. Anyway, I was just about to write that we should test which meat guide is correct when I noticed an error in my analysis. According to the GameFAQs guide, you preferentially transform into a monster at the higher meat level, then up one level, then down levels in that order of priority. Since CLAYMAN is level 8 and STONEMAN is level 9 and we start at level 8, you are correct, we become a CLAYMAN. The two guides are probably in agreement, at least in that respect. We might still gain a STONEMAN, but it will take two random encounters instead of one and that doesn't make a whole lot of sense to me since we're really only planning on using a monster to save one turn in one battle. I'm starting to lean fairly strongly against using a monster. But speaking of Tower Reversed, I shot an email to Sara (short for "Sarcoma", apparently). I asked about the battle RNG because neither of us knows anything about it and it would be useful information. He says he doesn't know anything about the battle RNG, but he was able to offer this advice via our friend Alex Jackson: "Random numbers not associated with a particular item (enemy attack/target selection, turn order, etc.) use the index belonging to an arbitrary item (and figuring out which item that is for each routine under each set of circumstances would be extremely tedious, and is not high on my list of priorities, so don't hold your breath :))" As far as ROM decompilation, I think Alex is smarter than either of us (smarter than me, for sure), so if he gave up, I'm not exactly hopeful of finding it. Not that it's a huge priority, since we'll be resetting to the fixed state almost every time. In any case, I thought I'd let you know that I'm now in contact with Sara and I'll ask more questions about the battle system as they come to mind.
FatRatKnight wrote:
No. oCHANGE. No stoning. No death. Only SAW.
For some reason, I temporarily interpreted blank entries in the table as "yes"es. Ignore me.
FatRatKnight wrote:
No. We need 95 Mana for GAZE or bSTONE to work first thing. We'll need extra rounds otherwise.
See above. This time, I got Mana and Def. confused. I can never remember if I'm looking up the insta-kill likelihood of SAW or GAZE. I intend to write a post someday that doesn't require any corrections...
FatRatKnight wrote:
26, at the lowest. Achievable in four battles with a starting Mana of 6.
If we can make it work, all the better, but 26 seems a little lean to me. You pointed out that it would make the SEI-RYU battle more difficult and I'm concerned about the almost complete lack of STONE following BYAK-KO; we'll be entirely dependent upon the SAW. I just hope it works the way you say it does.
FatRatKnight wrote:
On a side note, here's the list of bonuses with C30B == 0xF2 on the route to P-BLAST, if you want to consider a second P-BLAST
Those two Mana+5 bonuses look mighty juicy, but since our supporting mutants' Mana won't even by as high as our primary mutant's, I too am shying away from P-BLASTs. I think we can use P-BLAST, but we're going to need to be at around 50 Mana for SEI-RYU.
FatRatKnight wrote:
Actually, I'm starting to think P-BLAST is optional -- Manipulate the duet of monsters prior to STEWARD to be only 1 SKELETON and introduce it to stabby pain. A different plan for the monster trio doesn't use mutli-target anyway. But this might add an extra round to SEI-RYU, which can be hazardous.
How about these two plans, neither of which requires P-BLAST? 1) Give GAZE to our primary mutant, give POWER to the same mutant and the two others. GAZE takes down all targets in World 1. Using POWER on all three mutants takes out SEI-RYU in two rounds (first to power up, second to strike). The trio attacking Jeanne also goes down in two rounds. If this plan works, the chief bonus I see is that we only need to upgrade the Mana of our main mutant. 2) Give GAZE to three mutants, POWER to one (or maybe two). SEI-RYU goes down in three or four rounds, everything else dies in one round. Our SEI-RYU battle becomes much harder, but we are better equipped to defeat large groups of monsters. I don't think our supporting cast would need many (if any) Mana upgrades to take out groups. It also occurs to me that we may be able to manipulate the battle RNG for GAZE with this method. Say we can't normally score a round one KO with GAZE against a boss. We use a supporting mutant to cast GAZE (who never would have hit anyway), rolling the RNG to a potentially more favorable result.
FatRatKnight wrote:
This does free up manipulation for other things, but what do we need then?
Damned if I know. Seems a shame to let them go to waste. Extra charges of TELEPOR, perhaps? Maybe some kind of confusion or paralysis ability?
FatRatKnight wrote:
Agreed. Looks like things are starting to fall in place, but testing needs to be done.
My goodness! Do we actually have a notion of how this speedrun will end? Hallelujah! Now we just need to figure out the first 3/4 of the game.
FatRatKnight wrote:
A few seconds, at most. The toughest piece of manipulation doesn't seem to need more than 10 seconds, and this doesn't seem to be a tough bit of manipulation, at a glance.
Can't say for sure without testing, but my money is on "essentially no time". Because we will essentially take the +5/+4 boost whenever it turns up (rather than actively seeking it), it should require only ten or so frames of idle waiting. The battles themselves are another matter, but I was taking them as a given since our lead mutant should have at least XX Mana regardless (where XX is 26, 50, or something else).
FatRatKnight wrote:
That's the question I would like an answer to. We might want to ask KINGSWRD if he wants to assist in an answer. Wondering how the turn order will work out, but if we can force an instant death of one of our own members just before we release our own GAZE, this would be good.
It's an interesting question, however it sounds like monsters won't be very useful, so it might not be helpful to know. I say it's a low priority. Finally, I've started dabbling in ROM corruption. I downloaded a couple of corrupters, one of which I like. I would like to find the encounter rates, which I figure are stored in whole bytes somewhere in the game's hex data. If I can find or corrupt those bytes, I can start messing with the encounter rates and decipher the entire RNG table. I was going to make it a surprise, but progress is slow, so I figured I'd give you a heads-up. Edit: I've been working for the past few hours on a top-secret project. You'll probably be able to guess it anyway. I hope to report the results tomorrow. But now, sleep.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
FatRatKnight wrote:
I took the test run, waited until it reached SEI-RYU, then I hacked in POWER, equipped the BATTLE sword, and gave it a good swing at the boss after the boosted strength. 230 damage.
ARGH! I can't seem to get anything right lately! This time I somehow dropped a 1 from one of the damage formulas. Yes, we can expect about 240 damage with each hit. I'm glad to hear we can get POWER in one battle, though. If we can use it to cut back on our main mutant's grinding, it will more than make up for itself.
FatRatKnight wrote:
Human + STRONG + SAW. We still have a problem at MACHINE (not enough Def for SAW to work right away from reset), but ASHURA would certainly go more smoothly, and possibly GEN-BU2, depending on resets. We just need 11 STRONGs for a Human M, two trips to the item shop dialogue.
I saw your test run for pumping a human and I was surprised by how quickly you were able to do it. You know, I'm starting to feel guilty about not testing things-- part of the reason is that my Wii Remote, Classic Controller, and batteries are in another room. Let me get off my ass and go get them... ... Okay, I'm back. The controller is charged and sitting on my desk, so no more excuses for me. (Oops, nearly forgot to pull out the BlueTooth adapter.) Well, gosh. Now I think something could be said for a Human M. What are we up to at this point? •A Mutant F to lead the way with GAZE and P-BLAST (and TELEPOR). •A secondary Mutant (M or F) to support with P-BLAST against that trio of monsters or •A secondary Monster to quickly level up and use a different target-all ability against that same trio. •A Human M to pump with STRONG potions and use the SAW on the last bosses of the game. One concern regarding the Human M: can we carry all the STRONGs he'll need or will we have to go back and get more? That is, his Str. needs to be below 70 to beat the MACHINE, but should be higher to OHKO later bosses. If your analysis is correct and I'm interpreting it properly, our Human M's Str. will be at 68 for the MACHINE (for which we need to use the SAW) and we then need four STRONGs to get him to the magic number of 76, after which we can reliably SAW all of the bosses we'll face. Is that correct? If so, I think it's doable as we'll only need four STRONGs in our inventory.
FatRatKnight wrote:
Are you thinking we drop the Mana gains of our main Mutant in favor of SAWing all later bosses instead of bSTONE at some of them?
To some extent. I think we can certainly cut back on Mana gains before SEI-RYU and only boost Mana from forced battles thereafter. If our Mana is at 50 when we face SEI-RYU (and I'm not saying 50 for any particular reason), then we'll reach 99 mana after the ASHURA battle. Since ASHURA has 90 Mana and we'll have 94 at that point, we can even STONE him. Now that I look at it, we'll even have 80 Mana before the fight with the EVIL EYE, so we don't have to sacrifice our GAZE strategy (GAZING at an EYE seems strange to me...). Let me flip it around and ask you if there's any reason not to manipulate Mana boosts from every forced battle from SEI-RYU onward. If my strategy works, how much Mana do you think we should have when we face SEI-RYU? While our SEI-RYU strategy would have to change (using POWER and a battle sword), the way I look at it, our battle with the monster trio would not really change as we were basically expecting it to take two rounds anyway. In fact, by cutting back on early Mana boosting for our Mutant F, I think it most calls into question the role of our target-all supporter. Even though we've done very little analysis on who he should be or how we'll get him, his role would have to be re-evaluated since our primary mutant's P-BLAST will be even weaker than expected. Let me draw up a rough plan of our new strategy as I see it: •Draft four mutants, only two of which we intend to actively use-- the other two are just used for manipulating luck and cannon fodder. •Fight random battles before the Bandit's Cave to get GAZE, P-BLAST, and TELEPOR on our main mutant. I can't remember how many battles that is, but I think it's around seven. •Fight one random battle at some point to get QUAKE on our secondary mutant. •Fight one random battle at some point to get POWER on our secondary mutant. •Fight the four forced encounters in World 1, each time boosting our main mutant's Mana by 5 (this should not be difficult, as there are many opportunities for a +5 Mana boost and GAZE should work quite well at this point). When reasonably possible, secure an additional +4 boost to our secondary mutant. •Abstain from all other random battles except when we can secure a +5 Mana gain on our primary mutant and a +4 Mana gain on our secondary mutant. Do this throughout Worlds 1 and 2 until our primary mutant reaches 50 Mana (this number is open to some debate, but I kept it in since it worked out pretty well according to my analysis above). Our secondary mutant should end up with at least 25 Mana (hopefully more if we can force a +5/+4 boost from a forced encounter). •Fight no more random battles after that. •For the SEI-RYU battle, use POWER on our secondary mutant and the battle sword. Expect it to last three rounds. •The MOSQUITO battle will now last two rounds (note that MOSQUITOs are immune to QUAKE). Hopefully, this won't be a problem. (Forgot about GAZE.) •Use P-BLAST and QUAKE to defeat the trio of monsters. By this point, we should have 60 Mana on our primary mutant and at least 25 Mana on our secondary mutant (I expect higher). Now, we might have a problem. By my very rough calculation, we'll need their combined Mana to be at least 100, probably in the 110-120 range. We have a few options here: -- Try to force more +5/+4 Mana boosts from forced battles. -- Simply fight more random battles before SEI-RYU, bringing our primary mutant's Mana up to, say, 60 by that point. -- Tough it out and let the battle last for two rounds. -- Something else? •Buy the book of STONE before facing BYAK-KO. Continue to force Mana bonuses for the remaining forced encounters until it is maxed out. •Pick up the SAW on the way up the tower. •Draft a Human M in Northeast Town in World 4 and immediately boost him to 68 Str. with STRONG potions. Keep at least four additional STRONG potions on hand to boost him to 76 Str. after facing the MACHINE. •The rest is (or should be) history. From this, I estimate 14 random encounters plus two forced encounters that will last one "extra" round each. Now, how does that strategy change with a monster in the supporting role? This is tough because I first need to find a good candidate monster. A complete list of monsters with target-all abilities is as follows: QUAKE-- JORGANDR, SANDWORM, LILITH, STONEMAN, MAZIN TORNADO-- TEN-GU, GARUDA, NIKE, GIGAWORM, SUSANO-O, KI-RIN, FIREMAN, ROCK ACID-- AMOEBA (The target-all ACID should not be confused with the target-group ACID.) WHIRL-- LEVIATHN, DAGON, KRAKEN, SCYLLA FLARE-- LICH, ATHALOT P-BLAST-- BAKU, GANESHA, HI-SLIME I emphasize that we should upgrade our monster via meat of SEI-RYU. I have a few reasons for this: 1) We know SEI-RYU will drop meat. 2) Our monster will be more powerful with that meat. 3) Target-all abilities are generally known by high-level monsters. Unfortunately, SEI-RYU's meat is only level 7 according to this FAQ. The target level for most of the monsters listed above is 13 or 14. If we want our monster directly from the SEI-RYU battle, our best hope is a level 8 monster, but that turns up nothing (AMOEBA is level 8, but SEI-RYU's meat can't transform into the squid class). This means we need one extra battle and we can transform into a creature at level 8 or 9 (I expect we won't find any enemies at level 9 or above on the way to World 3, but I could be wrong). If I understand this correctly, our options are STONEMAN with QUAKE or AMOEBA with ACID. The AMOEBA has a pathetic 22 Mana, but the STONEMAN has a formidable 53. All we need to do now is find out what monster to conscript and whose meat to eat after the SEI-RYU battle. There are two ways of entering the golem class: eating the meat of a dragon (not possible at that point) or eating the meat of a snakewoman. We get into the golem class by eating the meat of a snakewoman if we were previously in one of the following classes: bird, chimera, dragon, devil, birdman. Of these, only chimera and dragon are accessible from SEI-RYU, and only dragon has a member at level 8 (necessary if we want a level 9 STONEMAN). So we need to "enter the dragon (class)". This can be done via the bird, chimera, dragon, fish, and golem classes. Assuming we don't want to take a detour to the World 2 guild to pick up a BARRACUD, here's how we're going to get a STONEMAN before World 3: 1) Conscript an ALBATROS at the base town guild. Let him languish in disuse for half the game. 2) Feed him meat of SEI-RYU (level 7), giving us a level 8 DRAGON 2. 3) Feed our DRAGON 2 meat of MEDUSA (level 5), giving us a level 9 STONEMAN. You can (and should) check that this works out. I don't think there's any other way to get a target-all ability with just two battles. How does this change our strategy? •We need to fight an additional battle to get meat of MEDUSA. If we're careful, we should be able to force a +5 Mana bonus from the same battle, costing us essentially no time (just make sure we fight one less random battle before SEI-RYU). •Additionally, we don't need to fight an extra battle to teach our secondary mutant QUAKE. He will still need POWER, though. •We need an ALBATROS in World 1. This means we either have to draft it immediately and fight extra battles to teach our mutants abilities or we have to kill one of our mutants off. Honestly, I don't much like either option (but we may be able to kill one of them efficiently). •The battle against the trio of monsters should reliably last one round since our primary mutant will have 60 Mana and our monster will have 53 Mana. This saves us one round over the the default strategy of using no target-all helper. Once again, the MOSQUITO battle will take two rounds. (Forgot about GAZE.) •We no longer need to force +5/+4 Mana boosts for two mutants at a time. It isn't clear at all to me whether drafting a Monster will be worthwhile. Much of its benefit is dictated by factors that are difficult to measure. How much time (if any) will it cost us to manipulate luck such that we get simultaneous Mana boosts on two characters? How quickly can we kill off a character in World 1? It's getting late, so I'm turning it back to you to answer those questions.
TheAxeMan wrote:
Awesome, glad I could be helpful. I did a test run a long time ago and used POWER on SEI-RYU. But I hadn't analyzed the game nearly as well as you guys.
For obvious reasons, I've been absorbed in pages 2 through 5 of this thread. I completely failed to notice that you not only created the topic, you actually discovered a lot of the stuff we've been using. Looks like a fair amount of credit goes to you!
TheAxeMan wrote:
The possibility of using less STONE sounds promising because it's quite a bit out of the way in World 3. It isn't very far out of the way in world 4, in the northeast town. Unfortunately there don't seem to be a lot of other options available for BYAK-KO since he's immune to death and you don't have SAW.
Yeah, I never even considered forgoing STONE against BYAK-KO. It's practically suicide. The only other strategy that would work would be using the WHIP against him, but that requires high agility. I shudder just thinking about the frustration it would bring. I'd rather take a few seconds picking up STONE than have the BYAK-KO battle last four or five turns.
TheAxeMan wrote:
This game is definitely more complex than Final Fantasy for a TAS. But it's more because there simply aren't many worthwhile and easily-obtainable abilities. In this game you can easily acquire several instant death moves and there are many ways to pump up your party without spending much time. But in either case luck manipulation takes a lot of work.
True that. I certainly don't envy the Wizards or Astos battles in Final Fantasy. I think route planning in FFL is harder while execution will be substantially easier (at least I hope!). P.S.-- I added the STEWARD to your forced encounters list on the resources page. I know he's puny, but I want him on there so I can properly count up the number of free Mana boosts we can get. Incidentally, have you noticed that there are exactly 20 encounters? Subtract one because we skip GEN-BU, but effectively add one because we start with 5 Mana. It's almost as if the developers wanted us to max out our Mana with only fixed encounters! (Not that I think that would be a good strategy.) P.P.S.-- I just noticed we can conscript a Mutant F in World 4 with built-in P-BLAST and TELEPOR and 41 Mana. It's highly unlikely that either spell will be useful, but we may need them for some strange reason. If so, that's probably the easiest way to get them.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
TheAxeMan wrote:
Sounds like I should have posted before to keep you guys motivated.
Don't sweat it. I think FatRatKnight and I needed (deserved?) a break. Perhaps it went on a little long, but the important thing is that we're back at work. Thanks for the encouragement, though!
TheAxeMan wrote:
Anyway, having done it myself I know that a TAS on an RPG is a lot of work.
I'm curious if Final Fantasy (the NES game you ran, not FFL) was harder to run than this. It seems to me that once you know to use just one fighter, it's mostly a matter of manipulating the hell out of luck with scripts (I'm looking squarely at you, bane sword). FFL might be in a whole other league, since we can't quite pin down a party (though we're zeroing in on one). The fact that you were able to offer some new suggestions means that we need to keep thinking of new ways to tackle this game. But the bottom line is that you're absolutely correct: RPG TASes are often excruciatingly difficult.
TheAxeMan wrote:
The key is to stay organized; keep lots of notes and spreadsheets. As a team may be a good idea to keep some shared notes on Google Docs. Adelikat likes Google Code for this but I'm not familiar with it. The resources page is good too. The chart of fights is a really good idea, you should expand to track any method that you would consider and maybe what stats you'd need and how long the fight would take.
I've got a .txt file that I update periodically and I bet FatRatKnight has one too. Oddly enough, I don't have a spreadsheet for this game, but I did have one for Skitchin', a racing game. Anyway, just about everything that crosses my mind goes in this thread, so it's all here somewhere. We probably should assemble a more formal resource for future runners (FatRatKnight has an excellent start with this game's resource page) but I personally would rather put it off until we're done with the run.
TheAxeMan wrote:
To me it seems like a flow that avoids more fights should be faster. It looks like once you get the abilities you need and some mana on one char there shouldn't be much more reason to fight.
I think this is actually a really good point. I believe we last use P-BLAST on that group of three enemies that close in on Jeanne; if those enemies take two charges of P-BLAST, why bother having 99 Mana? We could probably do with, oh, 60 or so Mana at that point. As long as we manipulate a boost from all of the remaining battles, we'll still easily reach 99 Mana by the end of the game. There are only two other battles that would benefit from having high Mana: SEI-RYU and the MOSQUITOs. But speaking of which...
TheAxeMan wrote:
Have you considered using POWER+battle sword on SEI-RYU? You wouldn't need to use up your P-BLAST shots.
It's at least worth consideration. According to Alex Jackson's damage formula, we can expect to do about 110 damage to SEI-RYU each turn with a 99 Str. mutant. Now, if our primary mutant has 99 Mana, this is damn near worthless since it won't even save us one turn (SEI-RYU would go down in three turns, only one or two hits from our supporting mutant). If she has substantially less, say 50 or 60 Mana, then the second mutant could save two or three turns. The problem is that he would need to learn POWER and I'm not sure how quickly that can be done. (Additionally, I don't know if the old man accepts the battle sword if it's equipped to someone. If it has to be in your communal inventory, then we would also need to consider the time it takes to unequip it.) Two or three turns doesn't seem like a lot, but the implicit benefit is that we wouldn't need to pump up our mutant as much. Assuming she's at 50 Mana by the SEI-RYU battle, she would need to fight 10 fewer random battles! I'm sold on it, but I'll have to check that getting POWER is feasible. (And knowing the trend of the past few days, there's probably a very good reason why FatRatKnight already rejected that possibility.)
TheAxeMan wrote:
Also, what about a human SAW user with stats pumped from STRONG and AGILITY potions? Not sure how that would compare to grooming a mutant through battle.
For once, I feel confident answering a question. STRONG and AGILITY each increase their corresponding stats by just two points at a time. Additionally, you can only carry a very limited number of them at a time (I think it's eight or ten if our inventory is completely empty, but I'd have to check). This means going out of our way to enter a shop, buying the potion several times over, using each potion, then possibly shopping again. By comparison, with a good RNG, we can be in and out of battle in ~300 frames for a stat boost of 5 Str. You technically raise a valid point in that I don't believe FatRatKnight or I have actually tested how quickly we can boost a human's stats, but I for one would be extremely surprised if it's even close to being as fast as luck manipulating a mutant.
FatRatKnight wrote:
About the initial party, I was thinking there might be trouble killing off a few in World I if they're consistently too fast to let an enemy get a turn. The difference between M and F is that great, and since it is only important right in the first world, should we make a few tests?
It can't hurt to try, but my guess is that it won't be worth the trouble to actively attempt to kill off a party member. As long as our main mutant goes first, it may take longer just to read the message that one of our party members was hit and slain than to input his commands for the rest of the game. Besides, I think the bosses will do a fine job of whittling down the team.
FatRatKnight wrote:
My GAZE, P-BLAST, and TELEPOR plan indicates that it isn't anywhere close to impossible to do, while still wasting no steps out of the main path. Well, actually, the GAZE, P-BLAST, and TELEPOR route takes some incredible amount of luck at the TELEPOR manipulation, since you need one address to be one value and another to be something else, and in this particular case, is a very rare happening. But possible.
As long as it can be done before defeating the bandit.
FatRatKnight wrote:
P-BLAST versus ASIGARU might simply be because it was faster than stabbing said foe dead. I can't remember.
What if we give our main mutant just one Agl. upgrade? (Or mayyyyybe two?) GAZE would still take care of bosses, but it would allow her to OHKO a lot more things with the SABER. Imagine fearlessly marching into battle against LIZARDs, ZOMBIEs, and REDBULLs, even before we know P-BLAST or have enough Mana.
FatRatKnight wrote:
Not sure what changes should be done here, really. Offense from them were practically nonexistent. But I'm starting to think a QUAKE-toting spare MUTANT would be handy.
If we pump our primary mutant's Mana up to 50 or so, then run/luck manipulate from all battles except when we can manipulate a +5 Mana boost in our first mutant and a +4 Mana boost in our second, we should be able to get a second contributor. He won't do much, but I think he could turn the tide against that trio of monsters that we can't beat in one turn.
FatRatKnight wrote:
Not that it matters too much, as if we had nothing that has uses in slot 1, the game will skip over that slot when shuffling our uses around.
Blech. You're right. I wasn't thinking when I wrote my post. Even so, I remember the ability shuffler does weird things when you have an empty slot-- I think it runs through your abilities in reverse order. I don't think I ever got definitive evidence, though.
FatRatKnight wrote:
Wrong idea.
Oops, yeah, you're right. I suppose my analysis would still be roughly correct if we weren't planning on resetting every ten seconds. But we are planning on resetting every ten seconds.
FatRatKnight wrote:
I haven't considered that possibility. Stopping ASHURA's actions of doom has appeal, but I'm not sure if 52 Agl. is going to go first.
It looks like we can almost certainly get through that battle by shuffling the party. There would be some minor benefits to whipping, though: our party members stay alive to die in a later battle if we need them to, plus we have less text/animation from ASHURA's attacks. It's something to keep in mind if we hit a wall at that point in the game.
FatRatKnight wrote:
The fact I checked every single RNG value and not a single one allowed us to learn this ability.
Whoa, whoa, whoa! Nothing worked? I was under the impression that only oDAMAGE and oCHANGE were inaccessible. Is GAZE (stone) outright impossible to learn, or is it just one of those spells you need to fight twelve battles to get?
FatRatKnight wrote:
For the secondary target-all killer, I'm thinking monster. Here's the list of things that hit all with damage:
I'm prejudiced against the idea of using a monster, but it looks like we have a lot of options. After all, he may only need to do about 20 damage. Just keep in mind that it would be pointless to fight an extra battle to get meat for a monster since it would only save us one turn later on. Along those lines, is there any monster that we can conscript that could eat meat of SEI-RYU to learn a target-all spell? We know for certain we'll get meat of SEI-RYU, so that's by far our safest bet for upgrading.
FatRatKnight wrote:
You forget things.
I sure do... *sigh*...
FatRatKnight wrote:
POWER is of no real help. Anything that could use a good SAWing dies in one or two rounds anyway.
Give it a second thought, as per TheAxeMan's suggestion that it might help against SEI-RYU. I don't think it'll help, but I'd like to analyze it more thoroughly first.
FatRatKnight wrote:
address C30B == 0x52 gets us QUAKE 3 "steps" down the line, while 0x53 is only 2 "steps". There's even a Mana+5 7 or 6 "steps", so we can pull that boost out from another battle without an intervening reset, assuming we use a 3 or 4 mutant party. There's potential here.
I guess the big question is how it compares to drafting a monster. What I like about mutants is their versatility. We may intend to use a second mutant just to learn QUAKE, but we might end up using him for additional charges of TELEPOR, GAZE, or who knows what else.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Yikes! My lack of attention to this run really showed with my last post! I somehow missed your 40 minute run. I just watched it and was very impressed-- I think it's just shy of being publishable! The chief shortcoming I see is that we should use my restart script to expedite luck manipulation. Manipulating luck should take frames, not seconds. After reading your post, I was going to question whether a low Agl., low Str. mutant could make it through the game with just Mana, but it looks like you proved me wrong. Here are my thoughts on your plan:
FatRatKnight wrote:
Assemble party of four Mutants. The primary character needs to be MUTANT F, thanks to things like higher starting Agl. and the ever yummy SABER. The other three may be either gender, but I'm thinking 2 M and one F here.
What? No Final Fantasy Charlie's Angels? The other three characters won't matter, so I don't care. I only have an ever so slight inclination toward a party of four females just for the sheer goofiness of it.
FatRatKnight wrote:
Get GAZE (death), P-BLAST, and TELEPOR, in that order, by the time we defeat P-FROG bandit.
This I question. I think it might be better to get GAZE first, then TELEPOR, then P-BLAST. If it's faster to TELEPOR to the tower base, then walk to King Armor, we'll want TELEPOR on hand before we defeat the bandit. You probably know better than I do, but I'm not sure whether we can pick up all three spells before defeating the bandit, and it seems that you only really use GAZE along the way (you used P-BLAST on an ASIGARU, but I don't know why).
FatRatKnight wrote:
My notes indicate an optimal first reset time is 6 steps out into the overworld.
Restart script. That is all. (I just remembered that we can manipulate luck even further by restarting twice in a row. I'm not sure, but restarting seems to further scramble the RNG, so even when you seem trapped by the RNG, you can sometimes restart twice in quick succession to get otherwise inaccessible results.)
FatRatKnight wrote:
Possibly get replacement characters at this time.
In your test run, you picked up a human female and a monster, if I'm not mistaken. I wasn't paying close enough attention to notice what use you got out of them. Why did you pick those two characters? Did they do you any good? I'll check your run again after writing up this post.
FatRatKnight wrote:
Let's see... 5 GAZEs and 2 P-BLASTs means we can get another 35 Mana on our way to SEI-RYU.
Don't forget we can luck manipulate additional charges of the spells. What slots are you expecting them in? As long as there's nothing in slot 1, we can manipulate more uses of any spell we need. I think...
FatRatKnight wrote:
If we did bring a BEETLE, we might want to fight an ATOMCRAB to change up the RNG for the well-anticipated SAW.
I'm inclined against it. How many battles will it take to get a BEETLE? I mean, we could get lucky and be able to manipulate the RNG so that it gives us... 1) ... a stat bonus for our mutant (given)... 2) ... in a battle against a monster whose meat we can use (I estimate a generous 20% chance)... 3) ... and have it drop meat (50% chance). Those are slim odds. Even if it takes just two battles to upgrade a monster to a BEETLE (we can't recruit one straight up, can we?), it's only saving us two rounds or so against SEI-RYU. It doesn't make sense to me, but maybe you see something I don't.
FatRatKnight wrote:
The turn order when we use spells doesn't depend on our Agility, but Mana instead. Or so it seems.
I was worried that a character with minimal Agl. would get pummeled by monsters, but you've supplied video proof to the contrary.
FatRatKnight wrote:
P-BLAST the trio of monsters. Though, one won't be enough...
Hmmm... we might pick up a second P-BLAST for another character, even if they don't have much mana. It would mean fighting two extra battles, though, so I doubt it will be worthwhile. Another option would be picking up some kind of target-all spell or ability, though we would be limited to shops that are close to the main path.
FatRatKnight wrote:
Detour for Book of STONE in the hidden town.
It's a little bit out of the way, but you seemed to get a lot of uses out of it. I approve.
FatRatKnight wrote:
Go straight to the key items. Do not pass GO, do not collect 200 G. Or any optional item.
I just want to reiterate that it may be faster to get off the bike outside of Northeast Town. It will only save a second or so, but I'd be really annoyed with myself if we forgot to test it.
FatRatKnight wrote:
We might want to avoid resetting since EVIL EYE so the RNG is good for our otherwise incompetent 54~59 Str.
You mean because it worked in your test run? I agree, though we should test it with a reset in there. If we can squeeze a +5 Str. boost out of the MACHINE, all the better.
FatRatKnight wrote:
We got a BAND from So-Cho.
Oops, I didn't notice that. I wonder if we should equip it early, expecting to be BLINDed by SU-ZAKU, or just keep it off until we're about to fight him.
FatRatKnight wrote:
I really think walking there is fastest. Naturally, we should time it.
Heh, I think I didn't realize that SU-ZAKU and his constant battles were absent in my test run. You've probably got the right idea, but yes, we should test it.
FatRatKnight wrote:
More tower stuff. Probably no TELEPOR this time, I guess.
Do we need TELEPOR at all after World 3?
FatRatKnight wrote:
The NPC we talked to earlier doesn't exist anymore. Hence, isn't messing with our door. If we had talked to the NPC now, we must leave the area and reenter to get Tower2 working properly.
Your attention to detail has once again saved my ass.
FatRatKnight wrote:
ASHURA dies to SAW. This battle may be troublesome... We might need a spare meatshield, considering my lack of any Agility and whipping won't do any good. Either that, or buff the Mutant M's Str. to 75, but that requires extra battles.
Hmmmm... this will require a lot of thought. We use SAW three times, each on enemies that have 90 or more Def. Assuming we don't have any trouble defeating the bosses, we can expect turns to last roughly two rounds, for a total of six rounds. If we boost our lumberjack's (you know, because he uses SAW... blech, never mind) Str. up to 75, we can expect those same battles to last one turn (if I know my negative binomial distribution, and I assure you I don't, then the expected value is actually 4/3, which I'm rounding down to 1). So we would fight about five battles to save three turns (a net loss). All right, let me try this again... If our Mutant M has 56 Str., we can expect the three battles to last 1.786 turns each for a total of 5.36 turns. Boosting his Str. by 5 brings him to 61 Str. which should shorten the battles to 1.639 turns on average for a total of 4.92 turns on those three bosses. This costs us one battle but saves us only 0.44 turns on average, so it's a net loss. Stat boosting is a bad idea. Of course, this analysis flies out the window if we actually have trouble defeating the bosses. If that's the case, we might benefit immensely from boosting his stats. Tangentially, have you considered conscripting a female party member in World 4 and giving her a WHIP? I really do love stunning enemies with the WHIP...
FatRatKnight wrote:
We differ on stat growth. You say we should get Str., Agl., and Mana on the same Mutant. I say we get Mana on the starter and pick up a boyfriend for this mutant and let him handle the Strength needs for us.
Nope, I'm sold on your plan now. It's far more elegant and I greatly prefer it to attempting to boost three stats.
FatRatKnight wrote:
We differ in some battle plans. Odd, you don't have bSTONE considered. I do believe we'll need it. See my test run on the writings in action!
You're right, but there may be one way around it. What if we just pick up GAZE (stone) as a mutant ability? What are the drawbacks of that strategy? I'm not against picking up the STONE spellbook in principle, but you've got to admit the hidden town is at least a modest detour. If we learn it as a mutant ability, where should it go? Should it go in the unused slot, or can it replace one of the existing abilities. (Ooh! And if it works, we can use it on SEI-RYU! Please tell me GAZE (stone) is worth getting!)
FatRatKnight wrote:
We differ in the use of EYEDROPs. ... I didn't need it in my test run, anyway. Silly detail, I guess.
Forget 'em. I strongly doubt they'll matter. I don't even know if we should equip the BAND, but if we face blindness, that's what we have it for.
FatRatKnight wrote:
Do we want a second character to blast things with?
Well, after watching your test run, I'm 90% inclined against it, but... ... if we reset the game such that C30B = 137, our lead mutant gets a 5 Mana stat boost while mutant #2 gets a 4 Mana boost. In other words, we can boost two mutants' mana simultaneously. Even if we could do that consistently, I still doubt it would help since we'd need to fight several extra battles to teach the second mutant abilities (he should probably get P-BLAST) unless we stop at a magic shop. What do you think? I don't know about you, but I'm starting to feel pretty good about this run! I had completely failed to notice that your test run is an outstanding template for what we should do. I think if we manipulate luck with my Lua script and that's the only change we make, it'll be good enough to publish! Edit: Say, slim chance that this works, but would it be possible to TELEPOR back to floor 1 after the ASHURA battle? That is, is the flag for accessing the second tower triggered by defeating ASHURA or by falling down that trap? If all we need to do is beat ASHURA, then TELEPORting should be faster since it skips some persistent text. Edit 2: And before I forget, please elaborate on using the Sound Test menu to manipulate luck. I think we're best off using my Lua script, but I'd never even thought of accessing the Sound Test menu. Edit 3: The other day I read through almost all of our posts. I started with the first one and got halfway through the last page before giving up because I was tired and I thought I had read most of the important stuff. Now I'm looking back at your last few posts before our break and I realize that we'd already talked about a lot of this stuff. I guess it doesn't hurt to re-tread old ground, but I'm feeling kind of stupid for asking questions that have already been answered. Edit 4: Two mutant abilities caught my eye: POWER and QUAKE. POWER could be useful when we need to SAW things. It would only make a difference if we can't defeat an enemy with 100 defense until the 3rd turn, so there's only a slim chance it'll help. We might want to keep it in mind anyway. QUAKE might serve as a poor man's P-BLAST for that one battle. Can we get QUAKE by fighting just one battle?
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
FatRatKnight wrote:
Right now, I'm somewhat burnt out for this run. I need you to lead the way for the moment. Even if all you do is ask "So... What's the plan?" That's all I need, as far as I believe. This gives me a direction to reach for, something that an outside force wants from me. A destination in which I feel I can get to and tell you, "here it is."
Since you carried on without me for a while, I think it's only fair that I start things back up. Let me outline a plan... ...But first, a caution for both of us: we're going to have to drop the idea of irrefutable perfection. I love the idea of making a TAS that's impossible to improve upon, but I know from personal experience it will drive its author insane. Of course, we can't outright cut corners either, but we just need to be able to say to critics, "Hey, we gave it a whole lot of thought, but we're not 100% certain that we made the right choices. We did our best." When I got tired of running Skitchin', I had to consciously stop focusing on perfection and instead think about entertainment to get the run done. I don't know if you needed that advice, but perfection scares the crap out of me. So okay, here's what I've come up with for a route. I'll obviously focus more on nontrivial things rather than the overall route, which we both know pretty well. Preliminary Stuff •Start the game. (Okay, so maybe that isn't nontrivial. Sue me.) •Soft reset the game as soon as possible to manipulate luck before starting a new game. My reasoning is that if we restart first, we don't have to save the game and it will save about 20 frames. •Start a new game and assemble a party. I don't know how many characters we should use, but my current inclination is toward four female mutants. I think we both decided one mutant would need too much time to learn TELEPOR. My guess is that the same would hold for two mutants. I think it's a tossup between three and four mutants. According to previous analysis, a three mutant party would have to fight two extra battles to earn the same stat gains that a four mutant party would. We should do a quick analysis on how much additional time a character uses up. If there's anything you can help with immediately, it's to weigh the benefits and costs of having four versus three mutants. Through World 1 •Get the lead character's Agl. up to about 60 on the way to the bandit. We have a fair amount of wiggle room here-- we need her first bonuses to all be Agl., but once she can OHKO anything in World 1, we can stat boost whatever we want. That's going to save us some time in luck manipulation since manipulating a particular result is going to mean more resetting and less walking (on average). I also think this is the most important part of the game, so we may want to replay this segment five or six times to try to get the most favorable RNG values we can. •Fight four battles to get TELEPOR. This should start in Bandit Cave or immediately after leaving it. I say if we haven't learned it before meeting King Armor, we've done something wrong. •Fight two more battles to get P-BLAST. Hopefully our main character will have some Mana built up by then. This brings me to the second thing you can help out with: Do we want a second character to play the role of spellcaster? There are all sorts of potential benefits and drawbacks. On the plus side, we could deal more damage per turn when it's needed (I'm thinking bosses). The drawback is we would need to keep two characters alive and we may have to re-analyze the bonus RNG table to find out how best to pump up a mutant in the second, third, or fourth slot. The only battle I definitely see it helping would be against BYAK-KO. We'll be SAWing almost everything else. I want your take on it. •Retrieve the King Armor from... King Armor. It's worth noting that there's an NPC by the stairs who might get in our way. Hopefully he won't be a problem, but we may need to manipulate him to one side. •(Obtain GAZE (d) on the way to King Swd? We should probably pick it up sometime, but I don't know when would be best. We should also consider that if we have a single character with three spells, manipulating their uses might get tricky. I'm looking at my test run and I see that my Mana was pretty low, so it might be a good idea to put it off until later-- after all, it shouldn't see any use through the first two worlds. That's another thing for you to think about.) •Defeat King Swd, TELEPOR back to the base of the tower, march over to King Shield, defeat the steward's cronies with a P-BLAST, defeat the steward, walk back to Town of Hero. •Stop by the weapon shop to buy a WHIP. I can't remember for sure, but I think we need it to stun BYAK-KO. (Nope, I just watched my test run and I didn't use it there. I still think it might be needed for SU-ZAKU and/or ASHURA.) •Dress the statue, TELEPOR back to the base of the tower to skip GEN-BU. •(Use the Inn? If there's one thing it's got going for it, it's very quickly accessible.) •(Talk to that one NPC? You demonstrated that there's a particular NPC that you have to talk to so that you can access the second tower. We can always talk to them later, but maybe we'll be particularly close anyway.) •Stop at the item shop to pick up EYEDROPS. Unless I'm sorely mistaken, we'll need them after the SU-ZAKU battle. We may want to check that these are the quickest EYEDROPS we can get. Through World 2 •Climb the tower. If we haven't been stat boosting, resume doing so. By now, we should be pumping Str. whenever we can. Mana and Agl. should be in the 70s, so they can stay where they are unless we absolutely cannot luck manipulate a Str. bonus. •Pick up a Battle Swd in the World 2 town. (No EYEDROPs in this town. I just checked.) •Trek over to the island/ship, stat boosting along the way. Sail it to the AIRSEED. Sail to the whirlpool and dive in. Enter the Underwater Castle. Do our damnedest to force the monster on the first floor to step away from the door so that we can pass by. •Enter SEI-RYU's room. There are some easy ATOMCRABs here if we need to pump extensively. I don't think we'll need them, though, so we should just... •...Defeat SEI-RYU. Sail to old man, talk to him, warp out via the tile next to him, re-enter, talk to him again, obtain the BLUEORB, TELEPOR back to the tower. Through World 3 (My favorite!) •By now, we should have maxed out Agl. and Mana and we should have 69 Str. (which is where we need it to SAW the MACHINE in the power plant on World 4). Therefore, we should stop leveling and manipulate luck so that we can always run from battle. Then again, if we put off just a little bit of stat boosting until this point, we can focus on running but we'll have a little bit of leeway if we can't manipulate luck to run from battle. Oh, and be aware that we should walk as far as possible before resetting. In my test run, I usually walked as little as possible before resetting because I just wanted to manipulate luck, not optimize the speed. •(Pick up the SABER in town? We probably won't need it, but my memory's really hazy at this point. In my test run, I stopped at the Weapon Shop for something, but it went by too fast for me to see what it was. There are EYEDROPs in the item shop, which shouldn't be too far out of the way if we stop at the weapon shop.) •P-BLAST some MOSQUITOs at the pub. Get recruited by BYAK-KO. Fly to Jeanne's and save her. Don't talk to Jeanne! Just leave. •Climb the very boring Flying Castle, doing our best to manipulate NPCs out of the way. This will be tricky, so I'm not sure how much effort we should put into moving them. •Save Mileille, TELEPOR out of jail (leaving our cellmates to rot), talk to a soldier at the pub, pick up our glider, enter the Flying Castle, leave, enter the secret hideout. •(Go to the hidden town sometime in there? I remember we both went there, but now I'm looking at the shop lists and I can't for the life of me remember why we wanted to stop there. Oh well.) •Fight BYAK-KO. Make sure that characters are distributed such that our favored adventurers survive the battle. (We could stun him with the whip, but we can almost certainly benefit from killing off two characters.) •Get the sphere and TELEPOR back to the tower. Through World 4 •Climb the tower and run from battles. •Pick up the coveted SAW along the way. •Head straight to the sewers and follow So-Cho's sister. •Save So-Cho's sister. (In my test run, I reorganized my party first. I recall that I died in battle if I didn't shuffle my characters. I'm not sure if that will be the case again and I don't know why it helped.) •Go to the pub, blah blah blah blah blah blah blah blah blah. Get on the bike and go to Akiba to pick up the ROM. Skip the CATCRAW, which I found out we won't use. •Drive to the Northeast Town, pick up the BOARD. Do you suppose ROM and BOARD meant anything to Japanese players of the game? •(Pick up EYEDROPs? This is the third and last place where we might get them. There should be a shop in this town that sells them and I think it might be our best bet. We'll have to check how close it is to the main path compared to the other shops.) •Exit the town, then re-enter to quickly pick up the bike. We could also drop the bike off outside town. We may want to manipulate it so that we don't run into SU-ZAKU while we're on foot. •Head back to town, follow So-Cho to the power plant, SAW the EVIL EYE. •When So-Cho bikes up, move left two, right one, then get off the bike to talk to him. This should be the fastest way to get to the next room. •Walk up to the MACHINE, leaving the bike behind (should be fastest). SAW the MACHINE. •Pick up the bike in town, take it to the skyscraper. •Climb the skyscraper, continuing to run from battles. We might get into just one or two battles since SU-ZAKU has 77 defense and we can SAW him. No biggie if we don't. •Don't forget to "jump off" the elevator as it's going down to enter the door early. •Fight SU-ZAKU. Whip the hell out of him until we can SAW him. In my test run, I used the E-WHIP-- I don't know how that compares with the regular WHIP (which should be more reliable). •Use EYEDROPs as necessary. Through the EndWalk from So-Cho's grave to the tower. It's a little bit faster than TELEPORting. •Climb the tower and fight a few more battles to boost Str. BYAK-KO2 has 90 Def., so we should cap Str. at 89 until we fight him. Unfortunately, I don't know if we can even reasonably beat the enemies this late in the game (unless we use GAZE). •WHIP ASHURA until we can SAW him. •Climb the second tower, SAWing everything in sight. This part should be extremely straightforward. So that's my plan. I also have some thoughts on how we should implement Lua scripting and stylistic issues like how we move from place to place, but I'd first like your thoughts on this plan. It's probably not perfect, but I believe it incorporates every lesson we've learned so far. The biggest questions are whether we should get three or four mutants and whether we should use a second mutant as a spellcaster. I'm worn out after typing all that up, so tell me what you think and check that my route makes sense. If I forgot any useful tricks along the way, point them out and I'll add them to the plan.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Let me share a few thoughts on the dedication that goes into making a TAS. I probably won't say anything you don't already know, but I hope it'll still be a good pep talk. Making TASes is a rough hobby. Because the nature of the medium demands perfection, it doesn't really lend itself to putting up a "best first effort" unless it's already damn near perfect. Not that their dedication is anything less than phenomenal, even conventional speedrunners often have the liberty of saying, "It's not perfect, but it's good enough for me." TASers are required to play through a game several times, taking meticulous notes along the way, just so that they can get it right when they finally do sit down and go for the real deal. We're not making things easy for ourselves either with an RPG TAS. I think that for all but the clinically unbalanced, a certain amount of boredom or anxiety is virtually inevitable. It happened to me for several months while I was working on my Skitchin' TAS, it happened to you while working on Life Force, and from what I've seen, it's happened to a lot of talented TASers who just got sick of thinking about a game day in and day out. It looks like it happened to both of us while working on this one. I noticed when I started TASing early this year that the first sentence of the Guidelines page was, "Do not undertake a TAS job alone, not if you can help it." I thought that was strange advice since, after all, the more work you do yourself the more you feel like a trailblazer and the more credit you get. Working in groups can be rough because you can become overly dependent on another person to help you when you need it. I don't know about you, but I find that when I work in a group, I'm often either doing all the work or practically sitting on the sideline as an observer, neither of which is very rewarding. But I've got to say we've worked really freaking well together. Keeping the updates up to a near-daily rate is almost unheard of for all but the most popular games (and even with them, a lot of posts are just mindless banter). We were constantly finding new RNG tables and routes, and when we weren't doing that, we were doing test runs. I think that the handful of "groupies" and well-wishers we accumulated is a testament to how hard we worked on this. I now think that the Guidelines page is absolutely right-- you shouldn't make a TAS alone if you can help it. At first I thought it was just about sharing the workload, but now I see that it's more complicated than that. When we were working together, I wasn't running the game just to get a TAS published. Day to day, I worked because I felt obligated to help you. If I slacked off for a weekend or a few days, I'd be leaving you out to dry, and that simply wouldn't be fair. I know you haven't been working on the game lately either, but I really take full responsibility for bringing the project to a halt. My internet connection temporarily died and I soon took that as an excuse to duck out for a break. You did what you could in the meantime, but I don't think either of us would have started (much less finished!) this project alone. I know for sure I wouldn't have. So what am I really trying to say? Well, it's complicated. I don't want you to think you're obligated to continue if you're not up to it, you've moved on, or you're busy with other projects. And the fact of the matter is that as long as I have any involvement in making this TAS, your name is for certain going to be on the submission-- you've done more work on this game than I have. The way I see it, though, we've done about 90% of the work toward getting this thing done and it would be a real shame to let someone else get all the glory for the final 10% (the actual run). I think we're both sick of this game, but it's something we just need to do and we're going to need each other's support to get it done. The first step should be some "executive decisions" regarding how extensively we wish to manipulate luck. After that, it'll just be a matter of putting it to practice, which will be tedious, but straightforward. I think we can finish it within two weeks as long as we formulate a clear plan. Between the two of us, we've run the game at least four or five times at this point, so there's very little left to actually do. It's your call, but I vote for giving it one last push and getting it done.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
*Sheepishly walks in* Uh... I'm back. I saw the FFL run on the front page and my heart skipped a beat-- I was relieved when I saw it was the Japanese version, so we still have a legitimate English version going. A combination of things "distracted" me from the run. First there was the bad timing of losing my internet connection, so you (FatRatKnight) got ahead of me. Then came a deep apprehension about manipulating luck and the resulting desyncing. I got really nervous about the prospect of restarting and playing the movie over and over and over and over and over again to manipulate luck. I was growing sick of the tedium of it. Finally, I just found other projects to keep myself occupied. Since you haven't posted lately, it looks like that's not so much of a problem, but I still feel I should apologize and say you deserved better treatment than me dropping out like that. I should have at least told you what I was up to. Anyway, let's pick things back up where we left off... but in a week or so. I have an important trip to take starting tomorrow and through Saturday, so I won't be able to do anything until then. I'll also be applying to grad school imminently, so that will take up some of my time. But next week, I'll read through all our old posts, break out the Classic Controller, and before long, we'll get this damn thing done.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Between laziness and not having internet access, I've made essentially no progress, so I'm currently playing catch-up. I don't have much to concretely add, but I'll offer what I can. The really nice thing about the STONE spell is that it lets us ditch Agl. bonuses. I considered doing that after learning I could manipulate P-BLAST pretty easily, but quickly realized that we still need a high Agl. stat to manipulate WHIP for late bosses. With STONE and extra characters, we might be able to do away with it entirely. (Ah, looks like you pointed that out at the end of one of your posts.) What I like about STONE is that it allows us to hedge our bets-- between STONE and SAW, one of the two is quite likely to connect. I don't think a monster would be worthwhile, since you'd have to fight more than three battles to pump it up. Compare three extra battles versus three turns fighting SEI-RYU and it's pretty clear he wouldn't save enough time. Gorgeous luck manipulation on the roving monster in the Underwater Castle! Once again, you've shamed me by demonstrating you can fly around the Hidden Town in World 3. Now why didn't I think of that? Are you sure it's faster to walk to the skyscraper rather than take the bike? It looks faster, but I'd just like to check that you tested it. I noticed that you TELEPORted from So-Cho's grave. Did you get different results from me? I believe the fastest way to avoid battles is to luck manipulate out of them. Starting near C323 = 161, there's a nice, long pocket where the RNG won't cause any random battles (under most conditions) until it reaches 255. If we can manipulate luck so that the RNG is anywhere near there, it will be even faster than running. Finally, I have what is by far my most important contribution: naming. I don't know if you have anything in mind, but I suggest we name our party members T, A, S, and F respectively. This is an obvious allusion to the run being a TAS. Additionally, if we are fortunate enough to switch the first and fourth members of the group, we spell "fast". Two alternatives came to mind: T-A-S-E and T-A-S-R, both for having a lot of anagrams (perhaps we can spell "star" as a subliminal message to the reviewers). I'm not sure, but I think we might be ready to start planning for the real run. I don't know if a new test run would bring any new information, so it may be time to hammer out the details of the real thing.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Sweet mother of mercy! My ISP is really flaky, so I haven't been able to access tasvideos for the better part of the past week (I was able to access other sites, though). Hopefully I'm back for the foreseeable future, but I'm writing this mini-post so you know what's up just in case it conks out again. Expect updates... eventually...
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Well, I was hoping to have a completed run for you, but I've run into a little snag. The game has lost its mind and won't let me enter the second tower. I say it's "lost its mind" because it actually will let me enter, but only when it feels like it. Here's my progress: Stuck. You may wish to watch it at 1x or 2x speed once I get to frame 150,000 or so. To be honest, I think the culprit here is the GEN-BU skip, which is a shame since I thought it was exceptionally clever. Even so, the game seems really confused as to whether I should be allowed to advance or not. You'll see I repeatedly waltz in and out of tower 1, then without any significant action on my part, it admits me to tower 2. Your insight would be greatly appreciated. Do you think I should finish off this run? We can just subtract out the frames I spent wandering aimlessly. I have some notes on my run anyway and I think I've learned some good lessons here. From what I can tell, attack order gets "scrambled" if you use a spell (or possibly in the presence of multiple enemies). You'll see that despite my leading mutant having much more agility, she frequently is the last to attack in battle. I'm trying to think of ways we can get around that-- perhaps we can teach ESP to the supporting cast since it works very quickly. There's a P-KNIFE in the tower that has one more attack power (7) than the SABER. Since both my Agl. and Mana were maxed out, I didn't know if I should pick it up or not and I spent a lot of time thinking about whether it was worth it. Basically, there was a very low probability that it could save one turn against BYAK-KO. Then I realized that since this is a test run, I should just pick it up so I could, you know, test it. It didn't save a turn, so no P-KNIFE for us. I pick up the CATCRAW for much the same reason. I haven't used it, so no CATCRAW for us either. I found it was faster by about 590 frames to TELEPOR out of jail (I timed how long it took to reach the Floating Castle). Heh, now that I think about it, it also keeps our inventory slightly less cluttered, saving us an additional handful of frames. Using TELEPOR after fighting BYAK-KO as opposed to flying back to the tower saves about 500 frames. It's about 1,000 frames faster to go through the abandoned subway to save Sayaka. It's a very minor time save, but I found it nontrivial to move around So-Cho when he catches up with you in the power plant. You start out facing the wrong way and on the bike, so you have to turn yourself around and get off in a timely manner. I tested two strategies: left two, right one; and up one, right one. Left two, right one was faster by 11 frames (although it's possible that another method is even faster). You can "jump off" an elevator moving down in the skyscraper by pushing right as you pass a door. You'll see me use that twice, though I missed it the first time (I was lazy and didn't go back to correct it). I found it was a few frames faster to walk from So-Cho's grave rather than TELEPOR. It wasn't much, so it may be faster to TELEPOR if we can scroll through the floors faster in the menu. I doubt it, though. I had to TELEPOR back to World 1 to get EYEDROPS before the ASHURA battle. I couldn't get through the SU-ZAKU battle without him blinding me, so I tried to carry on despite that handicap. Once I reached ASHURA, I found that I couldn't defeat him and I needed EYEDROPS to raise my hit%. In subsequent runs, it may be faster to pick up the EYEDROPS before starting our ascent. Unfortunately, that assumes that we will be blinded at some point, but we can only hope! I have changed my preferred strategy yet again. I now think it's inefficient to load up on stat boosts for just one mutant when they won't be using them simultaneously. There's no purpose for the same mutant having both high Mana and high Str. Therefore, I think the best strategy would be to find some point in the RNG where two mutants get decent stat boosts-- one in Agl., the other in Mana. Your second mutant is then your designated spellcaster while your first is the bruiser. This has the added bonus of allowing almost twice as much damage against bosses and tough enemies through BYAK-KO. I watched your latest run and I'm encouraged that these little pieces are starting to fall in place. It's good to know we can use TELEPOR early. Once again, your sloppy luck manipulation has bested my run by about 3,000 frames. I'm eager to see if you stay ahead of my pace. Well, I'm probably going to take a break for a couple of days to think about this and plan a two-mutant run. I'll be scouring the RNG for regions that give good stat boosts to two mutants. I think it'll carve a huge chunk of time off the run. Edit: I was just thinking about how you mentioned that you set the text speed to 1. I thought it wouldn't save time, but now I think it might. After finishing the game, the characters talk for a bit. I don't know exactly when the game accepts input, but if that text is affected by the text speed and we don't need to press A or B to close any text boxes, it will save a little time (off the movie) to have the text speed maximized. We could always end the input at the same time and just have the text wrap up at a slow crawl, but I don't like it stylistically. Am I making sense?
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
After a looooong night, I'm done with World 2. It was plagued with desyncs and I made some stupid mistakes along the way. In particular, I was through learning abilities, so I commented that section of my script out. Then I realized I'd want to shuffle abilities, but I forgot to uncomment that section, so I ended up only scanning for abilities that show up in the last row of my script. Once I got that straightened out, I discovered that abilities are in fact shuffled one by one from first to last. Since STEALTH (which has infinite uses) was my first ability, my second ability, P-BLAST was always knocked down to zero uses. I had to go back and fight an extra battle to get a useless ability so that P-BLAST was second on the list. My run is about 78,000 frames, a whole 19,000 frames slower than your effort. It just amazes me that I can put in all this effort into luck manipulation while putting up with frequent desyncs and it's a full 30% slower than a little run you threw together. I'm hoping I can make up for lost time by running from battles from here on out, but I've got to hand it to you-- your first attempt remains the time to beat. If you'd like to pick it up again, you've got a whole 5 minute head start with which to fight battles, pump yourself up, and catch up with me. I don't think I made any real mistakes this time around. I stopped at the inn in Port Town because I figured it would be faster than manipulating a battle for abilities. Whether that's true or not, I wasn't set up at that point to replenish abilities through battle, so it seems to have been the right strategy. My teammates are getting on my nerves, mostly because I keep holding A through battles so they use their abilities and waste time. I realized I wasn't running from battles to better manipulate luck. Since running from a battle costs about 140 frames, it may be more efficient to just go with whatever the RNG throws at you after the previous battle. Still, I should be more thorough about these things. I'm thinking of writing a script that would cover all the luck manipulation for me. Part of writing the script would include incorporating "waypoints" that specify where to go at all times. I have the know-how to write it, but it'll take a fair amount of work, so I'm putting it off.
FatRatKnight wrote:
With a four mutant party, you need four battles to get TELEPOR. Presumably, you want 3 random battles and finish by using the P-FROG bandit battle. The 0x59 TELEPOR needs 64 steps, while the 0xEB TELEPOR needs only 58 steps when involving the forest encounter at step 0x00. Not too bad, eh?
Sounds like it's barely doable. It's worth looking into for next time.
FatRatKnight wrote:
The [0]= thing I do in lua is just saying "put this object into index 0". It's not saying "allow this thing to be put in index 0", but rather declaring that the object must be placed there. Some table-related built-in functions of lua does not handle this well, for whatever reason, but we shouldn't need to worry about them in this case.
Ah, so can I follow it up by writing [147]=... and have it place that value in index 147? Would that leave the 146 intermediate values as "nil"? Just curious.
FatRatKnight wrote:
I took a look at the random encounter groups. The thresholds appear to be 0x04, 0x08, 0x10, 0x20, 0x40, and 0x80. A value in the range 0~3 gets one rare group, the range 4~7 gets another rare group, and so forth.
Verrrrry interesting and qualitatively consistent with what I've observed. Are rarer encounters generally more difficult? This could be very useful in a subsequent run, but for this run, I'm fleeing most of the remaining battles. Ah crap! Come to think of it, I have some forced battles coming up and I don't have any results I particularly want to manipulate from them. If I'd put off a little stat boosting until this point, I'd be able to work on that. Looks like I'll end up amassing 20 charges of P-BLAST or something ridiculous like that.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
FatRatKnight wrote:
My Master Table is actually "off by 1", with how I'm using it.
Oh, oh, OH! Stupid me! I actually noticed it was off by 1 because Lua doesn't normally allow 0 as an index, but I didn't put two and two together. I figured that your 1 index corresponded to the 0 index in game. Now everything makes sense. Furthermore, this is good news because we can deduce at least some of the RNG values just by looking at the encounter rates in different areas. I'm pretty sure there are some areas with only one or two additional encounters over other areas. You can keep the table as-is since you've already programmed it that way. I've been curious about it for a while, but what exactly does the "[0]=" at the start of the vector do? Does that indicate to Lua that 0 is an acceptable index?
FatRatKnight wrote:
I'll be taking a look at your script.
Just be sure to replay the video every time you use it! It'll desync on you like it's trying to make your life miserable! Here's my latest run: World 1 in 10 minutes. I think you'll find it muy rapido. Good things: •TELEPOR and P-BLAST both picked up, probably saving a lot of time down the line. •Much better luck manipulation. After every battle, I would immediately save and use my program to see if and when I should restart. If the results weren't good (no good restart opportunities within about 30 frames), I rewound the game, walked a few steps, tested luck again. It was a bit tedious, but you'll see the results are very sleek. •HUGE stat boosts already. My Agl/Mana/Str is at 77/52/24. I should have no problem maxing those stats by the end of World 2. Bad things (and there are a whole lot of little bad things nagging at me): •I think I overdid it with the Agl boosting before Bandit Cave. I found myself playing catch-up with Mana for a while after. Specialization (i.e., boosting only one or two stats for an extended length of time) is bad for luck manipulation, so I should be more even-handed with my stats next time. •I suspect it's faster to TELEPOR out of Bandit Cave, then walk from the tower to King Armor... •... but even if it isn't, I shouldn't have picked up P-BLAST first. By giving my mutant an ability, I have to scroll past it in battle to get to SABER, wasting some time. P-BLAST should be picked up as late as possible before Castle Sword. •My menu navigation remains a little sloppy. Deal. •I had to switch my main mutant back from the third slot to the first, technically wasting time (in fact, I marched all the way to King Sword before realizing I was stat boosting the wrong mutant and had to redo that entire segment). Because I've only looked into stat boosts for the party leader, I have to put her in front. I have this nagging suspicion that if we manipulate luck for, say, the third or fourth mutant, we'll find there are slightly better stat boosts for them, such as four Agl +5 boosts instead of three. •I meant to buy a WHIP at some point to have on hand for BYAK-KO, but I forgot that it's in Town of Hero. I actually don't think that's a mistake (although I maybe should have picked it up before dressing the statue). I'll just pick one up later. •I'm a little concerned I've actually fought too many battles. I've got to rely on P-BLAST more from here until BYAK-KO. Had I put off fighting battles until later, I could pick up an L-SABER with no problem since later battles award more GP. If I fall short on cash at that point, I'll have to use the regular SABER and pick up the CATCRAW in World 4. It'll probably work as long as I'm careful and it may even be the best strategy, but I'm nervous about it. •Not that it shows in the finished product, but this run is desyncing like mad. My first run didn't desync many times as I was making it. I think this run desyncs more often than not. It should become tolerable once I start running from battles since I can go about 200 steps before restarting. I think World 1 may be the most important and hardest world to plan, so for better or for worse, I'm out of it, and that's the important thing. At some point, I did a test comparing the number of frames it takes to run from battle versus the number of frames to reset the game (in both cases, I measured the number of frames until you regain control of your character). I found it takes 152 frames to run from battle but just 137 frames to reset. The caveat here is that those 137 frames don't include luck manipulation, so I imagine it's almost a wash. Nevertheless, it would seem the fastest strategy would be to manipulate luck so that you have a large number of steps until the next battle, then as you approach that battle, manipulate luck to do it again. I'm very suspicious of this, however, since it seems so much more logical to just manipulate luck so that you can run from a long string of battles. I'll test it at some point. Oh yeah, I realized that if you want to remove a bonus from the script I wrote, just comment out the "FTI = FTI + 1" line under whatever bonus you want to remove. The index won't increment so it'll just overwrite that data with the next valid frame.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Progress has been slow, mostly because I'm intimidated by the prospect of starting a new run (like typing an English paper, I tells ya!). I instead directed my energy towards updating my Lua script. Give this a run:
movie.rerecordcounting(false)

local state1 = savestate.create()
local state2 = savestate.create()

local Aglvals={8,56,130,221,233}
local Strvals={62,113,191,210,213,236}
local Manvals={6,23,28,31,43,61,88,100,137,138,142,162,203}
local Runvals={14,24,32,33,34,47,125,148,170,171}
local Abilvals={89,234,242}

local goodvals={56,130,221,23,137,203,62,113,191,32}
local okayvals={8,233,210,213,236,6,28,31,43,61,88,100,138,142,162,33,170}
local badvals={14,24,34,47,125,148,171}

local AglTable={}
local StrTable={}
local ManTable={}
local RunTable={}
local AbilTable={}
local RNGTable={}
local FTI = 1

-- Modeled after Matlab's "any" function.  Returns "true" if any element of "vector" matches "value".
local function any(vector,value)
	match=false
	for i=1, #vector do
		match=(match or vector[i]==value)
	end
	return match
end

savestate.save(state1)

while #RNGTable<3 do
	emu.frameadvance()
	savestate.save(state2)

	frame = emu.framecount()

	for k = 1, 8 do
		joypad.set(1, {A = 1, B = 1, select = 1, start = 1})
		emu.frameadvance()
	end

	local rng = memory.readbyte(0xC30B)
	local canrun=memory.readbyte(0xC323)

	-- Agl
	if any(Aglvals,rng) then
		RNGTable[FTI] = rng
		AglTable[FTI] = frame%1000
		StrTable[FTI] = " "
		ManTable[FTI] = " "
		RunTable[FTI] = " "
		AbilTable[FTI] = " "
		FTI = FTI + 1
	end

	-- Mana
	if any(Manvals,rng) then
		RNGTable[FTI] = rng
		ManTable[FTI] = frame%1000
		AglTable[FTI] = " "
		StrTable[FTI] = " "
		RunTable[FTI] = " "
		AbilTable[FTI] = " "
		FTI = FTI + 1
	end

	-- Str
	if any(Strvals,rng) then
		RNGTable[FTI] = rng
		StrTable[FTI] = frame%1000
		ManTable[FTI] = " "
		AglTable[FTI] = " "
		RunTable[FTI] = " "
		AbilTable[FTI] = " "
		FTI = FTI + 1
	end

	-- Running
	-- (Note the use of "canrun" instead of "rng".)
	if any(Runvals,canrun) then
		RNGTable[FTI] = canrun
		RunTable[FTI] = frame%1000
		ManTable[FTI] = " "
		AglTable[FTI] = " "
		StrTable[FTI] = " "
		AbilTable[FTI] = " "
		FTI = FTI + 1
	end		

	-- Abilities
	if any(Abilvals,rng) then
		RNGTable[FTI] = rng
		AbilTable[FTI] = frame%1000
		RunTable[FTI] = " "
		ManTable[FTI] = " "
		AglTable[FTI] = " "
		StrTable[FTI] = " "
		FTI = FTI + 1
	end

	savestate.load(state2)
end

savestate.load(state1)

gui.text(5,1,"RNG")
gui.text(30,1,"Agl")
gui.text(55,1,"Str")
gui.text(80,1,"Mana")
gui.text(105,1,"Run")
gui.text(130,1,"Abil")

for i = 1, #RNGTable do
	if any(goodvals,RNGTable[i]) then
		color = "green"
	elseif any(okayvals,RNGTable[i]) then
		color = "yellow"
	elseif any(badvals,RNGTable[i]) then
		color = "red"
	else
		color = "white"
	end
		
	gui.text(5, 9*i + 1, RNGTable[i],color)
	gui.text(30, 9*i + 1, AglTable[i],color)
	gui.text(55, 9*i + 1, StrTable[i],color)
	gui.text(80, 9*i + 1, ManTable[i],color)
	gui.text(105, 9*i + 1, RunTable[i],color)
	gui.text(130, 9*i + 1, AbilTable[i],color)
end
emu.pause()
The left hand column of the output is the RNG index (either C30B or, for running, C323). This can be used to look up specifically what you're getting. The header for each column refers to what kind of bonus you can expect to get. The entries are the last three digits of the frame number at which you should start to reset the game to get that bonus. If the row is in green, it's a "good" bonus-- i.e., it gives you a stat boost of 5 or you can run from the following six battles. If the row is yellow, it's an "okay" bonus and gives you a stat boost of 4 or you can run from the following five battles. If the row is red, it's a "bad" bonus and you can only run from four battles (I didn't bother including stat bonuses that boost your stats by 3 or less). My program could probably benefit from formatting everything in an array and programming a subfunction that checks for specific bonuses, but I say if it ain't broke, don't fix it. If I were to improve it, however, it would be a lot easier to exclude certain bonuses by simply commenting out a line or two. Are you familiar with the mechanics for when random encounters occur? I've been puzzled by it for a while. For example, a random encounter pops up in an open area on the world map if 0xC33B is 255. If you're in a forest though, you also get into a random encounter if 0xC33B is 0. According to our master RNG table, the RNG is roughly 5 at index 255, but 60 at index 0. Now, I assumed that (like almost everything else in this game) a random battle would occur if the RNG is above or below a certain value determined by your environment. That can't be possible with the values that have come up. So I guess I'm wondering if the battle RNG is completely different, or if they simply use a different criterion for determining whether you get into a battle or not. For example, they could read the RNG's output "backwards" either in hexadecimal or binary and if that number is above or below a certain value, then you fight a battle. I don't think that's what they did, but it's just one of many possibilities. Anyway, as curious as I am about that, it doesn't have all that much practical purpose. We can just determine the values that cause random encounters from context and/or through trial and error. I only bring it up because if it does indeed use the same RNG, there's a small chance that it might narrow down some of the RNG values to a small number of possibilities-- perhaps just one or two. If you're interested in deciphering the encounter RNG, I suggest running around World 4 since the SU-ZAKU encounter rate is huge (it's something like 1 in 4 for each step-- just be sure to enable a cheat that allows you to run from every battle!). On the other end of the spectrum, the encounter rate seems to be lowest in the glider in World 3. I'll be starting my run tonight and attempting to manipulate the hell out of luck. As I said earlier, my goal stats for World 3 are 99 Agl., 99 Mana, and 50 Str.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Long story: I ran through the RNG values for C358, which is rolled whenever you give a character a POTION or X-POTION. I cheated to give my mutant a huge HP cap and infinite potions, then recorded all the values. The base amount that an X-POTION heals is 90 and whatever is added onto that is based on the output of the RNG (up to 60 HP). Short story: I've divided the RNG into 61 bins.
14,36,36,33, 5,53,19,35,25,40,43, 7,44, 3,37,51,
37,43, 2,19,27,60,56,17,48,47,39,46,21, 4,45,16,
59,51,39,48,50,52,26,50,50,55, 2,22, 1,12, 8,36,
38,58,43, 4,48,45,11, 2,27,58,36,31,24,19,30,31,
16,54, 6,57,25,37,49,55, 5,50,47,37,46,27,53,21,
 7,47,32,11, 3,30,34,13,18,43, 9,16,51,34,15,46,
29,39,51,42,20,22, 4,40,40,35,28,52,29,42,22, 6,
52,32,13,26,42,15,41,28,57,28,54, 1, 6,49,60,59,
46,24,24,27,55, 7,41,25,35,20,17,53,16,57,23, 9,
23,17,58,41,33, 0, 4,43,12,13,21,14,39,56,15,44,
 1, 9,21,12,10, 8,34,10,10, 5,58,38,59,48,52,24,
22, 2,17,56,12,15,49,58,33, 2,24,29,36,41,30,29,
44, 6,54, 3,35,23,11, 5,55,10,13,23,14,33, 7,39,
53,13,28,49,57,30,26,47,42,17,51,44, 9,26,45,14,
31,21, 9,18,40,38,56,20,20,25,32, 8,31,18,38,54,
 8,28,47,34,18,45,19,32, 3,32, 6,59,54,11, 0, 1
I'm sorry it's not in hex and not very well formatted. I hope you don't mind (I can change it if you'd like). It looks like this RNG is subject to the same "round off to the nearest integer" flaw that you pointed out in the NPC movement RNG; you'll notice that there are two 0s and two 60s, but four 1s and five 2s. To refine the master table, multiply this table by 4.25, then round off to the nearest integer. You can probably also find the bin sizes explicitly with a little work, but I'm too tired to figure it out myself right now. I think every 4th bin should have five elements.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
I edited my previous post because it appears that the RNG does span all possible values. Be sure to catch that. Because we're so interested in the RNG, I decided I would search from the other end of things: What are the random numbers being rolled by the game and what do they affect? I played a short game, trekking around World 1, getting into battles, buying various potions, etc. I then did a RAM search, first isolating the sector with the RNG indices, then looking for values that had changed more than once. The RNG is (potentially) rolled by RAM addresses 0xC300 to 0xC37F-- 128 different indices. The significance of 128 is not lost on me, so I suspect that not all of them are actively rolled to determine something in the game. Here are the values that changed and my notes on each of them. Most parenthetical comments are just notes to myself indicating that I'm still not sure how it works. C309: (End of ALBATROS battle, frame 18200, during fade to world map.) C30B: Next mutant bonus earned. Rolled after battles, once per mutant. C30D: Direction NPCs walk. Rolled periodically for each NPC on screen. C31B: How much HP cap is raised by HP200. Rolled whenever HP200 used. (Different RNG for HP400?) C323: Whether the battle can be escaped or not. Rolled once per execution of the RUN command. C325: Rolled at start of battle (twice?). C33B: Random encounters. Rolled once per step (in monster areas only). C343: Rolled at start of battle. C347: How much additional Str. and Agl. earned from STRENGTH and AGILITY potions. Rolled every time STRENGTH or AGILITY potion is used. (These potions offer a random bonus if the character's Str. or Agl. is below a certain point.) C34B: Bonus amount. Rolled whenever a mutant gets a stat bonus. C34F: Rolled once per frame if not moving, about once per step if moving. C352: Appears to affect the animation of the STENCH ability. (Rolled 4 times during GOBLIN battle around 20500 just after using STENCH, following ZOMBIE battle starting at 62550.) C353: Rolled at start of battle. C358: How much HP a POTION restores. Whenever POTION is used. (Different RNG for X-POTION?) C35A: Rolled at start of each battle turn. C35C: Rolled at end of battle. C369: Rolled periodically in town. C36F: (Around 15500, end of battle with ZOMBIE.) C379: Rolled at start of battle. If you're wondering about the specific frames I refer to, here is the movie that I'm working off of: http://dehacked.2y.net/microstorage.php/info/528047701/rngtest.vbm Although I'm interested in the composition of the RNG, from a practical standpoint, I'm most interested in finding the RAM addresses that determine whether a monster drops meat and whether you strike first or the enemy does. I should be able to find them by writing some cheats. Feel free to explore these and other addresses. Are there any other random numbers that are used by the game that you know of and we haven't discussed already?
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
FatRatKnight wrote:
I want to see if it'll even work out.
Sorry, still don't understand. What wouldn't work out? I mean, as long as you know what you're doing, feel free to ignore me.
FatRatKnight wrote:
Four might be a bit much.
Yeah, it's a tough call. I figure whatever battles we spend learning abilities are battles we aren't pumping stats, so if I'm going with a 3-mutant party, I have to fight two additional battles to make up for it down the line. Those two battles will take a few seconds to fight. How does it compare with the time spent picking an additional mutant and giving him commands in every fight? I don't know. We could probably work it out mathematically once we get an idea of how many battles need to be fought (for perfect stats, we'll need roughly 60) and how long those extra commands take.
FatRatKnight wrote:
You lose the slot for a potential monster that I so adore.
Since BYAK-KO can be manipulated with a WHIP, I'm fairly certain that monsters won't be needed. That's not to discourage or disparage your love of them-- healthy skepticism is always good in planning a TAS. You may demonstrate that it truly is faster to use SAW, cutting several rounds off our SEI-RYU and BYAK-KO fights.
FatRatKnight wrote:
Once dead, they can't eat up any more turns, can they?
You mean off the RNG? Good question. They shouldn't, since dead characters generally don't accumulate experience points in RPGs, but there's only one way to be sure. I'm sure it'll naturally arise in one of our test runs.
FatRatKnight wrote:
If it's going to be a "finalized" run, let me get a chance at optimizing it.
Not finalized. Not even close. I think before we start work on a final run, we should and will be in agreement on what strategy to use.
FatRatKnight wrote:
I think I see better how the RNG works.
Yeah, after you pointed out that our charts seem to use the same RNG, I started my own investigation. I'm actively searching for the RNG in the ROM (I'll get to that in a bit), but if I can't find it, my biggest question is about the "completeness" of the RNG. The central question is this: does the RNG turn up every value from 0 to 255? My guess is that the answer is "yes", but results are inconclusive. For example, you have a 127 out of 255 chance of not being able to run from battle but a 129 out of 255 chance of being able to. Either some numbers are accounted for twice, or 127 counts as a "yes" for whatever reason. (The other possibility is that I screwed up in making the table.) Your theory about fractions and rounding off to the nearest integer makes sense to me and I think they probably did exactly that for NPC movements. I don't think that's the complete picture for everything they did, however. I've started exploring the ROM itself-- not with VBA's memory viewer (which seems to be broken as it only has half of the game's information), but with a hex editor, XVI32. With the hex editor, I can finally see what Alex Jackson was talking about when he referred to these ROM addresses. I saw for myself the bins he was referring to in 0x1BF00 to 0x1BF07 (as well as the other addresses he mentioned). These bins indicate two things to me: 1) Not everything in the game is done in fractions, since the valid range is explicitly spelled out in those addresses. 2) It's quite likely that the RNG spans all possible values from 0 to 255. It seems awfully "coincidental" that the bin size for each possibility is exactly equal to the number of instances we see in your Growth table. For example, the bin for learning a new ability is 0 to 34 and-- surprise surprise!-- we see exactly 35 out of 256 instances of learning a new ability. Since I was exploring the ROM in a hex editor, I assumed the RNG is stored in a table somewhere and I searched for that table. What I did was change all of the values except those in the range of 8F-92 to 00. According to Alex Jackson and the bin defined by 0x1BF05 and 0x1BF06, these values define ability shuffling, which happens to be the smallest bin I can discern (if we can come up with more RNG tables, I might be able to find a smaller one). I figured the RNG values would be stored sequentially with one byte per roll. By focusing on the values that shuffle abilities, I knew just what to look for-- at 0x56 is YY, seven addresses later at 0x5D is another YY, and 80 addresses later (five addresses "below" it) is a third YY. I just had to scan the entire ROM for this pattern. Nothing turned up. Barring any mistakes on my part, this means one of two things: the numbers are stored in a different format from what I was expecting (perhaps two bytes per roll or something) or the numbers are actually being calculated by the game. Unfortunately, I don't know all that much about random number generation, so I can't fathom an algorithm for generating them. But that may not matter. As long as we're only interested in deconstructing the RNG for growth, abilities, running, and NPC movement, we can get by with just the bins. Here's a summary of the bins as I understand them: Running: 0 to 126 = N, 127 to 255 = Y NPC walking: 0 to 42 = S, 43 to 127 = N, 128 to 212 = W, 213 to 255 = E Bonuses: 0 to 34 = XX, 35 to 68 = HP, 69 to 98 = Mn, 99 to 116 = Ag, 117 to 134 = St, 135 to 142 = Df, 143 to 146 = YY, 147 to 255 = __ Abilities: 0 to 228 = __, 229 to 255 = YY Or to put it all in one big table
  Bin  |Run?|NPC dir|Bonus|Ability
-------+----+-------+-----+-------
   0-34|  N |   S   | XX  |  __
  35-42|  N |   S   | HP  |  __
  43-68|  N |   N   | HP  |  __
  69-98|  N |   N   | Mn  |  __
 99-116|  N |   N   | Ag  |  __
117-126|  N |   N   | St  |  __
    127|  Y |   N   | St  |  __
128-134|  Y |   W   | St  |  __
135-142|  Y |   W   | Df  |  __
143-146|  Y |   W   | YY  |  __
147-212|  Y |   W   | __  |  __
213-228|  Y |   E   | __  |  __
229-255|  Y |   E   | __  |  YY
I hope I got that all right. (After making this table, I realized that the smallest bin is the one that only holds 127, not 143-146 as I previously thought. While looking for a RNG index that corresponds to that bin, I noticed that there were only five instances of "Run?" being "Y" while "Bonus" is "St" instead of the eight predicted by the bin size. This is a strong indication that the RNG is not complete and it does have some duplicate values and omissions in it. I'm rather surprised by this. I'm leaving my previous comments unedited because I think there is still some valid analysis in it.) Edit: I miscounted. Badly. There are in fact eight instances of "Run?" being "Y" while "Bonus" is "St". I'm back to believing that the RNG spans all possible values. The index where the RNG is 127 is 0x3E. If you look through the tables we've already constructed, you should be able to create a new table based on the table I've constructed above. For example, the first value 0x00 corresponds to N | N | HP | __, which corresponds to the bin 43-68. Any value between 43 and 68 will therefore suffice for that element, so you can set it to, say, 55. Would you like to construct the master table, or shall I?
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Derakon wrote:
I just want to say that I'm enjoying reading about you two tearing this game apart, even though I've never played it myself (only ever played FFL3). Good luck with the run(s)!
Thanks! It's a quirky little game. It's not a good game by most measures, but it has so many nuances that it just keeps pulling you back.
FatRatKnight wrote:
Rather than manipulate the stuffing out of the luck, I'll waste all the time in the world to get the exact luck! I want to see if it'll even work out. Expect extremely long resets if I decide to release such a movie.
Hmm? I've been using my script to manipulate luck and it's never taken more than a few seconds to get the result I'm looking for (even when it's one particular value out of 256). Granted, a few idle seconds is a lot in a TAS, but spending minutes on a reset is out of the question. I'm a little confused by what you're trying to do.
FatRatKnight wrote:
I notice some unusual similarities in a few of our charts
Holy crap, you're right! That's really interesting!
FatRatKnight wrote:
Anyway, I'll keep trying. I've actually been lazy these past few days, and I wouldn't say a thousand rerecords during that time is a lot.
I hear ya. I'm a little wiped out myself, especially since I don't have enough Str. to SAW anything in World 4. Progress has been slow, so I've been holding off posting until I have something substantial to report. Instead, I have a hodgepodge of little things. I realized I should check the effects of ability shuffling when you have less than four abilities. Suppose you have abilities in slots 2 and 4 and C30B is 93 before you fight a battle. Do your abilities shuffle to + | + (as indicated by my current analysis) or to - | + (as would happen if the RNG for ability shuffling is rolled sequentially)? I'll look into it eventually. I found the values of C30B that boost your Str. If you want a bonus of 5 Str., choose 62, 113, or 191 for C30B. For 4 Str., 119, 210, 213, and 236 work. We now know how to boost the three main stats, so we have nine possible values for C30B such that we can get some stat boost. This means we shouldn't have to wait more than a second or so to manipulate luck for most resets. I tried blinding my character and it didn't help at all. I reread the GameFAQs post and noticed that it actually only doubles your Agl. for strength-based attacks. Oops. I'm trying to figure out just what that means and if it would help us at all. Finally, you had wondered if you can skip saving So-Cho's sister. I punched in a new cheat that eliminates random battles so I could test this. It doesn't work. So-Cho doesn't appear at the pub unless you save his sister first. Along the same lines, however, I discovered an interesting route. You don't need to follow So-Cho's sister through the subway and you can instead take the surface path to the subway near Southwest Town. Walk back through the subway until you reach the first stairs and you'll turn around and save her, even though she and the enemies aren't there! Because the surface path requires you to fight SU-ZAKU every few steps and would likely require some luck manipulation along the way to get a new set of runnable battles, it may not be worth it, but be sure to check it out when you next get to World 4. (As a side note, you can pick up the ROM and BOARD without meeting So-Cho and getting the bike, but I can't imagine why you would want to. It almost certainly takes a lot longer.) Now for an update on long term strategy. I've changed my mind yet again. I think it might be best to pick up four mutants and get both P-BLAST and TELEPOR, contrary to what I'd indicated earlier. Both abilities save a substantial amount of time and I think it should offset the time spent conscripting and using the additional mutants. One thing I'm not sure about is whether Agl. affects attack order within your party. So if I have one mutant with 99 Agl. and three with 10, will my pumped up mutant always go first? If so, the other three won't see much action (just the way I like it). My goal would be to reach World 4 with 50 Str., 99 Mana, and 99 Agl. I've thought about how many opportunities we have to fight battles along the way and I'm uncertain as to whether there would be enough to achieve those stats. For that reason, I've considered spamming the ATOMCRABs in SEI-RYU's room. The text that shows up before the battle slows things down a little bit, but it probably would be faster than walking to the next battle. I'm going to wait and think about strategies for another day or two, then I'll probably start that run.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
BYAK-KO defeated!!! Without taking so much as a scratch, either! Man, that was difficult! I won't spoil the strategy for you because it's a real "Duh! Why didn't I think of that?" moment. I realized whipping him would cancel his ICE attack, but it didn't solve all my problems. BYAK-KO has a decent chance (about 1 in 4) of striking first, so if he opens with an ICE attack, I'm screwed. Same goes for SWORD attacks, although it's more forgiving because I can use ARMOR and heal to get around it if necessary. I thought the player's and enemies' actions were on separate RNGs, but it appears I was wrong. By using different attacks, I can manipulate BYAK-KO's actions. One would think you could just use L-SABER whenever he uses SPHERE, but if that causes him to strike first with SWORD or ICE in a subsequent round, then you have to whip him instead and hope that it produces more favorable results. The real beauty of this is that because the RNG is so easily manipulated, we can probably use this strategy in our final run if we wish.
FatRatKnight wrote:
I'm finding it rough to manipulate 0xC30B into becoming exactly 0xF2. In a timely manner, anyway.
That's why I think we should manipulate luck "on the run". Just fight a battle, check if you can manipulate F2 to appear immediately after, if not, take a few steps, check again, if not soon at all, manipulate luck instead to fight a battle that gives you a bonus. It'll work eventually, and in the meantime, you get plenty of stat bonuses for use later.
FatRatKnight wrote:
However, slightly more processing must take place when adding up these digits, since they don't flow so neatly in the more familiar language of binary our computers so love.
Well that was my take on it. The whole hexadecimal stuff is really for the user to fiddle around with-- the computer's doing everything in binary. That means the computer first has to convert each byte from binary to hexadecimal, then check if the hexadecimal representation is valid, then perform some "strange" arithmetic that has to be specially programmed in. So if you gain or lose any money the algorithm should go something like this: •Start with three bytes of binary representing your current GP, three bytes representing whatever you add to it. •Convert each byte to hexadecimal, examining each digit separately. •Treat this string of digits as a decimal number. •To add these numbers, convert back to binary. •Add them in binary. •Convert to decimal. •Treat this string of digits as a hexadecimal number. •Convert this hexadecimal number to binary, storing it in the original three bytes. Suddenly converting an eight digit hexadecimal number to decimal by hand doesn't seem so bad! But if you've seen it used in other games, I really can't dispute that it's probably valid. Maybe my algorithm is flawed or there's some sort of advantage to doing it the way they did (you suggested it's to display graphics more efficiently). Even so, it doesn't make much sense to me.
FatRatKnight wrote:
I wouldn't suggest using items we can't actually buy, but if you can somehow get the cash, then by all means, go ahead and try it.
That was the thing-- I could have bought the FLAME SHIELD before I picked up the L-SABER. I suppose I could have instead replayed my movie and stopped it just before picking up the L-SABER, but it's taking far too long to replay at this point.
FatRatKnight wrote:
Another address for you, by the way:
Heh heh, character stats were literally the first thing I found when RAM searching this game. Guess I forgot to pass that info on to you.
Experienced Forum User, Published Author, Player (79)
Joined: 8/5/2007
Posts: 865
Tristal wrote:
The analysis you guys are doing is awesome.
Thanks! Encouragement is always welcome and I'm glad to see it's not just FatRatKnight and I reading this thread!
Tristal wrote:
I could be really wrong about an idea I have, but if defending a physical attack (Say, BYAKKO's SWORD) is a problem, couldn't you just pick up a shield from somewhere? I'm sure you could manipulate a full block.
I actually thought this was a really good idea. All I really needed to do was use ARMOR once to survive his SWORD attacks, use a SHIELD whenever needed to survive his ICE attacks, and either heal or deal damage whenever he uses SPHERE. It just so happens that you can buy a FLAME SHIELD in the hidden town on World 3. According to RPaulson's FAQ, this shield is supposed to protect against ICE attacks. I bought the shield, took it into battle, used it, and... ... BYAK-KO's ICE attack did the same damage as always, killing me. Oh well. It's possible that "like protects against like", in which case I would need an ICE SHIELD, but that doesn't show up until World 4, so I'm screwed. But now for some tangential good news. I didn't have enough GP in my saved game, so I had no easy way to test it until I figured out how to cheat. I'd previously looked for the address where your GP is stored, but nothing came up. This time, I found it. Your GP is stored in addresses CC8D, CC8E, and CC8F. I encourage you to punch those into VBA's RAM search option before reading onward. Did you do it? It didn't work, did it? The values don't make sense, do they? Okay, now click the "Hexadecimal" Data Type / Display radio button in the lower-right hand corner, then look at those three bytes again. Yes, you're reading that correctly-- the data is stored in hexadecimal but read in decimal. Were the people who programmed this game mental patients? It baffles me that this game even runs! I even did a little test, changing the first byte to AB and the game accepted it. My GP was AB5283. Try to make sense of that! But as backwards as the programming is, the important thing is that we can now manipulate GP in case we wish to test if buying something might help. The other thing I worked on was trying to find the battle RNG. No such luck. I found a handful of bytes that change during battle, but most of them changed wildly unpredictably or far too predictably. It looks like the battle system works on a completely different RNG system (one that doesn't simply increment by 1 every time it's called) and may even have been written by a competent programmer. Even if I could find the RNG, it might not do much good. The battle RNG always resets to a fixed state upon reset, be it soft or hard. Whenever I reset, BYAK-KO opens with an ICE attack that does 104 damage. This RNG can only be manipulated by fighting other battles. Since I'm looking to force BYAK-KO to use SPHERE three times in a row, that could easily amount to fighting 27 or more battles. It might be fewer than that, but it would still be substantial. I'm starting to consider emailing the person behind towerreversed to ask for suggestions. It seems that for almost any strategy, BYAK-KO is the toughest boss. Once we get past him, we can SAW everything while running from random encounters. Of course, bringing a monster along would fell him instantly, but I stubbornly maintain that would be inelegant.