1 2
8 9 10 11 12 13
Expert player (2467)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
Have you tried DKCRE yet? It says that the hidden banana bunch is ID: 9A61, pretty much like the sprites of DKC2; http://www.dkc-atlas.com/forum/viewtopic.php?f=57&t=1532 edit; I have no coding expertise, so this might be completely wrong, but;
while true do 
   for id = 0, 21 do 
   sprt = memory.read_u8(0x0010D6+id) 
      if id < 10 then 
   gui.text(2, 80+id*12,string.format("Sprite %d: %x",id,sprt)) 
      end 
   end 
emu.frameadvance();end
seems to be one of the sprite addresses. If you have the steel keg, for example; d100 = on the floor d700 = holding dd00 = rolling Other sprites will occupy this address, like the mini necky, but I can't figure out the hidden banana bunch values. :( edit2; Again, it may be inaccurate, but I think it have the same ID as a normal banana bunch; 400 = banana bunch edit3; Script updated, the memory address is not two but just one byte. The banana bunch value is actually 4, and they will only show up on the script if you dig them.
I am old enough to know better, but not enough to do it.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
I'm surprised that DKC 101% hasn't been updated in so long. It was one of my favorite games growing up, and I've been wanting to TAS a higher profile game for a while now, so I think I'll be giving it a try! Does anyone know if there is anything more recent out there? Or if anyone is/was working on anything already?
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
Alright! If you really want to get into this, I'm your knowledge base. I have wished to get back to TASing this after starting it 8 years ago, but after restarting it 10+ times it has now been put on hold for the last years. But I really really want to get back to it again, it just hasn't happened because of other project + real life. I would like to work along if you actually decide to pick it up. It would likely be easier to chat to you directly for a couple of things. But I could write up a lot of notes and info anyway! The furthest I got was to complete Trick Track Trek, made with SNES9X 1.43: SMV This is the same run that I uploaded to Youtube, except the smv includes Oil Drum Alley and Trick Track Trek: Youtube One of the restarts got up to Croctopus Chase: SMV I also restarted on 1.51 a few times, but nothing really worth posting... More optimised, but didn't get far. Same goes with the version I started on Bizhawk. But yeah, neither or those WIPs are fully optimised. A lot of new tricks had been found and better ways to optimise things. I'm quite busy the upcoming days. If you want to chat about this (IRC, Skype, whatever) in more detail, I'll be happy to do so. Otherwise I'll just try to add more things in here.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
Great! Let's make this run happen! I don't expect this to be a fast or high energy project, so for now this thread should suffice for collaboration. It wiil take me a few days to wrap my head around the game and try to understand what's going on in your wips. I'll put together a test WIP of the first few levels in my usual fashion and then we can start really optimizing it from there. I usually learn the most from iterating runs anyway. Thanks for the offer to collaborate Tompa, I'm sure this will be a very interactive project, especially since you are already the expert at this game. Hopefully it doesn't go the way of your other attempts. I don't mind revisiting things a few times to get them right, but after that I tend not to look back, so I hope we can keep some forward momentum and not endlessly restart.
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
http://dkcspeedruns.com/Main_Page Also has some information that is not included in any TAS WIPs so far. Such as the Superjump glitch that is used in 2-5 and 3-3 for example. A route change is to skip the second world boss, Master Necky, as bosses don't actually count towards the % counter. Skipping Master Necky saves roughly 20 seconds. I only did a testrun of it, nothing optimised (See it here: SMV 1.51) You can also use the Invisible Barrel warping to skip bosses, but I didn't manage to find a new setup for it to be able to save time for other boses. But thanks to the map warp from W1 to W3, that's the only boss that is faster to skip as of now. And here's the main RAM Watch I've been using: http://www.mediafire.com/download/ox7sp0zprfmcaed/DKCDiddy.wch
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/25373110677269009 OK here is a test WIP of the first 3 levels. I tried to do it just by watching the youtube encode to get an idea how difficult it is going to be to figure out tricks and just how hard this game is to TAS overall. So far it seems to be not that bad, I don't think it will be too hard to make steady progress, especially with bizhawk and taseditor. I put a couple passes into this WIP to at least get a basic level of optimization in it, but it's nothing special. @Tompa: if you can look that over and see how much you can improve, it will give me an idea of how much effort optimizing will take versus just making rough drafts. I also went back to level 1 after level 2 and saved some frames just to see how bad the desync will be. I was pleasantly surprised it wasn't terrible, this game is no Umihara Kawase where it was a complete mightmare. So maybe I can rough draft more of the game while you are optimizing Tompa just to get more of the inputs in there. That is most of the work anyway.
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
Alright, "some" WIP notes! You didn't hold forward at the start of 1-1 when you get blasted out of the house. Which means less speed at the start. When you do the "extra roll" trick, it has to be done on the first half of the roll, otherwise you'll lose speed (Be sure to check the RAM watch I posted!). Sometimes this loss of speed is unavoidable, like when you have rolled to a different platform or after hitting an enemy. At which times you have to make two quick rolls as soon as possible, to avoid losing too much speed. Already at hitting the first Gnawty, you lost 7 frames. You may have noticed that you sometimes get a lag frame when hitting enemies (Lag counter: ON, in case you haven't already :)). Sometimes it is faster to slightly lose some speed so that you'll hit an enemy a frame later to avoid the lag. This lag management is very tricky throughout the run. You can see this being done in my any% TAS: http://tasvideos.org/3936S.html It shows an example where I lose some time when I start the roll, by releasing both right and Y, to avoid getting lag from the Gnawty, which was faster than not lose speed and get the lag frame. There can also be a lag frame when you break a DK barrel. So make sure you check that too and come up with ideas if it could be faster to avoid it. And in situations where you have to wait for something, like a moving platform, you should never kill any enemies. Such as in Trick Track Trek, Elevator Antics and Tanked up Trouble. As even if the game doesn't always give you lag, it will always pause for 1-2 frames. Corner boosts is another thing to look after. For some platforms you roll of, and even run off such as with Expresso, you can get a small speed boost from. They depend on which pixel you land on the corner, pretty much. Here it can also be faster to delay you speed/position in order to get the boost. But it may also result in hitting an enemy earlier to get a frame of lag later on! Meaning many methods have to be tested. The boost itself is very noticeable if you check the ram watch. Other notes about the WIP: You jumped very late after throwing the barrel towards the Rambi box and why not start the roll instantly? The only real reason why I jumped in the other WIP was to change the color of Rambi gold, because of the Animal Token :). If you jump and roll at once, it's just as fast to do it at the bottom as the above platform. Just that the graphic glitch can only be done by jumping. Also: The speed and subpixel position you have when you land on an animal, will be kept over. So if it is possible to land on the same frame, but with a higher speed/sub value, that is prefered. You touched the wall a bit with Rambi when exiting the first bonus, which cost about 2-3 frames. By using Rambi's attack, press Y, to open up the second bonus, you could have jumped into it several frames earlier. When you exit a level or bonuses. If you don't hold right you can roll further into the "exit section". The level won't end until Diddy/Donkey has walked to the far right of the screen. So try to roll a bit further before you press right to exit. The time saved from this differs between the levels. For the first one you can only save like 2 frames I believe. While in other times it can be much higher. This was explained in the submissions of my old TAS: http://tasvideos.org/2876S.html "The right trick"... I can't remember what we actually changed the name to :D. Next level: *Ignoring general things I've already mentioned*. You jumped off the first rope two frames later than possible. You could have kept the roll after the kritters at least one frame longer. Here's also another example of where it can be faster to be slightly slower in order to save time. I'm not sure if it actually applies here though. But in your WIP, you jumped at frame 5197, jumping at 5198 for a single would also work without hitting the wall, while 5199 would not. However, sometimes it is faster to jump for more than one frame in order to roll for one frame longer, despite landing later. In this situation, it was not. But losing a little bit of speed to make it possible to jump at 5199 instead could be faster. It's another thing to look out for while TASing =). For the first bonus, when I TASed it I got it to be equal to roll from to the left instead of the right, but only if it's 100% optimal. I'm actually not positive that left is even faster. But your version lost over 20 frames to it. Last bonus: If you make the extra roll close to the platform your roll won't drop instantly. Doing that + release Y when hitting the Kritter, will end up in the bonus like 2 frames earlier. If you jump out of the bonus, you'll only land further on a later frame. As rolling is faster than jumping, it's better to simply run down to land early for and early roll. Third level: As a barrel boost is faster than to walk normally, you should keep this speed as long as possible by jumping further. Better turnaround management for higher speed to the left when entering the second bonus could have saved some time. For all bonuses that you are shot out from, if you only hold right, not Y, you'll be put one pixel further to the right. You did it in the first level, to avoid landing on the hidden item, but it should also be done at all other similar bonuses, like the second one in 1-3. And why the late roll? One reason could have been to avoid lag from the kritters or a corner boost, but that wasn't the case here. Another example where you could have kept a roll one frame longer: after the triple kritters. The barrel boost into the bonus: With better speed and position for grabbing the barrel, as well as jumping shorter to avoid pushing against the wall, like 7 frames could have been saved. After killing the snakes: Again: Too early of a jump, could have kept the speed longer. General note: When you are starting a roll after landing. Depending on your current speed, and other factors like lag/corner boosts, it can be faster to either release Y for the roll as early as possible (For the roll to happen on the same frame) or as late as possible. Depending on the section, you sometimes have to try all different frame when to release Y. OK! Lots of notes here, I hope this won't discourage you too much :D. A lot of your mistakes can easily be fixed by studying my WIPs in the emulator as well as checking the RAM Watch. Also read my submission notes for my three published TASes as they may include useful information!
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/25461917360020787 Alright, slow going but things are looking a little better now. Thanks for all your helpful notes Tompa. I roughed out the rest of the first level and implemented most of the improvements you noted. Still having trouble on the second bonus in 1-3 though. I'm about 5 seconds behind your 1.43 WIP. But most of that seems to be coming from 1-4. I'm moving much slower but not really sure why, but I haven't gotten that far in analyzing your WIPs so I'm sure I'll improve it once I get there in the comparison process, for now I just wanted to have something to work with. Lag does seem to be particularly challenging in this game. Often when I squash a lag frame somewhere it reappears elsewhere, or in the loading times. Still overall its not as bad as I expected. Slow and steady will get us there. EDIT: Oh, it seems I have 1111 player points : ) For some reason I suspect this was done on purpose since I'm pretty sure I remember seeing 1110 there, so thank you to whoever did that!
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
1. I was able to be ahead at the start up to Rambi. Though because of lag and not-enough-ahead, it ended up being the same frame count to the bonus :/. Crazy amount of possible combinations there to save subpixels while hoping to reduce lag... In the bonus itself I saved two frames of lag by using a different jump pattern. However... One of these frames were lost during the transition to the seocnd bonus and the other one during the next transition. Dumb game rounding down the frames. They could maybe be saved somehow... 2 and 3. I guess you aren't done adding improvements here? Some were added, some were ignored, felt weird while watching =). Anyway, I won't point them out again. 4. Alright, water level notes! The corners are the main concern here. You always want to build up speed (Make sure you study that RAM Watch!!) while going up/down shafts in order to have as high speed as you can. For example, at the beginning, going upwards, you want to go left at once to gain distance before holding right to go towards the corner. Never push against the wall with 0 speed. As with other animal buddies, you'll start with the speed you had when mounting. With Enguarde, in thise case, you also need upward speed by using the B button before mounting. Enguarde movement can also be tricky sometimes. Between each attack you have a couple of frames to choose where to steer it and then either B, down B or up B. It's often needed to combine all of them to end up at the best location for an upcoming corner. This took me LOTS of effort to do in certain areas/levels. Those 3 are the main reason you lose so much time in the level at least. And now it's 2 am and I'm tired :D.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/25682262273489028 I probably should have done this from the start, but I started resyncing Tompa's 1.43 WIP that made it up to world 4. I resynced world 1 just as a test, it went pretty smoothly for the most part. It's about 1 second longer now of course due to longer loading times and a bit more lag, but it's a good baseline. I don't like reinventing the wheel, especially when Tompa put an incredible amount of effort into this, so I think this is a better approach. But I'm still glad I tried on my own, since now I know most of what I'm looking at and how things work. Hopefully things will move a bit quicker from here. I still need to look over world 1 and redo some lag management which is obviously a bit different in bizhawk then snes9x, but I think this is a much better strategy.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
Resyncing Tompa's run is going pretty smoothly. I encountered more lag in world 2, especially in stop and go station, but I don't think there is much to be done about it. But now i have reached the first major decision of the run, the super jump in 2-5. In my testing so far it seems to be slightly faster to not use the super jump. The stutter rolling and general optimization seems to put the original route a bit ahead of the super jump route. But maybe I didn't optimize it enough, care to give it a try Tompa? So far I can't even get it to match the original route in the level, and it gets worse since you only have diddy and not donkey, so at some point even more time will be lost to get another barrel. Here is the version without the superjump (Tompa's 1.43 WIP resynced): http://tasvideos.org/userfiles/info/25710086525932007 Here is my attempt with it: http://tasvideos.org/userfiles/info/25710073228799523 Perhaps there is a substantially faster way to do the super jump, all I did was follow the tutorial video. Once this is resolved, my plan is to resync the run up to world 4, that way I can put markers in the project file so when I start hacking it up to do the Master Necky skip I know where to put things back together.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/25770433474979414 ok got Tompa's WIP synced all the way up to the start of world 5. I think what I'll do at this point is complete the game to have a baseline and a file that actually has a complete run in bsnes. Obviously there will still be a lot to do after that, but I like to have a complete WIP, since the run only gets shorter from there! Quite a few seconds were added in the re-sync process, not surprisingly. It's about 75% loading time frames. EDIT: oops, just realized I quit a bonus too early in world 4. I will fix it in the complete WIP.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
I tried syncing this. I had to write a dumpscript for bizhawk. That emulator is crap for getting input for these games. There is an input event callback but it provides no useful information, or at least it isn't documented. Even then it is doing it by clockout, not by latch. lsnes is immensely better here. Luckily it looks like DKC is a standard autopoll or 1-poll game and doesn't do anything weird so I was able to dump input. I've also verified that I seem to have a v1.2 cart so I can't verify this game :( However it played just like v1.2 so chances are good that this would sync on console. I just need a v1.0 cart to try it.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
Oh awesome! I would love to see a run of this game console verified. Unfortunately I don't have a 1.0 cart either, so I guess I won't be of much help. Hope one turns up though! I'm powering through the rest of world 5 and going to knock out world 6 in the next couple of days mainly following arne's run. It won't be optimal but a good start.
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
I'll get back to helping out with this soon enough... Just too many things going on currently. Two other things I haven't mentioned recently is that it is faster to skip Master Necky, the second boss. And the glitch in Croctopus Chase should certainly be in a new run. I haven't tried 101% TAS-strategies for anything past Poison Pond, so I'm unsure what kind of new strategies and timesaves that can be done compared to Arne's run.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/25838401702180223 Alright world 5 rough draft done. It's nothing optimized and even falls behind the published run in some spots, but at least its in there. @Tompa: yeah I know I need to put in the skip and the 4-4 glitch still, I just want to have a complete rough draft. Next step will be going back to world 1 and 2 and finalizing it. At that point I will work out everything in world 3. No rush, I expected this to be a slow paced developement. Definitely something that won't be done until 2016 sometime.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/26015201639726183 Alright complete game WIP is finally here! It's not particularly good, but it is 101% complete and syncs on bizhawk 1.11.1 I've gotten a bit busy, so things will be moving even more slowly from here. I think my next step will be to implement the Master Necky skip. Then I'll re-sync the whole run and give worlds 5 and 6 a second pass of improvement since they are pretty poor at the moment.
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
So your plan is to keep editing cerrtain parts in and make new attempts at syncing the rest of it...? Sounds similar to what Dooty did with DKC2 and DKC3, which I don't really approve to, at least not for a submittable version =). I'm still very busy myself, so I won't help out with any main TASing yet.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
^ Yup, that's the general plan. Once all the main improvements are implemented though I will be going back over each level individually and making final improvements. Currently I'm just roughing out the run. http://tasvideos.org/userfiles/info/26069510258273969 Ok, master Necky skip implemented. I also made some other improvements mostly in world 6. I guess the next big step is to work on 4-4. @Tompa: what exactly is needed for this and how does the glitch you mentioned work?
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
This WIP has a version of 4-4 and the glitch setup: http://dehacked.2y.net/microstorage.php/info/830458799/Croctopus-Chase-TESTRUN.smv Here is a test of the level only, that Arne made awhile ago, which is far from optimised, but shows beating the level: http://dehacked.2y.net/microstorage.php/info/958603710/Croctopuschase-glitch-doublecheck2.smv There have also been a few finished version in Japanese TASes which you can find on Nicovideo, and I believe in this topic too. None of which are completely optimised to my eyes. It is also possible, as seen in the JP runs, to do this with Expresso. Some testing long ago by Arne showed that Expresso was slower, but more in-depth testing has to be done for the entire level to make sure. Now for the problems to TAS like this: The camera. The camera is set at a very slow pace, which means you outrun it quickly. In order to beat the level the camera has to be close enough for the exit to spawn. Once the exit is spawned you can finish the level anywhere on the right side. As Diddy is moving too quickly, the camera will have a hard time catching up. And it will keep getting stuck because it mainly follows the "intended" path in the level. Sometimes, which I have yet to understand, the camera will speed up quickly and through all obstacles up to (Or close to, rather) where Diddy is. The first SMV is fairly optimised up to a point when Arne couldn't get the camera to keep following, which is where we gave up. Another issue is the enemies. When recording, a camera hack is practically a must. I can upload Arne's tutorial on how to use it. But that means that the hack will show enemies where Diddy is that have yet not been spawned by the real camera. So while you are recording, they will be in your way even thogh when replaying, you can go through them. They can also cause the game to lag when recording, which does not happen when replaying. And enemies on the real camera can cause lag when replaying as well, causing it to desync for that reason too. So those issues combined make this level a huge pain to work with...
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
Yikes, after watching your WIP I have no idea how you managed to get that far, let alone in snes9x. No wonder it was so demotivating. So the camera hack can cause desyncs, and I imagine in bizhawk it will be even more of a problem, hmmmm..... My first idea would be to create a lua hud that makes like a radar display of the terrain that is actually around diddy, regardless of where the camera is. That way we could TAS by looking at that, should be way easier then TASing blind. Of course this would mean a file of the outline of he entire level would be needed. Hmmm I wonder if I could write a LUA script to write points to a file as I hug the walls around the level, this would somewhat automate the process.... Well I'll give this some thought and maybe make a prototype, seems like an interesting challenge anyway. Let me know if you have any other ideas.
Tompa
Any
Editor, Expert player (2215)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
Here's a map of the level, might be of use: http://www.dkc-atlas.com/maps/dkc/4-4 Should just clarify: The lag problem was not major and only happened very few times. Bigger issue was the enemies when using a cam hack. So some kind of cheat code that allows you to travel through enemies without getting hurt, or some code that just disables them. I haven't experimented with either of them.
Editor, Experienced player (734)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Couldn't you TAS through the camera hack version and record the x/y pixel position of the entire route and use it as guidelines for where you're supposed to go?
Homepage ☣ Retired
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
Comicalflop wrote:
Couldn't you TAS through the camera hack version and record the x/y pixel position of the entire route and use it as guidelines for where you're supposed to go?
sounds like a workable idea, but I don't think I'll be using the camhack at all. So far I have a digitized version of the level outline and a working lua script to display it on the screen. It still needs some work and is pretty slow but should be fine for TASing. I'll be trying to get a rough draft of the level going in the coming days. Hopefully I'll learn something about how the camera works along the way.
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Alyosha wrote:
So far I have a digitized version of the level outline and a working lua script to display it on the screen. It still needs some work and is pretty slow but should be fine for TASing. I'll be trying to get a rough draft of the level going in the coming days. Hopefully I'll learn something about how the camera works along the way.
I'm not sure how well known this feature is, but it's possible to use lua to draw outside the game in the black spaces. So that'll help with your display.
1 2
8 9 10 11 12 13