Autor Tema: Unity Precomp, el precompresor de ficheros unity3d/bundle de KAPITALSIN  (Leído 144 veces)

Fl0ppy

  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 10494
Unity Precomp es un programa que precomprime los ficheros bundle de unity, es decir los expande, crea unos metadatos y después se vuelven a recuperar los datos identicos al original, esto es ideal para gente que quiere optimizar las compresiones, ya que eliminando los datos lz4/lz4hc se puede aplicar mejores compresores como 7zip, lolz o freearc.

Recordad de hacer pruebas, testear el fichero restaurado como md5 y crc, si bien se puede uso general, el programa (quien sabe) puede hacer una mala restauración

Manual
=======
Para expandir el fichero usa: unity_bundle.exe pre nombre fichero.bundle o nombre fichero donde esten los bundles (ej: dentro de un arc sin compresion) y fichero de salido fichero.pre
Para recuperar el fichero usa: unity_bundle.exe rec nombrefichero.pre nombrefichero.bundle o el contenedor que le hayas puesto

Tienes unos argumentos extra que los puedes personalizar y son:

  -j N     Hilos (por defecto los del sistema, para discos duros recomiendo entre 2-3, es más lento pero no lo saturas)
  -ssd     Modo SSD/NVMe mode (sin retraso, mejor I/O)
  -b N     Tamaño de cola, para no saturar los discos duros
  -s N     Dormir en ms entre el tamaño de cola

LICENCIA:
YO QUE SE QUE CADA UNO LO USE PARA LO QUE QUIERA

Nota: Incluye el código fuente, podeis mirar el código o mejorarlo, o lo que querais.

Nota 2: Este programa es una prueba de concepto sobre la IA

Nota 3: Después de compararlo con Xtool en una prueba grande 4.6 gb de datos descomprimidos, la restauración del fichero tardó unos 4 minutos menos usando dos núcleos en ambos programas, si bien es cierto que Xtool tardó más el resultado final de la compresión del fichero expandido fué unos 3 mb's más pequeño usando rep

Nota 4: No habia un precompresor para motor unity de código libre es por ello que he decidio "crear" uno de cero.

Nota 5: Prefiero poner los datos expandidos directamente, los bundle tiene miles y miles de ficheros, su expansión y recuperación requiere de mucho proceso de disco duro y cpu, no es cosa del programa "Unity Precomp" (c) KPS  o de Xtool (c) RAZOR12911, ambos trabajan de la misma manera (aprox), por ello recomiendo los repacks de KAPITALSIN, te ahorras tiempo de recompresión y tu sistema/disco duro te lo agradecerá

El adjunto lleva el fichero ejecutable, un leeme y el código fuente en C

Disfrutadlo y si quereis reportad fallos o sugerencias
Siempre que pasa igual sucede lo mismo



Fl0ppy

  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 10494
Re:Unity Precomp, el precompresor de ficheros unity3d/bundle de KAPITALSIN
« Respuesta #1 en: 03 de Mayo de 2026, 10:53:43 pm »
Creada versión nueva con estos cambios/novedades:

-Mejor control del disco duro para casos extremos de 50,000 bloques de 128k, para no saturarlo
-Añadido modo para SSD/NVME
-Va un poco más rápido
Siempre que pasa igual sucede lo mismo



Fl0ppy

  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 10494
Re:Unity Precomp, el precompresor de ficheros unity3d/bundle de KAPITALSIN
« Respuesta #2 en: 04 de Mayo de 2026, 11:07:48 pm »
Creada versión solo para el descompresor, de esa manera os ahorrais tiempo, actualizado el post principal, incluye binario de windows y código fuente

Quote (selected)
Unity Decomp es un programa que descomprime archivos bundle de Unity, expandiéndolos para que el archivo resultante sea compatible con el motor Unity. Esto es ideal para quienes desean optimizar la compresión, ya que al eliminar los datos lz4/lz4hc se pueden usar compresores más potentes como 7-Zip, LOLZ o FreeARC.

Manual
=======
Para expandir el archivo, use: unity_decomp archivo.bundle/unity3d archivo.unity3d/bundle.decomp

Idea: Basado en código de UABEA

https://github.com/nesrak1/UABEA
Siempre que pasa igual sucede lo mismo