Very awesome. Very awesome, indeed.
I noticed that they encountered some porting issues, mainly symbol conflicts with newlib.
Are any of those changes getting ported back to baseline MAME? It seems like it would be a good idea.
Quote:
The Native Client toolchain currently ships with newlib, which is a lightweight libc implementation that differs slightly from the more commonly used glibc. The newlib-related problems we encountered during the port were all minor and could be fixed in a few minutes. We list them here for completeness:
- One of the MAME classes had a member named getc, which clashed with the newlib macro for getc. It is not clear why this did not cause problems with glibc. We fixed this problem by simply inserting "#undef getc" just before the field.
- The sound emulation defined a static variable named infinity, which clashed with a symbol defined by the math library. We fixed this problem by simply renaming infinity to spu_infinity.
- Another part of sound emulation #defined its own version of log2(), which was already defined in the math library. Guarding it with #if !defined(log2) solved the problem.
- In the CPU emulation, an enum contained the symbol _ADD, which clashed with some unknown header file #define. Adding #undef _ADD before the enum fixed the problem.
However, rather than #undef conflicts, I'd rename the member/variable in question.
GroovyMAME support forum on BYOAC
|