Switch to <stdint.h> types pervasively instead of int, unsigned, etc.
In order to be clearer about the expected inputs and outputs of various functions, it would be good to switch Musashi to using the C99 <stdint.h> types such as int16_t and uint32_t and so on. This would ensure the codebase stays portable across various platforms, and also help ensure the behavior of the internals matches expectations.
As an example of the latter, something like an ILP64 platform (with 64-bit int) may behave subtly differently than an LP64 platform (with 32-bit int) when it comes to e.g. shifts. I expect most such issues with the codebase have been eliminated at this point, but being explicit about types in this way is always better because it declares expectations.
Similarly, I'd also eliminate other equivalent types like u32 because they're at best a distinction without a difference from the C standard and are sometimes also slightly incorrect in ways that cause problems. (We found this out firsthand during the migration to 64-bit when I was at Apple; the classic Macintosh headers had long had types like SInt32 that were used pervasively, but the way they had historically been declared versus how we wanted to redeclare them caused subtle difference in C++ name mangling when we tried to redeclare the types that in turn caused some large codebases to wind up exhibiting behavioral differences and incompatibilities.)
Oh, and if Musashi needs to compile on pre-C99 platforms that don't have <stdint.h> a replacement on those platforms should be very straightforward, especially if Musashi defines and uses its own types pervasively (e.g. m68k_uword_t and m68k_ulong_t based on uint16_t and uint32_t).