Solarus Engine Wii Port

Started by carstene1ns, October 27, 2013, 11:03:45 PM

Previous topic - Next topic
Just wanted to let you know, that i am working on a Wii Port of the Engine.

First impression Video here: (don't mind the crappy mobile phone camera)

What works so far:
  • Video (SDL)
  • Input (only USB Keyboard)
  • File loading (from SD)

  • Audio backend (no OpenAL Port for Wii)
  • Proper Filesystem support (only did a rough PhysFS Port - very slow)
  • Controller Support (mapping keys)

Project Page:

Okay, a little progess:

Game data is cached in memory now, so it is a lot faster.

Oh my god, this is amazing!
So everything works now except the sound?
We will definitely integrate your work in the official Solarus repository if you are okay :)
Great work!

December 07, 2013, 02:36:52 AM #3 Last Edit: December 07, 2013, 06:01:06 AM by carstene1ns
Well, I do not have any problem with adding Wii support to the main repository.
However, I do not really know if it is an easy task to do and support afterwards.

The main reason I am sticking to the 1.1 branch is, that some of the new features integrated afterwards are not usable on the Wii (yet).
For example there is no SDL2, OpenGL and LuaJIT for Wii. These are not impossible to use, but it will requiere time/effort to port/use:

  • SDL2: A couple of things could be used from wii-sdl for sdl2, but this would only affect the software based renderer.
  • OpenGL: The Wii's native GX is similar to GL and a wrapper library like gl2gx, opengx or GRRLib could be used.
  • LuaJIT: There is PowerPC support, but I have not been able to compile and use it for Wii yet (which does not mean it is not possible...).

Now for the sound backend: OpenAL is not ported either, I had a short look at it, but not too deep (yet). Generally it should be possible, but I do not know, if it is worth the effort.
The format libraries like ogg, vorbis and modplug would be usable (tremor-lowmem is even available with libogc), but they could be used with a native library (aesnd) as well without much trouble.

I think generally it would be a good idea to implement an easy way to support multiple backends, so ports do not pollute the main sdl2/openal backend with #ifdefs in every function and such (This is the reason I copied the complete lowlevel folder to start the port).

The things I want to do, before I think it is usable (in random order):

  • Think of some strategy for memory allocation: Currently everything happens in MEM1(24mb), which means on some point it will just run out of memory and crash. MEM2(64mb) feels lonely.
  • Simplify controller logic: Currently the c,d,v,space keys are only useable from an external usb keyboard and the wiimotes/controllers are usable via sdl joysticks (→ only ingame currently). there needs to be some kind of glue code, but I think hardcoding buttons to keycodes is not the-right-thing-to-do™.
  • some kind of audio output (see above)
  • some kind of video output (see above): sdl is good for what it is used for (it brings the image on the screen), but hacking up a native renderer would also be possible (and has been done for most bigger homebrew).

There are also other things, but I would just consider them nice-to-have (like a menu for choosing the game folder).

You see, there is still a long way to go ... ;)

best regards!

What is the progress??
You know that nearly all of use strugled once
with RPG maker. But now we make with
Solarus! 8)

January 20, 2016, 12:02:20 AM #5 Last Edit: January 20, 2016, 12:41:07 AM by MetalZelda
This reminds me of continuing the port of Solarus on the PSP, but as stated , memory is a great source of problem (64mb of total ram)

The thing that I think remarkable here, and that give me motivation, is the fact that even if the game run on a 24mb ram section it is still smooth. But Wii and PSP are different systems. (700mhz vs 333)

I would actully like a Solarus Wii U port better :D
You know that nearly all of use strugled once
with RPG maker. But now we make with
Solarus! 8)

How far?
You know that nearly all of use strugled once
with RPG maker. But now we make with
Solarus! 8)

There is no news since 2013 so I don't think the Wii port is still actively being worked on.

So sad
You know that nearly all of use strugled once
with RPG maker. But now we make with
Solarus! 8)

Yes, it seems dead.
Too bad, looked kinda cool.

Since we are on some Solarus port thread, did someone has tested Solarus on a Raspberry Pi (Debian) ? I wanna know how descent MoS or BoM runs on these $30 machines

January 07, 2017, 02:31:16 PM #11 Last Edit: January 07, 2017, 11:02:05 PM by MetalZelda
We shall try to port it on the New 3DS, it has a growing up underground community and the New3DS specs are descent enough to run MoSDX / BoM / ES / other project at full speed without any problems (256mb ram, quad core cpu, 10mb vram). Old 3ds can run this as well.

There is a good tutorial on how to make / compile for the 3DS overall