===========================================
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 0x02930–0x0293F
- 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 0x02800–0x02B00
- 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 0x02920–0x0293F 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 0x02800–0x02A00 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
===========================================
