It's an honor, thank you for letting me know!
John smit
Creator of
Recent community posts
Yeah, I play fast and loose with headers, my calypsi header was also incomplete until someone pointed it out, thanks for testing and pointing it out though, I'll fix my llvm-mos builds accordingly! Really a side effect of me treating ROMs as a formatted code+data dump as opposed to like an actual format for shipping code
Nah, I think your right to mention the physics, because the engine is effectively a complete rewrite and runs at 60fps in a 256x256 world, some things were approximated, particularly the integration on the jump arc/fall speed. could maybe have been made a wee bit more generous. I did start writing a sound driver, it crashed after 7 commands because of bugs in llvm-mos's spc700 code gen.
Interesting write up, I do wonder how much of your struggle with the HiROM to LoROM rewrite could be alleviated via better tooling/linking, I assume the issue is swapping things from short to long addressing on subroutine calls and jump tables, because at least coming from a c background, those are sort of beyond the scope of the programmer, it's the linker's job to figure out what subroutines are related and to put them all into banks.
I mean an easy solution that would help fix both the frame rate and and feel of the player physics would have been matching the originals 30fps frame rate, VBCC would be full speed basically everywhere except level 12 with as little as a 15% speedup. You can test overclock of the cpu in Mesen in scan lines and just divide by 525 for a percentage. Adding about 50 scanlines was enough to fix most slowdowns, though 80 was basically all.

