Hacking Devkitppc confession from Marcan

WiiCrazy

Be water my friend!
OP
Member
Joined
May 8, 2008
Messages
2,395
Trophies
0
Location
Istanbul
Website
www.tepetaklak.com
XP
387
Country
Here is the discussion over elotrolado
<a href="http://www.elotrolado.net/hilo_publicara-algun-dia-las-tools-marcan_1178719" target="_blank">http://www.elotrolado.net/hilo_publicara-a...-marcan_1178719</a>

Here is the spanish text posted by marcan
<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->No.

Porque:

1) No considero la creación de canales como beneficiosa para la scene
2) Es mas, no considero nada que interactúe con el software de Nintendo como beneficioso para la scene, visto lo visto con las actualizaciones y las limitaciones del mismo
3) Es una tontería supina perder el tiempo con las cosas de Nintendo cuando se pueden hacer mejor y sin tener que reversar nada
4) He cambiado de opinión sobre algunas cosas, cosa que creo tener derecho a hacer
5) Las tools están diseñadas para que las utilicen la gente en la que confío. Es decir, no son "seguras" de usar para la gente que no las conoce, y no voy a invertir el trabajo necesario para hacer que sí lo sean.
6) Cuanto mas se interactúe con software de Nintendo (sobre todo en lo que concierne a instalar cosas), mas importante es el control de calidad (para evitar bricks). Considero que el control de calidad de la mayoría de la gente que hace esto es bastante inferior a lo que yo considero oportuno (que comparen la cantidad de bricks causados por nuestro software con la media del software que toquetea la NAND), y no estoy dispuesto a sacar utilidades que se puedan usar malamente con tanta facilidad.
7) Hacer cosas sin que se sepa lo que se hace es receta para el desastre, y ya pasa lo suficiente como para sacar herramientas que la gente, sin duda, usará sin el mas mínimo interés por comprenderlas.

Eso va por pywii y por Alameda.

En mi opinión, la actual scene de Wii está estancada, y parece que lo único que va mejorando son las utilidades de piratería. Y, que digan lo que quieran, pero EOL da soporte a la piratería - o si no mirad a todos esos hilos sobre downgradear que proclaman "busca el IOS16" y que se consideran válidos, cuando todos sabemos que no existe forma legal de conseguirlo.

La gente está que no para con las mismas tonterías de siempre. Que si juankear el menú del sistema, que si toquetear archivos de la NAND a pelo, que si parchear IOS, o lo que es peor reemplazar varios IOS masivamente, que si hacer canales (o ilegales, o inseguros, o las dos cosas, casi siempre), que si trampas en los juegos (que encima luego las usan online y nos jodemos los demás), etc.

Y luego el homebrew de verdad tiene:
libogc
- una librería donde la mitad ha sido robado del SDK (cosa que nadie sabía al principio, porque shagkur ha consdiderado conveniente no decírselo a nadie, pero que poco a poco se ha hecho mas y mas evidente). Hasta incluye algunos trozos de código binario sacado literalmente del SDK, como por ejemplo el programa de desbloqueo de las memory cards
- con un sistema de threads casero (de shagkur) que sigue siendo muy frágil (y muy dificil de comprender) y que ha tenido bugs tan gordos como que los cálculos de coma flotante con mas de un thread se iban al garete (supongo que tan poco interés / tan poco homebrew hay que nadie se había dado cuenta hasta que intentamos portar mplayer)
- depende de IOS para todo el tema de Wii, así que nos obliga a mantener IOS operativo
- no tiene un historial seguible y además contiene partes (tales como la librería Wiiuse) que causan conflictos de licencia
libfat
- una librería FAT que intenta ser compatible con sistemas tan distintos como la GBA y la Wii, y que al final consigue unas prestaciones bastante pésimas en la Wii
- ha tenido bugs de corrupción gordos
- es totalmente insegura frente a threads, al menos hasta que se añadió un lock alrededor de todo (cosa que tampoco es buena solución)
- el autor pasa de integrar los parches de terceros (como los de rodries o Hermes) y en su lugar dice de solucionar los problemas a su manera cuando al final la gran mayoría se quedan ahí
devkitPPC
- una distribución de GCC con parches raros y unida a newlib, además de mezclada con algunas partes de libogc sin necesidad
- segher (que es un desarrollador de GCC) ha revisado el parche de GCC que usa devkitPPC. El 90% es basura o, peor, directamente incorrecto.
- newlib también tiene problemas gordos con threads

