In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Developer tips"

From WiiBrew
Jump to navigation Jump to search
m (added Languages link)
(added includes & declarations)
Line 4: Line 4:
 
Here is the video detect code from the DevKitPro Wii example.
 
Here is the video detect code from the DevKitPro Wii example.
 
<source lang="c">
 
<source lang="c">
 +
#include <gccore.h>
 +
static GXRModeObj *rmode = NULL;
 +
// ...
 
rmode = VIDEO_GetPreferredMode(NULL);
 
rmode = VIDEO_GetPreferredMode(NULL);
 
VIDEO_Configure(rmode);
 
VIDEO_Configure(rmode);
Line 14: Line 17:
 
// Just call the exit() function to go back to the loader
 
// Just call the exit() function to go back to the loader
 
// Returning from main also works, since that calls exit for you
 
// Returning from main also works, since that calls exit for you
exit(0);
+
    #include <unistd.h>
 +
    // ...
 +
    exit(0);
 
</source>
 
</source>
  
Line 23: Line 28:
 
Use:
 
Use:
 
<source lang="c">
 
<source lang="c">
 +
#include <gccore.h>
 +
// ...
 
SYS_ResetSystem(SYS_RESTART,0,0);
 
SYS_ResetSystem(SYS_RESTART,0,0);
 
</source>
 
</source>
Line 33: Line 40:
 
*If someone does the same thing in a more efficient way (i.e. faster and/or in less code), accept it and learn from it.
 
*If someone does the same thing in a more efficient way (i.e. faster and/or in less code), accept it and learn from it.
  
{{Languages|Developer_Tips}}
+
{{Languages}}

Revision as of 08:32, 24 July 2008

Code Snippets

Video Auto-Detect Routine

The libogc included in DevkitPPC r15 does this for you with one function call. Here is the video detect code from the DevKitPro Wii example.

#include <gccore.h>
static GXRModeObj *rmode = NULL;
// ...
rmode = VIDEO_GetPreferredMode(NULL);
VIDEO_Configure(rmode);

Forum thread

Exit to Loader

It's a good idea to add some way to return to the loader, otherwise you have to reboot you Wii to exit.

// Just call the exit() function to go back to the loader
// Returning from main also works, since that calls exit for you
    #include <unistd.h>
    // ...
    exit(0);

How to use the Wiimote

A separate article is available: How to use the Wiimote.

Reboot Wii

Use:

#include <gccore.h>
// ...
SYS_ResetSystem(SYS_RESTART,0,0);

Or use SYS_RETURNTOMENU for a "soft" return to the system menu, SYS_POWEROFF to shut down the wii (automatically to the appropriate Idle or Standby mode, depending on the WC24 setting), or SYS_POWEROFF_STANDBY or _IDLE to specify the mode and override the system setting.

General Programming Tips

  • Keep your code commented throughout; it helps others help you.
  • Any unused code should be deleted out of the program, unless it is a program for teaching people.
  • If someone does the same thing in a more efficient way (i.e. faster and/or in less code), accept it and learn from it.