Difference between revisions of "ZEsarUX:known bugs"
From SpecNext official Wiki
m |
(refresh info (ZESERUse mostly)) |
||
Line 11: | Line 11: | ||
* clip windows control $1C has old layout of bits, thus producing incorrect readings | * clip windows control $1C has old layout of bits, thus producing incorrect readings | ||
* NextRegs $09 reads wrong values (the more "esoteric" ones like expansion bus related are not part of this test/list) | * NextRegs $09 reads wrong values (the more "esoteric" ones like expansion bus related are not part of this test/list) | ||
+ | * NextReg $09 function bit "Reset divmmc mapram bit (port 0xe3 bit 6)" is not implemented | ||
* missing Nextreg $64 "video line offset" (core 3.1.5) | * 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 set to zero | * tilemode gfx/map address read (NextReg $6E + $6F) does return original value without top bits set to zero | ||
Line 16: | Line 17: | ||
* blending modes are not implemented | * blending modes are not implemented | ||
* ULA scroll is not at new NextReg $26, $27 (but still shared with LoRes offset registers) | * 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) | * tilemode doesn't wrap in memory the same way as HW (when gfx/map address is toward end of Bank 5) | ||
Line 22: | Line 24: | ||
* 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 | * 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 Nextreg $8F (core 3.1.6) | ||
Official 8.1 release has also these: | Official 8.1 release has also these: | ||
Line 39: | Line 42: | ||
* copper running in "restart" mode seems to not reach top-border WAIT instructions correctly | * copper running in "restart" mode seems to not reach top-border WAIT instructions correctly | ||
* palette read (NextReg $41 + $44 produces wrong results) | * palette read (NextReg $41 + $44 produces wrong results) | ||
− | * | + | * NextReg $09 function bit "Reset divmmc mapram bit (port 0xe3 bit 6)" is not implemented |
− | |||
− | |||
* audio has "clicks" and noise on many platforms, although YMMV | * 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 | * 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 not working, missing core3.1.3 features completely, core3.0 is implemented code but broken in current version | * blending modes are not working, missing core3.1.3 features completely, core3.0 is implemented code but broken in current version | ||
* sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline, calculation of pixel-bandwidth exhaustion is vastly incorrect | * sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline, calculation of pixel-bandwidth exhaustion is vastly incorrect | ||
+ | * ULA+tilemode does not support stencil mode | ||
* 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) | ||
* screen saver of NextZXOS will "crash" the emulated machine (not emulator itself) | * 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 | * 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 | ||
* DMA should have two ports since core 3.1.3 and the legacy/next mode depends on port number, not nextreg $06 | * DMA should have two ports since core 3.1.3 and the legacy/next mode depends on port number, not nextreg $06 | ||
− | |||
* missing Nextreg $64 "video line offset" (core 3.1.5) | * missing Nextreg $64 "video line offset" (core 3.1.5) | ||
* missing Nextreg $8F (core 3.1.6) | * missing Nextreg $8F (core 3.1.6) |
Revision as of 00:06, 14 May 2020
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 2020-05-13 21:27CEST:
- 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
- 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
- Layer 2 extra memory mapping controlled by Layer 2 Access Port ($123B / 4667) works only in core2.x way.
- Layer 2 does not support "priority" bit in L2 colors
- palette read (NextReg $41 + $44 produces wrong results)
- clip windows control $1C has old layout of bits, thus producing incorrect readings
- NextRegs $09 reads wrong values (the more "esoteric" ones like expansion bus related are not part of this test/list)
- NextReg $09 function bit "Reset divmmc mapram bit (port 0xe3 bit 6)" is not implemented
- 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 set to zero
- 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
- 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
- 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)
- (not verified with new build)
screen saver of NextZXOS will "crash" the emulated machine (not emulator itself) - 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 Nextreg $8F (core 3.1.6)
Official 8.1 release has also these:
- registers from core 3.1.1+ onward are not implemented at all
- altROM next register does not work correctly and core 3.1.3 does further change it
- Layer 2 modes 320x256x8bpp and 640x256x4bpp are not implemented
- screen saver of NextZXOS will "crash" the emulated machine (not emulator itself)
- monochrome tilemode has wrong colours (and overall attribute usage)
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.
Personal "ZESERUse" fork (branch "tbblue_small_fixes2") of Ped7g:
- 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)
- copper running in "restart" mode seems to not reach top-border WAIT instructions correctly
- palette read (NextReg $41 + $44 produces wrong results)
- NextReg $09 function bit "Reset divmmc mapram bit (port 0xe3 bit 6)" is not implemented
- 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 not working, missing core3.1.3 features completely, core3.0 is implemented code but broken in current version
- sprites rendering is not one-scanline-buffer delayed and all changes in sprites affect current scanline, calculation of pixel-bandwidth exhaustion is vastly incorrect
- ULA+tilemode does not support stencil mode
- 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
- DMA should have two ports since core 3.1.3 and the legacy/next mode depends on port number, not nextreg $06
- missing Nextreg $64 "video line offset" (core 3.1.5)
- missing Nextreg $8F (core 3.1.6)