Really a dumb issue really. This is fixed but it seems that SMS Plus GX
is not that good when it comes to Colecovision emulation.
Maybe i somehow broke it along the way ?
accurate anyway.)
Updating the emulator's core code to fix some issues reported by Clang/GCC.
(bios.pages was 8-bits even though cart.pages was 16-bits.
This could cause issues if a game like Bad Apple is played using the bios.)
Removing error.c/error.h, it was never used.
I'm trying to fix the signing/unsigned issues that i had introduced
a while back unfortunately (though the older code still suffered from it
to some code).
Some of it is fixed but not all of it is fixed. Ideally, this should
be switched to using 32-bits ints if possible.
One of them is a fix for a really odd bug with the proprietary z80 core :
Pause button would not work.
For some reasons, executing the irq line functions will not work if
put in a function so what i did was a bunch of macros instead.
This now works and reduces the complexity of the code kinda.
(Also inlining)
There's also a fix for the ALSA code. On the bittboy,
it woud sometimes underrun. When it does so, it becomes mute.
Fixed this by handling underruns and removing non blocking.
(Useless anyway here)
I will probably regret doing huge commits like this one but
i'm too lazy to make smaller commits out of it so i'll make a
huge changelog instead.
I tried to make it more modular and this is the result of it.
In the Makefiles, you can easily choose the Sound API of your liking
as well as the fine-tuned SDL port you want to use.
Sound output : I finally addressed the SDL port as far sound is concerned,
and the SDL sound api is now supported again and properly this time.
I also added support for ALSA, OSS, libao, Portaudio and Pulseaudio.
Won't do DirectSound and/or WaveOut because fuck Windows :P
(but if you are interested, open a bug report)
Z80 core : When i added back the proprietary z80 core, i added version 3.4,
not the later version 3.9 that was improved by Exophase himself.
This should hopefully address the inaccuracy flaws that the old version had.
My mistake
I did a lot of cleaning too. I removed the old unsupported files
since they are now useless and you are better off using the
newer code instead.