feat: create separate mockup ROM to test organic hedges and textured floor
This commit is contained in:
@@ -9,8 +9,9 @@ OBJS = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRCS))
|
||||
|
||||
TARGET = maze.gb
|
||||
AUDIO_TARGET = test_audio.gb
|
||||
MOCKUP_TARGET = test_mockup.gb
|
||||
|
||||
all: $(TARGET) $(AUDIO_TARGET)
|
||||
all: $(TARGET) $(AUDIO_TARGET) $(MOCKUP_TARGET)
|
||||
|
||||
$(TARGET): $(OBJS)
|
||||
$(CC) $(CFLAGS) -o $(TARGET) $(OBJS)
|
||||
@@ -18,6 +19,9 @@ $(TARGET): $(OBJS)
|
||||
$(AUDIO_TARGET): test_audio.c $(OBJ_DIR)/music.o
|
||||
$(CC) $(CFLAGS) -o $(AUDIO_TARGET) test_audio.c $(OBJ_DIR)/music.o
|
||||
|
||||
$(MOCKUP_TARGET): test_mockup.c src/mockup_gfx.c
|
||||
$(CC) $(CFLAGS) -o $(MOCKUP_TARGET) test_mockup.c src/mockup_gfx.c
|
||||
|
||||
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
import os
|
||||
|
||||
tiles = {
|
||||
"floor": [
|
||||
"00000000",
|
||||
"00010000",
|
||||
"00100000",
|
||||
"00000000",
|
||||
"00000001",
|
||||
"00000010",
|
||||
"00000000",
|
||||
"00001000",
|
||||
],
|
||||
"hedge": [
|
||||
"12121121",
|
||||
"22322322",
|
||||
"12112112",
|
||||
"23223223",
|
||||
"11212112",
|
||||
"22322322",
|
||||
"12112121",
|
||||
"23223223",
|
||||
],
|
||||
"hedge_top": [
|
||||
"00000000",
|
||||
"01111111",
|
||||
"12121121",
|
||||
"22322322",
|
||||
"11212112",
|
||||
"23223223",
|
||||
"12112121",
|
||||
"22322322",
|
||||
],
|
||||
"frame_tl": [
|
||||
"33333333",
|
||||
"31111111",
|
||||
"31222222",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
],
|
||||
"frame_tr": [
|
||||
"33333333",
|
||||
"11111113",
|
||||
"22222213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
],
|
||||
"frame_bl": [
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31222222",
|
||||
"31111111",
|
||||
"33333333",
|
||||
],
|
||||
"frame_br": [
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"22222213",
|
||||
"11111113",
|
||||
"33333333",
|
||||
],
|
||||
"frame_t": [
|
||||
"33333333",
|
||||
"11111111",
|
||||
"22222222",
|
||||
"00000000",
|
||||
"00000000",
|
||||
"00000000",
|
||||
"00000000",
|
||||
"00000000",
|
||||
],
|
||||
"frame_b": [
|
||||
"00000000",
|
||||
"00000000",
|
||||
"00000000",
|
||||
"00000000",
|
||||
"00000000",
|
||||
"22222222",
|
||||
"11111111",
|
||||
"33333333",
|
||||
],
|
||||
"frame_l": [
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
"31200000",
|
||||
],
|
||||
"frame_r": [
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
"00000213",
|
||||
],
|
||||
}
|
||||
|
||||
def to_gb_format(lines):
|
||||
bytes_arr = []
|
||||
for line in lines:
|
||||
lo = 0
|
||||
hi = 0
|
||||
for i, char in enumerate(line):
|
||||
val = int(char)
|
||||
if val & 1:
|
||||
lo |= (1 << (7 - i))
|
||||
if val & 2:
|
||||
hi |= (1 << (7 - i))
|
||||
bytes_arr.append(lo)
|
||||
bytes_arr.append(hi)
|
||||
return bytes_arr
|
||||
|
||||
with open("src/mockup_gfx.c", "w") as f:
|
||||
f.write('#include "mockup_gfx.h"\n\n')
|
||||
f.write('const unsigned char MockupTileData[] = {\n')
|
||||
|
||||
for name, art in tiles.items():
|
||||
b = to_gb_format(art)
|
||||
f.write(' // ' + name + '\n')
|
||||
f.write(' ' + ', '.join(f"0x{val:02X}" for val in b) + ',\n')
|
||||
|
||||
f.write('};\n')
|
||||
|
||||
with open("src/mockup_gfx.h", "w") as f:
|
||||
f.write('#ifndef MOCKUP_GFX_H\n#define MOCKUP_GFX_H\n\n')
|
||||
f.write('extern const unsigned char MockupTileData[];\n')
|
||||
f.write('#endif\n')
|
||||
|
||||
print("Generato mockup_gfx.c e .h")
|
||||
@@ -0,0 +1,26 @@
|
||||
#include "mockup_gfx.h"
|
||||
|
||||
const unsigned char MockupTileData[] = {
|
||||
// floor
|
||||
0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00,
|
||||
// hedge
|
||||
0xAD, 0x52, 0x24, 0xFF, 0xB6, 0x49, 0x49, 0xFF, 0xD6, 0x29, 0x24, 0xFF, 0xB5, 0x4A, 0x49, 0xFF,
|
||||
// hedge_top
|
||||
0x00, 0x00, 0x7F, 0x00, 0xAD, 0x52, 0x24, 0xFF, 0xD6, 0x29, 0x49, 0xFF, 0xB5, 0x4A, 0x24, 0xFF,
|
||||
// frame_tl
|
||||
0xFF, 0xFF, 0xFF, 0x80, 0xC0, 0xBF, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0,
|
||||
// frame_tr
|
||||
0xFF, 0xFF, 0xFF, 0x01, 0x03, 0xFD, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05,
|
||||
// frame_bl
|
||||
0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xBF, 0xFF, 0x80, 0xFF, 0xFF,
|
||||
// frame_br
|
||||
0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0xFD, 0xFF, 0x01, 0xFF, 0xFF,
|
||||
// frame_t
|
||||
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// frame_b
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF,
|
||||
// frame_l
|
||||
0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0,
|
||||
// frame_r
|
||||
0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05,
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
#ifndef MOCKUP_GFX_H
|
||||
#define MOCKUP_GFX_H
|
||||
|
||||
extern const unsigned char MockupTileData[];
|
||||
#endif
|
||||
@@ -0,0 +1,59 @@
|
||||
#include <gb/gb.h>
|
||||
#include "mockup_gfx.h"
|
||||
|
||||
// ID dei tile in base all'ordine nel dizionario python:
|
||||
// 0: floor
|
||||
// 1: hedge
|
||||
// 2: hedge_top
|
||||
// 3: frame_tl
|
||||
// 4: frame_tr
|
||||
// 5: frame_bl
|
||||
// 6: frame_br
|
||||
// 7: frame_t
|
||||
// 8: frame_b
|
||||
// 9: frame_l
|
||||
// 10: frame_r
|
||||
|
||||
const uint8_t level_map[18][20] = {
|
||||
{3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4},
|
||||
{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10},
|
||||
{9, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,10},
|
||||
{9, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,10},
|
||||
{9, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,10},
|
||||
{9, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,10},
|
||||
{9, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,10},
|
||||
{9, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,10},
|
||||
{9, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,10},
|
||||
{9, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10},
|
||||
{9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,10},
|
||||
{9, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,10},
|
||||
{9, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0,10},
|
||||
{9, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0,10},
|
||||
{9, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0,10},
|
||||
{9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,10},
|
||||
{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10},
|
||||
{5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6}
|
||||
};
|
||||
|
||||
void main(void) {
|
||||
DISPLAY_OFF;
|
||||
|
||||
// Palette GBDK standard
|
||||
BGP_REG = 0b11100100;
|
||||
|
||||
set_bkg_data(0, 11, MockupTileData);
|
||||
|
||||
for (uint8_t y = 0; y < 18; y++) {
|
||||
for (uint8_t x = 0; x < 20; x++) {
|
||||
uint8_t t = level_map[y][x];
|
||||
set_bkg_tiles(x, y, 1, 1, &t);
|
||||
}
|
||||
}
|
||||
|
||||
SHOW_BKG;
|
||||
DISPLAY_ON;
|
||||
|
||||
while(1) {
|
||||
wait_vbl_done();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user