Hacking cIOSX rev21: controller lag [FIXED!]

FIX94

Former Staff
Former Staff
Joined
Dec 3, 2009
Messages
7,284
Trophies
0
Age
30
Location
???
XP
11,248
Country
Germany
xabby666 said:
EDIT: Ok dudes. I've tried to solve the wiimote issue. If you want to try you can build your cios with this EHCI.APP module. Tell me if lag is assent and if wiimote sync is fast in wiiflow. Remember, i'm doing this for fun, if you don't want to test, to install, to builds new cioses tell me and i finish to bore you.
I never had this sync issue, I'm using cfg-loader, but I want to say that everything still works fine in every game, thanks for fixing this sync issue for those people
yaywii.gif
 

tueidj

I R Expert
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
XFlak said:
Seriously though, I notice that you often tell people how to do something instead of doing it yourself. I've always wondered why you don't just do it yourself, especially when no one is able to follow your complicated instructions (not because you don't explain it well, but just cuz its over most ppl's heads to begin with). Anyways, I'm sure the advice your giving is sound... but I doubt some1 else from this thread is going to be able to implement your suggestion without some serious help... and u know what they say... if u want something done right, do it yourself!!
biggrin.gif
If I see someone trying to write code that they obviously don't understand I would rather have them understand why they're doing it wrong than just give them a quick-fix answer. Otherwise nobody learns anything and I end up being called upon every time the code needs to be updated. I thought the point of a forum was for people to help each other, not just sponge off the one person who knows what they're doing.

This isn't really hard stuff here; timers have initial and repeat periods, when their time period has elapsed they send preset messages to the message queues which are retrieved by os_message_receive.
I've already explained what the 3 parameters are for: the target timer id, the initial period for the first message, and the repeat period for each subsequent message. I don't know what values the original rev20 used but I would suspect it used a bad initial period seeing as it called the argument "dummy" (if the initial period is 0 the timer is effectively disabled since the first message will never be sent).
 

Dent

Well-Known Member
Member
Joined
Feb 24, 2008
Messages
203
Trophies
1
XP
452
Country
Canada
tueidj said:
XFlak said:
Seriously though, I notice that you often tell people how to do something instead of doing it yourself. I've always wondered why you don't just do it yourself, especially when no one is able to follow your complicated instructions (not because you don't explain it well, but just cuz its over most ppl's heads to begin with). Anyways, I'm sure the advice your giving is sound... but I doubt some1 else from this thread is going to be able to implement your suggestion without some serious help... and u know what they say... if u want something done right, do it yourself!!
biggrin.gif
If I see someone trying to write code that they obviously don't understand I would rather have them understand why they're doing it wrong than just give them a quick-fix answer. Otherwise nobody learns anything and I end up being called upon every time the code needs to be updated. I thought the point of a forum was for people to help each other, not just sponge off the one person who knows what they're doing.

This isn't really hard stuff here; timers have initial and repeat periods, when their time period has elapsed they send preset messages to the message queues which are retrieved by os_message_receive.
I've already explained what the 3 parameters are for: the target timer id, the initial period for the first message, and the repeat period for each subsequent message. I don't know what values the original rev20 used but I would suspect it used a bad initial period seeing as it called the argument "dummy" (if the initial period is 0 the timer is effectively disabled since the first message will never be sent).
So Tueidj, if daveboal and xabby666 really try right now but then admit that they do not know how to fix it, would you then help us all out?
 

XFlak

Wiitired but still kicking
Member
Joined
Sep 12, 2009
Messages
13,883
Trophies
3
Age
38
Location
Cyprus, originally from Toronto
Website
modmii.github.io
XP
9,919
Country
Cyprus
Download ModMii 4.4.6D-BETA HERE



This is a special test version of ModMii for people experiencing controller lags with rev21 cIOSs

