VeS, jejeje, lo que nos cuesta entendernos en el tema favoritos.
Total, los favoritos los dejo como están (las listas de favoritos solo muestran los juegos del emulador en el que estamos) ---> cuando saque la proxima version, los pruebas y me dices.
Lo de que al actualizar el MAME se actualizan los xml del advmenu, tienes toda la razón, no tenía ni idea de esto, me he llevado una sorpresa y una nueva cosa que he aprendido (obtener las propiedades de los archivos mediante 'stat')
Esto lo comprueba el advmenu, la funcion encargada es: emulator.cc --> bool mame_info::is_update_xml() {...}
CODE
bool mame_info::is_update_xml()
{
struct stat st_xml;
struct stat st_mame;
int err_xml;
int err_exe;
string xml_file = path_abs(path_import(file_config_file_home((user_name_get() + ".xml").c_str())), dir_cwd());
err_xml = stat(cpath_export(xml_file), &st_xml);
err_exe = stat(cpath_export(config_exe_path_get()), &st_mame);
if (err_exe==0
&& (err_xml!=0 || st_xml.st_mtime < st_mame.st_mtime || st_xml.st_size == 0)
&& (err_xml!=0 || access(cpath_export(xml_file), W_OK)==0)
) {
return false;
} else {
return true;
}
}
En realidad, para no actualizar/generar el xml comprueba:
- que tenga acceso de escritura al xml (que implica que es xml exista, claro).
- que tenga algun tamaño.
- y que la ultima fecha de modificacion del xml sea mayor que la ultima fecha de modificacion del ejecutable de mame/mess
CODE
&& (err_xml!=0 || st_xml.st_mtime < st_mame.st_mtime || st_xml.st_size == 0)
&& (err_xml!=0 || access(cpath_export(xml_file), W_OK)==0)
Lo mismo para los lst: emulator.cc --> bool mame_info::is_update_info() {...}
Osea, que tienes MAME configurado con X sistemas, actualizas el MAME y el advmenu automaticamente actualiza todos los xml de los emuladores.
¿donde está el problema de esto?, a mi me parece cojonudisisisisimo.
Sea como fuere, si quieres cambiar este comportamiento, mejor que modificar la funcion "is_update_xml()" es cambiar las llamadas a esta por "is_present_xml()" que solo comprueba que se tenga acceso de lectura al xml.
Total, que para cambiar este comportamiento:
Cambiar las llamadas is_update_xml() y is_update_info() por is_present_xml() y is_present_info() en la funcion "emulator.cc --> bool mame_info::load_game(game_set& gar, bool quiet) {...}"
pakoman2, a mi me interesa mucho, otra cosa es que le tenga mucho miedo/respeto a tocar el codigo, aunque si llego a tener claras las cosas, le meto mano si hace falta.
Que a mi me gustaría, aunque solo sea en el caso de monitor PC, poder poner la resolucion exacta a la que queremos el advmenu.
No tengo mucha idea de resoluciones, por lo que te pregunto:
¿a que te refieres con añadir al registro? ¿donde y como añades las resoluciones?
¿has probado a poner "device_video_interlace no"?
y a modificar "device_video_overlaysize auto" ---> ahora mismo, no tengo ni idea para que vale esto.
-----------------------------------------------------
En el Repositorio, he juntado lo de la rama mameInfo/History con el master, osea que en master ya tenemos:
* MESS/MAME, (aun faltan algunas cosas por implementar)
* Eliminada la lectura de los XML (hash) de los emuladores generic y lo de buscar carpetar en vez de roms ("dir" de filtros) de los generic.
Por lo que ya no se podran poner sistemas de mess/mame como generic. Para eso está los tipos (mame, sdlmame, mess y sdlmess)
* mameInfo/History:
- re-hecho por completo el algoritmo de busqueda de texto, creo que está perfecto.
- solo disponible para emuladores del tipo mame, mess, sdlmame, sdlmess
-----------------------------------------------------
ToDo (PorHacer):MESS/MAME:- Comprobar/Arreglar el filtro de sistemas de mame (filtro "softwalelist")
- Investigar bien los filtros "internos" de los hash
- Opcion para escoger el directorio para los xml de los emuladores que genera el PLUS. (si hay tiempo)
- Añadir a los sistemas filtros "de usuario" para mostrar o no los juegos segun su tipo (cart, flopy, cass, cdrom,...)
- Refactorizar, claro, como siempre, eso que no falte, jejeje
mameInfo/History- ¿disponible tambien para advmame, advmess, dmame, dmess?
Barras info:- toquetear un poco la info que se muestra y tal.
Listas Favoritos:- probar como están.
Me pongo con el filtro softwarelist, a ver que está ocurriendo.