NeoVGA FAQ and Order Thread

mikejmoffitt

Mickey's Coach
Joined
Feb 6, 2014
Posts
578
We're at the end of the development road here, so its time to collect the info from the megathread so the same questions aren't answered ten times and people can submit interest for the final product.

If you are interested in a kit, please leave a post and/or send me an email at mikejmoffitt {at} gmail {dot} com.

pcb_small.png


noscale_1.jpg


What is NeoVGA?
NeoVGA is a mod accessory for an MVS, AES, CD*, and Capcom CPS2 system that provides high quality, accurate additional video outputs without lag. You can read about its development and theory here.


What is the price?
The price for a kit is $150. For volume options, contact me personally, especially if you are interested in offering it as a CMVS option.


You jerk, why is it expensive? It should be $50!
I was originally going to be manufacturing these by hand to save costs. However, that only works if I don't consider the value of my time investment. After building about 8 of these by hand I'm tired of it, so they're being manufactured in a factory in small runs by MacroFab. The first board from them came in and is excellent, so I feel fully confident going with them. Any profit from the price (and it's not much) is for the amount of time and resources I've put into this relatively niche project, and also buys you my attention should you have trouble and wish to send me an e-mail for help.


What video outputs do I get from NeoVGA?
NeoVGA will output all of these options:
  • 480p VGA (640x480)
  • 480p Component Video (YPbPr 640x480)
  • 240p RGB (320x240)
  • 240p Component Video (YPbPr 320x240)

The 480p modes are great for a modern LED-LCD, LCD, Plasma, or Projection setup. The 240p modes are great for driving a CRT; many WEGA series Trinitron TVs take 240p component very well.

Sync-on-green may be enabled for VGA mode as well for those who require it.


What is the installation like?
The installation is not hard, just tedious. A number of wires must be soldered to the Neo-Geo board - 19 bits for pixel data, 2 for control signals, one clock, power, and ground. 6 wires must go to the VGA port as well for output. Optionally, switches may be installed for options (or hard-wired).

As I get my hands on new Neo-Geo systems, I can create wiring diagrams. A general wiring guide is available for those who are using a system I have not yet been able to try. All of the Neo-Geo systems have the same points on them, but they are arranged differently in some. I would say this install requires a medium level of familiarity with electronics.

The clock wire must be short, and is ideally shielded. I use old wi-fi antennas to shield the clock. Because the clock goes through the 5V-tolerant buffers (to protect the FPGA), it is much more sensitive than usual. If you are having intermittent issues, especially on brighter flashing scenes, then it is likely that the clock line is too long or needs to be shielded.

The clock is the only tricky part. Here's a picture of how the coaxial cable can be grounded to the NeoVGA PCB's outer grounding ring for both grounding and stability:
tPqgCrg.jpg


I will be including a ~3-4" run of shielded wire for the clock. Because this wire is relatively short keep board positioning in mind.


Where is the wiring info?
A quick reference guide describing the board's pins: http://mikejmoffitt.com/neovga/docs/QuickReference.pdf
In addition, here are wiring diagrams for various PCBs: http://mikejmoffitt/com/neovga/diagrams


Will you install one for me?
I can't promise that kind of time commitment, but I will probably sell some MVS boards with the kit installed and ready to go. I'm sure many community members who are accustomed to working on CMVS and AES systems will be more than capable of offering assistance.


Why can't I just use the connections on the JAMMA edge?
NeoVGA pulls its video data digitally from the system before it ever goes analogue. This allows it to be relatively simple compared to a system that must use an ADC, possibly introduce a filter to correct errors, perform clock recovery, and have a buffer to render to. This kit is one that must be installed on the system itself, rather than as an external accessory.


How about scanlines?
NeoVGA has built-in scanline generation for 480p modes. Scanlines are synchronized to the VGA output and are always lined up correctly as a result (no "free-running" uglies). Scanlines may be darkened between 50% and 100%. On a monitor with a good scaler, the 100% scanlines look much like a BVM monitor.


