Log In  

Cart #donsol8_v1-14 | 2022-08-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is a PICO-8 port of Donsol by John Eternal and Hundred Rabbits, a dungeon-crawler game built around a deck of 54 cards.


RND Software thanks you for selecting Donsol for the PICO-8 system. Please read these instructions before starting for maximum enjoyment of this game.


After a long evening of playing cards at the local tavern, you head off home to get some sleep, but something goes wrong. You suddenly find yourself trapped in a nightmarish dungeon, which is infested with fiends, monsters and wicked witches intent on making sure you stay trapped in the dungeon forever. As you suddenly seem unable to find any exits, your amulet warns you that a strong curse has been placed on the dungeon by these same monsters. Armed only with your trusty dagger, will you be able to eliminate all the monsters, dispel the curse that prevents you from leaving and exit the dungeon, or will you suffer the wrath of the Donsols?


It's clear that as long as the dungeon is cursed, it will be impossible to leave it. Since the best way to break a curse is to destroy the creature that cast it, the only way out is to completely purge the dungeon of evil. Luckily, the dungeon isn't just inhabited with dark and fiendish monsters -- you can clearly see helpful shields, healing potions and mages shining with red light. Use them carefully to stay alive while clearing the dungeon and you will surely find your way out!


This is a single-player game. Only use the controller connected to Control Port 1.


  • On the title screen, use the left and right directions to pick the difficulty level.

  • During gameplay, use left and right to choose a card, or press up or down to select the "run" or "restart" options.

Cross Button

  • This button is never used in this game.

Circle Button

  • On the title screen, use this button to start the game.

  • During gameplay, use this button to flip the selected card, or to use the "run" or "restart" button when it's selected.

Pause Button

  • Use this button to pause the game and display the Pause Menu.


In addition, if you have a PICO-8 Mouse or compatible device, you can plug it into the Expansion Port. The moment you click a mouse button, the game will display a mouse cursor. It will be red when the cursor is over an interactable object and gray otherwise. To interact, use the left, right or middle mouse button. If you want to use the regular controller again, just press the Circle Button or the Cross Button, and mouse controls will be disabled.

  • On the title screen, clicking on the left or right part of the screen is used to select the difficulty level. Clicking in the middle of the screen is used to start the game.

  • In game, clicking over one of the four card in your hand will select that card. Clicking over the "Run" button will escape the room, if possible. If the game is over, clicking anywhere restarts the game.


After you turn on the game, you will see the title screen. Here, you can select the difficulty level for the game by using the left and right directions on the D-Button and pressing the Circle Button to select. Alternatively, you can choose the "CREDITS" option to see the names of the people responsible for making the game.


  1. Your health points

  2. Your shield's durability (if available) and defense

  3. Your experience (number of cards flipped)

  4. "Run" / "Restart" button

  5. Name of currently selected card

  6. A flipped card

  7. An unselected card

  8. A selected card and its cursor

  9. Status messages

On this screen, you see your current status, the cards comprising the current room of the dungeon and the last status message. Your task is to clear the dungeon by flipping all 54 cards of the deck. To do that, use the left and right directions on the D-Button to select a card and then press the Circle Button to flip it. Different cards have different effects:

♠Spades and ♣Clubs -- Monsters

The spades(♠) and clubs(♣) are the dungeon's monsters. When you flip them, they will attack you, dealing damage equal to their value. If you survive the attack, you defeat the monster.

(Every time you flip any card, your XP value goes up by one. When it reaches 54, this means that there are no cards left in the dungeon and you win the game.)

♦Diamonds -- Shields

The diamonds (♦) are shields and helpful red mages. When you flip them, you equip the shield (or recruit the mage) to provide defense from monster attacks. When a monster attacks you, the shield will reduce the amount of damage you take by its own value. If the monster is weaker than the shield's defense, their attack will not hurt you at all!

However, there's a catch. After a monster hits you while shielded, your protection will weaken and will be unable to withstand attacks from equal or stronger monsters without breaking and leaving you unguarded. To prevent that, be sure to attack stronger monsters before weaker ones!

When you flip a diamond card while already protected, you replace the old card's protection with the new card's. You can't hold two shields at once, and the red mages' defensive spells don't work when you have a shield.

(The "durability" and "defense" values in the HUD display the maximum attack your protection can withstand and the amount of damage it can repel. For example, if it says "8/6", that means you will not lose 6 health points when attacked by monsters of strength 8 or less. If there's only one number, then your protection has not yet been touched. For example, "10" means you have a Large Shield capable of avoiding 10 points of damage from any monster.)

♥Hearts -- Potions

The hearts (♥) are potions and helpful white mages. When you flip them, you will consume the potion (or ask for help) and they will restore an amount of health equal to their value.

However, there's another catch. The potions' and mages' restorative magic doesn't like being overused, and if you try to use two or more heart cards in a row, the latter ones will do nothing. An hourglass symbol above the health meter will warn you if healing up is useless.

(No matter what, you can't have more than 21 health points.)

🃏Jokers -- Donsols

The two joker (🃏) cards are Donsols -- extremely powerful monsters that rule this dungeon. In fact, they are so strong, that meeting them without an untouched shield is sure to end your journey once and for all! Be extremely cautious in rooms with them.

Running away

If you feel like you can't deal with the room you're in, you may want to try running away from it. To do that, use the up or down directions on the D-Button so that the "Run" button is selected, and then press the Circle Button.

The curse of the dungeon may have made it very hard to navigate, but sometimes you still have the opportunity to quickly escape into a different room with a new set of cards in it. The flipped cards will not reappear, but you will still have to deal with the rest eventually -- hopefully with better equipment and in better health.

The situations in which you can escape depend on your difficulty level:

  • On EASY, you can escape any rooms that don't have monsters left or if you haven't escaped from the previous room.
  • On NORMAL, you can only escape if you haven't escaped from the previous room.
  • On HARD, you can only escape if the room you're in doesn't have monsters left.
  • On EXPERT, you can't run from any rooms at all.

Luckily, the dungeon's curse only gains its full power once you've interacted with any of its inhabitants. If you haven't attacked any monsters, equipped any defense or healed yourself up (i.e. your XP is 0), you can always run from rooms. Use this to find a starting room that lets you survive the dungeon more easily.


Pressing the Pause Button at any time will open the Pause Menu with the following options:

  • Continue - Resume playing the game back where you left off.
  • Trad. Suits - The minimalist suit graphics used in Donsol may be confusing to some users. By enabling this option, the suit graphics will be replaced with ones more like those used in traditional playing card decks.
  • ⬅️ English ➡️ - Change the language that the game uses by using the left and right directions on the D-Button. The game can be played in English, in Russian, or in toki pona.
  • Reset Cart - Restart the game from the title screen. This is the only way to change the difficulty level once it's been selected.

Use the up and down directions on the D-Button to select an option and press either the Cross Button, the Circle Button or the Pause Button to select the item you want.


  • If your shield breaks, you receive the full damage of the attack. That's why it's better to have a weak shield that hasn't been touched by monsters than a strong one that already has low durability.

  • If you've defeated all monsters in a room and you see potions and shields you don't need, it's best to run away from that room. That way, those shields and potions may find themselves useful later!

  • Donsols have an attack value of 21 -- higher than all other monsters and equal to your maximum health. Don't even think of attacking them without a brand-new shield!


A PICO-8 cartridge is a delicate electronic device and must be handled carefully. Please abide by the following rules to make sure the cartridge lasts as long as possible:

  • Do not expose the cartridge to extreme temperatures.

  • Do not try to dismantle or break apart the cartridge.

  • Keep both the cartridge's and the PICO-8 system's connectors clean. Do not use water to clean the connectors.

RND Software and Lexaloffle Games are not liable for damage caused to the game cartridge or the PICO-8 system if these rules are violated or if the damage is caused by abusing the game or the system.

Rules of the game

The rules of this version (other versions may have slight differences) are as follows:

The deck is shuffled, and four cards are given into your hand. These cards are the contents of a dungeon room.

  • The spades and clubs are monsters. Flipping a monster card will start a battle, in which the monster will deal you its value worth of damage before being defeated. Number cards are worth 2 to 10, jacks, queens, kings and aces are 11,13,15 and 17.

  • The diamonds are shields. Flipping a shield card will equip the shield, and reduce the damage dealt by monsters by its value. However, a shield can only be used against monsters in descending order of value, otherwise it breaks and you receive full damage. Number cards are worth 2 to 10 and face cards are worth 11.

  • The hearts are health potions. Flipping one will consume the potion and recover health points according to its value, up to a maximum of 21. However, if you try drinking two or more potions in a row, the later potions will not have any effect. Number cards are worth 2 to 10 and face cards are worth 11.

  • The jokers are Donsols, the two extra-powerful monsters with a value of 21. This means that even at full health, you need a brand-new shield to defeat them.

Once all the cards have been flipped, they are discarded and another four (if available) are picked from the deck to form a new room.

Alternatively, under some conditions, you can run from the room into another one. In this case, the flipped cards are discarded and the rest are put back into the deck, which is reshuffled to form a new hand of up to four cards.

  • On easy difficulty, you can run if the room you're in has no undefeated monsters or if you haven't ran away from the previous room.
  • On normal difficulty, you can run only if you haven't ran away from the previous room.
  • On hard difficulty, you can run only if the room you're in has no undefeated monsters.
  • On expert difficulty, you can not run away at all.
  • Regardless of difficulty, you can always run away if you haven't flipped any cards in the game. Feel free to use it as many times as possible if the first room feels impossible or too hard (for example, if it has too many powerful monsters and no shields).

Your goal is to complete the dungeon by eventually flipping and discarding all 54 cards while remaining alive (health above zero).


This version resembles the web-app version in its visuals. On the top of the screen are the bars displaying your current health (HP), defense (shield endurance / defense points) and experience (how many cards you have flipped so far), as well as a "run" button, which will be grayed out completely if running is unavailable.

Below that, four cards are displayed. The currently selected card's name and value are displayed above the cards, and the currently selected card is displayed slightly above the others. Flipped cards, as well as empty spaces, are displayed in gray.


  • On the main menu, use left and right on the d-pad to select an option. Press 🅾️ to confirm your selection.

  • During gameplay, use left and right to pick a card, or use up or down to toggle between picking a card or using the "run" option (if available), and press 🅾️ to flip the card or run away.


Version 1.8.4 (current):

  • Replaced the mention of my now-inactive Twitter account with a link to my website.

Version 1.8.3:

Cart #donsol8_v1-13 | 2021-10-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed the space character in the alternate font for the Russian translation.

Version 1.8.2:

Cart #donsol8_v1-12 | 2021-09-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added an "inverse" style to the currently-selected label in the title screen when the mouse is used, so that it's easy to tell what will happen when the mouse is clicked.
  • Made it so that when you switch from the mouse back to the controller, the controller is ignored for 8 frames -- this way, the button press used to switch is not read by the rest of the game.

Version 1.8.1:

Cart #donsol8_v1-11 | 2021-09-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Made the mouse work in the credits screen.
  • Made sure the user can use any mouse button.

Version 1.8:

Cart #donsol8_v1-10 | 2021-09-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added basic mouse support.

Version 1.7.2:

Cart #donsol8_v1-9 | 2021-04-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Edited a toki pona string on the "Run" button to fit in the space better.

Version 1.7.1:

Cart #donsol8_v1-8 | 2021-03-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed some rather embarrassing bugs that caused the game to crash when using non-English translations.

Version 1.7:

Cart #donsol8_v1-7 | 2021-03-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a toki pona translation. The language is now selected by using the left and right directions in the menu.

Version 1.6:

Cart #donsol8_v1-6 | 2021-02-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed some typos and transliteration errors in the Russian translation.

Version 1.5:

Cart #donsol8_v1-5 | 2021-02-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a Russian font and a (rough) Russian translation of the game. To enable, use the pause menu to select "-> RUSSIAN". To switch back to English, use the same menu item.

Version 1.4:

Cart #donsol8_v1-4 | 2020-06-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added an option to use a more traditional set of suit graphics.

Version 1.3:

Cart #donsol8_v1-3 | 2020-05-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Changed some graphics for the "clubs" suit to match the Electron app version more closely.

  • Changed the palette to use an alternate darker red color for more contrast.

Version 1.2:

Cart #donsol8_v1-2 | 2020-05-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Sound changes:

    • A sound for whenever a new hand is picked (running away or flipping all 4 cards in a hand).
    • A separate sound for when a monster's attack is partially absorbed by the shield.
    • Slight changes to sound logic to reduce situations when two sounds are placed simultaneously.
  • Graphical changes:

    • When you are dead, the "restart" button is colored red, like in the Electron version.
    • The cards have a longer animation when being taken from the deck.
    • The HUD no longer displays the equipped shield's maximum attack value before the first attack (also like in the Electron version).

Version 1.1:

Cart #donsol8_v1-1 | 2020-05-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Implemented lots of UI changes based on feedback from Devine Lu Linvega:

    • The status bar is now more compact and has the "run" button next to it (controls have been changed to allow both "up" and "down" to select the "run" option).
    • Cards that have been selected in the hand display as "flipped". There is no gameplay difference between a "flipped" card and an empty space.
    • The "DP" field only displays "0" if there's no shield being equipped.
    • A small cursor is shown below a card (or empty space) that is being selected.
    • Selecting the "run" option (except on first turn) or the "restart" option will deselect the "run"/"restart" button.

Version 1.0:

Cart #donsol8_v1-0 | 2020-05-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

The original game, as well as this version, are released under the terms of the MIT license.
Click "Show" or open the source code of the game to see it.

MIT License

Copyright (c) 2017 Hundredrabbits, 2020 /dev/urandom

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.


P#75741 2020-05-02 10:17 ( Edited 2022-08-21 11:27)

Interesting way to handle a dungeon crawl with standard deck. I had designed a card game with the same concept but came at it from a completely different direction, where all the face cards are a floor's rooms and placed face down in a grid and the other cards are drawn as your options as you move from room to room, looking for the exit to the next floor.

P#76265 2020-05-09 19:21

I enjoyed this very much, but I kept confusing the symbols for hearts and diamonds so I made some small tweaks =) (also added results preview before choosing cards)


P#77008 2020-05-22 09:59

I try to keep the game's aesthetic close to what the Electron app version of it had, and the shape of the hearts suit is part of it. I'll try to make some smaller adjustments so that they're easier to tell apart, or maybe introduce an accessibility option, later.

P#77022 2020-05-22 16:25

The latest version of Donsol for PICO-8 has a "Traditional Suits" option in the Pause Menu that you can use to make the heart and diamond symbols easier to tell apart.

P#77519 2020-06-02 10:29

yo this is really good!
nice job!

P#114489 2022-07-17 23:57

I was just thinking of this very interesting game recently, @rnd. I forgot about it somehow and here it is again. Gold star for you !

I also noticed when you change languages it is a step behind. That is if you press START and select from the menu a language other than English, then go back to English, the English is not instated until you exit the menu.

Further now as I am playing this game more often I see that the SHIELD is not something that can be added to but you are exchanging your shield for a different one. I didn't know if that was the original rules of the game or if you are in fact supposed to ADD the shield values together.

Indeed you could make it a playing option, it would be a game changer at that.

P#114490 2022-07-18 00:40 ( Edited 2022-07-22 02:55)

Major props for including a Toki Pona option in the language selection! For the Toki Pona and Russian translations, is the text just a table of numbers that refer to sprites indices?

P#116972 2022-09-06 15:51

@MisterWizard01: the translations use PICO-8's custom font functionality. The indices refer not to sprites, but to letters in the custom character sets.

P#117002 2022-09-07 02:01

@rnd Wow! TIL pico-8 has custom fonts haha

P#117085 2022-09-08 20:35

[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2023-12-11 11:50:42 | 0.055s | Q:59