MSX SD Mapper MegaRAM 512k

Na start trochę historii – bo po pierwsze jest to projekt open source, niestety jego dokumentacja nie jest bardzo rozbudowana (a wręcz jest szczątkowa), więc warto wiedzieć, że:

jest to SD Mapper/Megaram 512kb prosto z Brazylii

Za projektem stoi Fabio Belavenuto oraz MSXpro, który zaprojektował płytkę pcb. Wspominałem o tym urządzeniu przy okazji wymieniania dostępnych projektów DIY dla MSXa. Projekt jest dostępny za darmo wraz z wszelkimi niezbędnymi wsadami oraz gerberami do produkcji w repozytorium autora projektu na githubie.

Niestety autor tego mappera/megaRAMu nie przygotował instrukcji – repozytorium na githubie na ten moment nie zawiera wskazówek – de facto odpowiedzi musimy szukać na forach u bardziej doświadczonych użytkowników, którzy w przypadku dotarcia z problemami do granic możliwości urządzenia komentują wymownie “a to ten mapper”.

Za największy mankament tego projektu uważam brak dokumentacji i dokładnego opisu przez autora, bo pomimo swojej prostoty jest to bardzo łatwe w użytkowaniu rozszerzenie do MSXa.

SD Mapper MegaRAM 512k a inne rozwiązania

