Közel három hónap fejlesztés után eljutottam arra a pontra, hogy már érdemi, bemutatható eredményt tudok megosztani veletek. Az alfa tesztelés sikeresen zajlik, a főbb funkciók, modulok és újítások többsége elkészült. Már csak az utolsó finomhangolások vannak hátra, mielőtt publikálható lesz az első béta verzió, amelyet Ti is kipróbálhattok, és megoszthatjátok a tapasztalataitokat, javaslataitokat és igényeiteket. A lehetőségekhez mérten, próbálom majd a legtöbbet megvalósítani, hogy minél jobban megfeleljen az igényeknek.
Miért készítettem egy új Homelab emulátort, amikor már többféle megoldás is létezik (Win-es, web-es, FPGA alapú...)? Azért, mert mindegyik jelenlegi változat tartalmaz kisebb-nagyobb hiányosságokat vagy hibákat. Ezek miatt fejlesztés közben nem áll rendelkezésre egy egységes, minden igényt kielégítő tesztkörnyezet. Emellett azok a felhasználók, akik kizárólag emulátoron keresztül játszanának, nem tapasztalhatják meg a teljes, eredeti játékélményt.
Elsőként a hangkezelés terén jelentős hiányosságok tapasztalhatók. Az emulátor vagy nem rendelkezik beépített „beeper” hanggal, vagy nem támogatja az AY-3 hangchipet, ami alapvető lenne a korhű hanghatások és zenei elemek fejlesztéséhez és teszteléséhez.
A programbetöltés területén szintén korlátozottak ezek az eszközök. Nem minden esetben lehetséges BASIC programok betöltése, vagy egyszerű elmentése. Emellett a multirekordos (több részből álló) fájlok kezelése is hiányos, így komplexebb programstruktúrák tesztelése nem megoldható. Hasonló problémát jelent, hogy egyes emulátorok nem támogatják a WAV formátumú programok betöltését és elmentését sem.
A megjelenítés pontossága is kritikus tényező. A képszinkron nem minden esetben követi pontosan a valós hardver 48,828 Hz-es működését, ami időzítésérzékeny játékoknál hibákhoz vagy eltérő viselkedéshez vezethet. Továbbá hiányzik a videómemória „szemetelésének” emulációja, amely ugyan hibajelenségnek tűnik, de fejlesztői szempontból fontos visszajelzést ad a program pontos időzítésének könnyű teszteléséhez, hogy az eredeti hardveren ne jelentkezzen ez a képhiba.
Végül, de nem utolsósorban, ezek az emulátorok nem alkalmasak új hardverek fejlesztésének tesztelésére. Nem biztosítanak olyan bővíthetőséget vagy alacsony szintű hozzáférést, amely szükséges lenne egyedi perifériák vagy módosított architektúrák kipróbálásához. Illetve, nem várható el ezen emulátorok fejlesztőitől, hogy a kedvemért megírják a szükséges módosításokat a teszteléshez és állandó módosításokat végezzenek rajta a fejlesztés során.
Ahogy az emulátorom nevéből is látható, ez egy új generációs HOMELAB-ot, többek között színes és grafikus tudással rendelkező új platformot emulál már, amely 100%-osan kompatibilis a HOMELAB-3/4 elődjével.
Emellett olyan funkciókkal is kibővítettem az emulátort, mint a CRT szimulációja, a különböző monitorcsatlakozások képminőség-romlásának modellezése, valamint a hagyományos magnóportos programbetöltés és mentés kazettás magnó működésének szimulálásával. Továbbá lehetőség van a hangcsatornák valós idejű megjelenítésére is, nemcsak látványosságként, hanem teszteléshez is.
Ezek a megoldások nemcsak a fejlesztést segítik, hanem játék közben is hozzájárulnak ahhoz, hogy minél hitelesebben visszaidézhető legyen a korabeli hangulat.
HOMELAB COLOR - Egy új szint!
Mindenkinek tetszene egy színes, nagy felbontású grafikával bíró fejlesztés. 2024 októberében el is készült egy MCU alapú prototípus. Tudása alább látható a videókban. De... "Álljunk meg egy szóra!" Ahogy Grétsy László mondaná.
Két megoldás létezik, azokhoz mért tudással.
1. TTL IC-kből kialakított bővítés a meglévő videóáramkörhöz.
- Előnye:
Korhű
- Hátránya:
Sok alkatrészből (TTL IC) állna.
Akár átalakítást is igényelhet a panelen.
Megmarad a szemetelés.
Megmarad a pontatlan videószinkron.
Csak RGB SCART-os TV-hez köthető, vagy drága konverter kell hozzá.
Nagyon kicsi a tudása (kb. ZX Spectum).
2. Dedikált kiegészítő videokártya
- Előnye:
Semmilyen átalakítást nem igényel.
Nincs szemetelés.
Nincs pontatlan videószinkron.
VGA/HDMI kimenet, modern monitorhoz, TV-hez köthető, akár video konverter nélkül.
Nagy a tudása (kb. TVC, C64, Enterprise 128 keveréke).
- Hátránya:
Nem korhű, de ha úgy gondolkodunk, hogy mivel cél IC-t nem tudunk gyártani, mint pl. a VIC, TED, DAVE... de ezt egy MCU/FPGA-val helyettesíthetjük, így mondhatni semmivel sem lesz kirívóbb, ha a tudása korhű marad.
Ezek alapján a cél, hogy:
- Lefele 100%-osan szoftver-kompatibilis legyen BÁRMELYIK megépített HOMALAB 3/4 verzióval.
- Emulátor támogatása is legyen, hogy könnyű legyen rá programot fejleszteni.
- Nagy, de optimális tudása legyen, relatíve könnyű programozhatósággal.
Szóval, ez egy nagy projekt. Nem szabad összecsapni, csak hogy legyen valami. 2024 októbere óta nagyon sok minden kiforrott az igények és megvalósítások terén. És hogy milyen featureseknek van értelme.
- színes karakteres mód
- színes egyedi karakteres mód (saját charset)
- színes grafikus mód
- hardveres pixeles scroll, karakteres és grafikus módban
- a fentiek keverhetősége rasztersoronként
- no meg a mindenki kedvence, a spite-ok, amik itt inkább MOB-ok lesznek
A modernizáláshoz kapcsolódik még a hangtudás javítása is. Ez részben a már alkalmazott AY-3, másrészt egy 4*8 bites DA kimenet.
Elsőként, a meglévő hardver támogatás, ami lefele 100%-osan szoftver kompatibilis bármelyik megépített HOMALAB 3/4 verzióval.
Órajel szintű CPU emulálás.
Valós videokép generálás, a videoáramkőr szimulálásával. (320 sor, 48,828 FPS, szemetelés/havazás)
Beeper támogatás
Stereo AY-3 támogatás (L - C - R)
Teljes értékű 101 gombos magyar billentyűzet használata (minden HL karakter/vezérlő gomb a helyén)
Magnóport támogatása (LOAD/SAVE) virtuális kazettás egységgel (kazettás magnó szimulálás WAV fájlkezeléssel)
Gyors háttértár támogatása (ELOAD/ESAVE), a PC-által kezelt HDD/SSD egy könyvtárja csatolható a HTP fájlok eléréséhez
Új hardver támogatások (ezek a fejlesztés alatt álló hardverbővítés)
Színes mód: 16 színű paletta, 4 színpaletta, minden szín egyenként szabadon állítható 24 bites RGB-ből
Színes karakteres mód (color attribútum)
Egyedi karakteres grafika (saját charset)
Nagy felbontású színes grafikus mód: Hi-Res 512X256 (8X8-as color attribútum), Multi-Color 256X128 (pixelenkénti szín).
Hardveres X/Y pixeles scroll, oldalmaszkolási lehetőséggel, karakteres és grafikus módban
Állítható keret és háttér szín (mód függő)
A fentiek keverhetősége rasztersoronként (egy rasztersor megfelel két scanline-nak)
Stereo 4 darab 8 bites DA (2 L - 2 R)
Hangcsatornához szinkronizált IRQ (12 bites frekvenciaállítás)
A fentiek mindegyike BASIC-ből is programozható, elérhető
A fejlesztést, szórakozást segítő szolgáltatások:
Hangcsatornák vizuális ábrázolása (oscilloscope)
Háromféle felhasználói felület, illetve képméret (SD 360, HD 720, full screen)
Ki/be kapcsolható videokép szemetelés/havazás
Live OSD debug
Program autostart tiltás, engedélyezés, kényszerítés
Betöltött file adatok kiírása, multirekord egységek részletezése.
CRT emuláció (scanline), választható foszfor színek (fehér, zöld, borostyán, RGB)
Különböző monitorcsatlakozások képminőség-romlásának modellezése (RF, CVBS, VGA)
Bemutató video a fenti leírás szerinti működő rendszerről: