Yes that would block the dialogue; but no I don't think it's possible to make it there in time. (edit) check the random() call at the top of logic 30, that's the one you're looking for. But the maximum is only a few seconds more than the minimum.
Tap the direction button once to start moving, once more to stop. Do not hold it down.
Great that there was a surprisingly easy way to fix the emulation errors. This TAS is looking good now.
Assuming I understand how the random() calls work, I found a strategy that costs only 32 frames:
(first number is index but is different from yours; mine has 0 at index 0)
By the way, how many frames does it cost to exit and re-enter the machine? How about saving and restoring?
Hmm... I tried that and it doesn't seem to work. The skimmer registers the first keypress and starts to move, but it gets to the other edge of the screen before it registers the second keypress.
Nice find! Unfortunately, the early index numbers are very hard to hit because once the rng generator hits a seed of zero, it reseeds the game based on the clock value, it's rare that it's reseeded in the first few thousand numbers.
If you can find a way to get it to reseed early enough, that'd be great. Otherwise, I encourage you to keep searching for good combinations. I just searched for instances with four DDD values. Three DDD and two EEE values works too, and there's likely another better combination out there.
Movement control at 'Fastest' speed is generally insane in this game. The key is using the number pad for directional inputs. Normally Roger will take 3 steps (frames) in a given direction before changing directions regardless of which of the 3 frames the new direction key is pressed. This includes pressing the same directional button to stop moving. HOWEVER, pressing '5' on the number pad halts Roger's movement on the frame pressed and doesn't wait for the 3 frame cycle to end. Thankfully this trick also works in the skimmer sequence, allowing you to stop motion at any desired frame.
Without this stop-movement input it would be impossible to complete the game at 'fastest' speed because the 3 frame cycle would force Roger to jump off cliffs constantly.
Sweet! With being able to make small adjustments, I've written a lua bot to autopilot the Skimmer sequence. The goal here is to have a deterministic run of the skimmer so we can guarantee the number of rng-seeds that are spent in this part.
Link to video
Unfortunately, it only works up to 'Fast'. At 'Fastest', the rocks come too quickly to dodge. Tomorrow I'll work at upgrading it to look at the upcoming rng seeds to anticipate the rocks instead of just looking at the existing rock positions. The hardest part of that will be figuring out when the random in this bit of code is called:
Ok, I did a quick search of rooms up through the skimmer sequence for places where v6 is directly written.
The only thing I can find is in LOGIC.024 which is Orat's cave.
if (isset(f30)) {
reset(f30);
set(f43);
print("\"What have we here?\"");
v6 = 0;
stop.motion(o0);
program.control();
v64 = 5;
cycle.time(o1,v64);
set.view(o1,128);
set.cel(o1,0);
erase(o0);
end.of.loop(o1,f31);
v30 = 2;
}
"What have we here?" is displayed when Orat catches Roger. So unless there is another place where v6 gets a value of 0, it appears that a death is necessary to accomplish this. That also assumes that nothing else changes v6 between Orat killing you and reaching the skimmer sequence.
I did not search for situations where v6 may be written as part of a function like a random(min,max,v) command.
I'll do a deeper search as soon as I can.
I don't search multiple at once. I just did a basic search for "v6 " and hit F3 a bunch of times bouncing between logic files.
Every tick that the skimmer is not moving horizontally, there's a one-in-nine chance of its shadow jumping three pixels down. So random() is called each tick for that. Except that if it jumps down, it will not call random() on the next tick, and instead have it jump up again. This is visual only and doesn't affect anything else; it's easy to spot in the video if you know it's there.
Something else that came to mind.
Almost all words in the game have synonyms, sometimes lots of them, and sometimes really weird ones. On the one hand this means that several commands can probably be typed shorter; however I don't think that's actually going to save time (however, 'lever' is a synonym for 'throttle' in case it helps). On the other hand, if you have extra time, it does mean that you can type in commands in the most ridiculous way possible.
For instance, instead of "get keycard", "swipe every credit card" is a valid input. "Put keycard in slot" can be written as "fill credit card from slot machine". A next command may be "press inside from first airlock". "Get up please, rock me now" is recognized. And so forth. It's silly, but if it wastes no time... :D
Ha ha ha! That's hilarious! That would certainly add to the entertainment of the run.
As for the v6 issue, it'd be helpful to know when the Ticks happen. I'm pretty sure it's not one Tick each frame. Is there a variable that can be used to track Ticks?
As for the v6 issue, it'd be helpful to know when the Ticks happen. I'm pretty sure it's not one Tick each frame. Is there a variable that can be used to track Ticks?
Each tick is one frame of updating the game state, yes.
As for the v6 issue, it'd be helpful to know when the Ticks happen. I'm pretty sure it's not one Tick each frame. Is there a variable that can be used to track Ticks?
Each tick is one frame of updating the game state, yes.
Hmm... I was playing the game in JPC-rr on slow, keeping the skimmer still, and watching the rng seed value. It took numerous frame advances for the game to change the seed (I.e. call random).
When I was talking about a frame, I meant the JPC-rr frame. Do you mean the same thing? If not, is there a way we can know when what you're referring to as a frame is going to happen next?
When I was talking about a frame, I meant the JPC-rr frame. Do you mean the same thing? If not, is there a way we can know when what you're referring to as a frame is going to happen next?
Not necessarily, no. If I recall correctly, AGI games run at 12 frames per second, whereas JPC-rr can be set to whatever you want.
Point is, AGI has a fixed speed for how often per second it updates the game state. This should not be hard to measure.
Something else that came to mind.
Almost all words in the game have synonyms, sometimes lots of them, and sometimes really weird ones. On the one hand this means that several commands can probably be typed shorter; however I don't think that's actually going to save time (however, 'lever' is a synonym for 'throttle' in case it helps). On the other hand, if you have extra time, it does mean that you can type in commands in the most ridiculous way possible.
For instance, instead of "get keycard", "swipe every credit card" is a valid input. "Put keycard in slot" can be written as "fill credit card from slot machine". A next command may be "press inside from first airlock". "Get up please, rock me now" is recognized. And so forth. It's silly, but if it wastes no time... :D
In the final version, I'll definitely consider rewording commands when extra frames aren't necessary to accomplish it. I believe there's a limited number of key presses allowed for text input per frame, but I never counted it.
Looks like I'm not going to have time to work on this until the weekend, but I'll keep you posted. Or feel free to go ahead without me if you don't want to wait. Though it looks like you may have some tasks on hand already polishing your SQ2 run, which was great BTW.
Looks like I'm not going to have time to work on this until the weekend, but I'll keep you posted. Or feel free to go ahead without me if you don't want to wait. Though it looks like you may have some tasks on hand already polishing your SQ2 run, which was great BTW.
No problem...I think we've accomplished quite a bit in a very short amount of time as it is.
Arcada control room.
(1) Push these out of the airlock.
(2) The press is all that is left.
(3) A little push for me, old sir, right?
(4) Rob is flashing another sarien uniform.
(5) A little swipe now at the translator.
Shuttle bay
(1) Push for third base now, I guess.
(2) I stand now under the little rocket.
(3) Push me over to the second power.
(4) First from the press, autopilot is in.
(5) Shut up, out of the door with you!
(6) The buckle is flashing on that belt.
(7) Move now to throttle me for a second.
Kerona
(1) Will you pick me for a little survival.
(2) Another open second, out of supplies.
(3) Get down for the belt will please you.
(4) Get off first, craft a little for you.
(5) I pick up that hunk from the mirror.
Arcada control room.
(1) Push these out of the airlock.
(2) The press is all that is left.
(3) A little push for me, old sir, right?
(4) Rob is flashing another sarien uniform.
(5) A little swipe now at the translator.
Shuttle bay
(1) Push for third base now, I guess.
(2) I stand now under the little rocket.
(3) Push me over to the second power.
(4) First from the press, autopilot is in.
(5) Shut up, out of the door with you!
(6) The buckle is flashing on that belt.
(7) Move now to throttle me for a second.
Kerona
(1) Will you pick me for a little survival.
(2) Another open second, out of supplies.
(3) Get down for the belt will please you.
(4) Get off first, craft a little for you.
(5) I pick up that hunk from the mirror.
<claps> Ha ha ha! Well done! These are going to be great. I look forward to what else you find.
Arcada control room.
(1) Push these out of the airlock.
(2) The press is all that is left.
(3) A little push for me, old sir, right?
(4) Rob is flashing another sarien uniform.
(5) A little swipe now at the translator.
Shuttle bay
(1) Push for third base now, I guess.
(2) I stand now under the little rocket.
(3) Push me over to the second power.
(4) First from the press, autopilot is in.
(5) Shut up, out of the door with you!
(6) The buckle is flashing on that belt.
(7) Move now to throttle me for a second.
Kerona
(1) Will you pick me for a little survival.
(2) Another open second, out of supplies.
(3) Get down for the belt will please you.
(4) Get off first, craft a little for you.
(5) I pick up that hunk from the mirror.
These are hilarious. Unfortunately not all can be used due to time constraints, but any that I can get on the screen for any length of time I will!
Side Note: I'm FINALLY through the shuttle sequence in SQ2 after trying to make it entertaining. Now just to finish the Asteroid portion itself. Finished the SQ2 run. Just have to make the temp encode and submit.
These are hilarious. Unfortunately not all can be used due to time constraints, but any that I can get on the screen for any length of time I will!
Great, happy to help :) I suppose that the now-cancelled run can give me an idea of where these time constraints are for commands in later parts of the game?