Changes

9 bytes added ,  18:04, 10 August 2009
m
Robot: Cosmetic changes
Line 1: Line 1:  
=Quellcode Ausschnitte=
 
=Quellcode Ausschnitte=
−
==Video-System-Autoerkennungs-Routine==
+
== Video-System-Autoerkennungs-Routine ==
 
Die libogc von DevkitPPC r15 setzt den Video-Modus automatisch durch einen Funktionsaufruf.
 
Die libogc von DevkitPPC r15 setzt den Video-Modus automatisch durch einen Funktionsaufruf.
   Line 19: Line 19:  
</source>
 
</source>
   −
==ZurĂŒckspringen zum Lader==
+
== ZurĂŒckspringen zum Lader ==
 
Es ist immer nett, ein ZurĂŒckspringen zum "Lader" zu ermöglichen. Ansonsten mĂŒsste man die Wii jedesmal neustarten, wenn man eine Homebrew-Applikation beenden möchte.
 
Es ist immer nett, ein ZurĂŒckspringen zum "Lader" zu ermöglichen. Ansonsten mĂŒsste man die Wii jedesmal neustarten, wenn man eine Homebrew-Applikation beenden möchte.
   Line 32: Line 32:  
Anmerkkung: Der __crtmain-Code ist fehlerhaft, da er standardmĂ€ĂŸig nicht exit aufruft. Kann man selbst verbessern. ZusĂ€tzlich ruft es nicht die Konstruktoren der globalen Objekte in C++ auf. Das kommt davon wenn man unsauber zusammengestrickte Einzeiler verwendet.
 
Anmerkkung: Der __crtmain-Code ist fehlerhaft, da er standardmĂ€ĂŸig nicht exit aufruft. Kann man selbst verbessern. ZusĂ€tzlich ruft es nicht die Konstruktoren der globalen Objekte in C++ auf. Das kommt davon wenn man unsauber zusammengestrickte Einzeiler verwendet.
   −
==Wii Neustarten==
+
== Wii Neustarten ==
 
<source lang="c">
 
<source lang="c">
 
#include <gccore.h>
 
#include <gccore.h>
Line 41: Line 41:  
Man kann auch mit SYS_RETURNTOMENU das SystemmenĂŒ aufrufen, beziehungsweise mit SYS_POWEROFF die Wii ausschalten (je nach WC24-Einstellungen wird der Standby- oder Idlemodus aktiviert. SYS_POWEROFF_STANDBY und SYS_POWEROFF_IDLE können das gezielt erzwingen)
 
Man kann auch mit SYS_RETURNTOMENU das SystemmenĂŒ aufrufen, beziehungsweise mit SYS_POWEROFF die Wii ausschalten (je nach WC24-Einstellungen wird der Standby- oder Idlemodus aktiviert. SYS_POWEROFF_STANDBY und SYS_POWEROFF_IDLE können das gezielt erzwingen)
   −
==Wiimote Abfragen==
+
== Wiimote Abfragen ==
 
[[How to use the Wiimote]] (englisch).
 
[[How to use the Wiimote]] (englisch).
   −
=Debugging Tipp=
+
= Debugging Tipp =
 
Wenn du mit einem Absturz deiner Homebrew konfrontiert wirst, siehst du meist eine Adresse mit einigem Maschinen-Code auf dem Display. Hier ist mein Trick um die Stelle im C++-Code zu lokalisieren.
 
Wenn du mit einem Absturz deiner Homebrew konfrontiert wirst, siehst du meist eine Adresse mit einigem Maschinen-Code auf dem Display. Hier ist mein Trick um die Stelle im C++-Code zu lokalisieren.
   Line 81: Line 81:  
     479 02d0 9421FF00 stwu 1,-256(1)
 
     479 02d0 9421FF00 stwu 1,-256(1)
   −
Die Funktionsnamen sind hier beschnitten denn es handelt sich um C++ Code ( Siehe http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B). Die Adresse des ersten Befehls von ''Render()'' ist an der Stelle 02d0. Das ist gleichzeitig Zeile 158 in unserer Datei (".loc 1 158 0"). Um den Fehler zu finden mĂŒssen wir an Stelle 0x318 ( = 0x2d0 + 72 ) suchen. Wie hier:
+
Die Funktionsnamen sind hier beschnitten denn es handelt sich um C++ Code ( Siehe http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B). Die Adresse des ersten Befehls von ''Render()'' ist an der Stelle 02d0. Das ist gleichzeitig Zeile 158 in unserer Datei (".loc 1 158 0"). Um den Fehler zu finden mĂŒssen wir an Stelle 0x318 ( = 0x2d0 + 72 ) suchen. Wie hier:
    
                                 .loc 1 168 0
 
                                 .loc 1 168 0
Line 90: Line 90:  
FĂŒr mehr Informationen zu Assembler-Ausgaben, gibt es dieses Manual: http://sourceware.org/binutils/docs-2.18/as/index.html
 
FĂŒr mehr Informationen zu Assembler-Ausgaben, gibt es dieses Manual: http://sourceware.org/binutils/docs-2.18/as/index.html
   −
==GrundsÀtzliche Tipps zum Programmieren==
+
== GrundsÀtzliche Tipps zum Programmieren ==
 
*Kommentierte deinen Code durchgehend, das hilft anderen Fehler zu finden.
 
*Kommentierte deinen Code durchgehend, das hilft anderen Fehler zu finden.
 
*Jeder ungenutzte Code sollte aus dem Programm verschwinden, außer es ist ein Programm um anderen etwas zu erklĂ€ren.
 
*Jeder ungenutzte Code sollte aus dem Programm verschwinden, außer es ist ein Programm um anderen etwas zu erklĂ€ren.
1,189

edits