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 menüü näeb välja nagu teisel mudelil ja otsingul on täpselt samasugune kiiks - otsib nime algusest.
Kui mälukaart arvutisse pista, siis ei näita mitte midagi - partitsioonidetabel puudub. Failisüsteemi tunnuseid otsides leidsin vajalikud failisüsteemid üles.
Tegelikult peaks olema üks partitsioon kasutajale nähtav, mis on mõeldud mängude lisamiseks, mida kuvatakse "Download" vahekaardil, aga
sellele ligipääsemiseks on tarvis eriteadmisi. Konsooli tootja oleks pidanud kaasa andma tarkvara, mis annab sellele mälukaardi osale ligipääsu.
Sellel mudelil on konsoolide valikul tehtud juurde teine lehekülg, kus on MAME mängud veel täiendavalt ära jaotatud, mis tähendas lisatööd,
aga töötasin lõpuks välja meetodi, kuidas MAME XML'i põhjal MAME mängud õigetesse gruppidesse jaotada. Tänu sellele, et MAME mängud on nii MAME üldnimekirjas kui ka grupeeritud nimekirjades, siis MAME mängud annavad otsingus topelt vaste.
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)