2. Ok, it's not xterm. What is the VNC server/client? I don't see on in the code. When you use replit, what will cause it to trigger a magic VNC client? What if I want to try a different VNC server to speed it up? When will the VNC close...there's a lot of magic that I as a developer can't really work with and doesn't seem to be documented.
AFAICT, this demo is equivalent to, "someone ran VICE in a VNC". I think that's the OP's point.
It isn't even clear what VNC (or what its performance profile is).
Re:C64
by 19wintersp on Wednesday November 24, 2021 @11:36AM
(#29331816)
It's "magic", yes. Replit is not for you to mess around with the VNC or anything, that directly defeats its purpose. Replit is not a framework for building a Replit-like system. Replit is effectively just a way for you to save and interact with VMs in the cloud from your browser.
The whole point of this demo is "someone ran VICE on Replit". The VNC is completely besides the point.
1. it is xterm, xterm.js to be sepcific
2. uses no-vnc. if you own the repl theres a way to set the vnc server password and access from your own client, but i forget how. probably on the replit docs/blog
I think the x64 isn't xterm. It's not clear what the client is (or what errors if throws if it breaks).
Re:C64
by 19wintersp on Wednesday November 24, 2021 @11:34AM
(#29331790)
Again, let me stress this: xterm.js is providing the console only. Any visual things, including the x64 window, are provided by the VNC connection, which is completely independent of the xterm console.
2. I'm almost 100% sure that it's xterm.js, though to be clear I say that it is used to render the console that you briefly see whilst it is compiling. The desktop - which is how you are seeing the emulator window - is provided by a VNC client.
3. Replit is largely closed-source, unfortunately. The protocol is just the way in which the Replit IDE and client communicate with the VMs on the backend. I've summarised some of the behaviour of the backend in my other comment, most of which is known through messages or posts from their engineers. By that summary, it means that the protocol is Protobuf-based. If you want to see a sample of the stuff it sends to the server, you can open a repl you own, append `?debug=1` to the end of the URL, and click the alien logo on the left.