Dragon Warrior Jasen wrote:I need to follow this closely. Great work! Let me know if you want/need any help with manufacturing, etc. Between this, the CPS2 MultiKit, and the new case I designed for them I see a very slick DIY (easily built) kit possible.
Thanks for the proposal. I was planning to just release the project as a DIY design once it's nearer completition, but if there's enough interest then it might make sense to look into manufacuring pre-assembled boards as well.
mikejmoffitt wrote:This looks great. Are you scaling with a buffer to 1080p, or are you doing a line multiplier with tight timings?
Currently it's a simple line multiplier, so basically no latency but not perfect display compatibility either. The FPGA has enough block RAM to store at least 40 input scanlines, so buffering can be used to resolve line count discrepancies up to 1080p. Generation of suitable pixel clock will be more challenging: e.g. for frame-locked 1080p output, 2200*1125=2475000 pixel clock cycles should ideally be generated each frame while CPS2 outputs 512*262=134144 cycles. Exact (2475000/134144)=(309375/16768) ratio is probably unattainable even with a cascade of fractional PLLs, but I have 2 ideas I've been planning to try out:
1. Generation of near-ideal pixel clock (e.g. 147.6MHz for 1080p), and then dynamically adjusting one blanking line length to keep output frame-locked. Not sure how displays will react to this. Probably at least some will accept that fine if adjustment is no more than a couple pixels.
2. Slightly relaxed CEA timings to allow suitable PLL ratio. In thet 1080p example, total output width of 2227 would allow ratio of (2505375/134144)=(19125/1024)=(153/32)*(125/32) which should be implementable with 2 cascaded PLLs.
Fudoh wrote:not all displays support 4:3 AR for 16:9 source material and many users prefer to play CPS2 slightly wider than 4:3.
Suitable integer-multiplied resolutions for near-correct aspect ratio are 1152x896 and 1536x1120, the former fitting nicely into 1280x960 frame and the latter almost nicely into 1920x1080 frame.