Update optional MPE host to 1.2.6 - #20
Conversation
Main's RAM1 grew ~4KB after MPE_VM_ENABLED was added. Traced to MPELaunch::tryFile(), itself marked FLASHMEM with only one call site (inside HandleExecution()), getting fully inlined into HandleExecution() since that function isn't FLASHMEM -- defeating the attribute on the callee. Marking HandleExecution() itself FLASHMEM fixes it directly; its call sites are all main-loop/StatusFunction-dispatched (never the ISR path), and it's already reached only via function pointer (StatusFunctions.c's dispatch table), which independently prevents the compiler from inlining it anywhere else. Recovers 4,560 bytes of RAM1 padding.
RemoteLaunch()'s path/filename split truncated DriveDirPath to an
empty string instead of "/" when the target was a root-level file,
since the only slash in the path was the leading one. That left
HandleExecution()'s VM-registry interception unable to fire (its
DriveDirPath[0] guard failed on the empty string), so a hot-keyed
root-level VM .crt loaded as an ordinary cartridge instead and never
got serviced by the VM host -- reproduced identically for DOOMVM and
NESVM. Fixed by re-pointing the filename into the untouched source
buffer instead of leaving it aliased into DriveDirPath, which a first
attempt at this fix got wrong (a redundant strcpy("/") clobbered the
filename it overlapped with).
Preserve upstream RAM1 and root-file launch fixes. Add auxiliary RAM ownership and fitted F5 host services, conformance coverage, and a verified combined text-firmware test artifact.
|
Travis — the review is now updated to MPE 1.2.2 with NUFLIX double buffering, SID servicing during uploads, and the Menu + Alternate/Special ten-second The updated PR description links the new full HEX, exact hash, recovery instructions and test results. MPE, stock-plus and original-TR comparison builds pass, as do the host suite and 25 parser safety scenarios. Physical hardware testing is still pending; nothing was flashed here. One licensing point is called out explicitly: the shared host now includes the GPLv3-or-later RAD-Doom F1 converter. Its corresponding source, generator, attribution and full license are included, with your original MIT notices retained. No emulator engines, GUI desktop assets or private game data are included. Current commit: |
|
Travis — the MPE 1.2.6 candidate is ready for your consideration. It includes your latest 0.8.0.5 changes and no longer has the two-button firmware-recovery option. Startup and button handling now match your upstream exactly, and your text interface is unchanged. The PR description links the current full HEX and revised source, including the final fix for switching NUFLIX-capable clients back to F1/F3/F7. All three builds and the host checks pass; physical hardware testing is still pending. Your normal firmware updater remains available. |
This brings the optional MHS Power Engine integration to MPE 1.2.6 on the latest TeensyROM 0.8.0.5 source. Travis's text menu, settings and ordinary cartridge configuration are retained. VM engines remain separate downloads; no Custom GUI desktop or game payloads are included.
Ready to test
Download the full TeensyROM+ firmware
Requires TeensyROM+ PCB v0.4. Install through the normal firmware updater. Original-TR comparison builds check ordinary firmware only, not VM support.
Changes
dc1174c, including Final Cartridge III support, while retaining Travis's FLASHMEM and root-file launch fixes.Teensy.inonow matches current upstream exactly, including startup and ordinary button behavior. Normal SD/USB updating and the stricter HEX parser remain.MPE, stock-plus and original-TR builds pass. Host checks cover the updater, startup, module/file services, video, replay, RAM ownership and launch routing. All 219 protected upstream menu/asset/configuration files match. The VM host fits its code/heap/stack reservations, and the full image fits the updater staging area.
No hardware was flashed; physical acceptance is still pending. Please test normal cartridge features, VM graphics/input/audio, reset/menu return and firmware updating before accepting the integration.
Build/install guide · Test results · Component notices
MHS created the Power Engine system and VM format. TeensyROM hardware and original firmware remain credited to Travis Smith / Sensorium Embedded; component authors' notices are retained.