$(ronindir) and the explicit crt0 may have happened to work because
library detection state for libmad was forced, but it was always
breaking the feature detection of the build system. Now we can
compile to Dreamcast using the normal detection system.
By letting the user select which group of plugins to load, an out of
memory condition can be avoided while still allowing all plugins to be
stored on the same disc.
The new GCC and Newlib are required for correct atexit handling
in plugins. The new Ronin is required to support the Newlib upgrade,
and also for custom filename handling on VM saves.
Engines should only have to call one set of functions and not decide between the two. In fact, the 'emulation' API was documented to just call the 'real CD' API.
We introduced a new pattern '#' in 06641f29a7.
Starting from that commit all backends were supposed to support it. Dreamcast
was missed. To support it in Dreamcast we now use Common::String::matchString
to do pattern matching.
This removes the need to convert the parameter to copyRectToScreen to
"const byte *", which is commonly used in games, which use Graphics::Surface
to store their graphics data.
All uses of the old target scale API actually wanted to disallow scaling of
the mouse cursor. This commit adapts our API to this and thus simplifies
backend implementations.
Some backends, most notable the Wii and Android, did some implementation of
the cursor target scale, which I didn't adapt yet. I added a TODO for the
porters there.
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'
This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
The header contains forbidden symbols on some platforms, and the
simplest solution seems to be to include it here. This also includes
it from all the portdefs.h files, except the Symbian one. Probably
the FIXME and the #if can be removed once it's known to work.