My goodness -- this is impressive. I've just started dabbling in software development, and I can only imagine the time it must have taken to write this. A real labor of 'hard soft' love!
Dumb question, when you first load it are you able to just push play? Guess don't see if it needs a battery or something to run. Maybe assumes rails have power.
Thanks everyone for all your positive comments and feedback, I was not expecting this much attention. Sorry for the problems with browser compatibility, the simulation kernel needs thread support, and this is fairly recent in WebAssembly.
I started this last April and spent many evenings tinkering away "on my project". Trying to chase Ben Eaters 6502 series as he released new videos each month or so gave me the motivation to try to catch him up with my digital twin version. I guess I was thinking it'd be cool to allow anyone to follow Ben's project armed only with another browser tab sitting alongside youtube.
Many thanks to all the authors of the OSS I've used, especially Dear ImGui, ImGuiColorTextEdit, cc65 & floooh/chips headers. The whole thing is done in C/C++ and I build and debug natively on a Raspberry Pi with Visual Code gcc/g++ before running through Emscripten and uploading to the web. SystemC is the simulation engine, the hardware models include a bit of timing to try to get close to the physical hardware behavior. I wrapped SystemC around the floooh/chips.
Wow. This is amazing! I'm building this using real breadboards and am at the part where I'm wiring up the LEDs to the 6522. While I find the act of stripping wires deeply satisfying, I love how much quicker someone can get going using this, as well as how much more accessible you've made this - it's a really nice intermediate step between just watching the videos and using the physical kit. Nicely done!
In this case, Firefox ESR (Extended Support Release) is being used so security vulnerabilities are being fixed. It's not the newest stable release, however it's also supported by Mozilla.
This is brilliant. Bookmarked for when I have time to play with it properly. I particularly love being able to step through the assembly code whilst it's running.
Great work! This is interesting, but perhaps even more useful might be a virtual PCB so that one could irritate on the design in-browser and then just get the PCB made with a click or two. And of course a bigger library of components (ESP32!) or the ability to create a component simulation in plain JS.
You can easily view the webassembly file as part of the website source, so what you're saying is a bit misleading IMO. I don't see this being different than minified Javascript.
Isn’t that no different than saying, “you can disassemble an exe, so you can still see what it’s doing!” While not untrue, it’s not very helpful.
Although, webassembly is closer to .NET’s CIL. It’s still a form of assembly, but it’s a bit higher level which makes decompiling a bit easier than, say, an optimized (-O3) desktop program.
Well JavaScript isn't going to see any more leaps in performance, and people write slower JavaScript than they wrote yesterday, on average, so it must be remediated somehow.
And until a lot of people realize that most web technologies are fundamentally bad, things are not going to get better.
We are not going to be using this same web tech in 300 years, almost certainly, so at some point it's going to change. It won't be soon, because people love tradition, even when it causes them pain.
> people write slower JavaScript than they wrote yesterday, on average
This is only true because computers are faster than they were yesterday, on average. People don't optimize code to some arbitrary absolute level, they optimize code that's slow on their computer.
How is this scarier than any other software you use but haven't seen the source code to? I don't understand. Unless you've never used software your ENTIRE LIFE, and no one has used any software on your behalf, you have been subject to closed source software.
I'm not saying that this ideal, or even good. I'm asking why it's only scary NOW.
> How is this scarier than any other software you
> use but haven't seen the source code to?
The only code on my computer that I do not have the source code to are the JetBrains IDEs and Kerbal Space Program. With both of those companies I have a financial relationship, and both those companies earned my trust, and their software I have to download and install explicitly.
Contrast with webassembly where there is no trust between the entity running the code on my computer, no realistic way for the average user to consent to having code run on their system, and no reason for them to earn trust.
I strongly disagree and despise this kind of thinking. Don't get me wrong, OSS is awesome for tooling (shared by many creative professionals) but not for end products. An architect's tools can be open source, but an architect's plan is their own creative output that should not be open source if we make this analogy. Architects can get together and build better tooling for the benefit of all architects - OSS shines here.
This project is a creative output. Stop for a second with entitlement to the source code and just enjoy for what it is and how amazing this project is.
Do you go to museums and ask for what color palette the artist used? It's missing the point, isn't it?
Tejotron, how did you build this? Is it Rust compiled to WebAssembly? The code editor is quite well-made. Is it completely hand-rolled? Curious to hear more!
A lot of standalone apps these days are just a webpage bundled with a web browser (e.g. discord, brackets text editor). Makes porting a non-issue.
So you could download the page and go through this process if you wanted to.
Check out Tinkercad. I don't think the program simulator in it is as cool or as in-depth, but you can program a virtual Arduino with it and hook up wires to a breadboard along with many other common components and have some outputs too.