HDMI and RGB mods for different consoles

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

  1. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    Yeah, the consoles having slightly different timings is a problem.

    To be fair, I forgot I was using the Altera IP stuff to write the N64 video into SDRAM as well on the 2012 vid.

    That was mainly for doing basic de-interlacing though, but I sure it can be made to work directly via HDMI with a few tweaks / line-doubling.

    The number of pixels per line doesn't matter too much as long as the sync "framework" is close enough to spec.

    Also, I was actually feeding my own clock from the FPGA to the N64 so I could overclock the RCP for the first time without screwing up the video output.
    That was with the SDRAM framebuffer, but it might help to tweak the RCP clock slightly if the timing is a bit off from the accepted 240p standard.

    If it does have a weird number of lines per field / frame, then there is a bit of headroom with HDMI.
    If the TVs are quite fussy, then there may be enough vertical blanking period to generate a few fake Hsync pulses to closer meet the spec?

    The same might be possible on the NeoGeo mod - I recall him saying he had to raise the master clock slightly too.

    Nice vid though, bagheera. :)

    You can tell it looks nice, even on that vid.
    It's like my early vids - just a quick thing to show it working. I personally wasn't too bothered about using a tripod either. lol

    Are you also sending the digital audio through the HDMI board btw?
    Which FPGA / CPLD board are you using again?


    I can't wait to get hold of the new proto boards, as I want to throw one in an N64 as well.

    I was also holding off on the N64 for a while because Marshall was working on his (much better) version.
    But, don't let that stop you posting vids or working on stuff. It's all good for the community in the end. ;)

    OzOnE
     
  2. bagheera

    bagheera Rising Member

    Joined:
    Aug 1, 2014
    Messages:
    65
    Likes Received:
    3
    I use a Cyclone IV EP4CE6. I can get that for 5$ from China (and they seem to work fine). Obviously, you take a risk with getting chips from China, but I did not want to spend too much with the possibility of messing them up during soldering.

    Sound is still going through the AV port unfortunately. I am not sure if I will add that anytime soon. I am now working on a board without SDRAM, kind of like yours, because I want to try it on the Dreamcast, GC and PS1. Adding audio for those should be easier. I think N64 uses multiple weird sample rates for audio, so it would have to be converted first. Furthermore, I only wired the spdif pin (running low on pins) of my FPGA to the HDMI transmitter, so that also needs a conversion step. I am thinking of just decoding the I2S from the N64 and then sample it at 44 KHz with the FPGA as a first step. Apparently that does possibly result in choppy sound. I guess I need to look into more advanced sample rate conversion.

    Which voltage regulators do you use for your board?
     
    Last edited: Apr 14, 2015
  3. Calpis

    Calpis Champion of the Forum

    Joined:
    Mar 13, 2004
    Messages:
    5,906
    Likes Received:
    21
    The whole point of digital frame specs is that you follow them PIXEL-BY-PIXEL. Timing is relative, you can change the pixel clock because that's generally "out of system" as far as the firmware is concerned, but you can't change the number of lines, or number of pixels per line, or the sync placement without confusing the hell out of the display's firmware or possibly fixed data paths in hardware. I don't understand why you're so set on this. Just for simplicity's sake?

    You have to with any old console if it's to synchronize with industry standard pixel clocks. Assuming 480p/59.94 Hz, the NG's master clock must be raised to exactly 60/1.001*264*384*4. The most direct way is with a phase accumulator since clock jitter doesn't matter once the analog outputs aren't being used anymore.
     
    Last edited: Apr 14, 2015
  4. MonkeyBoyJoey

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

    Joined:
    Mar 1, 2015
    Messages:
    1,738
    Likes Received:
    312
    Hey OzOnE, how is the Dreamcast version coming along? Does it work with games that don't support VGA mode? Hopefully it will be released soon so all of us DC fans can burn our crappy VGA boxes.
     
  5. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    @MonkeyBoyJoey - Still in progress. ;)

    We're waiting for the final proto boards to arrive from the PCB factory, then [RDC] will be assembling them and shipping a couple to me.

    There are only a handful of games that force TV mode (for 240p / 480i etc.), but I will be looking to support those soon.

    I haven't been able to fully test the line-doubler for 240p games yet though, due to one of the JTAG pins on the first proto getting zapped.
    We have added extra protection resistors for that on the new proto, but JTAG hopefully won't be used by the end-user anyway.

    In "TV" mode, the DC usually disables the Hsync / Vsync outputs, and will only output Composite Sync on AV port pin 10.
    I already have the sync separator code working for that, so the board will be able to auto-detect 240p mode, then line-double it to 480p.

    I have the second proto board here now too, and might be looking at testing it on the Xbox next.

    OzOnE.
     
  6. MonkeyBoyJoey

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

    Joined:
    Mar 1, 2015
    Messages:
    1,738
    Likes Received:
    312
    Hopefully they arrive soon! How hard would they be to install?

    I just recently found out that DC games support 240p. I always thought it was 480i or 480p. I think some of the 480i games can be forced into 240p mode by a button combo. Would a deinterlacer be possible on the board or as a add-on for 480i-only games? Would that be too expensive or would the board not have enough room (data wise)?

    Hopefully the line-doubler works great with 240p games.

    I don't even have a JTAG programmer. Can it be programmed via standard USB? Since it won't be in the final release, how would we be able to update it if it ever needs an update to the firmware/software?

    Is there anyway to disable the disabling of the syncs? If there is, it would greatly help RGB SCART users since it would allow for 480p RGB SCART cables without a sync combiner.

    So the board will be able to detect 240p and then line-double it to 480p automatically? Well that saves me drilling another hole for a line-doubler on/off switch. How would it react to 480i signals?

    The Xbox should be easier since it natively supports 480p/720p/1080i. You would then only have to worry about 480i-only games like Halo CE.

    Since I'm looking to modding my Xbox, this would be a great mod to add.

    I have a high quality Component cable for the Xbox (not sure if it's official or 3rd party) so I could do a comparison between the two then. Although now that I think about it, I can only record composite video, s-video, and component video through my HD PVR 1 and not HDMI. Not sure how much of a difference my RadioShack HDMI to Component converter would make. It acts weird with my SCART/HDMI to HDMI converter.
     
  7. bagheera

    bagheera Rising Member

    Joined:
    Aug 1, 2014
    Messages:
    65
    Likes Received:
    3
    There is an image in the thread. How hard it is, depends on your skill obviously.


    We have been over this before in this thread.. Proper deinterlacing requires that you buffer at least one field. There is not enough memory for that on the FPGA. Linedoubling it to 480p is an option, but then you throw away half of your vertical resolution. If your TV supports 480i over HDMI then it would be best to just send 480i.


    You can get a JTAG programmer for about 5$.
     
  8. OzOnE

    OzOnE Site Supporter 2013

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

    As bagheera said, the mod can be tricky to install if you haven't done much fine soldering before.

    The new board will be easier to solder to because we have changed to using 1.27mm pitch headers, but the DAC on the DC / Xbox1 / PS1 / PS2 still have quite fine-pitched pins of around 0.5mm to 0.65mm.

    So, soldering to those DACs without creating solder bridges is by far the hardest part.
    I use a Metcal soldering station with a fine tip though, then tin the wires, add a dab of flux to the DAC pins, then carefully hold each wire in place then tack them on with the iron.

    The good news is - Mr [RDC] is making some Quick-Solder Boards for most of the target systems, and the one for the DC looks great already. :D

    These will be a very thin (0.2mm) PCB with notches or "castellations" in, like you see on some modchip boards.
    They should make it a lot easier for the average modder to solder to the DACs. The QSB then has much larger pads on for soldering the wires to.

    (The 1.27mm headers on the main HDMI board could even take standard pin headers and connectors, but it's preferable to just solder stuff like this due to the high-speed signals involved.)


    Are there that many DC games which actually force 480i mode though?
    As far as I can tell, there are very few games at all which force that mode, and only a handful which force 240p?

    Almost all games can be patched to enable VGA (480p) mode too, but that obviously means using CD-R rips, Dreamshell, or a GD-EMU etc.

    You can only prevent those few 240p / 480i games from switching / disabling the normal H/Vsync by modifying the game code itself.
    Basically, they simply ignore the VGA flag in IP.BIN, and force the HOLLY chip to output 240p or whatever they want.


    For this version of the HDMI board, I was aiming to keep the price low, as I don't think people would want to be paying $200 or more for our mod (it will be much lower than that)...


    I don't know if you've seen the "hdmyboy" project btw?
    You should see how much they are asking for a Gameboy with an HDMI mod. hehe

    http://www.hdmyboy.com/play/

    I did enjoy the wording of their "marketing" though. lol

    "hdmyboy gives you the sharpest and best picture you've ever seen come out of your gameboy. Rather than scale or stretch like other systems would do, we intelligently redraw every single pixel. This is because we tap into the digital data, not at just the picture coming out of the game boy. This results in amazing quality without blurs (or anti-aliasing)!

    We prefer 1080P FullHD, but support 720P. There are two modes: HD7, which redraws the game boy screen 7 times the size and HD712, which redraws every pixel slightly wider so the graphics fill your screen. So technically HD7 gives you 1120x1007 and HD712 gives you 1920x1007 pixels."


    I can see what they were trying to say, but I'm pretty sure "redrawing" each pixel seven times to make it fit the higher-res screen is technically almost the same thing as "scaling". :p
    But yes, if you're redrawing each pixel in Verilog or whatever, you can avoid a lot of the blurring on pixel edges that you often get with nearest-neighbour or bi-linear scaling.

    And yes, that's €258, or $280 USD for just ONE modded HDMI Gameboy. :eek:

    Don't worry, our board will cost way less than that, and be usable on many different consoles / computers / handhelds (including Gameboy).

    I don't think anyone can patent the idea of outputting HDMI from retro gear anyway, so I'm sure we can be "competitive" with our pricing. ;)


    Anywho, I'm trying to keep my HDMI board firmware simple enough that it shouldn't need updating.
    I made the decision a few weeks ago that it doesn't really warrant things like an on-screen display, or I might never get it debugged and released.

    So-called feature-creep is one of the main things that kills most projects, and I'm quite bad for wanting to add more and more features that aren't always necessary.

    The idea was just to make something simple to use that just "works".

    I won't be doing any true de-interlacing on this board anyway, so it will likely be a plug 'n' play solution that outputs at the most sensible resolution depending on the input res.

    I will probably be adding things like scan-line generation though, and they can be enabled / disabled with a simple switch.
    I'm looking to include horizontal scaling as well, as it's quite simple to do and a few people have asked for it.

    I'm still looking into adding maybe a very simple OSD though, and maybe hooking up to controller port 1 on most systems, so the menu options can be adjusted easily.

    If for some reason the board does need updating, a USB Blaster clone is only around $4-$5, as bagheera said.
    I'm even considering including one of those, or just make it an option to buy one on the site.

    I don't think most modders will mind that too much, as they are generally like-minded people who enjoy tinkering and upgrading firmware etc.


    The idea is to try to avoid any need for future updates though, as it was intended that the board simply output the native res of the console (or with line-doubling for 240p / 288p), then let the TV, capture card, or Uber-scaler handle thing like de-interlacing and scaling.


    If we do need to release any updates, the firmware WILL have encryption enabled though, so each update will only work on each specific HDMI board.
    That will probably be tied to each board's serial number etc.

    (It's not as if we're protecting any NASA secrets or anything, it's mainly just to stop somebody making a direct clone within the first week of release. lol)


    I'm also working on the Uber-scaler still, and have a board on the way from China that will hopefully be the solution to the rest of the scaling and capture issues...

    It should be the perfect board for scaling inputs from HDMI or from retro systems (including Composite, Component, and RF!), and outputting that to a capture card, TV, and an LCD panel. ;)
    It can be used in conjunction with the HDMI board for the output, and has a crazy extra feature the uses a USB port.

    The Uber-scaler will hopefully do decent de-interlacing as well as scaling, so if some systems do force 480i / 576i mode (like the N64), the scaler can be used together with the HDMI board.


    I have a GBS-8220 scaler board too, but the new one will hopefully solve some of the issues found on that too.
    (many of the GBS boards show sparklies on the image when inputting a 50Hz signal, but that can be fixed with a simple RC filter mod on the SDRAM clock.)


    We're also looking into chips for a future version of the HDMI board which can scale from 240p / 480p / 720p and output both HDMI and VGA (or Component) simultaneously at 720p or 1080p.


    I'm still looking to test the Xbox with the HDMI mod next, I've just been so busy with other projects.
    Can't wait to see what a direct feed of 720p or 1080i looks like. ;)


    OK, I'm rambling again.

    OzOnE.
     
    Last edited: Apr 24, 2015
  9. bagheera

    bagheera Rising Member

    Joined:
    Aug 1, 2014
    Messages:
    65
    Likes Received:
    3

    I had already seen it. They kind of piss me off. They really act like they made something very special. It is not hard to code at all. There is a ton of people that already did Gameboy to VGA. It was one of the first things I did, to learn VHDL.. Also, they make it look like doing nearest neighbor scaling is special/hard.

    I wonder, do they include audio over HDMI?


    Could these be open sourced/is there an open source PCB that does the same thing? I am sure a lot of projects will benefit from it.

    One thing I think that is going to be annoying is soldering the wires to the DAC and then moving them through one of the notches in the shield of the DC (and it will also apply to some other consoles). I think the solder joints will break fairly easily from the DAC.

    Did you first solder the wires to the DAC and the HDMI board and then install the shield? Because I think it would be easier to first solder wires to the DAC, then install the shield and then solder the wires to the DAC, but it is hard to tell apart the wires, unless you have a lot of different colors.. Anyways I am just curious how you did the installation and how you made it as easy as possible for yourself. :p
     
    Last edited: Apr 24, 2015
  10. Fandangos

    Fandangos <B>Site Supporter 2013</B>

    Joined:
    Sep 19, 2012
    Messages:
    604
    Likes Received:
    23
    So if I understood it correctly the first batch of this board will only work on N64 and consoles that came after it?

    For systems like genesis and snes it will be a different board?
    Is there any chance for an atari 2600 solution?
     
  11. bagheera

    bagheera Rising Member

    Joined:
    Aug 1, 2014
    Messages:
    65
    Likes Received:
    3
    The board will work with systems that have a separate video DAC. The separate video DAC makes it possible to read in the digital video data. I guess mostly newer systems have a separate DAC.

    Genesis and SNES are a bit harder, because there is not a digital video signal available. You would have to recreate the graphics chip partially/fully, just like with NES RGB/HDMI. An easier option would be to convert the analog video signal back to digital again. Supposedly that can be done lossless (it has been talked about before in this thread), but I don't really know too much about that.
     
  12. Fandangos

    Fandangos <B>Site Supporter 2013</B>

    Joined:
    Sep 19, 2012
    Messages:
    604
    Likes Received:
    23
    Any news on this? Did you got the proto boards ozone?
     
  13. MonkeyBoyJoey

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

    Joined:
    Mar 1, 2015
    Messages:
    1,738
    Likes Received:
    312
    Hey OzOnE, will your HDMI mod board work on the PS1? If so, can you try it out on one? I might just avoid a PS1 VGA mod if I can go HDMI.
     
  14. bagheera

    bagheera Rising Member

    Joined:
    Aug 1, 2014
    Messages:
    65
    Likes Received:
    3
    You need to solder 24 wires for the colors, 3 wires for hsync, vsync and csync and 1 wire for the pixel clock. And this all needs to be done to an IC with a 0.5 mm pitch. There seem to be some revisions that actually have testpads for every signal you need, but it is still a very time consuming process. And the wires will break off easily if you have to drag them to the HDMI board. I think a separate board with solder pads routed to a ffc connector would make this a lot better already. A QSB that can be directly soldered to the DAC/GPU(?) would be nice too, but not sure how feasible it is (especially with all the PS1 revisions).

    I had a look at the hsync, vsync and pixel clock relations. They do not follow the CEA-861 standard (at least for 576i and 288p), so it will most likely not work very well.. This seems to be quite a lot of trouble for a system that I think you can also play on PS3(?).
     
  15. MonkeyBoyJoey

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

    Joined:
    Mar 1, 2015
    Messages:
    1,738
    Likes Received:
    312
    So would the board need some changes for the PS1 or would I be better off just using RGBHV on the PS1? Would the NTSC PS2s have the same issue?

    The PS3 does support PS1 game via emulation and early models like mine support PS2 games via actual PS2 hardware (I think that's how it is supported, it might be emulation though). They look really good with the HD upscaler option turned on. If you leave the HD upscaler option turned off on the PS3, PS1 games run at 480p via HDMI.

    One more question, will this board work with old video cards for MS-DOS/Windows 9X?
     
    Last edited: Jul 15, 2015
  16. link83

    link83 Enthusiastic Member

    Joined:
    Mar 22, 2008
    Messages:
    526
    Likes Received:
    8
    Just came across this thread, great work OzOnE! I cant wait to get one for my Dreamcast.

    Apologies if this has already been discussed, but have you considered having a custom FFC cable made for each system to solder to the DAC? Like marshallh has used for the N64 UltraHDMI:-
    [​IMG]
    Or although more costly, maybe even a DAC 'clip-on' solution could be used for some systems? Like the Wii drive clips:-
    [​IMG]
    Just some thoughts I had that might make installation easier :)
     
    Last edited: Jul 14, 2015
    MonkeyBoyJoey likes this.
  17. MonkeyBoyJoey

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

    Joined:
    Mar 1, 2015
    Messages:
    1,738
    Likes Received:
    312
    Wow, that would make installation so much easier!
     
  18. Lum

    Lum Officer at Arms

    Joined:
    Sep 30, 2010
    Messages:
    3,233
    Likes Received:
    42
    PS2 always maintains 240p should a game tell the hardware to do so. There's neither forced or optional upscaling or interlacing.
    However, many PS2 ports of 240p games were limited to 480i.
     
  19. MonkeyBoyJoey

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

    Joined:
    Mar 1, 2015
    Messages:
    1,738
    Likes Received:
    312
    I think you misunderstood me or what I said was confusing. Probably the latter.

    If you are referring to the part when I said the games are upscaled, I was talking about playing PS1 games on the PS3. When you play PS1 or PS2 games that run at 240p on a PS2, the PS2 system outputs 240p. Same for 480i games. Playing 240p or 480i PS1 and PS2 games on a PS3 with the HD upscaler turned off in system settings makes the PS3 output a 480p signal when using HDMI cables instead of 240p or 480i.

    I moved a line around in my original post to make it more clear. Sorry for any confusion.
     
  20. Vosse

    Vosse Well Known Member

    Joined:
    Aug 22, 2009
    Messages:
    1,731
    Likes Received:
    28
    That and PS1 games on PS3 cannot output in 240p either. Only 480i and above.

    The PSP 3000/GO can output PS1 games in 240p over component though with the interlaced setting
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page