/* 3 Layers (like esprade but with different scroll delta's) */ int guwange_vh_start(void) { tilemap_0 = tilemap_create( get_tile_info_0, tilemap_scan_rows, TILEMAP_TRANSPARENT, 16,16, DIM_NX,DIM_NY ); tilemap_1 = tilemap_create( get_tile_info_1, tilemap_scan_rows, TILEMAP_TRANSPARENT, 16,16, DIM_NX,DIM_NY ); tilemap_2 = tilemap_create( get_tile_info_2, tilemap_scan_rows, TILEMAP_TRANSPARENT, 16,16, DIM_NX,DIM_NY ); sprite_list = sprite_list_create(spriteram_size / 0x10 / 2, SPRITE_LIST_BACK_TO_FRONT | SPRITE_LIST_RAW_DATA ); if (tilemap_0 && tilemap_1 && tilemap_2 && sprite_list) { tilemap_set_scroll_rows(tilemap_0,1); tilemap_set_scroll_cols(tilemap_0,1); tilemap_0->transparent_pen = 0; tilemap_set_scroll_rows(tilemap_1,1); tilemap_set_scroll_cols(tilemap_1,1); tilemap_1->transparent_pen = 0; tilemap_set_scroll_rows(tilemap_2,1); tilemap_set_scroll_cols(tilemap_2,1); tilemap_2->transparent_pen = 0; // tilemap_set_scrolldx( tilemap_0, -0x6c, -0x57 ); // tilemap_set_scrolldx( tilemap_1, -0x6d, -0x56 ); // tilemap_set_scrolldx( tilemap_2, -0x6e, -0x55 ); tilemap_set_scrolldx( tilemap_0, -0x6c +2, -0x57 -2 ); tilemap_set_scrolldx( tilemap_1, -0x6d +2, -0x56 -2 ); tilemap_set_scrolldx( tilemap_2, -0x6e +2, -0x55 -2 ); tilemap_set_scrolldy( tilemap_0, -0x11, -0x100 ); tilemap_set_scrolldy( tilemap_1, -0x11, -0x100 ); tilemap_set_scrolldy( tilemap_2, -0x11, -0x100 ); //tilemap_set_scrolldy( tilemap_2, -0x11 +8, -0x100 -8 ); sprite_list->max_priority = 3; sprite_list->sprite_type = SPRITE_TYPE_ZOOM; return 0; } else return 1; }
int raiden_vh_start(void) { background_layer = tilemap_create( get_back_tile_info, 0, 16,16, 32,32 ); foreground_layer = tilemap_create( get_fore_tile_info, TILEMAP_TRANSPARENT, 16,16, 32,32 ); /* Weird - Raiden (Alternate) has different char format! */ if (!strcmp(Machine->gamedrv->name,"raiden")) ALTERNATE=0; else ALTERNATE=1; /* Weird - Raiden (Alternate) has different char format! */ if (!ALTERNATE) text_layer = tilemap_create( get_text_tile_info, TILEMAP_TRANSPARENT, 8,8, 32,32 ); else text_layer = tilemap_create( get_text_alt_tile_info, TILEMAP_TRANSPARENT, 8,8, 32,32 ); tilemap_set_scroll_rows(background_layer,1); tilemap_set_scroll_cols(background_layer,1); tilemap_set_scroll_rows(foreground_layer,1); tilemap_set_scroll_cols(foreground_layer,1); tilemap_set_scroll_rows(text_layer,0); tilemap_set_scroll_cols(text_layer,0); foreground_layer->transparent_pen = 15; text_layer->transparent_pen = 15; return 0; }
/* 2 Layers */ int dfeveron_vh_start(void) { tilemap_0 = tilemap_create( get_tile_info_0, tilemap_scan_rows, TILEMAP_TRANSPARENT, 16,16, DIM_NX,DIM_NY ); tilemap_1 = tilemap_create( get_tile_info_1, tilemap_scan_rows, TILEMAP_TRANSPARENT, 16,16, DIM_NX,DIM_NY ); tilemap_2 = 0; sprite_list = sprite_list_create(spriteram_size / 0x10 / 2, SPRITE_LIST_BACK_TO_FRONT | SPRITE_LIST_RAW_DATA ); if (tilemap_0 && tilemap_1 && sprite_list) { tilemap_set_scroll_rows(tilemap_0,1); tilemap_set_scroll_cols(tilemap_0,1); tilemap_0->transparent_pen = 0; tilemap_set_scroll_rows(tilemap_1,1); tilemap_set_scroll_cols(tilemap_1,1); tilemap_1->transparent_pen = 0; /* Scroll registers (on dfeveron logo screen): 8195 a1f7 (both) = 200-6b 200-9 (flip off) 01ac 2108 (both) = 200-54 100+8 (flip on) Video registers: 0183 0001 = 200-7d 001 (flip off) 81bf 80f0 = 200-41 100-10 (flip on) */ tilemap_set_scrolldx( tilemap_0, -0x6c, -0x54 ); tilemap_set_scrolldx( tilemap_1, -0x6d, -0x53 ); tilemap_set_scrolldy( tilemap_0, -0x11, -0x100 ); tilemap_set_scrolldy( tilemap_1, -0x11, -0x100 ); sprite_list->max_priority = 3; sprite_list->sprite_type = SPRITE_TYPE_ZOOM; return 0; } else return 1; }
/* 1 Layer */ int uopoko_vh_start(void) { tilemap_0 = tilemap_create( get_tile_info_0, tilemap_scan_rows, TILEMAP_TRANSPARENT, 16,16, DIM_NX,DIM_NY ); tilemap_1 = 0; tilemap_2 = 0; sprite_list = sprite_list_create(spriteram_size / 0x10 / 2, SPRITE_LIST_BACK_TO_FRONT | SPRITE_LIST_RAW_DATA ); if (tilemap_0 && sprite_list) { tilemap_set_scroll_rows(tilemap_0,1); tilemap_set_scroll_cols(tilemap_0,1); tilemap_0->transparent_pen = 0; tilemap_set_scrolldx( tilemap_0, -0x6d, -0x54 ); tilemap_set_scrolldy( tilemap_0, -0x11, -0x100 ); sprite_list->max_priority = 3; sprite_list->sprite_type = SPRITE_TYPE_ZOOM; return 0; } else return 1; }
static void m107_update_scroll_positions(void) { int i; /* Playfield 4 rowscroll data is 0xde800 - 0xdebff??? Playfield 3 rowscroll data is 0xdf800 - 0xdfbff Playfield 2 rowscroll data is 0xdf400 - 0xdf7ff Playfield 1 rowscroll data is 0xde800 - 0xdebff ?? */ if (pf1_rowscroll) { tilemap_set_scroll_rows(pf1_layer,512); for (i=0; i<1024; i+=2) tilemap_set_scrollx( pf1_layer,i/2, (m107_vram_data[0xe800+i]+(m107_vram_data[0xe801+i]<<8))); } else { tilemap_set_scroll_rows(pf1_layer,1); tilemap_set_scrollx( pf1_layer,0, (m107_control[3]<<8)+m107_control[2]+3 ); } if (pf2_rowscroll) { tilemap_set_scroll_rows(pf2_layer,512); for (i=0; i<1024; i+=2) tilemap_set_scrollx( pf2_layer,i/2, (m107_vram_data[0xf400+i]+(m107_vram_data[0xf401+i]<<8))); } else { tilemap_set_scroll_rows(pf2_layer,1); tilemap_set_scrollx( pf2_layer,0, (m107_control[7]<<8)+m107_control[6]+1 ); } if (pf3_rowscroll) { tilemap_set_scroll_rows(pf3_layer,512); for (i=0; i<1024; i+=2) tilemap_set_scrollx( pf3_layer,i/2, (m107_vram_data[0xf800+i]+(m107_vram_data[0xf801+i]<<8))); } else { tilemap_set_scroll_rows(pf3_layer,1); tilemap_set_scrollx( pf3_layer,0, (m107_control[11]<<8)+m107_control[10]-1 ); } if (pf4_rowscroll) { tilemap_set_scroll_rows(pf4_layer,512); for (i=0; i<1024; i+=2) tilemap_set_scrollx( pf4_layer,i/2, (m107_vram_data[0xfc00+i]+(m107_vram_data[0xfc01+i]<<8))); } else { tilemap_set_scroll_rows(pf4_layer,1); tilemap_set_scrollx( pf4_layer,0, (m107_control[15]<<8)+m107_control[14]-3 ); } tilemap_set_scrolly( pf1_layer,0, (m107_control[1]<<8)+m107_control[0] ); tilemap_set_scrolly( pf2_layer,0, (m107_control[5]<<8)+m107_control[4] ); tilemap_set_scrolly( pf3_layer,0, (m107_control[9]<<8)+m107_control[8] ); tilemap_set_scrolly( pf4_layer,0, (m107_control[13]<<8)+m107_control[12] ); // pf4_layer->scrolled=1; // pf3_layer->scrolled=1; // pf2_layer->scrolled=1; // pf1_layer->scrolled=1; }