Browse Source

gbc compatible

Thomas B 2 months ago
parent
commit
fe93f4bf24
2 changed files with 40 additions and 2 deletions
  1. 2
    2
      Makefile
  2. 38
    0
      src/main.c

+ 2
- 2
Makefile View File

@@ -20,7 +20,7 @@ LCC := $(GBDK_HOME)/bin/lcc
20 20
 PNGA := $(GBDK_HOME)/bin/png2asset
21 21
 GB_EMU := gearboy
22 22
 
23
-LCCFLAGS := -Wa-l -Wl-m -Wm"-yn Duality" -I$(BUILD_DIR)/$(DATA_DIR)
23
+LCCFLAGS := -Wa-l -Wl-m -Wm"-yn Duality" -I$(BUILD_DIR)/$(DATA_DIR) -Wm-yc
24 24
 EMUFLAGS := $(BIN)
25 25
 
26 26
 ifndef GBDK_RELEASE
@@ -61,7 +61,7 @@ $(BUILD_DIR)/$(DATA_DIR)/%.c $(BUILD_DIR)/$(DATA_DIR)/%.h: $(DATA_DIR)/%.png
61 61
 		$(PNGA) $< -o $@ -spr8x8      \
62 62
 	)
63 63
 
64
-$(BUILD_DIR)/%.o: %.c
64
+$(BUILD_DIR)/%.o: %.c $(SPRITES)
65 65
 	@mkdir -p $(@D)
66 66
 	@echo Compiling $<
67 67
 	@$(LCC) $(LCCFLAGS) -c -o $@ $<

+ 38
- 0
src/main.c View File

@@ -76,16 +76,54 @@ uint8_t get_tile_offset(uint8_t flipx, uint8_t flipy)
76 76
     return offset;
77 77
 }
78 78
 
79
+const palette_color_t gray_pal[4] = {   RGB8(255,255,255),
80
+                                        RGB8(170,170,170),
81
+                                        RGB8(85,85,85),
82
+                                        RGB8(0,0,0) };
83
+const palette_color_t pink_pal[4] = {   RGB8(255,255,255),
84
+                                        RGB8(255,0,255),
85
+                                        RGB8(170,0,170),
86
+                                        RGB8(85,0,85) };
87
+const palette_color_t cyan_pal[4] = {   RGB8(255,255,255),
88
+                                        RGB8(85,255,255),
89
+                                        RGB8(0,170,170),
90
+                                        RGB8(0,85,85) };
91
+const palette_color_t green_pal[4] = {  RGB8(255,255,255),
92
+                                        RGB8(170,255,170),
93
+                                        RGB8(0,170,0),
94
+                                        RGB8(0,85,0) };
95
+
96
+const uint8_t pattern[] = {0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x01,0x01};
97
+
79 98
 void main(void) {
80 99
     DISPLAY_OFF;
81 100
 
82 101
     set_default_palette();
102
+    set_sprite_palette(OAMF_CGB_PAL0, 1, gray_pal);
103
+    set_sprite_palette(OAMF_CGB_PAL1, 1, pink_pal);
104
+    set_sprite_palette(OAMF_CGB_PAL2, 1, cyan_pal);
105
+    set_sprite_palette(OAMF_CGB_PAL3, 1, green_pal);
106
+
107
+    // Fill the screen background with a single tile pattern
108
+    fill_bkg_rect(0, 0, DEVICE_SCREEN_WIDTH, DEVICE_SCREEN_HEIGHT, 0);
109
+
110
+    // Set tile data for background
111
+    set_bkg_data(0, 1, pattern);
83 112
 
84 113
     size_t i;
85 114
     num_tiles = sizeof(rockshp_tiles) >> 4;
86 115
     for(i = 0; i < num_tiles; i++)
87 116
     {
88 117
         set_tile(i + get_tile_offset(0, 0), rockshp_tiles + (i << 4), 0, 0);
118
+        #if !HARDWARE_SPRITE_CAN_FLIP_X
119
+        set_tile(i + get_tile_offset(1, 0), sprite_tiles + (i << 4), 1, 0);
120
+        #endif
121
+        #if !HARDWARE_SPRITE_CAN_FLIP_Y
122
+        set_tile(i + get_tile_offset(0, 1), sprite_tiles + (i << 4), 0, 1);
123
+        #endif
124
+        #if !HARDWARE_SPRITE_CAN_FLIP_X && !HARDWARE_SPRITE_CAN_FLIP_Y
125
+        set_tile(i + get_tile_offset(1, 1), sprite_tiles + (i << 4), 1, 1);
126
+        #endif
89 127
     }
90 128
 
91 129
     // Show bkg and sprites

Loading…
Cancel
Save