Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
Looks like the 2048 set gives you two shots at a 2/2 combo (Terminator appears and delay of 2 seconds). You just need to then adjust your starting value to line up one of the combo.
I noticed that as well, I just haven't had a chance to play around with anything else yet.
I've got to try and find where the first random is called and then adjust my RTC spreadsheet to see if I can even set a starting RTC to yield 2048. (or any of the other values which are also in the cycle)
26624
18432
43008
34816
59392
51200
10240
With the variety of options, it hopefully won't be very hard.
I am also curious to see if it will still take a minimum of 1000 millisecond RTC change to produce a change in the RNG seed value, or if that was specific to the AGI system.
Something that may be affected by RNG that I haven't had a chance to confirm yet is the timing of the buckets on the conveyor lift in the garbage freighter.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
If the rng seed is 16384, the next seed will also be 16384 (and every seed after that). The rng seed generator also gets stuck on numbers 32768 and 49152. If any of these numbers is advantageous to you, it may be worth starting the game on one of these numbers, as you're guaranteed the seed will never change.
All of these are multiples of 16384. As such, dividing 16384/2 yields 8192. This seed results in a revolving seed of 2 numbers (8192 and 40960). 40960 is 8192 less than 49152.
Adding 8192 to 16394 yields 24576 which also results in a revolving 2 value sequence of RNG seeds.
Continuing this example:
4096 yields a revolving 4 value sequence
2048 yields a revolving 8 value sequence
1024 yields a revolving 16 value sequence
and so on.
Basically an even numbered seed is much more predictable and possibly more useful than an odd numbered seed.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
Okay, I think I've found it.
Memory addresses 273824 and 1322400 seem to follow the RNG pattern. Use this code to track the memory values:
wordOld = {}
searchList={273824,1322400}
while true do
a, b = jpcrr.wait_event();
if a == "lock" then
if nowTick ~= jpcrr.clock_time() then
nowTick=jpcrr.clock_time()
for i,v in ipairs(searchList) do
wordValue = jpcrr.read_word(v)
if wordOld[v] == nil or wordOld[v] ~= wordValue then
print("@" .. nowTick .. ": " .. v .. " -> " .. wordValue )
wordOld[v]=wordValue
end
end
end
jpcrr.release_vga();
end
end
Note, because the seed removed the +1 from the calculation, interesting things can happen at certain numbers. Specifically, if the rng seed is 16384, the next seed will also be 16384 (and every seed after that). The rng seed generator also gets stuck on numbers 32768 and 49152. If any of these numbers is advantageous to you, it may be worth starting the game on one of these numbers, as you're guaranteed the seed will never change.
I'm particularly curious what the robot battle would look like with the random number generator stuck on one number that always means you hit for damage on every blow.
Awesome. I'll work with this as soon as I can and try to determine an ideal starting RTC. Unfortunately none of the unchanging RNG seeds yield Arnoid showing up for the Pods (unless my math is wrong).
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Ferret Warlord wrote:
Oh come on, we're only on the fourth page here!
^Yea, sorry about that. A good chunk of that was my fault and I truly don't stand on either side of the argument.
The following is to attempt to answer my own earlier question--Why is 'learn something' a less valid goal than 'save the princess', 'kill everyone else', or 'click on Waldo's picture' as a game goal? (italics new)
As a generalization (not a concrete law), the site perceives video games as software intended for purposes of recreational entertainment. Edutainment is, however, primarily intended to teach or exercise knowledge of a particular subject. While a recreational video game may also provide an opportunity to learn, the learning is not the intent of the game. For the purposes of this site, edutainment is therefore NOT a video game in the recreational sense because its intent is education, not recreation.
The key delineation in my opinion is 'recreation vs. education' as the intent of the software's creators.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
TASVideoAgent wrote:
<a>Mothrayas</a>: .... The player cannot take damage or die whatsoever, eliminating all challenge...
This is perhaps the best argument I've read against TASes of most educational games and likely the most valid way to help in determining when one is not worthy of consideration for vault.
The inability to lose is a hallmark of many edutainment games.
EDIT: It should never be the sole reason any title is rejected though.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Mothrayas wrote:
Indeed, these games would be different if their focal game mechanic was different and if the game was designed to have education at the forefront of gameplay. This is a key difference that not only changes how the game is played, but also changes the overall design goal of the game and how it is intended to be used.
The Vault is for tool-assisted speedrun records of video games - there is no sense in holding records of dressed-up calculators, math books, or other things we can't qualify as video game records.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Mothrayas wrote:
The problem isn't so much with the amount of concentration or effort required, but that you work directly on a school subject, and it's designed to have you learn said school subject. At that point, you're not doing a recreational activity (as puzzle solving, and games in general are), but you're doing effectively dressed up homework. It's not really a game at that point, it's a tool.
Via analogy, lets use this logic for a different recreational activity: Watching a TV show like "Star Trek" would be considered a recreational activity as it's not intended to teach anything. But watching a TV show like "NOVA" would NOT be a recreational activity because the primary purpose of the documentary was to teach you about scientific aspects of the world in which we live (school subject). Therefore using the above logic "Star Trek" is an entertainment medium, but "NOVA" is just a dressed up education tool and should not be considered a real show.
Sounds absurd that way doesn't it?
Nach wrote:
If the game is primary, it's okay if you learned something along the way. It's okay if during a game there is some place where it made you use a calculator, answer a history problem, or something along those lines.
It's not okay if the application is some educational tool which tries to hide the fact it's a tool by adding some cute looking characters or minor game mechanics to utilize the math/spelling/history/whatever educational tool.
The only thing about this particular submission that fails to differentiate it as a game instead of a tool then, is the extra step of solving a math problem before you can shoot a particular piece of trash off the screen or enter a given hole in the enemy ship.
Here are two examples of similar goals from games that are already accepted on the site with a key difference being the added step of math is missing.
1) Shoot stuff on screen from a cockpit - Top Gun
2) Hit a particular hole while dodging enemies, then do it again multiple times - The key level of Donkey Kong Jr.
Thank you ALL for your perspectives! I never expected the debate to get this intense. One final question from me, then I'll politely bow out of the current debate.Though I may join a future one from either side of the argument.
I recognize that the site primarily wants entertaining videos and educational titles aren't usually very entertaining. But the whole point of the Vault being created to begin with was as a repository of well-made but poorly-entertaining speed-based TAS runs. So, where's the harm in hosting/publishing well-made but poorly-entertaining speed-based TAS runs of educational titles?
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Nach wrote:
Let's backup to something more basic. If a calculator program exists for a platform (and yes there are such things), would it be valid to TAS? Does it have a video game goal?
I think it's fairly clear that a calculator is not worthy of having a TAS.
But that brings us to the next stage, what if you dress up the calculator, and make it that instead of just pressing a button to put in a number, you have to move some cute looking character to it and somehow select it, does this make it more of a game and not a calculator?
Some of the Sesame Street and Elmo games consist of just pressing left and right to cycle some cute looking character through numbers and letters, then you press A/B to select, and if you got the math right, you proceed. This is just dressing up a calculator or dictionary, and it's not a game. There is nothing entertaining, and we want to reject this stuff.
Calculators and other educational tools can be dressed up in increasingly clever and complex ways. What it boils down to though is the focus of the application in question a game or a tool? If we can define it as a game and the educational aspect is secondary, then we can accept it as a TAS. If the education is primary, and the game aspect is secondary, we do not accept it.
Ok. So is Mario's Time Machine a dressed up education tool? Or does it have enough platforming optimization potential that it can be considered a worthy game? (people keep trying for this game) Where (and how) do we draw the line?
In my opinion, the key difference between a tool and a game (educational or not) is that games have a purpose for progressing through the game; tools don't.
Using the calculator example (dressed up or not): Does the calculator application have an reason to progress through to an end-goal? If no and it's just a tool for solving math problems, it's not a game.
If the goal is explicitly 'solve X number of problems to get to the end game credits', then YES it has an end-goal and is therefore a game regardless of how boring or trivial it may be.
Thank you for your perspective, BTW.
It still doesn't answer why we don't consider education a valid video game goal.
Why is 'learn something' a less valid goal than 'save the princess', 'kill everyone else', or 'click on Waldo's picture' as a game goal?
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Mothrayas wrote:
The problem isn't that it's extra thinking, the problem is that it requires you to exercise in school subjects (arithmetics in this case) as a primary gameplay element, and the game is clearly and explicitly designed for that purpose. That is what defines an educational game.
I understand that and agree that it's the explicit purpose of this edutainment title. But why does that inherently make it not an actual video game? What law says 'actual' video games have to be for entertainment purposes only?
Essentially the root question is 'Why is education not considered a valid video game goal?'
Restating what i said earlier--I don't care one way or the other what the site decides, I'm just trying to better understand the logic of the community on this subject.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
FractalFusion wrote:
You can think of random(min,max) being calculated first to get some value, then the RNG updated with x←31821*x mod 65536. Sorry if I didn't make it clear.
Thanks for the clarification. I'm trying to work out the spreadsheets.
EDIT: OK, I've got the RNG sequence spreadsheet updated to show what RNG value we need for a fast Arnoid. There are a LOT of options for potential RNG seeds that yield him arriving with a 2 second delay.
Once the address is found I can update my starting seed spreadsheet so I know what initial RTC to set.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Alyosha wrote:
I think this rule should be changed to allow this run to be published.
I can't think of a good reason why 'do basic math' should not be publishable.
We already have 'click a predetermined spot on the screen' [2792] NES The Great Waldo Search by MESHUGGAH in 00:51.83 and this is a better game then that.
Truly, this brings up the question on why edutainment games aren't considered 'actual' video games to begin with.
Let me start by saying that I don't have a particular preference either way on what the site ultimately chooses regarding edutainment titles.
But for the sake of debate...here are some thoughts.
I'd like to believe that creators of edutainment titles were indeed attempting to create a fun video game that also provided educational value. It's true (and unfortunate) that many edutainment titles don't tend to be fun or entertaining, but that doesn't necessarily mean they were intended to be any less 'actual' video games by their creators. If anything they were trying to be more that 'just' video games. So why is our default perspective that edutainment titles are not 'actual' video games unless enough of us deem them worthy of moon/star tier?
If the whole point of the vault tier is records regardless of entertainment value, why aren't edutainment titles worthy to be accepted? If the current submission was simply about matching colors instead of solving math (thereby eliminating the educational value) would the run suddenly be acceptable for vault as it would no longer be an edutainment title?
If the educational information was removed from "Mario's Time Machine" it would simply be another platformer, and a fairly poor one at that. But there are a lot of other poor games which have already been accepted to the vault.
And to build on Alyosha's question of why 'do basic math' is an unpublishable goal? Verbally describing what we often do with platformer games could be stated as 'push a button when the character reaches point x on the screen.' While it maybe much more complex to optimize the latter, why is it inherently a more acceptable goal?
EDIT: My apologies to both Alyosha and Mothrayas for repetition. I was typing this as you both submitted your recent responses.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
FractalFusion wrote:
I used Cheat Engine on SQ3 in DOSBox to find out how the RNG sequence works for this game. The sequence is given by:
x←31821*x mod 65536
Like AGI, 0 is a special case that seeds the RNG with some value (may depend on system clock). That's all I know so far.
The SCI random function is called whenever there is a game over (to select the game over music). This is a good way to check where the address is in JPC-rr.
Edit: OK, I figured out how the random method works (other than how it seeds the RNG value when the address has value 0). It works like this:
- The RNG sequence is determined by: x ← 31821*x mod 65536.
- The method, random(int min, int max), returns a value from min to max as follows, given the previous RNG value of x:
-- Calculate a ← 31821*x.
-- Calculate b ← floor(a/256) mod 65536 (in hexadecimal this is the central 4 digits of the 8-digit representation of a)
-- Calculate c ← b*(max-min+1)
-- Calculate d ← floor(c/65536) (in hexadecimal this is the number c dropping the rightmost 4 digits)
-- Calculate res ← d + min
- Then random(int min, int max) returns res.
Example: Arnoid's appearance on the pod screen is given by:
(following numbers are in hexadecimal)
If the RNG value before entering the pod screen is 0001, then:
0001*7C4D=00007C4D, 007C*(1-0+1)=000F8, res=0+1=1
Since res is 1 instead of 2, Arnoid does not appear at all.
If the RNG value before entering the pod screen is AAAA, then:
AAAA*7C4D=52DDAD22, DDAD*(1-0+1)=1BB5A, res=1+1=2
Since res is 2, Arnoid appears.
The current RNG value is now AD22 and the number of gSeconds is then given by:
AD22*7C4D=54108B3A, 108B*(10-2+1)=094E3, res=0+2=2.
So gSeconds before Arnoid appears is 2, the shortest possible time.
So is the returned value for a random(min,max) call calculated before or after the RNG seed is updated?
If before, then your above calculations would be correct.
However, if random(min,max) is calculated afterwards, then the calculation for the new RNG seed is your step 'a' above and the result of that step would never exceed 65535. Thus you'd never have anything but zeros in the left 4 hex digits for step 'b'
Or am I misreading/miscalculating something?
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
FractalFusion wrote:
By the way, both the rat scene from the first visit to Script n015 as well as World O' Wonders (every visit to Script n043) throw a whole bunch of RNG values, so unfortunately it may not be easy to predict the RNG for Arnoid. On the other hand, waiting at World O' Wonders for a few more frames may be faster than extra screen transitions.
As far as the rat sequence, I believe the random calls are completely cosmetic. I've changed the initial RTC time and not had de-sync issues with that scene.
The total number of random calls before a given point is not as important as knowing the sequence of seed/return values for when the random function is called. We don't need to predict Arnoid's RNG per-se so much as simply know what it is.
If a table of the seed value sequence can be constructed (which should be an easy modification of the old one), then it only becomes necessary to change the initial RTC time to yield the desired RNG seed value for the screen on which Arnoid arrives.
The biggest challenge is finding the memory address for the RNG seed, which c-square is attempting to do. We can then use his lua to follow the RNG. Once we have that we can choose an initial RTC that will both prevent the scorpazoid from spawning as well as yielding the shortest usable time for Arnoid.
I hope all that made sense.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Radiant wrote:
Does the run sync if you change the RTC time value? That may be the easiest way to adjust the Arnoid. I think that anything randomized before that is only cosmetic.
I haven't tried...yet. My current WIP syncs through where I am thus far. The old run desyncs (as expected) on Phleebhut as that is the first place where RNG impacts routing.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
Okay, I've got it running, however my file list is very different than yours:
More files than mine....different (newer?) version?
Mine is from GOG; I deleted all the GOG stuff from the directory including the useless .INF files. Basically all the files that are in all CAPS are game files and the files with lower case are the added GOG stuff (exception is the .inf files).
Send me a save file and I'll try finding the rng address.
You could just pull the old submission file.
EDIT: Unless you want a save-state instead of a movie file.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
FYI: I'm about 2 seconds improved by the time the Aluminum Mallard finds Phleebhut on the Navigation scanner. Better, but not by alot.
I'm also doing what I can to keep the mouse pointer out of the way of the action (something I didn't do last time). I may have missed a place here or there though.
I also have and idea for the wait time at the survey site.
As far as RNG, if we can deduce it by the time I start messing with Arnoid, I'll manipulate RTC to get the ideal spawn.
Considering the shortest path to the pod screen is the path I took before (minus the extra screen transition), if we can guarantee he'll arrive the first time that I'm there, that'd be great.
As strange as it seems, the shortest delay on his arrival may be too quick, because Roger is arriving from the top of the screen which takes a bit of time to get to the pod-cave. A longer time delay for Arnoid's arrival may be necessary to avoid getting caught before getting past him and into the cave. I think when Arnoid arrives from the north as well, he spawns behind the leg of the cave arch.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
DrD2k9 wrote:
Great. Is there an easy way to modify C-Square's lua for displaying the random seed that will work with the SCI games?
First we need to figure out the memory address for the seed. I could do that if I could get the game to run in Jpc-rr (which I’ve been unsuccessful so far) and then get a save game file from you.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Radiant wrote:
No luck so far in finding out the randomness algorithm for SQ3. Unlike for AGI, the reverse engineering for SCI appears to be incomplete, and the sole new implementation I've found (FreeSCI / ScummVM) implements its own randomness.
I'm not too worried about it, now that I know that waiting for the pirates to leave the survey site is a set time. The Arnoid timing is the only RNG i'd be worried about. Theoretically, using the same paths I did before should yield the same RNG for him which was pretty fast.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
The Two Guys' whining is somewhat skipable! This should at least be worth investigating since it's right at the end of the run. Also, I noticed that in the video he shot even before it was locked on and it hit. You could try taking shots before lock on too.
The time before the battle warning is frame-equal whether or not you watch the Two Guys dialogue. Even requiring the extra text command doesn't affect this timer. I chose to watch the dialogue for entertainment reasons.
As far as shooting before lock: the ships won't be destroyed even if the bullets pass right through the ship. I'm guessing the animation of the ships being destroyed is set to the center of the viewscreen and thus only a locked shot will work. The bullets can be fired before the lock occurs as long as the lock sets before the bullets get to the ship.
Radiant wrote:
Minor note - the Arnoid robot is chasing Roger because of vending machine fraud (says so on his visor), i.e. the whistle in SQ2; not the slot machine in SQ1. Breaking the slot machine is optional, anyway.
It's probably a bit of both as Gippazoid is the owner of the Slot Machine as well.
If the VGA remake of SQ1 is retconned, using the widget to defeat the slot machine would be fraudulent.
I'll update the submission text on the next submission.
Radiant wrote:
During the wait time on Ortega, you could do something funny with the mouse cursor, perhaps. Such as around the 30 second mark in the SQIV run, https://www.youtube.com/watch?v=qKm42lwk0JM
I'll have to look into that....not sure what I'd do yet.
Radiant wrote:
And I agree with c-square that your first run is probably publishable; just because there's a known improvement doesn't mean you have to redo everything.
I realize it won't be a huge difference. But since I know about the improvement possibility before the current run was even claimed for judging, I'll redo it.
It's more of wanting the best for my own work than anything else. I really don't mind taking the time, as much as I sarcastically whine about it in other posts.
And redoing it now will prevent a publisher/encoder from having to do it twice. My temp encodes take over 2 hours to dump as it is. (My PC is slow)
One last thing.
This would be awesome (for any SQ games) if completed!
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
c-square wrote:
Even before that, have you done a quick test to see if what FF says is true? I was just trying the game on DosBox, and clicking on the command box does absolutely nothing.
If you can't get it to work either, then your run is optimal and you can submit it!
It works, but you have to click inside the small box where the text command is, not just inside the general box.
Oh, and BTW, the wait for the surveyors to leave is hard set to 30 something (cycles? seconds? both?).
Well good, that's one less RNG to worry about. Too bad it takes them so long to leave. Maybe I'll have Roger pace back and forth while he's waiting.
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
Alyosha wrote:
At some point we really should formally deprecate old BizHawk versions. Pretty much every core, both ported and in house, has been substanitally improved since 1.11.6.
My only comment on this is to delay depreciating 1.13.x for quite a while. Some of us don't have 64 bit systems and aren't able to upgrade to BizHawk 2.x.x
Editor, Experienced Forum User, Judge, Published Author, Expert player
(2120)
Joined: 8/21/2016
Posts: 1032
Location: US
And now I'm back to square one on this run. FractalFusion pointed out a faster way to input text commands.
It unfortunately affects every single text input in the run meaning I have to start from scratch. But it also means it could save a significant chunk of time.
EDIT: Radiant, are you interested in helping dig into the RNG some more since I have to start over anyway?