Project

General

Profile

Actions

Emulator Issues #9016

closed

Dead Frame and Subsequent Input Delay in Super Smash Bros Melee

Added by Practical_TAS over 8 years ago. Updated almost 8 years ago.

Status:
Invalid
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Super Smash Bros Melee

Game ID? (right click the game in the game list, properties, info tab)

GALE01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

0e63d4223b01d9aba596259dc155a174

What's the problem? Describe what went wrong.

A short, indeterminate amount of time after starting the game (roughly 5-10 seconds), a 'dead frame' is observed where no inputs are accepted by Dolphin. After this dead frame, all subsequent inputs are delayed by 1 frame.

What steps will reproduce the problem?

  1. Go to the character select screen.
  2. Pause the game.
  3. Advance frame by frame, alternating the joystick left and right on each frame. The cursor should react immediately, moving left when you advance a frame while holding left, and moving right when you advance a frame while holding right.
  4. Unpause the game, wait 15 or so seconds, and pause again.
  5. Perform step 3 again. The game's reaction should be delayed, and the cursor should react 1 frame late. If you're alternating presses every frame, this will look as though the cursor is moving opposite the direction that you're pressing when you advance a frame.

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?

4.0-7161. Older versions do not help, and some older versions have additional delay frames in addition to the dead frame (ie, the game starts with 1 frame of delay and quickly adds a second frame).

What are your PC specifications? (CPU, GPU, Operating System, more)

I'm on Windows, but other than that, this is irrelevant. The issue is well-known among Melee TASers, and I personally have reproduced it on three different Windows machines with widely varying specs (old laptop, new laptop, and desktop)

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)

I once brought this issue up in Dolphin's irc and was told that it could be a problem with Melee rather than one with Dolphin. This is not the case.


Files

bug9016-report7161.dtm (16.9 KB) bug9016-report7161.dtm dead frame: 783 Practical_TAS, 02/03/2016 04:06 PM
bug9016-report8586.dtm (62.2 KB) bug9016-report8586.dtm dead frame: 712 Practical_TAS, 02/03/2016 04:06 PM
bug9016-report8586-nocheat.dtm (63 KB) bug9016-report8586-nocheat.dtm Practical_TAS, 02/03/2016 06:16 PM

Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #9454: Occasional one frame delay on button input Duplicate

Actions
Actions #1

Updated by Fog over 8 years ago

This is reproducible in other games? What older versions have you tried?

Actions #2

Updated by Practical_TAS over 8 years ago

Fog wrote:

This is reproducible in other games?

I just tested Pokemon XD, and it does not seem to exhibit this behaviour. However, it is difficult to tell with most games because you often don't have control of the game fast enough to see the initial behaviour. In Melee, if you enable the Gecko Code 'Melee Netplay Community Settings', you boot directly to the character select screen and bypass almost all loading. If there is another game that has a code that gives the user immediate control, then that's a good candidate to check the bug's behaviour.

Also, I did not explain this in the bug report, but an additional dead frame shows up later on (3-5 minutes after game start, roughly), meaning that all inputs are delayed by 2 frames from then on. I did not see additional input delay in Pokemon XD after 10 minutes, which leads me to believe that it is not affected by the glitch.

Fog wrote:

What older versions have you tried?

4.0-5400 had the same behaviour as 4.0-7161. I was told that a version from 'two or three years ago' (ie, 3.x) had additional delay, but also that there was a bug fix addressing that issue.

Actions #3

Updated by theincrediblemastere over 8 years ago

Tried anything newer? Lots have changed since 7161, considering we're well on our way to 8000.

Actions #4

Updated by Practical_TAS over 8 years ago

theincrediblemastere wrote:

Tried anything newer? Lots have changed since 7161, considering we're well on our way to 8000.

Just tested right now, 7960 shows the same behavior.

Actions #5

Updated by Practical_TAS about 8 years ago

Hey, just a note, I've tested this in 4.0-8586, which claims to have made some polling improvements to the emulator that benefit Melee, but this behavior is still exhibited in that version of Dolphin.

Actions #6

Updated by Fog about 8 years ago

Practical_TAS wrote:

Hey, just a note, I've tested this in 4.0-8586, which claims to have made some polling improvements to the emulator that benefit Melee, but this behavior is still exhibited in that version of Dolphin.

Can you provide a DTM file which exhibits this behaviour?

Updated by Practical_TAS about 8 years ago

For both of these files, I'm playing Melee with the "Netplay Community Settings" cheat enabled, which gives control to the user from the start of emulation. I move the cursor around on the character select screen, displaying the fact that it is highly responsive. I begin to move the cursor in a square until hitting the dead frame, which can be seen in frame advance as the cursor moving in the same direction two frames in a row. After this point, every input is delayed by one frame, so I need to input the direction I want the cursor to move one frame ahead of time in order to continue creating the square after the dead frame.

The second number in the name of each dtm file is the dolphin version that the file was created in.

