Input Lag Compensation to compensate for game's internal lag?

What are you using to get it on a TV? Just a composite output connection from the computer?

I take VGA output and connect it directly to the RGB (and Sync) inputs on the mixer chip of my CRT TV.

Coupled with custom modelines in the OS, a 15kHz signal can be generated to approximate an arcade display.

You can see the details for my specific mod here: https://shmups.system11.org/viewtopic.php?p=1258657#p1258657

thanks a lot for this new option, you guys are great, I finally have the same feelings as on my old console snes, if it could work with the hack speed snes9x it would be even better . I’m thrilled, thanks

Interesting comment from the Reddit thread:

”I just tried this and its really neat, however in megaman and mario, when I hold the run button it becomes more like a turbo button. You will see mario shoot fireballs randomly, or megaman shoot his blaster in one frame but still charged in the other. Using 1 frame run ahead with bsnes core. 8700k intel processor. No frame delay.”

I haven’t had the chance to try to replicate this. Anyone else care to take a shot at it?

Can not replicate that issue at all.

I haven’t noticed anything of this kind either, however the option to reduce the lag has a strange behavior with the hackspeed of snes9x, there are screen jumps .

Which Snes9x, which game, and which setting triggers it?

That’s about the “reduce slowdown” option I made that changes the internal cycles length of snes9x, it’s in every snes9x cores.
That’s causing the “dual instance” cores to lose sync if you change that setting during runtime.

Making a core option override with the cycle overclock works if you don’t touch it then.

You can reproduce that by running Super R-Type, changing “reduce slowdown” to “max” and charging the mega beam (2nd red power gauge).
Shooting it usually causes a slowdown that will desync the cores.

I used the latest version of snes9x, the one recommended on the main page of the site. Windows 7 no aero, driver directX11, speedhack snes9x (compatible or full are same result) and reduce lag 1 and instance for audio is on

the game is parodius da

speedhack + frame delay 15, but NO reduce lag option = ok game run smooth

speedhack + frame delay 15 and reduce lag option on = screen jump

speedhack + frame delay 0 and reduce lag option on = screen jump

I also had some problems in mario smw; it seems that this new option doesn’t like the speed hack option, it’s annoying because the speed hack allows to remove slowdowns like in gradius 3 for example

In any case, I admire your work very much. And thank you Tatsuya79 for your invention, the flame thrower in contra 3 works much better.

Yep, looks like I just gotta forward core options changes to the secondary core as well. Only the primary core sees them right now.

Edit: more specifically, it’s RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE, which loses its value once polled. But now two cores need to read this value, so I need to handle that.

edit: Sent in pull request.

4 Likes

Applied the speedups for Genesis Plus GX.

I made a video showing the issue I have been having in all bsnes cores except for bsnes performance (reddit post mentioned previously). Using a 8700k , with 1080ti GPU, Keyboard controller. The problem starts at 1 min, and in the video I show it disappearing when I disable the feature. I have tried disabling shaders and changing different video settings.

Yeah that’s a desync all right. I just reviewed the code for input, and found an issue there, I’ll see if that fixes anything.

edit: Tried the changed verison, and it did not fix the problem… back to the drawing board…

But I was able to reproduce the problem in “Bsnes Balanced”, and could NOT reproduce the issue in “Beetle Bsnes”/“Mednafen Bsnes”. (don’t say “all of them” until you’ve reproduced the problem in all 9 bsnes cores)

Ok, I applied speed up with genesis gx (I put 125%) and actually I have the same concerns as with snes9x . I used the same settings as before.

With the new Genesis+GX core, the display is frozen if you don’t touch any input for a while playing the first Megadrive Sonic.
Happens with 2nd instance activated.

(0aa222ecd8d2d0f0c5b60b9f571ff7292cc68f6b worked fine)

Ran Sonic 1 with fast forward until time ran out, didn’t see anything like that happen. Now running it without fast forward, and it’s not freezing or anything either.

edit: Ran out of time and the screen never froze. Using Sonic 1 Japanese rom.

Sorry you are right , just tested mednafen and everything is working great there. The bsnes cores I was able to produce the desync were the mercury balanced, mercury accuracy, bsnes balanced and bsnes accuracy.

It would make sense that the same cores that have issues with desyncing from netplay would also desync with multi-instance runahead, since it’s the same issue of non-determination.

For those, I think you’ll just have to disable multi-instance.

Try watching the demo, not touching a button.
It usually keeps the sega logo onscreen (nuke sound) / a black screen (Mame sound) while still running the music in background.
If everything is running fine, hit A, B or C once and wait a bit, it should freeze the display.
Hitting a button again, the video resumes.

Using “Sonic The Hedgehog (Japan, Korea)” no-intro.

Okay, I’m seeing the problem on the Buildbot builds and my own MingW build, but not my own MSVC builds.

edit: Disabling Audio Hard Disable prevents the issue, now I gotta see what’s going on here.

Edit: Fixed it and sent in pull request.

2 Likes