--- /dev/null
+#include <stdio.h>
+#include <stdint.h>
+#include "vdp.h"
+#include "parts.h"
+
+extern uint16_t simbabg_data[], simbabg_data_end[];
+extern unsigned char simbabg_cmap[], simbabg_cmap_end[];
+extern uint16_t simbabg_tmap[], simbabg_tmap_end[];
+
+void simba_init(void)
+{
+ uint16_t *src;
+
+ /* upload tiles */
+ src = simbabg_data;
+ vdp_setup_addr(VDP_VRAM, 0);
+ while(src < simbabg_data_end) {
+ VDP_DATA = *src++;
+ }
+}
+
+void simba_start(void)
+{
+ int i;
+ uint16_t *src;
+ unsigned char *cptr;
+
+ /* setup tilemaps */
+ src = simbabg_tmap;
+ vdp_setup_addr(VDP_VRAM, 0xd000); /* nametable B */
+ while(src < simbabg_tmap_end) {
+ VDP_DATA = VDP_TILENAME(*src++, 2, 0);
+ }
+
+ /* setup colormaps */
+ cptr = simbabg_cmap;
+ for(i=0; i<16; i++) {
+ vdp_setcolor(2, i, cptr[0] >> 4, cptr[1] >> 4, cptr[2] >> 4);
+ cptr += 3;
+ }
+}
+
+void simba_update(void)
+{
+}