Posts for DrD2k9


DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Niamek wrote:
When a new movie is submitted that has a routing to do. Do you expect the author to have done extensive routing testing like tested every possible routes before taking the one they did? Or they can do some routing and take a route that "makes sense and that it looks fast"? In a summary, I would like to know what's the minimum of work behind a routing that is acceptable.
Let me start by saying I'm not a judge. Still, the minimum necessary work would probably be dependent on the game choice itself. Some games with multiple route options have a very limited number of route choices (NES Super Mario Bros.). Others may have hundreds of possibilities (NES Key Quest). To fully test every possibility for a given game may require an unreasonable degree of work to produce a valid TAS. Thus my personal approach is to test the handful of routes that seem as though they would be fastest and chose the best from those. A good resource to help determining the best route can be via finding a real-time speedrun (though these aren't always the fastest routes). As long as there aren't obvious routing improvements when compared to your resulting TAS, a judge will likely not reject it for routing reasons. It's not uncommon for already published runs to obsoleted by better routing.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
FractalFusion wrote:
Does anything different happen if you try RTC times that aren't multiples of 1000?
No. As with my testing in SQ1, it took at least a change of 1000 to elicit a different RNG seed. EDIT: For clarification.... All values from 0-999 in the initial RTC yield the same RNG seed when it is first set.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Ok I'm struggling to put together my RTC spreadsheet. The changes are more complicated than with SQ1, but I'm not sure why. Here's a spreadsheet with the first 52 seeds. As you can see, The difference between one seed and the next mostly follows a cycle, but there are some anomalies that I don't understand. This is making it much more difficult to complete the list of 65535 potential seeds as I did with SQ1. (There were anomalies there as well, but much easier to overcome.) If it helps, the first seed is set at game time 1448 ms. So in my mind, the time in milliseconds-from-midnight when the seed is set should be (the starting RTC time + 1448). EDIT: Updated Spreadsheet EDIT 2: I found some errors in the spreadsheet...starting from scratch on this one.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
adelikat wrote:
At the end of the day, this is the point of a lot of Vault rules. There needs to be a minimum bar of "triviality". If we take a serious look at all the junko out in the wild, it is only logical that we have to set some kind of bar. But at what level? That needs to be decided. Even more problematic than where to draw the line, "triviality" is subjective. The intent of the vault is to be minimally subjective. As often as possible, vault/no vault should be minimally controversial and easy to put a consensus on. The point of rules that mention specific types of genres such as education are an attempt to minimize the subjectivity of a blanket "triviality" rule. Their goal is to be more concrete/less subjective as opposed to just a vague statement.
Excellent points. Firstly, thank you to all those commenting. As frustrating as this debate has been for many of you, it has exposed the perspectives of various members of the community. This entire topic then begs the question: Does the term 'educational' actually aid in determining a degree of triviality for a more concrete rule? It seems to have created more confusion than anything. Would the rule benefit from dropping the word 'educational' all together and just stick with 'non-serious' (Assuming that can be defined)?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
  RNG    Action
 2048 -> Back up
26624 -> Punch
18432 -> Back up
43008 -> Back up
34816 -> Punch
59392 -> Back up
51200 -> Punch
10240 -> Punch
Note that every time a punch lands, it calls another random call for the damage.
This is beautiful. If we punch at the right time, we should alter the RNG seed for damage calculation and may be able to make him not punch at all (after the first punch). EDIT: Which random values yield what actions for the robot battle? EDIT #2: Trying to use the lua script causes JPC-rr to freeze until I terminate the lua; then the emulator continues running. Ideas? Never mind...got it to work (not that I know how i accomplished this)
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
c-square wrote:
Oh, and an interesting thing happens at the robot battle if you set the rng seed to 16384: It's a zero input win!
Unfortunately we can't use this unless we chose to kill Arnoid in the machine instead of the pods. (And that assumes there doesn't need RNG to get him to arrive there...i haven't checked) EDIT: Even if every other place RNG was used yielded the fastest options, I doubt it would make up for the extra time to use the machine to kill Arnoid.
EDIT: Also interestingly, it seems the space battle at the end has no random calls in it at all.
This I was already pretty confident of.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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).
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
Post subject: Re: #5758: EZGames69's NES Mario's Time Machine! in 07:33.62
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
Post subject: Re: #5759: qflame's SNES Math Blaster Episode 1: In Search of Spot in 07:53.15
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
Fair enough.
Post subject: Re: #5759: qflame's SNES Math Blaster Episode 1: In Search of Spot in 07:53.15
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
EZGames69 wrote:
...but if you did it would require you to do extra thinking.
What's wrong with extra thinking? Is that what makes a video game an 'actual' video game, mindless reaction to onscreen events?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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:
		(switch global110
			(1
				(if (== (Random 1 2) 2)
					((= gNewAct (Act new:)) posn: 1000 1000 init:)
					(= gSeconds (Random 2 10))
				)
(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?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
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.
What problems are you having getting it running?
DrD2k9
He/Him
Editor, Experienced Forum User, Judge, Published Author, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Great. Is there an easy way to modify C-Square's lua for displaying the random seed that will work with the SCI games?