How?
- It's recommended to run it in Pico-8 with "-displays_x 2 -displays_y 2".
- If you don't (say, if you run it in the BBS), you'd have to move the mouse around to see the whole window
-
In particular, move the mouse to the bottom-left corner to see the Spectrum prompt
- You can use the keyboard to type stuff
- The symbol key is Tab.
- ZX Spectrum keyboard layout: http://slady.net/Sinclair-ZX-Spectrum-keyboard/layout/
- ZX Spectrum user manual: https://worldofspectrum.org/ZXBasicManual/
-
Non-spectrum keys like punctuation/backspace automatically press the right shift/symbol combination
- To load a tape:
- First type 'j' for load.
- Then type double-quotes (") twice. On the BBS or on non-standard keyboard layouts, you're better off pressing Tab+P to get double-quotes. (On BBS, '~' might also work - looks like an emscripten bug).
- Now, press enter.
- Only after that, drag a tape (in .tap or .tzx format) to Pico-8.
-
Reset Pico-8 if you want to drag another tape.
- By default, the arrow keys move the cursor. You can instead have them use the Kempston joystick or the Sinclair joysticks in the pause menu.
What?
- It's a ZX Spectrum emulator
- It's quite slow. 2-5 times slower than the real thing.
- I don't know if sound is broken or just too slow to be ok.
-
Tapes with copy protection won't work.
- By default, tapes load super-quick if using the loading routines in the ROM. (Can be disabled in pause menu)
-
By default, the CPU is underclocked to maintain responsiveness (since pico-8 can't keep up). (Can be disabled in pause menu)
- The included Spectrum ROM is copyrighted by Amstrad, who have allowed its use by emulators.
Wherefore?
-
The source code won't bite you if you read it. (But it won't lick you, either)
- Some highlights from the source:
- Using the pico-8 memory for the z80 registers, to get the "16 bit reg = two 8 bit regs" behaviour for free(-ish).
- Using fillp + rectfill to draw each 4x4 block on the screen
- Only drawing modified (or blinking) areas of the vram.
- Pre-calculating the flag results of every single addition and add-with-carry (subtraction is easily derived from that)
[Please log in to post a comment]