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
 PNGA := $(GBDK_HOME)/bin/png2asset
20
 PNGA := $(GBDK_HOME)/bin/png2asset
21
 GB_EMU := gearboy
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
 EMUFLAGS := $(BIN)
24
 EMUFLAGS := $(BIN)
25
 
25
 
26
 ifndef GBDK_RELEASE
26
 ifndef GBDK_RELEASE
61
 		$(PNGA) $< -o $@ -spr8x8      \
61
 		$(PNGA) $< -o $@ -spr8x8      \
62
 	)
62
 	)
63
 
63
 
64
-$(BUILD_DIR)/%.o: %.c
64
+$(BUILD_DIR)/%.o: %.c $(SPRITES)
65
 	@mkdir -p $(@D)
65
 	@mkdir -p $(@D)
66
 	@echo Compiling $<
66
 	@echo Compiling $<
67
 	@$(LCC) $(LCCFLAGS) -c -o $@ $<
67
 	@$(LCC) $(LCCFLAGS) -c -o $@ $<

+ 38
- 0
src/main.c View File

76
     return offset;
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
 void main(void) {
98
 void main(void) {
80
     DISPLAY_OFF;
99
     DISPLAY_OFF;
81
 
100
 
82
     set_default_palette();
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
     size_t i;
113
     size_t i;
85
     num_tiles = sizeof(rockshp_tiles) >> 4;
114
     num_tiles = sizeof(rockshp_tiles) >> 4;
86
     for(i = 0; i < num_tiles; i++)
115
     for(i = 0; i < num_tiles; i++)
87
     {
116
     {
88
         set_tile(i + get_tile_offset(0, 0), rockshp_tiles + (i << 4), 0, 0);
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
     // Show bkg and sprites
129
     // Show bkg and sprites

Loading…
Cancel
Save