Voy a ahorrarme comentarios sobre algunos de los responsables de estas tres cosas, pero sobra con decir que no me llevo muy bien con ellos últimamente. Bueno, nunca me he llevado especialmente bien con ellos (parece que resentían que yo me "metiera en sus asuntos" y en especial odiaban libogc.git, los parches no oficiales de libfat, y todo lo que no sea su bendita distribución oficial), pero últimamente ya me he cansado.

En mi opinión, la gente capaz tiene que dedicarse a cosas que, a la larga, nos van a salvar el culo, tales como:
- documentar el hardware del PPC, con detalles. Sobre todo el GX, sobre el cual hay muy poco documentado, y el código de libogc está descompilado directamente del SDK de nintendo
- explorar y documentar el hardware de Starlet, gran parte del cual es desconocido
- buscar exploits en juegos o en IOS que nos puedan servir en un futuro (y callarselos, hasta que nos hagan falta)
- Linux para la Wii, que tiene mucho que ganar con bootmii y en especial con un mini-proxy ejecutándose en el Starlet, ya que nos permitirá reutilizar sus drivers (USB 2.0, WiFi, SD, y todo lo demás)
- desvincularse de devkitPPC, porque teniendo en cuenta los graves problemas de libogc, tiene poco que ofrecer, al reducirse a un mal parche de GCC y newlib, y experimentar con builds normales de GCC

Y no a hacer animaciones. Que quedan muy bonitas, pero no sirven para nada.

Porque si esto sigue así yo desde luego que voy a tirar la toalla.<!--QuoteEnd--></div><!--QuoteEEnd-->

Here is the google translation :

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->No.

Because:

1) Do not believe the creation of channels as beneficial to the scene
2) In fact, I do not believe anything that interacts with software from Nintendo as beneficial to the scene, apparently seen as updated and the limitations of the same
3) It is silly to waste time with supine things when Nintendo can do better without having to reverse all
4) I changed my opinion on some things, I think the right thing to do
5) The tools are designed for use in people that I trust. Ie they are not "safe" to use for people who do not know, and I will not invest the necessary work to make it so.
6) The more interaction with Nintendo software (particularly with regard to install things), is the most important quality control (to avoid bricks). I believe that the quality control of most of the people doing this is well below what I consider appropriate (comparing the number of bricks caused by our software with software that toquetea half of the NAND), and I am not prepared Drawing a utility that can be used badly so easily.
7) Do things without knowing what is done is recipe for disaster, and it happens enough to make tools that people will undoubtedly use without the slightest interest in understanding them.

That goes for pywii and Alameda.

In my opinion, the current scene Wii is stagnant, and it seems that the only thing that will improve the profits of piracy are. And they say what they want, but EOL supports piracy - or do not look at all these threads on downgrade proclaiming "IOS16 seeks" and deemed valid, when we all know that there is no legal way to do it.

People are not to the same nonsense as ever. Juankear that if the menu system, if the NAND toquetear files to hair, that if IOS patch, or worse replace several IOS massively channels that do (or illegal or unsafe, or both, almost always), if cheating in games (which used the above line and then we fuck the other, etc.).

