Sunday, March 31, 2019

#CSpect 2.3.3

Quick update to fix 512 tiles and ULA ordering. Hardware has changed from what I had, and some in the dev team wanted the update. While I was at it... I've added a couple of other dev requests.

CSpect V2.3.3 changes

  • Fixed 512 tile mode. ULA Disabled bit has moved to Reg 0x68, bit 7
  • Border can now be transparent and will use the fallback colour
  • NEX format file expanded. Default 16k RAM bank at $C000 now set
  • NEX format file can now set the file handle on request
  • Added more window scaling options (-w1 to -w10 now available)
  • Updated 512 tile mode to use NextReg $6B (bits 0 and 1) properly
  • core version now set to 28 (2.0.28)
  • Layer 2 demo code cleaned up a bit - old macros removed

1 comment:

Ped7g said...

Hello Mike, nice to see those "small" fixes (probably taking great effort and dedication, thus small in quotes only), CSpect is coming along nicely.

Although I can still see few kinks here and there, the ones I'm aware of:
* some next-regs read as zero before first write into them (the emulation value must be non-zero, as they generally work as expected, like memory 8k pages are mapped in normally, but MMU0..MMU7 reports 0:0:0:0:0:0:0:0 instead of ff:ff:10:11:4:5:0:1, etc...)
* Z80N instructions: `ADD rr,A` modifies flags, `LDWS` does not produce same flags as `INC D`, `PUSH imm16` is wrong-endian, `BSLA DE,B` does use only 4 bits of `B` instead of 5.
* Z80: `DI, HALT` doesn't "freeze" the machine, upon next INT signal the `HALT` is finished, although the interrupt handler is not executed.
* Timex HiColor 8x1 mode - there's something wrong about transparency rendering (I think non-transparent data from previous lines are drawn instead)
* Timex HiRes 512x192 - now with 2.3.x versions simply full black
* ULA mode - the flash attribute flips attribute bits, but HW flips pixel bits, the difference is visible only with custom palette where "paper x" is not identical with "ink x", then CSpect does flash with "paper x^7, ink x^7" while HW does flash with original "paper x, ink x", but pixel_data^255.

And obviously the whole relative sprites are missing, but I guess you are waiting for the spec to stabilize + it will take lot of time to develop...