MegaFlashROM SCC+ SD

Na samym starcie mojej przygody z komputerami MSX2 miałem szczęście trafić na kart zwany MegaFlashROM SCC+ SD. Urządzenie nie jest już dostępne, ale z czysto dokumentacyjnej potrzeby wskażę dystrybutora – MSX Cartridge Shop. Niestety strona zrobiona jest w ten sposób, że uniemożliwia zalinkowanie bezpośrednio do podstron urządzenia więc musicie już ręcznie wejść do zakładki “Flash” i wybrać MegaFlashROM SCC+ SD.

Przedmiotem tego artka jest chyba ostatnia wersja jaka została wydana – 64Mb pojemności pamięci EPROM, obsługująca i emulująca zarówno Konami SCC jak SCC+.

Co tak naprawdę to urządzenie potrafi?

Obsługa dwóch slotów kart microSD

Nie dość, że dwa sloty kart to jeszcze z funkcją hotswap. Oczywiście – dalej obowiązują nas już ograniczenia wynikające z MSXDOSa: FAT12 albo FAT16 czyli patrycje 16MB maksymalnie albo partycje 4GB maksymalnie. To wszystko działa pod Nextorem, który natywnie wspiera te dwa formaty – czyli wymiana plików przez karty microSD jest bezproblematyczna jak przegranie ich przez czytnik pamięci microSD.

64Mb to 64 megabity czyli 8MB (megabajtów)

8MB urządzenia to jego potencjał dla nas do wykorzystania. Wystarczy na fajny set gier wbitych w pamięć FLASH udającą ROM na tak długo jak chcemy. W przeciwieństwie do opisywanego wcześniej SD Mapper Mega RAM 512k tutaj zapis zostaje nam do momentu, gdy zdecydujemy się wykasować ręcznie pamięć.

Na same pliki ROM mamy 7104k czyli 7MB. Pozostała pamięć jest wpółdzielona na mappera 512k RAM oraz obsługę obrazów dyskietek i SCC+.

reset na 5 sekund

Właśnie – jeżeli chcemy tymczasowo wyłączyć ten kart – to przytrzymujemy na 5 sekund klawisz reset. Po ponownym uruchomieniu komputera kart znowu jest aktywny.

do 9ciu emulowanych obrazów dyskietek jednocześnie

Ilość wydaje się na wyrost, bo nie widziałem produkcji przekraczających 5 dyskietek, ale – warto może mieć zapas możliwości. Listę dyskietek definiujemy w pliku tekstowym – obrazy dyskietek powinny się znajdować w tym samym katalogu co plik zawierający ich listę (i kolejność).

Przełączanie obrazów wirtualnych dyskietek dokonujemy klawiszem z numerem obrazu dyskietki – dość wygodne.

Konami SCC+ i PSG

Jedną z głównych zalet MegaFlashROM SCC+ SD poza pojemnością pamięci flash jest emulacja Konami SCC+ czyli kartu zawierającego oprócz pamięci ROM (a konkretnie standardu MegaROM) chipset dźwiękowy rozszerzającego możliwości MSXa o 5 kanałów syntezy i wavetable. Czyli wszelkie obrazy ROM kartów Konami wykorzystujące czy starszą 4 kanałową wersję SCC (czyli konkretnie 15 gier takich jak Space Manbow, Parodius, Salamander, Contra, Nemesis czy Metal Gear 2 etc.) czy też późniejsze 5 kanałowe SCC+ (czyli gry Snatcher oraz SD Snatcher) będą działać jak oryginał.

To w sumie jeden z trzech kartów, które to potrafią – pozostałe dwa to Carnivore 2 i GR8NET.

Dzwięk z emulacji SCC+ jest kierowany z powrotem do komputera przez łącze kartu sound in – i tam na płycie głównej komputera miksowany z sygnałem audio PSG czyli chipsetu bazującego na AY-3-8910 w rozszerzonym wariancie Yamaha YM2149.

Czyli w odróżnieniu od Carnivore 2 czy GR8NET nie ma oddzielnego wyjścia dźwiękowego.

