Difference between revisions of "ZEsarUX:known bugs"

From SpecNext official Wiki
Jump to: navigation, search
(adding few more new bugs confirmed)
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Official ZEsarUX 8.1:
+
You may want also to check the official [https://raw.githubusercontent.com/chernandezba/zesarux/master/src/FAQ ZEsarUX FAQ] to see if you have a known issue which has solution (ZX Next is "TBBlue" type of machine).
* sprites rendering is at "4B type" level (no anchor/relative sprites or scaling) (5B init is correctly accepted but doesn't render the extra features)
+
 
* 4bpp sprites are not supported
+
Github "master" branch at 2022-05-14 01:15 CEST (commit 773887d3e62db7530eefda7b0c1991a51a9519e5, version 10.1):
 +
* missing Nextreg $64 "video line offset" (core 3.1.5)
 +
* blending modes are not implemented
 +
* DMA: too many differences to list, but most crucial: slow "burst" functionality is missing, CONTINUE is not supported, legacy Z80 mode is not implemented, all transfers are "instant", dmaDebug.sna test does "reset" machine after ENABLE command (didn't look what exactly is broken about the last one)
 +
* ULA scroll doesn't scroll per pixel on X-axis, but per 8px (char)
 +
* ULA half-width scroll is not implemented
 +
* ULA scroll clipping on Y-axis is not working correctly
 +
* sprite rendering-priority (b6 in NextReg $15) is not implemented
 +
* relative sprites don't wrap correctly around 512x512 coordinate space in extreme cases (8x scale and some positions)
 
* sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline
 
* sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline
* Layer 2 displays shadow variant (NextReg $13) when the "shadow" mapping is enabled
+
* NextRegs $09 reads wrong values
 +
* <del>tilemode gfx/map address read (NextReg $6E + $6F) does return original value without top bits reset to zero</del>(this is now probably correct since core3.1.10? But bank7 is not supported yet of course)
 +
* audio has "clicks" and noise on many platforms, although YMMV
 
* modifications to NextRegs done in copper propagate to rendering usually only once per scanline, usually retroactively for full scanline when triggered in h-blank area (palette changes, X/Y offsets, etc)
 
* modifications to NextRegs done in copper propagate to rendering usually only once per scanline, usually retroactively for full scanline when triggered in h-blank area (palette changes, X/Y offsets, etc)
* palette read (NextReg $41 + $44 produces wrong results)
+
* when running without the full NextZXOS card image, the esxdos services are provided by the emulator itself, which does not implement all of them, and they don't always return the state described by the NextZXOS documentation
* tilemode gfx/map address read (NextReg $6E + $6F) does return original value without top bits set to zero
+
* missing all(?) features/changes of cores after version 3.1.5 (the emulator itself reports as core 3.1.11, but I haven't find any functionality related to the changes in real cores)
* DMA: too many differences to list, but most crucial: CONTINUE is not supported, slow "burst" functionality is not complete, legacy Z80 mode is not implemented
+
* Z80: EI instruction doesn't inhibit accepting masked interrupt until next instruction is executed (after debugging: it does inhibit it, but just delays acceptance infinitely, so interrupt may be accepted even after the /INT signal is over)
* blending modes are not implemented
+
* Z80: extra IX/IY prefix is wrongly processed and with even number of prefixes the next instruction is using HL instead of IX/IY
* ULA scroll is not at new NextReg $26, $27 (but still shared with LoRes offset registers)
+
* Z80: (should not affect any ZX SW, just emulation accuracy) ccf/scf doesn't produce stable outcome in undocumented flags
* audio has "clicks" and noise on many platforms, although YMMV
+
* Z80: (should not affect any ZX SW, just emulation accuracy) block instruction flags while repeating are incorrect
* 28MHz mode requires quite powerful PC to emulate it smoothly, "lagging" emulator menu/etc is likely to happen in 28MHz mode.
+
* in linux trying to open "Debug CPU" window will smash the stack and crash the emulator, you can work around it by using "-fno-stack-protector" during compilation to continue running even with damaged stack content (it seems to be working, but expect unexpected then).
* monochrome tilemode has not fully correct colours handling
+
 
 +
Untested since 10.0-RC (may be already fixed, probably not):
 +
* ULA+tilemode does not support stencil mode, and transparency fallback color is not used in some edge cases (disabled ULA + clipped tiles)
 
* tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5)
 
* tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5)
 
* direct loading of NEX file doesn't init the machine in the same way as NEXLOAD from NextZXOS (it's close, but few things are different)
 
* direct loading of NEX file doesn't init the machine in the same way as NEXLOAD from NextZXOS (it's close, but few things are different)
* screen saver of NextZXOS will "crash" the emulated machine (not emulator itself)
 
* when running without the full NextZXOS card image, the esxdos services are provided by the emulator itself, which does not implement all of them, and they don't always return the state described by the NextZXOS documentation
 
  
----------------
+
Fixed since 10.0-RC final:
 +
