SEGAM-M8-V8.0

Märkasin 2023a suvel huvitavat retromängukonsooli reklaami ja tellisin internetiavarustest omalegi. Pealtnäha näevad kõik konsoolid ühesugused välja, aga teise, kolmanda ja isegi neljanda konsooliga tutvumise käigus selgus, et iga konsool on erinevalt lahendatud. Kõige rohkem häiris, et mängud on suvalises järjekorras ning paljudel mängudel olid eelvaateks mittemidagiütlevad kaanepildid, algustiitrid või eelvaade üldse puudus ning vaatamata suurele mängude arvule (10K) oli mänge ikka puudu. Kuna mängukonsoolidel esines kergeid puudujääke, siis hakkasin uurima, kas on võimalik neid konsoole kuidagi paremaks teha. Kõigepealt koondasin 3 mängukonsooli mängud kokku, et rikastada mänguvalikut. Organiseerisin paljudele mängudele uued pildid, eemaldasin duplikaadid, ühesuguse nimega mängud (enamasti konsooli raames) ja hieroglüüfsed mängud, millest midagi aru ei saa. Parandasin valed mängu nimed õigeks (nii palju kui silma hakkas) ja sorteerisin kõik tähestiku järgi ära. Eemaldatud sodi arvelt sikutasin mõned mängud juurde (peamiselt WoWroMs ja CoolROM lehelt). Kogu töö tulemusel sain konsoolile mõnusama, puhtama ja väärtuslikuma sisu.
Olen ennast kurssi viinud 6 erineva süsteemiga:
Vajuta siia, et näha detailsemat kirjeldust 👈
"GB2 RETROGAME v1.0" ja "SEGAM M8 V5.0" on väga sarnased ja kõige lihtsamini lahendatud.
Mängud asuvad mälukaardil kaustas "game", kus iga konsoolitüübi jaoks on vastav kaust.
Samas kaustas on ka mängude pildid, mida saab soovi korral ümber vahetada või puuduoleva lisada.
MAME mängudele saab ka mitu pilti lisada (kaustas "picture"), mida kuvatakse animeeritult.
Viimane kaust on primaarne - kui sealt pilte ei leita, siis otsitakse game kaustast.
Kui SEGAM M8 V5.0 toetab vaid RGB värvimudeliga PNG-faile, siis GB2 RETROGAME toetab
lisaks kõikide värvimudelitega (RGB, indekseeritud ja hallskaala) PNG-vormingutele ka JPEG pildifaile.
Juurdelisatud mänge kuvatakse nimekirja lõpus.
Algselt lootsin, et mängude väljavahetamine on lihtne, kuid paraku ei ole konsool nii paindlikult lahendatud,
et kohanduks kausta sisuga, sest sisseehitatud mängude nimekiri on raiutud SQLite3 andmebaasi, mida kausta sisuga ei sünkroniseerita.
Selleks, et mängud välja vahetada, tuli teha omale selgeks andmebaasi struktuur ning luua uue sisu jaoks uus andmebaas.
Kaustast "minigui" leidsin menüüd tekstid, millele tegin eestikeelse tõlke ja parandasin inglisekeelset,
sest mõned sõnad olid naljakad (nt settings asemel oli setting).
Tõlkeid saa juurde lisada, vaid tuleb asendada teise keelega.
Kõvemad mehed oskaks ilmselt kogu süsteemi oma käe järgi ümberprogrammeerida ja saaks ka juurdelisamisega hakkama.
Kui mängude väljavahetamine tundus esialgu lihtne, siis mänguautomaatide mängud (MAME) on hoopis teine maailm.
MAME mängudel on oma andmebaas, kus igal mängul on kokkuleppeline nimetus, nt mängule "Double Dragon" vastab nimi "ddragon".
Andmebaasi leiab MAME arendustiimi kodulehelt kas XML-faili näol või MAME käivitusfailist nimekirja väljatrükkides,
kasutades käsku mame -listfull. Kõik mame käsud on välja toodud
MAME käsurea dokumentatsioonis,
kust leiab veel kasulikke käske, mida läheb MAME mängude käitlemiseks tarvis.
Erinevad retro mängukonsooli mudelid toetavad erinevaid MAME platvorme.
Mida uuem mudel, seda paremaks on toetus läinud, kuid mõned mängud siiski läbivalt ei toimi ühegi mudeliga, töötavad halvasti või nõuavad eriseadet,
nt püstolit, roolikomplekti või muud ebastandardset juhtimisseadet, mis tavalisele mängupuldile ei reageeri.
Üritasin mälukaardilt nii palju ebakvaliteetseid ja mittetoimivaid MAME mänge eemaldada kui võimalik, kuid 100% kõiki mänge ei jõudnud kõikide mudelitega läbi proovida.
Rääkides mängude nimedest, siis NES, SNES, SEGA ja GB mängudel esines sellist nalja, et mõnel mängul oli hiinakeelne tõlge,
nt "Tom and Jerry" oli hoopis "Cat and Mouse" või mõni muu täiesti vale nimi. Kuna mängu failidel on ka metaandmed,
mis sisaldavad originaalnime (või mingit osa sellest, sest teksti pikkus on piiratud), siis kirjutasin skripti,
mis loob mängude nimekirja koos metaandmetega, mille põhjal sain sisulised duplikaadid välja noppida.
SEGAM M8 V5.0 jaoks on loodud ka venekeelne püsivara OpenWorld v0.90plus, millele on tehtud rikkalik täiendus ja lisatud veelgi laialdasem mängukonsoolide tugi, sh DOS'i mängud. Ühe korra õnnestus mul see isegi tööle saada, aga teisel katsel ei õnnestunud enam pilti ette saada ning enam ei mäletagi, mis ma esimesel korral teistmoodi tegin.
M8 2023 0223 release v2.0 mudel on õige pisut erinev. Mänge saab lisada kausta "download", mille sisu kuvatakse menüüs eraldi vahekaardil.
Sellel konsoolil on selline kiiks, et see otsib mängu nimesid vaid nime algusest alates, mitte kogu nime seest, mis tähendab seda, et kui on soov otsida Super Mario't,
siis märksõna "Mario" ei leia soovitud mängu.
Sisseehitatud mängud asuvad kaustas "roms", aga kus on andmebaas? Mängude nimedele leidsin vasted failist "DATA03".
Linuxi käsk binwalk käsk tuvastas sellest failist failisüsteemi, kus asubki otsitud andmebaas - samuti SQLite3, aga natuke teistmoodi üles ehitatud.
SEGAM M8 V6.0 mudelile on lisatud menüüsse taustamuusika, mida teistel mudelitel ei ole. Tausta muusika vahetamine oli lihtne,
aga mängude vahetamine see-eest veelgi pirakam pähkel kui eelmine, mis alguses tundus lausa võimatu missioon. Mängud ise on mälukaardil nähtaval kohal,
pakitud zip-konteinerisse ning jagatud kaustadesse vastavalt tüübi numbrile (0-8), aga jälle see andmebaas!
Mängude nimekiri asub tõenäoliselt dat-laiendiga failides, aga nende failide sisust ei saa midagi aru.
Pikema uurimise käigus selgus, et tegu on zip-konteineriga, mida on veidi muudetud ning tekst ümberkodeeritud.
Tänu sellele, et mängud mängude pildid on pakitud mängude nimedega samas järjekorras, mille nimed on loetavad, sain kirjutada skripti,
mis leiab vasted tähemärkide ja kodeeritud sümbolite vahel, mille põhjal saab faili nimed lahti kodeerida ning
uues zip-konteineris failide nimed tagasi ümberkodeerida. Dat-failides olid mängude nimekirjad tavalise tekstifailina ning pildid rgb565 toorvormingus.
Ja võimatu missioon saigi lahendatud! Aega võttis, aga asja sai!
SEGAM M8 V7.0 jätsin vahele. Netist allalaetud püsivaraga põgusalt tutvudes tundus eelmisega versiooniga sarnane.
SEGAM M8 V8.0 (2024-10-15 ja 2025-08-29) ülemine menüü näeb välja nagu v2.0 (täiendav valik "download" enda mängude jaoks) ja otsingul on samasugune kiiks - otsib nime algusest, mitte kogu nime seest. Konsoolide valikusse on lisandunud mänguautomaatide alamliigid, mis sisuliselt dubleerivad MAME kategooriat ja tekitavad otsingus topelt tulemusi. 2025a versioonile lisati ühe lehekülje jagu veel vanu mängukonsoole ja parandati otsingut: enam ei kuvata dubleerivaid MAME alamliike ja otsitakse pealkirjadest, mitte failide nimedest. Kui mängukonsool ühendada arvutiga, siis kuvatakse kasutajale mõeldud mälukaardi osa eraldi seadmena, kuhu saab laadida oma mänge, mida kuvatakse "Download" vahekaardil. Kui mälukaart arvutisse pista, siis operatsioonisüsteem ei näita mälukaardilt mitte midagi, sest partitsioonidetabel puudub, aga failisüsteemi tunnuseid otsides leidsin konsooli täiendamiseks vajalikud failisüsteemid üles, mida saab Linuxiga avada ja tuunida vastavalt vajadusele.
Järgnevalt saate tutvuda SEGAM M8 V8.0 mängukonsooli ekraanipiltide ja nimekirjaga.
![[txt]](file.png)
![[x]](consoles/x.webp)
![[MAME]](consoles/MAME.webp)
![[NES]](consoles/NES.webp)
![[GB]](consoles/GB.webp)
![[GBC]](consoles/GBC.webp)
![[GBA]](consoles/GBA.webp)
![[SEGA]](consoles/SEGA.webp)
![[SNES]](consoles/SNES.webp)
![[PS1]](consoles/PS1.webp)
![[ATARI]](consoles/ATARI.webp)
![[32X]](consoles/32X.webp)
![[COL]](consoles/COL.webp)
![[GG]](consoles/GG.webp)
![[NGP]](consoles/NGP.webp)
![[PCE]](consoles/PCE.webp)
![[PICO]](consoles/PICO.webp)
![[SG1000]](consoles/SG1000.webp)
![[SMS]](consoles/SMS.webp)
![[WS]](consoles/WS.webp)