Кіріспе

reSID — Dag Lem бағдарламалаған MOS6581 SID (Sound Interface Device) чипінің кері инженерлік бағдарламалық эмуляциясы. Бұл чип Commodore 64 компьютерінде қолданылған. reSID — GNU General Public License лицензиясы бойынша жарияланған ашық бағдарламалық жасақтама. reSID — SID чипінің толық эмуляциясын қамтитын C++ кітапханасы. Бұл кітапхана Commodore 64 компьютері үшін жасалған музыканы ойнату үшін MOS6510 MPU-ны эмуляциялайтын бағдарламаларға қосылуы мүмкін. reSID VICE (Commodore 64 эмуляторы), SIDPLAY (SID әуенін ойнатушы) және GoatTracker мен cheesecutter трекерлеріне қосылды. Эмулятор қозғалтқышы циклдық, SID чипінің ішкі операцияларын эмуляциялайды. SID аудио сүзгісі нақты екі интеграторлық циклдық екі квадраттық сүзгі ретінде модельделеді. Қозғалтқыш SID, OSC3 және ENV3 регистрлерінің сынамаларын алу, сүзгі теориясы және сынақтар бойынша қолжетімді ақпарат негізінде әзірленді. SID чипінің екі негізгі түрі бар: 6581 және 8580. Олар бірдей бағдарламалау API-ін іске асырады, бірақ олардың аналогтық бөліктері әртүрлі жұмыс істейді. Айырмашылықтар көбінесе DAC сапасы, біріктірілген толқын формалары, чип ішіндегі кернеулік ауытқулар және сүзгіде болады. Инженерлік шешімдерге байланысты 6581 чиптер отбасының сүзгісі айтарлықтай сызықтық емес болды. Эффектті модельдеу көрсеткендей, бұрмалану сүзгінің жоғары және жолақты шығыстарындағы дыбыс амплитудасымен тығыз байланысты және шығыс толқынының екінші жартысында ғана пайда болады. Сүзгінің тиімді орталық жиілігі кіріс толқын формасының амплитудасы артқан сайын спектрде жоғарылайтынын көруге болады, ал бұл әсер 6581 чипіндегі операциялық күшейткіштер ретінде жұмыс істейтін NMOS инверторларының экспоненциалдық жауабының жанама салдары деп саналады. Бұрмалану жолақты өту шығысының кері фазасымен тұрақтандырылады, бұл кіріс толқынының екі жартысында да бұрмалануға мүмкіндік береді. 8580 чипінің сүзгісі қайта жасалған және идеалды түрде жұмыс істейтіндей көрінеді. reSID-тің сызықтық сүзгілері 6581 эмуляциясының сызықтық емес сипатын эмуляциялауға тырыспайды, ал OptimiseLevel сияқты кейбір мүмкіндіктер сүзгі сапасын одан әрі төмендетеді, сүзгінің жоғарғы жиілігін 4 кГц-қа дейін шектейді (нағыз чиптер 6581 үшін кем дегенде 20 кГц және 8580 үшін 12 кГц орталық жиіліктерді көрсете алады). 6581 бұрмалануын модельдеуді қозғалтқышқа қосу үшін жұмыс жүргізілді, ол 2007 жылы Antti S. Lankila жасаған түзету ретінде басталды және libsidplayfp-дегі негізгі эмуляция қозғалтқышы ретінде енгізілген reSIDfp бұтағымен аяқталды. Соңғы ресми нұсқасы — 0.16, ол 2004 жылдың 11 маусымында шығарылды, ал reSID 1.0-дың алдын ала нұсқасы 2010 жылы VICE-ке енгізілді және содан бері басқалармен түзетілді. Алдын ала нұсқа 6581 моделі үшін монотонды емес D/A түрлендіргіштері мен сүзгілерінің нақты модельдерін ұсынады, онда SID конденсаторларының тіректерін үлгілеу үшін DAQ пайдаланылды, соның нәтижесінде күшейткіштің беру функциясы анықталды. Ол сонымен қатар толқын формасы және конверт генераторларына қатысты циклдық эмуляцияның жақсартылған түрлерін, атап айтқанда, ревекторленген фотосуреттерге негізделген жақсартуларды қамтиды. Кейіннен 8580 сүзгісін дұрыс модельдеуге және кейбір шектен тыс жағдайларда пайда болатын аздаған бұрмалану деңгейін эмуляциялауға алғашқы әрекет жасалды. 2022 жылы Dag Lem GitHub-та орналастырылған жаңа репозиторийде дамуға оралды, ол reSID MOS6581 / MOS8580 SID эмуляторының ресми көзі болуға арналған.