Skip to content

Releases: rh1tech/murmdoom

Version 1.11

14 Jan 14:34

Choose a tag to compare

WAD Directory Change

WAD files are now loaded from the /doom directory on the SD card instead of the root directory.

Migration: Move all your .wad files (DOOM.WAD, DOOM2.WAD, etc.) into a doom/ folder at the root of your SD card.

Version 1.10

08 Jan 13:19

Choose a tag to compare

Fix PS/2 keyboard sticky key bug on FIFO overflow

When PIO FIFO overflowed, clearHidKeys() was called but the key handler was never notified. This caused the application to think keys were still pressed, resulting in 'sticky' actions like the prince running endlessly.

Now properly notifies the key handler after clearing keys and returns early to prevent processing an empty FIFO.

Version 1.09

25 Dec 11:02

Choose a tag to compare

  1. Fix USB keyboard key mapping and enable USB HID by default
  2. Fix USB keyboard not working on WAD selection screen

The USB HID keyboard worked during Doom gameplay but not on the start screen because usbhid_wrapper_tick() was consuming keys from the queue and posting to D_PostEvent() before DG_GetKey() could return them directly. But D_PostEvent() events aren't processed until Doom is running.

Fix:

  • Add usbhid_wrapper_get_key() for direct key access (like ps2kbd_get_key)
  • Move usbhid_wrapper_tick() from DG_GetKey() to I_StartTic() so it
    only posts to D_PostEvent() during Doom gameplay
  • DG_GetKey() now checks both PS/2 and USB keyboards directly

WAD selection: usbhid_wrapper_get_key() returns USB keys directly
Doom gameplay: usbhid_wrapper_tick() in I_StartTic() posts events"

USB Keyboard Fixes:

  • Separated keyboard and mouse event handling to fix double-processing
  • Renamed usbhid_wrapper_tick() to usbhid_wrapper_mouse_tick() for mouse only
  • USB keyboard events now flow through DG_GetKey() like PS/2 does
  • Fixed Space key: map to KEY_USE (open doors) instead of ASCII space
  • Fixed Ctrl key: map to KEY_FIRE (shoot) instead of KEY_RCTRL

Build Improvements:

  • Enable USB HID by default in build.sh (-DUSB_HID_ENABLED=1)
  • Add flash.sh script for convenient firmware flashing with picotool

Version 1.08

24 Dec 16:10

Choose a tag to compare

Fix MIDI streaming crash on music loop

Root cause: FreeTrack used num_events which became a cumulative count (chunk_start + chunk_count) after loading multiple streaming chunks, but the events array is only sized for MIDI_STREAM_CHUNK_SIZE (2000). This caused buffer overread when freeing events.

Fixes:

  • FreeTrack now uses chunk_count (actual events in buffer) instead of num_events for streaming mode
  • Move temp MIDI file deletion from I_OPL_RegisterSong to MIDI_FreeFile to prevent reading from deleted file during music loop restart
  • Add comprehensive debug logging for music system

Also includes debug logging for level transitions and switch sounds.

Version 1.07

20 Dec 19:34

Choose a tag to compare

  • "Loading WAD" window added

Version 1.06

20 Dec 18:47

Choose a tag to compare

  • Crash bugfxies
  • Added start screen to select WADs from interactive menu

Version 1.05

12 Dec 12:20

Choose a tag to compare

  • Fixed DOOM I related bugs (was hanging when 1st level was over)
  • Added support for USB keyboard and mouse
  • Added support for PS/2 mouse

Version 1.04

11 Dec 16:44

Choose a tag to compare

  • Fixed wrong GPIO pinout on M2 (tested)
  • Added overclocking build options

Version 1.03

10 Dec 00:39

Choose a tag to compare

  • Doesn't hang on 1->2 level change in DOOM II v1.666
  • Fixed M2 GPIO mappipng (need to test)

Version 1.02

09 Dec 00:25

Choose a tag to compare

Minor bugs fixed