Files
2026-01-27 17:35:30 +01:00

150 lines
4.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
===========================================
DOCUMENTACIÓN DEL SISTEMA DE ARMARIOS
===========================================
Juego: [Nombre del juego]
Autor del análisis: Sergio
Colaborador técnico: Copilot
Fecha: [poner fecha]
===========================================
1. INTRODUCCIÓN
===========================================
Este documento resume todo lo descubierto durante el análisis del sistema
de guardado relacionado con los armarios (contenedores) del juego.
Incluye:
- Localización del contador global de armarios abiertos
- Identificación de flags de evento relacionados
- Confirmación de qué offsets NO son armarios
- Estado actual de la investigación
- Próximos pasos recomendados
El objetivo final es permitir manipular el save para:
- abrir o cerrar armarios individualmente
- forzar el logro de “abrir todos los armarios”
- depurar el comportamiento del juego
===========================================
2. CONTADOR GLOBAL DE ARMARIOS ABIERTOS
===========================================
Offset: 0x0295C
Tipo: contador simple (1 byte)
Función: almacena cuántos armarios ha abierto el jugador
Ejemplo:
- 0x3B = 59 armarios abiertos
- 0x3C = 60 armarios abiertos
- 0x50 = 80 armarios abiertos (valor máximo para el logro)
Este contador:
- aumenta en +1 cada vez que se abre un armario
- NO depende del guardado
- NO es un bitfield
- NO controla si un armario está abierto o cerrado
- solo refleja el total acumulado
IMPORTANTE:
Modificar este contador NO abre ni cierra armarios reales.
Solo afecta al número que muestra el juego y a la lógica del logro
(si el logro depende únicamente del contador).
===========================================
3. FLAG DE EVENTO RELACIONADO (NO ES ARMARIO)
===========================================
Offset: 0x02934
Cambio observado: EE → FE al abrir un armario concreto
Bit afectado: bit 7 (0x80)
Este byte:
- cambia al abrir el armario de prueba
- revertirlo hace que el armario vuelva a aparecer cerrado
- PERO no forma parte del bloque real de armarios
- es un flag de evento o script asociado al acto de abrir ese armario
Conclusión:
0x02934 NO es el bitfield de armarios.
Es un flag de evento que se activa al abrir ese armario concreto.
===========================================
4. BLOQUE REAL DE ARMARIOS (AÚN NO LOCALIZADO)
===========================================
El juego tiene 80 armarios → se necesitan 80 bits → 10 bytes.
El bloque real:
- NO está en 0x029300x0293F
- NO incluye 0x02934
- NO se ve afectado al poner FF en ese rango
- debe contener exactamente 59 bits activos en el save analizado
- debe cambiar un solo bit al abrir un armario
- debe permanecer estable al guardar sin abrir nada
Estado actual:
El bloque real aún no ha sido identificado, pero sabemos que:
- está cerca del rango 0x028000x02B00
- debe ser un bloque compacto de 10 bytes
- debe tener valores tipo: 00, 01, 03, 07, 0F, 1F, 3F, 7F, FF
- debe contener 59 bits activos en el save actual
===========================================
5. RESUMEN DE HALLAZGOS
===========================================
✔ 0x0295C = contador global de armarios abiertos
✔ 0x02934 = flag de evento asociado al armario de prueba
✔ revertir 0x02934 cierra el armario visualmente
✔ el contador global NO depende de 0x02934
✔ poner FF en 0x029200x0293F NO abre armarios reales
✔ el bloque real de armarios NO está en esa zona
✔ el contador global coincide exactamente con el número mostrado por el juego
===========================================
6. PRÓXIMOS PASOS RECOMENDADOS
===========================================
1. Volcar el rango 0x028000x02A00 para localizar el bloque real.
2. Buscar un bloque de 10 bytes con ~59 bits activos.
3. Confirmar qué byte cambia al abrir un armario nuevo.
4. Mapear los 80 bits → 80 armarios.
5. Crear un editor que:
- abra/cierre armarios individualmente
- actualice el contador global
- recalcule el checksum automáticamente
===========================================
7. CHECKSUM
===========================================
El checksum del save se encuentra en:
- 0x2270 (LSB)
- 0x2271 (MSB)
Se calcula sumando:
- todos los bytes desde 0x2200 hasta 0x3FFF
- excepto los dos bytes del propio checksum
- más un offset fijo de 3328
===========================================
8. ESTADO FINAL
===========================================
El sistema de armarios está parcialmente resuelto:
- Contador global: ✔ localizado y confirmado
- Flag de evento del armario de prueba: ✔ localizado
- Bloque real de armarios: ❌ pendiente de localizar
Una vez identificado el bloque real, se podrá:
- abrir/cerrar armarios a voluntad
- fabricar saves para logros
- documentar completamente el formato
===========================================
FIN DEL DOCUMENTO
===========================================