The 3MB is divided into 2MB for the embedded frame buffer (where stuff gets drawn to) and 1MB texture cache (which the hardware uses however it wants, it is not accessible to programs).by tueidj - Coding
The Wii (and PowerPC in general) is big-endian. Textures don't get "uploaded to vram", they live in either MEM1 or MEM2. I suggest you look at the gxSprites example (in devkitpro/examples/wii/graphics/gx/gxSprites) to see how to link textures at compile time and load them from static data at runtime.by tueidj - Coding
You're passing 0 for the stackbase argument so libogc has to allocate the stack for the new thread from its internal pool. That pool only has a limited amount of space so after a few threads it is all used up. Either use malloc() to allocate STACKSIZE bytes and use that memory for the stackbase argument, or use a static array if you don't want to worry about free()'ing the stack aby tueidj - Coding
Anything that uses software rendering (old DOS games, emulators, etc) or otherwise treats the display as one large texture (movie players, SDL based apps).by tueidj - Coding
If you touch the display list manually then yes, you'd want to flush the changes. If you need to convert image data to texture format (rearranging tile pixels to linear storage) using the write-gather pipe is the fastest method; it's roughly 3x faster than using ordinary writes+cache flushing. The bug makes it unusable though since it causes junk to get written after the last output tiby tueidj - Coding
No, it's definitely a bug. The 32 bytes of trailing padding is unnecessary and causes errors when using the write-gather pipe for other purposes besides display lists. The WG pipe triggers a burst when there are at least 32 bytes waiting to be sent, therefore it is only necessary to flush 31 bytes to ensure remaining data is sent to the FIFO. If you compare libogc's GX_RestoreWriteGatheby tueidj - Coding
Unfortunately there are two bugs to watch out for with display lists: - On gamecube, display list overflow detection is broken. The same bug can cause issues when manually redirecting/restoring the write-gather pipe on wii. - GX_Flush() flushes too many zeroes through the write-gather pipe; only 31 bytes max. are required to flush any remaining data, 32 bytes will unavoidably cause the pipe tby tueidj - Coding
Just don't call GX_TexCoord* at all. GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, ...) only specifies the data format (float, int, etc) for the GX_VA_TEX0 slot in GX_VTXFMT0. GX_SetVtxDesc() sets the source of the data for a particular attribute (direct, indirect, none). If the source is GX_NONE the attribute is disabled.by tueidj - Coding
GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT); // data for texture co-ordinate 0 will be passed directly GX_SetVtxDesc(GX_VA_TEX0, GX_NONE); // texture co-ordinate 0 will not be used (no texturing) I don't think you should be using GX_VTXFMT1 for the plain quad, it's not being initialized anywhere.by tueidj - Coding
It's slightly different in libogc. Look in conf.h for function names, enums etc... if (CONF_GetAspectRatio() == CONF_ASPECT_16_9) { // do widescreen specific stuff } else { // CONF_ASPECT_4_3 or error/unknown value // do non-widescreen stuff } From my experience it's pretty safe to assume a widescreen tv will have a smaller overscan area so you can use that as a basis for expanby tueidj - Coding
VIDEO_GetPreferredMode() doesn't have anything to do with widescreen, it just selects the most appropriate video format (NTSC/PAL/PAL60). Only anamorphic widescreen is supported by the wii since the internal/embedded framebuffer has a fixed maximum width of 640 pixels. The overscan borders are controlled by the video encoder; they can be changed by adjusting the viWidth member of the GXRMoby tueidj - Coding
Some PAL gamecube games save their language setting in their savefile, try booting it without a memory card inserted.by tueidj - Getting Started
There are a few reasons, the main ones that occur to me are the guy behind devkitppc+libogc driving away anybody capable of improving it (so the homebrew "SDK" has had no new features/bugfixes for nearly 3 years) and the warez/usbloader crews stealing any new decent pieces of code to use in their own projects regardless of the permissions granted by the authors.by tueidj - Offtopic
Homebrew does not get transferred.by tueidj - Homebrew General
Homebrew stuff will be fine, pretty sure there won't be any more system updates.by tueidj - Homebrew General
There is no homebrew code for Wii <-> DS communication. The MH3U relay does require extra hardware - the Wii U has to be connected to the internet using an external LAN adapter, since the wifi adapter can't do DS communication and regular wifi at the same time.by tueidj - Coding
Gamespy doesn't seem to be used by many third party games, they all use their own matchmaking stuff. WFC is used primarily for authentication (mapping the global console friend code to a game-specific friend code) and as a profanity checker to make sure people aren't using offensive names for their characters and such. The basic WFC authentication stuff is pretty simple, just a tiny paby tueidj - Homebrew General
Sure, if your car takes 10 minutes to warm up and takes up as much storage space as a three-storey house.by tueidj - Coding
It's not being done to increase sales of the Wii U, because the games will stop working regardless of which system they're being played on. The people who really need to take up this issue with Nintendo are the third-parties who made wii games featuring online play, which is going to be killed off due to Nintendo disabling WFC. Nintendo themselves were the ones who promoted WFC to deby tueidj - Homebrew General
This is likely caused by reading or writing floats or doubles to memory that isn't aligned to 4 (for floats) or 8 (for doubles) byte boundaries.by tueidj - Coding
Code can be executed from MEM2. If you are placing new code in memory you should use DCFlushRange followed by ICInvalidateRange. The first function makes sure the new code is flushed from the CPU's data cache to the physical memory, the second function removes any old instructions for that memory region from the CPU's instruction cache. One problem that can occur when placing dynamiby tueidj - Coding
Quick Letterbomb checklist: - Played any game at least once since first startup or reformatting - Date set correctly (including the year). - The entered MAC address must be for the wii you are trying to run letterbomb on, not just any old wii MAC address. There is no update that blocks letterbomb and it can be used multiple times.by tueidj - Homebrew General
QuotepinhogalloleoAll controlers (Wiimote, Nunchuk and Classic) are NOT original. Well there's your problem.by tueidj - Homebrew General
Just tested the download, it extracts fine without any errors. Problem seems to be something at your end.by tueidj - Getting Started
The 32017 error is caused by installing other crap designed to block updates.by tueidj - Getting Started
Load the system menu (it will move past the health and safety screen on its own if you wait a while). Hold the red sync button on the wii for 10 seconds. Try to sync a wiimote by tapping the red button on the wii followed by the red button on the back of the wiimote.by tueidj - FixMii