Talk:CTGP Revolution

From Custom Mario Kart
Jump to navigation Jump to search
Attention!

Old talk is archived at Talk:CTGP Revolution/Archive. Please continue discussion on this page.

The Track Wishlist has moved here: CTGP Revolution/Track Wishlist. Track suggestions and reports of bugged tracks go on the Track Wishlist.

CTGP V 1.03

One question. Is it a problem to deactivate the fast aiparam cpu for one player mode?? On some tracks the cpu are to fast. And some tracks are not update on ctgp from wiimm he has to processed with much time.--Snake 18:58, 19 January 2014 (UTC)

A couple of things to ask here. Can I actually have 215 different songs (not 216 because of Mario Circuit and Luigi Circuit same brstm)? And if so, where can I get all of the correct files names? And for tracks that are initially played with songs that require multichannel brstms, do i need to use a multichannel brstms for that particular track? And if so, since I'm completely confused about it, how do i do it? --Aleuuhhmsc 1:59 PM CST, 1/21/2014

Copyright Violation

It seems a lot of code has been ripped directly from Riivolution and included in packages/chan/main.dol (inside blob.bin). Can the authors please explain this (without pretending to be innocent please - the code is byte-for-byte identical) ? Tueidj (talk) 05:20, 20 January 2014 (UTC)

Seems we're not the only people who like reverse engineering! Yes, a small section of the code base is from Riivolution, specifically the exploit which enables it to install on Wii U. Following a conversation with one of the development team at the Riivolution IRC, I got the impression this would be acceptable, however if you wish to pursue the matter we could remove the code. We don't actually have credits on our channel yet, but we were intending to add a mention on them. Can we come to some agreement? I can come by the IRC again if that would be more convenient for discussion.
Chadderz (talk) 18:35, 20 January 2014 (UTC)
Who exactly did you talk to/where did you talk to them? Because nobody has any memory of any such conversation occurring. Tueidj (talk) 23:54, 20 January 2014 (UTC)
I honestly don't recall; it was probably around 2 years ago when development of our channel was first starting. The CTGP-R Mod previously used Riivolution as its back end, so I went to the IRC to ask if it would be possible to either obtain the source or for you to add the necessary features yourselves. It became clear that neither of those options would happen, however they seemed happy for me to reverse engineer anything necessary from Riivolution (this was specifically mentioned). We were able to do almost everything else without need of your code, but Riivolution 1.05+ is one of the only channels with a Wii U exploit, so this was the only time it was necessary to look at your code.
Chadderz (talk) 05:31, 21 January 2014 (UTC)
There is reverse engineering and then there is stealing; this a plain case of the latter since the code has been copied exactly, including the SNEEK workaround and the crafted TMD/Ticket signatures that took nearly a week of computing power to bruteforce. It's actually pretty dangerous to run that code without first verifying the authenticity of the IOS, the code for which you didn't copy or implement at all. I also don't understand your explanation of it pertaining to the Wii U only; there is nothing specific to the Wii U regarding that code and the alternative workarounds available for the Wii apply just as well to the Wii U. Tueidj (talk) 05:52, 21 January 2014 (UTC)
Yes, I can't argue with that, we did take the code directly. I still don't know how the code works, it's just a black box to me, so maybe we did copy more than just Wii U specific methods, however that was the only reason it was used. If there is any danger associated with the code, that is obviously a top priority for us, so I would appreciate you elaborating on that. I was certainly not aware of a public Wii U exploit that would allow us to install a title, but if there is one then obviously we can switch to that. As I said at the beginning, we can remove this code if you insist, but at the end of the day all we really want to do is play Mario Kart. We did take some of your code, and maybe that was wrong, but we didn't do so out of any malice, we are just trying to make a game mod here. I have nothing but respect for Riivolution, and it is a pity it could no longer meet our needs, so I hope this can be peacefully resolved.
Chadderz (talk) 06:43, 21 January 2014 (UTC)

Sorry to butt in, but may I recommend more suitable private methods of communication? The Wiiki isn't exactly the best of places to have a long winding conversation. Thanks! --Torran (talk) 06:46, 21 January 2014 (UTC)

True that, @Tueidj would email be acceptable?
Chadderz (talk) 06:48, 21 January 2014 (UTC)

I would rather finish this conversation here in public rather than have it turn into another case of "he said this, we said that" at some point in the future.

Using the exploit is dangerous because unlike the "runtimeiospatch" patches (which simply look for a known pattern and modify it), it triggers a stack overflow to redirect the CPU's execution path. When the nasty stuff is done, you can't just return to where you came from (due to the stack being trashed) so it jumps directly to a known "safe" point. If the IOS has been modified that point may not be safe at all, it might be in the middle of the "update boot2" routine for example or it may trigger the ES module's "failsafe" mode which causes it to wipe the wii's NAND.

