[Genesis] Lemmings (Genesis Port) TAS (WIP)

Started by Gronkling, January 27, 2016, 04:59:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Gronkling

#75
Calculating each fall distance needed, and building to round it down to the next lowest multiple of 3, I was able to save a further 7 frames making Fun 24 now 1311F.
The floater thing is certainly interesting. Skills can be assigned during the fadeout, and applying a floater to the last just before it goes into the exit causes the exiting sfx to play slightly earlier, however it doesn't seem to allow exiting out of the level any earlier so I couldn't get any frames saved unfortunately. It may have potential though...


ccexplore

Quote from: Gronkling on February 19, 2016, 01:44:57 AMThe floater thing is certainly interesting. Skills can be assigned during the fadeout, and applying a floater to the last just before it goes into the exit causes the exiting sfx to play slightly earlier, however it doesn't seem to allow exiting out of the level any earlier so I couldn't get any frames saved unfortunately. It may have potential though...

Hmm...haven't looked at your updated movie yet, but can you actually try applying the floater assignment a little earlier?  One of the assumption is that the trigger area is like DOS, where it actually extends 4 pixels above ground level, even though normally a faller still has to land first to exit due to the faller check.  If the floater behaves like DOS in bypassing that faller check, you should visually see the exiting lemming's animation be above ground level.  Depending on the exact falling distance, it could even potentially allow the exiting to start 2 PUC earlier and not just 1 PUC.  Also worth noting that the first 3 or 4 updates after floater assignment the lemming should still be falling by 3 pixels per physics update (in other words, it takes a little bit of time before the floating actually starts slowing down the descent), so there's a slight margin of forgiveness in how early you can assign the floater.

Also sorry to state the obvious, but remember to try starting the fadeout earlier as well if you haven't already--if the lemming truly is able to exit earlier, you should be able to start the fadeout correspondingly earlier as well.

Anyhow, I'll probably try this level out tonight myself to verify some of these points above, if you haven't beaten me to it by then.

Gronkling

#77
Testing with sunsoft 1 (Rules to fall) confirms a floater before exiting can make a difference. It saves 3 frames in that level. It's strict, only allowing assignment in a 1PUC time-window to save frames.

EDIT: And now I got the trick to work in fun 24, not sure what I was doing differently before...

EDIT2: Using this, 4 frames saved again, now record is 1307F!

EDIT3: and now fun 25, which isn't particularly interesting so I'll just add it here.

Fun 25 in 2135 frames (~43s)

https://youtu.be/ZWG8cxCDPW4

Reducing fall distance etc. Blocking to stop lag frames.

This video's pretty good showing lag frames though, the music syncs perfectly to the lemming count going up, until there's lots of them on-screen at which point it desyncs

Gronkling

Fun 26 done in 1878 frames (~38s)

https://youtu.be/4x2qwTzaT78

Uses a new trick where a builder alternates turns, stopping with a basher after 1 brick, as the one in front has placed one. This makes a fast way to travel almost horizontally through air. Also uses a small basher staircase to reduce climb time.

ccexplore

Here's my attempt at Sunsoft 1.  I've never bothered to work out exactly where Gronkling's counting the start and end so I don't know how many frames exactly. :XD: I'm 99.999% sure it's optimal though, details below:

First, no lag frames to worry (yay)!  Based on my math and testing, the earliest lemming that can be saved after the digger must come out no earlier than 32 PUCs after the 1st lemming, and that's with assigning a floater early during the its initial fall, for extra delay.  This lemming will successfully turn twice in the dig pit, without then walking too far to the right by the time digger breaks through that he would've missed the exit trigger.  The solution in the emulator movie has every other lemming that came after all be released as fast as possible at RR 99 (movie shows RR 98 which as we all know and you can verify, is completely equivalent to RR 99) and all get saved along with the digger.  So first 12 lemmings except #2 and #3 were saved.  Digger (aka 1st lemming out aka "hero") cannot be sped up in any way, and as you can see in movie, hero ends up 1 PUC behind the 12th lemming out in falling.  And so I used the floater-exiting trick on the hero (it's the final floater assignment you see happening, with a very precisely positioned cursor and specific timing of assignment, shortly after the fadeout has started).  Using Gronkling's memory watches, I see that lemming #4 (ie. the one that entered 32 PUCs after the hero's entrance) and a few other lemmings who were assigned floaters "early" (and therefore suffer a slightly slower descent to exit when digger broke through), only wind up 1 PUC behind the hero in their exiting, and no other lemmings amongst the first 12 exits any later than that.

