SSNES is going multi-platform (PS3/360/Wii/Android)

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.

1 Like

Cool!

OK, the libxenon port is now officially stillborn - I got as far as having a working video driver/input driver/audio driver, but the main problem now is heavy screen tearing. If/when they will add double buffering/triple buffering I will have a look at it again - until then, I consider heavy tearing in console emulators to be basically unplayable, therefore it’s not fit for release.

Guess the only option is the XeXDK then for Xbox 360.

360 and PS3 ports are now (mostly) done, now I have to finish up the (tedious) GUI stuff for both of them.

This is probably to late but do u have a JTAG or a RGH xbox 360?

I would love to see this working on the xbox 360.

I have an RGH machine and the port works just dandy on it.

Amazing work Squarepusher and TheMaiter!!!

I am very happy that you all decided to port it to xbox360 as a jtag owner…so I’ve any questions:

-Will you do official releases for xbox360 ?

-I have seen in your repository that you also ported more emulators for xbox360, such as VBA, Genesis, Nes, ect … Is this correct ?

-You could say something more about your development projects for xbox360, now that is completly open thanks to the RGH and the release of debug kernels and plugins for debuggin on retail Dash ?

Very Very thanks for this hard work!!!

I have an RGH machine and the port works just dandy on it.[/quote] Nice ! good to know thanx

Yeah that one reason I asked I have another reason waiting on a replay.

SSNES 360 runs the very same emulators as SSNES PS3 - SSNES 360/SSNES PS3 is the frontend that ‘runs’ the emulator cores - which we call ‘libretro’ libraries. So, a ‘libretro library’ is an ‘emulator port’ so to speak that hooks into SSNES 360.

So yeah, VBA Next, Genesis Plus GX, FCEU Next, SNES9x Next, SNES9x, Gambatte and FBA should all work on 360 as well as PS3.

Regarding the 360 release - yeah - the real release hasn’t happened yet - same with the PS3 port - but it’s coming soon. The ‘releases’ you’ve seen so far have not been official. When it happens,it will go through the ‘usual channels’.

Also, we might decide on a name change before ‘SSNES’ PS3/360 is released- so it will be released under a new (not yet disclosed) name.

Cant wait for the release. I have all the current Consoles and intend on installing SSNES on all 3. Cheers Square and Themaister for rocking my Consoles. :slight_smile:

Thanks.