Regardless, you still haven't given a proper explanation of why you need the exploit. All it does is disable AHBPROT which HBC already does for you. Installing a custom title (on either Wii or Wii U, they are no different in this regard) requires patching the signature check which the exploit does not do. Perhaps you could explain why you think installing a custom title on a Wii U is different from installing a custom title on a Wii, and why the patches you're "borrowed" from other GPL projects are insufficient. Tueidj (talk) 05:40, 24 January 2014 (UTC)

That does sound pretty dire, although rather unlikely. Most likely the core would just encouter a bad instruction/address and die. What we need to be done to ensure this wouldn't happen?
Like Riivolution a large portion of our userbase don't necessarily have/want HBC. We could just rely on the AHBPROT from HBC, but then those users who don't wish to use it (often stating they fear it is associated with piracy) wouldn't be able to install the channel. We use AHBPROT to get MEMPROT, which we use to install the runtimeios patch, allowing fakesigning. This is the only IOS work we do in the whole channel, we designed the rest of it to stay exclusively on the PPC core, since that's a much safer and neater design. We have not taken any code from a project which stated it was GPL, so if the code is originally from a GPL project, someone somewhere along the line must've removed the license.
Chadderz (talk) 06:36, 24 January 2014 (UTC)
So the use of the exploit has nothing specifically to do with the Wii U as you earlier claimed, but is just a workaround for being able to install a custom title without first installing HBC. That doesn't make logical sense, if a user is going to install your channel then they have no reason not to install HBC first (which would remove the need for executing the dangerous exploit) since it is no more illegitimate than the CTGP-R channel. Or they could just run CTGP-R from Riivolution, which you already provide instructions for. I think the real reason you included the exploit code was simply for bragging rights ("A homebrewless-method of loading Custom Tracks on v4.3 for any region is now available!") and since you didn't actually do that work yourself (plus the possible safety issue), I'm inclined to insist you remove Riivolution's code from your release. Tueidj (talk) 07:44, 24 January 2014 (UTC)
The exploit is to get AHBPROT to get MEMPROT to install the channel, specifically on Wii U since Wii install can be done by other means, but we couldn't find another way of doing it on Wii U. We have only ever done PPC side work on the Wii up to this point, the IOS remains largely a mystery to us, so if there is another way to do it on Wii U I'm simply not aware of it. Our distribution always used to work from Riivolution which was capable of installing itself without HBC, so our users have come to expect this. Whether this makes logical sense to you or not, this is what they have told us they want. I promise you bragging rights have nothing to do with this, as I said all we're trying to do is make a great game mod here, I honestly don't care what people think of me, I'm just trying to give our users what they have asked for and expect, and have a good time playing the game. All that said, it's your right to ask us to remove it so we will. It may take us about a week to get the update tested and out. I sincerely apologise for all this, I honestly did not think you would mind.
Chadderz (talk) 07:55, 24 January 2014 (UTC)

See, I still don't understand how installing a custom channel on a Wii "can be done by other means" that don't apply to the Wii U? The process is the same on both. Tueidj (talk) 09:22, 24 January 2014 (UTC)

Pardon me, but does this mean that Wii U compatibility will be removed for the time being? Many people who play this prefer to do so on a Wii U so no doubt this will be a massive blow for the community. I ask this politely and with the utmost respect, but @Tueidj: apart from these possible NAND dangers you speak of, and of course your right to protext your intellectual property, is there some reason in particular why your work can't be used in collaboration with Chadderz' if proper credit is given? As I said, I'm not here to troll or beg if your mind is made up, I'm just a regular guy who loves Mario Kart and the joy it brings to others. My apologies if this question is stupid or was already answered without me noticing, many thanks. -- WorldsBoss (talk) 09:47, 24 January 2014 (UTC)

It shouldn't be necessary to remove Wii U compatibility, only installing the channel would supposedly be affected and I've already pointed out other ways to accomplish the same thing. If there were a legit reason to use the exploit i.e. removing it would break important functionality, I would probably allow it to stay. But I'm not happy with it being used in the current "black box" manner for a task which can be accomplished in other (safer) ways. You have to consider that CTGP-R has been designed to thwart "backup" users and cheaters/hackers, and doing that is like painting a big target on your back for people to mess with your stuff - which of course includes running it on non-standard systems with god-knows-what done to their IOSes. Tueidj (talk) 10:04, 24 January 2014 (UTC)

Ah ok, in that case I can see your reasoning. Thanks for the explanation :) -- WorldsBoss (talk) 10:26, 24 January 2014 (UTC)

