This includes several improvements to the link flags, link script,
common makefile, etc..
Previously bss initialization in m68k start was incorrect. m68k can
now call static initializers if necessary.
This accidentally worked as long as the Sound CPU program did not do
meaningful stack manipulation. Indeed, none of the Sound CPU programs
I have written so far do anything with the stack.
Despite this "accidentally working" on real hardware, mednafen's m68k
emulation appears to "stall" the Sound CPU when the stack pointer
wraps around to a memory that does not exist.
This table was originally written when I was first learning about the
Saturn "sound block" memory map. I did not know exactly how large the
installed sound RAM was, as the manual mentions 8Mbit, 4Mbit, and
1Mbit as being possibilities. Now that I know the production Saturns
have 4Mbit installed, I am able to come up with a reasonable value for
the stack pointer.
This makes the m68k make rules usable from other makefiles.
This also adds scsp start address macros.
The sound.c example-fragment is deleted, as a better version now exists
in saturn-examples.
It appears much more convenient to access oreg in particular via an "index
variable". To avoid repeated boilerplate, add the accessor here as a c++
operator overload. This makes smpc.h c++-only. With defines guarding the
overload, it could be reduced to C again, though I decided I don't want to
bother with testing that.