The border should be transparent too. If Cspect is not doing that, that's a bug. If you have a test program I can verify it on real hw.Ped7g wrote: ↑Wed Jan 02, 2019 9:51 pmQ1 (the "-" points are how I read the docs and set values in code, i.e. not questions, but let me know if you spot mistake):
- default ZX48 ULA screen (white border 7, white paper 7, black ink 0, cls)
- ULANext mode enabled (NR$43=1) and ink_mask$42=7 (i.e. default ULA attribute $38 turns into paper 7 + ink 0 in ULANext mode)
- so ULA palette offset 135 is for border and paper now (7 + 128 = 135)
- transparency fallback NR$4A set to $8F (raw cyan)
- ULA palette offset 135 modified to $E3 (pink, actually 9b pink in code $E300)
- global transparency colour modified to $E3 too, so border and paper is "transparent" now
- in emulator #CSpect 2.2.0 paper *is* transparent, showing raw cyan (all pixels transparent = fallback colour) = works as expected
? border is pink, not using fallback for transparent colour.
Yes transparency will work. In standard mode the ULA colours come from indices 0-7 for ink, 8-15 for bright ink, 16-23 for paper and 24-31 for bright paper if I remember correctly. Border comes from paper.Q2: when ULANext mode is not enabled (bit0 in NR$43 is zero = "flash enabled"), should transparency in ULA layer even work? I mean, no matter how you modify ULA palette, only the default ZX colours will be displayed, right?
Transparency is a test on the final colour generated by the ULA.
Yes but standard ULA can also be transparent as mentioned.Q2b: when you enabled only Layer2 in such case, and over ULA layer, the L2 should display normally in Next-way (including working transparency for Layer 2 letting ULA pixels to be seen under), only ULA layer is sticking to classic ZX and not using transparency?
Yes LoRes replaces the usual ULA behaviour so its pixels go through the ULA palette without any modifications.Q2c: when you enable LoRes, but ULANext is disabled ... does the LoRes override that and turn classic ULA into LoRes layer?