C64
replit.com
replit.com
I can see the source code when I click on "show files", but I cannot edit anything, I think I'm obviously missing something here... how is that an IDE? Or is the IDE running inside VICE and I can load it somehow?
Can someone enlighten me?
(1) How is the information is getting to the frontend?
(2) How is it being rendered when it gets there?
(3) What is being run on the box?
2. The console is rendered with xterm.js, the desktop is a VNC client.
3. Not sure what you mean
2. I doubt this is xterm.js. The font and text to not appear to be aligned columns/rows like an xterm session. (Compare the outer emulator font sizing and the inner x64 font sizing.)
3. The croisis protocol says, "x protobuf for vague 1-sentence description", but this does not actually specify the behavior of the backend--and you can't read the source.
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.
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).
The whole point of this demo is "someone ran VICE on Replit". The VNC is completely besides the point.
> "IDE" of sorts...*effectively* a disk image...a VM (what kind?)
1. The option menu on the outer emulator window (File, Edit, Snapshot, Settings) is some kind of retro operation system (not the inner x64, and not ubuntu). What is it? Is the code I'm writing being executed in this operating system?
2. What VNC program is running a retro operating system in a docker container and why is it so slow?
3. What is the VNC client (security!) and what can I, as a developer, do when things like the VNC client dimensions go wrong, as they do in this example?
The problem with developing on a closed-source code-running platform is that in the end, there will be an error at a layer of abstraction you don't have access to. You've done an excellent job of piecing it together from the blog posts and "?debug=1" hack, but they need to make your job easier.
2. To repeat, the VNC program is not running the retro OS, that is the emulator. The emulator is a program which runs on Linux and opens a window to show you the emulated computer's screen. That program is being run on Replit, and you can see the screen because it is being connected to you via VNC. I can't answer for why it's slow; that could be the repl, the VNC connection or the emulator itself.
3. The VNC client is no-vnc (I think) and is encrypted. If there's a bug with it, report it to Replit.
The whole point of Replit is to abstract all of this; at the end of the day it just gives you a browser interface to a VM in the cloud, with a filesystem you can save to between sessions. You just interact with it as you would any other Linux system, as all of these layers of abstraction you don't have access to are just providing this simple interface. You don't even interact with anything outside, so there is absolutely no point in using it when developing anything other than for the Replit system itself.
Here's an alternative though that's a bit closer to an "IDE experience":
https://8bitworkshop.com/v3.8.0/?platform=c64&file=hello.das...
Running it on Replit I had to answer a multi-stage CAPTCHA identifying all trucks and then it was so slow I couldn't even type without holding the keys down for several seconds before they would register.
- Automatically do the LOAD "CPROG",8 and RUN
- Even better. Load the CPROG directly into the memory image and bypass the drive load completely
- Optimize Emulator startup
If it were sending keystrokes to a box, you should expect latency <100ms and no bandwidth limitations. It must be a problem with the emulation server. Without knowing more, we can't really know.
POKE 1,52
Works as expected :)But it’s a good idea — will make it a template!
It's not clear to me what code I'm running.
1. What is the secure (?) frontend? Is this xterm?
2. What is the outer GUI operating system? How can I interact with it?
Even for hobbies, I don't like building on something I don't understand.