FWIW, we're still using the decade-old SDCC 2.9, because the 3.x series has been changed/broken so much that we haven't been motivated enough to port our old programs and libraries to it, and neither has anyone I know. Even though C is theoretically a high-level language, you still have to get your hands dirty with lower level stuff to survive making anything useful for 8-bit machines, particularly games.
SDCC is well known for having regressions. I'm very happy with 3.6.0, but 3.7.0 sucks (the generated code is bigger with no significant advantage speed-wise).
You're right. There's not other way. You have to check the generated ASM code every now and then, specially when SDCC may have bugs and generate broken ASM (this is rare, but it has happened to me once, now I have trust issues!).
If you want to make retro games programming purely in C, then Amiga or MS-DOS would be a better choice. For Amiga there's the VBCC compiler, which is just tremendously good and produces excellent code.
http://sun.hasenbraten.de/vbcc/
I ported our karaoke engine from MSX/SDCC+z80 asm to Amiga/VBCC with no custom 68k asm code at all, and it was a very nice experience.
http://www.pouet.net/prod.php?which=65733
Here's the original MSX version with PSG music
http://www.pouet.net/prod.php?which=61622
@Yzi, is there a way to contact you privately through mail?
Hi all,
With the new alpha 5 version of Arkos Tracker 2, you can directly convert the player and music source to SDCC (or any other assembler), thanks to Disark, a source converter. So no more manual conversion! Check the compatibility page here.
Disark is pretty interesting! And very useful to have replayer source conversion for ArkosTracker.
wimpie3: what is it about?
By the way, along the years, I've been having a buggy version of the Arkos Tracker 1 playroutine SDCC conversion around and coming up always at the wrong time. The buggy version doesn't preserve all registers correctly, and it may hang the main program, so watch out. You might be better off using the new Arkos Tracker 2 in any case. (I haven't tried the new version though)