Skip to content

Commit

Permalink
Merge pull request #13 from mojontwins/v5.10
Browse files Browse the repository at this point in the history
V5.10
  • Loading branch information
mojontwins authored Nov 23, 2023
2 parents ad8a613 + 704a94e commit c42c531
Show file tree
Hide file tree
Showing 1,267 changed files with 144,024 additions and 9,278 deletions.
1,311 changes: 1,311 additions & 0 deletions MK1_v4.sublime-workspace

Large diffs are not rendered by default.

15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,21 @@ Descarga la última release estable de la v5 de la carpeta "releases".

El motor/_framework_ reside en [/src](./src). El código, tal y como está, genera un juego mínimo por defecto que debes *reemplazar* con el tuyo. Para compilarlo, sigue los siguientes pasos:

## Instalación de z88dk

### Nightly Build

1. Obtén la última versión de **z88dk** (nightly build) desde https://github.com/z88dk/z88dk e instálala.
2. Descomprime la versión de splib2 que encontrarás en `env/` en una ubicación temporal, y posteriormente mueve `spritepack.h` al subdirectorio `include` de **z88dk** (por ejemplo, `c:/z88dk/include`) y `splib2_mk2.lib` al subdirectorio `lib/clibs` de **z88dk** (por ejemplo, `c:/z88dk/lib/clibs/`).
3. Si has instalado **z88dk** en una ubicación diferente de `c:/z88dk/` tendrás que modificar `src/dev/setenv.bat`.
4. Desde una ventana de línea de comandos, entra en `src/dev` y ejecuta los siguientes comandos:

### Versión incluida

