Metadata-Version: 2.3
Name: build8bp
Version: 0.1.0
Summary: Herramienta CLI para compilar proyectos 8BP (8 Bits de Poder) con Abasm para Amstrad CPC
Author: destroyer
Author-email: destroyer.dcf@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: click (>=8.1.7,<9.0.0)
Requires-Dist: rich (>=13.7.0,<14.0.0)
Description-Content-Type: text/markdown

# build8bp

Herramienta CLI para compilar proyectos **8BP (8 Bits de Poder)** para Amstrad CPC usando ABASM.

## Instalación

```bash
cd build8bp
poetry install
```

## Configuración

Define las variables de entorno (opcional):

```bash
export BP8_ASM_PATH="/ruta/a/8BP_V43/ASM"
export ABASM_PATH="/ruta/a/abasm/src/abasm.py"
```

O usa los parámetros `--asm-path` y `--abasm-path` en cada comando.

## Uso

### Compilar proyecto

```bash
# Con variables de entorno configuradas
build8bp compile --build 0

# Con rutas explícitas
build8bp compile --build 1 \
  --asm-path "/Users/destroyer/Downloads/8BP-master 2/8BP_V43/ASM" \
  --abasm-path "/Users/destroyer/Downloads/8BP-master 2/abasm/src/abasm.py"
```

**Niveles de build:**
- `0`: Todas las funcionalidades (MEMORY 23600)
- `1`: Juegos de laberintos - |LAYOUT, |COLAY (MEMORY 25000)
- `2`: Juegos con scroll - |MAP2SP, |UMA (MEMORY 24800)
- `3`: Juegos pseudo-3D - |3D (MEMORY 24000)
- `4`: Sin scroll/layout, +500 bytes sprites (MEMORY 25500)

### Aplicar parches

Corrige la sintaxis de los archivos ASM para compatibilidad con ABASM:

```bash
build8bp patch --asm-path "/ruta/a/8BP_V43/ASM"
```

Correcciones aplicadas:
- `and a,` → `and `
- `or a,` → `or `
- `xor a,` → `xor `
- `djnz,` → `djnz `
- `ifnot X = Y` → `if X != Y`

### Restaurar originales

Restaura los archivos desde los backups creados por `patch`:

```bash
build8bp rollback --asm-path "/ruta/a/8BP_V43/ASM"
```

## Ejemplo completo

```bash
# 1. Aplicar parches
build8bp patch --asm-path "./8BP_V43/ASM"

# 2. Compilar opción 1 (laberintos)
build8bp compile --build 1 \
  --asm-path "./8BP_V43/ASM" \
  --abasm-path "./abasm/src/abasm.py"

# 3. Si necesitas revertir cambios
build8bp rollback --asm-path "./8BP_V43/ASM"
```

## Desarrollo

```bash
# Instalar dependencias
poetry install

# Ejecutar en modo desarrollo
poetry run build8bp --help

# Construir distribución
poetry build
```