Can it support other systems?
Theoretically any system with an exposed parallel pixel bus and at least double pixel clock can be supported. I have written firmware for it to support Capcom CPS2 (and probably CPS1) boards. Williams 1982 hardware will probably be supported at some point too (Joust, Robotron, Defender, Bubbles, Sinistar, etc). Most '80s and '90s arcade games can be supported, but it's a matter of me getting my hands on hardware and putting in the development time.

Many have asked about PGM boards. I'd have to look at the video DAC stage to know if the data can be pulled, so that's a maybe. Saturn/STV looks like a no from pictures of the PCB, but I could be wrong.


Is this better than transcoding my existing RGB into Component?
In general, just about any TV that has 480p component support or VGA support is going to handle those signals a lot better - they will mangle it a lot less. Many modern TVs support component video, but treat 240p as 480i which comes with plenty of downsides.


Does this have any lag?
The NeoVGA board does not introduce a noticeable amount of lag. Precisely, it introduces 1 / 262th of a frame of lag, which is one line's worth. It is up to your VGA or Component display to not introduce more lag. From my testing, most VGA monitors tend to introduce between 0-2 frames of lag for VGA scaling (from 640x480 to native panel res), and TVs with 480p Component support have similar results. One TV with a VGA to HDMI adapter had two frames of lag. In the better cases, this is comparable to a Framemeister, In just about every case it's far better than 240p component into a modern HDTV (no incorrect deinterlacing to worry about, no smearing).


How is compatibility?
So far, many monitors, TVs, and projectors have been tested. Here are some of the ones I've tested that have passed with flying colors:

-Viewsonic 19" TV with VGA
-NEC 2190UXP
-Dell 1800FP
-Dell 2000FP
-Dell 2007FPb
-Dell 2407WFPHC
-Dell 2408WFP
-Some dell 17"
-Viewsonic 19" 1080p monitor
-Sony W600-series HDTV (480p component)
-LG 42" LCD (480p component, and VGA to HDMI)
-Samsung 940Be (480p and 240p RGB/VGA)
-A large 40" Sony Bravia TV (VGA; don't remember the model off hand)

-Many SDTV CRTs (240p component and RGB)
-Many CRT VGA monitors (480p)

Only one LCD TV has had trouble with it, the GPX TDE1580B.


Can I use a VGA to HDMI encoder?
Yes, provided your VGA to HDMI encoder is okay with the Neo-Geo signal and your TV is okay with the resolution. I used this one, and the results were great.


Is it okay if my Neo-Geo is overclocked?
Yes, that's okay - as long as you give the original 12MHz clock to the NeoVGA and not your new higher frequency signal.


I live outside of the US, will you put a low value on the customs form to reduce fees?
I'd love to help, but I'm not willing to lie, especially not on an official government document, sorry, so the answer is no.




Until I have a nice graphical guide ready, I can at least get started here:
------------------------------ BASIC WIRING GUIDE -------------------------------

The NeoVGA board requires connections to the Neo-Geo pixel bus. This data comes from the DAC section of the original Neo-Geo system. On every MVS and AES system (and probably CD systems) there is a section with many resistors, two 74HC273 D latches, and a 74LS05 or 74LS06. We also need the composite Sync signal, in digital form, before it has its voltage divided for the JAMMA edge, and the 12MHz clock, which goes to the CPU and a few other things. We are using this because it is 2x the 6MHz pixel clock the DAC uses.

For each Neo-Geo system, the wiring point locations are a little different. All are principally similar, and some even match. For ones that I've already reverse-engineered, I can provide wiring diagrams. For ones I haven't yet wired up, here is a general guide on identifying connections. Once it has been figured out, it would be best to collect this information so others don't have to go through the same bother.

Finding The Pxel Data:
The 74HC273 latches feature the 15 RGB bits (5 per channel). Each chip has 8 D latches, with an input and an output. The outputs of both '273s go to the resistor array, which forms the original DAC. By identifying which resistors feed which channel (RGB), and tracing back certain resistor values to the related '273 output, we can determine which pin corresponds to which bit. After identifying a '273 output, we want to take the data from the corresponding D latch input. The input is adjacent to the output; we want the D input for the related Q output. Here is an image of the 74HC273's pinout:
SN54ABT574-pinout.jpg


