Comments
United Statescheeseandcereal8 years ago

Here is a pastebin of the "unable to enumerate a suitable device" log when I disable dgVoodoo:

http://pastebin.com/P9Atjqvx

While I still had dgVoodoo disabled, I also ran your lua script via cheatengine, and these were the results (when the game gave me the "unable to enumerate a suitable device error")

ExamineDDEnumCallback: DirectDrawCreate returned 0x00000000 for device #0 ExamineDDEnumCallback: GetCaps returned 0x00000000 for device #0 Found 1 suitable DirectDraw devices

And for reference, here is a log when I enable dgVoodoo and it works properly:

http://pastebin.com/bkvMCwTn

And once again when running the lua script via cheat engine while dgVoodoo is enabled (and the game works properly) this is the output:

ExamineDDEnumCallback: DirectDrawCreate returned 0x00000000 for device #0 ExamineDDEnumCallback: GetCaps returned 0x00000000 for device #0 Found 1 suitable DirectDraw devices

United Statescheeseandcereal8 years ago

By default, the minimal install of the game actually disables cut scenes (however it also can disable music).

I made a custom PC installer a bit ago that basically does a minimal install, but fixes the music (among other things like installing dgVoodoo by default, adding some save files for testing, etc). So basically my installer already 'skips' cutscenes. If someone wants to do a full install and use this command line argument instead, I wouldn't be opposed since we already basically do that with the built in minimal install option anyways.

United Statescheeseandcereal8 years ago

You can also try choosing a different rendering device in the resolution selection screen to see if that helps solve your problem. Other than that, your best bet is to mess with the dgVoodoo settings.

United Statescheeseandcereal8 years ago

dgVoodoo isn't working properly for you. Make sure you're running it as admin and have all the appropriate settings

United Statescheeseandcereal8 years ago

I've created a modified installer and an accompanying video showing how to install/run for maximum compatibility.

As far as we know, this is currently the best way to get the game running on the widest variety of computers (however it still does not fix EVERY computer having issues)

P.S. We now suggest NOT limiting the framerate of the game.

United Statescheeseandcereal8 years ago

Note: PC doesn't support auto-reset like n64 does. I still programmed in auto-start/split as per normal though.

Livesplit will auto-update, no need to manually download/update anything.

Deleted
likes this
United Statescheeseandcereal8 years ago

I uploaded a side-by-side comparison of the 2 runs in their entirety, so now anyone curious can actually watch and see how this whole thing unfolds:

Interesting to watch, for sure.

Side note: Amazing.

https://gfycat.com/InsistentEminentAmericanbobtail

Capridog and GameguySD like this
United Statescheeseandcereal8 years ago

So, since Capridog's run just tied the world record, I figured I would make this forum post explaining my timing methodology which led me to determine that these runs most likely tied exactly to the frame.

Some things to note: Brandon's run was using the autosplitter. The way that works is the autosplitter actually looks at the memory values in the emulator itself to determine when to start/split. Due to this, it is impossible for the autosplitter to split early, since the value in memory would have had to already change (meaning the action has occurred) before it will split.

For the start of the run, buzz's first frame of movement will cause his animation to change, showing his left leg lifting up, which is how we can determine the first frame of movement.

Also note that both videos are in 30fps, meaning that one video frame is roughly 33 milliseconds (0.033 seconds).

We'll start by looking at the start of Brandon's run.

Here is the last video frame before movement in Brandon's video: http://i.imgur.com/H8YAkLR.png

Here is the first video frame of movement in Brandon's video: http://i.imgur.com/JbQ8sYX.png

Examining this, since the first video frame of movement shows the timer at 0.01, the worst case scenario of the autosplitter splitting late would mean that it theoretically could have started up to 0.02 seconds late. Also note that in my experience, however, the autosplitter is rarely ever more than 0.01 seconds off, so in all likelihood, the start of the timer for Brandon's run is likely started within less than 0.01 seconds of the actual time.

Now lets look at Capridog's run.

Here is the last video frame before movement in Capridog's video: http://i.imgur.com/0nWatXt.png

Here is the first video frame of movement in Capridog's video: http://i.imgur.com/7eSYKFE.png

Unfortunately, Capridog is not using the autosplitter, and the way that the video frames line up, we have a difference of 0.05 seconds here, effectively meaning that the real start could have occurred somewhere between 0.32 and 0.37 seconds on the timer.

Now lets look at the final frames of the runs. Brandon's video first again.

Here is the last video frame before the run ended in Brandon's video: http://i.imgur.com/neZ1qCM.png

And here is the first video frame of the run ending in Brandon's video: http://i.imgur.com/2CCP9yx.png

You can tell this is the last frame because the blacksmith in the last frame has started his first frame in his death animation (most easily determined by the fact that the blacksmith has started to "jump" up (part of his death animation)).

Fortunately here, there is only a 0.02 second window in the timer between video frames, meaning that this run could have ended any time between 28:44.93 and 28:44.95

