Haze fixes:

fix mt 04635, 04632
plus correct loading for dragngun video data, identified as standard DVI data (unsurprising, game has a DVI logo)
dave | -=+ says (14:58)
plus slight fix to the way captaven rasters were handled
plus widescreen layout on superchase (it's meant to be widescreen)
This commit is contained in:
Angelo Salese 2012-01-30 14:13:49 +00:00
parent 816cc9291d
commit f8611a98a2
7 changed files with 75 additions and 74 deletions

View File

@ -274,22 +274,6 @@ static const deco16ic_interface fghthist_deco16ic_tilegen2_intf =
#if 0
static WRITE32_HANDLER( deco32_pf12_control_w )
{
deco32_state *state = space->machine().driver_data<deco32_state>();
COMBINE_DATA(&state->m_pf12_control[offset]);
space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
}
static WRITE32_HANDLER( deco32_pf34_control_w )
{
deco32_state *state = space->machine().driver_data<deco32_state>();
COMBINE_DATA(&state->m_pf34_control[offset]);
space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
}
#endif
static TIMER_DEVICE_CALLBACK( interrupt_gen )
@ -349,8 +333,7 @@ static WRITE32_HANDLER( deco32_irq_controller_w )
scanline=(data&0xff);
if (state->m_raster_enable && scanline>0 && scanline<240)
{
// needs +16 for the raster to align on captaven intro? (might just be our screen size / visible area / layer offsets need adjusting instead)
state->m_raster_irq_timer->adjust(space->machine().primary_screen->time_until_pos(scanline+16, 320));
state->m_raster_irq_timer->adjust(space->machine().primary_screen->time_until_pos(scanline-1, 0));
}
else
state->m_raster_irq_timer->reset();
@ -2628,19 +2611,21 @@ ROM_START( dragngun )
ROM_LOAD32_BYTE( "mar-15.bin", 0x000003, 0x100000, CRC(ec976b20) SHA1(c120b3c56d5e02162e41dc7f726c260d0f8d2f1a) )
ROM_LOAD32_BYTE( "mar-16.bin", 0x400003, 0x100000, CRC(8b329bc8) SHA1(6e34eb6e2628a01a699d20a5155afb2febc31255) )
ROM_REGION( 0x100000, "gfx5", 0 ) /* Video data - unused for now */
ROM_LOAD( "mar-17.bin", 0x00000, 0x100000, CRC(7799ed23) SHA1(ae28ad4fa6033a3695fa83356701b3774b26e6b0) )
ROM_LOAD( "mar-18.bin", 0x00000, 0x100000, CRC(ded66da9) SHA1(5134cb47043cc190a35ebdbf1912166669f9c055) )
ROM_LOAD( "mar-19.bin", 0x00000, 0x100000, CRC(bdd1ed20) SHA1(2435b23210b8fee4d39c30d4d3c6ea40afaa3b93) )
ROM_LOAD( "mar-20.bin", 0x00000, 0x100000, CRC(fa0462f0) SHA1(1a52617ad4d7abebc0f273dd979f4cf2d6a0306b) )
ROM_LOAD( "mar-21.bin", 0x00000, 0x100000, CRC(2d0a28ae) SHA1(d87f6f71bb76880e4d4f1eab8e0451b5c3df69a5) )
ROM_LOAD( "mar-22.bin", 0x00000, 0x100000, CRC(c85f3559) SHA1(a5d5cf9b18c9ef6a92d7643ca1ec9052de0d4a01) )
ROM_LOAD( "mar-23.bin", 0x00000, 0x100000, CRC(ba907d6a) SHA1(1fd99b66e6297c8d927c1cf723a613b4ee2e2f90) )
ROM_LOAD( "mar-24.bin", 0x00000, 0x100000, CRC(5cec45c8) SHA1(f99a26afaca9d9320477e469b09e3873bc8c156f) )
ROM_LOAD( "mar-25.bin", 0x00000, 0x100000, CRC(d65d895c) SHA1(4508dfff95a7aff5109dc74622cbb4503b0b5840) )
ROM_LOAD( "mar-26.bin", 0x00000, 0x100000, CRC(246a06c5) SHA1(447252be976a5059925f4ad98df8564b70198f62) )
ROM_LOAD( "mar-27.bin", 0x00000, 0x100000, CRC(3fcbd10f) SHA1(70fc7b88bbe35bbae1de14364b03d0a06d541de5) )
ROM_LOAD( "mar-28.bin", 0x00000, 0x100000, CRC(5a2ec71d) SHA1(447c404e6bb696f7eb7c61992a99b9be56f5d6b0) )
// this is standard DVI data, see http://www.fileformat.info/format/dvi/egff.htm
// there are DVI headers at 0x000000, 0x580000, 0x800000, 0xB10000, 0xB80000
ROM_REGION( 0xc00000, "dvi", 0 ) /* Video data - unused for now */
ROM_LOAD32_BYTE( "mar-17.bin", 0x000000, 0x100000, CRC(7799ed23) SHA1(ae28ad4fa6033a3695fa83356701b3774b26e6b0) ) // 56 V / 41 A
ROM_LOAD32_BYTE( "mar-20.bin", 0x000001, 0x100000, CRC(fa0462f0) SHA1(1a52617ad4d7abebc0f273dd979f4cf2d6a0306b) ) // 44 D / 56 V
ROM_LOAD32_BYTE( "mar-28.bin", 0x000002, 0x100000, CRC(5a2ec71d) SHA1(447c404e6bb696f7eb7c61992a99b9be56f5d6b0) ) // 56 V / 53 S
ROM_LOAD32_BYTE( "mar-25.bin", 0x000003, 0x100000, CRC(d65d895c) SHA1(4508dfff95a7aff5109dc74622cbb4503b0b5840) ) // 49 I / 53 S
ROM_LOAD32_BYTE( "mar-18.bin", 0x400000, 0x100000, CRC(ded66da9) SHA1(5134cb47043cc190a35ebdbf1912166669f9c055) )
ROM_LOAD32_BYTE( "mar-21.bin", 0x400001, 0x100000, CRC(2d0a28ae) SHA1(d87f6f71bb76880e4d4f1eab8e0451b5c3df69a5) )
ROM_LOAD32_BYTE( "mar-27.bin", 0x400002, 0x100000, CRC(3fcbd10f) SHA1(70fc7b88bbe35bbae1de14364b03d0a06d541de5) )
ROM_LOAD32_BYTE( "mar-24.bin", 0x400003, 0x100000, CRC(5cec45c8) SHA1(f99a26afaca9d9320477e469b09e3873bc8c156f) )
ROM_LOAD32_BYTE( "mar-19.bin", 0x800000, 0x100000, CRC(bdd1ed20) SHA1(2435b23210b8fee4d39c30d4d3c6ea40afaa3b93) ) // 56 V / 41 A
ROM_LOAD32_BYTE( "mar-22.bin", 0x800001, 0x100000, CRC(c85f3559) SHA1(a5d5cf9b18c9ef6a92d7643ca1ec9052de0d4a01) ) // 44 D / 56 V
ROM_LOAD32_BYTE( "mar-26.bin", 0x800002, 0x100000, CRC(246a06c5) SHA1(447252be976a5059925f4ad98df8564b70198f62) ) // 56 V / 53 S
ROM_LOAD32_BYTE( "mar-23.bin", 0x800003, 0x100000, CRC(ba907d6a) SHA1(1fd99b66e6297c8d927c1cf723a613b4ee2e2f90) ) // 49 I / 53 S
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "mar-06.n17", 0x000000, 0x80000, CRC(3e006c6e) SHA1(55786e0fde2bf6ba9802f3f4fa8d4c21625b976a) )
@ -2850,7 +2835,7 @@ ROM_START( lockload ) /* Board No. DE-0420-1 + Bottom board DE-0421-0 slightly d
ROM_LOAD32_BYTE( "mbm-14.a23", 0x000003, 0x100000, CRC(5aaaf929) SHA1(5ee30db9b83db664d77e6b5e0988ce3366460df6) )
ROM_LOAD32_BYTE( "mbm-15.a25", 0x400003, 0x100000, CRC(789ce7b1) SHA1(3fb390ce0620ce7a63f7f46eac1ff0eb8ed76d26) )
ROM_REGION( 0x100000, "gfx5", ROMREGION_ERASE00 ) /* Video data - unique PCB and this region is not used? */
ROM_REGION( 0xc00000, "dvi", ROMREGION_ERASE00 ) /* Video data - unique PCB and this region is not used? */
ROM_REGION(0x100000, "oki1", 0 )
ROM_LOAD( "mbm-06.n17", 0x00000, 0x100000, CRC(f34d5999) SHA1(265b5f4e8598bcf9183bf9bd95db69b01536acb2) )
@ -2923,7 +2908,7 @@ ROM_START( gunhard ) /* Board No. DE-0420-1 + Bottom board DE-0421-0 slightly di
ROM_LOAD32_BYTE( "mbm-14.a23", 0x000003, 0x100000, CRC(5aaaf929) SHA1(5ee30db9b83db664d77e6b5e0988ce3366460df6) )
ROM_LOAD32_BYTE( "mbm-15.a25", 0x400003, 0x100000, CRC(789ce7b1) SHA1(3fb390ce0620ce7a63f7f46eac1ff0eb8ed76d26) )
ROM_REGION( 0x100000, "gfx5", ROMREGION_ERASE00 ) /* Video data - unique PCB and this region is not used? */
ROM_REGION( 0xc00000, "dvi", ROMREGION_ERASE00 ) /* Video data - unique PCB and this region is not used? */
ROM_REGION(0x100000, "oki1", 0 )
ROM_LOAD( "mbm-06.n17", 0x00000, 0x100000, CRC(f34d5999) SHA1(265b5f4e8598bcf9183bf9bd95db69b01536acb2) )
@ -2996,7 +2981,7 @@ ROM_START( lockloadu ) /* Board No. DE-0359-2 + Bottom board DE-0360-4, a Dragon
ROM_LOAD32_BYTE( "mbm-14.a23", 0x000003, 0x100000, CRC(5aaaf929) SHA1(5ee30db9b83db664d77e6b5e0988ce3366460df6) )
ROM_LOAD32_BYTE( "mbm-15.a25", 0x400003, 0x100000, CRC(789ce7b1) SHA1(3fb390ce0620ce7a63f7f46eac1ff0eb8ed76d26) )
ROM_REGION( 0x100000, "gfx5", ROMREGION_ERASE00 ) /* Video data - same as Dragongun, probably leftover from a conversion */
ROM_REGION( 0xc00000, "dvi", ROMREGION_ERASE00 ) /* Video data - same as Dragongun, probably leftover from a conversion */
// ROM_LOAD( "mar-17.bin", 0x00000, 0x100000, CRC(7799ed23) SHA1(ae28ad4fa6033a3695fa83356701b3774b26e6b0) )
// ROM_LOAD( "mar-18.bin", 0x00000, 0x100000, CRC(ded66da9) SHA1(5134cb47043cc190a35ebdbf1912166669f9c055) )
// ROM_LOAD( "mar-19.bin", 0x00000, 0x100000, CRC(bdd1ed20) SHA1(2435b23210b8fee4d39c30d4d3c6ea40afaa3b93) )
@ -3288,6 +3273,22 @@ static DRIVER_INIT( dragngun )
memcpy(DST_RAM+0x110000,SRC_RAM+0x10000,0x10000);
ROM[0x1b32c/4]=0xe1a00000;// NOP test switch lock
/*
{
UINT8 *ROM = machine.region("dvi")->base();
FILE *fp;
char filename[256];
sprintf(filename,"video.dvi");
fp=fopen(filename, "w+b");
if (fp)
{
fwrite(ROM, 0xc00000, 1, fp);
fclose(fp);
}
}
*/
}
static DRIVER_INIT( fghthist )

