diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index 57fbd98b5ac..529eedda4d9 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -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(); - 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(); - 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 ) diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 08f59a5e394..93976a2b8b3 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -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(); + pgm_state *state = machine.driver_data(); state->m_oldsplus_key = 0; state->m_oldsplus_int[0] = 0; diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h index a87ef744f00..98b8ad32460 100644 --- a/src/mame/includes/pgm.h +++ b/src/mame/includes/pgm.h @@ -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 -----------*/ diff --git a/src/mame/layout/superchs.lay b/src/mame/layout/superchs.lay index 0ebabc6808f..727bfa69929 100644 --- a/src/mame/layout/superchs.lay +++ b/src/mame/layout/superchs.lay @@ -47,19 +47,21 @@ + + - + - + - + diff --git a/src/mame/machine/pgmprot.c b/src/mame/machine/pgmprot.c index 3f4bba68628..cb9ed714062 100644 --- a/src/mame/machine/pgmprot.c +++ b/src/mame/machine/pgmprot.c @@ -912,7 +912,7 @@ READ16_HANDLER( oldsplus_protram_r ) READ16_HANDLER( oldsplus_r ) { - oldsplus_state *state = space->machine().driver_data(); + pgm_state *state = space->machine().driver_data(); if (offset == 0) { @@ -936,7 +936,7 @@ READ16_HANDLER( oldsplus_r ) WRITE16_HANDLER( oldsplus_w ) { - oldsplus_state *state = space->machine().driver_data(); + pgm_state *state = space->machine().driver_data(); if (offset == 0) { diff --git a/src/mame/video/armedf.c b/src/mame/video/armedf.c index 376cc3f6241..956f98ef460 100644 --- a/src/mame/video/armedf.c +++ b/src/mame/video/armedf.c @@ -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); } /*************************************************************************** diff --git a/src/mame/video/deco16ic.c b/src/mame/video/deco16ic.c index 6dac7927166..e454258b1b3 100644 --- a/src/mame/video/deco16ic.c +++ b/src/mame/video/deco16ic.c @@ -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 )