BitRot | Playing Tales of Maj'Eyal on Mac

Playing Tales of Maj'Eyal on Mac

on

I recently started playing Tales of Maj’Eyal in my spare time. I have a few hard requirements for games that I play though: they must be always-pauseable, I strongly prefer to sync saves, mods, and configs, and I can switch out of them quickly. ToME is turn-based so is inherently always-paused. In this post I’ll describe how I set up the sync and some modifications that were necessary to be able to switch out quickly.

Syncing stuff

I have multiple computers that I work on - mainly one in the bedroom that never moves, and a laptop in the living room. I use Syncthing extensively to move files between all of my devices, including my phones and work laptop as well. This means that I just need to know which paths to synchronize.

As of May 2023, the path for save games and configs is:

~/Library/Application Support/T-Engine

I simply set up yet another shared folder in syncthing - a process that takes a few minutes for a simple share like this.

Switching out of the game

I sometimes have meetings later in the evening, and will play a little bit in between them - but I despise having a distraction like a running game in the background. Also as the parent to small children, I often get interrupted and need to write something down or do something urgently. Losing the ability to normally interact with my computer is a big deal, so I go out of my way to make sure I can ⌘-Tab out of games. On Mac, this is best supported by using a windowed fullscreen mode - which most Mac games now default to. ToME does not - it defaults to a fullscreen mode that doesn’t allow switching with ⌘-Tab at all. However, in windowed fullscreen mode pressing Escape exits the fullscreen mode which conflicts with the default keybind to dismiss windows.

To work around this, I changed the keybind to dismiss a menu to ` and created a karabiner rule to remap Esc to ` when running T-Engine.

Karabiner Complex Modification

{
  "title": "Tales of Maj'Eyal",
  "rules": [
    {
      "description": "Change Escape to ` to avoid windowed fullscreen issues",
      "manipulators": [
        {
          "conditions": [
            {
              "bundle_identifiers": [
                "org\\.te4\\.T-Engine"
              ],
              "type": "frontmost_application_if"
            }
          ],
          "from": {
            "key_code": "escape"
          },
          "to": [
            {
              "key_code": "grave_accent_and_tilde"
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

Hopefully if anyone else wants to play on Mac and hits either of these issues this post will help them move past it easily