ZZ9000: NTSC Laced doesn't work with Denise adapter

I’ve raised this on Twitter before, but I want to formally have an issue documented here since it’s been four months and I’ve never seen my ZZ work properly in the machine I bought it for. Here’s what I’ve found through troubleshooting:

  • NTSC progressive works with the Denise adapter
  • If I switch to Interlaced, the ZZ loses sync and flickers garbage on a black screen every so often
  • Usually if I switch back to progressive scan, it works, but sometimes the framebuffer ends up corrupted
  • Indivision ECS works flawlessly in the same machine in the same modes, so it’s not because there’s actually a signal problem from Denise
  • I’ve tried a wide variety of firmware releases, back to the original one. None work.
  • It’s not my monitor (I’ll explain definitively why shortly)

I tried testing with the video slot adapter, and there’s mixed news there:

  • If I use the ZZ with the video slot adapter in an A2000 with J300 set to 1-2 (external tick) NTSC laced and progressive both work. Hooray! (This also confirms there’s not a problem with my monitor.)
  • If I move J300 to 2-3 (internal tick), the flicker fixer doesn’t work at all, failing to sync and flashing garbage on screen. This is a showstopper for me as well - the A2000 it’s meant to live in uses an ATX power supply, as the original died. That means I can’t use external tick in that machine.

I don’t know if the tick source is related to my interlaced issues with the Denise adapter, as I don’t want to move that adapter into my machine with an original PSU right now, and it’s super difficult to disconnect the A2000 PSU connector from the system board. Plus the A500 doesn’t even have an external tick option, so how could the Denise adapter rely on it?

Lukas mentioned on Twitter the video slot adapter uses HSYNC and VSYNC, and maybe the Denise issues are an issue decoding CSYNC for laced modes. In my opinion, both adapters should use CSYNC, as HSYNC/VSYNC don’t work in genlock video modes. If it is an issue decoding CSYNC, both RGB2HDMI and the Indivision already do this correctly. Perhaps you could look at the timings for the RGB2HDMI and find the mismatch.

I really want to love the ZZ9000, and was so excited to receive it after waiting eight months. But I’m really disillusioned by the most basic functionality still not working. Basic hires video modes are table stakes. I understand and admire the excitement I see around building new things like the ZZ9000AX (which I ordered!), but it hurts for that to be at the expense of the base product fulfilling its basic promises as a product. I can’t use any of that cool stuff if basic functionality doesn’t work.

Again, I’m ready and willing to help investigate and get this fixed however I can. But if there’s still no movement by the end of January, I strongly suspect my ZZ is going in a box, to be replaced by Matzes A1k adapter, an Indivision, an X-Surf, and a RapidRoad. So much more hardware, and less capable RTG graphics, but it works.

  • Amiga model: Amiga 2000 Rev6 (I also tested the video slot adapter in a Rev4)
  • 680x0 CPU: 68040/68030 (I’ve tested both)
  • RAM Configuration: 64MB fast, 2MB chip
  • Kickstart, AmigaOS Versions: 3.2
  • ZZ9000 Firmware version: 1.9.1
  • ZZ9000 Driver version: 1.9.1
  • Monitor model: Various; not related to the problem
  • Other Zorro cards: I’ve tested various configurations, with as few as just a GVP HC+8; it’s not related to the problem since this is strictly a scan doubler issue.

In regards to CSYNC from what I see in the zz9000 schematic manual, it looks like this signal is not connected to the ZZ9000. Would like MNT to comment on that and if a genlock could ever work with a ZZ9000 (see “Split screen with Video Toaster” issue at ZZ9000 Compendium: Support / Troubleshooting" If indeed the HSYNC and VSYNC go down to 7.8 KHz in genlock mode, can ZZ9000 still use the HSYNC and VSYNC? Can this struct zz_video_mode preset_video_modes[ZZVMODE_NUM] at ZZ9000_proto.sdk/ZZ9000OS/src/zz_video_modes.h · master · Amiga / zz9000-firmware · GitLab be updated to support this mode of operation?

I don’t know, but Commodore’s own updated VGA adapter, released specifically to fix this problem with multiscan monitors, does it by reading CSYNC and regenerating HSYNC/VSYNC. I believe that’s also how the ZZ’s Denise adapter is intended to work, but as I documented, it doesn’t do it right (NTSC laced being one non-functional example; I haven’t even gotten to trying genlocked modes).

I hadn’t realized the video slot adapter doesn’t even hook up the CSYNC pin. That’s incredibly unfortunate, and I suspect means a new board would have to be made to fix genlocked output for those using the video slot. It’s very well documented HSYNC and VSYNC cannot be relied upon with the Amiga when anything to do with genlock is in play.

I’d love to hear more from MNT, though.

In the meantime, there’s a Matzes A1K RTG card, Indivision, and X-Surf ready to go into my A2000 as soon as I have time in the next few days. It’s been months, and especially with no indication any of the showstopper issues I listed will receive engineering time, I need something I know will work. I’d continue dealing with it if it were in service of helping to fix those problems, but that doesn’t seem to be happening here.

The external “SyncStrainer” did the job of creating the VSYNC and HSYNC from CSYNC:

“When the Sync Strainer senses a gen-lock condition, as when
NewTek’s Video Toaster is started, the Sync Strainer creates new H- and V-sync’s from composite sync.”


@mnt – is it possible that this table and firmware can be updated to support genlock mode even though CSYNC is not connected? ZZ9000_proto.sdk/ZZ9000OS/src/zz_video_modes.h · master · Amiga / zz9000-firmware · GitLab

@my_pc_is_amiga Yes, the Sync Strainer also existed. As I mentioned, Commodore also revised their own DB23 to VGA adapter to do the same.

@mntmn Can the video slot adapter perhaps be respun to connect CSYNC? Fixing up Denise adapter support first could validate all modes ahead of time, including NTSC interlaced and genlock conditions.