Solarus Press Kit

As you may have noticed, Solarus recently got some spotlight thanks to several websites. PC Gamer made a interview of Christopho and talked about Solarus in a really good article.

Since several websites may want to talk about Solarus, we made a press kit so it’s easy for them to gather logos, Editor screenshots and more. It’s here.

Situation Review for Solarus projects

This summer, the Solarus Team has been working hard on multiple projects in parallel. On the French website, The Legend of Zelda: Mercuris’ Chest is the one we talk the most, although screenshots are rarer these days. However, this is not the only project that makes progess currently. It is now the time to unravel what we want to achieve in the near future. You might follow Chris on his Twitter account or Youtube streamings. If so, you already know some news.

The Legend of Zelda: Mercuris’ Chest

This is Solarus Team’s flagship. It is an ambitious project, with a deep story, a huge overworld and lots of dungeons. The story is written, the mapping is progressing. Newlink created a lot of new sprites and tiles for this project, including a custom Link. Here is a screenshot of a very important village in the game, but we can’t tell you more!

The Legend of Zelda: Oni-Link Begins Solarus Edition

Following Return of the Hylian Solarus Edition, this is the remake of Vincent Jouillat’s second game. Lately, we have progressed a lot on this remake, during live-streaming nights. We can estimate that 40% is done. Although all the enemy sprites, NPC sprites, and Oni-Link sprites are done, there is still a lot of mapping to do. We had the secret hope of releasing it on August 12th (Vincent’s games birthdays) but we choose to not rush it and take time, without giving up the other projects.

The Legend of Zelda: Link’s Awakening – A Link to the Dream

It is a remake of Link’s Awakening in A Link to the Past graphical style. This project was stopped a few years ago, but since a few weeks a born again from its ashes. It looks very promising.

This is Binbin’s project (Zeldaforce webmaster). He is almost a member of the Solarus Team, actually he is the author of our French speaking website, so we can say he’s in the team! The Solarus Team is helping him to get this project done as soon as possible.

You will find more information (French-speaking) on his website.

Children of Solarus

For once, let’s take a break from The Legend of Zelda series, and let’s take a look at what is our security belt against obvious copyright issues. As you may know, using A Link to the Past assets is not allowed, neither making and distributing your own The Legend of Zelda game. So Diarandor works hard to create 100% free assets (Creative Commons): graphics and sound/music, without any reference to The Legend of Zelda series. The result is Children of Solarus, a 100% free and open-source version of Mystery of Solarus DX.

This screenshot is not from the game, but from a test project used by Diarandor to develop graphics and scripts. The game will have several changes and enhancements from Mystery of Solarus DX. Diarandor is currently working on the outside overworld tileset. As soon as this is ready for mapping, Chris will begin making the maps and will live-stream it.

Solarus Quest Editor

Solarus Quest Editor Logo

If you see more and more projects using Solarus, that is because each Solarus iteration brings a lot of new features, and Solarus Quest Editor becomes easier and easier to use. We are working on the next Solarus version (Solarus 1.6), whose main new feature will be a functionality that mappers dream of: autotiles! This functionality enabled automatic generation of walls around a room, for example. RPG Maker users should already know this feature well.

The goal is to make dungeon creation very easy: just draw the ground, and corresponding borders and walls are automatically added.

A new Solarus website and tutorial

As you might have seen, this current website is a bit bulky and old. Moreover, the written tutorials (originally made by Renkineko) are also old and sometimes deprecated. We want to give Solarus a more professional looking website. The wiki will be dropped, in favor of a Grav-like tutorial, made with Grav, just like the new website. The benefit of using Grav over WordPress is easy versioning of pages, because it is based on a markdown file-system instead of a database.

English translation for XD 2: Mercuris Chess

On April 1st, we released the sequel to MoS XD. However, it is still only available in French. In order to translate it to other languages, we need English first. It’ll be a tough task because a lot of jokes are references to French pop culture (cult movies for instance). There are lots of dialogs by funny NPCs all around the overworld. If you can help us, don’t hesitate! Come over chat with us on Gitter.


And… that’s all for today!

Zelda Mercuris Chess is out !

The incredible just happened.

