1 2
5 6 7 8 9
Joined: 10/3/2005
Posts: 1332
Text is pretty slow as it is in this game, IIRC, so I think a 5 frame delay for each page of text might be appropriate. Especially if you keep track of exactly how many frames you gave up and report it in the submission text.
Player (199)
Joined: 12/3/2006
Posts: 151
Aaaaand I'm done! The Doom Island battles took me a while to optimise, but I'm really satisfied with the result (especially the Daos fight). Also, turns out I overestimated the game completion time a bit, so it will be significantly faster than 3:10. That's all I'm gonna tell you :). You'll have to see it for yourself when this movie appears in the Submission list in a day or two (since it'll take me a while to go through the entire movie again, making notes for the submission text). By the way, I decided to not pause at the final dialogue since I figured most people actually watching this movie would be people who played the game, so they know the ending. Thanks for the feedback regardless Dromiceius. Alright, a final question. Currently I ended the movie input when the dialogue goes into auto mode. However, I was wondering if the reference dialogue to Lufia 1 after the credits (and also after 'The End" has appeared) should be included as well. If so, I'd need to extend the movie input by quite a bit (5 minutes or so). So, the question is, should this be included?
Active player (493)
Joined: 11/14/2004
Posts: 169
Location: Mirabel, Québec, Canada
About the level 0 glitch: - It only works when you have at least 2 characters (the earliest you can do it is when you get Tia) - It only affects the character in the second slot (sets level 0 and 0 HP), but you can switch positions to do it to any other character - The stats only change once you save and reload the game (so the glitch can't be used for the Ancient Cave) - The stats are also random, and often much higher than 999 (see the near empty HP bar here). I remember doing up to 4000 damage with normal attacks once, and only 100 another time ... I'm sure it can be manipulated. - Level 0 characters are nearly invincible ... all enemy attacks will miss, but instant death moves can still hit. - Once you do it, you're stuck at 0 forever, even if the "next level" EXP drops to 0 - The glitch also seems to cause a delay (3-5 seconds) whenever the game loads a level 0 character's stats ... like on save/load or when winning a battle Then you could ignore all leveling and the bosses would be really easy ... but unless it saves a lot of time, a level 0 run probably isn't going to be very interesting ...
Former player
Joined: 4/6/2006
Posts: 462
A day or two? But mommy, I want to see it now! Can I also point out there are an obvious flaw in your run. You get the Pumpkin Jewel in the Ancient Tower, but you didn't use it in any of the Idura battles. Idura is hard-type. Head Attack equipped on Dekar would be much more devastating than Gladius with Holy Energy (4x to 3x). You could also equip a stronger weapon in conjunction with Pumkin Jewel in order to further boost Head Attack's damage. Otherwise, I think grabbing some of the chests in order to "manipulate luck" was kind of silly. I believe there are certainly other ways in order to manipulate luck without spending so much time. I look forward to seeing the rest of your run.
Active player (287)
Joined: 3/4/2006
Posts: 341
Halamantariel and I have been working on a test run in secret, but since Gunty made a full TAS, we decided there isn't much point in keeping it secret anymore. The test run reaches Gratze before the last soldiers fight, and we would probably reach the tank just over 3 hours into the run (PAL, so around 2:30 equivalent in NTSC). Based on the posted WIPs, we're nearly even with Gunty's run in Dankirk, but differences between PAL/NTSC loading times make an exact comparison impossible. http://dehacked.2y.net/microstorage.php/info/3650/Lufia%20II%20-%20Rise%20of%20the%20Sinistrals%20%28E%29%20%5B%21%5D.smv We plan to do an improved run sometime in the future. Particularly, we didn't get some items that we should have (e.g., Anger Brace, Pumkin Jewel) and some fights could be improved.
Player (199)
Joined: 12/3/2006
Posts: 151
Meh, I started making some notes of the run, but it turned out to mostly "I do this to manipulate luck so I can do that", which probably isn't very interesting. So I guess I'll just point out the hard parts and possible flaws in the run. Acmlm: That's some really useful information, but I'm afraid I will not be doing a level 0 glitch run soon/ever. Like you pointed out, the glitch causes some really ugly delays and I don't really have to level up anyways. On top of that, it would be less interesting watch probably. erokky: It's true that grabbing the Pumpkin Jewel was kind of useless, but I don't think I could've predicted it. The reason why I didn't use it at Idura is because I don't need it. Yes, Holy Energy does only 3x damage where Head Attack does 4x, but it still takes as many attacks to finish him off. Not equipping the Pumpkin Jewel and using Holy Energy turned out to be faster. The same thing happens at the Tank battle. Using Head Attack does more damage, but not enough to make a difference. Also it would screw up my luck manipulation for that fight (which is close to perfect now). The thing why grabbing chests affects luck manipulation so much is because regular actions, like swinging your sword, shooting an arrow, only pull one or two numbers from the RNG. Grabbing a chest however pulls a few hundred (!) numbers from the RNG. Nitrodon: Now, that is some good news. I will watch it right away (or, after I submitted my movie) and comment it. I'm really curious about the tactics/luck manipulation you used. Edit: I watched it and I'm really impressed. I can't believe I overlooked the Gloom Jewel like that. Also, nice luck manipulation on the Eagle Rock and Perish on the Lions. Next to picking up the Anger Brace for example, I didn't notice any big time savers (or maybe the Lizard Blow?). Great job :).
Player (66)
Joined: 3/29/2005
Posts: 229
Location: The boonies.
K, well, I asked this on the submission topic too, but I just have to know: has anyone figured out what the hell goes on in the Ancient Cave? It's not humanly possible to actually optimize that unless it's possible to tell what the game does there. Haven't watched the whole thing of Gunty's run, but I like what I've seen so far. Looks a lot cleaner in the early parts of the game, if nothing else. ;)
If life were an RPG, I'd be an NPC.
Player (199)
Joined: 12/3/2006
Posts: 151
I already answered in the Submission forum topic, but I suppose it's better to discuss it here. Some basic things about the RNG I found: The RNG produces 55 number between 0 and 255 (or 00-FF) at a time. The initial values are always the same when starting the rom, and cannot be manipulated at all. These random numbers are stored in the memory addresses 7E0521-7E0557. Everytime a random number is 'used' by the game, an internal counter, located at 7E0559, increments by 1. This counter starts at 0 and if it reaches 54 all random numbers have been used once. If another random number is requested, the RNG produces a new set of 55 random numbers. The way this happens is through bitwise XOR operations. random number 'i' becomes 'i' XOR 'i+31' and so on. These random numbers seem to determine most of the randomness in this game; world map encounters, the way monsters move in dungeons, level up stats, how hard you hit etc. In the case of the Ancient Cave I'm guessing these 55 numbers define a set of possible next floors. If I recall correctly there were about 6 different floors depending on the frame you entered the stairs, right? If that's the case there should be another memory address containing a counter between 0 and 5, which increments every frame. That's what I can come up with right now. Perhaps next week when I run out of things to do (my life is so hollow since I finished the run :p) I'll try and find out.
Player (66)
Joined: 3/29/2005
Posts: 229
Location: The boonies.
Gunty wrote:
If I recall correctly there were about 6 different floors depending on the frame you entered the stairs, right? If that's the case there should be another memory address containing a counter between 0 and 5, which increments every frame.
Oh, if only life were so simple. =P I think all the info is still buried somewhere in this topic, but here's a quick recap: The floor layout and to a lesser extent the treasures contained within the chests on the next floor are determined by what floor layout you are currently on and how long (in frames) you have spent in the dungeon total when you enter the stairway. Moost floor layouts only have one set of treasures contained within their chests, but for reasons I cannot fathom it is possible to get the same layout to produce a blue chest on one particular frame of entry and on no others, so that's not a guaranteed thing. (Spells are another exception to this rule, for what that's worth. A chest containing a spell has its contents randomized upon entry, such that different frames of entry will always yield a different spell.) The number of subsequent floor layouts is not static. Some layouts have a potential of 30 different subsequent layouts, some only have 4. To make matters more difficult, some layouts have a window of entry several frames long, while others can only be accessed on a single frame. Generally speaking, if you've tested 40 frames in a row (in terms of entry point), you've probably exhausted the potential layouts and dropsets (and combinations thereof) of the floor you're testing. As a general rule of thumb, for any floor N, there exists an N' with the stairwell very close to the entry point, and there exists an N'' with a blue chest drop. Though testing every possible N'' for a given N takes a very long time. (There exist at least 280 N'' for every N; usually considerably more.) At least, that's how I remember it. I have some notes, but they're not very complete, and it's been over a year since I've really done anything with this for more than a few minutes.
If life were an RPG, I'd be an NPC.
Player (199)
Joined: 12/3/2006
Posts: 151
Hrmm, that does sound a bit more complicated than I figured. I'll try and have a look at the disambled ROM code again, if I have time.
Active player (287)
Joined: 3/4/2006
Posts: 341
The cave is actually randomly generated from randomly placed rooms of random sizes. The frame-dependence in this randomness comes from the lower 5 bits of a counter at 7E0040, which determines how many numbers to waste before generating the next floor. The ancient cave routine is at 83/9E31-9F3E, and the routine that randomly generates a floor is at 83/9031-99C7 (called from 83/9F32). These addresses are exactly the same in the (U) and (E) ROMs.
Player (199)
Joined: 12/3/2006
Posts: 151
What Nitrodon said is indeed true. When generating the next floor the first 5 bits of the counter at 7E0040 determine the amount of 'wasted' random number pulled from the RNG before continuing with the routine. That means there should be 32 different time dependant floor layouts. I tried looking further into the code but I'm afraid my knowledge of assembly code (based solely on a few online guides) isn't sufficient to actually predict how the next floor will be generated. At least you now know what determines the randomness.
Player (66)
Joined: 3/29/2005
Posts: 229
Location: The boonies.
Hrmmm... well, having an upper-bound is nice, and it's a little lower than I had been working off of. It still means there are 2^10 N'' for any given N, and it doesn't explain why some layouts are identical except for their dropsets. But any information is nice. (Where the hell were you guys when I hit that brick wall in the first place two years ago? =P) While I'm here, any further work on your run, Nitro?
If life were an RPG, I'd be an NPC.
Active player (287)
Joined: 3/4/2006
Posts: 341
The reason that some are identical except for their drop sets is due to the fact that the drop set (8 chests, regardless of how many appear) is generated first. Some things, such as whether there is an Iris treasure or Providence, or how many times a certain set of 9 items (which appear in 22% of chests) appears, affect the amount of numbers used to generate the chests, and hence makes some sequences of numbers end up generating the same floors. This appears to be the order in which things are generated * Whether there is an Iris treasure * Whether there is Providence (only if no Iris treasure) * Contents of chests * Rooms * Doors between rooms * Maxim's starting location * Exit stairs * Treasure room; existence, location, and generation (room with 12 enemies and any treasures not in the rest of the floor) * Other enemies * Other treasures and that's as far as I got in my disassembly notes. As for Halamantariel's and my run, we actually haven't done any work on the run itself since November for various reasons, mostly coming back to manipulation of Dark Force against the last group of soldiers without a useable RNG state nearby.
Player (199)
Joined: 12/3/2006
Posts: 151
Wow, impressive, I'd have never been able to get all that information from that code. Do you by any chance have some notes on how item drops are determined as well?
Active player (287)
Joined: 3/4/2006
Posts: 341
Gunty wrote:
Wow, impressive, I'd have never been able to get all that information from that code. Do you by any chance have some notes on how item drops are determined as well?
For any attack, the RNG is used 21 times for that attack per target. (I know what all 21 do, but most are irrelevant for most actions.) Additional numbers may be used before all of these (for targeting, including attacks which always target all enemies) and after all of these (for the animation), but we'll just focus on the ones that change the effect on a certain target. After those 21, if the enemy dies, can drop an item, and no items have been dropped this turn, an additional number is generated. For Camu (for example), this number gives a 12% chance of continuing with the attempted drop (low number = drop). After that, if the first number succeeded, it generates a number 0-3, and a 1 (i.e., 0x40-0x7F) makes the item drop. In a multi-target attack, this occurs before the effects on the next enemy are determined.
Player (199)
Joined: 12/3/2006
Posts: 151
After that, if the first number succeeded, it generates a number 0-3, and a 1 (i.e., 0x40-0x7F) makes the item drop. In a multi-target attack, this occurs before the effects on the next enemy are determined.
This seems to be the missing link I've been looking for all this time (also the reason my calculated item drop chances were way too high). I'll definitely have some fun with this. Thanks!
Player (66)
Joined: 3/29/2005
Posts: 229
Location: The boonies.
Y'know... if the frame counter only determines how many numbers on the RNG are burned, shouldn't calling the RNG give you a new set of 32 time-dependant N's? Or at the very least, shouldn't exhausting the current "list" on the RNG do that? I.e: if I enter an unecessary battle, will that change the potential of the next floor? Hell... I hadn't considered that possibility.
If life were an RPG, I'd be an NPC.
Active player (287)
Joined: 3/4/2006
Posts: 341
quietkane wrote:
Y'know... if the frame counter only determines how many numbers on the RNG are burned, shouldn't calling the RNG give you a new set of 32 time-dependant N's? Or at the very least, shouldn't exhausting the current "list" on the RNG do that? I.e: if I enter an unecessary battle, will that change the potential of the next floor? Hell... I hadn't considered that possibility.
Yes, but slashing a bush (64 RNG calls) or vine (82 RNG calls) would be much faster.
Player (66)
Joined: 3/29/2005
Posts: 229
Location: The boonies.
... Why does slashing a bush call the RNG? Nevermind the even more confusing question of why slashing vines makes more calls than slashing a bush.
If life were an RPG, I'd be an NPC.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
quietkane wrote:
... Why does slashing a bush call the RNG? Nevermind the even more confusing question of why slashing vines makes more calls than slashing a bush.
Possibly, so that the code doesn't need as many "if"s and hence, less branch points for unit testing and hence, faster production.
Joined: 3/7/2006
Posts: 720
Location: UK
Great job so far on this TAS! The luck manipulation is, as ever, astounding. Also, when it's submitted, I suggest the screenshot be of "What, this little blue pebble?" :)
Voted NO for NO reason
Former player
Joined: 9/1/2005
Posts: 803
LagDotCom wrote:
Great job so far on this TAS! The luck manipulation is, as ever, astounding. Also, when it's submitted, I suggest the screenshot be of "What, this little blue pebble?" :)
You're lagging, LagDotCom.
Joined: 3/7/2006
Posts: 720
Location: UK
I meant Nitrodon & Halamatariel's version, actually. But thanks.
Voted NO for NO reason
Player (105)
Joined: 1/30/2005
Posts: 564
Location: Québec, Canada
You know, the main reason why I can make TASes such as Earthbound, Illusion of Gaia and in a near future Lufia II is thanks to Nitrodon. As he masterfully showed everyone here, he's a little code ninja :) He can read SNES ASM and understand exactly how things work and hence how to manipulate litteraly EVERYTHING, assuming he has the will to do so. Nitrodon is really a great teammate to have for a TAS that requires a lot of luck manipulation. And we both like RPGs, so we're a great team for this. I tip my hat to you, Nitrodon. I really appreciate "working" with you :) (This is a little off-topic, I know, but he's the only reason I even consider TASing Lufia II) To be back on topic, at the beginning of our test run, we wondered if we were going to go to the Ancient Cave or not. That's one of the reasons why he looked into that part of the code. We soon found out there was no need to, but that's another story. When we came around that part of the game where we have a choice to either go to the ancient cave or go on with the adventure, we took a little break (maily exhaustion from TASing almost non-stop). He took that opportunity to look deeper and deeper in the ancient cave code. At least .. that's what I think happened :) I could be wrong. Correct me if I am, Nitro.
1 2
5 6 7 8 9