shuichitakano / pico_lib

pico でなにか作る時のいろいろ
MIT License
8 stars 2 forks source link

Audio support for PicoDVI #7

Closed mlorenzati closed 1 year ago

mlorenzati commented 1 year ago

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?

shuichitakano commented 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.

mlorenzati commented 1 year ago

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.

shuichitakano commented 1 year ago

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.

mlorenzati commented 1 year ago

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.

shuichitakano commented 1 year ago

I will close this issue now that the fix is complete.

mlorenzati commented 1 year ago

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