1 2
7 8 9
20 21
Rat
Joined: 7/17/2005
Posts: 23
No character can get a critical hit as long as they are equipped with a weapon that changes their attack command from "Bash" to "Shoot". That means guns, slingshots, and yo-yos. If you want Jeff to crit, you'll have to leave him bare-handed, but since he has the lowest base Offense, it's better to leave him with a gun.
+_+
Joined: 4/29/2005
Posts: 1212
If it helps for getting Criticals and Items, then might it make it easier to get The Sword of Kings for Poo? That would be incredible.
Joined: 5/4/2005
Posts: 20
How exactaly do you test these things? I'd like to help out if I knew what to do.
[URL=http://www.sererre.net/dd/]daily deviations[/URL]
Joined: 5/11/2006
Posts: 71
Update: I haven't been able to nail this variable down much because it turns out to be more complex than I first thought. I've noticed that the number above, while (when forced to a set number) does indeed produce constant results more-or-less. But certain values have much more random results (meaning they're connected to another variable that I haven't found yet). Example: 147 seems to pretty much always give ness criticals and make monsters drop items. However certain numbers would do one of three things: miss, critical, or normal attack. Setting it to 0 was messy, because it made ness miss every hit. Problem was it also forced the monster to ALWAYS do a 'almost miss attack'. This is weird because the value 147 doesn't alter the monster attack pattern... (meaning that it's gotta be connected to some other variable(s)). I can produce criticals, dodges, and item drops through mass re-recording, but only because I'm slowing trying "b once, retry, b twice, retry, b x3, retry". This manipulates luck but isn't really that effective because I can't pinpoint the variables yet. As for testing and discovering criticals and drop rates, I watched memory values. I kept save-stating and testing until I found a critical hit. Once I could reproduce it with a number of button presses, I'd watch variables to see what exactly was changing each press. I was able to keep narrowing it down but I forget how I did it exactly cause it was midnight and I was tired. I found some other values that were changing but I haven't tested them except for the 'monster pattern' number. Sorry I can't be more helpful, I'm HORRIBLE at explaining this kind of stuff. Oh and Kitsune: Yes at this point even without completely understanding the numbers, it'd be pretty easy to force a Sword of Kings to drop because we already know (more or less) how to manipulate the numbers. I have a couple new theories to try when it comes to drop rates... but it's all getting really weird the more I dig into the numbers. Like, GUTS affects your criticals right? Well even if you set it to 255 guts (max) you still only seem to critical 50%~ of the time which is weird. Plus, items are supposed to have drop rates (1/128 sword of kings, or 32/128 cookie) which makes it even tougher to figure out what these numbers do. I guess the whole point of trying to discover what these values do is it would probably save tons of time during a TAS run with battles. Heck with the right manipulation you could (as far as I can tell) LITERALLY have a damage-free run through. In other RPGs this is tougher because you need to rely on miss/dodge, but in this game the monsters usually have an attack that wastes their turn, and they can do that unlimited times. But maybe a 100%-dodge movie might be boring (?). I dunno. *MORE TESTING AWAITS*
Samus taught us that a girl doesn't need brains to be successful. Brains are giant, evil, and vulnerable to missiles.
Active player (277)
Joined: 5/29/2004
Posts: 5712
Well hey, the Pokemon movie is 100% dodge! Decide if you think that one's boring.
put yourself in my rocketpack if that poochie is one outrageous dude
Joined: 5/11/2006
Posts: 71
Wow big update (kinda): Let me start off by saying... RANDOM MY ***! The random numbers are hardly anything but random. I can't quite pinpoint them yet but after some testing I started to notice some huge patterns in the game which blow random out of the water. When I was fighting the police I noticed a really weird pattern for my attacks. I'd hit for 28 five times in a row (retrying with more B-button presses each try). Then if I kept retrying, I'd hit for 29 several times in a row. Then 33 several times in a row. Then miss several times in a row. Then 31 several times in a row. Then (after 10-15 of the 31's) I'd CRITICAL a few(!) times in a row. But this happened more than once. On the first Cop, my bashes were in the 31 string (at the end of this, around the 9th try I got a critical). Then on the 3rd cop, I kept retrying past the 28's and 33's until I started to get a long string of 31's again, and at the end of the 31's (about 15 this time) I got that critical hit again. I also noticed that monsters seem to do this to a certain point. The Titanic Ant would bite me like, 9 times in a row, but after that the next 5~ times would be psi magnets (remember I'm talking about retrying it several times during the same turn, not literally 'the next turn the next turn the next turn'). I still don't know how the variables work into this structure, but it's very confusing. At the same time it's satisfying to see an emerging pattern and now I feel closer than ever to nailing this sucker. I know that this is technically a Pseudo-RNG so it can't be true random, but this goes beyond that with the whole pattern-system. I just don't know how they're linked... On the subject of 100% dodge-movie, after testing I discovered some Pro's and some Con's. The biggest con is that some monsters don't have a 'waste turn attack', which means the only way to get through those battles is either take damage or force them to miss. The miss isn't SO bad, but certain monsters will be using PSI on you (damage psi doesn't miss). Also, certain monsters have absolute-guarenteed scripts that screw this up. Example: when you fight Frank's Machine (Markenstein or whatever), it will ALWAYS do a pattern of 'steam, attack, steam, attack, steam, attack, steam, attack, steam, attack'. The only way around this is to force a 'miss' on it's attack turn. There's no way around this problem unless you can kill them in 1~ hit which can't happen (even with a critical smash) unless you power-level. I suspect other monsters later in the game have similar unaviodable scripts, but I'm not sure. Sometimes a monster will act like it's ONLY going to do a certain attack, but in reality it's just part of a long pattern-string that can be bypassed with enough b-button presses. Well that's the CONs, what about the Pros? The biggest pro is that you can (from what I've been able to do) have a 100% monster-free map. The monsters that appear on screen can be manipulated quite easily just by going back-and-forth until they don't appear anymore. I was able to walk through the entire first dungeon up to the ant without having a single battle. And the bosses & forced fights give enough exp that there's pretty much never a need to power level or get into random battles. That's great! Also, because you can USUALLY force a battle to be 'perfect' (no damage), you can pretty much skip all healing food (loading up on psi-recovery instead), skip all armor (since you won't get hit, but status-protecting armor could be great to negate certain attacks), and fight monsters much much lower than you should really be able to. I was able to take out the Titanic Ant at level 4 (and I was only that level cause I had been screwing around earlier with testing). This also means that money won't be much of a problem since you're just buying weapons and skipping expensive armor. On a closing note, maybe there's more hope for a TAS afterall. I said above that certain monsters don't have a 'waste turn attack'. The 4 Police in the station only have Attack and Chop (that's it). But I found that I was able to SMASH them for a 1-hit KO (if they got their turn first, I forced them to miss or dodge). So as the game goes on, with more party members and stronger attacks, maybe this won't be a problem. Time issues aside (pretty long game), I think a TAS run is totally possible with the right manipulation. *Extra Update* After viewing starmen.net (big database of earthbound) I found that each monster has a 'pool' to choose from when attacking. The reason sometimes that monsters seem to do nothing way more than they attack (clumsy robot, or belch after eating fly honey) is because they have duplicates in their attack list making it more likely for them to pick that. By checking each monster you fight, TAS becomes easier to know what to expect and what to aim for. Also, according to the site, every monster has a 25-100% chance of being hit with a status effect. EVERY monster, including pokey, gigas, the sanctuary bosses, etc. Landing a 25% paralysis or flash on a boss could make a huge effect in the outcome of the battle, even if they constantly attack you. Heck if this is true, you could keep pretty much anything asleep while you kill it. This could be a great work-around when it comes to scripted battles (for example it lists Frankystein II as having 50% to hypnosis, so I guess you could sleep him for the battle and whoop him up, thus avoiding his guarenteed attack turns?)
Samus taught us that a girl doesn't need brains to be successful. Brains are giant, evil, and vulnerable to missiles.
Active player (282)
Joined: 3/4/2006
Posts: 341
I generated a few hundred random numbers, and there were no blatant patterns like the one you described. This leads me to conclude that the patterns are a result of the game deciding how many times to call the PRNG function before . This could be confirmed by checking the values in 7e0024-7e0026 after each attempt For reference, the PRNG function is: Multiply 8-bit 7e0024 and 8-bit 7e0026 and store in a temporary variable. Add 109 (0x6D) to 7e0026 and store in 7e0026. Take bits 2-3 of the product as a number between 0 and 3, and add to 16-bit 7e0024. 16-bit rotate right and store in 7e0024. Return bits 4-11 of the product. (bits 0-1 and 12-15 are unused) Setting 7e0026 to 147 will cause the second random number generated in each frame to be 0. By your analysis, this random number affects critical hits and item drops. Similarly, setting it to 0 will fix the first random number each frame, which appears to determine whether you hit.
Joined: 5/11/2006
Posts: 71
Woah I think my brain just exploded. I'm going to absorb this while I eat lunch. Thanks Nitrodon, both for helping and for melting my brain! :) ...must absorb info Update: I just realized how stupid I am. Seriously, after trying to understand this new info, I have to admit that I simply can't. :O I understand (in theory) what you're talking about, but I don't have any clue about 8-bit or 16-bit or 'rotating right'. :-( I think you have some fantastic info, but sadly I'm not smart enough to use it. Maybe someone else here can take this and run with it. I KNEW that this can of worms would be too big for me to handle. Oh well, back to eating lunch!
Samus taught us that a girl doesn't need brains to be successful. Brains are giant, evil, and vulnerable to missiles.
Joined: 11/16/2005
Posts: 46
Wow, that's some good stuff Callmewoof. I'll have to take a look into it.
Joined: 4/29/2005
Posts: 1212
Well, damn. If I knew how to get these Values to work, instead of them popping up as Cheat Codes, I'd be able to do a TAS of this myself. But, I'm not worried about doing a TAS. ;3
Editor, Experienced player, Reviewer (966)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
Callmewoof>I don't have any clue about 8-bit or 16-bit or 'rotating right'. :-( I think it means shift bits right, and move least significant bit to most significant bit. Example: You have a 8-bit number: 01110001 (decimal 113) If rotated right once, it becomes: 10111000 (decimal 184) Feel free to correct me, my assembler programming is rusty.
Active player (282)
Joined: 3/4/2006
Posts: 341
You can ignore the phrase "8-bit", since I only used that to distinguish it from 16-bit values. The only time I used the phrase "16-bit" was in reference to 7e0024, which means the number (7e0025)*256 + (7e0024). After adding the portion of the product to this number, you rotate the entire number right by one bit and store in the same place. That is, if the relevant bits of the product are zero, then 0100101111011001 (7e0025=75, 7e0024=217) becomes 1010010111101100 (7e0025=165, 7e0024=236) One slight caveat I didn't mention (and is not in the definition of rotating right) is that if the addition causes the carry flag to be set (i.e. goes over 65536), the highest bit of 7e0025 will be set anyway, regardless of the content of the lowest bit of 7e0024. This is likely intended to ensure that 7e0024 and 7e0025 are never both zero, which would zero all future random numbers if it occurred. I hope this helps you understand it better.
Joined: 4/29/2005
Posts: 1212
I don't understand all of that Technical talk I'm afraid. So explaining it to me won't do a lot of good. ;3
Joined: 3/30/2006
Posts: 12
My brain just exploded. True story. But I like how you're all diving deeper into one of the greatest games of all time, hopefully setting up for a good TAS. I'll be waiting. I swear.
Currently working on: (All Consoles) Improving my TAS abilities (GBA) Castlevania: Aria of Sorrow Future runs: (SNES) Ys III: Wanderers From Ys
Joined: 4/16/2005
Posts: 251
Hmm, it's late and all, but I just hacked that algorithm into a file and ran some experiments on it. If I don't have a bug in it it has a period of ~1mio depending on starting values (and surprisingly stable at that), but it tends to get very short patterns after a couple of 1000 iterations. These patterns are about 10-20 values long and could be related to what Callmewoof found and the settling time could prevent a memory watcher like Nitrodon from finding anything before the game ran a couple of decisions. Well, it's 3am and I don't trust my implementation, but it would be funny if the game reduces itself to a RNG series with a period like that.
Joined: 5/15/2006
Posts: 19
Infinite uses of Rock Candy sent in by Cactuar What you have to do is have the Rock Candy item on either of the two bottom slots on the inventory of any character.Now if you use a seasoning while the Rock Candy is on a bottom slot,it won't go away!You can use this trick to gain insane statistical bonuses at each level up!I've had Ness get more than 1000 HP with this trick!
I found this while reading http://kontek.net/davidwonn/. I don't know anything about Earthbound, but usually fast leveling + luck manipulation = Fast TAS. If this is of any use, good, if it isn't, well... I tried :P.
Active player (282)
Joined: 3/4/2006
Posts: 341
The patterns Callmewoof noticed are due to how the game randomly selects targets. It generates a random number, uses the bottom 3 bits to decide a target, and repeats until the target chosen is valid. In this way, starting the random number sequence at different points may end up with the same random seed after choosing targets. As for patterns in the PRNG itself, I only generated 1000 numbers and didn't see any.
Joined: 11/16/2005
Posts: 46
I just realized something. Wouldn't it be easier to figure out what the game is doing exactly by looking at the rom? We have the rom, we have an enumulator (with source code), so shouldn't it be easier to find the memory addresses used in the algorithm there instead of looking at what changes in memory?
Joined: 4/16/2005
Posts: 251
The problem is that a disassembly of a SNES game is.... a lot. Have you ever taken a look into Bisqwit's commented Mega Man disassembly?
Joined: 11/16/2005
Posts: 46
Well, you wouldn't have to decode all of it. Besides, I was thinking more in lines of modifying the enumulator to have a debugging feature where you can halt the game at any point and have the enumulator display the assembly at that point. Actually, is there any enumulators that can already do this? It sounds like an obvious feature to have...
Active player (277)
Joined: 5/29/2004
Posts: 5712
Is "enumulator" a real word?
put yourself in my rocketpack if that poochie is one outrageous dude
Joined: 5/3/2004
Posts: 1203
Enumulably.
Joined: 5/11/2006
Posts: 71
Just wondering, I haven't made really any progress with this, and the more that I read about the details the more I don't think I can make any new progress. Putting that aside, I did some light testing (not recorded) to see whether I was right in saying that a full Dodge/Miss tas would be possible, and to see if it was possible to avoid every single non-required battles. I'm happy to say that it can be done, at least so far as I've been able to tell. The hardest part would be early in the game when you don't have all your status psi or PP-restoring items. But I was able to start a new game and get all the way to the 2nd city with only fighting the essential battles. Not only that, I did it without taking any damage (or equipping any armor lol). I had previously thought that Frankystein was difficult because of his pattern, but I discovered that with Hypnosis (which you have at this point guarenteed) CAN sleep him, and the Titanic Ant, and in fact anything in the game. Not only that, but you can smack em while they sleep and there's a small chance they won't wake up (100% with a luck manipulation, of course). So you can bash em while they sleep until they die. But it got me wondering, would a 'Never Takes Damage' game be better, or would, so to speak, 'Takes Damage to Save Time' be better? Because of the way the game's input controls manipulation (as opposed to frames, mostly), some turns would require a lot of Cursor Roulette and might(?) be boring, when sometimes you could just take a hit and smack em dead and not waste time waiting for that perfect 'they miss you kill' moment. As far as time/speed, taking damage would indeed save time, but might make the runthrough lose that mythical glow it could otherwise have. I'm not really considering making a TAS because I'd lose patience 1/3rd through, but I thought that this is something that should be considered and perhaps voted on?
Samus taught us that a girl doesn't need brains to be successful. Brains are giant, evil, and vulnerable to missiles.
Active player (277)
Joined: 5/29/2004
Posts: 5712
It might be too monotonous to avoid all damage. I'd say taking hits could make the run more exciting as well as shorter because of the risks involved.
put yourself in my rocketpack if that poochie is one outrageous dude
Joined: 2/12/2006
Posts: 432
Maybe a little damage, but not much. I don't think it would make leveling worth it. If I'm right, it'll make route planning much easier (especially since we wouldn't have to deal with that stupid rock candy trick).
1 2
7 8 9
20 21