[PROYECTO] Silly PS2 Manager - Suite Completa para OPL (OPL MANAGER + USBUTIL + FAT32FORMAT)

Buenas a todos,

Quería compartir con la comunidad de Scene PS2 un proyecto en el que he estado trabajando: Silly PS2 Manager.

La idea nació tras lidiar durante años con herramientas clásicas que, aunque funcionales, arrastran interfaces desactualizadas, problemas de permisos o limitaciones de rendimiento al gestionar bibliotecas grandes para Open PS2 Loader (OPL). Para resolver esto, opté por una arquitectura moderna combinando un frontend ágil en React con un backend a bajo nivel en Rust (usando Tauri v2) para garantizar transferencias rápidas, bajo consumo de memoria y ejecución multiplataforma (Linux y Windows).

Les resumo las principales características técnicas y funciones que incluye la suite:

1. Gestión Inteligente de Biblioteca

Inspección profunda de ISOs: No depende de que el nombre del archivo esté bien escrito. Lee directamente los primeros 4 MB de la cabecera del disco para extraer el Game ID real (SLES, SLUS, SCES, SLPM, etc.).

Limpieza de nombres: Filtra mediante regex los seriales que suelen venir pegados a los títulos para mantener la interfaz limpia y legible.

Soporte híbrido (ISOs y juegos divididos): Escanea carpetas habituales (DVD/, CD/) y lee el índice maestro ul.cfg, mostrando en una única lista unificada tanto imágenes estándar como juegos divididos ya existentes.

Estadísticas en tiempo real: Muestra conteo total y peso discriminado por tipo de formato (DVD, CD y sus variantes divididas).

2. Automatización y Metadatos

Normalización OPL: Renombra archivos en un clic bajo la nomenclatura estricta ID.Titulo.iso, sanitizando caracteres ilegales del sistema de archivos.

Descarga y adaptación de carátulas:

Obtiene arte 2D y 3D desde repositorios comunitarios verificados.

Optimización para hardware real: Redimensiona las imágenes mediante la biblioteca image (filtro Lanczos3) a 140×200 píxeles, guardando simultáneamente en .png y .jpg. Esto evita desbordar la ajustada VRAM (4 MB) del Graphics Synthesizer de la consola.

Perfiles CFG y procesamiento en lote: Genera archivos .cfg individuales (modos DMA y compatibilidad) y permite ejecutar renombrado, arte y configuraciones para toda la lista de forma desatendida.

3. Preparador de Unidades USB (USB Setup)

Detección segura de medios: Utiliza sysinfo para filtrar estrictamente dispositivos extraíbles por USB, protegiendo las particiones del sistema operativo.

Formateo nativo:

FAT32: Formatea con clústeres de 32 KB (64 sectores), la configuración recomendada para uLaunchELF y OPL clásico.

exFAT: Listo para versiones modernas de OPL con soporte BDM.

Delegación nativa mediante udisksctl (con fallback a pkexec) en Linux para evitar problemas de permisos de root, y powershell (Format-Volume) en Windows.

Estructura automática: Genera al vuelo las carpetas necesarias: DVD/, CD/, ART/, CFG/, CHT/, VMC/ y THM/.

4. Sincronización y Transferencia (Smart Sync)

Sincronización diferencial: Compara origen y destino por tamaño de archivo; si el juego ya existe idéntico, lo salta para ahorrar tiempo.

Transferencia sin bloqueos ni falsos 100%:

Hilo asíncrono en Rust con lectura en bloques de 4 MB.

Vaciado forzado al medio físico (sync_data cada 32 MB y sync_all al finalizar). Así se evita que la memoria caché del SO marque una copia completada cuando la memoria flash aún está escribiendo.

5. Interfaz y Experiencia de Usuario

Persistencia: Guarda la última ruta activa; al abrir la app de nuevo, carga la biblioteca previa automáticamente y maneja la desconexión inesperada de unidades sin romperse.

Soporte bilingüe: Selector de idioma en caliente (Español / Inglés).

Diseño cuidado: Interfaz limpia en tema claro, paneles colapsables y notificaciones no invasivas.

📌 Próximos pasos (Roadmap)

Para ser totalmente transparente con el estado actual del desarrollo y no generar falsas expectativas, las prioridades inmediatas en las que estoy trabajando son:

División de ISOs >4 GB (Estándar USBUtil): Implementar de forma nativa la división automática de juegos grandes (DVD-9) en partes ul.CRC32... y la escritura correcta en el índice ul.cfg al copiar hacia unidades FAT32.

Soporte para discos duros (HDD): Actualmente la detección y configuración está acotada a memorias USB/extraíbles. El siguiente paso es ampliar el reconocimiento para gestionar unidades HDD internas/externas de forma segura.

Enlaces y capturas:

Repositorio en GitHub

Galería de Capturas de Pantalla

Cualquier feedback, reporte de bugs o sugerencia para pulir la herramienta de cara a la comunidad es más que bienvenido. Con un par de mejoras pronto estará la release disponible.

¡Un saludo!
Gracias por el nuevo mánager, a más de alguno le puede ser útil :).
Que sorprendente herramienta, te agradezco el esfuerzo y el gran trabajo
@projectgungrave gracias, aun no está lista, solo quería mostrar la idea a ver si de verdad es útil, ya prácticamente todo está listo, lo unico que lo he logrado solventar es el particionado de juegos de DVD-9, y pasarlos al USB con el formato de USBUTIL, de resto, ya es 100% operativa para el 90% del catálogo restante, descargado de arte, y transferencia de archivos si necesidad de 10 programas dfierentes para cada cosa [fumando]
3 respuestas