Dodatkową za to opcją jest włączenie emulacji PSG na karcie MegaFlashROM SCC+ SD – czyli zarówno SSC+ jak i PSG jest wtedy emulowany na poziomie kartu, po czym dźwięk jest routowany z powrotem do komputera. Jest to dobre rozwiązanie dla komputerów, których wewnętrzny mikser dźwięku ma nie do końca dobrze ustawione poziomy pomiędzy dźwiękiem PSG na płycie głównej i dźwiękiem zwrotnym z łącza kartu – takie problemy można napotkać np. w modelach Philips NMS.

ASC8, ASC16, Konami, Konami SCC,
liniowe 48k/64k

Tryby mappera pozwalają na wybór (automatyczny albo przypisany) dużego spectrum typów kartów. W praktyce – nie znalazłem gry, która by nie działała jako obraz .rom

skróty startowe Nextora a MegaFlashROM SCC+ SD

1 – wymusza start do MSX-DOS 1 (w Turbo R – tryb Z80).
2 – wymusza start do MSX-DOS 1 (w Turbo R tryb R800) (TR: R800 mode).
3 – pomija pliki MSXDOS i uruchamia się w trybie MSX BASIC
4 – startuje w trybie R800-ROM (tylko MSX TurboR).
CTRL przypisuje tylko jeden napęd przy bootowaniu, czyli zwalnia pamięć RAM.
SHIFT wyłącza MSXDOS i przy okazji wewnętrzną stację dysków.
R wyłącza Nextora jeżeli kart był w slocie 1
F wyłącza Nextora jeżeli kart był w slocie 2

uffffff

Multimente

Multimente to przeglądarka plików i nakładka na Nextora. Takie Sofarun tylko trochę inaczej, mniej opcji, więcej Nextora (o ile to możliwe). Plus niestety – wymaga 128k RAM. Jak masz mniej – no to Sofarun, ale tutaj zaczyna być problem pt. standardowy dysk ROM ma ustawiony autostart do Multimente, więc czeka Cię zabawa albo w usunięcie dysku ROM, albo jego modyfikacja i ponowne zapisanie jako dysku ROM do pamięci kartu.

Zasada używania samego Multimente jest dość prosta – enterem wybieramy plik, przy czym jest on wgrywany do pamięci ROM bez udziału OPFXSD.

MegaFlashROM SCC+ SD możemy używać w ramach kilku filozofii.

Po pierwsze

na szybko

wybieramy plik w Multimente i w zależności jaki to typ pliku jest on uruchamiany po miękkim restarcie komputera.

Po drugie po prostu jako

interfejs pamięci masowej na kartach microSD

Są dwa proste rozwiązania, albo edytujemy (usuwamy, podyfikujemy, partycjonujemy) partycję z pamięci flash, która standardowo jest partycją pierwszą (A:), albo edytujemy plik AUTOEXEC.BAT, który uruchamia standardowo Multimente, albo po prostu – zostawiamy jak jest standardowo, a po uruchomieniu Multimente – po prostu wychodzimy z niego klawiszem Q i potwierdzając Y. Trzecia opcja to pozbycie się dysku ROM i pełna kontrola nad systemem – omówię to osobno później.

Po trzecie jako

kart z wgranym zestawem gier w pamięci flash

taki zestaw plików .ROM zawieramy w pliku .opf. Wtedy po starcie komputer pokazuje listę ROMów do wyboru. Jak taki plik stworzyć stworzyć?

.opf czyli multiROM

plik .opf to po prostu plik tekstowy zawierający nazwy obrazów ROM w plikach z ew. dodaniem do nich ich typu jaki chcemy wymusić na mapperze. Całość listy kończymy zapisem [end]. I tyle. Przykładowa zawartość pliku to np.

BOSCON.ROM
KNIGHTL.ROM
HERO.ROM
[END]

MultiROM jeszcze inaczej

Zamiast przygotowywać plik .opf możecie zrobić po prostu MultiROM z linii poleceń:

