Player (84)
Joined: 5/31/2013
Posts: 17
So, this is a game i love, and i've begun some TAS testing on it, although at the moment it's more about getting the hang of the tools since i'm new to TASing myself. I wanted to know if anyone had any knowledge on the game that could help me? I know the game overall pretty well since i was already playing it 10 years ago, but there might be specific tips i don't know about. And considering it's a pretty unkown game, it's not that easy to find out information ^^ I'll try putting a first work of the first stage, while i keep getting around the game as a whole.
Player (84)
Joined: 5/31/2013
Posts: 17
Hey again guys! Seems my topic does not have a lot of success, but i'm not surprised considering it's a pretty unknown games. Anyway, i have done a test work with the first level, and it seems to go pretty good for the moment, although i think it's still improveable, and i still have to take a closer look at the RAMWatch to get numbers and assure i can't go faster. But i still have to learn how to use the tools efficiently, i nearly only use frame advance right now. I posted it on youtube to be easy to watch, but i can give the emulator movie file if it can help (although i dunno how to easily give that ^^) http://www.youtube.com/watch?v=nvvKpmokv9M Any input from you guys about whether i'm on the right path or not would be nice, so that i know if i still have to correct things or think of doing more of it!
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
Hi, you should use http://dehacked.2y.net/microstorage.php to upload and share input files, it's designed just for that purpose. Some things you should do, if you haven't yet: 1) Try all illegal d-pad combinations (L+R, U+D, L+R+U... seven in total) in all player states, menus and so on you can think of, to see if you can find any oversights/glitches. 2) Use RAM watch to find player X, player Y and (if they exist as RAM variables) player X velocity and player Y velocity. (Note that similar RAM addresses tend to be grouped close together, so you can try looking for hp, score or one position variable and peering around it in memory for other useful addresses) 3) Calculate how fast the character moves in every mode of movement you can think of (walking, jumping, uphill, downhill, are there any frames of movement lost when jumping/landing, etc) The site has some excellent resources on how to use memory search/watch here: http://tasvideos.org/MemorySearch.html http://tasvideos.org/EmulatorResources/RamSearch.html http://tasvideos.org/EmulatorResources/RamWatch.html
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Player (84)
Joined: 5/31/2013
Posts: 17
Thanks for the links =) i'll take a close look at the ramwatch, even though it seems jumping and all still keeps the same velocity, i'll make me sure of it. One thing i especially want to see is how slopes work and how i can optimize it. Other than that, does it seem right for the moment? Here's the movie file http://dehacked.2y.net/microstorage.php/info/299277112/Zool%20%28U%29%20%5B%21%5D.gmv
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
As someone who hasn't heard of this game before, it looks right from my newbie perspective. It doesn't seem like you go too far out of your way for any candy and you end on the dot with the right amount. Can't offer more than that atm, good luck with the TAS!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Editor, Reviewer, Experienced player (969)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
Hey Ploplo. Sorry I missed your topic when you posted it. If you're still around and working on this, I can offer my help. I have played through this game a few times, but like you, that was quite a while ago, so I don't remember any specific tips at the moment. If you want feedback on your work in progress, I can do that, just upload the movie here or talk to me via PM. :)
Post subject: zool wip1: YouTube
Joined: 3/18/2006
Posts: 971
Location: Great Britain
Player (84)
Joined: 5/31/2013
Posts: 17
Sorry for the being missing in action guys! Had stuff to do during summer, and college since September ^^ I think i'm gonna work on that project again now, just still have some searching to do for the RAMWatch, couldn't decide if there was subpixels values and all. Also while i'm here, gonna ask if any of you has an idea: basically a big part of the choice for routes inside the levels is to get enough... "objects" or whatever they're called, since you're pretty much obliged to lose time at some points to get them. But another way to get them is sometimes, when you kill an enemy, instead of expldoing into the 5 little balls, he'll explode into 5 of those objects, and i'm sure being able to manipulate that could be useful at some point. The problem is, i have no idea how it works. From all i've played, i'd assume it's random, in which case i'd have to manipulate it "manually" (if you see what i mean... not too used to all the TAS vocabulary ^^). But there might be some other reasons besides that. I'm gonna continue to search that anyway, while looking for routes.
Player (84)
Joined: 5/31/2013
Posts: 17
So i've worked on level 1-2 today, seems to be going fine, but i'll wait to do more testing before going farther right now. http://dehacked.2y.net/microstorage.php/info/1674363157/Zool%20WIP%201-2.gmv
Joined: 6/24/2007
Posts: 119
looks good
Post subject: zool wip2: YouTube
Joined: 3/18/2006
Posts: 971
Location: Great Britain
Link to video
Ploplo wrote:
So i've worked on level 1-2 today, seems to be going fine, but i'll wait to do more testing before going farther right now. http://dehacked.2y.net/microstorage.php/info/1674363157/Zool%20WIP%201-2.gmv
Player (84)
Joined: 5/31/2013
Posts: 17
I should have told that i uploaded the videos to spare you having to do that... Although i don't know how to dump it the best way and it looks much worse on mine ^^ http://www.youtube.com/user/XpLosION59/videos
Player (84)
Joined: 5/31/2013
Posts: 17
I just realized something i completely forgot... what difficulty should i choose? There is Easy, Normal and Hard, and as far as i know, the only thing it changes is the number of items you have to get to finish the level (like 5 more in Hard than in Normal). The two levels i have done were in Normal. (i can redo that if i have to change, just saying as an indication) So i'm really not sure. Hard would just mean more difficult routing and more time wasted to get that, but that might still be the better options... Can i get any advice regarding that?
Editor, Reviewer, Experienced player (969)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
According to our guidelines: "Where a game has multiple difficulty levels, it is preferred to play on the hardest difficulty level (for more interesting gameplay) unless the only difference between difficulty levels is enemy/boss hit points, in which case the easiest difficulty levels are preferred in the interest of speed." http://tasvideos.org/Guidelines.html In other words, you should probably set the difficulty to Hard. Did you figure out when and how objects are given from enemies? And also, what method do you use to find your route? If it was me, I would probably run through the level as fast as possible and see how many objects I picked up, and then measure how much time I needed to spend to get groups of objects outside of the fastest route.
Player (84)
Joined: 5/31/2013
Posts: 17
Ok, then according to that, i'll play in Hard ^^ So i'll redo the first two levels =p So far, still no idea what makes the ennemies give their objects... which is annoying ^^ For the route, i did like that too, seeing how much i can grab while going the fastest, then deciding where i should lose some time to grab more. Well that means i'm back to work =p
Player (84)
Joined: 5/31/2013
Posts: 17
(Time for necro-posting what i started) Well, after quite a long time now, and since i saw no other attempts at TASing this game, i actually worked more seriously on it this time, to sum up what i did: -Unlike the early WIP i did, i'm doing the game in hard difficulty because of the slightly higher number of items needed to collect making it a bit more interesting. That means the earlier levels are redone (i actually did first 2 at some point in 2015) -At that same time in 2015, before starting the game, i spent a quite extensive amount of time trying to figure out when enemies would drop items.I'll put my findings in an other post. To sum them up, RNG can be somewhat manipulated but it tends to be costly. Even if items drop, they have an animation where they scatter going upwards then fall down, and can't be recovered during that, and it's rather slow to gather all resulting items or even part of them, even in optimal conditions, except when there's a ceiling just above. The routes on my WIP use some enemy item drops to save time so far. -My go-to method to optimize the route is to first get to the end point the fastest while getting items that don't make me lose time. Then seeing for nearby groups of items how many i can get and how much frames it "costs". Finally simply choosing the best set of item groups that give just enough items in the lowest time loss. (pretty much how Truncated explained it in the earlier post). Integrating items from RNG enemy drops in that method is not very practical though, because the cost will be dependent on what happens in the level before. Also some levels (so far mainly 1-4, 2-2 and 4-1) don't work too well with that approach: the first requires enemy drops to avoid a large detour to have enough items, while the other two just don't have enough items near the fastest route and require a vastly different route. -Killing bosses is funny and fast! You can shoot a projectile every 2 frames, with a maximum of 4 on screen at any point. However by staying close enough to the boss by the time you would shoot a 5th projectile has hit and disappeared, so it's possible to shoot at the maximum rate of fire at most point. -So far i finished worlds 1 to 4, and levels 5-1 and 5-2, and am working on 5-3 at the moment. Knowing that they're 7 worlds in total, so i'm quite past half now. I uploaded WIPs for worlds 1-2 and worlds 3-4, I've also uploaded my WIP movie on the site with the work up to level 5-2.: Link to video Link to video
Player (84)
Joined: 5/31/2013
Posts: 17
Extra post to explain my findings! - As could be expected, whether or not an enemy drop items is RNG-based. There are 6 2-byte values at 6 consecutive addresses in the RAM used for the RNG. - I used a debugger to figure out how it worked more precisely: when the RNG is called, all 6 values are modified using each other (probably some classical RNG algorithm at higher level but i don't know much about those), and in the process a 7th number is generated. That number is then comparated to a constant and if it's higher then the enemy drops items (same process for checking if they drop a little heart that gives 1HP, but it's most likely not gonna be useful for a TAS). It amounts to a 1/16 "chance" to have a drop. - I wrote a Lua script that simulates calls to the RNG, keeping the 6 values intact and therefore being able to tell at which state of the RNG i can get a drop. Thanks to it i can know how the RNG will behave for any number of future call and plan accordingly. -RNG is called for several events, what i found so far is: ---Gathering an item ---Enemies of certain types dying ---Having enemies with random behaviour loaded ---Being in a "sparkly state", which happens when you have invincibility frames which is, when you enter the level, get hit, or pass very near an enemy (like jumping on one to kill it) -Certain enemy types don't call the RNG when dying, and seemingly can't be made to drop items on death. -Hitboxes (for enemy contact and for gathering items) are kind of wonky at times. Doing the same movement and being at the same exact position, i might sometimes gather an item and sometimes not, depending on previous actions in the same level. For example, doing the exact same movement in the whole level, only differing by shooting one projectile that kills an extra enemy, i won't get an item i had gotten before. -Sadly, so far i found no reliable way to manipulate RNG. However it can be affected by killing or not enemies and at different times, getting the "sparkly state" that calls RNG, and picking a different amount of items. However, and especially when tied with the wonkyness of the hitboxes, there's only few ways to affect the RNG that cost a reasonable amount of time, and even less that are costless.