The 15 bits for RGB will be on the 74HC273s. These get wired to the RGB inputs on the NeoVGA board, labeled 0 - 4. Bits 5-8 may be ignored, as they are for future use.
The /CLR signal will be on pin 1 of either 74HC273. Choose either.
The /DAK and /SHAD signals will be connected to the 74LS05/74LS06. Similarly, we want the input for the data, not the output. In this case, using the output may cause more serious metastability issues. The DAK and SHAD signals are replicated 3 times, so you can choose any one of the three inputs to pull from for each. The '06 and '05 are pinned like this:
74ls05b.gif


For tracing back from the resistors to the output of the chip in question, here is a list of resistors to map to bit values:

3.9k: Bit 0 (RGB)
2.2k: Bit 1 (RGB)
1k: Bit 2 (RGB)
470: Bit 3 (RGB)
220: Bit 4 (RGB)
8.2k: DAK
150: SHAD

Remember: You want the input related to the output driving the resistors!

You can see this forms a very crude linear DAC, but it's not super accurate - plus, they are usually 5% resistors. NeoVGA will wind up providing you with a more consistent DAC, even in 240p RGB mode.

Finding the control signals:
We need a few other signals: /CSYNC and CLK12. /CSYNC is composite sync, in the digital form before it is reduced in value for the JAMMA edge. From the JAMMA edge you can trace back to find a resistor divider. The signal from before this divider is the one you want. This varies very much between systems, and just like the other signals it is worth recording the tap point for future reference. If you use the signal from the JAMMA edge, it may work, but act funky if an RGB source is connected as well.

For the 12MHz clock signal, this is easiest to find at the CPU's pin 15. The wire for this signal must be very short. The NeoVGA board is extra-sensitive on the clock, because it goes through a level-shifting buffer. As a result, a short wire is recommended. Even better, a shielded wire (like from a Wi-Fi antenna cable) is the best one to use, as its grounding sheath may be connected to the ground ring on the NeoVGA board and to the ground pin near the CPU's pin 15. This is the most important wire. The others may be longer, so place the NeoVGA board as close to the 12MHz clock as possible. It doesn't have to be from the CPU, as long as it's the same 12M signal. This will also vary from system to system, and is noted on wiring diagrams.

Wiring VGA outputs:
This one is up to you. The six pins on the right side of the NeoVGA board are for the VGA output. the R, G, and B pins go to VGA pins 1, 2, and 3. The HSync and VSync signals go to pin 13 and 14 respectively. Finally, VGA pins 5, 6, 7, 8, and 10 should be connected to ground, which is the sixth pin on the NeoVGA board. The RGB wires should be shielded if they are going to be very long.

Wiring Power:
The lower-right of the board features two holes, one for Ground and one for a 5V connection. These should go to the main Ground and Power rails of your Neo-Geo board. Don't use a super-thin wire for either: NeoVGA only consumes around 150mA but it doesn't hurt to have extra thickness on your return path.

Component Video:
When enabled, the VGA output switches to Component Video. The SYNC signal is now mixed into the green channel, and the pins are remapped: VGA Red becomes Pr, VGA Green becomes Y, and VGA Blue becomes Pb. A common VGA-to-Component passive adapter will allow you to just use a VGA port and not have to wire a second port, which makes sense considering both aren't active at the same time anyway.
The HSync and VSync pins will continue to do their original thing in Component mode.

Configuration Jumpers:
At the top of the board are two chevron-shaped pads. The leftmost one will enable Sync-On-Green for VGA and RGB mode. The rightmost tells the NeoVGA board you are using an MV-1C, all-in-one-JAMMA, or other NEO-GRZ based system. This is to slightly modify the timings appropriately. Put a small solder blob to close the pad to enable these settings.

Options:
Scanlines, Component Video mode, and 240p mode are all user options. If the switches aren't installed, NeoVGA defaults to 480p VGA. The four option switches are in the top-left of the board, in a 2x4 pin array. Linking a hole on the right to the left enables the option: You may install a 2x4 header and use jumpers, or solder wires from the holes to switches. The pins on the right are the options, and the pins on the left are ground.

Programming Ports:
The 2x5 pin ports are for programming the NeoVGA board and aren't required (or populated) for the end-user. Don't mistakenly wire to these!

