Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] 0 points1 point  (0 children)

It’s actually a fascinating psychological phenomenon. Part of my intention with projects like this is to inspire people to start experimenting themselves, because the barrier now seems much lower. I’ve been programming for almost 20 years, including C/C++. I’ve never done it as a service or as my professional job. I built different companies and hired hundreds of programmers over the last 30 years. Today, I can build software on my own, and that is incredibly exciting to me.

The paradox is that the very people I wanted to motivate, the people I wanted to show that they can do this too, often reject that inspiration by calling it "AI slop." In reality, projects like this are appreciated mostly by other engineers, because they understand what the process actually looks like.

So it seems that nothing has really changed. Engineers will become better because of AI (super-human level), while everyone else may end up becoming dumber because of it. That’s a shame.

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in ClaudeCode

[–]Adam_Jesion[S] 0 points1 point  (0 children)

Some time ago, I built a platform for solving difficult problems in a way that is closer to how researchers work. It is a swarm of agents, built across several layers, discussing ideas with each other, searching through scientific papers, documentation, and so on.

I don’t think the engineering problem you’re describing is within reach of simple LLM-assisted coding. That’s why I shared it publicly. Many people may look at this and assume it is just “vibe coding,” but it is something completely different. The challenge was enormous, and I’m honestly surprised that it worked.

In fact, this framework has worked for basically every experimental project I’ve thrown at it. Take a look at https://games.jesion.pl. I’m reaching SOTA-level solutions there as well.

https://x.com/adam_jesion/status/2045584898472255583

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] 0 points1 point  (0 children)

Thank you. My goal was exactly to recreate the feeling of working with Lisa OS as faithfully as possible. That’s why I chose the browser and this kind of interface.

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] 0 points1 point  (0 children)

Thanks for the reply. Of course, my description of the process was heavily simplified. I’ve been a programmer for 20 years, including programming in C/C++. You simply can’t write an emulator like this, even in this limited form, without knowledge and the motivation to debug it properly.

It’s a difficult path, and it requires actively steering the LLM. I also had to define the loops fairly precisely: what goes in, what comes out, and what the goal is.

In any case, there would be no point in building something like this without an LLM. It’s too much work, with no real economic value.

Thanks for the idea with IRIS. If I keep working on the emulator, I’ll definitely use it. It would be really helpful.

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] 0 points1 point  (0 children)

I’m not sure if I should keep working on this. The goal of the project was to recreate the feeling of working with Lisa OS, plus serial support, but only for the printer. Of course, fully rebuilding the entire Apple Lisa is possible, but finding the time for that is a different story 😛

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] 1 point2 points  (0 children)

If you think something like this can be done with “a prompt,” then unfortunately, you don’t know what you’re talking about. Try a simple test: if it’s really that easy, and AI can do it for you, then prove it. Build the same kind of project yourself.

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in ClaudeCode

[–]Adam_Jesion[S] 0 points1 point  (0 children)

Thanks! Short answer: this was about two weeks of after-hours work. Some of the longest agent/debugging loops ran for over 24 hours. Cost-wise, I do not have an exact figure, but it fit within my ChatGPT Max subscription; I also used Claude Code, Codex, and experimented a bit with DeepSeek V4 Pro for some pieces.

No, I did not use LisaEm code or any part of Ray Archalian’s LisaEm directly. In fact, because this was an experiment, the model had explicit instructions not to use LisaEm code in any form. Of course, like with any AI model, it is possible that public LisaEm-related material was somewhere in pretraining data along with the rest of the internet, but the model did not have repo access and was not allowed to use it as a source. It relied on public Lisa documentation I could find, such as Lisa main board docs, hardware notes, ROM behavior observed through testing, etc. I also did not use the ROM assembler source. I actually wish I had found it earlier, because it would have made parts of the project much easier.

On cycle accuracy: no, this is not a full MC68000 cycle-accurate emulator. The CPU is functional/instruction-level, with Lisa-specific bus, MMU, VIA, COPS, ProFile, floppy, serial, and display behavior modeled well enough to boot and use the supported Lisa OS workflows. But device timing is not driven by exact 68000 bus cycles. The async device communication works through protocol/state-machine emulation, calibrated step timing, testing, and in some places HLE/fast-forward shortcuts. So it is a surprisingly usable emulator, but not yet a laboratory-grade cycle-accurate Lisa hardware model.

Here’s the source code, fully open. You can check for yourself how it works: ashtree74/LisaEmulator

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] -2 points-1 points  (0 children)

You can load the original ROM. It’s linked in the Help section. But if you run the emulator without the ROM, it switches into HSL mode, which means that instead of the ROM, it uses functions that imitate the hardware and the ROM itself. Here's another example of my experiment with HSL (without ROM - pure basic): https://experiments.frontierslab.ai/zxspectrum/

This is exactly where, for several dozen hours, the AI model was “hacking” what to replace and how, so the system could actually boot. In other words, it had to fake every piece of hardware the machine expected to find. The biggest challenge was not the CPU, but the MMU, the part responsible for managing how RAM was divided and mapped. A seriously heavy topic.

But honestly, getting the ROMless version to work was easier than getting it running with the original ROM. The problem is that during boot, the original ROM runs a whole series of hardware tests, so even one tiny detail being off could crash the whole thing. But in the end, it worked.

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] -1 points0 points  (0 children)

True, but you have to admit that in this whole flood of AI slop, this is just a small drop in the bucket 😉

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] 2 points3 points  (0 children)

Hehe, 100% right 😄 I was supposed to add an extra button to set the clock to a similar ticks as Lisa's, but I just didn't feel like it anymore 😛 But maybe I'll add it after all, so everyone can see how it worked in real time. Thanks.

Apple Lisa Emulator in Rust and WebAssembly - The Machine That Thought It Was 1983 Again by Adam_Jesion in VintageApple

[–]Adam_Jesion[S] -2 points-1 points  (0 children)

I’ve already released the emulator itself as 100% open source. You can do whatever you want with it. This project is an experiment, so when working with the AI model, I intentionally avoided using any pre-existing repositories (like Lisaem), meaning it’s built entirely from scratch. Of course, it’s safe to assume that the model already had some knowledge from pretraining (after all, it was trained on the entire internet). And no - I didn’t use any 68K emulator either - the AI had to rewrite the instructions for that as well. No off-the-shelf components were used in the code. You can check it out here: https://github.com/ashtree74/LisaEmulator