02 Feb 2024
Planet Maemo
libSDL2 and VVVVVV for the Wii
Just a quick update on something that I've been working on in my free time.
I recently refurbished my old Nintendo Wii, and for some reason I cannot yet explain (not even to myself) I got into homebrew programming and decided to port libSDL (the 2.x version -- a 1.x port already existed) to it. The result of this work is already available via the devkitPro distribution, and although I'm sure there are still many bugs, it's overall quite usable.
In order to prove it, I ported the game VVVVVV to the Wii:
During the process I had to fix quite a few bugs in my libSDL port and in a couple of other libraries used by VVVVVV, which will hopefully will make it easier to port more games. There's still an issue that bothers me, where the screen resolution seems to be not totally supported by my TV (or is it the HDMI adaptor's fault?), resulting in a few pixels being cut at the top and at the bottom of the screen. But unless you are a perfectionist, it's a minor issue.
In case you have a Wii to spare, or wouldn't mind playing on the Dolphin emulator, here's the link to the VVVVVV release. Have fun! :-)
02 Feb 2024 5:50pm GMT
30 Nov 2023
Planet Maemo
Maemo Community e.V. - Invitation to the General Assembly 2023
Maemo Community e.V. - Invitation to the General Assembly 2023
Dear Member,
The meeting will be held on Friday, December 29th 2023 at 12:00 CET on irc.libera.chat channel #maemo-meeting.
Unless any further issues are raised, the agenda includes the following topics:
1. Welcome by the Chairman of the Board
2. Determination of the proper convocation and the quorum of the General Assembly
3. Acceptance of the annual report for the fiscal year and actions of the Executive
6. Any other business
Requests for additions to the agenda must be submitted to the Board in writing one week prior to the meeting (§ 9.2 of the Statutes).
On Behalf of the Maemo Council, Jussi Ohenoja
30 Nov 2023 8:52am GMT
15 Nov 2023
Planet Maemo
stb_image_resize2.h – performance
Recently there was an large rework to the STB single-file image_resize library (STBIR) bumping it to 2.0. While the v1 was really slow and merely usable if you needed to quickly get some code running, the 2.0 rewrite claims to be more considerate of performance by using SIMD. So lets put it to a test.
As references, I chose the moderately optimized C only implementation of Ogre3D and the highly optimized SIMD implementation in OpenCV.
Below you find time to scale a 1024x1024px byte image to 512x512px. All libraries were set to linear interpolation. The time is the accumulated time for 200 runs.
RGB | RGBA | |
Ogre3D 14.1.2 | 660 ms | 668 ms |
STBIR 2.01 | 632 ms | 690 ms |
OpenCV 4.8 | 245 ms | 254 ms |
For the RGBA test, STIBIR was set to the STBIR_4CHANNEL
pixel layout. All libraries were compiled with -O2 -msse
. Additionally OpenCV could dispatch AVX2 code. Enabling AVX2 with STBIR actually decreased performance.
Note that while STBIR has no performance advantage over a C only implementation for the simple resizing case, it offers some neat features if you want to handle SRGB data or non-premultiplied alpha.
15 Nov 2023 1:50pm GMT