A toy RTOS inside Super Mario Bros. using emulator save states

This started as a throwaway metaphor in a blog post, but is now fully runnable: a toy RTOS with preemptive multitasking inside of Super Mario Bros. on the NES.

Essentially, this is:

- A rudimentary preemptive RTOS

- Using an unmodified NES emulator (FCEUX) as the CPU

    - "Unmodified" depending on how you define terms
- With emulator save states as the thread contexts

- With support for (very basic) mutexes, interrupt masking, and condition variables

- Demonstrated using Super Mario Bros. 1-1 with sections of the map dedicated to various synchronization primitives

There are many simplifications and shortcuts taken (doesn't even have task priorities), and it doesn't map 1:1 to true multithreading (e.g., emulator save states represent the state of the entire machine including RAM, whereas thread contexts represent a much more minimal slice), but I think it's A) pretty interesting and B) a unique visceral explanation of threads.


Comments URL: https://news.ycombinator.com/item?id=44120241

Points: 31

# Comments: 10

https://prettygoodblog.com/p/what-threads-are-part-2

созданный 1d | 28 мая 2025 г., 21:30:06


Войдите, чтобы добавить комментарий

Другие сообщения в этой группе

Net-Negative Cursor
30 мая 2025 г., 03:40:07 | Hacker news
I'm starting a social club to solve the male loneliness epidemic

The other day I saw a post here on HN that featured a NYT article called "Where Have All My Deep Male Friendships Gone?" (https://news.ycomb

30 мая 2025 г., 03:40:06 | Hacker news
Notes on Tunisia
30 мая 2025 г., 01:20:08 | Hacker news