From testing, if you don't use an early floater assignment, the earliest lemming out after the 1st needs to be 34 rather than 32 PUCs after the 1st lemming just to avoid escaping the dig pit on the left, let alone not walking too far to the right afterwards to have gone past the exit trigger.  Delaying his entrance of course would delay every subsequent lemmings' as well, and 34 is more than 1 from 32.  Therefore avoiding any early floater assignments would force you to delay the release of lemmings more than you can make up for in their slightly faster descent.

Gronkling

Aaa thanks a lot! :D I won't reach that level for a while (I'm continuing to go in level order initially to keep things organised and not end up with a bunch of horrible levels to do in a group at the end) but it gets it out the way early. This solution clocks in at only 505 frames (only around 10 seconds!), making it the fastest level yet.

Frame counts are took from when the level initially finishes loading, to when the results screen begins loading. In this movie that is frame 714 to frame 1219.
TAStudio pictures showing starts and ends
(Loading frames are shown in pink in TAStudio)

(I removed some U+B presses that were during the loading period as they have no effect, so that's why the screenshot displays a slightly later start to U+B)

ccexplore

For Fun 26 you may want to consult Clam's Lemmix replays.  It uses that same builder-basher speed-building technique, plus a whole gauntlet of additional tricks to minimize turnaround time on the right area where you need to pave a way upward through the terrain.  I don't know whether all skill assignments seen in the replay are feasible on Genesis without pausing, but even with some pausing you may well still save time overall.  The mechanics should be close enough for the solution to work.

607

This is great! I didn't read all of it, as it's quite a lot, but spent a good 20 minutes in this topic ;)
I'm looking forward to reading and seeing more of this! :)

ccexplore

Fun 27 1029 frames (~21s).  Miner glitch FTW!

Gronkling

#84
Oh wow! That's an amazing solution, I had managed to get it down to 1044F with direct drop but it hit a dead end. I didn't actually know of that glitch/trick :O I'm marking this one as hard on the table, which basically could mean 'uses a lot of precise glitches' I'll record the youtube videos of your two new solutions later today. I've been a bit busy the past few days, but my next task will be trying to apply clam's solution to Fun 26

And I'm glad you're enjoying this 607! :D

edit: https://youtu.be/RrgVnPt232s fun 27 solution up on youtube

ccexplore

Hmm, interesting.  Based on my calculations you'd need at least 16 build steps to reach the exit trigger on Fun 27 with direct drop.  So the best I can probably do with such a setup is to use the miner glitch to prevent vertical gains from the builders.  So I probably can't directly combine direct drop with the miner glitch for improvements, but, I can potentially use the leftover miners (plus builders etc.) to create a few more mid-air steps to lower the fall slightly (as falls of 3 or less pixels are "free" since they don't trigger walker->faller transitions), assuming it doesn't add too many lag frames to offset.  Will have to try this later tonight.

ccexplore

Slightly out of topic, but when TAStudio is active in the Bizhawk emulator, I can't seem to change the inputs on an existing frame of the movie except through the "piano roll" interface in the TAStudio window.  In the common scenario where I'm trying to re-record parts of the movie, I'd like to do it through the normal controller input mechanisms of the emulator like I could when TAStudio is not active.

I did find that if I do a "truncate movie" in TAStudio, then controller inputs can be accepted starting from the truncated frame onwards.  But that's not the most convenient thing because each time you want to rewind back and re-record, you'll have to do the "truncate movie" again and again.  I suppose it's not that different from re-recording outside of TAStudio, where currently rewind is unsupported during recording and you'd have to reload a savestate to an earlier frame instead (which incidentally can't seem to be done either while TAStudio is active?), but it kind of defeats some of the usefulness of TAStudio.

I'm just wondering if there's something I'm missing about how to use TAStudio to rerecord parts of a movie, or is TAStudio just designed oddly?

Gronkling

I always put in inputs straight into the spreadsheet thing, that's the way that works best for me and I much prefer it over controller inputs so I haven't really tried getting the two to work, I think it took a little bit to get used to though.

I have reloaded save-states in the past with TAStudio open, though it's usually much quicker just to go to the frame you want to go back to and add then remove an input. This also keeps all inputs past that point the same.

ccexplore

Quote from: Gronkling on February 23, 2016, 07:34:28 PMI always put in inputs straight into the spreadsheet thing, that's the way that works best for me and I much prefer it over controller inputs so I haven't really tried getting the two to work, I think it took a little bit to get used to though.

Hmm, that could work okay for some things, but I feel moving the cursor, a pretty common and significant action in this game, is more conveniently done through controller inputs rather than using the spreadsheet, though maybe I'm just not used to the spreadsheet thing.

Gronkling

I use the spreadsheet for cursor movement too, it makes certain TAS-only movements (eg interlacing cursor movement with skill changes) much more easy.
Got another 28 frames off fun 26, making new record 1850F.
Fun 28 is proving a bit of a nightmare as expected, so far it's still in the 6000 frames range..