Today we are able to offer you, and waaaaaay before the announced release date of 2023, the final version of our new Zelda game: Mercuris Chess !

This is not without some emotion and proudness that we give you the opportunity to download our creation from now.



Download Zelda Mercuris Chess (full game)

French only, Windows only (for the moment)

This ultimate version was made with long development nights, intense mapping, lots of coffee and Schoko-bons. We hope that you will enjoy this new 2D adventure which will make you travel through marvelous lands, wander complex dungeons and perhaps evoke some memories.

Some of you may have guessed that a release was close, since Christopho published regularly screenshots of the game on his Twitter account since the begining of the year. Tell us, if you were right !

Don’t hesitate to give us your appreciation in the comments or on the forum about this new adventure that closes years and years of work and passion.

Last but not least, we have to pay hommage to the whole Solarus Team who worked relentlessly on this crazy project. We can be proud of what we accomplished, guys ! Thank you all for the Game Jam memories, and congratulations for finishing this project.

See you and have fun !

Solarus official Gitter

We created an official Gitter chat for things about Solarus. For the moment, there is only one room, the default one. Gitter is a popular chat whose benefit is being tighly linked to Github, and where you can write directly in markdown. If necessary, we will create more rooms for each projects.

Solarus official Gitter

Bugfix release 1.5.2 and improved sample quest!

A new bugfix release of Solarus, Solarus Quest Editor and of the Sample Quest was just published!

A few annoying bugs were fixed.

Additionally, we added a lot of content to the official Sample Quest, including enemies, NPCs, musics and sounds (thanks Diarandor!). And there is also now an experimental clickable HUD (thanks Vlag!). The sample quest can now be playable without keyboard.

Finally, Solarus Quest Editor and the Solarus launcher GUI are now available in Spanish (thanks Diarandor)!

