You can now set sprite and screen order priorities, and the included Layer 2 scrolling demo+source shows how to do this.
Full memory banking has been added, so you can now use the full 1MB of RAM that will come with the next! (well....subject to change, and esxDOS pinching some). Again the Layer 2 demo shows this function in the utils.asm file. The comments also show the general layout of memory, so you should take a look there before using the paging.
Layer 2 double buffering! You can now have 2 Layer 2 buffers and page in either to $0000-$3ffff using the new bit layout in port $123b - see the included read me. for more details. To flip buffers, you just need to swap register 18 and register 19 values around.
There are also several new Z80 opcodes to play with! My included assembler will assemble these correctly for use in the emulator. There are a few more to come.....
swapnib ED 23 A bits 7-4 swap with A bits 3-0 mul ED 30 multiply HL*DE = HLDE (no flags set) add hl,a ED 31 Add A to HL (no flags set) add de,a ED 32 Add A to DE (no flags set) add bc,a ED 33 Add A to BC (no flags set) outinb ED 90 out (c),(hl), hl++ ldix ED A4 As LDI, but if byte==A does not copy ldirx ED B4 As LDIR, but if byte==A does not copy lddx ED AC As LDD, but if byte==A does not copy, and DE is incremented lddrx ED BC As LDDR, but if byte==A does not copy
The file system will (should) also now accept '*' or '$' as setting the current drive. (untested)
I have also started to add some basic Audio, so the spectrum beeper now works.
Lastly.... the Sprite shape register has switched from port $55 to port $5B
Download: CSpect Emulator