Over the past two days, I’ve ported a more or less fully working version of SSNES 0.9.2 to PS3. This includes a full Cg shader implementation and rewind support. Some work still remains to be done (such as writing some platform-agnostic menu code - it should be able to do the following - an in-game menu to be triggered in-game - a menu for selecting a ROM to be loaded by SSNES - and a menu for enabling/disabling settings. Since I’m notorious for not being able to write decent conformant code that also happens to be portable, I’m hoping for Maister to be able to guide the console menu-code endeavor so to speak :).)
My main aim is to get a lot of ports done by the end of December. The following are currently in the pipeline:
- Xbox 360 (XeXDK)
- Xbox 360 (Libxenon)
What I’m likely to be working on next when this is done -
- Android
- Nintendo Wii
Xbox 360 - XeXDK
The main problem right now with the XeXDK port is that the environment is MSVC-based - and since MS doesn’t want to support C99, the code has to be compiled as C++, which presents its own share of problems (direct initializers, implicit casts), along with the MSVC-oddisms (tripping over dozens of ‘WIN32’ defines and trying to include ‘winnt.h’, strcasecmp (_stricmp equivalent on MSVC), ceil and roundf functions all missing - lots of other stuff that I’m not going to mention right now). On the other hand, you do get the advantage of full XAudio2/XInput/DIrect3D support - along with DLL support. So overall, even though this port is a pain and definitely non-mergeable, it’s worth the effort IMO.
https://github.com/Themaister/SSNES/tree/ssnes-360
It’s being worked on as we speak, but it will need a lot more work before it starts actually doing something.
Xbox 360 - Libxenon
The competing port (also done by me), for Libxenon (which is basically Linux running on Xbox 360) - should be a much more straightforward affair - we will be able to compile as C99 - but obviously video/audio remains a big ‘if’. According to people like Lantus - Libxenon emulator ports perform a bit better than emulator ports running in the official Xbox environment (XeXDK) presumably due to the lack of a heavy OS burdening things down (apparently the Linux kernel is more slimjim) - so that bodes well - but the main problem I’m seeing is that shader and video support is going to be a bit limited compared to - say - XeXDK.
Anyways, hopefully the Libxenon port will be as easy to merge as the PS3 port - if that is the case, we can still keep a full-featured XeXDK port as a branch but still have a very good port for 360 in the master branch. With the recent glitch hack on 360, all current-day Xbox 360 consoles have access to unsigned code - and the libxenon ports were the first homebrew to be made running. So there should be a very big audience in that regard.