Repositori ini berisi kode dan konfigurasi untuk merender aliran video UDP (netvid) ke monitor yang kompatibel dengan IBM 5153 melalui Raspberry Pi. Kait mentah tersedia untuk RetroArch dan Open Broadcaster Software untuk menyediakan streaming video.
Sinyal video disediakan melalui DPI (Parallel Display Interface), menggunakan 4 bit warna (RGBI) dan 2 sinyal sinkronisasi. Karena jam piksel RPi yang pilih-pilih, jam piksel dan pengaturan waktu yang relevan harus ditingkatkan tiga kali lipat. Oleh karena itu, resolusi framebuffer sebenarnya adalah 1920x200.
Repositori ini juga menyertakan antarmuka GPIO, yang tidak pernah selesai, setelah analisis osiloskop mengungkapkan masalah waktu (diduga penyebab utama: polling USB).
Papan adaptor dan pengaturan waktunya sebenarnya didasarkan pada karya sebelumnya oleh Benjamin Gould. Saya menambahkan beberapa resistor untuk membatasi penarikan arus; murni tindakan pencegahan. Pada monitor saya, saya juga perlu menyesuaikan beranda vertikal dan horizontal untuk menghasilkan gambar terpusat.
File konfigurasi, cmdline, dan overlay pohon perangkat yang diperlukan yang sesuai untuk Raspberry Pi 3 telah ditambahkan ke repositori ini.
Adaptor dapat merender palet CGA 16 warna lengkap hingga resolusi 640x200.
Dithering temporal didukung untuk memperluas palet menjadi 136 warna. Gambar di atas menunjukkan gabungan dua eksposur 60 Hz.
Aplikasi downsample menyediakan pemrosesan yang diperlukan untuk mengonversi aliran video RGB 16-bit/32-bit (seperti yang disediakan oleh RetroArch/OBS) menjadi aliran video 4-bit yang kompatibel dengan CGA. Mendukung downsampling warna tetangga terdekat (untuk merender output CGA/EGA konvensional), dithering temporal dan bayer, peningkatan kontras lokal, dan penyesuaian tingkat hitam.
Baris perintah:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm nearest
Baris perintah:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,2
Baris perintah:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,2 --local-contrast-gain .25 --local-contrast-stddev 32
Peningkatan kontras lokal mencoba memaksimalkan rentang luminositas untuk berbagai bagian gambar. Ini berguna ketika Anda terbatas pada palet yang memiliki sedikit gradasi namun memiliki jangkauan yang luas, seperti pada IBM5153. Berfungsi dengan baik jika input video tidak terdiri dari area seragam yang luas, misalnya kartun.
Baris perintah:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,2 --local-contrast-gain .25 --local-contrast-stddev 32 --temporal-dither client --staggered-temporal-dithering
Pergantian warna piksel di setiap bingkai memberikan tampilan lebih banyak warna, namun mengorbankan kedipan.
Baris perintah:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,4 --local-contrast-gain .25 --local-contrast-stddev 32 --temporal-dither client --staggered-temporal-dithering
Contoh ini menggunakan masukan 640x200 dan pola bayer non-persegi untuk mengakomodasi rasio aspek piksel.