Actions #8

Updated by Practical_TAS about 8 years ago

Oh, I can't see the "note" section of the files, which is where I originally put the exact dead frames. In 7161.dtm, the dead frame is frame 783; in 8586.dtm, it's frame 712.

Actions #9

Updated by Fog about 8 years ago

Could you try it without the cheat to see what happens?

Actions #10

Updated by Practical_TAS about 8 years ago

This file displaying the bug with no cheats. Dead frame is 525.

Actions #11

Updated by Fog about 8 years ago

Practical_TAS wrote:

This file displaying the bug with no cheats. Dead frame is 525.

Looked at the DTM file, it does capture one lag frame and records it in the header of the DTM file.

If you stop moving the stick and move the stick again after a little bit, does it resume normal behaviour?

Actions #12

Updated by Fog about 8 years ago

Hmm, looking at the other two DTM files, they don't exhibit the lag frame in the DTM header.

I'll have to look at this further.

Actions #13

Updated by Fog about 8 years ago

So doing some initial testing, there are actually three frames of lag being introduced. So if you go left right left stop, once you stop (the fourth frame), the inputs from the prior three frames will play out.

It's hard to tell if this is issue happens on console or not.

Actions #14

Updated by Fog about 8 years ago

Before the "dead frame", you have two frames of lag. So it introduces another frame of lag later on.

Actions #15

Updated by Practical_TAS about 8 years ago

If you stop moving the stick and move the stick again after a little bit, does it resume normal behaviour?

No, I've never seen it revert to normal behaviour.

So doing some initial testing, there are actually three frames of lag being introduced. So if you go left right left stop, once you stop (the fourth frame), the inputs from the prior three frames will play out.

Before the "dead frame", you have two frames of lag. So it introduces another frame of lag later on.

Wow, that hasn't happened to me. I know Dolphin sometimes ignores the very first input performed, but I've never had three frames of lag on 7161+.

Actions #16

Updated by Fog about 8 years ago

Practical_TAS wrote:

If you stop moving the stick and move the stick again after a little bit, does it resume normal behaviour?

No, I've never seen it revert to normal behaviour.

So doing some initial testing, there are actually three frames of lag being introduced. So if you go left right left stop, once you stop (the fourth frame), the inputs from the prior three frames will play out.

Before the "dead frame", you have two frames of lag. So it introduces another frame of lag later on.

Wow, that hasn't happened to me. I know Dolphin sometimes ignores the very first input performed, but I've never had three frames of lag on 7161+.

It should match up with what you're experiencing where it reverses after a bit. However, I still don't know for sure if it's an issue that happens specifically with Melee in Dolphin or just happens in Melee in general.

Actions #17

Updated by JosJuice about 8 years ago

Actions #18

Updated by Practical_TAS almost 8 years ago

I have recently become aware of Ishiiruka, a fork of Dolphin.

Ishiiruka has an option not present in Dolphin called "Double Video Rate Hack", which appears to double the rate at which inputs are polled without changing the frame rate of the output video. The bug present here is NOT present in recent builds of Ishiiruka, as explained in this link (Scroll down to the heading "Dead Frame Input Lag")

This leads me to believe that the issue is in fact a problem in Dolphin and not in Melee.

Actions #19

Updated by JosJuice almost 8 years ago

Last time I checked, the point of Double Video Rate Hack was specifically to change the framerate. That you don't get the input delay when using it doesn't prove that this problem doesn't happen on console, since the hack makes Ishiiruka act in a way that's impossible for real consoles. Thanks for letting us know, though.

Actions #20

Updated by Practical_TAS almost 8 years ago

JosJuice wrote:

Last time I checked, the point of Double Video Rate Hack was specifically to change the framerate. That you don't get the input delay when using it doesn't prove that this problem doesn't happen on console, since the hack makes Ishiiruka act in a way that's impossible for real consoles. Thanks for letting us know, though.

You're right, that's my mistake. I jumped the gun upon finding that there's a Dolphin fork that doesn't come with the dead frame issue.

I should clarify, however, that Ishiiruka doesn't suffer the dead frame issue at all, whether or not Double Video Rate Hack is enabled. Without the hack, it has a consistent 1 frame delay when TASing, from the start of emulation; with the hack, there's no delay at all. In both cases, the dead frame as described in this bug report does not appear.

Actions #21

Updated by JMC4789 almost 8 years ago

Ishiiruka should be identical in regards to the lag. I wonder if it's just something stupid like framelag due to shader generation.

Actions #22

Updated by Practical_TAS almost 8 years ago

This can be closed. As per https://youtu.be/x2hu5ZEuzcc?t=4m8s, Dan Salvato has done some research on Melee and in the process discovered that this issue stems from a bug in Melee itself.

Actions #23

Updated by Helios almost 8 years ago

  • Status changed from New to Invalid

Neat.

Actions

Also available in: Atom PDF