Now lets look at Capridog's run.

Here is the last video frame before the run ended in Capridog's video: http://i.imgur.com/xCxH01z.png

Here is the first video frame of the run ending in Capridog's video: http://i.imgur.com/n0XowlQ.png

You can tell this is the last frame because the health bar started to pan up (which means the boss has been finished), even though the blacksmith's death animation didn't start on the same frame.

Again, fortunately here, there is a relatively small 0.03 second window in the timer between video frames, meaning that this run could have ended any time between 28:45.26 and 28:45.29

Now looking at edge case scenarios: The shortest that Brandon's run could've been is: 28:44.93 (assuming that the autosplitter started within 0.01 seconds of the start of the actual run) The longest that Brandon'r run could've been is 28:44.97 (assuming the autosplitter started 0.02 seconds late, and the first video frame was the same as the actual ending frame of the run)

The shortest that Capridog's run could've been is: 28:44.89 (assuming that the first video start frame was the same as the actual game start frame, and that the actual ending game frame occurred less than 0.01 seconds after the previous video ending frame) The longest that Capridog's run could've been is: 28:44.97 (assuming that the first video start frame occurred less than 0.01 seconds after the previous start frame, and the ending video frame occurred at exactly the same time as the actual ending frame)

Given this information, we have about a 1 frame window that Brandon's run could actually be, and a 2-3 frame window that Capridog's run could have ended.

Given the general accuracy of the autosplitter, it is VERY likely that the recorded time for Brandon's run is accurate to the 0.01 seconds, meaning that his ending time is VERY likely between a 44.94 and a 44.96. All the other possible times are very unlikely

In general, when comparing timing of video vs actual game frames, it is statistically most likely that the actual time will fall in the middle of the possible window (this would follow a bell curve distribution).

Based on this fact, it is most likely that Capridog's actual ending time sits somewhere around 44.94, however due to the nature of this timing, it could fairly easily be +/- about 0.02 seconds (due to evaluating the standard deviations of video vs actual game frame timings)

Given the most likely scenarios of 44.94-44.96 and 44.92-44.96 being the windows of time, the most likely combination of these ranges gives us an outcome there is about a 75% chance that the runs end with less than a 0.03 second gap (which is less than one frame).

Given all of this, it is most likely that the runs likely ended on the same game frame, meaning that these runs are an exact tie.

However, given all of this, the next most likely (and not at all far-fetched) scenario is that Capridog's run was actually 1 frame faster than Brandon's run. The likelihood of Brandon's run being faster than Capridog's run is very unlikely.

So while I will record these runs as an exact tie, it is impossible to know 100% whether or not it was an actual tie.

Since an exact tie is the most statistically likely scenario, that's how I have officially record the run.

Edit: I wasn't super happy with all of this since it wasn't a definitive answer, so I did a lot more testing that I'm not going to try to get into here (timing based soley on video fps, rather than tracking using the timer on the video, do some test recordings and actually getting some standard deviations for game frame times vs video frame times to make a better mathematical model, etc, etc). Depending on how you measure it, Brandon could have won by up to 2 frames or Capri could have won by up to 2 frames, however I still stand behind the idea that the most likely scenario is an exact tie.

Edit 2: I've spent over 5 hours simply timing this different ways, creating a few different statistical models, etc to try and get a better definitive answer. Unfortunately, it's impossible to know for sure because of the videos themselves. I am officially declaring this a tie, and that's (basically) final. It would take quite a bit of testing and showing better methods than what I've already tried to convince me that a different outcome is more likely at this point. Everything seems to point to the most likely probability of an exact, frame per frame tie.

Capridog likes this
United Statescheeseandcereal8 years ago

Awesome! I've downloaded all 3 parts from your channel. Again, thank you SO much for this! I'll have the videos spliced, uploaded and added by sometime tomorrow. I've always wondered why people archive stuff like internet videos, since "clearly" they're not going anywhere. Now I'm sooo glad someone actually did!

