That's a work of art. I had a lot of fun with these emulators in recent years. Some time ago I reworked the Spectrum emulator to work with the RP2040: https://github.com/antirez/zx2040
One of the incredible things of these emulators is that the chips are emulated in a completely modular and isolated way, and the interface to take everything together are the pins! Yes, the logical state of the pins in the emulated chip, which is awesome and really shows how each of those machines used to work.
Flooooh's code is also very easy to read so it's a pretty good documentation for these old systems especially as the (some?) emulators are cycle accurate[0]
It hits the spot for me in terms of features, small-size and ease of use/embedding.
Every other library has way too much I don't need and way too little that I do.
It was also a fantastic code reference for me, when I was porting game code between platforms. It has all the answers I need in it, and I know how to navigate it quite well after those years. If one studies it enough it has enough material for a few reference books.
The way it uses pin state (number passed as argument / result) for communicating with the outside world is genius. This way it very clearly matches what happens in hardware each cycle. Typical alternative is that the "cpu" calls read/write on the memory/peripherals - which gets tricky when the exact read/write cycle of the multi-cycle instruction matters for accuracy (e.g. racing the CRT beam).
I wonder if similar approach could realistically be applied to slightly newer generation hardware like GBA with ARM7TDMI.
Nice to see the Acorn Atom, one of the first computers I wrote software for and also the first I wrote an emulater for under Solaris using X11 in the nineties.
The Acorn Atom was the first real computer I had after the Texas TI59. It was later replaced with a BBC model B (and later again with an Archimedes). Sadly I got rid of the Atom when I moved out all those years ago, but the Beeb and the Arch is safely stored at the loft in my current house.
Are there anywhere you can get any kind of programs/games that can be loaded in the Atom emulator? All my old cassette tapes are gone many years ago.
man i get super into these old emulator projects - the fact folks make them work across platforms blows my mind. ever feel like going back and rebuilding something from scratch just for the challenge?
Lots of interesting emulators and variants of old games. It'd be nice to have a TLDR for your emulators. Looked at your old blog postings, you've had a great career. I started a few years after you, I wish I'd written continuing blogs like yours...
That's a work of art. I had a lot of fun with these emulators in recent years. Some time ago I reworked the Spectrum emulator to work with the RP2040: https://github.com/antirez/zx2040
One of the incredible things of these emulators is that the chips are emulated in a completely modular and isolated way, and the interface to take everything together are the pins! Yes, the logical state of the pins in the emulated chip, which is awesome and really shows how each of those machines used to work.
Flooooh's code is also very easy to read so it's a pretty good documentation for these old systems especially as the (some?) emulators are cycle accurate[0]
[0]: https://floooh.github.io/2019/12/13/cycle-stepped-6502.html
Floooh is amazing.
One of my favourite libraries ever is Sokol, which is used for those emulators AFAIR:
https://github.com/floooh/sokol
It hits the spot for me in terms of features, small-size and ease of use/embedding.
Every other library has way too much I don't need and way too little that I do.
It was also a fantastic code reference for me, when I was porting game code between platforms. It has all the answers I need in it, and I know how to navigate it quite well after those years. If one studies it enough it has enough material for a few reference books.
The way it uses pin state (number passed as argument / result) for communicating with the outside world is genius. This way it very clearly matches what happens in hardware each cycle. Typical alternative is that the "cpu" calls read/write on the memory/peripherals - which gets tricky when the exact read/write cycle of the multi-cycle instruction matters for accuracy (e.g. racing the CRT beam).
I wonder if similar approach could realistically be applied to slightly newer generation hardware like GBA with ARM7TDMI.
Pretty cool .. one thing, it needs more Oric:
https://oric.games/
Thanks! Reliving childhood memories
Live some new adulthood ones, too!
https://gkanold.wixsite.com/homeputerium/copy-of-games-list-...
Nice to see the Acorn Atom, one of the first computers I wrote software for and also the first I wrote an emulater for under Solaris using X11 in the nineties.
The Acorn Atom was the first real computer I had after the Texas TI59. It was later replaced with a BBC model B (and later again with an Archimedes). Sadly I got rid of the Atom when I moved out all those years ago, but the Beeb and the Arch is safely stored at the loft in my current house. Are there anywhere you can get any kind of programs/games that can be loaded in the Atom emulator? All my old cassette tapes are gone many years ago.
And the KC series, a series of East German computers that people on the other side of the Iron Curtain probably have never heard of.
man i get super into these old emulator projects - the fact folks make them work across platforms blows my mind. ever feel like going back and rebuilding something from scratch just for the challenge?
Lots of interesting emulators and variants of old games. It'd be nice to have a TLDR for your emulators. Looked at your old blog postings, you've had a great career. I started a few years after you, I wish I'd written continuing blogs like yours...
Great. Tbh just to maintain multi platforms and ensure some works are hard work for hobbyists…
Now this is a great use of WebAssembly.
Late to the party, but the 'proper' link is:
https://floooh.github.io/tiny8bit/
(the post's link is https://floooh.github.io/tiny8bit-preview/ which I had put up at some point in the past to test some new features, but it's very outdated by now).
If you email hn@ycombinator.com I am sure they'll sort it out
Good idea, I just did that :)
Changed from https://floooh.github.io/tiny8bit-preview/ now. Thanks!