2014-12-28 Zvuk: nyni samplujeme pri kazdem pultaktu PSG a pri rescanu na 48 kHz aplikujeme low pass filter dle Bohousova navodu. Lamacovy hudebni dema uz zni mnohem lepe, nicmene generator sumu je od poslechu porad jeste nejaky \"divny\". Emulace gdg: oprava - delka VSYNC ve status registru je evidentne jina, nez je realny VSYNC na video vystupu. Toto se projevilo jiz drive - viz poznamka o oscml.mzf. Take se to projevilo spatnou pozici barevneho valce na zacatku hry GP-simulator. Zkusil jsem delku VSYNC prodlouzit o back porch a podle osclm uz to vypada, ze je VSYNC identicky s realnym Sharpem. Je ovsem otazka, zda se takhle ve status registru nelisi i HSYNC... Uprava renderu: v SDL interface se vykreslovaly a rendrovaly jen mista, kde doslo ke zmene, coz na nekterych grafickych systemech nefungovalo spravne - mozna ze se pri update provedl zadoven flip videopameti a v dusledku toho se provedene zmeny updatovaly do obrazovek, ktere byly uz neplatne. Nyni tedy zkusebne kreslime jen zmeny, ale pak updatujeme cely screen. Nevsiml jsem si, ze by to melo nejake negativni dopady na rychlost - mozna se tim zvysi teplota na GPU :) 2014-12-26 Vytvoren SDL interface. Rychlost vykreslovani je nyni uz docela uspokojiva :) U okna emulatoru je nyni mozne libovolne menit velikost - tedy pokud to ustoji 2D akcelerace ve vasi graficke karte. K provozu emulatoru je vsak nyni potreba mit v pocitaci knihovnu SDL2.dll Tu je pro Windows mozne stahnout ode mne z webu, nebo z https://www.libsdl.org/download-2.0.php Ve svem virtualizovanem Linuxu jsem emulator s touto knihovnu prilis netestoval, protoze bez HW akcelerace grafiky se emulator tahne jako slimak. Ve vetsine Linuxovych distribuci se zrejme nachazi jako predinstalovany balik pouze starsi verze teto knihovny. Runtime SDL2 si bude zrejme ve vetsine Linuxu nutne nejprve skompilovat. Pod SDL je nyni realizovan i scan klavesnice, kterou je nyni mozne nacitat na urovni PS/2, takze uz neni problem napr. pri ceskem rozkozenim klaves. Mapovani klavesnice je identicke s rozlozenim emulatoru Zdenka Adlera. Navic jsem vsak pridal tyto drobnosti: ESC - je mapovan na PC: END i ESC DEL - je mapovan na PC: BACKSPACE i DELETE LIBRA - je mapovana PC: F9 Dopsana emulace PSG chipu SN76489 a take dokoncena emulace zvukoveho vystupu z CTC0. Prepsana rutina pro mereni casu a synchronizaci - nyni uz bezime skutecne na 100% Pridana moznost pozastavit emulaci ALT+P. 2014-12-16 Oprava interface_keyboard: nyni uz funguje kombinace CTRL + F12, takze je mozne napr. restartovat BASIC. V menu pridana moznost zapnout / vypnout CMT load patch. Vytvorena prvni verze Virtual CMT. Lze jej zobrazit / skryt bud z menu, nebo pomoci hot key ALT+C. Prozatim umi pouze prehravat z CMT do Sharpa. Jedinym podporovanym formatem je v tuto chvili pouze MZF. Jako timebase pro CMT jsem zvolil 1M1, kterym se krmi CTC1. Presto, ze v SM800 je uvedeno, ze prefix a surfix je 1 LONG cyklus, tak podle vseho tam jsou ty cykly dva (odkrokovano v ROM). Vsechny rychlosti prehravani jsem bez problemu otestoval v Turbo Copy - ten ma vsak schopnost se pomerne dobre adaptovat na promenlivou rychlost zdroje. Uspesne je jiz odzkouseno take nekolik vicedilnych her, ktere po loaderu ocekavaji dalsi blok v rychlosti 2400. Napr. u Dizzy 2 od RDOSe jsem vsak narazil na problem a druhy blok se mi nedari vubec nacist. TODO: zmerit napr. z vystupu Turbo Copy, jak dlouhe maji byt jednotlive LONG a SHORT cykly - to co pisou v SM800 totiz nesouhlasi ani s tim co na CMT posila ROM. 2014-12-12 Oprava status registru: misto hsync jsem mel na prislusnem bitu vsync Oprava CTC8253: v mode3 pri preset=2 nedochazelo ke stridani stavu, nyni uz lze spustit oscml.mzf Oprava GDG: mel jsem preklep v delce VSYNC. Trval jen 2 obrazove radky, ale podle mych mereni ma trvat 3 radky + 2 pixely - alespon tak to je v mych poznamkach. Nicmene i tak podle vystupu z oscml.mzf je muj VSYNC mnohem kratsi a zacina evidentne pozdeji, nez v realnem Sharpu. TODO: Budu to muset premerit. Oprava PIOZ80: ve chvili, kdy byl prijat interrupt, tak je potreba poslat info do PIOZ80 a tim jej disarmovat. V rezimu IM2 se tak delo, ale pri IM1 se PIO nedozvedel, ze uz nemusi plasit. Po teto oprave asi zacne fungovat spousta programu, vcetne Adolfa z Interkarate ;) Oprava VRAM controlleru: zapomnel jsem na podporu cteni z vice rovin v single rezimu. Diky tomu pak RDOSuv ZX emulator neidentifikoval extVRAM, nastavil 4 barevny graficky rezim a proto v nem nesedely barvy. Sjednoceni barevneho schematu s emulatorem ZA. +++ end of file +++