====== C compilers ====== ===== Official compiler ===== SunPlus released sources for the C compiler. It doesn't include the assembler and is based on GCC 2.95 so quite hard to compile: https://github.com/vsmile-dev/unsp-gcc * µ'nSP IDE is the official IDE for the CPU used. It can still be downloaded from [[https://www.generalplus.com/1LVlangLNw6SVw7SNservice_n_support_d|GeneralPlus website]] - {{ ::unspide_v4.0.1.zip |local copy}} ===== VBCC ===== Work in progress port of vbcc: http://pulkomandy.tk/gerrit/plugins/gitiles/vbcc/+/refs/heads/unsp The lack of vasm or another assembler with object file format and linker makes this hard to use. For now, the compiler generates output compatible with naken_asm, then all the output asm files need to be concatenated and fed directly into the assembler. And there isn't really support for sections or any fancy stuff like that, so getting the variables in RAM and the code in ROM is a bit messy. Also, the code generation is completely unoptimized currently. Adding support for at least pre and post incrementation decrementation would be a great help in generating simpler code. ====== Assemblers ====== XASM is the original assembler provided by the µ'nSP IDE [[https://github.com/mikeakohn/naken_asm/|naken_asm]] has support for µ'nSP and provides a standard include file for SPG200 registers. Work in progress [[http://pulkomandy.tk/drop/0001-Start-work-on-adding-uNSP-support.patch|patch]] to add µ'nSP support in [[http://sun.hasenbraten.de/vasm/|vasm]]. There are problems in vasm handling the pure 16-bit CPU, I have asked the vasm developers for help solving that. This [[https://github.com/vsmile-dev/vsmile-rom|early homebrew experiment]] took an interesting approach of not using an assembler at all. ====== Emulators ====== * MAME has good support for the V.Smile. * [[https://github.com/vsmile-dev/unununium|Unununium]] is a standalone emulator, but is known to have some bugs. * https://github.com/Schnert0/VFrown - A more up to date and maintained standalone emulator ====== Graphics ====== * https://github.com/gameblabla/png2vsmile - PNG converter to VSmile background bitmap format