opfxsd /o /h60 game1.rom game2.rom game3.rom

floppy disk emulation mode

Jeżeli Nextor znajdzie w głównym katalogu aktywnego przy bootowaniu dysku plik NEXT_DSK.DAT, przejdzie w tryb emulacji stacji dysków.

Skąd bierze się ten plik? Jeżeli w Multimente wybraliśmy plik .dsk i wystartowaliśmy z niego komputer – to właśnie zapis o tym pliku znajduje się w NEXT_DSK.DAT.

Co to oznacza w praktyce – komputer będzie startował w tym trybie dopóki ten plik będzie znajdował się na dysku/partycji startowej albo… dopóki nie naciśniemy przy starcie klawisza 0 (zero). Wtedy mamy szansę wejść do Multimente, odnaleźć w głównym katalogu startowej partycji plik NEXT_DSK.DAT i skasować go.

aktywacja ROMu klawiszami na starcie

W instrukcji do tego mappera znajdziecie tabele klawiatury. Bo gry zapisane w ROMie (pamięci flash) możemy aktywować na starcie komputera przy pomocy klawiszy.

OPFXSD MGEAR2.ROM /t84 -> gra będzie nieaktywna jeżeli na starcie komputera naciśniemy INS
OPFXSD MGEAR2.ROM /t84 /n -> gra uruchomi się, gdy na starcie komputera naciśniemy INS

limbo pomiędzy dwoma trybami startu

Niestety kart można wprowadzić w tryb zapętlenia, z którego wyjście prowadzi wyłącznie przez tryb Recovery.

Wyobraźcie sobie taki scenariusz (przeszedłem przez niego więc – uspakajam – da się z tego wyjść bez dramatu):

  • wybraliście plik .rom, zapisaliście go w pamięci flash, wyłączyliście komputer – włączacie go ponownie – uruchamia się ROM. No, ale Wy chcecie wgrać inny ROM. No to pomijacie przy starcie wgrany ROM za pomocą klawisza ESC. Zadziałało, wybieracie inny ROM, zapisuje się – czyli jakby ta metoda działa.
  • tylko jeżeli pominiecie na starcie ROM klawiszem ESC, wejdziecie w Multimente na obraz pliku .dsk i wystartujecie komputer z wirtualnej dyskietki to trafiliście właśnie do pętli.

Pominięcie zapisanego ROMu to klawisz 0 (zero) a pominięcie zapisanego obrazu dyskietki to ESC. Niestety – albo pomijacie jedno, albo drugie.

Albo wchodzicie w jedyny ratunek, jakim jest

Tryb recovery

Startując komputer z wciśniętą strzałką w górę wchodzimy w tryb Recovery. Pozwala nam on na nadpisanie ustawień kartu, usuwanie i ponowne wgrywanie zawartości standardowej kartu. Ale po kolei.

Główny ekran trybu recovery wygląda tak:

Patrząc od góry – po kolei:

F1 – kasowanie pamięci ROM czyli np. gry jakie zapisaliśmy w pamięci

F2 – skasowanie kernela MegaSD

F3 – skasowanie dysku ROM (czyli defaultowo dysk A:) – to jest coś o czym będę wspominał w tym artykule. Zdecydowanie warto to zrobić, ale wcześniej przegrać zawartość dysku ROM na naszą kartę microSD.

F4 – wgranie z powrotem kernela MegaSD – ja trzymam go na karcie microSD w katalogu /kernel – w tej opcji następuje szukanie pliku kernela na nośniku microSD, nie ma możliwości wskazania go z dyskietkie etc. więc warto trzymać sobie taki backup

F5 – informacje o karcie – partycje etc.

C – ta opcja powoduje przypisanie toru dźwięku PSG do emulacji wewnątrz MegaSD

R – wyłącza dodatkową pamięć 512k, którą daje MegaSD

S – wyłącza start kartów w slocie 2 i 3. Pozornie niepotrzebna opcja – ale właśnie za pomocą tej opcji byłem w stanie bezpiecznie, bez tricków z wsadzaniem kartu do działającego komputera zrzucić zawartość ROMów z polskich kartów z LOGO etc.

