There is also DefleMask, supporting Genesis, SMS (+FM Sound Unit), GB, PCE, NES (+VRC7, +FDS), C64, Arcade, NeoGeo, and MSX2. It is available for Windows, macOS, Linux, iOS, Android and Raspberry Pi.
"...an absolute joy to work with" I agree. I used zig to make a game in WASM and had a blast. I also had some spare Arduino Nanos laying around and so I build a simple firmware in zig to test it. It worked great, so you can use zig for your embedded projects as well.
Anyone on Medium writing about programming languages trends should also be pre-screened and have their own original (non-forked) source code repository listed on their profile. Each time I see a Medium article in form of "Top [insert number] [insert topic] to [insert a verb]", it nudges me ever closer to canceling my subscription.
This exactly matches my experience with Elm. You wrote "..how resistant it was to me hacking my way to success"; the same here, I tried to do things my way, and Elm would resist (thankfully) those efforts. It resulted in an easy to maintain, much cleaner code. Initially, I went through a 3 month mental grind to learn FP in Elm to be somewhat productive. Then it suddenly started to flow. A while ago I wrote a variation of Snake game [0], using elm-ui to render the simple graphics. The coding experience was fantastic.