Ci-dessous un petit comparatif des sources de GroovyMame 143 et d'un Mame 143 officiel
MAME Sources build 143 CAPCOM CPS2 HARDWARE
/*************************************
*
* Machine driver
*
*************************************/
static MACHINE_CONFIG_START( cps2, cps_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
MCFG_CPU_PROGRAM_MAP(cps2_map)
MCFG_CPU_VBLANK_INT_HACK(cps2_interrupt,259) // 262 /* ??? interrupts per frame */
MCFG_CPU_ADD("audiocpu", Z80, 8000000)
MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 251) /* 251 is good (see 'mercy mercy mercy'section of sgemf attract mode for accurate sound sync */
MCFG_MACHINE_START(cps2)
MCFG_EEPROM_ADD("eeprom", cps2_eeprom_interface)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
MCFG_SCREEN_UPDATE(cps1)
MCFG_SCREEN_EOF(cps1)
/*
Measured clocks:
V = 59.6376Hz
H = 15.4445kHz
H/V = 258.973 ~ 259 lines
Possible video clocks:
60MHz / 15.4445kHz = 3884.878 / 8 = 485.610 -> unlikely
8MHz / 15.4445kHz = 517.983 ~ 518 -> likely
16MHz -> same as 8 but with a /2 divider; also a possibility
*/
GROOVYMAME Sources build 143 CAPCOM CPS2 HARDWARE
/*************************************
*
* Machine driver
*
*************************************/
static MACHINE_CONFIG_START( cps2, cps_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
MCFG_CPU_PROGRAM_MAP(cps2_map)
MCFG_CPU_VBLANK_INT_HACK(cps2_interrupt,259) // 262 /* ??? interrupts per frame */
MCFG_CPU_ADD("audiocpu", Z80, 8000000)
MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
MCFG_CPU_PERIODIC_INT(irq0_line_hold, 251) /* 251 is good (see 'mercy mercy mercy'section of sgemf attract mode for accurate sound sync */
MCFG_MACHINE_START(cps2)
MCFG_EEPROM_ADD("eeprom", cps2_eeprom_interface)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
MCFG_SCREEN_UPDATE(cps1)
MCFG_SCREEN_EOF(cps1)
/*
Measured clocks:
V = 59.6376Hz
H = 15.4445kHz
H/V = 258.973 ~ 259 lines
Possible video clocks:
60MHz / 15.4445kHz = 3884.878 / 8 = 485.610 -> unlikely
8MHz / 15.4445kHz = 517.983 ~ 518 -> likely
16MHz -> same as 8 but with a /2 divider; also a possibility
*/
Les sources des drivers vidéo ci-dessus pour le système CPS2 sont identiques dans les deux versions de Mame et Groovymame. j'ai analysé les sources de plusieurs versions de Mame et Groovymame et je n'ai trouver quasiment aucune différences dans les valeurs des drivers vidéo, même pour les systèmes mal renseigné c'est pareil.
MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
Si on installe une modeline qui respecte les valeurs des sources ci-dessus on obtiendra le même résultat avec Mame ou Groovymame. Et souvent même en respectant ces valeurs le résultat obtenu n'est pas au rendez-vous, il faut donc affiner la Modeline afin qu'elle soit parfaite.
effectivement la différence c'est que Groovymame tout seul comme un grand va installer et booter directement sur la bonne résolution (sans que le PC redémarre). Mais la question est de savoir comment les modelines sont générées.... avec les valeurs disponibles dans les sources de Mame ou xml en sa basant sur la fréquence de rafraichissement vertical.