Menu | JAQForum Ver 19.10.27 |
Forum Index : Microcontroller and PC projects : (MU) PicoMiteVGA port to ZX Murmulator board (RP2040/2350)
ZX Murmulator: PicoMiteVGA WITH CUSTOM VGA Board schematic: https://github.com/AlexEkb4ever/MURMULATOR_classical_scheme Development repository: https://github.com/DnCraptor/PicoMiteAllVersions Based on UKTailwind’s PicoMiteAllVersions (v6.00.02) Telegram channels (discussion in Russian): • @murmulator_news – News and updates • @ZX_MURMULATOR – Community discussion (Use online translation if needed) MAIN DIFFERENCES FROM BASE VERSION • Custom VGA driver (RGB222 instead of RGB121; conversion on-the-fly) • Increased CPU frequency: 252 → 378 MHz • Flash ROM is not used – replaced with swap file on SD card • Core migrated from C to C++ • Introduced CombinedPtr class for unified RAM/SD-card access • Planned: support for external PSRAM (RP2040 style) CURRENT STATUS • Development is in progress • Tested software: – FM151 – 2048+ – Several demos • In progress: – Petscii Robots Current build: m1p2_PicoMite_6.00.02-sd-9.uf2 for RP2350 (Download from Telegram) Build for RP2040 – not ready yet RSRAM (RP2350-style): Tested and working OK FEEDBACK You're welcome to test it, report bugs, or share your experience! Edited 2025-07-04 00:36 by MikeV73 |
||||||
Hi MikeV73 Welcome to the forum. I'm interested in your changes • Flash ROM is not used – replaced with swap file on SD card • Introduced CombinedPtr class for unified RAM/SD-card access Please could you explain more? I'm always on the lookout for enhancements where they make sense and it is great to see someone doing the work themselves before suggesting changes ![]() I've no interest in the RGB222 as to me it seems just a poor substitute for HDMI which is already supported but I understand it matches the board design. Have you done much conversion to C++ or just added the "extern "C" pefixes to make it compatible with the compiler? |
||||||
Hi, thnx. Flash ROM usage is not comfortable for me: 1. It stops interrupts for the flashing time 2. It is not very fast to write to the flash 3. Flash has limited times to be overriden Replacement with SD-card file produces faster write without stopping interrupts, but the read performace is worst than flash, so it may be not comfortable for all cases. I'm still testing for corner cases. yes, it is more related to the Murmulator VGA schema. we also have 121 RGB version (but it is very rare modification) Nop, not just "extern "C" usage. Most changes - use CombainedPtr instead of uint8_t* in a lot of places. It switches between SD-card, ROM and RAM "on-fly". In my todo-list also specific Murmulator PSRAM support. You can review changes only by prepared pull-request: https://github.com/UKTailwind/PicoMiteAllVersions/pull/11/files (it is not for imidiate merge, just for review) Edited 2025-07-04 01:16 by MikeV73 |
||||||
+ Murmulator style PSRAM initial implementation: https://t.me/murmulator_news/398 It uses faster PSRAM instaed of SD-card (if exists) |
||||||
+ File Manager (by @JAVAVIUA) "out of the box" https://t.me/murmulator_news/400 To start: RUN "FM" (in case pout of the root: RUN "A:/FM") If something glitches: OPTION RESET If it still glitches – delete the files /tmp/picoMite.* from the SD card If it still glitches – please report the bugs :) Edited 2025-07-05 12:47 by MikeV73 |
||||||
+ BLIT MEMORY was fixed. PETSCII Robots - working on this version now. https://t.me/murmulator_news/416 + integrated with p1p2-launcher (m1p2 command to launch .m1p2-files from PicoMite) https://t.me/murmulator_news/411 + short command FM to start file manager |
||||||
Hi MikeV73, I have a question about the RGB222 implementation. PicoMite (in VGA) is in essence 16 colors, and this is memory limited (no of framebuffers/size). Are you mapping these 16 colors on the 6 color pins that drive the VGA connector in a fixed way ? Or did you implement a LUT with the possibility to choose 16 from 64 possible colors ? If yes, is this LUT configurable using the MAP command ? Volhout |
||||||
Hi, Volhout, in framebuffer we still using 121 RGB (4-bits), in driver we are duplicating each 1 to 2 pins, and 2 (green) still 2, to produce 222 (6-bits). Current mapping is quite hardcoded. But it is possible to change base pin (VGA_BLUE). No reordering support for now. + Last 2 pins - H/VSync. |
||||||
![]() |
The Back Shed's forum code is written, and hosted, in Australia. |