Sailfish OS update from Jolla
We know that you all are waiting that 4.6. Sauna release would roll out to all users. Answer is yes, it will be rolled out to all users really soon. Before that we prepare a new release candidate as there is an improvement in the pipeline for the Android occasionally failing to start. Hoping that this would help many of us. At least so far looking promising.
In today’s fortnight we shed some light on GSM supplementary services which may have already forgot. Further, we have the usual Repository roundup and in the App roundup we take a look at some recent apps built using the Lua-based LÖVE 2D game framework.
GSM Call Waiting Service
Sailfish OS has some GSM supplementary services (GSM feature codes) in the menu “Settings > Apps > Phone” for each SIM card. These services include Call Waiting. After rolling 4.6.0.11 out for Early Access subscribers, a problem with Call Waiting was reported in the Forum. It is impossible to query nor change the status of Call Waiting using the said menu page. The alternative method, using dedicated codes at the dialler of the Phone app, failed to provide the service, too.
The following codes should work at the dialler (SEND means the call button):
- status query: *#43# SEND
- enable: *43# SEND
- disable: #43# SEND
The mentioned service has been broken a long time, it seems - please bear with us. We have a fix for it now. It will be delivered in the next 4.6.0 update.
Repository roundup
Communication bits
-
libqofono
, the QML bindings to Ofono, jmlich noticed some issues in the XML formatting of the D-Bus interface. -
connman
, the connection manager, Laakkonenjussi upgraded it to 1.33 and is working on the next 1.34 upgrade. -
libconnman-qt
, QML bindings for the connection manager, pvuorela added a propertyavailable
to theNetworkTechnology
object. -
buteo-syncfw
, the framework handling synchronisation, pvuorela removed the build dependency oniphb
which has been replaced a while ago by Nemo Keep Alive. -
libsocialcache
, a library and a QML plugin that is used to manage cache from social networks, pvuorela added support for PNG files with Dropbox (previously PNG files were converted to JPEG) and adaptedbuteo-sync-plugins-social
to the API changes. -
libcommhistory
, the library to access SMS / phone history, pvuorela corrected the wrong usage of a service name instead of an interface one in DBus listeners.
Multimedia framework
-
gstreamer
, a multimedia framework, mal upgraded to the latest upstream version 1.24.3. The various plugins were also upgraded accordingly.
User interface
-
sailfish-utilities
, the setting page to restart failing services, rainemak added an action to restart the audio stack in case it is stuck. -
nemo-qml-plugin-calendar
, the QML bindings for calendar events, dcaliste is proposing a fix for lagging issues on event viewing in the calendar application when the event database is slow to be loaded.
Low level libraries
-
wayland
, Wayland compositor, mal updated it to 1.22.0. -
wayland-protocols
, Wayland protocols that adds functionality not available in the core protocol, mal updated them to 1.36. -
mce
, mode control entity, piggz proposed to emulate a double tap (user interaction) when the modem emits aKEY_WAKEUP
event. spiiroin argued that it may not be wise to simulate a user event from a device event. He proposed instead to quit suspend state when the modem emit the event, so a user action can later on wake up the display. -
nfcd
, the daemon for near field communication, now thatlibnfcdef
is in the repositories slava 's work has been merged in. -
nemo-qml-plugin-contacts
, QML bindings to access the contact database, sunweaver is working on adding a GSettings backend, besides the existing one using MLite. -
ssu
, the seamless software updater, keto proposed to add the ssu domain into the repository properties. -
gzip
, the compression tool and library, mal updated it to 1.13.
Developer’s corner
-
buteo-sync-plugins-social
, several sync plugins for Google, Facebook and other proprietary protocols, as for the CalDAV plugin, pvuorela cleaned up the installation scripts to avoid unnecessary service restarts since the plugin processes are now out-of-process. -
meego-rpm-config
, specific rpm configuration files for Sailfish OS, mal switched python bytecode compilation step to use Python 3. -
qt-installer-framework
, base for the SDK installer, martyone fixed an issue with archive sizes not being reported properly. -
ccache
, the compiler cache, mal updated it to 4.9.1. -
nemo-qml-plugin-contacts
, QML bindings to access the contact database, sunweaver fixed a build issue because of missing QtDBus dependency. An option to compile withoutmce
was also added.mce
is used to know if the bindings are used in a GUI application or not and to react on display state changes. -
nemo-qml-plugin-notifications
, QML bindings to the Freedesktop notification system, pvuorela moved internal includes into cpp files. -
meson
, a high productivity build system, mal updated it to 1.4.1. -
ninja
, a small build system with a focus on speed, mal updated to 1.12.1. -
nasm
, a portable x86 assembler, mal updated it to 2.16.03. -
ncurses
, the library to use terminals, mal proposed to update it to 6.5 from 6.3. -
fdupes
, a tool to find duplicated files, mal updated it to 2.3.0.
App roundup
We have a slightly unusual app roundup today. We would typically use this space to share some of the latest apps to be released or updated on the Jolla Store, to give you an idea of the sort of apps that are out there and maybe encourage you to try some new ones. But today we’re shaking things up a bit by looking at the work of a particular developer using a very specific set of tools. The apps we’re going to talk about today aren’t all ready for general use, but they’re developing fast and we think they’re worth taking a closer look at.
You may have seen that for several months now glitchapp (RosSigudottir) has been working on porting Lua-based games and related apps to run on Sailfish OS. We’re really impressed by this effort, which builds on the LÖVE 2D game framework. We’ll come back to that in a bit, but while glitchapp is to be credited with the impressive work of porting, amending and in some cases writing the games that are being released to work with this framework, it’s also worth highlighting how other members of the Sailfish community have been helping with the effort as well.
You can follow developments on the “Help building Native standalone LÖVE games” topic on the Sailfish Forum, or try out the games for yourself. It’s gratifying to see the combined effort of so many users bringing all these great looking titles to Sailfish OS.
Before looking at the releases themselves, first a word about the LÖVE 2D framework and its installation. The underlying implementation for Sailfish OS was ported and released by sashikknox. You can find out more about the framework on the cross-platform homepage for the project, or on the Sailfish-specific page on OpenRepos. If you want to play any of the games you’ll first need to install this LÖVE 2D runtime. The 32-bit ARM device are nicely covered by the packages available on OpenRepos, however currently there are no aarch64 builds available from there.
Thankfully rinigus has submitted a version to Chum with builds for all architecture, so if you want to use the apps described here you should first get yourself a copy of the runtime installed from there. During my attempts I found the games would happily install, but not run, without the LÖVE runtime, so make sure you do install it first.
Having done so you can then go ahead and install some of the games ported by glitchapp. I chose Boxclip for my first playtest since it’s one of the slicker releases, with beautiful graphics, involving gameplay and bearable music! SEGA buffs will immediately recognise the Sonic the Hedgehog inspiration for the game. In fact, it’s not trying very hard to hide its lineage: the first level is called Sunny Hill and looks remarkably similar to Green Hill from the original game released on the Sega Mega Drive/Genesis in 1991.
But while visually similar and with similar gameplay elements the levels are completely new and, in practice, the gameplay often differs from Sonic in meaningful ways. I found this to my dismay while running horizontally in to vertical spikes. Where Sonic would have come safely to a stop, the Boxclip character continues onwards into the spikes and suffers a swift demise. Ouch!
It’s a great game, but there’s still work to be done on it, which is where these titles differ from those that would normally appear here. It’s clear that the LÖVE 2D engine and the Sailfish apps glitchapp is porting using it are works in progress. On an Xperia 10 II, by no means one of the slower Sailfish devices, the game still struggles to run at a decent speed. It’s playable, but only just and the latency quickly becomes a source of frustration. The controls are servicable but could do with refinement (mostly due to the delays I suspect) and it would also be great if the game were playable in landscape mode.
Don’t get me wrong: I’m loving these developments, but if you’re trying them out it’s important to have appropriate expectations.
There are a huge number of other games available from OpenRepos that glitchapp has released. In terms of performance Blockdrop fares better than Boxclip with no problematic latency on my 10 II. The controls still need some refinement but with a bit of practice I felt like I was making good progress with the game. The game itself involves objects falling downwards from the sky into a rectangular area Tetris-style. As with Tetris the objects can be moved left and right or rotated. But rather than Tetris-style tetrominos, these are pairs of spheres of differing colours. As the spheres land any grouping of four or more of the same colour get magically swept away, allowing those above to fall with the potential to create thrilling chain-reactions of removals. The game is a riff on Puyo Puyo, a great little game from the early ninetimes (although my first experience of the game was in the form of Super Foul Egg). It’s a fun way to while away the time, and with a little more refinement of the controls has the potential to become a real blast.
Sokoban is another classic game that glitchapp has ported a version of, called glitch sokoban and based on one of the LÖVE 2D tutorials. A puzzle game, you play on a rectilinear grid with a controllable character able to push certain blocks around by shoving them in one of the four directions. Your aim is to push each of the blocks on to one of the target locations, indicated in this game by a crate that the blocks must be pushed into. Straightforward enough, except the layout of the room means you can easily get blocks stuck against a wall in such a way that it becomes impossible to move to the other side to push them away. Blocks can get stuck against walls, other blocks and in corners; invariably blocks must be pushed in a very specific way and in just the right order if you’re going to successfully complete a level.
The level design is key to the success of the game, and this implementation sticks to tried and tested variants. It’s an interesting LÖVE 2D game for Sailfish OS in that it’s one of the few that supports landscape mode. Like the other games here the controls are a bit fiddly, but it’s less of an issue here since there’s no time pressure with the gameplay. Overall this makes it a more solid experience.
Not all of glitchapp’s LÖVE 2D apps are games. I’m always searching for a better Sailfish OS text editor, so I was excited to see codeeditor, a text editor that is literally implemented using the LÖVE 2D game engine. As with all of the other apps here it’s written using the Lua scripting language, but without access to the Silica components it’s using the game engine for rendering widgets instead. It’s really impressive to see the effort that glitchapp has put into developing a LÖVE 2D-based keyboard and a pull down menu to offer not just a bespoke mobile experience, but a bespoke Sailfish mobile experience. It’s coming along, but the app isn’t yet ready for general use. For example, the tracking on the keyboard is off-centre on an the Xperia’s 21:9 display, making it impossible to hit certain keys, and there’s no ability to load files yet.
I don’t want to detract from how impressive glitchapp’s work is here, but I’m also not yet recommending these apps to general users. In many cases there’s still a way to go before they’ll be fully usable and glitchapp is very clear that they’re still a work in progress. Neverhteless I do want to take the opportunity to champion the effort going in to them and highlight how exciting it is to see them develop.
All of these games are available to download from OpenRepos.
So there you have it. A slightly different all-LÖVE-2D-basd app roundup this fortnight. I hope you enjoyed this glance into the developing world of Sailfish OS LÖVE 2D games. Some exciting developments that I think will be well worth tracking as they mature, especially if you’re keen — like me — to see more games available for Sailfish OS.
Please feed us your news
As always, please do not hesitate to share your ideas, thoughts, or suggestion for future newsletter topics.
Hope you enjoyed reading this one!
Please do also join us at our community meetings on IRC, Matrix and Telegram. Next community meeting will be on the 13th June. Let’s keep on working together!