• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Completed Video Lag Reduction Codes For Console

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,349
I present codes designed for console play that reduce video lag, and also simultaneously fix the Polling drift phenomenon. To get a simplified notion on what polling drift and video lag reduction is about, you may watch a youtube by Hax. (Hax consulted me as a source). Also note that there's significant differences with how Dolphin / FM works compared to console. These codes aren't optimal for emulator play. In addition to the gecko codes, this post has an attached archive containing ready GCTs with the lag reduction codes (and basic unlock codes), with and without UCF.

Half frame reduction:

Code:
$Half frame video lag reduction + poll drift fix BETA [tauKhan]
C21A4D98 00000007
8062A6F4 2C030001
40820028 8062A6F0
2C030002 4182001C
386DBD88 3D808034
618CBA14 7D8803A6
4E800021 4BFFFFD4
60000000 00000000
C21A5050 0000000B
8062A6F4 2C030001
40820044 8062A6F0
2C030002 40820038
4800001C 8062A6F0
2C030002 41820028
8062A6F4 2C030001
4082001C 386DBD88
3D808034 618CBA14
7D8803A6 4E800021
4BFFFFD4 38600000
60000000 00000000
C21A4BEC 00000015
4800007D 7C0802A6
90010004 9421FFF8
386DBD88 8082A6F0
38840001 9082A6F0
2C040001 40820014
3D808001 618C95FC
7D8803A6 4E800021
8082A6F0 2C040002
40820014 3D808034
618CBB00 7D8803A6
4E800021 38600001
9062A6F4 38604000
38635624 3C808043
B0642A42 8001000C
38210008 7C0803A6
4E800020 7C6802A6
3D808034 618CE894
7D8803A6 4E800021
3C608048 3C80801A
380446F4 38800000
60000000 00000000
04158268 C82280A0
C234EB60 00000007
8062A6F0 2C030001
4080001C 38600000
9062A6F4 3C608043
38804000 388455FC
B0832A42 38600000
9062A6F0 386DBD88
60000000 00000000
04397878 4800020C
This code reduces video lag by half a video frame, from around 2.5 frames to 2.0 frames. In my opinion, this code is probably the most suitable option if you're aiming to produce crt-like experience when using a HDMI-adapter and a modern gaming monitor with your console. The code also works with a console + crt setup. I personally believe that it does offer a better experience than traditional melee, but tournament usage is of course up to the community and organizers.

The code operates by readjusting the timing at which Melee's frame-engine begins relative to video interface and controller polling. With the code, frame procession begins at mid-screen, rather than during video frame ending retrace (transition period "between" video frames). That cuts the time between frame production finishing and a new video frame beginning (where that produced frame will be shown) by ~half a video frame.

The code has so far been tested basically only in-house with limited resources, so there may still exist issues I'm not currently aware of.


Full Frame Reduction [IMPORTANT: ONLY WORKS WHEN RUN WITH NINTENDONT] (need the additional power wii offers)

Code:
Full frame video lag reduction + Poll drift fix [tauKhan]
041A4C24 C0429A7C
0401985C 3C60804C
04019860 91231F5C
C2376200 00000003
2C1DFFFF 41820008
48000008 93A2C150
60000000 00000000
C21A5018 00000005
3B5A0001 8002C150
2C00FFFF 38000000
9002C150 3D80801A
618C5078 7D8903A6
4D820420 00000000
04218D68 C8228000
04397878 4800020C
This code reduces video lag by a full frame. It might be a better choice for usage with slower monitors, but reduces more lag than using a fast lcd-monitor instead of crt adds.


$Universal Controller Fix v0.8 (NTSC 1.02)
C20C9A44 0000002B
D01F002C 7C0802A6
90010004 9421FF00
BE810008 48000121
7FC802A6 C03F0894
C05E0000 FC011040
40820118 808DAEB4
C03F0620 FC200A10
C044003C FC011040
41800100 887F0670
2C030002 408000F4
887F221F 54600739
408200E8 3C60804C
60631F78 8BA30001
387DFFFE 889F0618
4800008D 7C7C1B78
7FA3EB78 889F0618
4800007D 7C7C1850
7C6319D6 2C0315F9
408100B0 38000001
901F2358 901F2340
809F0004 2C04000A
40A20098 887F000C
38800001 3D808003
618C418C 7D8903A6
4E800421 2C030000
41820078 8083002C
80841ECC C03F002C
D0240018 C05E0004
FC011040 4181000C
38600080 48000008
3860007F 98640006
48000048 7C852378
3863FFFF 2C030000
40800008 38630005
3C808046 6084B108
1C630030 7C841A14
1C65000C 7C841A14
88640002 7C630774
4E800020 4E800021
40000000 00000000
BA810008 80010104
38210100 7C0803A6
60000000 00000000
C20998A4 00000026
7C0802A6 90010004
9421FF00 BE810008
7C7E1B78 83FE002C
480000DD 7FA802A6
C03F063C 806DAEB4
C0030314 FC010040
408100E4 C03F0620
48000071 D0210090
C03F0624 48000065
C0410090 EC4200B2
EC210072 EC21102A
C05D000C FC011040
408100B4 889F0670
2C040003 408100A8
C01D0010 C03F0624
FC000840 40800098
BA810008 80010104
38210100 7C0803A6
8061001C 83E10014
38210018 38630008
7C6803A6 4E800020
FC000A10 C03D0000
EC000072 C03D0004
EC000828 FC00001E
D8010080 80610084
38630002 3C004330
C85D0014 6C638000
90010080 90610084
C8210080 EC011028
C03D0000 EC200824
4E800020 4E800021
42A00000 37270000
43300000 3F800000
BF4CCCCD 43300000
80000000 7FC3F378
7FE4FB78 BA810008
80010104 38210100
7C0803A6 00000000
C22662D0 0000001A
7C0802A6 90010004
9421FF00 BE810008
48000089 7FC802A6
38600000 38800000
3D80803A 618C6754
7D8903A6 4E800421
7C7F1B78 38800001
989F0049 38800001
989F004A C03E000C
D03F0024 D03F0028
7FE3FB78 48000059
7C8802A6 C03E0000
C05E0004 3D80803A
618C6B98 7D8903A6
4E800421 7C641B78
7FE3FB78 C03E0008
C05E0008 3D80803A
618C7548 7D8903A6
4E800421 48000024
4E800021 42180000
C3898000 3EE66666
3DCCCCCD 4E800021
55434620 302E3800
BA810008 80010104
38210100 7C0803A6
38980000 00000000
C20908F4 00000017
7C0802A6 90010004
9421FF00 BE810008
2C030001 4082008C
C03F0628 FC200A10
806DAEB4 C0430210
FC011040 40800074
3F80804C 639C1F78
8BDC0001 387EFFFE
889F0618 48000029
7C7D1B78 7FC3F378
889F0618 48000019
7C7D1850 7C6319D6
388015F9 7C041800
48000038 7C852378
3863FFFF 2C030000
40800008 38630005
809C0008 1C630030
7C841A14 1C65000C
7C841A14 88640002
7C630774 4E800020
BA810008 80010104
38210100 7C0803A6
60000000 00000000