And then the truth is homebrew:
libogc
- A library where half of the stolen SDK (which no one knew at first, because shagkur has consdiderado should not tell anyone, but gradually it has become more and more obvious). Even includes some bits of binary code literally removed the SDK, such as the unblocking of the memory cards
- With a homemade system threads (of shagkur), which remains very fragile (and very difficult to understand) and has had bugs as big as that of floating point calculations with more than one thread were adrift (guess so little interest / homebrew there is so little that no one had realized that trying to carry mplayer)
- Depends on the whole issue IOS for Wii, so it forces us to keep operating IOS
- Does not have a history and contains seguible parties (such as the library Wiiuse) that cause conflicts license
libfat
- A book that tries to be FAT-compatible systems as different as the GBA and the Wii, and ultimately get a pretty dismal performance in the Wii
- Has big bugs of corruption
- Is totally unsafe compared to threads, at least until a lock was added all around (which is not good solution)
- The author of integrating patches from third parties (such as the rodri or Hermes) and instead says to solve the problems in their own way at the end when the vast majority are staying there
devkitPPC
- A distribution of rare and GCC patch together newlib, plus mixed with parts of libogc without
- Seghir (which is a developer GCC) has revised the patch using GCC devkitPPC. 90% is junk, or worse, directly incorrect.
- Newlib also has big problems with threads

I will save comments on some of those responsible for these three things, but to say that I'm not too well with them lately. Well, I have never taken particularly well with them (it seems that I resented "tuck in their affairs," and especially hated libogc.git, unofficial patches libfat, and everything that is not blessed his official) but lately I have already tired.

In my opinion, people must be able to engage in things that, ultimately, we will save your ass, such as:
- Documenting the hardware of the PPC, with details. Above all, the GX, on which there is little documented, and the code is decompiled libogc directly SDK nintendo
- Explore and document the hardware Starlet, much of which is unknown
- Search exploits in games or in IOS that can serve us in the future (and streets, until we needed)
- Linux for the Wii, which has much to gain from bootmii and especially with a mini-proxy running on the Starlet, which will allow us to reuse their drivers (USB 2.0, WiFi, SD, and everything else)
- Disassociate devkitPPC, because given the serious problems libogc has little to offer, to be reduced to a bad patch and GCC newlib, and experiment with normal builds GCC

And not to make animations. Which are very nice but are useless.

Because if this continues I certainly I'm going to throw in the towel.<!--QuoteEnd--></div><!--QuoteEEnd-->


So, is this a violation of copyright for entire homebrew for wii? Anyone have a good view on this copyright matters?
 

Rocco Savadgie

Well-Known Member
Member
Joined
Jun 26, 2006
Messages
154
Trophies
0
XP
288
Country
It is impossible NOT to copy Nintendo SDK code is many instances because there is no other way to do it.

For example, some years ago I wrote a simple GBA trainer with intro. The code to read if the start button was pressed is as follows:

--
ldr r0,0x04000130 ;pointer to keypad memory
ldr r0, [r0] ;load what's in the keypad memory
mov r1, #0x8 ;if Bit 4 is set then "START" was pressed
and r1, r0
cmp r1, #0

If the compare is true then start was pressed.
--

This is the only way to check if the start button was pressed. Now this tiny bit of code was entirely my own work, but once it was compiled, the resulting binary file was the EXACT SAME as the one generated by the official SDK! Of course it was because there is no other way to check if the start button was pressed.


So, the point is, if the Wii for example needs you to load 10111000111 to register r0 in order to unlock the memory card, then that is what you have to do. There is no other way. Your compiled code will be the same as that compiled with the SDK.

Is this copyright infringement?
 

WiiCrazy

Be water my friend!
OP
Member
Joined
May 8, 2008
Messages
2,395
Trophies
0
Location
Istanbul
Website
www.tepetaklak.com
XP
387
Country
Rocco Savadgie said:
It is impossible NOT to copy Nintendo SDK code is many instances because there is no other way to do it.

For example, some years ago I wrote a simple GBA trainer with intro. The code to read if the start button was pressed is as follows:

--
ldr r0,0x04000130 ;pointer to keypad memory
ldr r0, [r0] ;load what's in the keypad memory
mov r1, #0x8 ;if Bit 4 is set then "START" was pressed
and r1, r0
cmp r1, #0

If the compare is true then start was pressed.
--

This is the only way to check if the start button was pressed. Now this tiny bit of code was entirely my own work, but once it was compiled, the resulting binary file was the EXACT SAME as the one generated by the official SDK! Of course it was because there is no other way to check if the start button was pressed.


So, the point is, if the Wii for example needs you to load 10111000111 to register r0 in order to unlock the memory card, then that is what you have to do. There is no other way. Your compiled code will be the same as that compiled with the SDK.