View File

@ -5476,7 +5476,7 @@ static DRIVER_INIT( olds )
static void pgm_decode_kovlsqh2_tiles( running_machine &machine )
{
int i, j;
UINT16 *src = (UINT16 *)(machine.region("tiles")->base() + 0x400000);
UINT16 *src = (UINT16 *)(machine.region("tiles")->base() + 0x180000);
UINT16 *dst = auto_alloc_array(machine, UINT16, 0x800000);
for (i = 0; i < 0x800000 / 2; i++)
@ -5771,7 +5771,7 @@ static DRIVER_INIT( puzzli2 )
static void oldsplus_latch_init( running_machine &machine )
{
oldsplus_state *state = machine.driver_data<oldsplus_state>();
pgm_state *state = machine.driver_data<pgm_state>();
state->m_oldsplus_key = 0;
state->m_oldsplus_int[0] = 0;

View File

@ -30,7 +30,29 @@ public:
UINT16 *m_sprite_temp_render;
bitmap_rgb32 m_tmppgmbitmap;
/* misc */
/* devices */
cpu_device *m_maincpu;
cpu_device *m_soundcpu;
cpu_device *m_prot;
device_t *m_ics;
/* used by rendering */
UINT8 *m_bdata;
size_t m_bdatasize;
int m_aoffset;
int m_boffset;
/* hack */
int m_irq4_disabled;
/* calendar */
UINT8 m_cal_val;
UINT8 m_cal_mask;
UINT8 m_cal_com;
UINT8 m_cal_cnt;
system_time m_systime;
/* protection handling */
// kov2
UINT32 m_kov2_latchdata_68k_w;
UINT32 m_kov2_latchdata_arm_w;
@ -74,47 +96,20 @@ public:
UINT16 m_asic_params[256];
UINT16 m_asic28_rcnt;
UINT32 m_eoregs[16];
/* calendar */
UINT8 m_cal_val;
UINT8 m_cal_mask;
UINT8 m_cal_com;
UINT8 m_cal_cnt;
system_time m_systime;
/* devices */
cpu_device *m_maincpu;
cpu_device *m_soundcpu;
cpu_device *m_prot;
device_t *m_ics;
/* used by rendering */
UINT8 *m_bdata;
size_t m_bdatasize;
int m_aoffset;
int m_boffset;
/* hack */
int m_irq4_disabled;
};
class oldsplus_state : public pgm_state
{
public:
oldsplus_state(const machine_config &mconfig, device_type type, const char *tag)
: pgm_state(mconfig, type, tag) { }
public:
// Oldsplus simulation
UINT16 m_oldsplus_key;
UINT16 m_oldsplus_int[2];
UINT32 m_oldsplus_val;
UINT16 m_oldsplus_ram[0x100];
UINT32 m_oldsplus_regs[0x100];
};
extern UINT16 *pgm_mainram; // used by nvram handler, we cannot move it to driver data struct
/*----------- defined in machine/pgmcrypt.c -----------*/

View File

@ -47,19 +47,21 @@
<color red="0.85" green="0.4" blue="0.3" />
</disk>
</element>
<!-- Super Chase used a widescreen monitor, see http://flyers.arcade-museum.com/?page=thumbs&db=videodb&id=1118 -->
<view name="Shifter-R">
<screen index="0">
<bounds x="0" y="0" width="640" height="480" />
<bounds left="0" top="0" right="864" bottom="486" />
</screen>
<bezel element="shifter" inputtag="INPUTS" inputmask="0x00002000">
<bounds x="606" y="414" width="32" height="64" />
<bounds x="830" y="414" width="32" height="64" />
<color alpha="0.6" />
</bezel>
</view>
<view name="Shifter-L">
<screen index="0">
<bounds x="0" y="0" width="640" height="480" />
<bounds left="0" top="0" right="864" bottom="486" />
</screen>
<bezel element="shifter" inputtag="INPUTS" inputmask="0x00002000">
<bounds x="2" y="414" width="32" height="64" />

View File

@ -912,7 +912,7 @@ READ16_HANDLER( oldsplus_protram_r )
READ16_HANDLER( oldsplus_r )
{
oldsplus_state *state = space->machine().driver_data<oldsplus_state>();
pgm_state *state = space->machine().driver_data<pgm_state>();
if (offset == 0)
{
@ -936,7 +936,7 @@ READ16_HANDLER( oldsplus_r )
WRITE16_HANDLER( oldsplus_w )
{
oldsplus_state *state = space->machine().driver_data<oldsplus_state>();
pgm_state *state = space->machine().driver_data<pgm_state>();
if (offset == 0)
{

View File

@ -136,6 +136,7 @@ VIDEO_START( terraf )
state->m_tx_tilemap->set_scrollx(0, -128);
state->m_text_videoram = auto_alloc_array(machine, UINT8, 0x1000);
memset(state->m_text_videoram, 0x00, 0x1000);
}
VIDEO_START( armedf )
@ -157,6 +158,7 @@ VIDEO_START( armedf )
state->m_tx_tilemap->set_scrollx(0, -128);
state->m_text_videoram = auto_alloc_array(machine, UINT8, 0x1000);
memset(state->m_text_videoram, 0x00, 0x1000);
}
/***************************************************************************

View File

@ -572,8 +572,9 @@ READ16_DEVICE_HANDLER( deco16ic_pf2_data_r )
WRITE16_DEVICE_HANDLER( deco16ic_pf_control_w )
{
deco16ic_state *deco16ic = get_safe_token(device);
COMBINE_DATA(&deco16ic->pf12_control[offset]);
device->machine().primary_screen->update_partial(device->machine().primary_screen->vpos());
COMBINE_DATA(&deco16ic->pf12_control[offset]);
}
READ16_DEVICE_HANDLER( deco16ic_pf_control_r )