Similar project, gate level emulation of NES CPU+PPU by the Nesticle author Icer Addis.
An entire world in a scanline
ColdStream 1 days ago [-]
It is a fun way to benchmark your system. I managed to get 4.1hz on my 13th gen i5 work laptop.
Let's see an M-series chip blow that out of the water. ;)
EDIT - It was 4.1Hz in advance mode. Actually runs at between 22Hz and 44hz depending on each time I run it. Odd to have such a wide performance variation. I will just blame Windows and some power management setting/thermal throttling.
flenserboy 1 days ago [-]
M4 Max, Brave — 93Hz highest, usually around 90Hz. On Advanced it started at 22Hz & steadily dropped from there into the single digits as it ran. Safari held around 62.xHz. On Advanced it started at 40Hz & also kept dropping.
jandrese 1 days ago [-]
My very old i5-3570K on Firefox 153 is running this at 17.5Hz. I'm not sure why a much newer chip would be dramatically slower.
AnnikaL 1 days ago [-]
I got 22-33Hz on an AMD Ryzen 7640U on power-save mode and 50-55Hz on performance mode.
djmips 1 days ago [-]
I'm seeing 34 Hz on a Ryzen 7 3600X 3.6 Ghz with Chrome.
47 Hz in Firefox.
wvenable 1 days ago [-]
70hz to 75hz on 12th Gen Core i7-12700
Get about 10 more hz in Firefox than in Chrome which was unexpected.
va3ndf 1 days ago [-]
88Hz on the M4 Pro
andrehacker 1 days ago [-]
I concur with that number for Chrome, then
70 Hz with Firefox
62 Hz with Safari
ColdStream 1 days ago [-]
There it is, about 4 times faster than my machine. The single core performance of the M-series is something special.
andrehacker 1 days ago [-]
So, yeah, this is wonderful since the ARM architecture (Acorn Risc Machine) is arguably derived from the 6502 by Sophie Wilkins and Steve Furber at Acorn Computers.
ThrowawayTestr 1 days ago [-]
60Hz on my phone
elzbardico 1 days ago [-]
85Hz M3 Max
phoghed 1 days ago [-]
62Hz on an iPhone 15 Pro
ErroneousBosh 18 hours ago [-]
Linux, Core i7-8700, Firefox, GTX1650, nothing special, and I'm getting 45-55Hz out of it.
So you're probably not far off. I can't imagine more modern chips than mine would run it significantly faster, none of the "tweaks" would help here.
esikich 1 days ago [-]
Pixel 6 - 40-50Hz
p808 1 days ago [-]
[dead]
phs318u 24 hours ago [-]
High 60's to 70 on a Firefox|Fedora|Ryzen AI 9 HX.
flohofwoe 23 hours ago [-]
Shameless plug: I wrote a 'remix' a couple of years ago over a Christmas break using WASM+WebGL+DearImGui with better rendering performance, integrated assembler and a couple visualization tools (using the visual6502 team's original reverse engineered netlist data, and https://github.com/mist64/perfect6502 as simulation loop):
(the simulation generally runs throttled to 1 half-clock-cycle per frame, so don't use it as any sort of benchmark)
wk_end 13 hours ago [-]
The link to Perfect6502 is interesting. It says that it supposedly gets speeds of 1/30th of 1MHz - i.e. ~30KHz - on high-end 2025 CPUs. Which is very slow of course, but still ~1000x faster than what people are reporting in this thread.
Of course it's in JS rather than C, but V8 is really good, well within an order of magnitude - not three - of native, at least with well-written code. I profiled the original Visual6502 and at a glance it sure does look like it's losing a ton of performance to rendering (so good call there).
I have to wonder what the limit is. Even Perfect6502 looks like it's all single-threaded and CPU-driven, which really isn't making the most of modern machines. But I don't know if this is a task that could be efficiently split across cores or dispatched to the GPU (and I can't even begin to know whether SIMD might be useful); of course hardware itself is fundamentally parallel, but the synchronization might kill you?
Similar project, gate level emulation of NES CPU+PPU by the Nesticle author Icer Addis.
An entire world in a scanline
Let's see an M-series chip blow that out of the water. ;)
EDIT - It was 4.1Hz in advance mode. Actually runs at between 22Hz and 44hz depending on each time I run it. Odd to have such a wide performance variation. I will just blame Windows and some power management setting/thermal throttling.
Get about 10 more hz in Firefox than in Chrome which was unexpected.
So you're probably not far off. I can't imagine more modern chips than mine would run it significantly faster, none of the "tweaks" would help here.
- 6502: https://floooh.github.io/visual6502remix/
- Z80: https://floooh.github.io/visualz80remix/
- 2A03 (this was contributed): https://floooh.github.io/visual2a03remix/
- source code: https://github.com/floooh/v6502r
(the simulation generally runs throttled to 1 half-clock-cycle per frame, so don't use it as any sort of benchmark)
Of course it's in JS rather than C, but V8 is really good, well within an order of magnitude - not three - of native, at least with well-written code. I profiled the original Visual6502 and at a glance it sure does look like it's losing a ton of performance to rendering (so good call there).
I have to wonder what the limit is. Even Perfect6502 looks like it's all single-threaded and CPU-driven, which really isn't making the most of modern machines. But I don't know if this is a task that could be efficiently split across cores or dispatched to the GPU (and I can't even begin to know whether SIMD might be useful); of course hardware itself is fundamentally parallel, but the synchronization might kill you?
youtube.com/watch?si=XuNgnVc4rf86nIgA&t=42
it should'be available here to play online too (but haven't tried it)
https://archive.org/details/257_Educational_Software_The_650...
https://archive.org/details/riag_004_051_-_MECC_Assembly_Lan...
Which was awesome as a kid to finally see what was "going on" inside there.