Is this copyright infringement?

Well he is not talking about something of that sort... instead he is talking about a piece of binary code directly used in the library... yet don't know how many lines of source code that is or how big in terms codesize as bytes...
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
as far as I know, libogc is not a "copy" of the original sdk but reverse-engineering of legally purchased programs (can this include a legally purchased sdk ?) and analyzing of nintendo publically published patents

they certainly had the SDK documentation and library because function naming is very similar, I don't know if this makes the whole thing illegal though

about marcan, I think he is a great hacker and desserve lot of respect for that but I also think he has far too high opinion of himself which often make him bash anyone not fullfilling his coding skill level standard

the whole crew he is quoting desserve as much respect as him and bashing the massive work they have done since the beginning of the gamecube scene is just an idiot stance
 

WiiCrazy

Be water my friend!
OP
Member
Joined
May 8, 2008
Messages
2,395
Trophies
0
Location
Istanbul
Website
www.tepetaklak.com
XP
387
Country
Jacobeian said:
as far as I know, libogc is not a "copy" of the original sdk but reverse-engineering of legally purchased programs (can this include a legally purchased sdk ?) and analyzing of nintendo publically published patents

they certainly had the SDK documentation and library because function naming is very similar, I don't know if this makes the whole thing illegal though

about marcan, I think he is a great hacker and desserve lot of respect for that but I also think he has far too high opinion of himself which often make him bash anyone not fullfilling his coding skill level standard

the whole crew he is quoting desserve as much respect as him and bashing the massive work they have done since the beginning of the gamecube scene is just an idiot stance


"Above all, the GX, on which there is little documented, and the code is decompiled libogc directly SDK nintendo"
Here for example he talks about some decompiled gx sdk code directly put into libogc... so there is slightly nasty reverse engineering here...

About the bashing part, yeah pretty much he shits into the whattheycallit....
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
WiiCrazy said:
Jacobeian said:
as far as I know, libogc is not a "copy" of the original sdk but reverse-engineering of legally purchased programs (can this include a legally purchased sdk ?) and analyzing of nintendo publically published patents

they certainly had the SDK documentation and library because function naming is very similar, I don't know if this makes the whole thing illegal though

about marcan, I think he is a great hacker and desserve lot of respect for that but I also think he has far too high opinion of himself which often make him bash anyone not fullfilling his coding skill level standard

the whole crew he is quoting desserve as much respect as him and bashing the massive work they have done since the beginning of the gamecube scene is just an idiot stance


"Above all, the GX, on which there is little documented, and the code is decompiled libogc directly SDK nintendo"
Here for example he talks about some decompiled gx sdk code directly put into libogc... so there is slightly nasty reverse engineering here...

About the bashing part, yeah pretty much he shits into the whattheycallit....


well , all Gx functions are pretty much only writing correct values to some hardware registers
all of this can be reverse-engineered from the SDK library files OR from legally purchased software since those library are linked into the main dol

afaik, reverse-engineering is not illegal

http://hitmen.c02.at/files/yagcd/yagcd/chap1.html#sec1.4
http://www.gc-linux.org/wiki/FAQ#The_Law
 

WiiCrazy

Be water my friend!
OP
Member
Joined
May 8, 2008
Messages
2,395
Trophies
0
Location
Istanbul
Website
www.tepetaklak.com
XP
387
Country
Jacobeian said:
well , all Gx functions are pretty much only writing correct values to some hardware registers
all of this can be reverse-engineered from the SDK library files OR from legally purchased software since those library are linked into the main dol

afaik, reverse-engineering is not illegal

http://hitmen.c02.at/files/yagcd/yagcd/chap1.html#sec1.4
http://www.gc-linux.org/wiki/FAQ#The_Law

Of course reverse engineering is not illegal... yet using a verbatim copy is... (even if you decompile and recompile / transform it thousand times)
I can't comment much further on this since I have now no access to either revolution sdk or devkitppc at the moment...
 

pelago

