mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
Dumped i8751 dump for Sky Robo / Takatae Big Fighter, added basic MCU hookup to make it work [Team CAPS0ff, Angelo Salese]
This commit is contained in:
parent
3eef9b5a76
commit
ab55d6be81
@ -292,6 +292,7 @@ Notes:
|
||||
#include "includes/armedf.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
#include "sound/3812intf.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
@ -312,6 +313,7 @@ Notes:
|
||||
---- -x-- ---- ---- disable fg layer
|
||||
---- --x- ---- ---- disable sprite
|
||||
---- ---x ---- ---- disable tx layer
|
||||
---- ---- ---x ---- unknown, used by big fighter
|
||||
---- ---- ---- --x- coin counter 1
|
||||
---- ---- ---- ---x coin counter 0
|
||||
*/
|
||||
@ -330,6 +332,13 @@ WRITE16_MEMBER(armedf_state::terraf_io_w)
|
||||
flip_screen_set(m_vreg & 0x1000);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(bigfghtr_state::bigfghtr_io_w)
|
||||
{
|
||||
//if(data & 0x10)
|
||||
// m_mcu->set_input_line(MCS51_INT0_LINE, HOLD_LINE);
|
||||
terraf_io_w(space,offset,data,mem_mask);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(armedf_state::terrafjb_io_w)
|
||||
{
|
||||
if(data & 0x4000 && ((m_vreg & 0x4000) == 0)) //0 -> 1 transition
|
||||
@ -522,9 +531,12 @@ ADDRESS_MAP_END
|
||||
READ16_MEMBER(bigfghtr_state::latch_r)
|
||||
{
|
||||
m_read_latch = 1;
|
||||
m_mcu->set_input_line(MCS51_INT0_LINE, HOLD_LINE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
// reference code, in case anything goes bad
|
||||
WRITE16_MEMBER(bigfghtr_state::sharedram_w)
|
||||
{
|
||||
data &= mem_mask;
|
||||
@ -667,11 +679,22 @@ READ16_MEMBER(bigfghtr_state::sharedram_r)
|
||||
|
||||
return m_sharedram[offset];
|
||||
}
|
||||
#endif
|
||||
|
||||
READ8_MEMBER(bigfghtr_state::main_sharedram_r)
|
||||
{
|
||||
return m_sharedram[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bigfghtr_state::main_sharedram_w)
|
||||
{
|
||||
m_sharedram[offset] = data;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x0805ff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x080600, 0x083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram")
|
||||
AM_RANGE(0x080600, 0x083fff) AM_READWRITE8(main_sharedram_r,main_sharedram_w,0xffff)
|
||||
AM_RANGE(0x084000, 0x085fff) AM_RAM //work ram
|
||||
AM_RANGE(0x086000, 0x086fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_SHARE("bg_videoram")
|
||||
AM_RANGE(0x087000, 0x087fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_SHARE("fg_videoram")
|
||||
@ -682,7 +705,7 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
|
||||
AM_RANGE(0x08c002, 0x08c003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x08c004, 0x08c005) AM_READ_PORT("DSW0")
|
||||
AM_RANGE(0x08c006, 0x08c007) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x08d000, 0x08d001) AM_WRITE(terraf_io_w) //807b0
|
||||
AM_RANGE(0x08d000, 0x08d001) AM_WRITE(bigfghtr_io_w) //807b0
|
||||
AM_RANGE(0x08d002, 0x08d003) AM_WRITE(armedf_bg_scrollx_w)
|
||||
AM_RANGE(0x08d004, 0x08d005) AM_WRITE(armedf_bg_scrolly_w)
|
||||
AM_RANGE(0x08d006, 0x08d007) AM_WRITE(armedf_fg_scrollx_w)
|
||||
@ -694,6 +717,16 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
|
||||
AM_RANGE(0x400000, 0x400001) AM_READ(latch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bigfghtr_mcu_map, AS_PROGRAM, 8, bigfghtr_state )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bigfghtr_mcu_io_map, AS_IO, 8, bigfghtr_state )
|
||||
// AM_RANGE(0x00000, 0x005ff) Sprite RAM, guess shared as well
|
||||
AM_RANGE(0x00600, 0x03fff) AM_RAM AM_SHARE("sharedram")
|
||||
// AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) bit 5: bus contention related?
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, armedf_state )
|
||||
AM_RANGE(0x0000, 0xf7ff) AM_ROM
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM
|
||||
@ -1544,6 +1577,10 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
|
||||
MCFG_CPU_IO_MAP(sound_portmap)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(armedf_state, irq0_line_hold, XTAL_8MHz/2/512) // ?
|
||||
|
||||
MCFG_CPU_ADD("mcu", I8751, XTAL_16MHz/4) /* ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(bigfghtr_mcu_map)
|
||||
MCFG_CPU_IO_MAP(bigfghtr_mcu_io_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(bigfghtr_state,bigfghtr)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(bigfghtr_state,bigfghtr)
|
||||
|
||||
@ -2048,7 +2085,8 @@ ROM_START( skyrobo )
|
||||
ROM_LOAD( "8.17k", 0x00000, 0x10000, CRC(0aeab61e) SHA1(165e0ad58542b65383fef714578da21f62df7b74) )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* Intel C8751 read protected MCU */
|
||||
ROM_LOAD( "i8751.mcu", 0x00000, 0x1000, NO_DUMP )
|
||||
// coming from Takatae Big Fighter, might or might not be correct for this version
|
||||
ROM_LOAD( "i8751.bin", 0x00000, 0x1000, BAD_DUMP CRC(64a0d225) SHA1(ccc5c33c0c412bf9e3a4f7de5e39b042e00c41dd) )
|
||||
|
||||
ROM_REGION( 0x08000, "gfx1", 0 )
|
||||
ROM_LOAD( "7", 0x00000, 0x08000, CRC(f556ef28) SHA1(2acb83cdf23356091056f2cfbbc2b9828ee25b6f) ) /* Rom location 11C */
|
||||
@ -2080,7 +2118,7 @@ ROM_START( bigfghtr )
|
||||
ROM_LOAD( "8.17k", 0x00000, 0x10000, CRC(0aeab61e) SHA1(165e0ad58542b65383fef714578da21f62df7b74) )
|
||||
|
||||
ROM_REGION( 0x10000, "mcu", 0 ) /* Intel C8751 read protected MCU */
|
||||
ROM_LOAD( "i8751.mcu", 0x00000, 0x1000, NO_DUMP )
|
||||
ROM_LOAD( "i8751.bin", 0x00000, 0x1000, CRC(64a0d225) SHA1(ccc5c33c0c412bf9e3a4f7de5e39b042e00c41dd) )
|
||||
|
||||
ROM_REGION( 0x08000, "gfx1", 0 )
|
||||
ROM_LOAD( "7.11c", 0x00000, 0x08000, CRC(1809e79f) SHA1(730547771f803857acb552a84a8bc21bd3bda33f) )
|
||||
|
@ -110,18 +110,22 @@ class bigfghtr_state : public armedf_state
|
||||
public:
|
||||
bigfghtr_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: armedf_state(mconfig, type, tag),
|
||||
m_sharedram(*this, "sharedram") { }
|
||||
|
||||
required_shared_ptr<uint16_t> m_sharedram;
|
||||
m_mcu(*this, "mcu"),
|
||||
m_sharedram(*this, "sharedram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_mcu;
|
||||
required_shared_ptr<uint8_t> m_sharedram;
|
||||
|
||||
/* misc */
|
||||
int m_read_latch;
|
||||
uint8_t m_mcu_input_snippet;
|
||||
uint8_t m_mcu_jsr_snippet;
|
||||
|
||||
DECLARE_READ16_MEMBER(latch_r);
|
||||
DECLARE_WRITE16_MEMBER(sharedram_w);
|
||||
DECLARE_READ16_MEMBER(sharedram_r);
|
||||
DECLARE_WRITE8_MEMBER(main_sharedram_w);
|
||||
DECLARE_READ8_MEMBER(main_sharedram_r);
|
||||
DECLARE_WRITE16_MEMBER(bigfghtr_io_w);
|
||||
DECLARE_DRIVER_INIT(bigfghtr);
|
||||
DECLARE_MACHINE_START(bigfghtr);
|
||||
DECLARE_MACHINE_RESET(bigfghtr);
|
||||
|
Loading…
Reference in New Issue
Block a user