Posts for Suuper

Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
As I said, I don't plan on completing a full game run. I'll fix the save cave exit if/when I do the next level, though. Also I figured that the RNG is changed by water.Either in the overworld or in a level, having the water on screen changes the RNG every few frames. Getting in the 2nd bonus barrel scrolls the camera up, but getting in the right way will have the RNG still changing for a while.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
I'm not sure what the 1 frame improvement at the beginning is from, I didn't use the 105% input file as a starting point or do a detailed comparison. The 4 frames in the bonus area are from a slightly improved strategy. I improved my run, here's the new input file: https://www.dropbox.com/s/yidcmzuayvqr7zj/DCK3%20InputFile.tasproj?dl=0 I saved 1 frame at the start by waiting for the first jump (until the end of the roll), and then doing a continuous roll instead of another fast roll+jump. This changed the lag at the DK coin, and I was able to get 0 lag frames this time, saving 1 more frame. The loading time for exiting/leaving the bananas bonus was also reduced by 1frame. The RNG seed is 4 bytes at address 2. Haven't figured out how to manipulate it yet, though.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
http://youtu.be/xTHyqPU6cm0 I'm not going to be making a full 105% run, but I thought I'd drop this here anyway.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
I want to see it, so I hope he's done too.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
You posted that you and mindnomad were going to do it, so get to work! If you want me to try some individual levels as well, I can, butI'm not going to work on this alone.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
Scepheo wrote:
In the emulation settings, under CPU Emulation Mode (as perfectly demonstrated in the screenshot above) it is clearly stated that "This should not be assumed to be deterministic." I think your next step should be obvious.
I have always used that setting, and never had it cause a desync. Another thing to check is the save you start the movie from. If it's loading a different or updated save file, you could get problems with that.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
Maruiki wrote:
Would you like me to record off of your DSM file or do you want to record off of mine?
I won't be extending any NSMB movies for a while, so do what you want.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
My WIP with above post's strategy: http://dehacked.2y.net/microstorage.php/info/122570830/tas.dsm Bus-Level Timing OFF, dynamic recompiler at 100. With going through all world 1 first...I got a desync. :/ This only goes until beating 14: http://dehacked.2y.net/microstorage.php/info/1020809427/TAS.dsm Bus-Level Timing ON, still using dynamic recompiler. Managed to recover 22 and 23 of above WIP. Movie's first frame is pressing A to enter 22. http://dehacked.2y.net/microstorage.php/info/1728732608/2223.dsm Same settings as last one. All with DeSmuMe 0.9.10.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
Maruiki wrote:
mindnomad and I have decided to make a 100% run of this game. Link to the current WIP: http://dehacked.2y.net/microstorage.php/info/1438492898/tas.dsm Use DeSmuME 0.9.10 with Advanced Bus-Level Timing OFF. Feel free to join us and record off of it.
Will do! I'll send you my WIPs when I get back from vacation. (I have all world 1, the first few levels of world 2, and the first 3 from world 5, though not all in one movie.) My strategy for world order was going to start out much like the any% strategy. -World 1 to cannon. (Only secret goal on 1T.) -World 5 to cannon. (I rage quit from luck manipulation on 53.) -World 8 100%. (You then return to world 1 automatically.) This has the advantages of not entering a world just to exit it often (takes time), has the ideal power ups, skips as much of watching Bowser Jr. carrying Peach as possible, and the small bonus of fewer pictures in the credits. (Going strictly for time; each picture gets 1 lag frame.) (Though this doesn't end with credits, neither would doing the worlds on order. You need to buy the backgrounds with the last stat coins in world 1.)
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
Seems my TAS times haven't been posted here, maybe they should. http://youtube.com/channel/UCUB9FwsmWg2wTyTU2vZBI7Q I have missions level 1, Figure Eight Circuit sub 1:10, and several more awesome vids.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
mkdasher wrote:
I finally figured out how wild encounters are determined. It is also the first time I try to read any game code: First of all, the game will check the number of steps you have taken on grass in that area (or steps in a cave). That number is reseted when you change to anotehr area, and when you have an encounter, but NOT when you battle a trainer. If the number of steps is less than 5 (on grass) or less than 7 (on a cave), then the RNG is called, if RNG value divided by 656 is higher or equal than 5, there will be no encounter, else RNG will be called again. If the number of steps is higher (than 5 on grass, or than 7 on a cave), the first RNG call is skipped. The number of steps is stored in 0x0228FCB8 On the second RNG call, if RNG divided by 656 is higher or equal than 35, then there will be no encounter. Else RNG is called another time, and if RNG divided by 656 is higher or equal than 30 (for grass) or than 10 (for cave), there will be no encounter. If it's lower, there will be an encounter. The value that is terrain dependant is stored in 0x02291838. Just in case the explanation above is hard to understand, I'll write how the formula would look in C code:
Language: c

int terrain_value = readbyte(0x02291838); //On normal grass, terrain_value = 30, on cave, terrain_value = 10. int counter = readbyte(0x0228FCB8); int max_counter = 8 - ((terrain_value * 256) / 10) / 256; //for grass, max_counter = 5, for cave, max_counter = 7 if (max_counter > counter){ counter++; if (rand() / 656 >= 5) return false; } if (rand() / 656 >= 35) return false; if (rand() / 656 >= terrain_value) return false; else return true;
This means that for each grass step, you have a 10.5% rate of finding encounters, and 0.5% in the first 5 steps, and on a cave, you have a 3.5% to find an encounter, and 0.01% on the first 7 steps.
Why so complicated? ...well, it seems complicated with the long explanation, the actual formula makes some sense.
Editor, Experienced Forum User
Joined: 8/6/2014
Posts: 37
mindnomad wrote:
Is anyone still working on this? I finally got a new rig so I'd like to continue this project if anyone's up to help. The latest wip desyncs on DeSmuME 0.9.10 unfortunately, though I haven'tdone much else besides encode the movie with 0.9.8
If you or anyone else is up for the luck manipulation of a 100% run, I can help with strategies and levels. I have some improvements over currently published strats already. http://youtube.com/watch?v=uakgFs5R-zE To answer your comment: what looks like jumping off the wall is actually jumping off a floor. The colored floor extends slightly beyond the moving blocks, allowing me to land on it for 1 frame.