Member
Member
Joined
Feb 20, 2006
Messages
1,019
Trophies
0
XP
565
Country
I know that Team Twiizers would like to move (using BootMii) to a method of homebrew which doesn't rely on Nintendo software - i.e. doesn't store stuff on the NAND (other than BootMii itself), doesn't use IOS, and just uses SD or USB for storage. If they can develop their own low-level libraries and 'operating system' (if you can call it that), that would make them happier, and I can see their thinking on this.

Certainly, it would be good if there wasn't a question mark over the legality of binaries. The Xbox scene was annoying as you couldn't stick binaries on a public website, as almost all were developed with a leaked MS SDK. Generating a clean homebrew SDK, if it isn't already, would be a good thing, and would help users of homebrew (as they wouldn't have to go to dodgy sites to download) not just developers.
 

icefireicefire

GBATemp Fails.
Member
Joined
Dec 19, 2008
Messages
961
Trophies
0
Website
Visit site
XP
25
Country
United States
I don't want linux on my wii. I WANT the system menu, with my CUSTOMIZATIONS. If someone completely cloned IOS, the sysmenu, and everything else 100% I would use it. But I will not install bootmii if the purpose is not to be a hack, but a replacement.
 

OSW

Wii King
Former Staff
Joined
Oct 30, 2006
Messages
4,787
Trophies
0
XP
482
Country
I wouldn't mind the option of a replacement, but I'd never completely ditch our trusty system menu (customized, same as icefire). We need it for Wii games (which i actually enjoy playing, something that the system was made for) and software that utilizes it's strengths.

It's shit to force your own ideals on other people, paticularly if you have the ability and the knowledge to help them achieve their own goals. For example releasing their knowledge of system menu, banners, homebrew channel sources, nandloaders etc.

I don't mind his anti-piracy card, but that is a moral dilemna as opposed to this, which is merely sharing harmless knowledge to benefit the community (rather than the time redundancy that they incur)
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
pelago said:
Certainly, it would be good if there wasn't a question mark over the legality of binaries. The Xbox scene was annoying as you couldn't stick binaries on a public website, as almost all were developed with a leaked MS SDK. Generating a clean homebrew SDK, if it isn't already, would be a good thing, and would help users of homebrew (as they wouldn't have to go to dodgy sites to download) not just developers.

libogc is already clean as it does not contain ANY copyrighted code
no matter what marcan is saying, dols are legally floating around the internet since more than 3 years now, and nobody has never complained or take actions to close gamecube scene websites

As someone said above, no matter how you code it, access to GX hardware can only be done a single way (aka writing certain value into certain hw register), this does not matter if those values have been acquired from reverse-engineering a leaked SDK or a retail game, that does not make libogc illegal as long as copyright code as not been used


I think I understand marcan's idea: he wants something fresh new, that would be started from scratch (with all the quality standard HE seems to expect from any code
rolleyes.gif
). I think he is a little over-confident about is hacking skill, there is no way you can understand a whole hardware by just writing guessed values to some randome memory address, software reverse-engineering IS required.

Now, about the linux stuff he's thinking about , this seems more someting like a lite & configurable OS running on the Wii with your applications running on the top, without the need of linking to a library.
This is a different approach but I don't see any advantages for this. Why getting ride of an existing IOS that already performs all that we need ? How different did he think its "linux-like" os core would be from libogc regarding to GX drivers ? Btw, as far as I know, GX stuff from libogc directly comes from gc-linux team,, one just have been updated faster than the other
 

svpe

Active Member
Newcomer
Joined
Mar 15, 2007
Messages
44
Trophies
0
Website
Visit site
XP
73
Country
Gambia, The
Jacobeian said:
pelago said:
Certainly, it would be good if there wasn't a question mark over the legality of binaries. The Xbox scene was annoying as you couldn't stick binaries on a public website, as almost all were developed with a leaked MS SDK. Generating a clean homebrew SDK, if it isn't already, would be a good thing, and would help users of homebrew (as they wouldn't have to go to dodgy sites to download) not just developers.

