HaijoHaijo7@snac.haijo.eu
4/16/2025Looking into making a port of Celeste for the PlayStation Vita. (The steam version, not the pico-8 version)
It's probably going to be somewhat hacky, the game was written in C# (which isn't a very open language, Microsoft owns every runtime implementation).
At first I thought about removing all references to external libraries and compiling it to webassembly, then converting the webassembly to C.
But when compiling C# code to webassenbly, the runtime is compiled into multiple different wasm files. That isn't going to play nice with wasm2c.
But apparently C# can be compiled to a native arm32 binary, providing the code doesn't dynamically load any libraries.
(There are probably a few other requirements, the documentation isn't very clear)
Official console ports were made using this method (but compiled to a binary for the target hardware and os, most of which are only available under nda).
Others have gotten some native arm android games to run on the ps vita by patching the binaries in ram, I'm planning to use a similar approach.
So far I've only removed references to steam, the game now just runs on a desktop without steam. Still using the C# runtime, not native yet.
It's probably going to be somewhat hacky, the game was written in C# (which isn't a very open language, Microsoft owns every runtime implementation).
At first I thought about removing all references to external libraries and compiling it to webassembly, then converting the webassembly to C.
But when compiling C# code to webassenbly, the runtime is compiled into multiple different wasm files. That isn't going to play nice with wasm2c.
But apparently C# can be compiled to a native arm32 binary, providing the code doesn't dynamically load any libraries.
(There are probably a few other requirements, the documentation isn't very clear)
Official console ports were made using this method (but compiled to a binary for the target hardware and os, most of which are only available under nda).
Others have gotten some native arm android games to run on the ps vita by patching the binaries in ram, I'm planning to use a similar approach.
So far I've only removed references to steam, the game now just runs on a desktop without steam. Still using the C# runtime, not native yet.