(Oh, and now I'm archiving all this stuff now too lol)

United Statescheeseandcereal8 years ago

Um, I can't remember exactly what his old name is. I want to say something like brandon1993, but I don't think that's exactly right.

Edit: it was brandonhill1993

His current channel is brandonscotthill

United Statescheeseandcereal8 years ago

His old channel was never re-activated. His channel was permanently banned for showing what I'll label as "inappropriate content" (you can use your imagination to guess what this might have been) on stream. Brandon's current channel is indeed a new channel.

United Statescheeseandcereal8 years ago

Awesome! I'll probably splice them together and upload it as a continuous video if that's the case. Again, thanks so much! This is honestly so awesome. We all thought the video was lost forever.

United Statescheeseandcereal8 years ago

You downloaded the video? Wow, thank you so much! If you post a link to the video here, I can edit the entry to add the video. This is awesome!

United Statescheeseandcereal8 years ago

He just wanted single token so the leaderboard can look like the SM64 leaderboard. Why? I have no clue, since literally no one has ever done an IL like that. SM64 was actually designed around the idea of going in and only getting 1 star at a time in each level whereas Toy Story 2 definitely is not, but I'm not necessarily opposed to it since it doesn't hurt anything to add it, so whatever. Also yes, the basement clip is possible on emu and console (although you do need the proper version of the game for it to work on console, but it's been tested and confirmed numerous times).

Also for anyone actually trying to argue that entire categories should be removed just to reduce "clutter", just go look at an IL board like Super Meat Boy. http://www.speedrun.com/smb/individual_levels

United Statescheeseandcereal8 years ago

Sure, I don't have any opposition to this. If someone wants to run and submit single token ILs, go ahead. It's been added. No one has ever ran, or suggested Single Token for this IL board before (neither on this forum nor to me directly), but if a Single Token category on an IL board really gives you inspiration to play a game, then go nuts.

United Statescheeseandcereal8 years ago

My response to you would be the exact same response to anyone else with the same reaction. If you don't want to play a game because the way the leaderboards look is weird to you, then don't play the game. No one is forcing anyone to or not to play any game. If someone actually wants to play a game because they enjoy the game, then they will play it.

United Statescheeseandcereal8 years ago

Then, I'm very sorry that you let a leaderboard layout affect your passion for playing and enjoying a game. You can run a game and make up rules and do literally anything you desire in the game. Whether or not it needs to be recorded on a leaderboard is a different matter. Fortunately, recording speedrun times on a site is not actually a requirement for playing a game.

United Statescheeseandcereal8 years ago

Locking this thread down. I have made a new thread in regards to this matter here:

http://www.speedrun.com/toys2/thread/78dvx/

Which everyone is more than welcome to continue the conversation. I simply locked this thread and started a new one for organization purposes.

United Statescheeseandcereal8 years ago

The following is my comment on the matter of the IL leaderbords:

As of right now the IL leaderboards are functional. Yes, it is true that most games tend to handle ILs differently, where they might only have a few category in ILs, which is simply like an "any%" or "100%" for an individual level which doesn't relate to the full game speedruns. (i.e. beat the level as fast as possible [in ts2 case, this would be getting one token], or collecting and completely beating a single level).

As of right now, the current IL boards have the 100% category that is the most "common" among IL boards, and is what you might consider a "traditional" IL category. This means that if you really want a "traditional" IL category, simply submit it as a 100% IL run.

Note: It currently does not have something such as an "any%" level (which in this case would mean 1 token), however if people really want something like this, it can be added no problem.

A common argument against the current IL boards is that they have too many categories. Well, fortunately, too many categories does not actually take away any functionality. If you don't like the extra categories, you can simply ignore them. Removing functionality by removing existing categories doesn't make a lot of sense, simply to match what is "common" among other games' boards.

Another common complaint is that since the IL categories are related to the routes for the main runs (which, by the way, isn't true for levels with re-visits since revisit splits aren't on the IL boards), that when the full game route changes, then the IL category route changes, thus potentially invalidating all the existing IL runs. This argument is indeed, true, however it is also somewhat frivelous. Since I have completely rerouted the game over 2 years ago, there has been only 1 change to the token route of ANY of the categories. On top of this, the change simply swapped which tokens we get in 1 particular level, (number of tokens per level has never changed), effectively just making the level faster without any fundamental route changes by needing to grab different tokens in different levels. This means that the number of tokens we were grabbing in each level 2 years ago, are the same that number that we are grabbing today. While the run itself has improved over time with new tricks, this has ONLY lowered the time of individual levels, never changing the fundamental routes themselves. IF there does come a day where a trick so durastic is found that it would change the token route of the levels, then yes, ILs will be changed and invalidated for the affected levels. Because of this, it does not make sense to delete entire IL categories based on the idea that some edge case COULD occur at some point in time which would invalidate runs. If you don't like the idea of your IL run being potentially invalidated by future routes, then don't run and submit ILs for categories like 30 or 40 token where the fundamental token route could theoretically change. If you don't like the category, you don't have to submit runs. You are more than welcome to only do ILs for a category like 100% or Max% which could fundamentally never change regardless of the full game route.

Something else to note is that a lot of people complain about the IL boards, but don't actually do any ILs themselves. If someone came with a bunch of recorded ILs that they couldn't submit because there wasn't an appropriate category, then we can discuss if the category makes sense and should be added, but there is no need to remove existing categories.

If you would like to discuss why a category should be added, feel free. If you would like to discuss why a category (and thus functionality) should be removed, then feel free, however keep in mind that (as mentioned above), arguments such as "it's not how it's normally done/it's not like other games" or "it looks cluttered" will likely be ignored without a better justification.

About cheeseandcereal
Joined
10 years ago
Online
1 year ago
Runs
15
Games run
Mega Man Battle Network 6
Mega Man Battle Network 6
Last run 11 years ago
1
Run
Games followed
Toy Story 2: Buzz Lightyear to the Rescue
5,450
visits