* <del>Layer 2 does not support "priority" bit in L2 colors</del>
  
Personal "ZESERUse" fork of Ped7g:
+
Other Issues (not a bug):
* modifications to NextRegs done in copper propagate to rendering usually only once per scanline, usually retroactively for full scanline when triggered in h-blank area (palette changes, X/Y offsets, etc) - when compiled with extra flag "-DTBBLUE_DELAYED_COPPER_WAITS" it will delay copper instructions waiting for h-blank till next line (does produce better visual output in some cases, but makes the emulation less accurate in terms of timing)
+
* 28MHz mode requires quite powerful PC to emulate it smoothly, "lagging" emulator menu/etc is likely to happen in 28MHz mode and unfit for many development purposes.
* altROM/global memory map not updated to core 3.1.0 changes
+
* don't use "--enable-esxdos-handler" option together with running NextZXOS from full MMC card image - it will clash with the MMC functionality
* audio has "clicks" and noise on many platforms, although YMMV
 
* 28MHz mode requires quite powerful PC to emulate it smoothly, "lagging" emulator menu/etc is likely to happen in 28MHz mode - the fork is even more power hungry than official version
 
* blending modes are temporarily not working (implemented in older versions, but broken in latest)
 
* sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline, calculation of pixel-bandwidth exhaustion is vastly incorrect
 
* tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5)
 
* screen saver of NextZXOS will "crash" the emulated machine (not emulator itself)
 
* when running without the full NextZXOS card image, the esxdos services are provided by the emulator itself, which does not implement all of them, and they don't always return the state described by the NextZXOS documentation
 

Revision as of 20:21, 1 July 2022

You may want also to check the official ZEsarUX FAQ to see if you have a known issue which has solution (ZX Next is "TBBlue" type of machine).

Github "master" branch at 2022-05-14 01:15 CEST (commit 773887d3e62db7530eefda7b0c1991a51a9519e5, version 10.1):

  • missing Nextreg $64 "video line offset" (core 3.1.5)
  • blending modes are not implemented
  • DMA: too many differences to list, but most crucial: slow "burst" functionality is missing, CONTINUE is not supported, legacy Z80 mode is not implemented, all transfers are "instant", dmaDebug.sna test does "reset" machine after ENABLE command (didn't look what exactly is broken about the last one)
  • ULA scroll doesn't scroll per pixel on X-axis, but per 8px (char)
  • ULA half-width scroll is not implemented
  • ULA scroll clipping on Y-axis is not working correctly
  • sprite rendering-priority (b6 in NextReg $15) is not implemented
  • relative sprites don't wrap correctly around 512x512 coordinate space in extreme cases (8x scale and some positions)
  • sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline
  • NextRegs $09 reads wrong values
  • tilemode gfx/map address read (NextReg $6E + $6F) does return original value without top bits reset to zero(this is now probably correct since core3.1.10? But bank7 is not supported yet of course)
  • audio has "clicks" and noise on many platforms, although YMMV
  • modifications to NextRegs done in copper propagate to rendering usually only once per scanline, usually retroactively for full scanline when triggered in h-blank area (palette changes, X/Y offsets, etc)
  • when running without the full NextZXOS card image, the esxdos services are provided by the emulator itself, which does not implement all of them, and they don't always return the state described by the NextZXOS documentation
  • missing all(?) features/changes of cores after version 3.1.5 (the emulator itself reports as core 3.1.11, but I haven't find any functionality related to the changes in real cores)
  • Z80: EI instruction doesn't inhibit accepting masked interrupt until next instruction is executed (after debugging: it does inhibit it, but just delays acceptance infinitely, so interrupt may be accepted even after the /INT signal is over)
  • Z80: extra IX/IY prefix is wrongly processed and with even number of prefixes the next instruction is using HL instead of IX/IY
  • Z80: (should not affect any ZX SW, just emulation accuracy) ccf/scf doesn't produce stable outcome in undocumented flags
  • Z80: (should not affect any ZX SW, just emulation accuracy) block instruction flags while repeating are incorrect
  • in linux trying to open "Debug CPU" window will smash the stack and crash the emulator, you can work around it by using "-fno-stack-protector" during compilation to continue running even with damaged stack content (it seems to be working, but expect unexpected then).

Untested since 10.0-RC (may be already fixed, probably not):

  • ULA+tilemode does not support stencil mode, and transparency fallback color is not used in some edge cases (disabled ULA + clipped tiles)
  • tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5)
  • direct loading of NEX file doesn't init the machine in the same way as NEXLOAD from NextZXOS (it's close, but few things are different)

Fixed since 10.0-RC final:

  • Layer 2 does not support "priority" bit in L2 colors

Other Issues (not a bug):

  • 28MHz mode requires quite powerful PC to emulate it smoothly, "lagging" emulator menu/etc is likely to happen in 28MHz mode and unfit for many development purposes.
  • don't use "--enable-esxdos-handler" option together with running NextZXOS from full MMC card image - it will clash with the MMC functionality