Difference between revisions of "ZEsarUX:known bugs"

From SpecNext official Wiki
Jump to: navigation, search
(refreshing info by doing test with github 9.1 beta 1 version)
m
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 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).
 
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).
  
Github "master" branch at 2020-11-06 17:00CEST (commit 39c25ce, version 9.1-B1):
+
Version 11.1-RC:
* both 4B/5B sprite types are now implemented, but only partially with lot of bugs and incorrect on-screen results
+
* missing Nextreg $64 "video line offset" (core 3.1.5)
* 4bpp sprites are only partially supported (20%)
+
* blending modes are partially implemented (Layer2 priority is not handled correctly and subtraction mode looks a bit too dark)
 +
* 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 (bank 4/7, timex hires/hicol) clipping on Y-axis scrolls too (should not) (also half-width scroll jiggles clipping view)
 
* 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, NextReg $02 soft reset doesn't work same as HW
* Layer 2 extra memory mapping controlled by {{PortNo|$123B}} works only in core2.x way.
 
* Layer 2 does not support "priority" bit in L2 colors
 
* NextRegs $09 reads wrong values
 
* missing Nextreg $64 "video line offset" (core 3.1.5)
 
* tilemode gfx/map address read (NextReg $6E + $6F) does return original value without top bits reset to zero
 
* DMA: too many differences to list, but most crucial: slow "burst" functionality is not complete, CONTINUE is not supported, legacy Z80 mode is not implemented, all transfers are "instant"
 
* blending modes are not implemented
 
* ULA scroll is not at new NextReg $26, $27 (but still shared with LoRes offset registers)
 
* ULA+tilemode does not support stencil mode
 
 
* audio has "clicks" and noise on many platforms, although YMMV
 
* audio has "clicks" and noise on many platforms, although YMMV
* 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)
 
 
* 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)
* 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 some features/changes of cores after version 3.1.5 (the emulator itself reports as core 3.2.1) - TODO exact list or add each feature as separate bug line here
* missing all features/changes of cores after version 3.1.5
+
* Z80: EI instruction, FD and DD prefix don't inhibit accepting masked interrupt until next instruction is executed (or postpone interrupt request until some instruction which allows it, and then handle interrupt, even if /INT signal is gone)
 +
* Z80: (should not affect any ZX SW, just emulation accuracy) ccf/scf doesn't produce stable outcome in undocumented flags
  
Official 8.1 release has also these:
+
Untested since 10.2 (may be already fixed, probably not):
* registers from core 3.1.1+ onward are not implemented at all
+
* Z80: extra IX/IY prefix is wrongly processed and with even number of prefixes the next instruction is using HL instead of IX/IY
* altROM next register does not work correctly and core 3.1.3 does further change it
+
* ULA+tilemode does not support stencil mode, and transparency fallback color is not used in some edge cases (disabled ULA + clipped tiles)
* Layer 2 modes 320x256x8bpp and 640x256x4bpp are not implemented
+
* 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)
* monochrome tilemode has wrong colours (and overall attribute usage)
+
* some fixes/improvements done for 11.1, but very likely still true, untested: 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
* palette read (NextReg $41 + $44 produces wrong results)
+
* should be fixed, untested <del>tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5)</del>
* clip windows control $1C has old layout of bits, thus producing incorrect readings
+
* should be fixed, untested <del>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.</del>
* screen saver of NextZXOS will "crash" the emulated machine (not emulator itself)
 
* NextReg $09 function bit "Reset divmmc mapram bit (port 0xe3 bit 6)" is not implemented
 
  
(sorry, no test for official 9.0 release)
+
Fixed since 10.2 final:
 +
* <del>direct load of NEX file with entry bank 8+ is broken</del>
 +
* <del>ULA (bank 4/7, timex hires/hicol) half-width scroll is not implemented</del>
 +
* <del>ULA (bank 4/7, timex hires/hicol) scroll doesn't scroll per pixel on X-axis, but per 8px (char)</del>
 +
* <del>relative sprites don't wrap correctly around 512x512 coordinate space in extreme cases (8x scale and some positions)</del>
 +
* <del>sprite rendering-priority (b6 in NextReg $15) is not implemented</del>
 +
* <del>Z80: (should not affect any ZX SW, just emulation accuracy) block instruction flags while repeating are incorrect</del>
  
 
Other Issues (not a bug):
 
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.
 
* 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
 
* don't use "--enable-esxdos-handler" option together with running NextZXOS from full MMC card image - it will clash with the MMC functionality

Latest revision as of 14:43, 23 December 2024

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).

Version 11.1-RC:

  • missing Nextreg $64 "video line offset" (core 3.1.5)
  • blending modes are partially implemented (Layer2 priority is not handled correctly and subtraction mode looks a bit too dark)
  • 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 (bank 4/7, timex hires/hicol) clipping on Y-axis scrolls too (should not) (also half-width scroll jiggles clipping view)
  • sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline
  • NextRegs $09 reads wrong values, NextReg $02 soft reset doesn't work same as HW
  • 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)
  • missing some features/changes of cores after version 3.1.5 (the emulator itself reports as core 3.2.1) - TODO exact list or add each feature as separate bug line here
  • Z80: EI instruction, FD and DD prefix don't inhibit accepting masked interrupt until next instruction is executed (or postpone interrupt request until some instruction which allows it, and then handle interrupt, even if /INT signal is gone)
  • Z80: (should not affect any ZX SW, just emulation accuracy) ccf/scf doesn't produce stable outcome in undocumented flags

Untested since 10.2 (may be already fixed, probably not):

  • 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+tilemode does not support stencil mode, and transparency fallback color is not used in some edge cases (disabled ULA + clipped tiles)
  • 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)
  • some fixes/improvements done for 11.1, but very likely still true, untested: 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
  • should be fixed, untested tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5)
  • should be fixed, untested 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.

Fixed since 10.2 final:

  • direct load of NEX file with entry bank 8+ is broken
  • ULA (bank 4/7, timex hires/hicol) half-width scroll is not implemented
  • ULA (bank 4/7, timex hires/hicol) scroll doesn't scroll per pixel on X-axis, but per 8px (char)
  • relative sprites don't wrap correctly around 512x512 coordinate space in extreme cases (8x scale and some positions)
  • sprite rendering-priority (b6 in NextReg $15) is not implemented
  • Z80: (should not affect any ZX SW, just emulation accuracy) block instruction flags while repeating are incorrect

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