How exactly did you set individual pixels on an unmodified ZX81 without extra hardware? As far as I know, that’s not possible, even when rewriting the screen driver. The font came from ROM, and while you could do things like switch where in ROM the font starts with every scan line, that only gave you “Pseudo HiRes” capabilities where not every combination was possible, see e.g. https://perfectlynormalsite.com/zxhires.html
Was few ways and sure changing the ROM, but with RAMpack you had the space to redo the interupt controlling the display and probebly best demoed with https://www.youtube.com/watch?v=EjA-qlDv5Xw Though for this they just pointed the character map to some RAM to do UDG's for the effect.
I'd add though to do true resolution you kinda had to update things a lot of times and why the code I did at the time was in effect doing 8x8 more work - hence was about 2 mins just to draw vertical line. Just not enough processing power to ever be of use. Though the remap the interupt into RAM and char set was good and lost no performance and indeed you would expect it to be slightly faster with the old RAM vs ROM access times, but kinda mute back in those days of when RAM was faster than the CPU's.
Yeah but that was my point, you at the very least need a RAMpack, and often one with modifications. It is not just for having the space to have the custom display code, you actually need the RAMpack for the data lines on the bus. Without a RAMpack, the ULA would fetch the character rows from ROM and ROM only, no way around it. And not all RAMpacks worked for this, a lot (most?) had to be further modified in hardware.
The original device without RAMpack did not let you set individual pixels at all (and even with a suitable/modified RAMpack it was a giant hack obviously).
I got curious whether Manic Miner actually found a way to do actual hires without added hardware, but this answer claims it's also (just) pseudo hires... although a rather impressive example of it, I wasn't sure from the video you posted:
https://retrocomputing.stackexchange.com/questions/6134/how-...