Hacking '3x' drive speed.

crazyguy

Active Member
Newcomer
Joined
Oct 3, 2008
Messages
44
Trophies
0
Age
42
Location
Vienna
XP
236
Country
Austria
As some of the chip users have told us:

With the chip forces the DVD drive to 3x the loading times don't be that much longer and the videos are not that worse.

So just adding USB 2.0 support (which isn't nearly as simple as it sounds) will maybe not help with some of the bugs that occure.

Someone needs to optimize some code (don't exactly know if its Waninkoko's code or one of the libs).

I am trying to get knowledge about the code but I am just a small app dev and not a HW dev so its just a fully new world to me
smile.gif


Think we REALY need someone to optimize the code
smile.gif
 

Screemer

Well-Known Member
Member
Joined
Sep 21, 2008
Messages
1,248
Trophies
0
Website
Visit site
XP
143
Country
Gambia, The
Zeek03 said:
If this did get fixed, probably all games would work. Most crashes is because of long loading. We could even have Wi-Fi on MKWii!
have you read one single page in this thread? there are other issues causing the games to crash. it seems we are running in circles here. could eb please read the thread before posting?
 

Lord Kanti

Well-Known Member
Member
Joined
Sep 27, 2008
Messages
94
Trophies
1
Website
Visit site
XP
46
Country
United States
thread update:

3x is aight for most games, 6x is cool but 3x is enough to play 'backups'


maybe modchips are awesome to you but we dont want another post saying "buy a modchip" thats the easy way out and we are trying to achieve something here, figure it out, please.

the PROBLEM is most likely with the code, thats why games glitch out, if it was the speed we'd just see slower loading times. besides the disc has to spin up to 6x its not like it would start at 6 anyways....

so what have we learned?

usb 2.0 is a better focus for increasing speed to run from hdd and to get rid of glitches and increase compatibility we need a cleaned up backup loader or modded disc channel.


and thats it folks, thats all there is to it so far, let me know when a break through has been made, and all the filler in this thread is basically piracy vs. non piracy:


and if you want a recap on that nintendo doesnt just hate piracy it has been cleared up that nintendo was trying to prevent homebrew, end of story. you can say they were percieving future piracy etc. but the truth is no one is psychic and if they were there wouldnt be a homebrew scene right now, figure it out.

piracy might be bad yada yada yada, wiis are still rare, no price cuts in sight, software is going strong... sure looks like the evils of piracy have triumphed once again... :/
 

Isaac356

New Member
Newbie
Joined
Oct 26, 2008
Messages
3
Trophies
0
XP
1
Country
United States
Erant said:
Ok, lecture time. Pay attention there in the back.

I'm going to show you that we're not trying to limit the drive to 3x, or whatever.You could easily
see this in the libdi code, and test it out for yourself, but for the sake of sharing some information,
I'll walk you through the boot process of the drive, and how we communicate with it.

The boot process of the drive is fairly complicated, so I'll just talk about the key points here.
If you want more information, come look me up on #hackmii or #wiidev on EFNet.

All of the following code is written in the non-reprogrammable mask ROM of the drive. We cannot change this
code in any way or shape, save with a modchip.

When you insert a DVD into your Wii, it will start it's internal DiscLogin statemachine. This is a huge
piece of code, which does everything that is required to get to the point where you can read the disc.
Everything up to about half of the statemachine is not all that interesting, that part mainly deals with
calibration and reflectivity detection and whatnot. The interesting part comes at state 0x7F. This is
the state that does the filtering between GC, Wii, and other discs.

Digging around a bit in state 0x7F yields this interesting bit of code:

ROM:0008AA43 movbu (0x40880C), D0
ROM:0008AA48 and 0xF0, D0 ! '­'
ROM:0008AA4B cmp 0xF0, D0 ! '­'
ROM:0008AA4F bne loc_8AAB5
ROM:0008AA51 movbu (0x40880C), D0
ROM:0008AA56 and 0xF, D0
ROM:0008AA59 cmp 0xF, D0
ROM:0008AA5B beq loc_8AA5F
ROM:0008AA5D bra loc_8AAB5


Now, if you've done a little digging around in the drive firmware, you know that at 0x408800 is the first sector of
the current disk. The very first sector of a disc contains stuff like size, and media code, stuff like that.
At offset 0xC of a disc resides the booktype. So what it's doing here is checking for booktype 0xFF (Which is a Wii disc).
If it's not 0xFF, that specific function will return non-zero.

Moving with the resulting codeflow, we see this occur:

ROM:0008F6D7 mov (8,SP), D0
ROM:0008F6D9 or 0x18, D0
ROM:0008F6DC mov D0, (8,SP)

And later:

ROM:0008F7BA mov (8,SP), D0
ROM:0008F7BC mov D0, (0x8576)

This (and only this) sets the lower byte of 0x8576, when we fail the 0xFF check. Keep this in the back of your mind please.

(More checks are done on 0x40880C, part of the reason why you cannot use DVD+R's without bitsetting, but that's for
another time).

The disclogin continues, and ends up in state 0xF2. So, the disc is now logged in. However, as some of you might have noticed
(maybe, possibly), we can only access the DVD at 3x speed. Far slower then the 6x speed I can access a normal Wii disc at.
But aha! Nintendo seems to have foreseen this little problem, and added a nifty function for us to use:
DVDLowSetMaximumRotation, a.k.a SetSpeed.

No luck though, issuing the command does nothing... So, why does it do nothing?

Sending a command to the drive results in the LL controller (the big chip) poking the mn102 with an interrupt. When we trace this
interrupt, and reverse some rather nasty jumptable algorithms, we find the code that gets run when 0xDD is sent to the drive. Digging
a little in the code, we find this:


ROM:0008259E mov (0x8576), D0
ROM:000825A1 btst 0x20, D0 ! ' '
ROM:000825A4 bne loc_825B6


But wait, thinking back a little, we saw that the lower byte of 0x8576 was set to 0x18. btst 0x20, 0x18 will fail, because bit 0x20 is not set in 0x18.
This results in the code skipping the actual speedsetting. And there's nothing we can do to bypass it.

Now, I'm not saying outright that you cannot kick the drive into high gear, but let us think about it for a second. This mode
was put there to allow playback of regular DVDVideo. Reading a normal DVDVideo disc means you're reading everything sequentially. There is
no need for high speed reading here. Why would you allow 6x speed reading, when you're not ever going to use it?

-- Erant, bushing boy.

Please correct me if I'm wrong, but doesn't this mean that if we set the booktype of a DVD+R(W) to 0xFF and load it with DVDx, the lower byte of 0x8576 will not be set (because we won't fail the 0xFF test), and we will be able to use DVDLowSetMaximumRotation on the drive?
 

junk_man32

Banned!
Banned
Joined
Jun 20, 2008
Messages
176
Trophies
0
XP
12
Country
United States
Isaac356 said:
Erant said:
Ok, lecture time. Pay attention there in the back.

I'm going to show you that we're not trying to limit the drive to 3x, or whatever.You could easily
see this in the libdi code, and test it out for yourself, but for the sake of sharing some information,
I'll walk you through the boot process of the drive, and how we communicate with it.

The boot process of the drive is fairly complicated, so I'll just talk about the key points here.
If you want more information, come look me up on #hackmii or #wiidev on EFNet.

All of the following code is written in the non-reprogrammable mask ROM of the drive. We cannot change this
code in any way or shape, save with a modchip.

When you insert a DVD into your Wii, it will start it's internal DiscLogin statemachine. This is a huge
piece of code, which does everything that is required to get to the point where you can read the disc.
Everything up to about half of the statemachine is not all that interesting, that part mainly deals with
calibration and reflectivity detection and whatnot. The interesting part comes at state 0x7F. This is
the state that does the filtering between GC, Wii, and other discs.

Digging around a bit in state 0x7F yields this interesting bit of code:

ROM:0008AA43 movbu (0x40880C), D0
ROM:0008AA48 and 0xF0, D0 ! '­'
ROM:0008AA4B cmp 0xF0, D0 ! '­'
ROM:0008AA4F bne loc_8AAB5
ROM:0008AA51 movbu (0x40880C), D0
ROM:0008AA56 and 0xF, D0
ROM:0008AA59 cmp 0xF, D0
ROM:0008AA5B beq loc_8AA5F
ROM:0008AA5D bra loc_8AAB5


Now, if you've done a little digging around in the drive firmware, you know that at 0x408800 is the first sector of
the current disk. The very first sector of a disc contains stuff like size, and media code, stuff like that.
At offset 0xC of a disc resides the booktype. So what it's doing here is checking for booktype 0xFF (Which is a Wii disc).
If it's not 0xFF, that specific function will return non-zero.

Moving with the resulting codeflow, we see this occur:

ROM:0008F6D7 mov (8,SP), D0
ROM:0008F6D9 or 0x18, D0
ROM:0008F6DC mov D0, (8,SP)

And later:

ROM:0008F7BA mov (8,SP), D0
ROM:0008F7BC mov D0, (0x8576)

This (and only this) sets the lower byte of 0x8576, when we fail the 0xFF check. Keep this in the back of your mind please.

(More checks are done on 0x40880C, part of the reason why you cannot use DVD+R's without bitsetting, but that's for
another time).

The disclogin continues, and ends up in state 0xF2. So, the disc is now logged in. However, as some of you might have noticed
(maybe, possibly), we can only access the DVD at 3x speed. Far slower then the 6x speed I can access a normal Wii disc at.
But aha! Nintendo seems to have foreseen this little problem, and added a nifty function for us to use:
DVDLowSetMaximumRotation, a.k.a SetSpeed.

No luck though, issuing the command does nothing... So, why does it do nothing?

Sending a command to the drive results in the LL controller (the big chip) poking the mn102 with an interrupt. When we trace this
interrupt, and reverse some rather nasty jumptable algorithms, we find the code that gets run when 0xDD is sent to the drive. Digging
a little in the code, we find this:


ROM:0008259E mov (0x8576), D0
ROM:000825A1 btst 0x20, D0 ! ' '
ROM:000825A4 bne loc_825B6


But wait, thinking back a little, we saw that the lower byte of 0x8576 was set to 0x18. btst 0x20, 0x18 will fail, because bit 0x20 is not set in 0x18.
This results in the code skipping the actual speedsetting. And there's nothing we can do to bypass it.

Now, I'm not saying outright that you cannot kick the drive into high gear, but let us think about it for a second. This mode
was put there to allow playback of regular DVDVideo. Reading a normal DVDVideo disc means you're reading everything sequentially. There is
no need for high speed reading here. Why would you allow 6x speed reading, when you're not ever going to use it?

-- Erant, bushing boy.

Please correct me if I'm wrong, but doesn't this mean that if we set the booktype of a DVD+R(W) to 0xFF and load it with DVDx, the lower byte of 0x8576 will not be set (because we won't fail the 0xFF test), and we will be able to use DVDLowSetMaximumRotation on the drive?

um, english please, not code talk C++ or watever
 

Isaac356

New Member
Newbie
Joined
Oct 26, 2008
Messages
3
Trophies
0
XP
1
Country
United States
Arm the Homeless said:
He's trying to tell you what is causing the problem.
Normal people won't understand it, so here's my shortened answer for the problem:
6x isn't used or allowed for DVD because the Wii has no reason to use it.

I'm not ignorant; this was covered in the earlier parts of the thread (unlike normal people, I read a whole thread before I post).

My theory was simply that if we can force the booktype of a disc to be 0xFF, the Wii would not label it as a "other disc", and we could set a minimum drive speed.

It's actually quite logical, if you think about it. If Erant is right about the way (and the order) that the disc check is done, then there is no reason it shouldn't work.
 

TerraPhantm

Well-Known Member
Member
Joined
Jul 27, 2007
Messages
498
Trophies
0
XP
680
Country
United States
Only thing is, you can't set the booktype to 0xFF. When setting the booktype on a DVD+R, it changes the last 4 bits, not the first four. So unless the first four bits are already 1111 on DVD+Rs and if there's a way to set a custom book type, you're not going to be able to set it to 0xFF
 

HowardC

Well-Known Member
Member
Joined
May 4, 2008
Messages
490
Trophies
0
XP
308
Country
United States
I hate to interrupt the constant flame fest, but have you guys even tried 0.3 of the loader? While it's still 3x, the delay isn't even noticable anymore. As I suspeceted, the slowdowns in loading were NOT caused by the 3x limitation, but by the loader itself.

The fact of the matter is, unless a game is loading HUGE chunks off the dvd at a time (which btw is completely impractical due to the wii's memory limitations) 3x vs 6x shouldn't make that much of a difference and the new beta proves this.

Unless you have a stop watch with a second-hand, I dare you to see a difference between loading times at this point.
 

Prawnmatic

Member
Newcomer
Joined
Oct 4, 2008
Messages
22
Trophies
0
XP
163
Country
Isaac356 said:
Please correct me if I'm wrong, but doesn't this mean that if we set the booktype of a DVD+R(W) to 0xFF and load it with DVDx, the lower byte of 0x8576 will not be set (because we won't fail the 0xFF test), and we will be able to use DVDLowSetMaximumRotation on the drive?

I think Arm's comment was directed at junk_man32, not to you.
With regard to your question, there currently doesn't exist a drive or burning utility that would support changing the booktype to that of a Wii disc. My understanding is that some modchips work by doing exactly what you're describing - sending the correct booktype to the drive to "fool" it into thinking it is reading an official disc - but that there is currently no known way to do this through a software hack or burn procedure.
Hope this helps, though there are plenty of folks on this forum with more knowledge on the subject than me.
 

Lumstar

Princess
Member
Joined
Mar 6, 2006
Messages
4,106
Trophies
1
Location
Darling
Website
eonhack.blogspot.com
XP
1,860
Country
United States
Arm the Homeless said:
He's trying to tell you what is causing the problem.
Normal people won't understand it, so here's my shortened answer for the problem:
6x isn't used or allowed for DVD because the Wii has no reason to use it.

Not really. This points toward a different conclusion. It would seem that Nintendo at some point had considered DVD playback on Wii, then decided against it. They didn't end up removing all the DVD related code however. Enough remained for hackers to work with.

In other words, the existing Wii models do not have official support for any discs that adhere to the DVD standard. Retail Wii games use a slightly non-standard format whose actual name is not known to the general public. So it often is referred to as DVD in layman's terms, or Wii Optical Disc in third-party spec sheets.
 

TerraPhantm

Well-Known Member
Member
Joined
Jul 27, 2007
Messages
498
Trophies
0
XP
680
Country
United States
HowardC said:
I hate to interrupt the constant flame fest, but have you guys even tried 0.3 of the loader? While it's still 3x, the delay isn't even noticable anymore. As I suspeceted, the slowdowns in loading were NOT caused by the 3x limitation, but by the loader itself.

The fact of the matter is, unless a game is loading HUGE chunks off the dvd at a time (which btw is completely impractical due to the wii's memory limitations) 3x vs 6x shouldn't make that much of a difference and the new beta proves this.

Unless you have a stop watch with a second-hand, I dare you to see a difference between loading times at this point.

I find Metroid Prime 3 to be a little slow. It's playable, so I don't want it to look like I'm complaining, but yea I noticed MP3 is slow. I don't know if its like that in the retail version, if it is, then I suppose you are correct and the difference between 3x and 6x isn't noticeable. (Although if it isn't noticeable, you'd wonder why they bothered with 6x in the first place).
 

Prawnmatic

Member
Newcomer
Joined
Oct 4, 2008
Messages
22
Trophies
0
XP
163
Country
Haruhi said:
Not really. This points toward a different conclusion. It would seem that Nintendo at some point had considered DVD playback on Wii, then decided against it. They didn't end up removing all the DVD related code however. Enough remained for hackers to work with.

I never see this mentioned anywhere on discussions regarding the 3x DVD playback code but it was announced prior to the Wii's release that DVD playback would be enabled by an external dongle to be released after the launch. Though they never ended up releasing this dongle, it would explain why the code remains on the Wii.
 

Lumstar

Princess
Member
Joined
Mar 6, 2006
Messages
4,106
Trophies
1
Location
Darling
Website
eonhack.blogspot.com
XP
1,860
Country
United States
External dongle? News to me. Worth looking for more information on.

How I understood it, is that due to existing Wii systems not being certified/authorized/etc by the DVD Forum, Nintendo would have to release a new model in order to comply with the DVD license terms.
 

Slowking

Well-Known Member
Member
Joined
Dec 31, 2006
Messages
1,403
Trophies
0
XP
260
Country
Germany
Haruhi said:
In other words, the existing Wii models do not have official support for any discs that adhere to the DVD standard. Retail Wii games use a slightly non-standard format whose actual name is not known to the general public. So it often is referred to as DVD in layman's terms, or Wii Optical Disc in third-party spec sheets.
It is a standard DVD, with added protection in the inner ring and a non-standard file-system.
wink.gif



QUOTE(Prawnmatic @ Oct 27 2008, 07:18 AM) I never see this mentioned anywhere on discussions regarding the 3x DVD playback code but it was announced prior to the Wii's release that DVD playback would be enabled by an external dongle to be released after the launch. Though they never ended up releasing this dongle, it would explain why the code remains on the Wii.
They never said they would release a dongle. They said they would add it later. Which probably meant that they were going to release a DVD-channel through the shop channel (DVDX impersonates this DVD-channel) and I can still see them do it once the Wiis popularity goes down a bit, to boost sales again...
 

Prawnmatic

Member
Newcomer
Joined
Oct 4, 2008
Messages
22
Trophies
0
XP
163
Country
Slowking said:
They never said they would release a dongle. They said they would add it later. Which probably meant that they were going to release a DVD-channel through the shop channel (DVDX impersonates this DVD-channel) and I can still see them do it once the Wiis popularity goes down a bit, to boost sales again...

http://au.cube.ign.com/articles/522/522559p2.html
http://revolutionspecs.blogspot.com/
http://gaming.engadget.com/2005/05/17/nint...omments/490297/
http://www.dancewithshadows.com/tech/nintendo-wii-launch.asp

QUOTE said:
Q: Will Revolution be able to play DVD movies?

A: Yes. However, DVD-movie playback will not be available out of the box. Revolution owners must buy an additional dongle that inserts in front of the machine in order to watch Hollywood DVD movies on the platform.QUOTE
The Wii can be hooked up to a television or a computer monitor. Nintendo Wii users will be able to watch DVD movies too on the console, but will have to buy an extra dongle for this. The dongle is to be inserted in the front of the machine. Wii owners will be able to connect and download Nintendo games online.

It was quite a big deal before the launch of Wii - Like I said, I'm surprised I've never seen it mentioned in discussions about the 3x read speed.
 

Slowking

Well-Known Member
Member
Joined
Dec 31, 2006
Messages
1,403
Trophies
0
XP
260
Country
Germany
Yeah most of those sites copy from each other. As far as I remember nintendo spokes persons only talked about some kind of addon that would enable the playback, which some site took as meaning a dongle, like with the XBOX. I mean where would you put such a dongle in the front of the Wii. There is no slot. Do you think they redisgned the Wii this much and had plans for a big dongle hanging out? and what is with the IOS that takes only calls from the "DVD channel" and not some dongle?
Btw. even a dongle wouldn't unlock 6x, so I don't see how it is relevant in discussion topics about 3x drive speed. o.O
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan @ BakerMan:
    ok, because here it's in september, right before the fuckin school year starts
  • Xdqwerty @ Xdqwerty:
    good night
  • BakerMan @ BakerMan:
    as to you
  • K3Nv2 @ K3Nv2:
    How do you know if the night will be good when you're asleep
  • BakerMan @ BakerMan:
    because i didn't say i was asleep
  • BakerMan @ BakerMan:
    i said i was sleeping...
  • BakerMan @ BakerMan:
    sleeping with uremum
  • K3Nv2 @ K3Nv2:
    Even my mum slept on that uremum
  • TwoSpikedHands @ TwoSpikedHands:
    yall im torn... ive been hacking away at tales of phantasia GBA (the USA version) and have so many documents of reverse engineering i've done
  • TwoSpikedHands @ TwoSpikedHands:
    I just found out that the EU version is better in literally every way, better sound quality, better lighting, and there's even a patch someone made to make the text look nicer
  • TwoSpikedHands @ TwoSpikedHands:
    Do I restart now using what i've learned on the EU version since it's a better overall experience? or do I continue with the US version since that is what ive been using, and if someone decides to play my hack, it would most likely be that version?
  • Sicklyboy @ Sicklyboy:
    @TwoSpikedHands, I'll preface this with the fact that I know nothing about the game, but, I think it depends on what your goals are. Are you trying to make a definitive version of the game? You may want to refocus your efforts on the EU version then. Or, are you trying to make a better US version? In which case, the only way to make a better US version is to keep on plugging away at that one ;)
  • Sicklyboy @ Sicklyboy:
    I'm not familiar with the technicalities of the differences between the two versions, but I'm wondering if at least some of those differences are things that you could port over to the US version in your patch without having to include copyrighted assets from the EU version
  • TwoSpikedHands @ TwoSpikedHands:
    @Sicklyboy I am wanting to fully change the game and bend it to my will lol. I would like to eventually have the ability to add more characters, enemies, even have a completely different story if i wanted. I already have the ability to change the tilemaps in the US version, so I can basically make my own map and warp to it in game - so I'm pretty far into it!
  • TwoSpikedHands @ TwoSpikedHands:
    I really would like to make a hack that I would enjoy playing, and maybe other people would too. swapping to the EU version would also mean my US friends could not legally play it
  • TwoSpikedHands @ TwoSpikedHands:
    I am definitely considering porting over some of the EU features without using the actual ROM itself, tbh that would probably be the best way to go about it... but i'm sad that the voice acting is so.... not good on the US version. May not be a way around that though
  • TwoSpikedHands @ TwoSpikedHands:
    I appreciate the insight!
  • The Real Jdbye @ The Real Jdbye:
    @TwoSpikedHands just switch, all the knowledge you learned still applies and most of the code and assets should be the same anyway
  • The Real Jdbye @ The Real Jdbye:
    and realistically they wouldn't

    be able to play it legally anyway since they need a ROM and they probably don't have the means to dump it themselves
  • The Real Jdbye @ The Real Jdbye:
    why the shit does the shitbox randomly insert newlines in my messages
  • Veho @ Veho:
    It does that when I edit a post.
  • Veho @ Veho:
    It inserts a newline in a random spot.
    Veho @ Veho: It inserts a newline in a random spot.