trick – edycja ROM dysku

Edycja i zmiany w ROM dysku, np. autoexec.bat są możliwe po prostym tricku:

  1. skopiuj zawartość dysku a: (czyli flash ROM) na dyskietkę
  2. przeedytuj zawartość pliku AUTOEXEC.BAT tak jak byś chciał
  3. zrób obraz dyskietki za pomocą programiku GETDISK do pliku np. NROMDISK.DSK
  4. zapisz obraz dyskietki do pamięci flash partycji startowej:
    OPFXSD NROMDISK.DSK /id

trick albo następny krok – pozbycie się ROM dysku

Szczerze mówiąc – jeżeli chcecie w pełni korzystać z MegaSD jako kartu dającego Wam pełen dostęp i kontrolę nad plikami “dysku twartego” to skopiujcie zawartość dysku A (ROM) na dysk B (karta microSD) i skasujcie korzystając z Recovery dysk ROM. Wtedy partycja z Waszej karty microSD staje się dyskiem A, który jest w pełnie modyfikowalny, zaczynając od Autoexec.bat

przekleństwo subslotu zero albo primary

Jest conajmniej kilka gier, które skutkiem swojego kodu można uruchomić tylko w subslocie 0 albo w pierwszym slocie np. Megal Gear Solid Snake czy Space Manbow.

Oznacza to, że trzeba uruchomić kart w trybie wyłączającym pozostałe subsloty czyli z opcją /u.

Czyli programując/zapisując grę do pamięci flash używamy:

OPFXSD MGEAR2.ROM /U 

mapowanie napędów

Nextor zawiera bardzo przydatne narzędzie – MAPDRV, którego składnia wygląda następująco:

MAPDRV [/L] drive: partition|d|u [device[-LUN] [slot[-subslot]|0]]

Jak wygląda standardowe napowanie?

A = ROM disk
B = SD slot 1
C = SD slot 2
D = stacja dyskietek nr 1 etc.

Device 2 = SD slot 1. Device 3 = SD slot 2.

zawieszanie się przy zapisywaniu ROMu do pamięci flash

Choć osobiście mi się to nie zdarzyło, czytałem o takiej możliwości – zwykle dotyczy ona prędkości pracy karty microSD.

Standardowo MFR SCC+ SD pracuje z prędkością x4, więc aby zwiększyśc kompatybilność z mniejszą prędkością pracy karty microSD musimy używać opcji /1 (która da nam wynikowo prędkość x1)

opfxsd gra.rom /1

“oporne” czy raczej duże gry

Nie z wszystkimi grami pójdzie łatwo. Kai Magazine wydał kilka świetnych tytułów, które jednak… trzeba zapisać w MegaFlashROM SCC+ SD trochę inaczej, a mianowicie:

opfxsd LOEENG.rom /k5 /u

podsumowanie

Bardzo fajny kart, niestety drogi (149 EUR plus wysyłka i 5% prowizji Paypala) – i w porównaniu z Carnivore 2 wypada nieco gorzej, natomiast dwa sloty na karty microSD bronią się względem mniej popularnych dzisiaj kart CF. Mnogość opcji, ale też mniejsza popularność Multimente względem SofaRun powoduje, że przebrnięcie przez początkowe problemy wydaje się dość trudne. Routing sygnału audio (SCC+ i PSG użyciu sklonowania sygnału w opcjach Recovery) jest do wewnątrz MSXa – co z jednej strony jest fajne – dostajemy to na wyjścio audio/video z MSXa, z drugiej strony – ktoś przyzwyczajony to dźwięku dodawanego z wyjścia karta ma pod górkę (to sytuacje, gdy mamy MSXa podpiętego dźwiękiem do amplitunera, a monitor ma tylko tor sygnału wideo plus ew. PSG).

PS. artek w stanie aktualizacji, bo ciągle przychodzi mi do głowy coś, co mogę dopisać.