<richlatticefae[m>
Everyone needs to start somewhere. But if an emulator is a popular path then it makes it much easer to teach. Especially since we can basically teach the same subject the same way for many new students and enthusiasts.
<galibert[m]>
richlatticefae: in theory yes. In practice, emulators for anything real tends to require understanding things at a rather low level. Unless you play lego box, I guess, which is sane given all the cores available everywhere
nelgau has quit [Read error: Connection reset by peer]
nelgau has joined #amaranth-lang
<mcc111[m]>
If someone was new to programming and decided they wanted to write an emulator, I'd tell them to implement a uxn interpreter.
<mcc111[m]>
That's a "fantasy console" / toy stack language machine that has a number of games and small useful productivity apps written in it, and it's designed to be easy to implement over all other considerations.
nelgau has quit [Ping timeout: 255 seconds]
<crzwdjk>
I did try to write an emulator when I was still relatively new to programming, though I didn't get very far. Basically I was making dosbox before dosbox actually existed. uxn seems more fun and easier to actually complete.
<crzwdjk>
Are there any FPGA implementations of uxn? Seems like an idea that people would try to have a go at.
<mcc111[m]>
One person on Mastodon is writing an Analogue Pocket version in PipelineC and it can already run several roms!
<mcc111[m]>
I was going to try, but now I've been beat to it, so maybe I'll try Pico-8 instead :P (this is probably doomed to failure but maybe I'll try.)
nelgau has joined #amaranth-lang
<crzwdjk>
Is Pico-8 written in Lua or is there some kind of bytecode?
nelgau has quit [Read error: Connection reset by peer]
nelgau has joined #amaranth-lang
<galibert[m]>
Chip-8 tends to be popular with emulation writing beginners
notgull has quit [Ping timeout: 255 seconds]
notgull has joined #amaranth-lang
<mcc111[m]>
<crzwdjk> "Is Pico-8 written in Lua or is..." <- I'm not actually sure. Lua does have a formal bytecode I think? But there's more than one lua standard and also I think PICO-8 slightly tweaks the lua standard (for example I think it does fixed-point math)
duskwuff[m] has joined #amaranth-lang
<duskwuff[m]>
probably worth mentioning that CHIP-8 has some opcodes which are unpleasant to implement in hardware (e.g. clear screen, draw sprite, wait for keypress)
<duskwuff[m]>
not that it can't be done, but it is awkward.
<galibert[m]>
yeah, chip-8 feels not really representative of emulation of existing hardware
<galibert[m]>
but as long as people have fun, who cares :-)
skipwich has quit [Ping timeout: 264 seconds]
<mcc111[m]>
<duskwuff[m]> "probably worth mentioning that..." <- Yeah, I was told by the person who's done most of the MiSTER->Pocket ports that pico-8's been looked at and it's probably not viable on the Cyclone V. Yet I daydream :P
<galibert[m]>
why, memory management?
<galibert[m]>
I'm surprised though, a riscv core fits without issue on a number of cyclonev
<galibert[m]>
and that can run lua (anything can run lua, almost)
<mcc111[m]>
well, his reasoning was that existing software implementations struggle to run on an ESP32, which is a higher clock rate than any Cyclone V softcpu will be
<galibert[m]>
well, cpus are very very bad at implementing interpreters
<mcc111[m]>
and i'm thinking "well maybe that can be countered by offloading some of the software implementation's work into hardware" but whether that works will be situational
<galibert[m]>
a cyclone V can, I think, easily run a 50-100MHz 6502. A software equivalent would need somewhere around 1-2GHz
<mcc111[m]>
galibert[m]: agg23 is like thiiiis [fingers close together gesture] close to releasing a basic general-purpose riscv core for the pocket and it sounds like it uses encouragingly little of the fpga area
<richlatticefae[m>
Yeah I get it. But when we pile on I want a drone flight controller on fpga, and I want a 3d printer on fpga, and I wand an automatic daytraiding platform on fpga. A video game doesn't seem that bad.
<duskwuff[m]>
CHIP-8 ≠ PICO-8, I know it's confusing
<duskwuff[m]>
CHIP-8 is a bytecode interpreter and is probably *possible* to implement on an FPGA, just annoying, PICO-8 is the one that's Lua and would probably be happier on a generic soft core
<galibert[m]>
cpus are bad at interpretation, really
josuah has joined #amaranth-lang
skipwich has joined #amaranth-lang
josuah has quit [Quit: nyaa~]
josuah has joined #amaranth-lang
<mcc111[m]>
<richlatticefae[m> "Yeah I get it. But when we..." <- Incidentally, I am probably going to make a theremin on the Analogue pocket's FPGA. This is not a joke, and unlike my other wild ideas, I think this one will actually work
<galibert[m]>
define theremin in that context?
<mcc111[m]>
it turns out that when the game boy cartridge pins have nothing plugged into them, they will flutter between 0 and 1 in a way influenced by nearby electric fields, such as that naturally emitted by the human body
<mcc111[m]>
* when the Pocket's game boy
<galibert[m]>
aren't they going to be swamped by the electric fields emitted by the pocket itself?
<richlatticefae[m>
You might be able to play the same game with the machx02 pico board. It has a set or touch pad built into the PCb
nelgau has quit [Read error: Connection reset by peer]