| Summary: | SDL_mixer+mikmod broken on Mac OSX | ||
|---|---|---|---|
| Product: | SDL_mixer | Reporter: | Ryan C. Gordon <icculus> |
| Component: | misc | Assignee: | Sam Lantinga <slouken> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | CC: | codepro |
| Version: | unspecified | ||
| Hardware: | PowerPC | ||
| OS: | Mac OS Classic | ||
|
Description
Ryan C. Gordon
2006-01-03 12:08:53 UTC
Ryan C. Gordon wrote: >>>> When i compile it on Mac OSX SDL_mixers internal MikMod version >>>> produces no sound output. > >> >> I believe it's been posted before, but I haven't had a chance to >> research it at all. Ryan, I think it has something to do with some interesting code in virtch2.c ;-) #if defined(macintosh) || defined(__APPLE__) #define NO_64BIT_MIXER #endif [... snip ...] #ifdef NO_64BIT_MIXER /* Uh oh, the 64-bit mixers don't compile... */; #else The latter essentially translates to "produce no output if the song is long enough", where 'long enough' is a few milliseconds at 22.5KHz. We should see how later versions of MikMod handled 64bit ints on Apple compilers. -Alex. what about using the external libmikmod linkage, which should be later (if if gets updated of course) than the one in SDL_mixer. At least try that option (which is already in SDL_mixer's configure script) to see if a later version does fix the problem. Though I don't have MacOSX myself, I've checked the various libmikmod versions (pre- and post- the mentioned change). None of the libmikmod versions ever had such #ifdef code. According to CVS, these #ifdefs were introduced during a port to MacOS (classic?) in virtch2.c rev 1.2. The next revision (1.3) added the defined(__APPLE__) to the existing #ifdef, which broke MacOSX: "Darrell Walisser - Sun Aug 19 00:47:22 PDT 2001 * Fixed compilation problems with mikmod under MacOS" -#ifdef macintosh +#if defined(macintosh) || defined(__APPLE__) I am willing to bet the disabled code will, in fact, compile just fine on MacOSX ;) But someone should try it, of course. Perhaps some better #ifdef checks should be used so that they only apply to MacOS classic. Tossing the SDL_mixer bugs to Sam (all three of which might be the same bug in practice)...if you don't want these, toss them back to me. --ryan. Setting Sam as "QA Contact" on all bugs (even resolved ones) so he'll definitely be in the loop to any further discussion here about SDL. --ryan. Fixed in subversion, thanks! |