Ok, I think it is about time that I spoke up as well. There are a couple of things I wish to clear up. First and foremost, let me talk about the phrase that was quoted earlier... specifically, "A homebrewless-method of loading Custom Tracks on v4.3 for any region is now available!". That phrase was actually written shortly after Letterbomb was released, years ago, and was not in reference to the CTGP Revolution Channel, and many people will be able to vouch for that. Amusingly, it was actually written in reference to Riivolution! The phrase itself is a little misleading, and I admit, needs to be modified. What it is intended to mean is "A Hombrew Channel-less method of loading custom tracks is now available". This may seem pretty silly, but you'd be surprised how many people actually fear using the Homebrew Channel. It's an irrational fear; people associate it with "hacking", and illegal activity. Uninformed parents will refuse their children access to game mods like ours just on the grounds of that, without doing any further research. I know a lot of people who just flat out say "I don't want a Homebrew Channel at all, at any point, on my Wii". Riivolution was a Godsend. We've used it for several years for playing the CTGP Revolution mod, and all prior versions are Riivolution distributions. Riivolution itself: Amazing. The only piece of Homebrew I knew that could install itself to a Wii Menu without needing the Homebrew Channel, or an IOS mod, or anything of the sort. For these people who feared the Homebrew Channel above all other things, it was perfect. I'll tell you right now that there are many people who have Riivolution as a Wii Menu channel, with no Homebrew Channel to accompany it. So, I wrote that phrase, in reference to Riivolution's ability to install itself as a Wii Channel, with only using Letterbomb or Bannerbomb to launch it. We all know that Riivolution is as much homebrew as the Homebrew Channel is. We also know that it is harmless to do these game mods. But other's don't, and putting their fears to rest, even with something as silly as just circumventing the need for the HBC, seemed like a decent move; and it worked. Many people got the CTGP who otherwise would not have done. My video showing how to get the previous version of CTGP (Homebrew Channel-less using Riivolution) is one of the highest viewed videos that I have, with over 150,000 views. Setup and installation was also a breeze for even the less technical users. So, it stood to reason when we started to develop our CTGP Revolution Channel that the functionality had to come with us; not for bragging rights, but to ease the fears of those who don't quite understand that homebrew is not the root of all evil and should be shunned.

The CTGP Revolution Channel was developed by two people, hence it took so long and is still not completely stable. There's me, I'm responsible for the interfaces and the more minor modifications, and some in-game mods. I maintain the track list and distribute the automatic updates, among other things. Chadderz is the main coder, and responsible for most of the back-end work. The CTGP Revolution Channel was designed simply because we couldn't do everything we wanted to with Riivolution (automatic updates, cup/course organization, attempt to block cheaters, and some other stuff to come in future). Tueidj, you said that you don't understand how installing a custom channel on a Wii can be done by other means that don't work on a Wii U. All that really means is that we had another exploit to install ourselves that worked on Wii, but not on Wii U, and we could not find anything that would allow us to install on Wii U (under the condition of not having AHBPROT at boot, e.g. arriving from Smash Stack, or similar. Naturally, installing if we'd been loaded from a HBC was simple, but for the reasons stated above, we're trying to avoid that). And it was for that reason that Chadderz turned to Riivolution for the answers, and ultimately found the "black box". We don't know of any other solution, we have searched, and ultimately turned up very little. Maybe we're not looking in the right places, who knows. I do hope you understand that the code was not used with malicious intent or similar. We will remove it, but I am still hopeful that we can talk our way into an agreement of some description. If you would consider letting us keep it in, we'd be happy to add in anything that you feel would help, such as checks to ensure the IOS is clean or similar, you name it. However, it's not a huge problem if it is removed, as interestingly Riivolution is still going to ensure we remain Homebrew Channel-less... after all, Riivolution can launch us, if we tell it that the CTGP Revolution Channel is the main.dol of Mario Kart Wii. An ugly solution, but this keeps the functionality of old; a way to launch CTGP with no Homebrew Channel, as has been the case all along, and our sole purpose throughout all of this. -- MrBean35000vr (talk) 21:34, 24 January 2014 (UTC)

Speed Multiplier Column

I have never tried to understand, how the speed modifier works. So I hope, that my fast observations are right. And here is my (mathematical) recommendation:

  • The speed modifier uses the 2 last bytes of the STGI record. Then 2 NULL bytes are appended to get a single float.
  • If the number is null (0.0), the track has no speed modifier. This should be marked with a "—" (mdash) for absent.
  • If the number is not null, it's a speed factor, that also may be 1.0. This speed factor is written as floating point number with 2 digits in the fraction part.

Examples: 0.80, 1.00, —, 1.25, 1.50

However, it's Chadders and MrBeans distrib, so their meanings are very important.

I will remove the protection now, but don't accept speed modifier edits that change only "—" and "1.0".

Wiimm (talk) 10:27, 26 January 2014 (UTC)