Closed mlorenzati closed 1 year ago
I don't have an implementation based on PicoDVI because understanding how PicoDVI works requires a somewhat deeper understanding of the RP2040's DMA behavior, and in my case I took the step of re-implementing it from scratch to do so. I can't guarantee that I can identify the problem, but I can take a look at your code.
Thanks! I did my effort to match your C++ into a fork of picoDVI here https://github.com/mlorenzati/PicoDVI. The biggest difference I see is picoDVI uses irq handler to request the TMDS line preparation whereas pico_lib prepares it on bg and adds a line info.
I couldn't make an issue in your repository so I will continue here. From a quick glance. In dvi_update_data_island_ptr() you rewrite cblist[1] etc, but it looks like there are no chunks provided for Data Island. Are there any commit omissions in dvi_timing.h/c? However, I don't think this will cause the video to stop working, but it won't cause an exception.
I will try to get it working when I have time.
It seems it does not have issues since it's a fork of Wren6991 PicoDVI, I added you as collaborator in my fork (https://github.com/mlorenzati/PicoDVI) And yes, I might have errors, since it's the first pass with api scope, so now I'm trying to see where and how it's working.
I will close this issue now that the fix is complete.
Awesome work! I was able to test 320x240 code, when I activate audio on 640x480 (colour terminal) I get a solid red line. If I double vertical works, so it seems to be performance
I've checked your implementation and tried to follow the same principles for the lib from WREN6991 https://github.com/Wren6991/PicoDVI
If I enable audio or set the blank settings is stops with an exception.
Do you have the C implementation? could you help me to get through if a share a fork of PicoDVI?