• This site is a private, non-commercial website. As such, you're welcome here as long as you were invited. If you would like an invite, reach out to Cliff Spark

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

  • Thread starter Thread starter notorious_pgb
  • Start date Start date
N

notorious_pgb

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

Code:
    - "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: A toy RTOS inside Super Mario Bros. using emulator save states | Hacker News

Points: 174

# Comments: 38

Continue reading...
 
Back
Top