DFO mod (Dual Frequency Oscillator) for Neo Geo MVS (and more?)

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • DFO mod (Dual Frequency Oscillator) for Neo Geo MVS (and more?)

      Hi!

      Not sure how many people have come across these devices:



      Its the Dual Frequency Oscillator by micro.

      It is a drop in replacement for on-board crystal oscillators that can be programmed to run at a very exact frequency.
      These are primarily designed to offer onboard native PAL and NTSC timings for region modded consoles.
      They are also interesting for arcade use. Many arcade boards run at odd refresh rates that cause compatibility issues with digital displays or the OSSC for example.
      Digital displays are expecting a vertical refresh rate of 59.94Hz. The NeoGeo MVS has a refresh rate of 59.1856Hz.

      Since the refresh rate is a derivative of the main clock (24MHz in the case of the NeoGeo), changing the clock frequency will impact the refresh rate.

      ((59.94Hz / 59.1856Hz) * 24.00MHz) oscillator, ~ 24.3059MHz (Credit: mikejmoffitt, N-G.com)

      The DFO in the picture above is programmed with this new frequency. This is the result:



      I'm going to borrow straight from micro for the results here (Shumps Forum):



      You should notice that output resolution is now (720)320x240p rather than the usual 320x241p detected by the Framemeister.
      The black levels are additionally improved (though admittedly hard to see here...).

      The mod itself is super easy - just remove the existing crystal and drop in the DFO.

      Links:

      NFGgames.com
      Circuit-Board.de (German)
    • Has any done this mod to their MVS?

      I think Jamma Nation-X does it to his CMVS.

      Does the standard slow clock give you compatiblity issues with lcd’s? Dropped frames or stutters?

      From my understanding the frame regeneration on the HAS Supergun would over come this problem anyway?

      Can anyone provide some insight please.
    • Sorry I don't know enough to give specific specifics... but can clear up some issues with picky displays?
      It also sorts out the scanline issue on the Framemeister which detects a 320x241p resolution and gives odd thickneses (alternatively change V_WIDTH from 32 to 33).
      Tackling the issues at the source (the main clock) is also preferable as any aftermarket efforts are looking to map a 59.19Hz signal to 59.94Hz.
      Unless i am mistaken, the CSync regeneration on the HAS will only reshape/clean up the signal (@RGB), not alter the actual timings?

      I have only had one unit to play with and would be keen to test out a few more in different systems...
      Anyone interested in building a few of these units (plus some programmers??) They are sadly beyond my current soldering capabilities... ;(
    • nam9 wrote:

      They are also interesting for arcade use. Many arcade boards run at odd refresh rates that cause compatibility issues with digital displays or the OSSC for example.
      Digital displays are expecting a vertical refresh rate of 59.94Hz. The NeoGeo MVS has a refresh rate of 59.1856Hz.
      That's f*** stupid for OSSC makers to limit acceptable refresh rate to a such narrow range. They probably live out of reality where hardware throws a perfect 50.00Hz or 60.00Hz (well 59.94Hz but you got the point).
      Funny enough most "el cheapo" scalers accept almost anything...
      Also replacing the crystal can be an issue for people wanting to submit high scores as hardware isn't original (slightly overspeed).
      Oh and probably also an issue for "purists".

      xodaraP wrote:

      Interesting. This may be an idea for the CPS1 boards to allow switching between the 2 speeds since there's a +5v version

      Paging @Apocalypse
      Two simple crystals can do the trick too. Or a signal generated by the ARM.
      Looking for:
      - OutRun boardset even untested or not working



      01010011 01000101 01000011 01010010 01000101 01010100 00100000 01001101 01000101 01001110 01010101 00100000 01000111 01010101 01011001
    • True, I just thought this might be a clean solution to the problem, fairly complicated though.

      I guess it makes more sense for the refresh rate since you can set it to speeds that probably don't exist as their own crystal.

      I definitely agree with the above though, not sure why a scaler designed for games is so limited in its input refresh rate range.
    • xodaraP wrote:

      True, I just thought this might be a clean solution to the problem, fairly complicated though.
      This would be a great application i*m sure.

      I don't know what refresh rates the CPS1 boards put out, but you could find crystal timings that would correct to 59.94Hz as well as offer a '10'&'12'Hz switch.

      For the Neo Geo:
      1. 24.000000MHz main clock / 4 = 6.000000MHz pixel clock
      2. 6MHz / 384 pixel clocks per line = 15.625kHz horizontal rate
      3. 15.625kHz / 264 lines = 59.1856 frames/second
      Update.

      For the CPS1/2:
      1. ??? = 8.000000MHz pixel clock
      2. 8MHz / 512 pixel clocks per line = 15.625kHz horizontal rate
      3. 15.625kHz / 262 lines = 59.6374 frames/second
      Anyone know how the pixel clock is derived on the CPS1/2?

      The post was edited 5 times, last by nam9 ().

    • nam9 wrote:

      My understanding is that as there is no framebuffer involved, the refresh rate out is the same as the refresh rate in.
      It's the digital displays that are expecting a pure 59.94Hz and then trip over on the weird refresh...

      Correct me if i'm wrong!

      You're not wrong. OSSC leaves the refresh rate as is. That's why many OSSC owners pair it with a DVDO.
    • nam9 wrote:

      mmmonkey wrote:

      I see it's possible to use a Raspberry Pi as a programmer so will try that first.
      Interesting! Link?
      I have a Hex file I built a while back.. It may work, but I didn't test it as the DFO i sourced came pre-programmed...

      MVS24Clock.zip
      It's mentioned somewhere in the original NFGames thread I think, and the info is on GitHub - github.com/ikorb/cdceprog

      Cheers for the file, I'll hopefully get to try it in the next month or so.

      Ta
      Pete
    • nam9 wrote:

      For the CPS1/2:
      1. ??? = 8.000000MHz pixel clock
      2. 8MHz / 512 pixel clocks per line = 15.625kHz horizontal rate
      3. 15.625kHz / 262 lines = 59.6374 frames/second
      Anyone know how the pixel clock is derived on the CPS1/2?
      Ah. There it is:

      #define CPS_PIXEL_CLOCK (XTAL(16'000'000)/2)

      I forgot this has a video clock. So:
      1. 16.000MHz video clock / 2 = 8.000MHz pixel clock
      2. 8MHz / 512 pixel clocks per line = 15.625kHz horizontal rate
      3. 15.625kHz / 262 lines = 59.6374 frames/second
      ((59.94Hz / 59.6374Hz) * 16.000MHz) oscillator, 16.081184MHz
    • Apocalypse wrote:

      That's f*** stupid for OSSC makers to limit acceptable refresh rate to a such narrow range

      nem wrote:

      OSSC leaves the refresh rate as is. That's why many OSSC owners pair it with a DVDO.
      nem is correct, OSSC isn't limiting the refresh rate whatsoever... It's the shitty LCD's people hook it too that can't tolerate anything outside of 60.0hz.
      That's where the DVDO comes into play, again just as nem mentions.
      Get a nice 4k OLED and you won't need a DVDO (unless you want to run Midway Y/T/Wolf Unit, they are so wacky no moderen display will touch 'em without DVDO).

      OSSC totally lacks a frame buffer, as a result it can't change the refresh, but this is how/why its so fast (1~2ms).
      xRGB Mini has over 1 frame (16ms is 1.5 frames) of lag for this very reason, it works off a buffer.

      I think the oscillator has use, like in the CPS1 multi for example (so we can switch between 10/12mhz to support ALL the games properly/correctly).
      But in a MVS? To "fix" (yes I used quotes because nothing is actually wrong) its timing just to support shitty displays/scalers people shouldn't be using in the first place?
      Nope, I wouldn't and I can't say I'd recommend it to anyone else for this purpose.

      Original timing bad for your display/scaler? Use emulation (you might as well if you go monkey with the timing its no longer authentic anyway)!
      I find work arounds like this unacceptable (a similar one was suggested to "fix" SNES 60.1hz)... The problem isn't the console/arcade PCB original timing, its your display/scaler hardware.

      I imported a JPN Super Gameboy 2, because the USA Super Gameboy's clock speed is derived from the SNES's clock (its wrong).
      I own a copy of Super Mario Kart even tho I've got a SD2SNES... Can you guess why? The clock speed of the DSP emulation (its wrong).
      Original CPU, original clock speed, zero exceptions!

      Darksoft: CPS3, CPS2, F3, MVS
      RGB: RECO v2, HAS v3
      invzim: Jammafier v1.6b
      XianXi: JNX Raiden, SC Taito Classic, SC Sega System 16/24
      Frank_fjs: JAMMA Extender (Special Edition)

      The post was edited 12 times, last by jassin000 ().

    • xodaraP wrote:

      Isn't your DVDO doing exactly what you are trying to avoid?
      Applied to the output, in a sense yes... But the reason why its not the same...
      Changing the clock speed can alter the way the game plays, the games internal timings could be faster or slower.
      Changing the refresh rate of the display device only changes the rate of what's displayed (and what's not ultimately, aka frame drop) game play is 100% original.

      That's why I thought we all preferred real hardware over emulation, I know that's why I think its better.
      If you don't care about the gameplay/feel being perfectly preserved, why don't you use emulation (I'm not trying to be a dick, that's a legit question for you)?
      Darksoft: CPS3, CPS2, F3, MVS
      RGB: RECO v2, HAS v3
      invzim: Jammafier v1.6b
      XianXi: JNX Raiden, SC Taito Classic, SC Sega System 16/24
      Frank_fjs: JAMMA Extender (Special Edition)

      The post was edited 5 times, last by jassin000 ().

    • jassin000 wrote:

      nem is correct, OSSC isn't limiting the refresh rate whatsoever... It's the shitty LCD's people hook it too that can't tolerate anything outside of 60.0hz.That's where the DVDO comes into play, again just as nem mentions.
      Get a nice 4k OLED and you won't need a DVDO (unless you want to run Midway Y/T/Wolf Unit, they are so wacky no moderen display will touch 'em without DVDO).

      OSSC totally lacks a frame buffer, as a result it can't change the refresh, but this is how/why its so fast (1~2ms).
      xRGB Mini has over 1 frame (16ms is 1.5 frames) of lag for this very reason, it works off a buffer.
      I stand corrected, thanks.
      Looking for:
      - OutRun boardset even untested or not working



      01010011 01000101 01000011 01010010 01000101 01010100 00100000 01001101 01000101 01001110 01010101 00100000 01000111 01010101 01011001
    • jassin000 wrote:

      xodaraP wrote:

      Isn't your DVDO doing exactly what you are trying to avoid?
      Applied to the output, in a sense yes... But the reason why its not the same...Changing the clock speed can alter the way the game plays, the games internal timings could be faster or slower.
      Changing the refresh rate of the display device only changes the rate of what's displayed (and what's not ultimately, aka frame drop) game play is 100% original.

      That's why I thought we all preferred real hardware over emulation, I know that's why I think its better.
      If you don't care about the gameplay/feel being perfectly preserved, why don't you use emulation (I'm not trying to be a dick, that's a legit question for you)?

      Indeed. I just thought the DVDO would have the same issue we are trying to avoid which is why a lot of us play on CRT

      I don't know enough about how the DVDO does what it does nor have I used one to be able to compare