Thanks a lot for precious info.
I just dunno if I will do it today, or tomorrow.
Which follows is the most complete and - and non-tested also - PS2 vmode list we can have for now.
I would be grateful if someone could carefully validate it.
Some rows can be checked only using the mentioned docs; others demand rule-of-three+tendency Excel calculations, binaries calculations and logical thought.
Despite of this contribution be totally optional, this "peer-review" task would be very appreciated here.
Code:
//
// Some of following vmodes gives BOSD and/or freezing, depending on the console version and the TV/Monitor set
// I believe that this symptom is due to a sofware limitation - more specifically, on BIOS - prior than a hardware one
//
// id description interlace mode field display dh dw magv magh dy dx syncv
// -- ----------- --------- ---- ----- ---------------------------------- -- ---- ---- -- -- ------------------
static GSM_predef_vmode predef_vmode[29] = {
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{ 00 , "NTSC p@60Hz Half Buffer", GS_NONINTERLACED, GS_MODE_NTSC, GS_FRAME, (u64)make_display_magic_number( 239 , 2559 , 0 , 3 , 25, 632 , 0x00C7800601A01802 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 01 , "NTSC i@60Hz Full Buffer", GS_INTERLACED, GS_MODE_NTSC, GS_FIELD, (u64)make_display_magic_number( 479 , 2559 , 0 , 3 , 50, 632 , 0x00C7800601A01801 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 02 , "PAL p@50Hz Half Buffer ", GS_NONINTERLACED, GS_MODE_PAL, GS_FRAME, (u64)make_display_magic_number( 287 , 2559 , 0 , 3 , 36, 652 , 0x00A9000502101404 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 03 , "PAL i@50Hz Full Buffer ", GS_INTERLACED, GS_MODE_PAL, GS_FIELD, (u64)make_display_magic_number( 575 , 2559 , 0 , 3 , 72, 652 , 0x00A9000502101401 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 04 , "VGA 640x480p@60Hz ", GS_NONINTERLACED, GS_MODE_VGA_640_60, GS_FRAME, (u64)make_display_magic_number( 479 , 1279 , 0 , 1 , 34, 276 , 0x004780000210000A ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 05 , "VGA 640x480p@75Hz ", GS_NONINTERLACED, GS_MODE_VGA_640_75, GS_FRAME, (u64)make_display_magic_number( 479 , 1279 , 0 , 1 , 18, 356 , 0x0067800001000001 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 06 , "VGA 800x600p@60Hz ", GS_NONINTERLACED, GS_MODE_VGA_800_60, GS_FRAME, (u64)make_display_magic_number( 599 , 1599 , 0 , 1 , 26, 420 , 0x0089600001700001 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 07 , "VGA 800x600p@75Hz ", GS_NONINTERLACED, GS_MODE_VGA_800_75, GS_FRAME, (u64)make_display_magic_number( 599 , 1599 , 0 , 1 , 23, 468 , 0x0069600001500001 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 08 , "VGA 1024x768p@60Hz ", GS_NONINTERLACED, GS_MODE_VGA_1024_60, GS_FRAME, (u64)make_display_magic_number( 767 , 2047 , 0 , 1 , 34, 580 , 0x00CC000001D00003 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 09 , "VGA 1024x768p@75Hz ", GS_NONINTERLACED, GS_MODE_VGA_1024_75, GS_FRAME, (u64)make_display_magic_number( 767 , 1023 , 0 , 0 , 30, 260 , 0x006C000001C00001 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 10 , "VGA 1280x1024p@60Hz ", GS_NONINTERLACED, GS_MODE_VGA_1280_60, GS_FRAME, (u64)make_display_magic_number( 1023 , 1279 , 0 , 0 , 40, 348 , 0x0070000002600001 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 11 , "VGA 1280x1024p@75Hz ", GS_NONINTERLACED, GS_MODE_VGA_1280_75, GS_FRAME, (u64)make_display_magic_number( 1023 , 1279 , 0 , 0 , 40, 380 , 0x0070000002600001 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 12 , "HDTV 720x480p@60Hz ", GS_NONINTERLACED, GS_MODE_DTV_480P, GS_FRAME, (u64)make_display_magic_number( 479 , 1439 , 0 , 1 , 35, 232 , 0x00C78C0001E00006 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 13 , "HDTV 1920x1080i@60Hz ", GS_INTERLACED, GS_MODE_DTV_1080I, GS_FIELD, (u64)make_display_magic_number( 1079 , 1919 , 0 , 0 , 40, 238 , 0x0150E00201C00005 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
{ 14 , "HDTV 1280x720p@60Hz ", GS_NONINTERLACED, GS_MODE_DTV_720P, GS_FRAME, (u64)make_display_magic_number( 719 , 1279 , 0 , 0 , 24, 302 , 0x00AB400001400005 ), // Taken (and calculated) from PS2 Linux Kit (ps2gs.c) / Neoscientists' blue (ps2videomodes.txt)
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{ 15 , "VGA 640x960i@60Hz ", GS_INTERLACED, GS_MODE_VGA_640_60, GS_FIELD, (u64)make_display_magic_number( 959 , 1279 , 1 , 1 , 40, 275), 0x004F80000210000A }, // doctorxyz's experimentations from original GS_MODE_VGA_640_60 vmode. Values were taken, adopted and recalculated
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{ 16 , "HDTV576p@50Hz ", GS_NONINTERLACED, GS_MODE_DTV_576P, GS_FRAME, (u64)make_display_magic_number( 575 , 1312 , 0 , 1 , 64, 320), 0 }, // From patters98's idea, EEUG's answer and dlanor's experimentations
{ 17 , "NTSC(PS1 PAL game) ", GS_NONINTERLACED, GS_MODE_DTV_480P, GS_FRAME, (u64)make_display_magic_number( 255 , 2559 , 0 , 1 , 12, 736), 0x00C78C0001E00006 }, // From dlanor's experimentations and his discussions with DarkCrono666
{ 18 , "PAL(PS1 NTSC game) ", GS_NONINTERLACED, GS_MODE_DTV_576P, GS_FRAME, (u64)make_display_magic_number( 255 , 2559 , 0 , 1 , 23, 756), 0 } // From dlanor's experimentations and his discussions with DarkCrono666
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{ 19 , "VGA 640x480p@72Hz ", GS_NONINTERLACED, GS_MODE_VGA_640_72, GS_FRAME, (u64)make_display_magic_number( 479 , 1279 , 0 , 1 , 26, 316 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list
{ 20 , "VGA 640x480p@85Hz ", GS_NONINTERLACED, GS_MODE_VGA_640_85, GS_FRAME, (u64)make_display_magic_number( 479 , 1279 , 0 , 1 , 10, 396 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list
{ 21 , "VGA 800x600p@56Hz ", GS_NONINTERLACED, GS_MODE_VGA_800_56, GS_FRAME, (u64)make_display_magic_number( 599 , 1599 , 0 , 1 , 29, 372 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list
{ 22 , "VGA 800x600p@72Hz ", GS_NONINTERLACED, GS_MODE_VGA_800_72, GS_FRAME, (u64)make_display_magic_number( 599 , 1599 , 0 , 1 , 20, 516 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list
{ 23 , "VGA 800x600p@85Hz ", GS_NONINTERLACED, GS_MODE_VGA_800_85, GS_FRAME, (u64)make_display_magic_number( 599 , 1599 , 0 , 1 , 17, 564 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list
{ 24 , "VGA 1024x768p@70Hz ", GS_NONINTERLACED, GS_MODE_VGA_1024_70, GS_FRAME, (u64)make_display_magic_number( 767 , 2047 , 0 , 1 , 32, 420 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list. The guessing work made for DW and MAGH can be wrong.
{ 25 , "VGA 1024x768p@85Hz ", GS_NONINTERLACED, GS_MODE_VGA_1024_85, GS_FRAME, (u64)make_display_magic_number( 767 , 1023 , 0 , 0 , 28, 100 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were calculated with rule-of-three process, using the closest values as possible from the PS2 Linux Kit / Neoscientists' blue list. The guessing work made for DW and MAGH can be wrong.
{ 26 , "DVD NTSC@60Hz ", GS_NONINTERLACED, GS_MODE_DVD_NTSC, GS_FRAME, (u64)make_display_magic_number( 479 , 1439 , 0 , 1 , 35, 232 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were copied-and-pasted from the GS_MODE_DTV_480P vmode (except for the syncv value, which was zeroed here - by precaution)
{ 27 , "DVD PAL@50Hz ", GS_NONINTERLACED, GS_MODE_DVD_PAL, GS_FRAME, (u64)make_display_magic_number( 575 , 1312 , 0 , 1 , 64, 320), 0 }, // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were copied-and-pasted from the GS_MODE_DTV_576P vmode
{ 28 , "DVD 480p@60Hz ", GS_NONINTERLACED, GS_MODE_DVD_480P, GS_FRAME, (u64)make_display_magic_number( 479 , 1439 , 0 , 1 , 35, 232 , 0 ), // The Interlace, Mode & Field settings were taken from gsKit, the remaing ones were copied-and-pasted from the GS_MODE_DTV_480P vmode (except for the syncv value, which was zeroed here - by precaution)
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
};