Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2023: we managed to replicate this project at the Slovenian Computer History Museum #3

Open
markostamcar opened this issue Apr 25, 2023 · 2 comments

Comments

@markostamcar
Copy link

markostamcar commented Apr 25, 2023

fb_render_test

Here are the photos of our (mine & @bertronika's) setup and results so far (RPi desktop shows and one can use it, also the dpi/fb_render_test works; have not tested netvid/streaming/dithering yet!):
https://imgur.com/a/e6RcodQ

Hardware

  • To buy/obtain: Raspberry Pi 3, 2x SN74AHCT125N chip, 6 resistors, protoboard, jumper wires
  • Can use jumper wires to directly interface the male CGA connector
  • We will provide schematics ASAP!
  • Our goal is to run a Dosbox application just like it would show on the original IBM PC (or PC XT) with CGA graphics

Software
Complete instructions for fresh RPi install + latest Chrome + VirtualXT emulator in browser.
Since the resolution is 1920x200, normal Dosbox software doesn't properly render, thus the easiest "hack" for this was to use an emulator in browser and stretch it to fill screen. We use old Raspbian version from the time of this project to avoid incompatibilities.

sudo apt update (apt upgrade not needed if just doing basic stuff!)
sudo apt install snapd
sudo reboot
sudo snap install core
sudo snap install chromium
git clone https://github.com/trylle/ibm515x
cd ibm515x/configs
dtc -@ -I dts -O dtb -o cga.dtbo cga.dts
sudo cp cga.dtbo /boot/overlays/
  • Edit ibm515x/configs/config.txt and add line avoid_warnings=1
    sudo cp config.txt /boot

  • Edit ibm515x/configs/cmdline.txt and change root=/dev/mmcblk0p7 to root=/dev/mmcblk0p2
    sudo cp cmdline.txt /boot

  • Edit /etc/lightdm/lightdm.conf and set under [Seat:*] (not before!):
    xserver-command=X -s 0 -p 0 -dpms -nocursor

sudo apt install apache2

  • Copy virtualxt to /var/www/html/virtualxt (see section below!)
  • Add line to /etc/mime.types: application/wasm wasm
  • Remove the only line in /etc/ld.so.preload
  • Create /home/pi/virtualxt.sh with contents, then do chmod +x virtualxt.sh:
    /snap/bin/chromium --kiosk --app="http://localhost/virtualxt/?activity=0&touch=0"
  • Replace file /home/pi/.config/lxsession/LXDE-pi/autostart contents with this line:
    /home/pi/virtualxt.sh

sudo reboot

  • To build project binaries (OPTIONAL - we did NOT use this for our project and couldn't get streaming to work):
git clone https://github.com/trylle/ibm515x
cd ibm515x/
git clone https://github.com/trylle/netvid
sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev libeigen3-dev
cmake .
make

VirtualXT

https://app.virtualxt.org/index.html
https://app.virtualxt.org/freedos_web_hd.img
https://app.virtualxt.org/script.js
https://app.virtualxt.org/virtualxt.wasm
  • In index.html change
    <body style="background-color:black;">
    to
    <body style="background-color:black; margin:0px; padding:0px; overflow:hidden;">

  • In script.js change
    canvas.style.setProperty("transform", "matrix(" + xScale + ",0,0," + (xScale * yScale) + "," + transX + ",0)");
    to
    canvas.style.setProperty("scale", (document.body.clientWidth / width) + " " + (window.innerHeight / height));

  • Edit the hard disk image (freedos_web_hd.img) as you see fit.
    Tip: DiskExplorer works great for editing - use the profile "vmware plain disk"

@Halophilus
Copy link

Do you still have the circuit schematics available?

@markostamcar
Copy link
Author

Sorry, we promised it but not delivered (yet) :(

Here are some photos of the circuit: https://imgur.com/a/e6RcodQ
And some more information here: https://web.archive.org/web/20161206135631/http://www.paradigmlift.net/projects/teensy_cga.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants