Igualmente podríamos hacer pruebas.
¿Dijiste que que los nombre de los ficheros no hace falta rellenarlos con ceros por la izquierda?
Completo un poco la info de este paso:
Insertar CODE, HTML o PHP:
printf_0(v13, 260, L"%s\\sid_%lu.png", L"USER\\SYSTEM\\DATA\\MARGE\\Epg", v6);
printf_0(v13, 260, L"%s\\sid_%lu.wbmp", L"USER\\SYSTEM\\DATA\\MARGE\\Epg", v6);
printf_0(v13, 260, L"%s\\sid_%lu.wbm", L"USER\\SYSTEM\\DATA\\MARGE\\Epg", v6);
v6 contiene la id. El formato que aplica es
%lu esto es, un número entero (sin decimales vamos) largo sin signo. El resultado no antepone ceros así que ocupará tantos dígitos como sea necesario. Lo mismo vale
sid_1.png que
sid_3855894946621.png. El resultado generado lo guarda en
v13 (los nombres de las variables se los inventa el descompilador).
Como puedes ver, no sólo soporta png sino que el archivo puede ser también en formato wbmp y wbm. Busca en el orden indicado hasta localizar el primero que exista en la ruta.
Sobre el contenido de esa id, veo que el programa diferencia PId de SId. Es decir... podría tratarse de otro valor recibido por RDS. Esto no lo tengo claro. Lo que sí veo es que MARGE maneja una base de datos local con esa información. Tengo que mirar porque en el momento que hice una copia del contenido de USER, esa base de datos estaba vacía. Así que no sé si la rellena desde DAB o si también lo hace con RDS. La base de datos en cuestión se llama EpgInfo.sqlite y reside en
\USER\System\Data\MARGE\DB\ . Los registros de la tabla los puedes ver en la siguiente imagen. Cualquier programa lector de BD sqlite te permitirá acceder y editar sus datos:
Como ves, además de PId están los registros SId y EId. La lógica me dice que esté tirando de los registros SId para crear la ruta del archivo a localizar. La idea es pillar esa base de datos, que podría estar actualizada con los datos de las emisoras que recibe por RDS o con suerte, almacena la lista de emisoras memorizadas. Tomar ese valor y crear un archivo
sid_valor.png en la ruta adecuada. Si la base de datos se rellena convenientemente tendríamos acceso a los valores adecuados sin tener que hacer pruebas por rangos cuyos límites desconocemos.