Recalbox sur TV CRT en RGB
-
Hi.
I tried RGB-Pi40Beta3, nice jobFirst boot, all was so ... ugly
Of course, i use my home made GPIO2SCART so i put :
dpi_output_format=5 in config.txt
and change dtoverlay=rgb-pi by dtoverlay=vga666
(but dtoverlay=rgb-pi works)Let see how i prefer use Rpi/CRT :
For emulationstation :
- I Prefer to use this timings : hdmi_timings 506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
(But your timings ar ok) - Another skin, this one isn't very nice on CRT.
For RetroArch :
-
I use vertically pixel perfect but not horizontally.
So INTERGER SCALE must be DISEABLE !!
and vertical pixels must be set in CUSTOM_VIEWPORT_HEIGHT. -
I use horizontally high resolution as :
hdmi_timings 1920 1 52 208 260 240 1 6 10 6 0 0 0 60 0 38400000 1
(i use this timings for all emulators) -
I Disable THREADED VIDEO (less input/video lag)
-
I Disable HW Bilinear Filtering (no nee with 1920 pixels)
(But needed if i use this timings - hdmi_timings 996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1) -
I use ASPECT RATIO INDEX : 22 (Custom)
This is my custom Viewports for Genesis :
aspect_ratio_index = "22"
video_smooth = "false"
video_scale_integer = "false"
video_threaded = "false"
custom_viewport_width = "1920"
custom_viewport_height = "224"
custom_viewport_x = "-14"
custom_viewport_y = "12"I always use 240p, all consoles/computers (usually) use 240p and clip to 239, 224, 192...
(Master System use 192p and have nice black bordesHave a high honrizontal resolution is perfect for all systems. No need to
Do not forget there a lot a game in 50Hz, open a 60Hz screen isn't adapted for scrolling quality
I see Mednafen pcengine isn't pixel perfect, 1x ratio is 288x232. Must use other emulator.
Some of Timings i use/used :
hdmi_timings=996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1
hdmi_timings=506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
hdmi_timings=336 1 10 30 34 252 1 15 3 42 0 0 0 50 0 6400000 1 AVEC BORDURES
hdmi_timings 480 1 29 35 66 234 1 4 10 18 0 0 0 60 0 9600000 1
hdmi_timings=990 1 22 94 116 240 1 6 10 6 0 0 0 60 0 19200000 1
hdmi_timings=820 1 42 260 100 240 1 6 10 6 0 0 0 60 0 19200000 1Perfect
hdmi_timings=320 1 12 32 44 240 1 6 10 6 0 0 0 60 0 6400000 1
hdmi_timings=506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
hdmi_timings=996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1
hdmi_timings=1920 1 52 208 260 240 1 6 10 6 0 0 0 60 0 38400000 1
hdmi_timings=512 1 16 48 64 288 1 3 5 6 0 0 0 50 0 9600000 1I'm will search for more 50Hz resolution.
- Yes, in this way, RetroArch GUI isn't pixel perfect.
- I Prefer to use this timings : hdmi_timings 506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
-
I think i found why Mednafen PcEngine uses 232 lines.
The PcEngine can render several resolutions.
256x224 to 512x242, most commonly 256x239.
(here, timings in 1920 are welcome).Mednaden render first line at 4 (0 to 239), the 4 first lines are ignored.
Mednaden render last line at 235 (0 to 239), the 4 last lines are ignored.
On a 240p (i think, 239 lines are useable on 240) game, 4 to 235 = 232 lines.I think the first 4 lines and the last 4 lines are unused to show pixels because games never use them.
All that remains to verify.
-
-
i always set video_crop_overscan to false.
This is only a retroarch option.Mednafen PcEngine standalone also "crop" to 232p.
-
@ironic thanks again for your work around hdmi_timings, it saves time to all of us. On my side, I finished a VGA-SCART cable with external power supply on the pin 8 on the SCART, to auto switch the TV on AV mode on start up. It is required for arcade cabinet integration. The wiring schema is below :
-
@ian57 The 5V from the Pi isn't enough ?
-
@substring Nop, it does not work on my TV... As i read somewhere else, sometimes 5v will be ok, but most of the time not. I tested a 6.5V phone power supply successfully.
-
The ultimate VGA-RGBScart cable for arcade cabinet integration
-
Nice cable.
I give you Timings i use.
** 60Hz Timings ** Up to 224p
hdmi_timings 960 1 24 96 120 248 1 3 10 6 0 0 0 60 0 19200000 1
hdmi_timings 1920 1 48 192 240 248 1 3 10 6 0 0 0 60 0 38400000 1** 50Hz Timings ** Up to 256p
hdmi_timings 1920 1 48 192 240 302 1 3 10 6 0 0 0 50 0 38400000 1
hdmi_timings 960 1 24 96 120 302 1 3 10 6 0 0 0 50 0 19200000 1Do not forget you can change CRT parameters (as overscan) if you CRT isn't too old.
If you use Arcade monitor, use potentiometers.I think 960 horizontal pixel is enough but, feel free to try.
(Hum, up to 1920 is better...).If you want to play arcade games in 224p/60Hz, it is better to sort them.
I made a script (.bat) to extrach all 224p games from mame and fba romsets.
85% of best arcade games are 224p, never mind honrizontal resolution.There's others game which can"t be run in 224p. like R-Type (384x256x55Hz)
Let's see what wee can do...later.... -
@ironic but the horizontal resolution needs to adjust to the screen, by default many machines resice the native resolutions to 4:3 format and if you expand horizontal many games to 1920x224 the aspect ratio of the game is not 4:3
In SNES for example I need to put 1778x224 in snes.cfg (using 1920 timing) to view the correct aspect of the game.
The case of CPS3, is inside the list of 224p games but is 384 in the horizontal resolution, this shows incredible ovescan for inportant games like sf2.
I think the solution is a database, based on a one standar resolution and with the resicing parameters for every rom, is a lot of work I know but is the only way.
-
Yes, of course, i also resize horizontally to have 4/3 screen.
If not, the horizontal overscan is big and the game isn't 4/3.
In snes, i have approximately the same resolution.For a games of 256x224, 320x224 or 384x224, it's the same viewport.
If viewport is setup for a 224p 4/3 game, it can accept all 224p games.I have an arcade database of over 8000 games with many games informations. i'm writing severls small batabases of games, by vertical resolution and refresh rate.
I think also, databases are the only way to handle games specs.
(i do it since a year with games lists for severals Fba.libretro versions)We must do for MAME and FBA :
Databases of :- 190p at 50Hz
- 190p at 60Hz
- 200p at 50Hz
- 200p at 55Hz
- 200p at 60Hz
...
240p at 60Hz
...
256p at 55Hz
...
-
@ironic mame can generate .dat files with resolution info. I've been using that for some time, but take care to take an old mame version because the format changed on latter versions. As I've worked pretty much with advancemame which is based on Mame 0.106 i have the XML file.
-
Hi,
I follow this thread for some time trying to keep up with all the work/solutions when i will have time to do this.
There is one thing which is not clear for me : who is setting the correct resolution? Is it done by script before launching the emu (libretro core,...) or are you setting the timings and then when the emu ask for a particular resolution, the system changes accordingly (like emu, i.e. mame with autoswitch res, on a PC with soft15khz for example)?
If this is the first solution, how is the resolution modification during game execution is taken into account?
Of course, imho, the second solution seems to be the best one, but perhaps there is some limitation from the emu themselves.
Anyway, keep up the good work, it will be amazing to have a simple 15khz RGB output on the PI!
-
@Substring
Is it this type of database ?
8000 arcade games@onaryc
RGP-Pi (Recalbox 4.0)
For this time, there is one resolution by libreto core.
All resolutions can be found in config.txt file.
It's ready to play. emulator resolution is launched before emulator and emulationstation resolution is restored before back to emulationstation .I think changing resolution on the fly in game is impossible.
-
@ironic it's just from a mame .dat file find a mame exe, check its command line switches and you will see
-
@Substring
Ok, the MAME XMLLet see how i handle multiple resolutions by emulator.
Sorry, i don't use Configgen.Emulator :
- MAME
Few games :
- R-Type (rtype.zip) : 384x256x55Hz
- After Burner II (aburner2.zip) : 320x224x60Hz
- Golden Axe (goldnaxe.zip) : 320x224x60Hz
- Caveman Ninja (cninja.zip) : 320x240x60Hz
I use 4 resolutions (more come soon) :
1920 1 48 192 240 248 1 3 10 6 0 0 0 60 0 38400000 1 For fullscreen 224p at 60Hz games.
1888 1 48 184 232 278 1 3 10 6 0 0 0 55 0 38400000 1 For fullscreen 256p at 55Hz games.
960 1 24 96 120 248 1 3 10 6 0 0 0 60 0 19200000 1 For all others games which are not in databases (just for try games).
480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1 For EmulationStation.In datadases, i have referenced 2 games :
[aburner2.zip] to use 224p x 60Hz
[rtype.zip] to use 256p x 55HzFrom emulationstation/MAME, i have :
After Burner II
Caveman Ninja
Golden Axe
R-TypeIf i choose After Burner, the game is launching in fullscreen 224p 60Hz with "retroarchcustom.cfg" AND 224-60.cfg (for adapted viewport of all 240p games)
If i choose R-Type, the game is launching in fullscreen 256p 55Hz with "retroarchcustom.cfg" AND 256-55.cfg (for adapted viewport of all 256p games)
If i choose Golden Axe, the game is launching in a 960x240x60Hs screen with "retroarchcustom.cfg" AND standart.cfg (small viewport to try games) because is not in database
If i choose Caveman Ninja, the game is launching in a 960x240x60Hs screen with "retroarchcustom.cfg" AND standart.cfg (small viewport to try games) because is not in databaseI think is the perfect way to handle multiple resolutions per core.
It works greatThe databases is a file named "resolution.cfg" in recalbox/share/roms/mame/ folder
In this file there's :declare -A mame_games
#320x224x60Hz
mame_games[aburner2.zip]="224-60"
mame_games[goldnaxe.zip]="224-60"
mame_games[shinobi.zip]="224-60
...
#384x256x55Hz
mame_games[rtype.zip]="256-55"
...It's very easy to add game to resolution.
CODE :
. /recalbox/share/roms/mame/resolutions.cfg if [[ "$emulator" == "mame" ]]; then if [[ -n ${mame_games[$filename]} ]]; then if [[ ${mame_games[$filename]} == "224-60" ]]; then vcgencmd hdmi_timings 1920 1 48 192 240 248 1 3 10 6 0 0 0 60 0 38400000 1 tvservice -e "DMT 87" fbset -depth 8 && fbset -depth 16 retroarch -L /usr/lib/libretro/mame078_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/share/system/configs/retroarch/resolutions/${mame_games[$filename]}.cfg $1 elif [[ ${mame_games[$filename]} == "256-55" ]]; then vcgencmd hdmi_timings 1888 1 48 184 232 278 1 3 10 6 0 0 0 55 0 38400000 1 tvservice -e "DMT 87" fbset -depth 8 && fbset -depth 16 retroarch -L /usr/lib/libretro/mame078_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/share/system/configs/retroarch/resolutions/${mame_games[$filename]}.cfg $1 fi else vcgencmd hdmi_timings 960 1 24 96 120 248 1 3 10 6 0 0 0 60 0 19200000 1 tvservice -e "DMT 87" fbset -depth 8 && fbset -depth 16 retroarch -L /usr/lib/libretro/mame078_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/share/system/configs/retroarch/resolutions/standart.cfg $1 fi vcgencmd hdmi_timings 480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1 tvservice -e "DMT 87" fbset -depth 8 && fbset -depth 16 fi
Of course, it can (will) be optimised...
-
@ironic As 4.1 is coming closer and closer (have you seen the blog is back ?) this will be a little different as you can :
- add per system .cfg (well, you can already do it, that's something we made quite early in this topic)
- add per rom .cfg (not much different in fact)
- have configgen use hdmi_cvt or hdmi_timings resolutions. What is truly missing is to handle a per game resolution. Haven't found yet an elegant way to do it, except having a massive file saying which resolution for which game (that needs to be written. I wanted to have, for each arcade rom : resolution + screen rotation angle)
-
A per game resolution ins'nt needed, need resolutions/frequency for games...
Arcade games must be separate :- Mame or FBA.
- Honrizontal or vertical.
- Resolutions.
- Frequency
I have 350 MAME roms and 340 FBA.
I need more 30 resolutions/frames rate files.To handle all Mame/Fba games, there is need more files.
-
@ironic How to change the CRT overscan? A menu in the tv OSD? or need to tune potentiometers inside the TV?
-
If your CRT isn't too old, there's pehaps a hidden menu. On my 33cm WALTHAM (11AK57 chassis), i must :
- Open the menu : MENU KEY
- Hit : 4, 7, 2, 5
And the hidden config menu appear.
I can't tell you if your CRT have this menu and how open it.
On most CRT, you must : Open menu and enter a code (as me 4725).
Be carefoul, it's hard to understand all parameters.You must looking for on line for code and/or try all codes you can find.
--
I sorted all my MAME games by resolutions and by frequency.
You can see, i must use a lot (more 40) of resolution/frequancy.
And remember, here there no vertical games.
1st ligne, 224p is vertical resolution (no need honrizontal resolution).
And 60 is frequency (60Hz).We can bring together some frequency.
60.096154 is near 60.
But there is some specific resolutions as : 57.444853Hz.Is it near 55Hz or 60Hz ?
I think, games up to 240p must be 60Hz and over 240p, 55Hz.
And this : 27.407585Hz and 76.293945Hz ?And FBA ??!!
Work begin...