This BETA version of ModMii can build the following cIOSs (using xabby666's mod of waninkoko's rev21 EHCI module) for testing from Download page 4:
  • cIOS249[37]-v21[LagFix].wad
  • cIOS249[38]-v21[LagFix].wad
  • cIOS249[56]-v21[LagFix].wad
  • cIOS249[57]-v21[LagFix].wad
The only difference between this and 4.4.6C-Beta is that it includes daveboal/xabby666/waninkoko's rev21 EHCI lagfix2 mod instead of lagfix1.

There might be another Beta release sometime soon if someone eventually implements tueidj's recommendations to further improve rev21's EHCI module.


Enjoy!
 

xfcrowman

Well-Known Member
Member
Joined
Mar 14, 2009
Messages
431
Trophies
0
XP
205
Country
United States
tueidj said:
If I see someone trying to write code that they obviously don't understand I would rather have them understand why they're doing it wrong than just give them a quick-fix answer. Otherwise nobody learns anything and I end up being called upon every time the code needs to be updated. I thought the point of a forum was for people to help each other, not just sponge off the one person who knows what they're doing.

Off topic: I agree that providing help is better than providing a quick fix answer, as the person who has the problem will learn something as they try to solve the problem. I'm a neuroscientist and have no coding experience, but thanks to this forum (and several others) I now have a very basic understanding of coding and can write some simple programs in Matlab for my data analysis.

On topic: @davebaol & xabby - I hope that the information provided by tueidj can help you figure out how to get os_restart_timer working properly (with 3 arguments). Perhaps there is some info about this on wiibrew that can help as well.
 

kamiro04

Well-Known Member
Newcomer
Joined
Dec 3, 2010
Messages
62
Trophies
0
XP
94
Country
Argentina
TheRealVisitor said:
Sorry to say this guys but I tried xabby666s new modded ehci.app with cios249 and base57 and the sync issue with wiiflow (latest) is still there. When using the forwarder syncing is slow as with the davebaols ehci.app (7-8 sec). Syncing when starting through HBC it is a little bit faster now (about 5 sec).

Since this happens only here, you can ignore this and use the new modded superior ehci.
laugh.gif


Games still run fine, lagfree.

So Xflak, use the new EHCI.app for ModMii.
I use both CFG and wiiflow (tried from SD and a "does-lag" USB drive) and don't have any sync problem, can you share your setup? maybe i can help.
 

davebaol

Well-Known Member
Member
Joined
Sep 3, 2010
Messages
912
Trophies
0
XP
192
Country
Italy
Please test and report.
You should notice nothing different than before but now o_restart_timer has been called with 3 arguments and correct values.
It's based on our lagfix so don't worry, mate.
happy.gif
 

davebaol

Well-Known Member
Member
Joined
Sep 3, 2010
Messages
912
Trophies
0
XP
192
Country
Italy
Oh, fotgot to mention the use of os_restart_timer was very buggy.
In usbstorage.c there was this line
QUOTE said:
os_restart_timer(1000000, 10000000);
That's obviously meaningless since the 1st argument should be the timerId which is always generated by calling os_create_timer so it cannot be a constant known at compile time.
 

davebaol

Well-Known Member
Member
Joined
Sep 3, 2010
Messages
912
Trophies
0
XP
192
Country
Italy
He's too much busy with ps3 at the mo and we are really close to a definitive fix.
When we'll have a final release we'll find a way to let him know so all changes can be committed.
 

jesquinas

Well-Known Member
Member
Joined
Apr 14, 2010
Messages
117
Trophies
0
XP
44
Country
davebaol said:
Oh, fotgot to mention the use of os_restart_timer was very buggy.
In usbstorage.c there was this line
QUOTE said:
os_restart_timer(1000000, 10000000);
That's obviously meaningless since the 1st argument should be the timerId which is always generated by calling os_create_timer so it cannot be a constant known at compile time.
And therefore os_restart_timer returns error almost sure.

Greetings.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/Y9WKPRUjNQ4?si=raUf8jEiET8rmH2P