Polling drift fix:

Code:
$Polling drift fix[tauKhan]

c21a5050 00000003
3c60804c 88631f7b
2c030000 4182fff4
38600000 00000000
041a4c24 c0429a7c
0401985c 3c60804c
04019860 91231f5c
Reliable polling drift fix for consoles. Does not reduce any additional lag beyond the ~4.1ms avg reduced from eliminating polling drift.
 

Attachments

Last edited:

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,349
Update:

EDIT 3/23: MCM patching instructions have been completely remade, as the previous method didn't really work.

The DI draw code in 20xx has an allocation issue that occasionally leads to 20xx using an old reference instead of properly allocating memory for it's structures. The problematic allocation test is based on the number of game-engine cycles run before the first gx render cycle. That number isn't always consistent even without extra mods and can cause crashes even on non-modified 20xx. It's especially unstable with many codes that change controller reading timings, such as my lag reduction codes in the OP.

Therefore, if you're playing on unmodified 20xx 4.07++ , I highly recommend using the following codes to patch the issue (Note that the code is 20xx version specific, works only on unmodified 4.07++)

Code:
$20xx4.07++ DIDraw Memory Allocation Fix
04192664 80639D5C
04192668 2C030000
Applying this patch to 20xx 4.07++ via MCM v4.3:

Modifying 20xx with a program like MCM requires some important extra steps:

1) Exclude all default mods from your MCMs mods library, for instance by renaming the "mods library" folder in the programs root. If you run MCM at this stage, the program should have 0 mods present.

2) Create a new "Mods Library" folder, and add the file "20XX 4.07++ Codes With Fixed DI Draw.txt" (the file attached to this post) to that empty library. In addition to basic 20xx mods, that file includes a fixed version of "DI Draw - GX call" mod, which had the bug in original release.

2*) If you wish to add mods besides the fix, then add those to the library. MCM 4.3 can convert a lag reduction code or ucf from the OP into dol mod automatically through the "Import Gecko Code" option when creating a new mod in "Mod Construction" tab. If you are working with already modified 20xx iso, you'll need to have those extra mods in your mods library when making changes.

3) Run MCM, open your iso/dol you want to modify. Click Code-Space Options, select "20xxHP code regions", and deselect all other regions.

Select to add DI Draw - GX call mod, or "select all" from the "20XX 4.07++ Codes With Fixed DI Draw" -page

4) Save, and you're done.
 

Attachments

Last edited:

SheepHair

Smash Rookie
Joined
Jun 29, 2015
Messages
3
Has the half frame reduction code been extensively tested by anyone yet, or are there any known issues with it? I'm kind of surprised to find it's still listed as being in beta considering Hax's video on the subject is nearly 2 years old, which is where I first learned about these codes, and the codes are mentioned in that video. Has the code been changed since then at all?
 

Coze

20YY Cultist
Joined
Mar 19, 2016
Messages
22
Location
Kingston, Massachussetts
Is there a code for just PD Fix? Playing on CRT w/ 20XX so I don't need lag reduction but I'd still like PD Fix as you can't use Nintendont Slippi + 20XX
 
Last edited:

lzer0

Smash Apprentice
Joined
Jan 31, 2016
Messages
102
Location
Venezuela
Slippi.gg
LULZ#434
There's a new 20XX Melee Training Hack Pack (v5.0 - 11/21/2021)

It might be worth noting it includes all the codes OP previously listed so if you don't need to play Nintendont Slippi it might be worth trying it out.
It also fixes the DI Draw bug and the only extra step you would need is to fix some custom costume thingy at the CSS for a few characters that anyways don't matter really much so it's just a minor aesthetic issue.
 
Top Bottom