Changes in Solarus 1.5.1

  • Launcher: add Spanish translation (thanks Diarandor!).
  • Launcher: start the selected quest with Return or double-click (#949).
  • Launcher: fix registering quest at quest install time (#948).
  • Fix crash when a carried bomb explodes (#953).
  • Fix crash when a scrolling teletransporter is incorrectly placed (#977).
  • Fix crash when an entity has a wrong savegame variable type (#1008).
  • Fix memory leak when creating lots of surfaces (#962).
  • Fix cleanup of the quest files at exit.
  • Fix error in sol.main.load_settings() when the file does not exist.
  • Fix ground ignored after hero:unfreeze() or back to solid ground (#827).
  • Fix entity:get_name() returning nil after the entity is removed (#954).
  • Improve error messages of surface creations and conversions.
  • Chests: set an initial value “entities/chest” to the sprite field.

Changes in Solarus Quest Editor 1.5.1

  • Add Spanish translation (thanks Diarandor!).
  • Update maps when renaming musics, enemies and custom entities (#222).
  • Fix resizing the console when a sprite editor is open (#215).
  • Fix quest reopened even if it was closed in previous session (#220).
  • Fix renaming .it and .spc musics.
  • Fix typos in the dialogs and strings editors (#231).
  • Fix typo in French translation (#240).
  • Map editor: fix update teletransporters checkbox in tile edit dialog (#221).
  • Map editor: fix setting destructible objects non liftable (#247).
  • Map editor: save all only if necessary when renaming a destination (#219).
  • Map editor: fix tileset view scrollbar position lost sometimes (#229).
  • Map editor: fix escape accepting resize/move instead of cancelling it (#217).
  • Tileset editor: fix selected pattern view after refreshing the image (#218).
  • Text editor: fix freeze when indenting selected lines sometimes.
  • Text editor: don’t indent empty lines.
  • Initial quest: put the solarus logo script in scripts/menus/ (#216).
  • Initial quest: fix wrong hero sprite after game-over.

Changes in Solarus Sample Quest 1.5.1

The official sample quest is growing bigger, it now deserves its own git repository.

  • Add enemies, NPCs, musics and sounds (thanks Diarandor!).
  • Add a clickable HUD (thanks Vlag!).
  • Put the solarus logo script in scripts/menus/.
  • Fix wrong hero sprite after game-over.


Update: Solarus Quest Editor was updated to a new version 1.5.2 to fix an annoying issue of nested folders created when you attempt to create a new quest inside the initial quest itself.

Git repositories ownership change

Previously, the Git repositories were owned by christopho, our team leader. Please note that now, they have been transfered to solarus-games official Github account. Update your links according to the new adresse if needed.


Zelda: A Link to the Past resource pack updated

The Solarus resource pack of Legend of Zelda: A Link to the Past is regularly updated even if I don’t always annouce it. Lots of elements are still missing (most importantly, enemies!) but every update improves it step by step!

Today I just added a lot of non-playing character sprites. There are now more than 50 NPC sprites available! I believe we now have most character sprites from Legend of Zelda: A Link to the Past.

I use this resource pack a lot in my Solarus video tutorials. If you did not know yet, I made a brand new tutorial playlist because the old one was a bit outdated. The new tutorial playlist is updated every Saturday with two videos!

Follow me on Twitter (@ChristophoZS) to know about new tutorials and get more news about Solarus. Feel free to ask on the Solarus forums if you have any question when updating your quest or following a tutorial!

Solarus 1.5 released, now with a quest launcher!

On July 27th of 2006, I wrote the first commit of the Solarus project.

10 years later, the project has grown a lot! Today, we are proud to announce that Solarus and Solarus Quest Editor were just released in version 1.5.

The development of 1.5 took more than one year and this is the best release ever. There is now a nice quest launcher window:


The quest launcher allows you to add or remove quests and to play them. A console shows the output of the quest. You can also edit audio and video settings from this window. Of course, the old way of running quests still exists if you don’t want this window. But this is more user friendly and we already have ideas of new features for the launcher for future releases 🙂

Aside from the quest launcher, we added a lot of new features to the quest editor and to the Lua API.

  • Maps can have more than 3 layers.
  • Smart resizing! Full rooms can now be resized in one operation.
  • Directional resizing! Entities can now be resized to the left and top, not only to the right and bottom.
  • Musics and sounds can now be played from the editor!
  • Support for custom loops in OGG musics!
  • A console in the quest editor to execute Lua code on the fly!
  • An initial quest with many sprites, musics and sounds thanks to Diarandor and Eduardo!
  • Improved performance when editing or running maps with lots of entities.
  • The camera is now a map entity, you can customize its size and movement easily.

And a lot more, see the full changelog below.

Your quest scripts probably need some adjustements to upgrade to 1.5. All of this is explained in the migration guide.

We are very proud of this new release. Actually, some quest makers already switched to 1.5 a while ago because they could not wait to test the new features! So the release is for the most part validated. If you find bugs or if you have suggestions of features, don’t hesitate to report them on the GitHub page of our projects if they are not already present. If this release is the best release ever, this is largely thanks to your feedback guys.

I am now working on a brand new video tutorial series to help you create your quest. Because the old ones are starting to be really obsolete! To make sure you don’t miss their publication, you should subscribe to my YouTube channel ChristophoZS and my Twitter @ChristophoZS.

As always, our games ZSDX, ZSXD and Zelda ROTH SE were also upgraded to give you up-to-date quest examples.

We are doing all of this on our free time and this is all free and open-source software. If you like our work, please consider making a donation. It will contribute for the server fees and to the motivation of the team!

Here is the full changelog. Sit well!

Changes in Solarus 1.5

New features:

  • Add a launcher GUI to ease chosing a quest and setting options (#693).
  • Rename the solarus_run executable to solarus-run.
  • Add version number and symbolic links when building the library.
  • Add a -lua-console option to run Lua code from the standard input.
  • Remove the -win-console option, the preferred way is now to use a GUI.
  • Add a -turbo option to run at full speed.
  • Add a -lag option to simulate slower systems for debugging.
  • Print when the main loop starts and stops.
  • Print the Lua version at startup (#692).
  • Outputs are now prefixed by [Solarus] and the current simulated time.
  • Musics: Add support of custom OGG looping (#643).
  • Maps: allow more than 3 layers (#445).
  • Improve the performance of loading big maps (#854).
  • Improve the performance of custom entity collisions.
  • Improve the performance of collisions by using a quadtree.
  • Entities far from the camera are no longer suspended.
  • The hero no longer automatically jumps when arriving on water (#530).
  • Destinations can now set to update or not the starting location (#819).
  • Teletransporters on the side of the map now work on all layers (#850).
  • Streams can now have a speed of zero (#496).

Lua API changes that introduce incompatibilities (see the migration guide for instructions):

  • Fix missing collision detections and entity notifications.
  • chest:on_empty() is replaced by chest:on_opened(treasure) (#483).
  • Enemy ranks no longer exist, set_hurt_style() needs to be called (#449).
  • Items with amount now have a default max amount of 1000 (#688).
  • New ability “jump_over_water” in game:get/set_ability(), off by default (#530).
  • Fix hero state name “freezed”, renamed it to “frozen” (#813).
  • Fix map:get_entities() not returning the hero (#670).
  • Fix map:create_custom_entity() not erroring when width/height are missing.
  • map:get_camera_position() is now deprecated, use camera:get_bounding_box().
  • map:move_camera() is now deprecated, use a camera movement instead.
  • map:draw_sprite() is now deprecated, use map:draw_visual() instead (#661).
  • Fix entity:set_enabled(true) delayed while it blocks the hero (#817).
  • Fix brandished treasure sprite and shop treasure sprite not animated (#790).
  • circle_movement:get/set_initial_angle() now use degrees (#721).
  • Add ability to hide mouse cursor (#891).

Lua API changes that do not introduce incompatibilities:

  • Add a function sol.main.get_solarus_version() (#767).
  • Add a function sol.main.get_quest_format().
  • Add a function sol.main.get_type() (#744).
  • Add a method game:set_suspended() (#845).
  • Add methods map:get_min_layer() and map:get_max_layer() (#445).
  • Add a method map:get_entities_by_type() (#796).
  • Add a method map:get_entities_in_rectangle() (#142).
  • Add a method map:draw_visual() to draw any drawable object (#661).
  • Add a method map:get_camera() (the camera is now a map entity).
  • Add methods map:set_world() and map:set_floor() (#656).
  • map:get_entities() can now be called without parameter to get all entities.
  • map:get_entities*() functions now give entities sorted in Z order (#779).
  • Add an event entity:on_movement_started().
  • Add a method entity:get_max_bounding_box() considering sprite boxes (#754).
  • entity:get_center_position() now also returns the layer.
  • Add a method entity:get_facing_position().
  • Add a method entity:get_facing_entity() (#877).
  • Add a method entity:get_ground_position() (#830).
  • Add a method entity:get_ground_below() (#830).
  • entity:set_optimization_distance() is now only a hint for the engine.
  • entity:test_obstacles() now also works without parameters.
  • entity:overlaps() now has an optional collision mode parameter (#748).
  • Add entity:get_sprite() to all entities, with an optional name value (#669).
  • Add a method entity:get_sprites() (#851).
  • Add methods entity:bring_sprite_to_front/back() (#809).
  • enemy/custom_entity:create_sprite() now take an optional name value.
  • hero:save_solid_ground() can now take a function parameter (#667).
  • Add a method hero:start_attack() (#821).
  • Add methods npc:is/set_traversable() (#712).
  • Add methods chest:get/set_treasure() (#664).
  • Add an event chest:on_opened() with treasure info parameters (#483).
  • Add methods dynamic_tile:get_pattern_id() and get_modified_ground() (#755).
  • Add methods destination:get/set_starting_location_mode() (#819).
  • Add a method switch:is_walkable() (#729).
  • Add a method switch:is_locked().
  • Add a method sprite:get_num_frames() (#818).
  • Add methods sprite:get_size() and sprite:get_origin() (#823).
  • sprite:set_animation() now takes an optional callback parameter (#861).
  • Add a method surface:get_opacity() (#722).
  • Add methods surface/text_surface/sprite:get/set_blending_mode (#930).

Bug fixes:

  • Fix crash when main.lua has a syntax error.
  • Fix crash with missing directions in sprites controlled by the engine (#864).
  • Fix sprite:on_animation_finished() and others not working sometimes (#799).
  • Fix error in sprite:set_animation() when the direction is missing (#937).
  • Fix straight movement precision.
  • Fix freeze when loading a map with tiles outside the limits (#875).
  • Fix crash when trying to use a non-saved item (#889).
  • Fix sword tapping sound still played when the game is suspended (#797).
  • Fix hero:set_invincible() not working without duration (#805).
  • Fix lifted item walking animation only accepting 3 frames (#645).
  • Fix enemy:set_attack_consequence_sprite() with thrown items (#834).
  • Fix custom_entity:set_can_traverse() for doors (#716).
  • Fix custom_entity:set_can_traverse_ground() for some grounds (#794).
  • Fix custom entity collisions missed for entities that do not move (#671, #883).
  • Fix custom_entity:get_modified_ground() returning nothing.
  • Fix custom_entity:on_ground_below_changed() not called (#738).
  • Fix missing notifications in custom_entity:set_origin() (#880).
  • Fix creating an entity with the same name as another one just removed (#795).
  • Fix parallax scrolling for dynamic tiles (#816).
  • Fix crash when a diagonal tile is not square (#837).
  • Fix crash when the teletransporter after stairs is missing.
  • Fix non-blocking stream turns after going south (#648).
  • Fix text_surface:set_rendering_mode() not working (#833).
  • Fix possible freeze when changing the position of a path finding entity.
  • Fix circle_movement:set_initial_angle() not working (#721).
  • Fix straight movement setting speed to zero when reaching obstacles (#633).
  • Fix support of joypads with multiple axes.
  • Fix sol.input.get_mouse_coordinates() ignoring the zoom factor (#734).

Changes in Solarus Quest Editor 1.5

New features:

  • Add an execution log view of the quest.
  • Add a console to execute Lua instructions when the quest is running.
  • Add a command-line option -run to run a quest instead of opening the GUI.
  • Allow to save all open files at once (#98).
  • Allow to close all open files at once.
  • Allow to close the current quest (#88).
  • Allow to reorder tabs (#107).
  • Allow to switch tabs with keyboard shortcuts (#101).
  • Allow to automatically save files before running the quest (#90).
  • Allow to restore open tabs at startup (#131).
  • Add a recent quests menu (#89).
  • Creating a new quest now provides a lot of initial resources (#201).
  • Creating a new quest now sets the write directoy to a unique id (#207).
  • Resource directories are now automatically created when opening a quest.
  • The shortcut to load a quest is now Ctrl+L.
  • Add a menu item to open quest properties (#206).
  • Allow to update teletransporters when changing the id of a map (#56).
  • Allow to update teletransporters when renaming a destination (#58).
  • Allow to update maps when changing the id of a tileset (#57).
  • Add resource dialog: set the id as initial value for the description (#192).
  • Initialize map/item/enemy/entity scripts with helpful code (#33).
  • Automatically add .lua extension when creating a script file (#46).
  • Allow to play musics and sounds from the quest tree (#8).
  • Allow to play music and sounds from music and sound selectors.
  • Show the sprite of each element in enemy and item selectors (#9).
  • Map editor: allow more than 3 layers.
  • Map editor: implement smart resizing to resize full rooms at once (#54).
  • Map editor: allow to resize from the left and from the top (#111).
  • Map editor: shortcuts for showing/hiding layers are now 0, 1 and 2, etc.
  • Map editor: add shortcuts to show/hide entity types (#82).
  • Map editor: allow to show/hide obstacles (#6).
  • Map editor: add shortcuts to move one layer up or down (+ and -).
  • Map editor: add Escape shortcut to stop adding entities (#92).
  • Map editor: new entity icons by Amine (#119).
  • Map editor: show the real variant of pickables (#109).
  • Tileset editor: propose to refresh the image when it has changed (#86).
  • Tileset editor: don’t force the user to close maps before renaming patterns.
  • Tileset editor: add settings (#178).
  • Sprite editor: check the value of frame to loop on (#203).
  • Sprite editor: auto-detect the grid size (#13).
  • Settings: add sprite editor options.
  • Add select all to map, tileset and text editors (#106).
  • Add unselect all to map, tileset and text editors (#115).

Bug fixes:

  • Fix wrong hero movements sometimes when playing from the editor (#138).
  • Fix tabs not closed when opening another quest (#44).
  • Fix the drop-down list of resource selectors too small on some systems.
  • Map editor: fix crash when creating a block with a missing sprite (#195).
  • Map editor: fix performance regression when pasting a lot of entities (#141).
  • Map editor: fix entities still shown when put on a hidden layer.
  • Map editor: fix precision when starting selection above existing entities.
  • Map editor: stop adding tiles when unselecting them from the tileset view.
  • Map editor: uncheck entity creation button after adding an entity (#105).
  • Map editor: keep tileset scroll position when refreshing/changing it (#129).
  • Map editor: improve performance of selecting multiple entities.
  • Map editor: improve performance of moving multiple entities.
  • Map editor: fix multiple default destinations when copy-pasting (#118).
  • Tileset editor: improve performance of deleting multiple tile pattenrs (#120).
  • Text editor: improve tabulation behavior (#43).
  • Text editor: fix multiline comments matching to the end of the line (#63).
  • Sprite editor: fix “missing image” message staying after solving it (#191).
  • Quest properties: don’t allow slashes or backslashes in the write dir (#59).

Changes in Zelda Mystery of Solarus DX 1.11

Bug fixes:

  • Fix wrong layer when leaving dungeon 10.
  • Dungeon 2: fix sound played twice when activating the statues.
  • Dungeon 9: fix geting back to room entrance when touching spikes.
  • English dialogs: rename Pegasus Shoes to Pegasus Boots.

Changes in Zelda Mystery of Solarus XD 1.11

Bug fixes:

  • Fix typo in French dialogs.

Changes in Zelda Return of the Hylian SE 1.1

New features:

  • Add German translation (thanks Wuzzy2!).
  • Add Spanish translation (thanks Diarandor!).

Bug fixes:

  • Fix initial cursor position in savegame menu after a new game.
  • Fix stuck in a cliff west of the castle (#87).
  • Fix silver arrows incorrectly changing the arrow counter (#88).
  • Fix stats showing 47/46 monsters if a chicken was killed (#89).
  • Dungeon 4: fix crash when picking the crystal as rabbit (#91).

Solatrix, a next generation handheld console [April’s Fools]

NB: Clarification at the bottom of the article.

For several years, we have been developing in great secrecy a project of unprecedented ambition.

This is not a game, nor a game engine or even a game creation software. This time we went further.


We are proud to officially unveil the Solatrix, a revolutionary handheld console dedicated to games built with the Solarus engine!


The Solatrix will allow you to download games created with Solarus Quest Editor, both our team’s games and the community games. It is expected to be available for the holidays, although it is unclear what year.



Light and handy, the Solatrix has a 3.5-inch backlit screen.



The Mercuris Pack will offer the console accompanied of Zelda Mercuris’ Chest, our flagship vaporware.



Compatible with the most popular controllers on the market, the Solatrix promises hours of play more exciting than ever.



Every Solarus Software Team member has worked hard to give life to this project! The plans will be available soon so that you can also build your own Solatrix.


That’s hours of fun and joy ahead!


Obviously, it was an April’s Fools. But it is not impossible to build. Actually, it is quite feasible. The console we use to make these pictures is this one, by Rasmushauschild, so congrats to him for making such a beautiful console. It works with the RetroPie distribution, which is a distribution specialized in retro-gaming emulation. And as you may know, Solarus works now on RetroPie! The last missing thing is the little “Solatrix” sticker, but you can print it with the logo above. So now you can build your own Solatrix console!


Another update of our games

Here is a small update of our games! Not a huge one, but it fixes the Italian translation of ZSDX and a few other issues.

Changes in Zelda ROTH SE 1.0.8

  • Increase rupee drop rates (#86).
  • Increase chances of getting bombs before dungeon 1.
  • Fix inappropriate English translation.

Changes in ZSDX 1.10.3

  • Fix Italian dialogs exceeding the dialog box (thanks Marco).
  • Fix game-over stopped sometimes using a workaround (#87).

Changes in ZSXD 1.10.3

  • Fix game-over stopped sometimes using a workaround.
  • Fix dialog cursor drawn at wrong position after successive questions.