Posts for DrD2k9

DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
SUCCESS! I've got a spreadsheet that works for choosing what starting seed I want. It took a combination of calculations and brute force to complete the spreadsheet, but it's done. I can now set the initial RTC to yield a desired seed value upon Room 2. Now to see if I can find a starting RTC that yields the longest spider droid delay as well as no guards on the Arcada.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
c-square wrote:
I just had another thought: how about using joystick input to get around the clunky frame limitation of typing? It could well make for better routes, and may make tackling the skimmer sequence easier.
For what it's worth, I don't mind doing the skimmer sequence manually. It just won't give us as much control of the random seed heading into Ulence Flats if I do so. Speaking of randomization in Ulence Flats. Once we decide on a final process for the skimmer sequence, I'll see what I can do about not having to take the key out of the skimmer to save a few frames.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
I'll learn to read someday.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
fsvgm777 wrote:
Radiant wrote:
.INF files are not used by the AGI game engine, so this can safely be ignored or deleted.
This requires some slight tinkering with the movie file, so that it uses the proper HDD (the one that doesn't contain the SIERRA.INF). Here it is. The actual input remains unchanged, as all I did was remove the SIERRA.INF file (or rather, create a new HDD without the SIERRA.INF).
Does the movie still sync?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
FractalFusion wrote:
which you said starts the cycle over.
I noted that it 86400000 = 0 for RTC It may also recycle before then.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
FractalFusion wrote:
Could you send the seed value for RTC 86399000ms? (This is one second before 86400000ms, which you said starts the cycle over).
Room 2 seed is 11374. EDIT: so the previous seed should be 161
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
That pattern continues all the way through RTC 58000 but then breaks down. And, no, I did not brute force test all 60 possibilities. I wrote a formula, but it only worked up to that point. RTC of 59000 has a 0xC649 difference the previous seed. That shouldn't be expected until RTC 60000. Then RTC of 60000 returns to the 0x4296 difference. My formula worked for a while, but then broke down...I'm missing something.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
Radiant wrote:
The initial seed is (time in seconds) * 20 + ((time in milliseconds) / 1000) * 20 BUT note that creating the seed will immediately advance it once (i.e. to generate the first random number in logic 2, which is then ignored since guards can't spawn the first time you enter the room). So the value you'll see in your lua panel is the seed AFTER one advancement.
I appreciate your attempts, but I'm not following you. Sorry. I have discovered this though
RTC       SEED     DIFFERENCE from previous seed(2 byte HEX)
0         61749
1000      44703    4296
2000	   27657    4296
3000	   10611    4296
4000	   59101    4296
5000	   8340     C649
6000	   56830    4296
7000	   39784    4296
8000	   22738    4296
9000	   5692     4296
10000     20467    C649
11000     3421     4296
12000     51911    4296
13000     34865    4296
14000     17819    4296
This seems to be a usable pattern, but I don't know how to write a formula to predict from this information.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
Radiant wrote:
Well, yes. First, although the initial seed depends on the amount of milliseconds since midnight, the game's internal framerate is only about 12 frames per second. That means that every batch of (1000 / 12) = 83 milliseconds will yield the same seed.
But it doesn't. It takes a change of 1000 milliseconds in the RTC setting to yield a different seed. EDIT: And it recycles every 86400000 milliseconds (1 day). So it seems that we're limited to 86,400 potential options for our initial seed. What I'm trying to figure out is a way to calculate what RTC time will yield the initial seed we want for the game. I don't particularly want to manually test 86,400 options.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
I tested my theory of changing the initial RTC within the savestate file. It didn't work. It took a change of at least 1000 to yield a different initial seed at the beginning of room 2. Further, that seed did not change equally to the change in RTC timer. For example:
Initial RTC                    Initial Seed
1000                           34203 
1500                           34203
1999                           34203
2000                           55990
1000000000000                  46218
According to c-squares lua script. The number of 'changes' when the initial is set varies drastically with different initial RTC values as well. Any ideas? EDIT: With further testing... Starting RTC of 86400000 = Starting of 0 Starting RTC of 86401000 = Starting of 1000 So it seems that a change of at least 1 whole second in RTC value is necessary to change the initial seed....though that still doesn't explain why the initial seed changes at a different rate than the milliseconds after midnight.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
Radiant wrote:
On the first screen, enter this command before doing anything else (not necessary, but fitting for a speedrun) First, please clock me in, sir.
What does that do, and will it cause a text box that will add frames to the run? It is possible to change the game-speed at the beginning using the 'fastest' command even before the visual of room 2 is completely loaded. This enables Roger to exit the room before the intro text shows up, thus saving a few frames of time.
c-square wrote:
Here, let me give you something so you can do it ... Give it a shot and let me know if it works!
Thanks I'll check into it asap.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
If I start a run and do a savestate after the first room , could you get me the initial seed value? I think I could then use that information to edit the initial RTC in the save state file to achieve the longest Spider Droid timer. Make sense? EDIT: This save for example.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
OK so that confirms that the random call for setting the spider droid timer doesn't happen until AFTER exiting the crashed escape pod. So was the initial seed value set at room 2, or at room 4? It looks like my original thought was correct of 5-6 being the minimum possible before the spider droid timer is set. It looks like the acid drips and skimmer sequence are going to have a much greater impact on where we are seed wise when we get to the slots. I'd say that definitely suggests that we try to maximize the timer for the spider droid. If I start a run and do a savestate after the first room , could you get me the initial seed value? I think I could then use that information to edit the initial RTC in the save state file to achieve the longest Spider Droid timer. Make sense?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
If I understand Logic.000 correctly, Getting something increases the random seed. looking at something increases the random seed. entering something increases the random seed. specifically typing "use" something increases the random seed
Or maybe these only increase random if the 'something' is a non-recognized object in the game. Radiant, can you clarify/confirm?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
OK the above is for sure incorrect. If I understand Logic.000 correctly, Getting something increases the random seed. looking at something increases the random seed. entering something increases the random seed. specifically typing "use" something increases the random seed also, if flag f2 is set AND flag f4 is not set, random is called. I have no idea what these two flags are. So...the following is probably more accurate, but may still be incorrect due to the f2 & f4 flags 2 - Janitor Closet (Starting Room) - RANDOM CALLED 1x 1 - Data Archive - no random calls 4 - Hallway w damaged door - RANDOM CALLED 1-2x 3 - Keycard Body - RANDOM CALLED 1x by getting keycard. 4 - Hallway w damaged door - RANDOM CALLED 1-2x 2 - Janitor Closet bottom floor - RANDOM CALLED 1-2x 5 - Bottom of elevator - RANDOM CALLED 1-2x 6 - Control room - no random calls 7 - Keycard Slot - RANDOM CALLED 1-2x 9 - Prep Room - RANDOM CALLED 2x for getting suit and for getting translator 8 - Shuttle Bay - RANDOM CALLED 1x for entering pod 10 - Inside Escape Pod - no random calls 8 - Shuttle Bay (briefly as escape pod launches) - no random calls 12 - Escaping Arcada - No random calls 10 - Inside Escape Pod - no random calls 104 - AutoNav Status Screen - no random calls 13 - Kerona Approach animation - no random calls 30 - Crash Site - RANDOM CALLED 1 or more times (maybe) 14 - Inside Crashed Escape Pod - no random calls 30 - Crash Site - RANDOM CALLED 1 or more times So it looks like the minimum is 10 calls before the spider droid timer is set. Again, this DOESN'T include random calls by the f2 & f4 flags.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
I'm probably going to need Radiant's help with this... Here's the sequence of rooms from beginning in Room 2 until exiting the crashed escape pod. 2 - Janitor Closet (Starting Room) - RANDOM CALLED 1x 1 - Data Archive - no random calls 4 - Hallway w damaged door - RANDOM CALLED 1-2x 3 - Keycard Body - no random calls 4 - Hallway w damaged door - RANDOM CALLED 1-2x 2 - Janitor Closet bottom floor - RANDOM CALLED 1-2x 5 - Bottom of elevator - RANDOM CALLED 1-2x 6 - Control room - no random calls 7 - Keycard Slot - RANDOM CALLED 1-2x 9 - Prep Room - no random calls 8 - Shuttle Bay - no random calls 10 - Inside Escape Pod - no random calls 8 - Shuttle Bay (briefly as escape pod launches) - no random calls 12 - Escaping Arcada - No random calls 10 - Inside Escape Pod - no random calls 104 - AutoNav Status Screen - no random calls 13 - Kerona Approach animation - no random calls 30 - Crash Site - RANDOM CALLED 1 or more times (maybe) 14 - Inside Crashed Escape Pod - no random calls 30 - Crash Site - RANDOM CALLED 1 or more times Any room where a guard can attack, calls logic.103 which has a random call in it. (timer for the attack?) The key question is, does the spider droid random call happen when the crash site room is shown DURING the crash or does the counter not start until AFTER exiting escape pod into room 30? It looks like we may be able to manipulate the initial RTC timer to have as few as 6 random calls before entering room 30 where the spider droid counter is set. Unfortunately room 30 itself is complicated (to me). It calls logic.110 which itself has 6 random calls in it. So the actual number of random seeds before the spider droid counter may be more. Can you confirm/clarify this theory?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
On the note of random calls....If a guard is triggered on the Arcada, the guard logic (logic.103) also calls random. Yielding 2 total random calls.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
Ok for the spider droid timer... There's a set number of random calls before he arrives correct? If so (and if my calculations are correct) the earliest random call based on the default initial random seed (46218 milliseconds after midnight) which yields 250 into variable v93 when exiting the escape pod is 120 seeds into the game. Specifically a seed of 42421 will yield 250 into v93. Can someone confirm my math for me? So if we exit the escape pod before the 120th random call, we could simply adjust our initial time based on this, correct? Additionally the 234th, 246th, 295th, 576th all will yield 250 for the spider droid logic (again, assuming my math is correct) EDIT: My math was wrong. EDIT#2: No I think it's correct.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
EZGames69 wrote:
https://www.youtube.com/watch?v=I9XGPvT-22g
Yea the sound kinda sucks at this speed. Even slower, it's not very good.
not sure if the jabberwockey poem was intentional for game progression but it's entertaining none the less. yes vote.
The poem was intentional...to try and add entertainment value during an otherwise prolonged scene that can't be skipped and little to nothing happens.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
Ford wrote:
I liked the poetry during the unskippable space flight cutscene, though might I recommend that this go up along-side a version with the speed reduced to a point where it's actually possible to make out the action that's going on?
I'll look into making an encode at a slower FPS rate. EDIT: Done. See description for 1/5th speed temp encode. The sound still sucks.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
MESHUGGAH wrote:
Sorry bout that, but I had to make a temporary encode since depending on the name no one would watched it in the first place (cause usually I submit those shitty vault runs)
Nothing wrong with vault runs. Archival of games that aren't as entertaining is still valuable if not equally important as archiving the entertaining ones. To me, entertainment is a bonus when it comes to TASing. (Which is probably part of why all my published runs thus far have been vaulted.)
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
fsvgm777 wrote:
I'm completely mystified by the presence of the SIERRA.INF file that isn't present on several locations I got the game from. Moreover, I seemingly can't create the file from the game itself. Where did you get your copy of Space Quest II (knowing it's available on Steam and GOG)?
GOG. I simply copied all the files that installed as all CAPS for the filename (as that's how the original files were). I pasted these into a new folder eliminating all the extra GOG function stuff (launcher, documentation files, etc) and used that for the game image. The SIERRA.INF file may be specific to the GOG version and in CAPS for some unknown reason. I've also got a official copy of the SQ Collection (1-5) on CD (somewhere). But I have no idea where that is right now to check if the .INF file is there or not.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
Radiant wrote:
Firing the phaser is possibly slower than typing <N> <enter> though.
I think the phaser would be faster. It's only a 2-3 frame delay. Typing 'N' would require the 4-5 frames of clearing the resulting text response. I'll double check this though.
Are we concerned with also trying to set the initial RTC time to avoid guards on the Arcada? There's only a couple screens where it should impact.
I think we should be. The relevant guard has a 50% chance to show up, so that's straightforward to manipulate.[/quote] I think guards can show up in the room with the destroyed door to the lab, but I'd need confirmation of that. So we might have to watch that room too. The room following, we can make the elevator before a guard shows up if one is called. Guards can show up in the rooms on either side of the control room. (Elevator room and Keycard Slot room). We'd have to watch both of these.
Are we worried about the spider droid?
Yes, because his movement is random. While he is on screen, he will generate calls to the random() function.
So delaying its arrival as long as possible may be beneficial
Question: if you take an existing run and alter the RTC time, does it still sync? I would expect it may desync at the guard in logic 7 (50% of the time), or at the skimmer sequence (obviously) but not at other spots; is that correct?
Correct. It will for sure de-sync where I waited for the guard at the bottom of the elevator. The rest seems mostly intact. I briefly played around with manually editing the savestate files. By changing the Initial RTC time and the timing of button presses in the savestate, I was able to alter guard RNG actions. I think we may be able to get around redoing everything again with this method. I'll look more deeply into this tonight.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
FractalFusion wrote:
- What really bothers me is that, provided what everyone here is saying is indeed true, the AGI system only polls for movement input a fixed number of times per second (somewhere between 10-20 times a second) regardless of how fast the actual game is going (whether "normal", "fast", 100 ticks per second, or 5000) or how many times JPC-rr polls for input ("JPC-rr frames"). This has the effect that movement precision is inversely proportional to game speed, which paradoxically makes the TAS look less polished than if the game were capped at saner speeds.
I agree that it appears less polished due to this situation when slowed down enough to comprehend what's going on. That said, when watched at real-time speeds, the goofy movements are barely perceptible. This results in it just looking like insanely fast movement.
- Nice to see some glitches I mentioned before made it into this TAS.
Credit where credit is due.
- DrD2k9, I appreciate that you took the effort to entertain during the waiting times. I personally would have preferred if you entered text that was relevant to the game or this TAS instead.
I can understand that perspective. I also feel that there are plenty of viewers who will appreciate what I chose. It'd be impossible to please everyone with what I choose to type during those sequences. EDIT: Maybe think of it as the shuttle's radio.
- I look forward to the Space Quest 1 TAS.
Be prepared for the same insanely fast speeds and goofy movement. At least there aren't any crazy long real-time sequences like the shuttle in SQ2.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2094)
Joined: 8/21/2016
Posts: 1029
Location: US
So.... If c-square is able to Lua control the skimmer sequence for a specific number of random calls, then we can theoretically calculate an initial RTC time that will yield a good range of RNG seeds for the slots when we arrive there. Then we can use the spreadsheet of return-values to destroy the slots as fast as possible. Firing the phaser at nothing can help with Sarien guards after losing Roger's helmet. Correct? Are we concerned with also trying to set the initial RTC time to avoid guards on the Arcada? There's only a couple screens where it should impact. Are we worried about the spider droid?