HDMI and RGB mods for different consoles

Discussion in 'Modding and Hacking - Consoles and Electronics' started by OzOnE, Mar 18, 2015.

  1. Melchior

    Melchior Rapidly Rising Member

    Joined:
    Jun 12, 2011
    Messages:
    79
    Likes Received:
    3
    Not enough RAM for a buffer ? Bwahah DRAM is cheap! use FIFO DRAM, 8 bits in, the frame (or a hefty chunk of it) and re-read it out when the timing is correct - store as much as possible.

    Search for this 3 Mega-Bit FIFO: www.averlogic.com/AL422B.asp

    Also, FPGA DVI Differential Drivers ?
     
  2. MonkeyBoyJoey

    MonkeyBoyJoey 70's Robot Anime GEPPY-X (PS1) Fanatic

    Joined:
    Mar 1, 2015
    Messages:
    1,741
    Likes Received:
    318
    Hey OzOnE, will your board work on the 3DS, 3DS XL, and the new 3DS?
     
  3. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    Hi, all,

    Sorry it's been a while since I checked this thread.

    I'm STILL in the process of moving house, and we're waiting for the completion date which should take place in the next week.
    Then we have a ton of work to do on fixing up the "new" house, as it has a collapsed floor and needs decorating throughout.

    Only then can I move in and get my "workshop" room sorted out. I will then carry on with the HDMI project.

    @link83 - That's exactly what I had in mind for the custom flex cables. I will have to talk to Marshall again about the expenses etc.

    The pins on the RCP are fairly big compared to the DC / Xbox / PS1 / Wii DAC though, so I'll have to figure out if a flex cable is even practical for that.

    I have looked for a standard FPC cable with the same 0.65" pitch as the DC, but there are three or four pins on the other edge of the DC DAC which will need hooking up too. So, it's probably best to go for a full custom flex.

    @Melchior - we did look at putting a SDRAM / SRAM / FIFO chip on the board initially, but it was already fairly challenging to keep the costs and size of the board down. I believe it's now a 4-layer board though, so we'll have to see if we can squeeze at least an SRAM chip on a future version.

    But, the idea for the first version was to keep the signal as "raw" as possible, and not to buffer any frames and introduce extra lag / latency.
    Most modern TVs will have at least one frame of lag already, so a lot of gamers won't tolerate an extra frame of delay from the HDMI board itself.

    When you mentioned the differential drivers, do you mean driving the HDMI directly from the FPGA?
    Well, the problem with that is a lot of FPGA chips at this price point only have LVDS (or similar), which doesn't properly conform to the specs for TMDS which HDMI / DVI use. At least not from Altera, nor from the smaller Xilinx chips, and I'm personally not too familiar with chips from other vendors tbh.

    If the voltage / current drive is not to the TMDS spec, it could very well cause issues on some people's TVs.
    At least with the proper HDMI Tx chip, our board is pretty much guaranteed to work with 99.9% of TVs.

    The Tx chip also does a lot of the other work for us, like colour-space conversion, hot-plug detection, DDC reading, and can work at much higher resolutions than would be possible when driving HDMI directly from the FPGA.

    It also handles insertion of digital audio, and simplifies the signal-integrity stuff. ;)

    (I know there are open-source projects like GC-Video and HDMI Neo Geo online that do drive the HDMI socket directly (and even add audio), but I wanted to ensure compatibility with all TVs, and also for a lot of the above reasons.)


    @MonkeyBoyJoey - I haven't looked into using the board on the DS / 3DS yet, simply because I don't yet own one. :p

    I do have the new proto board hooked up to the Game Boy Player though, and should have that working shortly after I move into the new house.

    So far, I've tested HDMI, or at least VGA on the following machines (which means HDMI should also work fine)...

    Dreamcast, Game Cube, N64, Game Gear, Atari Lynx.

    As soon as I have the line-doubler working properly, all the machines that use parallel RGB should in theory work fine too.
    eg. Atari Jag, Amiga, Neo Geo, x68000, 3DO etc.

    More news soon. Just waiting to move house, which has been a total nightmare.
    It's every bit as stressful as people say, especially when you have two shipping containers full of crap to pack up. lol

    OzOnE.
     
  4. Unseen

    Unseen Spirited Member

    Joined:
    Sep 1, 2014
    Messages:
    126
    Likes Received:
    17
    I'm not sure what qualifies as "smaller" for you, but the Spartan 3A and Spartan 6 support TMDS I/O. I haven't checked the 7 series chips yet, but I think they haven't lost that capability yet. Both in the 3A and 6 family this capability is available even on the smallest chips (XC3S50A and XC6SLX4). Of course a seperate HDMI encoder chip is much more convenient.
     
  5. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    By "smaller", I meant mainly the non-BGA parts. (I've never done a BGA layout, and I don't think [RDC] has either.)

    I know the Spartan 3A (as used on the original Minimig IIRC) has TMDS, but I don't get on too well with Xilinx ISE.

    I have tried ISE a few times in the past, but personally find it really slow. The error reports are often more cryptic than in Quartus too.
    I've used Altera stuff for so long now that I'd find it hard to "start-over" with Xilinx tbh. lol

    As you say though, using the separate Tx chip just solves a lot of problems in one go, and means I can more concentrate on the FPGA side for each type of console / computer. ;)

    OzOnE.
     
  6. Unseen

    Unseen Spirited Member

    Joined:
    Sep 1, 2014
    Messages:
    126
    Likes Received:
    17
    Ah, I know that problem... The two smallest (logic-wise) chips in the 3A and 6 families are available in TQFP, unfortunately Xilinx has stopped doing that with the 7 series.

    Nobody does... The command line tools seem to be (mostly) ok, but the IDE has annoying bugs. That's probably why Xilinx has halted all development for ISE and now only works on Vivado which I think is Eclipse-based (Yuck). It only supports the 7-series chips though.

    Sure, no problem. Sometimes I also wonder why I still try to work with ISE, for example when it suddenly crashes because I hit Control-F (find) in the text editor...

    Work faster, otherwise I'll have to look into building my own Dreamcast HDMI solution! ;)
     
  7. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    Hehe - I will be going full-steam ahead after this damned house move is over. :)
    (only another two weeks to go, if all goes well.)

    I really need to get voltage level translation added to the board though.
    Originally we were just going to produce a separate board with a few buffer chips on, but now it's starting to make more sense just to squeeze them onto the same board, 'cos there are far more 5V retro machines than 3V3 that are worth targeting.

    I suppose we could still go with separate boards, but it's not worth doing a QSB style thing for most older machines anyway, since the pin / signal spacing on most of them is fairly wide / easy to solder.

    Ahh, so ISE is still fairly buggy?
    Quartus has it's faults too of course, but I've found that certain versions work much better than others.

    The main thing that seems to have trouble on Quartus is that SignalTap tends to crash sometimes if you're simply moving or renaming signals.
    Usually it's just a case of restarting, and it's fine again. That also means killing the remnant Quartus process that's still running in the background too. lol

    btw @Unseen - have you tried porting the SD2IEC source to work as an FPGA core?

    Many months ago I tried and failed to get a decent AVR core running that would work with your SD2IEC source.
    I was trying some of the opencores stuff, but they usually lacked IO ports or had different memory maps that were a pain to modify (especially in VHDL).

    I know there's the 1541 core floating around the Interwebz, but I do like the way the SD2IEC works, and it runs 99% of the games that I've tried so far. :)

    I actually hooked up my "real" SD2IEC to my custom FPGA board before and that worked great with the C64 core.
    It would be ideal just to integrate that into the same code though.

    (I've probably mentioned most of this before, but I have a bit of short memory span. :p )

    OzOnE.
     
    eim88 likes this.
  8. Unseen

    Unseen Spirited Member

    Joined:
    Sep 1, 2014
    Messages:
    126
    Likes Received:
    17
    Not yet. I would probably use some 32-bit RISC core - maybe Plasma MIPS or OpenRISC - and add it as a third supported architecture in sd2iec instead of using an AVR core though.

    Peripheral-wise the system would need the usual basics (interrupt controller, GPIOs, 2-3 timers, SPI) plus five (3 in, 2 out) to eight (4/4) unidirectional I/Os that interface with an additonal timer. The inputs would need to capture the current timer value on a level change, the outputs need to be programmable so they change to a specified level when then timer reaches a value given in a per-output register. This makes it possible to decouple the timing of the bus signals from the CPU speed even for the fastloader code paths that need to be microsecond-accurate and thus use cycle-counted assembly code on AVR. The software side for this already works fine on an LPC1768 (Cortex M3, 100MHz), although the code to implement the data transmission is currently mixed with the MCU-specific timer control in the same source file.

    Isn't the 1541 Ultimate code open? I have thought about porting it to the Chameleon just to see the reactions of certain people. =)

    I can see your point about 1541 emulation vs. sd2iec though - both have different goals. I quite like it that I can just drop a PRG file or a 1MB CRT for EasyFlash on the SD card and access it directly, even if other people label sd2iec as "the most useless C64 peripheral ever" because it doesn't run their favorite game.

    Are you me? ;)
     
  9. MonkeyBoyJoey

    MonkeyBoyJoey 70's Robot Anime GEPPY-X (PS1) Fanatic

    Joined:
    Mar 1, 2015
    Messages:
    1,741
    Likes Received:
    318
    Hey OzOnE, for your scaler board, could you add a digital audio output via TOSLINK? If your board is going to have an HDMI input, could you set it up so it extracts audio from HDMI and outputs it via TOSLINK and possibly convert analog audio to digital? I would like to use the Wii U with my surround sound setup but the Wii U doesn't output surround sound over analog audio, only HDMI. My receiver is old and doesn't have HDMI inputs.
     
  10. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    lol

    My sd2iec has actually been one of the most useful things ever. It works great for 99% of games that I wanted to play.
    It was also very useful for testing the C64 core etc. They are very popular on the Facebook retro groups I'm on. :)


    @MBJ - I did think about adding TOSLINK to the board, but I'm not sure it actually has a pin for that.
    It does have a speaker amp chip though, so I can add analog audio output.

    I do want to add audio via the HDMI output though, so I may need to add an ADC for sampling the analog audio that the scaler chip outputs.
    I don't think the board has a SPDIF output pin unfortunately, but since everything (apart from the HDMI inputs) starts off as analog anyway, I think the ADC idea will be fine.

    It's something I need to add to the HDMI board anyway, since a lot of consoles / handhelds only output analog audio too.
    That's often the case even if the console has an exposed digital video bus.


    Last day of packing tomorrow (thank f**k. lol)

    Removal van is hired for Monday and Tuesday, so we don't have to rush and do everything on one day.
    Wednesday is the day we have to clean our old house, so that'll be "fun".

    Thursday I'll be helping to do the electrical work, a bit of plumbing, and a LOT of painting in the new house.

    I probably won't have decent access to the Interwebz for a few weeks, so I'll see you guys and gals on the other side. ;)

    OzOnE.
     
    MonkeyBoyJoey likes this.
  11. MonkeyBoyJoey

    MonkeyBoyJoey 70's Robot Anime GEPPY-X (PS1) Fanatic

    Joined:
    Mar 1, 2015
    Messages:
    1,741
    Likes Received:
    318
    Ah ok. I'll just get an HDMI audio extractor for the Wii U then. I can deal with analog audio output. My sound system supports it and my headset is analog so that's ok. It's the analog video connections I have problems with lol.
     
  12. Jackhead

    Jackhead Site Soldier

    Joined:
    Apr 3, 2008
    Messages:
    2,442
    Likes Received:
    618
    I ordered me a SNES Mini and like to add HDMi over the S-ENC Chip ( The Mini has a S-ENC chip?). My first idea is using an yuv -> hdmi converter board build in the Mini. The converter has DC 5V.
    Anyone try this before? Any suggestion about the converter? Can i use the internal voltage, or better use the external PSU?
     
    Last edited: Oct 12, 2015
  13. MonkeyBoyJoey

    MonkeyBoyJoey 70's Robot Anime GEPPY-X (PS1) Fanatic

    Joined:
    Mar 1, 2015
    Messages:
    1,741
    Likes Received:
    318
    Do not use YUV Component video. Use a RGB SCART to HDMI converter instead. It will be better quality. You will have to send C-Sync to pin 20 of the SCART socket.
     
  14. citrus3000psi

    citrus3000psi Housekeeping, you want towel?

    Joined:
    Nov 8, 2013
    Messages:
    1,051
    Likes Received:
    419
    I didn't think the Minis had component output, I thought only early launch models supported component?
     
  15. Pikkon

    Pikkon "Moving in Stereo"

    Joined:
    Mar 4, 2005
    Messages:
    2,697
    Likes Received:
    83
  16. MonkeyBoyJoey

    MonkeyBoyJoey 70's Robot Anime GEPPY-X (PS1) Fanatic

    Joined:
    Mar 1, 2015
    Messages:
    1,741
    Likes Received:
    318
    That's why I mentioned using just an RGBS to HDMI converter instead of Component. You would have to convert RGBS to YPbPr and then convert YPbPr to HDMI. It would cause a noticeable loss in quality. Therefore it is best to just avoid component and use RGBS with a SCART to HDMI converter.
     
  17. Jackhead

    Jackhead Site Soldier

    Joined:
    Apr 3, 2008
    Messages:
    2,442
    Likes Received:
    618
    Thanks for the infos!
     
  18. Paspie

    Paspie Newly Registered

    Joined:
    Dec 15, 2013
    Messages:
    2
    Likes Received:
    0
    I have a crazy idea for Wii games: if the original Wii is too difficult to work with, and the Wii U's HDMI is plagued with HDCP, why not attempt a Wii Mini mod?

    In the meantime I look forward to a mod for my fat PS2.
     
  19. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    Not sure I've even seen a Wii Mini in person.

    I would guess that it's using the same video DAC though, or maybe even a new chipset with the DAC integrated (which would make a true digital HDMI mod pretty much impossible).

    I'll have a look at the motherboard pics on Google though. ;)
     
  20. leonk

    leonk Rising Member

    Joined:
    Mar 22, 2014
    Messages:
    62
    Likes Received:
    4
    Just found this thread today. I have a question about the handheld consoles. Why? ;)

    McWill over at AtariAge has now been selling an all digital LCD replacement screen for the Atari Lynx and GameGear for over a year (it uses a CPLD I believe to connect between original LCD ribbon solder points and the new LCD driver)

    It does other neat things like scanlines emulation and VGA output, all controllable from controller buttons.

    He's pretty much done the Sega Nomad LCD as well and be releasing it shortly.

    Not sure if there will be a huge demand for this product unless you can bring the price way under his $100 shipped.
     

Share This Page