Commit Graph
4 Commits
Author SHA1 Message Date
Michael Panzlaff 187c96d6e5 rewrite MultiBootWaitCycles as naked function
Before, when compiling MultiBootWaitCycles with O3 and MODERN=1, you
might have run into problems during optimizations when the compiler tried
to optimize the function, even if declared NOINLINE.

When rewriting this function as NAKED function, this no longer happens
as the optimizer will treat it as black box and compilation will resume.
2020-10-02 12:27:16 +02:00
Michael Panzlaff 3264cf697f fix aggressive loop optimizations
Previously, aggressive loop optimizations with a new compiler were not
possible due to undefined behaviour at end of arrays.

A macro "UBFIX" is added to allow ifdefs for fixes which resolve
undefined behavior. For example newer GCC versions will detect various
bugs in the original game code and will otherwise not compile with -Werror.
2020-07-05 18:09:59 +02:00
Michael Panzlaff c11fb6a3fd Fix MODERN=1 for non-devkitARM compilation
gcc has this nice option "-print-file-name=" to locate a file
in its search path. This is a more portable way to locate
libgcc.a and libc.a so there is no longer the need to mess around with
devkitARM's path's.
2020-05-05 00:09:06 +02:00
Michael Panzlaff 7500534676 fix unaligned memory access in BlendPalette
This problem is only going to occur in versions where the palette
buffer isn't aligned to 4 bytes (which it is in a matching pokeemerald).

Since agbcc returns sizeof(PlttData) = 4, it will read words
instead of half words. This causes unnecessary emulator warnings
in the function "BlendPalette".
Aligning the buffers to 4 bytes fixes this.
2019-06-29 11:08:46 -05:00