3-5

ふとテスターズを覗いて見たら以前自前で直したなぁってのがあがっていました。
たまに修正を試みたりもするのですが大抵50歩100歩な状態にw
キャプテンアメリカ アンド ジ・アベンジャーズ
次回リリースで直るのでしょうが折角なので…vidhrdw/deco32.c(0.106ベース)

VIDEO_UPDATE( captaven )
{
int pf1_enable,pf2_enable,pf3_enable;
static int last_pf3_bank;

flip_screen_set(deco32_pf12_control[0]&0x80);
tilemap_set_flip(ALL_TILEMAPS,flip_screen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);

deco32_setup_scroll(pf1_tilemap, 256,(deco32_pf12_control[5]>>0)&0xff,(deco32_pf12_control[6]>>0)&0xff,deco32_pf12_control[2],deco32_pf12_control[1],deco32_pf1_rowscroll,deco32_pf1_rowscroll+0x200);
deco32_setup_scroll(pf1a_tilemap,512,(deco32_pf12_control[5]>>0)&0xff,(deco32_pf12_control[6]>>0)&0xff,deco32_pf12_control[2],deco32_pf12_control[1],deco32_pf1_rowscroll,deco32_pf1_rowscroll+0x200);
deco32_setup_scroll(pf2_tilemap, 512,(deco32_pf12_control[5]>>8)&0xff,(deco32_pf12_control[6]>>8)&0xff,deco32_pf12_control[4],deco32_pf12_control[3],deco32_pf2_rowscroll,deco32_pf2_rowscroll+0x200);
deco32_setup_scroll(pf3_tilemap, 512,(deco32_pf34_control[5]>>0)&0xff,(deco32_pf34_control[6]>>0)&0xff,deco32_pf34_control[4],deco32_pf34_control[3],deco32_pf3_rowscroll,deco32_pf3_rowscroll+0x200);

/* PF1 & PF2 only have enough roms for 1 bank */
deco32_pf1_bank=0;//(deco32_pf12_control[7]>> 4)&0xf;
deco32_pf2_bank=0;//(deco32_pf12_control[7]>>12)&0xf;
deco32_pf3_bank=(deco32_pf34_control[7]>> 4)&0xf;

if (deco32_pf34_control[7]&0x0020) deco32_pf3_bank=0x4000; else deco32_pf3_bank=0;
if (deco32_pf3_bank!=last_pf3_bank) tilemap_mark_all_tiles_dirty(pf3_tilemap);
last_pf3_bank=deco32_pf3_bank;

pf1_enable=deco32_pf12_control[5]&0x0080;
pf2_enable=deco32_pf12_control[5]&0x8000;
pf3_enable=deco32_pf34_control[5]&0x0080;

tilemap_set_enable(pf1_tilemap,pf1_enable);
tilemap_set_enable(pf1a_tilemap,pf1_enable);
tilemap_set_enable(pf2_tilemap,pf2_enable);
tilemap_set_enable(pf3_tilemap,pf3_enable);

fillbitmap(priority_bitmap,0,cliprect);
if ((deco32_pri&1)==0) {
if (pf3_enable)
tilemap_draw(bitmap,cliprect,pf3_tilemap,TILEMAP_IGNORE_TRANSPARENCY,0);
else
fillbitmap(bitmap,get_black_pen(),cliprect);

if (deco32_raster_display_position)
tilemap_raster_draw(bitmap,cliprect,0,1);
else
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,1);
} else {
if (pf2_enable) {
if (deco32_raster_display_position)
tilemap_raster_draw(bitmap,cliprect,TILEMAP_IGNORE_TRANSPARENCY,0);
else
tilemap_draw(bitmap,cliprect,pf2_tilemap,0,0);
}
else
fillbitmap(bitmap,get_black_pen(),cliprect);

tilemap_draw(bitmap,cliprect,pf3_tilemap,0,1);
}

/* PF1 can be in 8x8 mode or 16x16 mode */
if (deco32_pf12_control[6]&0x80)
{
if (deco32_raster_display_position) /* bugfix: captaven058gre */
{
tilemap_draw(bitmap,cliprect,pf1_tilemap,0,0);
captaven_drawsprites(bitmap,cliprect,buffered_spriteram32,3);
}
else
{
captaven_drawsprites(bitmap,cliprect,buffered_spriteram32,3);
tilemap_draw(bitmap,cliprect,pf1_tilemap,0,0);
}
}
else
{
captaven_drawsprites(bitmap,cliprect,buffered_spriteram32,3);
tilemap_draw(bitmap,cliprect,pf1a_tilemap,0,0);
}
}
別窓 | Emulator
2009-03-09 Mon 01:00 ∧top | under∨
| LiveAlive |