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:
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)
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.
Polling drift fix:
Reliable polling drift fix for consoles. Does not reduce any additional lag beyond the ~4.1ms avg reduced from eliminating polling drift.
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
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
$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
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
Attachments
-
3.2 KB Views: 374
Last edited: