Firestaff DM1 Bug & Feature Tracking

Historical snapshot from 2026-05-26. This list is superseded; use the current DM1 TODO and DM1 DONE log.

Last updated: 2026-05-26 21:31 GMT+2 Author: Daniel Nylander / Bosse


✅ Completed Items

1. Load/save does not work

Priority: P0 Status: ✅ LIKELY WORKING Details: F5/F9 use DM1_SaveGame/DM1_LoadGameWithBackup directly, which properly serialize the world via F0897_WORLD_Serialize_Compat. The m11_engine_save_game stub (passes NULL) has zero callers and is not used by F5/F9. Note: Verify with runtime test - play game, press F5, verify save file size > 0, restart, press F9, verify state restored.

2. The quit menu (Escape key) does not work correctly (both choices quit)

Priority: P0 — UX-breaking Status: ✅ FIXED — commit 98f9295f Details: ESC dialog YES/NO click hit zones (hardcoded hy=67/104) didn’t match drawn button positions (choiceY=109). Added dedicated hit-zone computation for returnToMenuConfirmActive + dialogChoiceCount==2 using actual drawn layout. ReDMCSB ref: CLIKVIEW.C F0378/F0379/F0380 Affected files: src/engine/m11_game_view.c m11_dialog_choice_at_point

3. Selecting Resurrect on a Champion mirror causes Game Over (all party members die)

Priority: P0 — UX-breaking Status: ✅ FIXED — commit 1a186fdc Details: candidateMirrorPartyIndex stored snapshot at recruit time became stale when party->championCount changed. Changed to party->championCount - 1 (ReDMCSB G0305 pattern). ReDMCSB ref: REVIVE.C F0282, COMMAND.C C160/C161/C162 Affected files: src/engine/m11_game_view.c ConfirmMirrorCandidate/CancelMirrorCandidate

9. Verify against the ReDMCSB source code

Priority: P0 Status: ✅ DONE — commit 483781c3 Output: DM1_REDMSB_CODECOMPAR.md (code comparison matrix)

11. Plan for integrating CSB support into Firestaff

Priority: P1 Status: ✅ DONE — commit b604d20c Output: docs/plans/CSB_INTEGRATION_PLAN.md (361 lines)


🔴 Remaining Items (P1/P2 - moved to TODO.md)

4. Walls are not displayed (but the map is correct)

Priority: P1 — Need runtime capture before fixing Details: Walls missing from viewport, but map shows correct layout. ReDMCSB ref: DUNVIEW.C, MOVESENS.C, VBLANK.C wall draw path Affected files: src/dm1/dm1_v1_viewport_3d_pc34_compat.c, src/dm1/dm1_v1_draw_primitives_pc34_compat.c

5. Champion portraits are displayed in mid-air

Priority: P1 Details: Champion images rendered at wrong Z-layer, appearing to float. ReDMCSB ref: VBLANK.C draw order, DUNVIEW.C layer ordering Affected files: src/engine/m11_game_view.c draw order section

6. Champion mirrors are not displayed

Priority: P1 Details: Champion mirrors not rendered in viewport. ReDMCSB ref: CLIKVIEW.C, GRAPHICS.DAT bitmap indices for mirror objects Affected files: viewport rendering files in src/dm1/

7. Wall inscriptions are extremely blurry

Priority: P1 Details: Wall inscription text is very blurry or unreadable. ReDMCSB ref: PANEL.C / DUNVIEW.C inscription blit Affected files: TBD

8. The macOS app has no icon

Priority: P2 Details: macOS .app bundle has no custom icon. Fix: Add firestaff.icns to firestaff.app/Contents/Resources/ Affected files: cmake/macosx.cmake / CMakeLists.txt


CSB V1 Status

Started: 2026-05-26 21:31 GMT+2 Plan: See docs/plans/CSB_INTEGRATION_PLAN.md Existing code: 13 header + 13 source files in src/csb/ and include/csb* Key existing modules:

Remaining: CSB V1 runtime handoff (menu → game loop)


Subagent Tickets

Ticket Scope Priority Status
DM1_V1_ESC_QUIT_DIALOG ESC quit menu both exits bug P0 ✅ DONE
DM1_V1_RESURRECT_GAMEOVER Champion resurrect → game over P0 ✅ DONE
DM1_V1_SAVE_LOAD_FIX F5/F9 save/load P0 ✅ VERIFY
DM1_V1_VIEWPORT_WALLS Walls not rendering P1 TODO
DM1_V1_DRAW_ORDER Champion images floating P1 TODO
DM1_V1_MIRROR_RENDER Champion mirrors invisible P1 TODO
DM1_V1_TEXT_INSCRIPTIONS Wall inscriptions blurry P1 TODO
DM1_V1_FULL_CODECOMPAR ReDMCSB full audit P0 ✅ DONE
CSB_INTEGRATION_PLAN CSB support plan P1 ✅ DONE
CSB_V1_RUNTIME_HANDOFF CSB V1 launch P0 IN PROGRESS