libogc is already clean as it does not contain ANY copyrighted code
no matter what marcan is saying, dols are legally floating around the internet since more than 3 years now, and nobody has never complained or take actions to close gamecube scene websites
Have you taken a look at a RVL SDK binary in a disassembler like objdump or IDA, looked for some function and compared that with the libogc function? It's mostly just asm2c. This is by no means a legal homebrew SDK. The functions are sometimes *completely* identical. Segher told me that there are even some optimizations the compiler would actually do visible inside the C source file. Absolutely every single functions looks *very* identical to the official SDK ones.


QUOTE said:
I think he is a little over-confident about is hacking skill, there is no way you can understand a whole hardware by just writing guessed values to some randome memory address, software reverse-engineering IS required.
Sure, but only as long as it's clean-room reversing

QUOTENow, about the linux stuff he's thinking about , this seems more someting like a lite & configurable OS running on the Wii with your applications running on the top, without the need of linking to a library.
Linux is just one of the idea we're currently working on. And this thing would just be the linux kernel itself without any userspace stuff you'd normally expect. It would boot in a few seconds. The advantages of this methods are that we already get fun things like USB2 and a really nice threading system without any major bugs for free.

QUOTE
Why getting ride of an existing IOS that already performs all that we need ?
IOS performs all we need? What about USB2? And a higher SDHC card compatibility? Does it allow us to just install whatever we want wherever we want? Does it allow us to read discs/send raw command to the dvd drive?
Yes, we could achieve this by patching IOS and have done so in the past. But this really is a nasty method since ninty is starting to work against us. They are removing things like ES_DiVerify or the strncmp() bug which are mandatory for some homebrew (e.g. all your beloved custom channels, all disc launchers,...)
But that would be a really nasty and sometimes even dangerous hack. (yes, installing one ios version multiple times so that you can launch warez from your system menu is a bad plan. patching the system menu to just not call IOS_ReloadIOS() would be way better but still a bit dangerous.)
And what about all those threads where someone is scared of traces being left behind by homebrew? There would be no traces except for the hacked boot2 if we really manage to get completely independent of nintendo's code.

As I said, linux is just *one* possibility. Another possible solution is a completely rewritten homebrew IOS and a homebrew SDK that does whatever we want. While I personally probably prefer this solution I also understand how much work we would need to do in order to reach those goals. Linux would be way faster and require much less work. You probably wouldn't even notice that there is a linux kernel running in the background if you are not a developer.
Only developers will notice it and some might loose the fun because you are not writing code which is able to interfere directly with the hardware on such a low-level. I'm not quite sure if I would even like developing on such a system. This is why we need to *test* this first. After all, some people want a real linux distro with wifi and stuff. This means that even if this idea is completely stupid the work invested would not be in vain :-)
 

ether2802

we have the techno...!!
Former Staff
Joined
Oct 14, 2007
Messages
4,349
Trophies
0
Age
41
Location
Pto. Vallarta
XP
312
Country
Mexico
pelago said:
.....doesn't store stuff on the NAND (other than BootMii itself), doesn't use IOS, and just uses SD or USB for storage. If they can develop their own low-level libraries and 'operating system' .....

So I just bought a 250 usd interface, that comunicates my usb keyborad with my SD card and TV, I really don't think Nintendo really cares much about what we are doing here, of course the Games Developers doesn't think the same, but did you know how many KIDS bought a Wii this last christmas just to be able to hack it..??

Yes, it is really dangerous to install several times the same IOS version over and over thru all the NAND, and installing diferents modified channels and your own boot splash is way too dangerous, but if "N" want it to stop this, they have stoped this from the begin, or maybe they don't know how to stop this..?? I don't think so, they are using your code to sell more units, the same thing argon tryied to do, but without investing one single penny in advertising it...!!!
rolleyes.gif
 

MicShadow

Well-Known Member
Member
Joined
Jan 28, 2008
Messages
465
Trophies
0
Website
Visit site
XP
232
Country
I completely agree with svpe. But the amount of work and developers needed would be huge. If it can happen, that would be great. But with the disagreements in the Wii scene at the moment, i don't think it will be easy
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BakerMan @ BakerMan: hot take: freddy fazbear's pizzeria simulator is peak fnaf