Si lo prefieres, puedes usar el **z88dk** incluid en `env/`, que ya viene con **splib2** instalada. Para ello, descomprime el contenido de `env/z88dk_mt.7z` en `C:\`.

## Construyendo el proyecto por defecto

1. Si has instalado **z88dk** en una ubicación diferente de `c:/z88dk/` tendrás que modificar `src/dev/setenv.bat`.
2. Desde una ventana de línea de comandos, entra en `src/dev` y ejecuta los siguientes comandos:

```
$ setenv.bat
Expand Down
3 changes: 2 additions & 1 deletion docs/tutorial-cap07.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ Vayamos por partes, como dijo Victor Frankenstein…
// Comment both for normal 16x16 bounding box
#define BOUNDING_BOX_8_BOTTOM // 8x8 aligned to bottom center in 16x16
//#define BOUNDING_BOX_8_CENTERED // 8x8 aligned to center in 16x16
//#define BOUNDING_BOX_8X2_CENTERED // 8x2 aligned to center in 16x16
//#define SMALL_COLLISION // 8x8 centered collision instead of 12x12
```

Expand All @@ -127,7 +128,7 @@ Si elegimos una colisión de 8×8 con el escenario, tenemos dos opciones: que el

La primera opción (recuadro centrado) está pensada para güegos con vista genital, como **Balowwwn** o **D'Veel'Ng**. La segunda funciona bien con güegos de vista lateral o güegos con vista genital “con un poco de perspectiva”, como **Mega Meghan**.

Las dos primeras directivas se refieren a colisiones **contra el escenario**. Solo una de las dos directivas puede estar activa (porque son excluyentes): si queremos colisión 8×8 centrada activamos `BOUNDING_BOX_8_CENTERED` y desactivamos la otra. Si queremos colisión 8×8 en la parte baja activamos `BOUNDING_BOX_8_BOTTOM` y desactivamos la otra. **Si queremos colisión de 16×16 desactivamos ambas**.
Las tres primeras directivas se refieren a colisiones **contra el escenario**. Solo una de las tres directivas puede estar activa (porque son excluyentes): si queremos colisión 8×8 centrada activamos `BOUNDING_BOX_8_CENTERED` y desactivamos las otra. Si queremos colisión 8×8 en la parte baja activamos `BOUNDING_BOX_8_BOTTOM` y desactivamos la otras. Igual con `BOUNDING_BOX_8X2_CENTERED`. **Si queremos colisión de 16×16 desactivamos las tres **.

La tercera directiva se refiere a las colisiones **contra los enemigos**. Si activamos `SMALL_COLLISION`, los sprites tendrán que tocarnos mucho más para darnos. Con `SMALL_COLLISION` los enemigos son más fáciles de esquivar. Funciona bien en güegos con movimientos rápidos, como **Bootee**. Nosotros la vamos a dejar desactivada para **Dogmole**.

Expand Down
Binary file modified env/splib2_mk2.zip
Binary file not shown.
Binary file modified env/z88dk_mt.7z
Binary file not shown.
Binary file modified examples/helmet/bin/behs2c.bin
Binary file not shown.
Binary file modified examples/helmet/bin/ending.bin
Binary file not shown.
Binary file modified examples/helmet/bin/enems_hotspots0c.bin
Binary file not shown.
Binary file modified examples/helmet/bin/enems_hotspots1c.bin
Binary file not shown.
Binary file added examples/helmet/bin/game_enc.bin
Binary file not shown.
Binary file added examples/helmet/bin/game_esc.bin
Binary file not shown.
Binary file added examples/helmet/bin/gamec.bin
Binary file not shown.
Binary file added examples/helmet/bin/loader.bin
Binary file not shown.
Binary file modified examples/helmet/bin/mapa_bolts2c.bin
Binary file not shown.
Binary file added examples/helmet/bin/pre_scrc.bin
Binary file not shown.
Binary file added examples/helmet/bin/scrc.bin
Binary file not shown.
Binary file modified examples/helmet/bin/tileset0c.bin
Binary file not shown.
Binary file modified examples/helmet/bin/tileset1c.bin
Binary file not shown.
Binary file modified examples/helmet/bin/tileset2c.bin
Binary file not shown.
Binary file modified examples/helmet/bin/title.bin
Binary file not shown.
8 changes: 4 additions & 4 deletions examples/helmet/dev/assets/levels.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@
// Types:

typedef struct {
unsigned char map_w, map_h;
unsigned char scr_ini, ini_x, ini_y;
unsigned char max_objs;
unsigned char enems_life;
unsigned char map_w, map_h; // 0, 1
unsigned char scr_ini, ini_x, ini_y; // 2, 3, 4
unsigned char max_objs; // 5
unsigned char enems_life; // 6
unsigned char d01; // Reserved
unsigned char d02;
unsigned char d03;
Expand Down
68 changes: 61 additions & 7 deletions examples/helmet/dev/compile.bat
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ rem cd ..\dev

:compile
echo Compilando guego (EN)
zcc +zx -vn mk1.c -O3 -crt0=crt.asm -o %game%.bin -lsplib2_mk2.lib -zorg=24000 -DCHEAT > nul
zcc +zx -vn mk1.c -O3 -crt0=crt.asm -o %game%_en.bin -lsplib2_mk2_bg.lib -zorg=24000 -DCHEAT > nul
rem zcc +zx -vn mk1.c -o %game%.bin -lsplib2_mk2.lib -zorg=24000 > nul
..\..\..\src\utils\printsize.exe %game%.bin
..\..\..\src\utils\printsize.exe %game%_en.bin
..\..\..\src\utils\printsize.exe scripts.bin

rem *** Tipo de cargador ***
Expand All @@ -71,13 +71,13 @@ echo Construyendo cinta
rem cambia LOADER por el nombre que quieres que salga en Program:
..\..\..\src\utils\bas2tap -a10 -sHELMET_EN loader\loader.bas loader.tap > nul
..\..\..\src\utils\bin2tap -o screen.tap -a 16384 loading.bin > nul
..\..\..\src\utils\bin2tap -o main.tap -a 24000 %game%.bin > nul
..\..\..\src\utils\bin2tap -o main.tap -a 24000 %game%_en.bin > nul
copy /b loader.tap + screen.tap + main.tap %game%_en.tap > nul

echo Compilando guego (ES)
zcc +zx -vn mk1.c -O3 -crt0=crt.asm -o %game%.bin -lsplib2_mk2.lib -zorg=24000 -DLANG_ES -DCHEAT > nul
zcc +zx -vn mk1.c -O3 -crt0=crt.asm -o %game%_es.bin -lsplib2_mk2_bg.lib -zorg=24000 -DLANG_ES -DCHEAT > nul
rem zcc +zx -vn mk1.c -o %game%.bin -lsplib2_mk2.lib -zorg=24000 > nul
..\..\..\src\utils\printsize.exe %game%.bin
..\..\..\src\utils\printsize.exe %game%_es.bin
..\..\..\src\utils\printsize.exe scripts.bin

rem *** Tipo de cargador ***
Expand All @@ -86,7 +86,7 @@ echo Construyendo cinta
rem cambia LOADER por el nombre que quieres que salga en Program:
..\..\..\src\utils\bas2tap -a10 -sHELMET_ES loader\loader.bas loader.tap > nul
..\..\..\src\utils\bin2tap -o screen.tap -a 16384 loading.bin > nul
..\..\..\src\utils\bin2tap -o main.tap -a 24000 %game%.bin > nul
..\..\..\src\utils\bin2tap -o main.tap -a 24000 %game%_es.bin > nul
copy /b loader.tap + screen.tap + main.tap %game%_es.tap > nul


Expand All @@ -108,6 +108,11 @@ rem data ..\bin\RAM1.bin ^
rem data ..\bin\RAM3.bin ^
rem data %game%.bin

if [%1]==[andtape] goto :tape
if [%2]==[andtape] goto :tape


:tapedone
if [%1]==[justcompile] goto :end
if [%1]==[noclean] goto :end

Expand All @@ -121,8 +126,57 @@ del *.bin > nul

goto :end

:tape
echo Construyendo cintas definitivas en ..\show

..\..\..\src\utils\png2scr.exe ..\gfx\preloading.png preloading.bin > nul

del ..\bin\pre_scrc.bin > nul
..\..\..\src\utils\zx7.exe preloading.bin ..\bin\pre_scrc.bin
del ..\bin\scrc.bin > nul
..\..\..\src\utils\zx7.exe loading.bin ..\bin\scrc.bin
del ..\bin\game_enc.bin > nul
..\..\..\src\utils\zx7.exe %game%_en.bin ..\bin\game_enc.bin
del ..\bin\game_esc.bin > nul
..\..\..\src\utils\zx7.exe %game%_es.bin ..\bin\game_esc.bin

..\..\..\src\utils\imanol.exe ^
in=loader\loaderzx48_2scr_zx7.asm-orig ^
out=loader\loader.asm ^
preloadingcomplength=?..\bin\pre_scrc.bin ^
loadingcomplength=?..\bin\scrc.bin ^
mainbincomplength=?..\bin\game_enc.bin

..\..\..\src\utils\pasmo.exe loader\loader.asm ..\bin\loader.bin loader.txt

..\..\..\src\utils\GenTape.exe ..\show\mojon_twins--sgt-helmet-definitivaw--EN.tap ^
basic 'SGT.HELMET' 10 ..\bin\loader.bin ^
data ..\bin\pre_scrc.bin ^
data ..\bin\scrc.bin ^
data ..\bin\game_enc.bin

..\..\..\src\utils\imanol.exe ^
in=loader\loaderzx48_2scr_zx7.asm-orig ^
out=loader\loader.asm ^
preloadingcomplength=?..\bin\pre_scrc.bin ^
loadingcomplength=?..\bin\scrc.bin ^
mainbincomplength=?..\bin\game_esc.bin

..\..\..\src\utils\pasmo.exe loader\loader.asm ..\bin\loader.bin loader.txt

..\..\..\src\utils\GenTape.exe ..\show\mojon_twins--sgt-helmet-definitivaw--ES.tap ^
basic 'SGT.HELMET' 10 ..\bin\loader.bin ^
data ..\bin\pre_scrc.bin ^
data ..\bin\scrc.bin ^
data ..\bin\game_esc.bin

del loader\loader.asm > nul
del loader.txt > nul

goto :tapedone

:help
echo "compile.bat help|justcompile|clean|justscripts|justassets|noclean"
echo "compile.bat [help|justcompile|clean|justscripts|justassets|noclean] [andtape]"

:end
echo Hecho!
8 changes: 6 additions & 2 deletions examples/helmet/dev/definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ unsigned char *_baddies_pointer;

// atributos de la pantalla: Contiene información
// sobre qué tipo de tile hay en cada casilla
unsigned char map_attr [150];
unsigned char map_attr [150] @ 23296+16+150;
unsigned char map_buff [150] @ FREEPOOL;
// Breakable walls/etc
#ifdef BREAKABLE_WALLS
Expand Down Expand Up @@ -258,7 +258,11 @@ unsigned char objs_old, keys_old, life_old, killed_old;
#endif

#ifdef COMPRESSED_LEVELS
unsigned char *level_str = "LEVEL 0X";
#ifdef LANG_ES
unsigned char *level_str = "NIVEL 0X";
#else
unsigned char *level_str = "LEVEL 0X";
#endif
unsigned char silent_level = 0;
#endif

Expand Down
Loading

0 comments on commit c42c531

Please sign in to comment.