Mounting:
This one is up to you. NeoVGA has four holes for screws, should you wish to use them, but every Neo-Geo is a different shape and none have convenient mounting spots. The NeoVGA board should be close to the CPU clock, so you can't exactly mount it outside the board area. I usually tack it down firmly with some neatly placed hot glue for testing, but it's held quite well and the board is not expected to undergo any substantial mechanical shock. If you are designing a CMVS, you may be able to design a mounting system to utilize the screw holes.
 
Last edited:

buaku

Hardened Shock Trooper
Joined
Dec 3, 2007
Posts
437
Totally interested in ordering one!
Just let me know when you're ready.
 

Colorado Rockie

Terry Bogard's Taylor
Joined
Jan 5, 2012
Posts
1,680
Looks great. I'm to stupid to know how to install something like this on my own unfortunately.
 

JMKurtz

Tech Support Moderator,
20 Year Member
Joined
Aug 12, 2000
Posts
1,654
Stuck the thread for you - for such an awesome product - great work!
 

mikejmoffitt

Mickey's Coach
Joined
Feb 6, 2014
Posts
578
I added a rough draft install guide, because chances are documentation will only be partially complete when a few people get theirs at first.
 

mikejmoffitt

Mickey's Coach
Joined
Feb 6, 2014
Posts
578
Okay, I've got two wiring diagrams put together. I've set them up so the signals are indicated as they are on the PCB:

MV2:
MV2.png


MV1C:
MV1C.png


Before I make more I'll take some feedback on those. The other challenge is getting good quality PCB shots; I had to redraw that MV2 one because I just could not find one. My PCBs are in scrappy shape so they aren't suitable exactly either.
 

XeD

Super Sidekicks 2
Joined
Feb 18, 2015
Posts
106
I'll be down for one, maybe 2 if I can sell some of my extra arcade stuff.
 

aha2940

AH, A, COLUMBIAN!,
Joined
Dec 15, 2013
Posts
2,528
I will have to sell some of my stuff to afford one of these. Sigh. I am thinking of putting it on my 3-5 AES or on my MV2F, not sure which one will be easier.
 

bartre

Haomaru's Blade Shiner
10 Year Member
Joined
Oct 27, 2009
Posts
681
I'm in for one, pending a guide for an mv-2f
 

mikejmoffitt

Mickey's Coach
Joined
Feb 6, 2014
Posts
578
Banged out two more diagrams:

MV4:
MV4.png



MV1F:
MV1F.png


Big thanks to Buako for providing a good MV2 image.
 
Last edited:

quru

n00b
Joined
May 11, 2016
Posts
9
For the boards that use through-hole components, might it be easier to solder from the bottom side?
 

aha2940

AH, A, COLUMBIAN!,
Joined
Dec 15, 2013
Posts
2,528
For the boards that use through-hole components, might it be easier to solder from the bottom side?

I guess it's up to you how you install it, the diagrams show the solder points and that can be only done on the components side, but that does not mean it has to be soldered there. It looks better and more organized if done properly, but to each their own.
 

bartre

Haomaru's Blade Shiner
10 Year Member
Joined
Oct 27, 2009
Posts
681
So it can handle all video through the same port, right?
IE- if i only put in a VGA port, I can simply make a VGA->Component cable and all I have to do is switch the output mode on your chip, right?
 

mikejmoffitt

Mickey's Coach
Joined
Feb 6, 2014
Posts
578
So it can handle all video through the same port, right?
IE- if i only put in a VGA port, I can simply make a VGA->Component cable and all I have to do is switch the output mode on your chip, right?

Yep, that's how I pictured it as well and how I've installed it on my systems. A cheap off-the-shelf component to VGA cable (made for projectors) will do the job just fine.

I've put in a few more orders to slowly work down the list of people who requested one.
 

mikejmoffitt

Mickey's Coach
Joined
Feb 6, 2014
Posts
578
I sent out boatloads of PMs. Right now, boards are being ordered on an as-needed basis, so fulfillment is pretty slow. Once I begin work and get fancy things like a paycheck I can order a small stock to keep on-hand to reduce the wait time. I can also begin buying Neo-Geo boards I don't have in order to create more wiring diagrams.
 
Top