Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

[GBDK] GAMEBOY [C]

Name: !MILKRIBS4k 2009-06-16 17:13

Anyone on here use the gameboy c compiler gbdk? http://gbdk.sourceforge.net/ There doesn't seem to be much documentation on it! Most of the code I find on google is designed for an older version of the compiler! How would I go about displaying a simple sprite! Someone help MILKRIBS4k!

Name: Anonymous 2009-06-17 12:07

MILKRIBS, it seems that C is your first codan (no offence), so here are some beginner tips!

1. Use fprintf (``fast printf'') instead of printf.
2. ++i is faster than both i++ and i = i + 1. I won't get into detail why, because it goes down to ASM.
3. void main(void) is faster than int main(void) or int main(int, char **) since no value needs to be returned to the OS. It's also safer (no errors) and more portable.
4. Swapping with exclusive-or (a^=b^=a^=b swaps a and b) is faster than using a temporary. This works for all types (including structures), but not on all compilers. Some compilers may also give you a harmless warning.
5.Avoid indentation, the whitespace makes the program bigger. It also makes it slower, because the compiler has to remove all whitespace anyway before parsing.
6. Static storage duration objects are faster than automatic storage duration objects because the CPU doesn't have to set aside storage on the stack every time a function is called. Make your loop indexes global so that you can use them everywhere:
    int i;
    void func(void) { for (i = 0; i < 10; i++) ; /* ... */ }
    void func2(void) { for (i = 0; i < 20; i++) ; /* ... */ }
    /* ... */

7. Compilers often give more memory to arrays than you asked for. Here's how to check how big an array actually is (memset returns a null pointer if the size you passed to it is bigger than the size of the array you passed to it):
    int arr[256];
    size_t realsize;
    for (realsize = 0; realsize <= SIZE_MAX; ++realsize)
            if (!memset(arr, 0, realsize)) break;
    /* now you know that arr actually has realsize / sizeof (int) elements */

If you combine this with #6, your program will be faster in the long run (but this usually doesn't work for short programs).

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List