Pomimo posiadania MegaFlashROM SCC+ SD (czyli najbardziej rozbudowanego karta do MSX zanim nastały czasy Carnivore i GR8NET) postanowiłem zakupić do następnych MSXów (hasztag #nicniekupuję) prosty (o tym poniżej) i tani (250 zł na Allegro u użytkownika eightbitclone2 czyli Zaxona) mapper/megaRAM. Mój jest o tyle tylko nietypowy, że sam wydrukowałem sobie obudowę, którą również sam zaprojektowałem.

W tym momencie na rynku jako w zasadzie jedyny sensowny konkurent występuje tylko Carnivore 2 (wspomniany MegaFlashROM SCC+ SD nie jest dostępny, GR8NET jest produkowany w bardzo małych seriach). Carnivore 2 to prawie 2x wyższa cena, oczywiście inne możliwości.

Ponieważ do SD Mappera MegaRAM 512k nie ma sensownej instrukcji poniżej moje przemyślenia + parę pomocniczych informacji. Postanowiłem uprościć czytanie i oznaczam w śródtytułach “+” zalety i “-” wady jakie znalazłem.

+ dwa sloty na karty SD

nie wiem czemu, ale lubię bardziej niż używanie microSD przez te wszystkie przejściówki.

+ szybka konfiguracja i używanie

Mając w rękach mapper/megaRAM musimy przygotować sobie do niego kartę – karta musi zostać sformatowana na poziomie komputera MSX (i to jest prostsza wersja przygotowania) albo trzeba do tego zaprząść Linuxa/Unixa (i tej wersji nie polecam, bo szkoda czasu plus nie ma jak zrobić to na realnym sprzęcie).

Musimy tylko pamiętać o jednej rzeczy: ograniczeniach czyli obsługiwanej wielkości karty i partycji. Z jednej strony przeczytałem, że urządzenie obsługuje do 32GB karty – niestety urządzeniu nie udało się rozpoznać ponad 8GB przestrzeni z żadnej z moich kilkunastu kart o pojemności od 16 do 32GB. Przyjmuje więc, że realny w przypadku tego urządzenia jest limit wielkości rozpoznawanej 8GB karty oraz 4GB partycji. Czyli wsadzając kartę 16GB skorzystamy tylko z połowy pojemności tej karty, a MSX i tak jako partycję będzie widział tylko 4GB. Dodatkowo – warto pamiętać, że starszy MSX DOS 1 widzi na start tylko partycje 16MB (czyli FAT12). Proponuję dla spokoju – zrobić sobie partycje 4GB (FAT16) oraz 16MB (FAT12) plus trzecią partycję z resztą pojemności widzianej z karty – trochę na wszelki wypadek i trochę dlatego, że po utworzeniu partycji możemy tylko ten układ zapisać, nie ma możliwości usunięcia jednej partycji i operowania wolnym miejscem.

ten mapper/megaRAM musi znajdować się w pierwszym slocie.

Pierwsze uruchomienie i formatowanie nie musi przebiec w prosty sposób – szczególnie jeżeli nie macie doświadczenia z systemem MSX. O pułapkach możecie przeczytać poniżej.

Wyobraźmy sobie taki scenariusz: mapper/megaRAM wylądował w pierwszym slocie kartów, nowa karta SD włożona do pierwszego slotu kart w mapperze, włączamy komputer. Co dalej?

FDISK czyli wbudowane narzędzie Nextora

A co to ten Nextor? To spadkobierca MSX DOS czyli system dyskowy jaki rezyduje w mapperze.

Aby karta była widoczna musimy ją uczynić widoczną dla systemu dyskowego czyli spartycjonować. Program FDISK wywołujemy z poziomu BASIC’a komendą:

_FDISK 

albo

CALL FDISK 

uruchomi to rezydujący w pamięci program Nextora do partycjonowania dysków.

FAT12, FAT16 i inne ograniczenia

Partycje mogą mieć od 100k do 32MB w formacie FAT12. Partycje FAT16 podobnie jak na innych systemach mają limit 4GB i muszą być większe niż 33MB.

Dodatkowo – partycje FAT12 jeżeli mają być one czytane przez MSX DOS 1 to muszą mieć maksymalnie 16MB. Partycje do 16MB mieszczą FAT w masymalnie trzech sektorach przez co mogą być używane przez MSX DOS 1.

Partycje do 32MB mają bootsektor MSX DOS 2, powyżej 33MB na partycji znajduje się standardowy bootsektor (który – uspokajam – jest wystarczający dla Nextora do obsługi dysku/partycji).

nowa karta – nie można założyć partycji

To pierwsza pułapka uruchomienia nowej karty – Nextor widzi i mapper/megaRAM, ale nie pozwala wybrać tego nośnika do partycjonowania. Jeżeli tak się dzieje, trzeba spróbować startu z klawiszem 1, wtedy Nextor wystartuje w trybie MSX DOS 1, co pozwoli mu ominąć paradoksalnie problem formatowania nośnika. Więcej o skrótach klawiszowych przy starcie MSXa z Nextorem możecie przeczytać w rozdziale 8.9 instrukcji Nextora – Boot Keys.

Samo partycjonowanie jest dość proste – możemy albo dodać partycje (jeżeli ich nie ma) albo je wyświetlić bądź usunąć (jeżeli są). Po dodaniu partycji wg schematu jaki podałem (4GB, 16MB, pozostała pojemność wg wyświetlenia), pozostaje nam zapisać ten schemat partycji i wyjść z programu FDISK. Wyłączamy MSX’a i wyjmujemy kartę SD z mappera/megaRAMu. Karta może teraz wylądować w czytniku SD w komputrze z Windows/Mac OS i możemy przegrać na nią pliki i oprogramowanie startowe, narzędziowe oraz pliki .rom i .dsk, które chcemy uruchamiać.

maksymalnie 4 partycje na jednej karcie

4 partycje na jednej karcie to limit tego urządzenia, czyli używając dwóch kart mamy do dyspozycji 8 partycji maksymalnie. Czyli jeszcze inaczej patrząc – jeżeli limitem partycji FAT16 jest 4GB, to maksymalnie z jednej karty SD mapper może wykorzystać 16GB (4x partycje 4GB).

– obsługa obrazów ROM

Do tego dość oczywistego ograniczenia w postaci pamięci 512k niestety dokładam problemy z częścią ROMów powyżej 256k – nie wiem czemu tak się dzieje – badam temat.

– uruchomienie ROMu przez Sofarun ma charakter tymczasowy

Niestety ROM, który wybraliśmy jest wgrywany do pamięci dynamicznej, po restarcie komputera… tracimy ten zapis. To pierwsza różnica w stosunku do bardziej rozbudowanych urządzeń z którymi się spotkałem. Spodziewałem się, że w trybie mappera .rom jest wgrywany do pamięci RAM więc to zrozumiałe, że po restarcie komputera musimy powtarzać sytuację, niestety to samo nas czeka w trybie megaRAM.

+ Sofarun i MSX1

Warto wspomnieć o jednej fajnej zalecie tego kartu – Sofarun czyli popularna przeglądarka plików i zawartości dysku bardzo dobrze współpracuje z tym mapperem i to oznacza, że nie ma tutaj wymogu 64k pamięci (jak w przypadku Multimente).

Nie widzę podkatalogów na karcie

Tak się może zdarzyć, jeżeli nie Twój komputer nie ma 128k pamięci – to wymóg Nextora czyli systemu dyskowego. W takim wypadku jesteś skazany na na kernel MSXDOS1 i partycje FAT12 do 16MB. A to sprowadza się do innego wniosku:

MSX1 wymaga de facto włączonego mappera

Inaczej po prostu urządzenie będzie działać w dość okrojonym zakresie.

tryb mappera czy megaRAM

Myślę, że pierwszą zagwostką dla użytkownika może być wybranie trybu pracy. Tryb mappera daje nam po prostu 512k pamięc RAM komputera. To może być np. wymagane do uruchomienia “poprawionej” wersji gry z dyskietki, która oryginalnie była grą wydaną na cartridge’u – dobrym przykładem jest crack gry Salamander, który w wersji dyskietkowej wymaga 256k RAM co sprowadza sytuację do tego, że jedyne dwie fabryczne komputery MSX to SONY HB-F700P i 900P. Tutaj przyjdzie z pomocą mapper w trybie megamappera.

megaRAM do uruchamiania gier z megaROM

Brzmi to jak masło maślane, ale tak właśnie jest. Tryb megaRAM tego urządzenia służy głównie do uruchamiania plików .rom czyli zapisu z kartów, w tym do uruchamiania gier, które były wydawane w postaci tzw. megaROMów (czyli kartów, które zawierały więcej niż 64k pamięci i były mapowane wg jednego ze schematów subslotów pamięci MSX). Typowe rozmiary MegaROM to 1 Mbit (128k) albo 2 Mbit (256k).

I tutaj dochodzimy do czegoś co jest wg mnie sporą wadą tego urządzenia. Pomimo posiadania 512k pamięci nie obsługuje on wg moich testów 4Mbitowych MegaROMów pomimo tego, że teoretycznie posiada 512k czyli 4Mbity pamięci.

użytkowanie w trybie megaRAM

Mogło by się wydawać, że te dwa tryby narzucają nam logikę: jeżeli potrzebujemy więcej pamięci RAM – uruchamiamy kart w trybie mappera. Jeżeli potrzebujemy uruchomić np. plik .rom to wybieramy tryb megaRAM. No i tutaj jest pewnego rodzaju niekonsekwencja – w obu trybach możemy uruchamiać… pliki .rom. W obu trybach po restarcie komputera nie ma ich zapisanych w pamięci flash. W trybie mappera obraz .rom jest uruchamiany natychmiast, natomiast w trybie megaRAM – widzimy zapisywanie stron pamięci i dopiero po zapisaniu mamy możliwość uruchomienia .romu.

Po wybraniu pliku typu .rom mamy możliwości określenia konfiguracji dot. tego konkretnie pliku. Na większość przypadków wystarczy automatyczne rozpoznawanie typu .romu etc. więc wystarczy po prostu potwierdzić enterem wybór ROMu i uruchomić jego wgranie do pamięci.

MegaROM ASCII16

Pod powyższym hasłem kryje się rodzaj emulowanego w CPLD megaROMu. Niestety nie wszystko wg tego schematu będzie działać, np. R-Type niestety odmawia posłuszeństwa pomimo 384k wielkości i zdecydowanie tego typu megaROMu.

użytkowanie megamappera

W trybie mappera dostajemy najnowszą inkarnację Nextora, czyli następcy MSXDOS2 rozszerzonego o wiele przydatnych funkcji oraz kartę SD jako dysk twardy FAT12 albo FAT16. Dwa sloty pozwalają na dość szerokie pole użytkowania kilku partycji. Cieszy mnie, że użyto slotu SD a nie microSD – ta miniaturyzacja nie do końca mi odpowiada (plus mam spory zapas kart SD).

Przy właściwej konfiguracji w pliku AUTOEXEC.BAT (czyli zdefiniowaniu ścieżek dostępu do managera plików np. Sofarun czy Multimente) użytkowanie sprowadza się do odpalenia programu z którego uruchomimy plik umieszczony na karcie SD.

Niekonsekwencje czy błąd a może ficzer?

Nie jestem pewien czy wyłapaliście dwie różnice – w trybie MegaRAM SofaRun rozpoznaje obraz gry Aleste prawidłowo jako ASCII16, w trybie Mappera – jako ASCII8 – nieprawidłowo – ale też uruchamia grę. Na tych ekranach widać jeszcze jedną różnicę – to samo urządzenie z tą samą grą w pliku .rom w momencie wywoływania w trybie MegaRAM i Mapper pokazuje inną pojemność pamięci – device capacity.

TestRAM z kolei w trybie MegaRAM pokazuje 512k pamięci MegaRAM i 512k pamięci Mappera, a w przypadku trybu mappera pokazuje tylko 512k przypisane do mappera. Co ciekawe – testRAM nie pokazuje w moim Sony HB-F700P pamięci 256k RAM, co wynika z tego, że mapper nakłada się na pamięć fizyczną komputera, a nie “dodaje” do niej.

A co jeżeli potrzebuję tylko interfejsu do kart SD?

Do tego służy przełącznik umiejscowiony bliżej slotu kart – wyłącza on kompletnie pamięć mappera/megaRAMu pozostawiając dla użytkownika tylko interfejs kart SD oraz Nexora – i w tej postaci może działać bezkonfiktowo w tzw. slot expanderze (czyli rozszerzeniu szyny kartów).

Co ciekawe – pomimo wyłączenia mappera/megaRAMu nadal jest wykrywany mapper przez testRAM.com

a co jeżeli SofaRun nie uruchamia pliku .rom

Możliwości niestety nie jest zbyt wiele. SD Mapper MegaRAM to niestety urządzenie z ograniczeniami, a SofaRun też nie jest czymś, co jest receptą na każdy .rom i jego problemy na tym mapperze. Ale – czasem się udaje te problemy obejść. Metoda najprostsza – od której bym zaczął – to użycie znanego rom loadera jakim jest loadrom.

https://www.msx.org/downloads/loadrom-v-197

Użycie banalne – odpalamy loadrom.com, z wybieraczki tekstowej wskazujemy plik .rom i trzymamy kciuki.

Inne opcje – trochę bardziej skomplikowane: Multimente. Multimente nie będzie dobrym rozwiązaniem na MegaROM na MSX1 z racji swoich wymogów RAM.

podsumowanie

Ten SD mega mapper/mega RAMto prosta konstrukcja, na start bardzo dobra, niestety wraz z apetytem na większe produkcje okazuje się, że dokładając trochę więcej mamy Carnivore 2 czy MegaFlashROM SCC+ SD (ten niestety już tylko z drugiej ręki) – nie wymieniam przy tej okazji GR8NET, bo jego cena (ok. 150 EUR) mrozi u wielu zapał.

Ogromną zaletą jest udostępnienie na githubie źródeł, łącznie z gerberami plików do wykonania płytek drukowanych i tutaj autorom urządzenia należą się bez dwóch zdań podziękowania.

Na Allegro można kupić to urządzenie w cenie ok. 250 zł za gotowy SD mapper/megaROM z wydrukowaną obudową – i na ten moment jest on najbardziej przystępnym rozwiązaniem do uruchamiania gier z ROMów oraz obrazów dyskietek.

edyta: ponieważ jakiśtam feedback dostałem – śpieszę donieść, że

osobiście uważam ten mapper za przydatne i przystępne cenowo urządzenie

Skoro tak, to jak wykorzystuję je wykorzystuję posiadając Carnivore 2 i MegaFlashROM SCC+ S?

Jest sobie Philips NMS8280, ma wymienioną jedną stację dysków na goteka z Flashfloppy firmware. Taka maszynka do przegrywania na dyskietki jakby co. Tylko te pliki .dsk muszę tworzyć na emulatorze, na którym de facto muszę emulować też dysk twardy, żeby dograć do obrazu dyskietki np. pojedyńcze pliki z komputera typu PC/Mac.

SD Mapper/MegaRAM 512k pozwala mi na jednej karcie trzymać system plus archiwa (ROMy, dsk) a na drugiej karcie dołączać i przerzucać pliki z komputera PC/Mac – które mogą wylądować np. na zamontowanym w goteku obrazie dyskietki albo nawet bezpośrednio na dyskietce. Jedyny mankament w pewnym momencie to przy kilku partycjach ogarnięcie, gdzie wylądowały nam “literki” oznaczające napędy dyskietek 🙂

Z mojego doświadczenia i wygody – nie ma nic lepszego do ogarniania obrazów dyskietek niż gotek z flashfloppy firmware i OLEDowym wyświetlaczem. W MegaFlashROM SCC+ SD wgrywam zwykle jakąś grę, w którą gram dłużej, w Carnivore 2 mam wgrane kilka ulubionych gier – ale też – są to te większe 2MB MegaROMy. Ten trzeci kart – czyli SD Mapper/MegaRAM 512k oprócz tego zastosowania z przegrywaniem plików jest u mnie do odpalania mniejszych rzeczy. W Carnivore 2 przekonfigurowanie zajmuje za dużo. To samo w MegaFlashROM SCC+ SD.

Ten kart w kombinacji z Sofarun jest po prostu szybkim rozwiązaniem na mniejsze rzeczy – i z tym radzi sobie bardzo dobrze. Jeżeli macie drugi kart z FMPAKiem to macie optymalne kombo do zabawy. A na większy apetyt trzeba szybkować większe pieniądze.