Graphic and character artifacts with A2FPGA
I get random characters or graphics that show up with the A2FPGA, that has the Video Only firmware on my Apple IIgs Rom1. Could be extra characters on the boot screen, or artifacts in a game. Only when going out HDMI from the A2FPGA. RGB or Composite out do have have these artifacts.
Can you please share your exact system configuration? What boards are installed in which slots and what are the current DIP switch settings of the A2FPGA board? Thanks.
A2FPGA in Slot 3, no boards in slots 1,2,4,5,6,7. RAM2GS II (GW4201D) in the memory slot. Fujinet plugged into Smartport. A2FPGA Switch 1-4 are all on. System configuration/slot configuration is defaults. Thank you!
I received a replacement Nano 20K module as a troubleshooting measure, but it made no difference and both issues remain (#26 and #27). Would it be helpful if I provided any log or debug output? Not sure if this is available via the USB port, JTAG, SD card or some other means. I have tried different TVs and Monitors as well as different HDMI cables. The only thing I can not try is a different Apple II, as I only have one Apple IIGS Rom 1. Happy to help troubleshoot any way possible. Thank you in advance!
I haven't been using my A2FPGA for awhile, but with Ensonic over HDMI support, I thought I might get back to it. Updated firmware to the 'enhanced' version, and started seeing 80-col random characters all over the screen. I don't have photos yet, as I continue to investigate. I have tried several different things, built my own bitstream, used the canned bitstreams, all doing the same thing. This is a ROM1 with the A2FPGA in slot 3. I have a ROM3 motherboard that I am going to try next. My gut is that the M2B0 signal is either weak (drive strength/voltage), there is a timing issue (a compile issues a warning about the clk_d signal, or the GLU CPLD is blown somehow...logic analyzer next. Let's keep this closed for now, and as I gain more info, we can see if we can't figure it out...but it looks like the same issue as the OP.
I rolled back to A2N20V2-FIRMWARE-08-17-2024_VIDEO_ONLY, and the problem has gone away (same machine, same hardware, etc). So I won't spend my time looking into hardware issues, but will start comparing new releases to the old, and see if the clock routing has changed.
Thank you for adding insight into this.
Guess I now wish I hadn't gave up and returned the card as I was told it couldn't be reproduced and it was a local issue (was told power supply, home power quality, etc, I could tell it wasn't going to be an easy road to a solution).
Looks like I could have tried simply downgrading the firmware. Didn't think to do that, all I tried firmware wise was reflash the same latest version with video only. I assumed it was a firmware issue and offered to debug and troubleshoot. Oh well.
Am actually quite happy with an RGB SCART cable to an RT4K, and don't miss the boot delay and as a bonus even get to hear the IIGS boot sound.
Finally, it's probably safe to assume this wouldn't solve my other issue where it would not work reliably through a TESmart 16x1 HDMI switch, where so many other devices I have work fine.
Live and learn.
I haven't been using my A2FPGA for awhile, but with Ensonic over HDMI support, I thought I might get back to it. Updated firmware to the 'enhanced' version, and started seeing 80-col random characters all over the screen. I don't have photos yet, as I continue to investigate. I have tried several different things, built my own bitstream, used the canned bitstreams, all doing the same thing. This is a ROM1 with the A2FPGA in slot 3. I have a ROM3 motherboard that I am going to try next. My gut is that the M2B0 signal is either weak (drive strength/voltage), there is a timing issue (a compile issues a warning about the clk_d signal, or the GLU CPLD is blown somehow...logic analyzer next. Let's keep this closed for now, and as I gain more info, we can see if we can't figure it out...but it looks like the same issue as the OP.
Greetings marketideas. The enhanced source tree and build contained in the repo is currently experimental at this stage. We have been working on it quite a bit lately and definitely encourage testing, but it is not a "production" build yet. The default configuration in the Top.sv file for this build enables all of the adapter cards currently implemented for a2fpga. SSC in slot 2, Mockingboard in Slot 4, Synetix SuperSprite in Slot 7 in addition to the HD video output, Apple II audio output, and Ensoniq audio output over HDMI for GS users. These settings may be in conflict with your GS configuration. We were unable to reproduce the problem reported by the OP of this thread on any of our GS systems or the separate problem reported by the OP regarding use of TESmart 16x1 switch (we do not have one of these switches, and it is impossible to support every possible piece of equipment that could possibly reside between the A2FPGA and a display device, however, we have successfully tested with a 16-Port MT-VIKI 16 port 4K HDMI KVM purchased on Amazon in the US with no issues).
We believe what you have reported above is most likely a completely unrelated problem than that reported by the OP. Typically, the problems we have seen GS users encounter are related to power supplies delivering insufficient or inconsistent voltage/current due to age/use, card configuration conflict where physical boards reside in slots used by A2FPGA to implement SSC, MB, SuperSprite, or incorrect / misaligned configuration settings in the Apple II GS control panel for a user's configuration. Would really like to help you get to the bottom of this or figure out how we might be able to successfully reproduce the problem you are running into on our end. To help facilitate this, could you please answer / provide the following:
- On your ROM 01 GS, what is the slot by slot configuration and Apple II GS control panel setting for each slot?
- Have you upgraded/enhanced your Apple II GS power supply or is it the original equipment?
- If you have any photos of the 80-col random characters on the screen, could you please provide those?
- When producing your custom firmware build using the enhanced source, did you modify the Top.sv file and disable anything that could potentially conflict with your configuration prior to executing a Build-All and programming the Tang-20K FPGA with the Gowin toolchain?
Thanks!
I'll try to answer these questions by going through the steps that got me here.
- Downloaded, the latest main repo.
- downloaded the 'official' build of the enhanced bitstream. Programmed that to the board.
- First boot noticed the artifacts. Tried several times.
- Brought up GoWin IDE, loaded the project and built (default options in top.v)
- Burned that, same thing.
- Modified top.v to just do video only, no cards. Built, burned, tested.
- Decided 'It's experimental', so lets see what the non-enhanced does.
- downloaded the main branch of the 'non enhanced' bit stream (a2n20v2)
- burned that..same issue.
- then tried the VIDEO_ONLY version, same problem.
- created my own VIDEO_ONLY version by changing top.v to disable all cards (I did enable the HDMI debug line)
- built, burned, same thing.
- came to github to see if anyone else had experienced anything. 1 post in 'open', similar, but not exact. Then checked 'closed' and found this issue.
- added my two cents here.
- downloaded the old 8/24 version of a2n20vs, burned, tested, everything looks great.
- built my own 8/24 version (had to add IO_PORT definitions for voltages to "clk", "s1" and "s2" to get passed voltage errors in gowin 1.09.11.02 (professional)
- once that was fixed, built, burned, tested...works nicely.
My power supply is an UltimateApple2 (I believe from reactive), maybe 2 years old...but not powered on much. No cards, other than a Garrett's workshop 8M RAM2GSII, all slot settings are set to defaults (your card on slot 7 which is empty, but that is the default)
Next time I have a 'broken' build installed, I'll take a couple of photos or videos. Happens on 40col/80col and in GS/OS hires (almost always on 80col, randomly on 40col, and I have only seen once on hires.
IO_LOC "clk" 4; IO_PORT "clk" IO_TYPE=LVCMOS33 PULL_MODE=NONE;
//IO_LOC "clk_1" 10; //IO_LOC "clk_2" 11; //IO_LOC "clk_3" 13;
IO_LOC "s1" 88; IO_PORT "s1" IO_TYPE=LVCMOS33 PULL_MODE=NONE;
IO_LOC "s2" 87; IO_PORT "s2" IO_TYPE=LVCMOS33 PULL_MODE=NONE;
I have the same 8mb ram2gs card, same rom01 IIGS. I bet if I still had the card and loaded the 0824 firmware, it would solve the issue for me. Happy to test if you are interested. It's not my power supply, or dirty slots, or the power in my house. Next I was expecting to hear it was sun spots.
@marketideas thanks for the testing, that's very interesting. I assume it worked fine before you flashed the new version and then only had issues when you tried the enhanced release? When did you originally receive your card? Also, did the 8/28 regular version work fine or just the VIDEO_ONLY version? Can you also try some of the later releases and see if they have the problem or not? Also, can you let me know if you were using the WIndows or Mac (or Linux) versions of Gowin when you rebuilt?
@notwork-2000 understand your skepticism on power-related issues. the only thing we know for sure is that it's machine-specific. We've seen about 5 instances of this problem and every time, the boards worked fine on our test machines when returned and the exchanges that were sent out didn't work. In a few cases, people did try older versions but I'm not sure whether anyone tried rolling back to the 8/28 release. Let's see if it stays fixed for @marketideas and if so, happy to have you test as well. The reason why power issues are suspect is because it doesn't take the power supply being that far out of spec to potentially cause these issues but we've never been able to reproduce so it's just speculation.
aaa
Sorry, the above is blurry, but this is output direct from my GS to a VGA monitor. Blue background, no artifacts.
Same display, but shown over HDMI using A2FPGA. Notice black background, and $ signs and < characters.
Then, here is a 40 column display with no disk drives attached
@marketideas thanks for the pictures - that is definitely the bus glitch issue. Not sure if you saw my questions to you before - can you take a look at those and respond? Also, were you able to test in your ROM 03? Since the ROM 03 buffers the M2B0 line, it would be interesting to see if that works.
All versions of 08/24 work fine, including the 'Release' version in the package. I am also starting to believe that the open issue here on github is also related...a bad byte could be interpreted as 'fill to end' in SHIRES. One thing I did also notice, but am unable to capture in a photo, is that notwork's photo of his 'Apple IIgs' copy write screen, he has the little back-tick character in the upper left. I get that same character in the same position as well.
Also, I pulled my GSRAM out, to see if that had any affect. It does not. Tomorrow, I will try my ROM 3 motherboard and see what happens. Also sent a PM to Petar to see what his machine config is.
Don't know the timing of when I ordered my card, but it was within a month of them being released. I think I posted an issue about DMA IN/OUT in November '24.
Is there an easy way to take the latest release, and remove the SRAM stuff and go back to block RAM? Haven't found that yet. That would have been a big change, that if we miss a byte or two, would cause the display (or the color register) to not hold a proper value.
For what it is worth, All of the textual 'anomolies' that I have seen have been standard ASCII characters, I get a lot of '8's, '('s, '<' ,'$'. I have never seen a flashing, or inverse character. It may just be a single bit failing.
Another photo of something I saw. This is after going into Applesoft (via Prodos8) in 40col mode. Then doing a PR#3. One photo is my VGA screen direct from GS, the other is the HDMI version. (Again, black background).
We seem to be one message ahead/behind. I'll study your post on the bus-glitch issue.
I think previous post answers most of the questions. Have only tried GoWin IDE 11.9.11.03 (build 81277) (pro license) under Windows. I also have a linux box with it installed, and can build the bitstream there as well. I'll let you know.
@marketideas the regular a2n20v2 releases (not the enhanced ones) all use BlockRAM for everything. It's the enhanced version that uses the SDRAM, because it needs the extra memory for the Ensoniq, etc. However, even the enhanced version still uses BlockRAM for the SHRG mode since it needs the faster bandwidth. Anyway, let us know what you find on the ROM 03 machine.
Morning update: linux gowin 1.9.11.03 (build 81277) still has the problem. It took awhile to get it to run on my machine due to remote xwindows and libraries. Older version worked fine.
Will now move on to ROM3. Updates in awhile.
ROM3 test is a fail, not due to the A2FPGA. My ROM3 was a 'parts only' ebay buy...battery had exploded. I found many of traces to the slots had been corroded through. Thought I had fixed it because everything seemed to be working. However, the A2FPGA is obviously not getting signals it needs.
what build are you using that's showing the debug overlay? is it showing it by default for you or did you hit the S2 button?
I changed the default to 1 because I wanted to know what is was. I can see that it is Ensonic registers, etc. I leave it on, so I know if I am running a build I did, or one of the canned-release versions.