OpenEmulator has fantastic monitor emulation if you want to get as close an experience as possible to the feel of the time.
I also ported it to Javascript, in an Observable notebook, with some attempt at explaining what was going on, here: https://observablehq.com/@zellyn/apple-ii-ntsc-emulation-ope...
This was my attempt to understand what the code was doing, but I went down the “I should learn signal processing” rabbit hole for a while and eventually got distracted.