MiSTer-devel / Arcade-Cave_MiSTer

MiSTer arcade core for Cave 68K arcade classics.
GNU General Public License v3.0
75 stars 18 forks source link

No output on 15KHz CRT through Direct Video #97

Open pvalkone opened 2 years ago

pvalkone commented 2 years ago

I'm using the Direct Video feature to output an analogue signal to my Sony PVM. However, when I boot the Cave 68k core it doesn't output any video (i.e. the screen remains blank).

My signal chain is as follows:

DE10-Nano HDMI output ->
Generic HDMI cable ->
Tendak HDMI-to-VGA dongle (https://www.tendak.com/products/hdmi-to-vga) ->
Retro Gaming Cables MiSTER RGB SCART cable ->
gscartsw_lite SCART switch ->
RGC SCART-to-BNC breakout cable ->
Sony PVM-9042QM monitor

I've also tried using another CRT monitor (a Philips CM8833), but the end result was still the same. Forcing 60Hz output from the core configuration seemed to not to have any effect, either.

Other arcade, console and computer cores with direct video support work just fine on the same setup, and I've had no issues when outputting a regular HDMI signal to a LCD display.

FWIW, I've found some reports of similar symptoms on the forums, but sadly no fixes or workarounds.

As an example, here's the MiSTer menu core debug output for ESP Ra.De (with the default core configuration). All the other games supported by the core behave in an identical way.

xml_load [/media/fat/_Arcade/ESP Ra.De..mra]
XML: /media/fat/_Arcade/ESP Ra.De..mra, RBF: /media/fat/_Arcade/cores/Cave_20220619.rbf
Loading RBF: /media/fat/_Arcade/cores/Cave_20220619.rbf
Bitstream size: 4024764 bytes
restarting the /media/fat/MiSTer

Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
MiSTer code by Sorgelig

Version 220529

Core path: /media/fat/_Arcade/cores/Cave_20220619.rbf
XML path: /media/fat/_Arcade/ESP Ra.De..mra
Looking for root device...
FileOpenEx(open) File:/media/fat/config/device.bin, error: No such file or directory.
Using SD card as a root device
Identified 8BIT core*** Found SDRAM config: 3
Core name is "esprade"
** altcfg: got cfg 1
INI_PARSER : Start INI parser for core "esprade"(cave), video mode "0x0@0.0".
INI_PARSER : Opened file MiSTer_alt_1.ini with size 6669 bytes.
INI_PARSER : line(0): "[MiSTer]".
INI_PARSER : Got SECTION 'MiSTer'
INI_PARSER : line(1): "key_menu_as_rgui=0".
INI_PARSER : Got VAR 'key_menu_as_rgui' with VALUE 0
INI_PARSER : line(1): "forced_scandoubler=0".
INI_PARSER : Got VAR 'forced_scandoubler' with VALUE 0
INI_PARSER : line(1): "ypbpr=0".
INI_PARSER : Got VAR 'ypbpr' with VALUE 0
INI_PARSER : line(1): "composite_sync=1".
INI_PARSER : Got VAR 'composite_sync' with VALUE 1
INI_PARSER : line(1): "vga_scaler=0".
INI_PARSER : Got VAR 'vga_scaler' with VALUE 0
INI_PARSER : line(1): "hdmi_audio_96k=1".
INI_PARSER : Got VAR 'hdmi_audio_96k' with VALUE 1
INI_PARSER : line(1): "keyrah_mode=0x18d80002".
INI_PARSER : Got VAR 'keyrah_mode' with VALUE 0x18d80002
INI_PARSER : line(1): "vscale_mode=1".
INI_PARSER : Got VAR 'vscale_mode' with VALUE 1
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "vscale_border=0".
INI_PARSER : Got VAR 'vscale_border' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "rbf_hide_datecode=1".
INI_PARSER : Got VAR 'rbf_hide_datecode' with VALUE 1
INI_PARSER : line(1): "menu_pal=0".
INI_PARSER : Got VAR 'menu_pal' with VALUE 0
INI_PARSER : line(1): "hdmi_limited=2".
INI_PARSER : Got VAR 'hdmi_limited' with VALUE 2
INI_PARSER : line(1): "".
INI_PARSER : line(1): "direct_video=1".
INI_PARSER : Got VAR 'direct_video' with VALUE 1
INI_PARSER : line(1): "fb_size=0".
INI_PARSER : Got VAR 'fb_size' with VALUE 0
INI_PARSER : line(1): "fb_terminal=1".
INI_PARSER : Got VAR 'fb_terminal' with VALUE 1
INI_PARSER : line(1): "osd_timeout=30".
INI_PARSER : Got VAR 'osd_timeout' with VALUE 30
INI_PARSER : line(1): "".
INI_PARSER : line(1): "osd_rotate=0".
INI_PARSER : Got VAR 'osd_rotate' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "recents=0".
INI_PARSER : Got VAR 'recents' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "bootcore_timeout=10".
INI_PARSER : Got VAR 'bootcore_timeout' with VALUE 10
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "reset_combo=0".
INI_PARSER : Got VAR 'reset_combo' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "dvi_mode=0".
INI_PARSER : Got VAR 'dvi_mode' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "video_mode=3".
INI_PARSER : Got VAR 'video_mode' with VALUE 3
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "video_info=0".
INI_PARSER : Got VAR 'video_info' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "vsync_adjust=2".
INI_PARSER : Got VAR 'vsync_adjust' with VALUE 2
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "refresh_min=0".
INI_PARSER : Got VAR 'refresh_min' with VALUE 0
INI_PARSER : line(1): "refresh_max=0".
INI_PARSER : Got VAR 'refresh_max' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "video_mode_ntsc=2".
INI_PARSER : Got VAR 'video_mode_ntsc' with VALUE 2
INI_PARSER : line(1): "video_mode_pal=3".
INI_PARSER : Got VAR 'video_mode_pal' with VALUE 3
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "controller_info=6".
INI_PARSER : Got VAR 'controller_info' with VALUE 6
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "jamma_vid=0x04D8".
INI_PARSER : Got VAR 'jamma_vid' with VALUE 0x04D8
INI_PARSER : line(1): "jamma_pid=0xF3AD".
INI_PARSER : Got VAR 'jamma_pid' with VALUE 0xF3AD
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "sniper_mode=0".
INI_PARSER : Got VAR 'sniper_mode' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "browse_expand=0".
INI_PARSER : Got VAR 'browse_expand' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "logo=0".
INI_PARSER : Got VAR 'logo' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "shared_folder=".
INI_PARSER : Got VAR 'shared_folder' with VALUE
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "waitmount=/media/fat/_Console".
INI_PARSER : Got VAR 'waitmount' with VALUE /media/fat/_Console
INI_PARSER : line(1): "".
INI_PARSER : line(1): "[AtariST]".
INI_PARSER : line(0): "composite_sync=0".
INI_PARSER : line(0): "".
> > > wait for /media/fat/_Console mount < < <
get cfgstring 0 = cave
get cfgstring 1 = NULL
get cfgstring 2 = D0O12,Aspect ratio,Original,Fullscreen,[ARC1],[ARC2]
get cfgstring 3 = D0O4,Flip screen,Off,On
get cfgstring 4 = D0O3,Rotate screen,Off,On
get cfgstring 5 = -
get cfgstring 6 = OOR,CRT H adjust,0,+1,+2,+3,+4,+5,+6,+7,-8,-7,-6,-5,-4,-3,-2,-1
get cfgstring 7 = OSV,CRT V adjust,0,+1,+2,+3,+4,+5,+6,+7,-8,-7,-6,-5,-4,-3,-2,-1
get cfgstring 8 = O57,Scandoubler,None,HQ2x,CRT 25%,CRT 50%,CRT 75%
get cfgstring 9 = O8,Refresh rate,57Hz,60Hz
get cfgstring 10 = -
get cfgstring 11 = T9,Service mode
get cfgstring 12 = DIP
get cfgstring 13 = P1,Debug
get cfgstring 14 = P1OA,Sprites,On,Off
get cfgstring 15 = P1OB,Layer 0,On,Off
get cfgstring 16 = P1OC,Layer 1,On,Off
get cfgstring 17 = P1OD,Layer 2,On,Off
get cfgstring 18 = P1OE,Row scroll,On,Off
get cfgstring 19 = P1OF,Row select,On,Off
get cfgstring 20 = P1OG,Sprite framebuffer,On,Off
get cfgstring 21 = P1OH,System framebuffer,On,Off
get cfgstring 22 = P1-
get cfgstring 23 = P1OIL,PCB,Dangun Feveron,DoDonPachi,DonPachi,ESP Ra.De.,Puzzle Uo Poko,Guwange,Gaia
get cfgstring 24 = -
get cfgstring 25 = R0,Reset
get cfgstring 26 = J,B0,B1,B2,B3,Start,Coin,Pause
get cfgstring 27 = V,v220608 by nullobject
get cfgstring 28 = NULL

// Status Bit Map:
//              Upper                          Lower
// 0         1         2         3          4         5         6
// 01234567890123456789012345678901 23456789012345678901234567890123
// 0123456789ABCDEFGHIJKLMNOPQRSTUV 0123456789ABCDEFGHIJKLMNOPQRSTUV
// XXXXXXXXXXXXXXXXXXXXXX  XXXXXXXX

Disabling vsync_adjust because of enabled direct video.
Calculate PLL for 12.5870 MHz:
Fvco=402.784000, C=32, M=8, K=0.055680(239143779) -> Fpix=12.587000
FileOpenEx(open) File:/media/fat/config/esprade_gamma.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/esprade_scaler.cfg, error: No such file or directory.
Filter '', phases: 0 adaptive: false
Filter '', phases: 0 adaptive: false
Filter '', phases: 0 adaptive: false
video_set_filter: flt_flags=7
Filter '', phases: 0 adaptive: false
Send HDMI parameters:
video: 640(731), 30(6), 60(60), 70(3), 240(254), 4(2), 4(4), 14(2), -hsync, -vsync

PLL: 0x4, 0x404, 0x3, 0x10000, 0x5, 0x1010, 0x9, 0x2, 0x8, 0x7, 0x7, 0xE410B63, Fpix=12.587000
Opened /dev/i2c-1 for device 0x39
FileOpenEx(open) File:/media/fat/config/esprade_shmask.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/esprade_afilter.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/esprade_volume.cfg, error: No such file or directory.
sending keymap: C48
Loading config esprade.CFG
FileOpenEx(open) File:/media/fat/config/esprade.CFG, error: No such file or directory.
arcade_root /media/fat/_Arcade
Found dir: games/mame
mame_root games
Using interleave: input 8, output 16
     0: file: games/mame/esprade.zip/u42.int, start=0, len=0, map(2)=1
        file: games/mame/esprade.zip/u41.int, start=0, len=0, map(2)=10
Disable interleave
100000: file: games/mame/esprade.zip/eeprom-esprade.bin, start=0, len=0
100080: file: games/mame/esprade.zip/esp_u19.u19, start=0, len=0
500080: file: games/mame/esprade.zip/esp_u54.u54, start=0, len=0
900080: file: games/mame/esprade.zip/esp_u55.u55, start=0, len=0
D00080: file: games/mame/esprade.zip/esp_u52.u52, start=0, len=0
1100080: file: games/mame/esprade.zip/esp_u53.u53, start=0, len=0
1500080: file: games/mame/esprade.zip/esp_u51.u51, start=0, len=0
Using interleave: input 8, output 16
1900080: file: games/mame/esprade.zip/esp_u63.u63, start=0, len=0, map(2)=1
        file: games/mame/esprade.zip/esp_u64.u64, start=0, len=0, map(2)=10
Disable interleave
Using interleave: input 8, output 16
2100080: file: games/mame/esprade.zip/esp_u65.u65, start=0, len=0, map(2)=1
        file: games/mame/esprade.zip/esp_u66.u66, start=0, len=0, map(2)=10
Disable interleave
file_finish: 0x2900080 bytes sent to FPGA

     0: data: 1(0x1) bytes from xml
file_finish: 0x1 bytes sent to FPGA

Sending nvram (idx=2, size=128) to core
FileOpenEx(open) File:/media/fat/config/dips/ESP Ra.De..dip, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/cheats/ESP Ra.De..dip, error: No such file or directory.
ttyS1: 0
ttyS1: 0
Open up to 30 input devices.
make_unique(289B,0057,-1)
make_unique(0E8F,3013,1)
make_unique(16C0,05E1,1)
make_unique(045E,02A1,1)
make_unique(8282,3201,1)
make_unique(1209,FACA,1)
opened 0( 0): /dev/input/event3 (046d:b342) 0 "00:07:04:63:29:67/f4:73:35:41:63:b7" "Keyboard K380 Keyboard"
opened 1( 1): /dev/input/event1 (1c59:0027) 0 "usb-ffb40000.usb-1.1/input0" "Retro Games LTD THEMouse"
opened 2( 1): /dev/input/mouse0 (1c59:0027) 0 "usb-ffb40000.usb-1.1/input0" "Retro Games LTD THEMouse"
opened 3( 3): /dev/input/event0 (0079:0011) 0 "usb-ffb40000.usb-1.5/input0/GH-SP-5027-1 H2" "SWITCH CO.,LTD. USB Gamepad "
INFO: Video resolution: 320 x 240, fHorz = 15.6KHz, fVert = 57.4Hz, fPix = 7.00MHz
INFO: Frame time (100MHz counter): VGA = 1740799, HDMI = 1740799
INFO: AR = 0:0, fb_en = 0, fb_width = 0, fb_height = 0
Set vertical scaling to : 240
video_set_filter: flt_flags=71
Filter '', phases: 0 adaptive: false
kuzearcade commented 1 year ago

Same issue here, I've tested on multiple 15khz monitors

kurohouou commented 1 year ago

I have the same issue, I can’t get Cave games to display on any CRT of mine when using my HDFuryX3 (which is the best DAC you can get right now, more accurate then the crap AG6200). When I plug in my cable to the Analog I/O board it works fine.. so it’s just with some DACs that there seem to be these issues. No other Arcade or Console core has given me a problem. Happy to provide more data or testing as needed.

MikeS11 commented 8 months ago

Hi All, Try this update: cave_20231030.zip. The HSync and VSync on the Cave arcades are very non standard, so I've adjusted them both to help.

pvalkone commented 7 months ago

Hi Mike,

Firstly, thanks for working on this, and sorry for not getting back to you earlier.

Try this update: cave_20231030.zip. The HSync and VSync on the Cave arcades are very non standard, so I've adjusted them both to help.

The update is an improvement in the sense that with it I can finally get a picture. However, the sound is garbled (clip) and the sync drops out every once in a while. Changing the refresh rate from 57 Hz to 60 Hz doesn't seem to have an effect.