mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
highvdeo.cpp Updates (#3505)
* highvideo.cpp : Cleanup drawing (related by cliprect), Split machine config and address map per each games, Cleanup Duplicates, Add output finder, Cleanup ROM loading, Add notes, Add precalculated color for game with drawing directly RGB565, Remove unnecessary things * highvdeo.cpp : Add notes of ROM loading place * highvdeo.cpp : Fix compile
This commit is contained in:
parent
b52bc630ab
commit
2e745b0a52
@ -114,23 +114,28 @@ class highvdeo_state : public driver_device
|
||||
{
|
||||
public:
|
||||
highvdeo_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_blit_ram(*this, "blit_ram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_okim6376(*this, "oki"),
|
||||
m_palette(*this, "palette") { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_blit_ram(*this, "blit_ram")
|
||||
, m_mainbank(*this, "mainbank")
|
||||
, m_lamps(*this, "lamp%u", 1U)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_okim6376(*this, "oki")
|
||||
, m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
required_shared_ptr<uint16_t> m_blit_ram;
|
||||
optional_memory_bank m_mainbank;
|
||||
|
||||
output_finder<6> m_lamps;
|
||||
uint16_t m_vblank_bit;
|
||||
uint16_t m_brasil_prot_latch;
|
||||
uint16_t m_grancapi_prot_latch;
|
||||
DECLARE_READ16_MEMBER(read0_r);
|
||||
DECLARE_READ16_MEMBER(read1_r);
|
||||
DECLARE_READ16_MEMBER(read2_r);
|
||||
DECLARE_WRITE16_MEMBER(tv_vcf_bankselect_w);
|
||||
template<int Mask> DECLARE_WRITE16_MEMBER(bankselect_w);
|
||||
DECLARE_WRITE16_MEMBER(write1_w);
|
||||
DECLARE_READ16_MEMBER(tv_ncf_read1_r);
|
||||
DECLARE_WRITE16_MEMBER(tv_tcf_bankselect_w);
|
||||
DECLARE_READ16_MEMBER(newmcard_status_r);
|
||||
DECLARE_READ16_MEMBER(newmcard_vblank_r);
|
||||
DECLARE_WRITE16_MEMBER(newmcard_vblank_w);
|
||||
@ -148,10 +153,7 @@ public:
|
||||
DECLARE_READ16_MEMBER(tv_oki6376_r);
|
||||
DECLARE_WRITE16_MEMBER(tv_ncf_oki6376_w);
|
||||
DECLARE_WRITE16_MEMBER(tv_ncf_oki6376_st_w);
|
||||
DECLARE_DRIVER_INIT(fashion);
|
||||
DECLARE_DRIVER_INIT(ciclone);
|
||||
DECLARE_DRIVER_INIT(record);
|
||||
DECLARE_VIDEO_START(tourvisn);
|
||||
virtual void machine_start() override;
|
||||
uint32_t screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
@ -165,18 +167,24 @@ public:
|
||||
void nyjoker(machine_config &config);
|
||||
void magicbom(machine_config &config);
|
||||
void brasil(machine_config &config);
|
||||
void fashion(machine_config &config);
|
||||
void newmcard(machine_config &config);
|
||||
void record(machine_config &config);
|
||||
void tv_tcf(machine_config &config);
|
||||
void tv_vcf(machine_config &config);
|
||||
void brasil_io(address_map &map);
|
||||
void brasil_map(address_map &map);
|
||||
void ciclone_io(address_map &map);
|
||||
void fashion_io(address_map &map);
|
||||
void grancapi_io(address_map &map);
|
||||
void magicbom_io(address_map &map);
|
||||
void newmcard_io_base(address_map &map);
|
||||
void newmcard_io(address_map &map);
|
||||
void newmcard_map(address_map &map);
|
||||
void nyjoker_io(address_map &map);
|
||||
void nyjoker_map(address_map &map);
|
||||
void ramdac_map(address_map &map);
|
||||
void record_io(address_map &map);
|
||||
void tv_ncf_io(address_map &map);
|
||||
void tv_ncf_map(address_map &map);
|
||||
void tv_tcf_io(address_map &map);
|
||||
@ -185,22 +193,26 @@ public:
|
||||
void tv_vcf_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(highvdeo_state,tourvisn)
|
||||
void highvdeo_state::machine_start()
|
||||
{
|
||||
m_lamps.resolve();
|
||||
|
||||
if (m_mainbank.found()) /*bankaddress might be incorrect at brasil/fasion/grancapi/magicbom*/
|
||||
{
|
||||
uint32_t max = memregion("maincpu")->bytes() / 0x40000;
|
||||
m_mainbank->configure_entries(0, max, memregion("maincpu")->base(), 0x40000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint32_t highvdeo_state::screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int x,y,count;
|
||||
|
||||
count = (0/2);
|
||||
|
||||
for(y=0;y<(screen.visible_area().max_y+1);y++)
|
||||
for(y=cliprect.min_y;y<=cliprect.max_y;y++)
|
||||
{
|
||||
for(x=0;x<(screen.visible_area().max_x+1)/2;x++)
|
||||
count = ((y * (screen.visible_area().max_x+1)) + cliprect.min_x) >> 1;
|
||||
for(x=(cliprect.min_x>>1);x<=(cliprect.max_x>>1);x++)
|
||||
{
|
||||
uint32_t color;
|
||||
|
||||
@ -226,26 +238,14 @@ uint32_t highvdeo_state::screen_update_brasil(screen_device &screen, bitmap_rgb3
|
||||
{
|
||||
int x,y,count;
|
||||
|
||||
count = (0/2);
|
||||
const pen_t *rgb = m_palette->pens(); // 16 bit RGB
|
||||
|
||||
for(y=0;y<300;y++)
|
||||
for(y=cliprect.min_y;y<=cliprect.max_y;y++)
|
||||
{
|
||||
for(x=0;x<400;x++)
|
||||
count = (y * 400) + cliprect.min_x;
|
||||
for(x=cliprect.min_x;x<=cliprect.max_x;x++)
|
||||
{
|
||||
uint32_t color;
|
||||
uint32_t b;
|
||||
uint32_t g;
|
||||
uint32_t r;
|
||||
|
||||
color = (m_blit_ram[count]) & 0xffff;
|
||||
|
||||
b = (color & 0x001f) << 3;
|
||||
g = (color & 0x07e0) >> 3;
|
||||
r = (color & 0xf800) >> 8;
|
||||
if(cliprect.contains(x, y))
|
||||
bitmap.pix32(y, x) = b | (g<<8) | (r<<16);
|
||||
|
||||
count++;
|
||||
bitmap.pix32(y, x) = rgb[m_blit_ram[count++]];
|
||||
}
|
||||
}
|
||||
|
||||
@ -269,16 +269,10 @@ READ16_MEMBER(highvdeo_state::read2_r)
|
||||
return ioport("IN2")->read();
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(highvdeo_state::tv_vcf_bankselect_w)
|
||||
template<int Mask>
|
||||
WRITE16_MEMBER(highvdeo_state::bankselect_w)
|
||||
{
|
||||
uint32_t bankaddress;
|
||||
uint8_t *ROM = memregion("user1")->base();
|
||||
|
||||
/* bits 0, 1 select the ROM bank */
|
||||
bankaddress = (data & 0x03) * 0x40000;
|
||||
|
||||
membank("bank1")->set_base(&ROM[bankaddress]);
|
||||
m_mainbank->set_entry(data & Mask);
|
||||
}
|
||||
|
||||
|
||||
@ -315,12 +309,10 @@ WRITE16_MEMBER(highvdeo_state::write1_w)
|
||||
---x ---- Hold5 lamp.
|
||||
--x- ---- Start lamp.
|
||||
*/
|
||||
output().set_lamp_value(1, (data & 1)); /* Lamp 1 - HOLD 1 */
|
||||
output().set_lamp_value(2, (data >> 1) & 1); /* Lamp 2 - HOLD 2 */
|
||||
output().set_lamp_value(3, (data >> 2) & 1); /* Lamp 3 - HOLD 3 */
|
||||
output().set_lamp_value(4, (data >> 3) & 1); /* Lamp 4 - HOLD 4 */
|
||||
output().set_lamp_value(5, (data >> 4) & 1); /* Lamp 5 - HOLD 5 */
|
||||
output().set_lamp_value(6, (data >> 5) & 1); /* Lamp 6 - START */
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
m_lamps[i] = BIT(data, i);
|
||||
}
|
||||
|
||||
// popmessage("%04x %04x",t1,t3);
|
||||
}
|
||||
@ -330,8 +322,8 @@ void highvdeo_state::tv_vcf_map(address_map &map)
|
||||
map(0x00000, 0x003ff).ram(); /*irq vector area*/
|
||||
map(0x00400, 0x03fff).ram().share("nvram");
|
||||
map(0x40000, 0x4ffff).ram().share("blit_ram"); /*blitter ram*/
|
||||
map(0x80000, 0xbffff).bankr("bank1");
|
||||
map(0xc0000, 0xfffff).rom().region("boot_prg", 0);
|
||||
map(0x80000, 0xbffff).bankr("mainbank");
|
||||
map(0xc0000, 0xfffff).rom().region("maincpu", 0xc0000)
|
||||
}
|
||||
|
||||
void highvdeo_state::tv_vcf_io(address_map &map)
|
||||
@ -344,7 +336,7 @@ void highvdeo_state::tv_vcf_io(address_map &map)
|
||||
map(0x0010, 0x0010).w("ramdac", FUNC(ramdac_device::index_w));
|
||||
map(0x0012, 0x0012).w("ramdac", FUNC(ramdac_device::mask_w));
|
||||
map(0x0014, 0x0014).w("ramdac", FUNC(ramdac_device::pal_w));
|
||||
map(0x0030, 0x0031).w(this, FUNC(highvdeo_state::tv_vcf_bankselect_w)).r(this, FUNC(highvdeo_state::tv_oki6376_r));
|
||||
map(0x0030, 0x0031).w(this, FUNC(highvdeo_state::bankselect_w<0x03>)).r(this, FUNC(highvdeo_state::tv_oki6376_r));
|
||||
}
|
||||
|
||||
|
||||
@ -381,8 +373,7 @@ void highvdeo_state::tv_ncf_map(address_map &map)
|
||||
map(0x00000, 0x003ff).ram(); /*irq vector area*/
|
||||
map(0x00400, 0x03fff).ram().share("nvram");
|
||||
map(0x20000, 0x2ffff).ram().share("blit_ram"); /*blitter ram*/
|
||||
map(0x40000, 0xbffff).rom().region("user1", 0x40000);
|
||||
map(0xc0000, 0xfffff).rom().region("boot_prg", 0);
|
||||
map(0x40000, 0xfffff).rom().region("maincpu", 0x40000)
|
||||
}
|
||||
|
||||
void highvdeo_state::tv_ncf_io(address_map &map)
|
||||
@ -404,8 +395,7 @@ void highvdeo_state::nyjoker_map(address_map &map)
|
||||
map(0x00000, 0x003ff).ram(); /*irq vector area*/
|
||||
map(0x00400, 0x03fff).ram().share("nvram");
|
||||
map(0x10000, 0x1ffff).ram().share("blit_ram"); /*blitter ram*/
|
||||
map(0x40000, 0xbffff).rom().region("user1", 0x40000);
|
||||
map(0xc0000, 0xfffff).rom().region("boot_prg", 0);
|
||||
map(0x40000, 0xfffff).rom().region("maincpu", 0x40000)
|
||||
}
|
||||
|
||||
void highvdeo_state::nyjoker_io(address_map &map)
|
||||
@ -442,25 +432,14 @@ WRITE16_MEMBER(highvdeo_state::nyj_write2_w)
|
||||
machine().bookkeeping().coin_counter_w(1, ~data & 0x10); // Notes (all)
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(highvdeo_state::tv_tcf_bankselect_w)
|
||||
{
|
||||
uint32_t bankaddress;
|
||||
uint8_t *ROM = memregion("user1")->base();
|
||||
|
||||
/* bits 0, 1, 2 select the ROM bank */
|
||||
bankaddress = (data & 0x07) * 0x40000;
|
||||
|
||||
membank("bank1")->set_base(&ROM[bankaddress]);
|
||||
}
|
||||
|
||||
void highvdeo_state::tv_tcf_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x003ff).ram(); /*irq vector area*/
|
||||
map(0x00400, 0x03fff).ram().share("nvram");
|
||||
map(0x40000, 0x5d4bf).ram().share("blit_ram"); /*blitter ram*/
|
||||
map(0x7fe00, 0x7ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x80000, 0xbffff).bankr("bank1");
|
||||
map(0xc0000, 0xfffff).rom().region("boot_prg", 0);
|
||||
map(0x80000, 0xbffff).bankr("mainbank");
|
||||
map(0xc0000, 0xfffff).rom().region("maincpu", 0x1c0000);
|
||||
}
|
||||
|
||||
void highvdeo_state::tv_tcf_io(address_map &map)
|
||||
@ -469,7 +448,33 @@ void highvdeo_state::tv_tcf_io(address_map &map)
|
||||
map(0x0006, 0x0007).w(this, FUNC(highvdeo_state::tv_oki6376_w));
|
||||
map(0x0008, 0x0009).r(this, FUNC(highvdeo_state::read0_r));
|
||||
map(0x000a, 0x000b).r(this, FUNC(highvdeo_state::read1_r));
|
||||
map(0x0030, 0x0031).r(this, FUNC(highvdeo_state::read2_r)).w(this, FUNC(highvdeo_state::tv_tcf_bankselect_w));
|
||||
map(0x0030, 0x0031).r(this, FUNC(highvdeo_state::read2_r)).w(this, FUNC(highvdeo_state::bankselect_w<0x07>));
|
||||
}
|
||||
|
||||
/****************************
|
||||
*
|
||||
* Ciclone
|
||||
*
|
||||
****************************/
|
||||
|
||||
READ16_MEMBER(highvdeo_state::ciclone_status_r)
|
||||
{
|
||||
static uint16_t resetpulse;
|
||||
switch(offset*2)
|
||||
{
|
||||
case 0:
|
||||
resetpulse^=0x10;
|
||||
return 0 | resetpulse;
|
||||
case 2: return 0x15; //and 0x3f
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void highvdeo_state::ciclone_io(address_map &map)
|
||||
{
|
||||
tv_tcf_io(map);
|
||||
map(0x0030, 0x0033).r(this, FUNC(highvdeo_state::ciclone_status_r));
|
||||
}
|
||||
|
||||
/****************************
|
||||
@ -488,6 +493,20 @@ READ16_MEMBER(highvdeo_state::newmcard_status_r)
|
||||
return 0;
|
||||
}
|
||||
|
||||
READ16_MEMBER(highvdeo_state::record_status_r)
|
||||
{
|
||||
static uint16_t resetpulse;
|
||||
switch(offset*2)
|
||||
{
|
||||
case 0:
|
||||
resetpulse^=0x15; // and 0x07, cmp with 0x05
|
||||
return 0 | resetpulse;
|
||||
case 2: return 0x15; // unknown
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
READ16_MEMBER(highvdeo_state::newmcard_vblank_r)
|
||||
{
|
||||
@ -517,14 +536,13 @@ void highvdeo_state::newmcard_map(address_map &map)
|
||||
map(0x00000, 0x003ff).ram(); /*irq vector area*/
|
||||
map(0x00400, 0x0ffff).ram().share("nvram");
|
||||
map(0x40000, 0x7ffff).ram().share("blit_ram"); /*blitter ram*/
|
||||
map(0x80000, 0xbffff).bankr("bank1");
|
||||
map(0xc0000, 0xfffff).rom().region("boot_prg", 0);
|
||||
map(0x80000, 0xbffff).bankr("mainbank");
|
||||
map(0xc0000, 0xfffff).rom().region("maincpu", 0xc0000)
|
||||
}
|
||||
|
||||
void highvdeo_state::newmcard_io(address_map &map)
|
||||
void highvdeo_state::newmcard_io_base(address_map &map)
|
||||
{
|
||||
map(0x0030, 0x0033).r(this, FUNC(highvdeo_state::newmcard_status_r));
|
||||
map(0x0030, 0x0031).w(this, FUNC(highvdeo_state::tv_tcf_bankselect_w));
|
||||
map(0x0030, 0x0031).w(this, FUNC(highvdeo_state::bankselect_w<0x07>));
|
||||
map(0x0000, 0x0001).w(this, FUNC(highvdeo_state::write1_w)); // lamps
|
||||
map(0x0002, 0x0003).w(this, FUNC(highvdeo_state::write2_w)); // coin counter & coin lockout
|
||||
map(0x0004, 0x0005).w(this, FUNC(highvdeo_state::newmcard_vblank_w));
|
||||
@ -538,6 +556,18 @@ void highvdeo_state::newmcard_io(address_map &map)
|
||||
map(0x0014, 0x0014).w("ramdac", FUNC(ramdac_device::pal_w));
|
||||
}
|
||||
|
||||
void highvdeo_state::newmcard_io(address_map &map)
|
||||
{
|
||||
newmcard_io_base(map);
|
||||
map(0x0030, 0x0033).r(this, FUNC(highvdeo_state::newmcard_status_r));
|
||||
}
|
||||
|
||||
void highvdeo_state::record_io(address_map &map)
|
||||
{
|
||||
newmcard_io_base(map);
|
||||
map(0x0030, 0x0033).r(this, FUNC(highvdeo_state::record_status_r));
|
||||
}
|
||||
|
||||
/****************************
|
||||
*
|
||||
* Bra$il
|
||||
@ -564,9 +594,6 @@ READ16_MEMBER(highvdeo_state::brasil_status_r)
|
||||
/*bankaddress might be incorrect.*/
|
||||
WRITE16_MEMBER(highvdeo_state::brasil_status_w)
|
||||
{
|
||||
uint32_t bankaddress;
|
||||
uint8_t *ROM = memregion("user1")->base();
|
||||
|
||||
switch(data & 3) //data & 7?
|
||||
{
|
||||
case 0: m_brasil_prot_latch = 1; break;
|
||||
@ -574,9 +601,7 @@ WRITE16_MEMBER(highvdeo_state::brasil_status_w)
|
||||
case 2: m_brasil_prot_latch = 2; break;
|
||||
}
|
||||
|
||||
bankaddress = (data & 0x07) * 0x40000;
|
||||
|
||||
membank("bank1")->set_base(&ROM[bankaddress]);
|
||||
m_mainbank->set_entry(data & 0x07);
|
||||
|
||||
// popmessage("%04x",data);
|
||||
}
|
||||
@ -600,9 +625,6 @@ READ16_MEMBER(highvdeo_state::grancapi_status_r)
|
||||
/*bankaddress might be incorrect.*/
|
||||
WRITE16_MEMBER(highvdeo_state::grancapi_status_w)
|
||||
{
|
||||
uint32_t bankaddress;
|
||||
uint8_t *ROM = memregion("user1")->base();
|
||||
|
||||
switch(data & 3) //data & 7?
|
||||
{
|
||||
case 0: m_grancapi_prot_latch = 1; break;
|
||||
@ -610,9 +632,7 @@ WRITE16_MEMBER(highvdeo_state::grancapi_status_w)
|
||||
case 2: m_grancapi_prot_latch = 2; break;
|
||||
}
|
||||
|
||||
bankaddress = (data & 0x07) * 0x40000;
|
||||
|
||||
membank("bank1")->set_base(&ROM[bankaddress]);
|
||||
m_mainbank->set_entry(data & 0x07);
|
||||
|
||||
// popmessage("%04x",data);
|
||||
}
|
||||
@ -639,8 +659,8 @@ void highvdeo_state::brasil_map(address_map &map)
|
||||
map(0x00000, 0x003ff).ram(); /*irq vector area*/
|
||||
map(0x00400, 0x0ffff).ram().share("nvram");
|
||||
map(0x40000, 0x7ffff).ram().share("blit_ram"); /*blitter ram*/
|
||||
map(0x80000, 0xbffff).bankr("bank1");
|
||||
map(0xc0000, 0xfffff).rom().region("boot_prg", 0);
|
||||
map(0x80000, 0xbffff).bankr("mainbank");
|
||||
map(0xc0000, 0xfffff).rom().region("maincpu", 0x1c0000);
|
||||
}
|
||||
|
||||
void highvdeo_state::brasil_io(address_map &map)
|
||||
@ -657,6 +677,25 @@ void highvdeo_state::brasil_io(address_map &map)
|
||||
// AM_RANGE(0xffa2, 0xffa3) AM_WRITE
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(highvdeo_state::fashion_output_w)
|
||||
{
|
||||
int i;
|
||||
|
||||
// popmessage("%04x",data);
|
||||
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(i,data & 0x20);
|
||||
machine().bookkeeping().coin_lockout_w(i,~data & 0x01);
|
||||
}
|
||||
}
|
||||
|
||||
void highvdeo_state::fashion_io(address_map &map)
|
||||
{
|
||||
brasil_io(map);
|
||||
map(0x0002, 0x0003).w(this, FUNC(highvdeo_state::fashion_output_w));
|
||||
}
|
||||
|
||||
void highvdeo_state::grancapi_io(address_map &map)
|
||||
{
|
||||
map(0x0030, 0x0033).r(this, FUNC(highvdeo_state::grancapi_status_r));
|
||||
@ -673,6 +712,7 @@ void highvdeo_state::grancapi_io(address_map &map)
|
||||
|
||||
void highvdeo_state::magicbom_io(address_map &map)
|
||||
{
|
||||
map(0x0002, 0x0003).w(this, FUNC(highvdeo_state::fashion_output_w));
|
||||
map(0x0030, 0x0033).r(this, FUNC(highvdeo_state::magicbom_status_r));
|
||||
map(0x000e, 0x000f).w(this, FUNC(highvdeo_state::grancapi_status_w));
|
||||
map(0x0000, 0x0001).w(this, FUNC(highvdeo_state::write1_w)); // lamps
|
||||
@ -1181,15 +1221,12 @@ MACHINE_CONFIG_START(highvdeo_state::tv_vcf)
|
||||
MCFG_PALETTE_ADD("palette", 0x100)
|
||||
MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
//OkiM6376
|
||||
MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives approx. same sample rate as previous emulation
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::tv_ncf)
|
||||
@ -1198,7 +1235,6 @@ MACHINE_CONFIG_START(highvdeo_state::tv_ncf)
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(tv_ncf_map)
|
||||
MCFG_DEVICE_IO_MAP(tv_ncf_io)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::nyjoker)
|
||||
@ -1207,7 +1243,6 @@ MACHINE_CONFIG_START(highvdeo_state::nyjoker)
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(nyjoker_map)
|
||||
MCFG_DEVICE_IO_MAP(nyjoker_io)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::tv_tcf)
|
||||
@ -1235,6 +1270,13 @@ MACHINE_CONFIG_START(highvdeo_state::newmcard)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::record)
|
||||
newmcard(config);
|
||||
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_IO_MAP(record_io)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::ciclone)
|
||||
tv_tcf(config);
|
||||
|
||||
@ -1242,7 +1284,7 @@ MACHINE_CONFIG_START(highvdeo_state::ciclone)
|
||||
|
||||
MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) // ?
|
||||
MCFG_DEVICE_PROGRAM_MAP(tv_tcf_map)
|
||||
MCFG_DEVICE_IO_MAP(tv_tcf_io)
|
||||
MCFG_DEVICE_IO_MAP(ciclone_io)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", highvdeo_state, vblank_irq_80186)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1261,9 +1303,7 @@ MACHINE_CONFIG_START(highvdeo_state::brasil)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil)
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x100)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
|
||||
MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -1272,6 +1312,12 @@ MACHINE_CONFIG_START(highvdeo_state::brasil)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::fashion)
|
||||
brasil(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_IO_MAP(fashion_io)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(highvdeo_state::grancapi)
|
||||
MCFG_DEVICE_ADD("maincpu", I80186, 20000000 )
|
||||
MCFG_DEVICE_PROGRAM_MAP(brasil_map)
|
||||
@ -1287,9 +1333,7 @@ MACHINE_CONFIG_START(highvdeo_state::grancapi)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil)
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x100)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
|
||||
MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -1313,9 +1357,7 @@ MACHINE_CONFIG_START(highvdeo_state::magicbom)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil)
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x100)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn)
|
||||
MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette")
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -1326,73 +1368,55 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
ROM_START( tour4000 )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "vcfi18.bin", 0x00001, 0x80000, CRC(8c83cd34) SHA1(a94bdfdb74d047ac3851f2aef295a37c93b091f2) )
|
||||
ROM_LOAD16_BYTE( "vcfi17.bin", 0x00000, 0x80000, CRC(bcae57ed) SHA1(13c02cae59ed5cc0847a7827a315902066b03190) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cfever40 )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "vcfi48.bin", 0x00001, 0x80000, CRC(5a86a642) SHA1(fd927bc393242ff0aca87a0e3c2127f6f1df09cd) )
|
||||
ROM_LOAD16_BYTE( "vcfi47.bin", 0x00000, 0x80000, CRC(e7adc4d8) SHA1(862041c2c5d260727e525ab85fde18994484db16) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cfever50 )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "vcfi58.bin", 0x00001, 0x80000, CRC(c3464934) SHA1(1672c34d9ca250769973f7bc739137f153552eb9) )
|
||||
ROM_LOAD16_BYTE( "vcfi57.bin", 0x00000, 0x80000, CRC(2b789acb) SHA1(782ad3a6e0eacbf9adec4afd20a309215913e505) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( tour4010 )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "ncfi18.bin", 0x00001, 0x80000, CRC(294929d9) SHA1(712926cf1f78197fce838a4e76d70082182214eb) )
|
||||
ROM_LOAD16_BYTE( "ncfi17.bin", 0x00000, 0x80000, CRC(4a8ac279) SHA1(41b0de4444466700ef2de2e926c8fa6f0bda280d) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cfever51 )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "ncfi58.bin", 0x00001, 0x80000, CRC(cdf9c2f0) SHA1(94f9cf6b1856becd74971022ded6db5ae927fb54) )
|
||||
ROM_LOAD16_BYTE( "ncfi57.bin", 0x00000, 0x80000, CRC(5005cf2b) SHA1(468ccd27fcb8bdb7d6ccf423542e1d4773930b88) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cfever61 )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "ncfi68.bin", 0x00001, 0x80000, CRC(51fe839f) SHA1(e4d9bce4a995cb407faaf36b2c1e10409a2e94da) )
|
||||
ROM_LOAD16_BYTE( "ncfi67.bin", 0x00000, 0x80000, CRC(d889d6b6) SHA1(791d9b9fc2d0a128ab07a9ae18a32f2838a5ea3f) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
@ -1418,13 +1442,10 @@ ROM_END
|
||||
*/
|
||||
|
||||
ROM_START( nyjoker )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "ni8-2-1.ic8", 0x00001, 0x80000, CRC(81416871) SHA1(c5519b1fcf0131710a8972d9016b8af5f8ac75a1) )
|
||||
ROM_LOAD16_BYTE( "ni7-2-1.ic7", 0x00000, 0x80000, CRC(835b8606) SHA1(a036f8568f0e41eb1f4db7fa41a9cd4b92d41514) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /* copy for program code */
|
||||
ROM_COPY( "user1", 0x0C0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ny2.ic25", 0x00000, 0x80000, CRC(eeea7f4d) SHA1(2afc498792f848fd45be4d3eb3e6607edb5dd9df) )
|
||||
|
||||
@ -1433,41 +1454,32 @@ ROM_START( nyjoker )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cfever1k )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "tcfi28.bin", 0x00001, 0x100000, CRC(e38d115a) SHA1(7fec94ddcdb07e483ed2f0d7d667c35ceb7a1f44) )
|
||||
ROM_LOAD16_BYTE( "tcfi27.bin", 0x00000, 0x100000, CRC(32f884e6) SHA1(cc74a4c6313654bbd363a89fe7757a05c74de45b) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1C0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "ic25.bin", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( girotutt )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "tcfi18.bin", 0x00001, 0x100000, CRC(822ab6a1) SHA1(04f4254da46cf67ea17587fde4a0fdd39c658b3b) )
|
||||
ROM_LOAD16_BYTE( "tcfi17.bin", 0x00000, 0x100000, CRC(b326a0ee) SHA1(c96b7578c112a97ba1d8de4d3d0ae68fef846cad) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1C0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "t41.bin", 0x00000, 0x80000, CRC(6f694406) SHA1(ec8b8baba0ee1bfe8986ce978412ee4de06f1906) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( galeone )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x100000, "maincpu", 0 ) /* V30 Code */
|
||||
ROM_LOAD16_BYTE( "model.a8-vers.1.0.ic8", 0x00001, 0x40000, CRC(b9e1e7ce) SHA1(4e036285b26dc0a313e76259b7e67c8d55322c84) )
|
||||
ROM_RELOAD(0x80001,0x40000)
|
||||
ROM_LOAD16_BYTE( "model.a7-vers.1.0.ic7", 0x00000, 0x40000, CRC(1940b738) SHA1(81e40de8df4dc838342bf966658110989a233731) )
|
||||
ROM_RELOAD(0x80000,0x40000)
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /* copy for program code */
|
||||
ROM_COPY( "user1", 0x040000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "model.ga-vers.1.ic25", 0x00000, 0x80000, CRC(4c2c2cc1) SHA1(20da29b2f1dd1f86ec23d9dbdaa9470878e900e2) )
|
||||
ROM_END
|
||||
@ -1501,13 +1513,10 @@ PCB n. E178247
|
||||
*/
|
||||
|
||||
ROM_START( newmcard )
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF ) /* V30 Code; Fix for extra bank bit */
|
||||
ROM_LOAD16_BYTE( "mc32.ic4", 0x00000, 0x80000, CRC(d9817f48) SHA1(c523a8248b487081ea2e0e326dcc660b051c23c1) )
|
||||
ROM_LOAD16_BYTE( "mc33.ic5", 0x00001, 0x80000, CRC(83a855ab) SHA1(7f9384c875b951d17caa91f8a7365edaf7f9afe1) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "mc31.ic15", 0x00000, 0x40000, CRC(8b72ffec) SHA1(fca5cf2594325e0c9fe446ddf2330c669f7f37a9) )
|
||||
ROM_END
|
||||
@ -1531,37 +1540,14 @@ ROM_END
|
||||
*/
|
||||
|
||||
ROM_START( ciclone )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* N80C186XL25 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* N80C186XL25 Code */
|
||||
ROM_LOAD16_BYTE( "hclv1.u7", 0x000000, 0x100000, CRC(071c64f2) SHA1(5125c3caf77258260bfa4c24dd612cedf61fe7f2) )
|
||||
ROM_LOAD16_BYTE( "hclv1.u8", 0x000001, 0x100000, CRC(c2ed99b4) SHA1(a1a3bfa9a6ea53979c20d60ccd7eb1773c805fc8) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "hclv1.u16", 0x00000, 0x80000, CRC(45b2b53a) SHA1(983bcc5869d84938ba278f26339dd72c17ed1d00) )
|
||||
ROM_END
|
||||
|
||||
/*Ciclone*/
|
||||
READ16_MEMBER(highvdeo_state::ciclone_status_r)
|
||||
{
|
||||
static uint16_t resetpulse;
|
||||
switch(offset*2)
|
||||
{
|
||||
case 0:
|
||||
resetpulse^=0x10;
|
||||
return 0 | resetpulse;
|
||||
case 2: return 0x15; //and 0x3f
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(highvdeo_state,ciclone)
|
||||
{
|
||||
m_maincpu->space(AS_IO).install_read_handler(0x0030, 0x0033, read16_delegate(FUNC(highvdeo_state::ciclone_status_r), this));
|
||||
}
|
||||
|
||||
/*
|
||||
CPUs
|
||||
N80C186XL25 (main)(u1)
|
||||
@ -1591,104 +1577,52 @@ http://media.digikey.com/pdf/Data%20Sheets/Intel%20PDFs/80C186XL,%2080C188XL.pdf
|
||||
|
||||
|
||||
ROM_START( brasil )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* N80C186XL25 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* N80C186XL25 Code */
|
||||
ROM_LOAD16_BYTE( "record_brasil_hrc7_vers.3.u7", 0x000000, 0x100000, CRC(627e0d58) SHA1(6ff8ba7b21e1ea5c88de3f02a057906c9a7cd808) )
|
||||
ROM_LOAD16_BYTE( "record_brasil_hrc8_vers.3.u8", 0x000001, 0x100000, CRC(47f7ba2a) SHA1(0add7bbf771fd0bf205a05e910cb388cf052b09f) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "sound_brasil_hbr_vers.1.u16", 0x00000, 0x80000, CRC(d71a5566) SHA1(2f7aefc06e39ce211e31b15aadf6338b679e7a31) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( fashion )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* N80C186XL25 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* N80C186XL25 Code */
|
||||
ROM_LOAD16_BYTE( "fashion1-hfs7v2.14.high-video8m.u7", 0x000000, 0x100000, CRC(20411b89) SHA1(3ed6336978e5046eeef26115614cb74e3ffe134a) )
|
||||
ROM_LOAD16_BYTE( "fashion1-hfs8v2.14.high-video8m.u8", 0x000001, 0x100000, CRC(521f34f3) SHA1(91edc90fcd895a096955ac031a42da04510df1e6) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "sound-fashion-v-1-memory4m.u16", 0x00000, 0x80000, CRC(2927c799) SHA1(f11cad096a23fee10bfdff5bf944c96e30f4a8b8) )
|
||||
ROM_END
|
||||
|
||||
WRITE16_MEMBER(highvdeo_state::fashion_output_w)
|
||||
{
|
||||
int i;
|
||||
|
||||
// popmessage("%04x",data);
|
||||
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(i,data & 0x20);
|
||||
machine().bookkeeping().coin_lockout_w(i,~data & 0x01);
|
||||
}
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(highvdeo_state,fashion)
|
||||
{
|
||||
m_maincpu->space(AS_IO).install_write_handler(0x0002, 0x0003, write16_delegate(FUNC(highvdeo_state::fashion_output_w), this));
|
||||
}
|
||||
|
||||
|
||||
ROM_START( grancapi )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* N80C186XL25 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* N80C186XL25 Code */
|
||||
ROM_LOAD16_BYTE( "gran-capitan-hgcp-i38-vers3-high-video.ic7", 0x000000, 0x100000, CRC(8bb75c50) SHA1(3a54daaf57ff4ffd1ebea6bfa33d40dbfcfe8d8f) )
|
||||
ROM_LOAD16_BYTE( "gran-capitan-hgcp-i38-vers3-high-video.ic8", 0x000001, 0x100000, CRC(28ad57f1) SHA1(093b117ab315fca1c0905363e8f637dbf96c48ec) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "sound-gran-capitan-hgcp-vers1-memory-2m.ic16", 0x00000, 0x40000, CRC(3d19146e) SHA1(a0e45df231fa7513e294633cbdbe46bf9bd77c1b) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( magicbom )
|
||||
ROM_REGION( 0x200000, "user1", 0 ) /* N80C186XL25 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", 0 ) /* N80C186XL25 Code */
|
||||
ROM_LOAD16_BYTE( "magic-bomb-hmb-i17-vers1-high-video.ic7", 0x000000, 0x100000, CRC(d217ae33) SHA1(ca3a13d9d23809583733e7b1bdba096a50fe7488) )
|
||||
ROM_LOAD16_BYTE( "magic-bomb-hmb-i17-vers1-high-video.ic8", 0x000001, 0x100000, CRC(53a9c3d5) SHA1(72a2a07c0bd7b00566795042bcff1f6f324b964f) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x1c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "sound-magic-bomb-hmb-vers1-memory-4m.ic16", 0x00000, 0x80000, CRC(45b2b53a) SHA1(983bcc5869d84938ba278f26339dd72c17ed1d00) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( record ) // do checks and expect something... pc=e8044
|
||||
ROM_REGION( 0x100000, "user1", 0 ) /* V30 Code */
|
||||
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF ) /* V30 Code; Fix for extra bank bit */
|
||||
ROM_LOAD16_BYTE( "record-vrc-i17-vers1-video-map.ic7", 0x00000, 0x80000, CRC(d0e59a64) SHA1(5f51448a4cdefd335e19affa4b47df7b428b0e7c) )
|
||||
ROM_LOAD16_BYTE( "record-vrc-i17-vers1-video-map.ic8", 0x00001, 0x80000, CRC(823d1c25) SHA1(3104567b2b05708d1b5218f9f0e64bfa3d0df46b) )
|
||||
|
||||
ROM_REGION( 0x040000, "boot_prg", 0 ) /*copy for program code*/
|
||||
ROM_COPY( "user1", 0x0c0000, 0x000000, 0x40000 )
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* M6376 Samples */
|
||||
ROM_LOAD( "sound-record-hrc-vers1-memory-2m.ic16", 0x00000, 0x40000, CRC(8b72ffec) SHA1(fca5cf2594325e0c9fe446ddf2330c669f7f37a9) )
|
||||
ROM_END
|
||||
|
||||
READ16_MEMBER(highvdeo_state::record_status_r)
|
||||
{
|
||||
static uint16_t resetpulse;
|
||||
switch(offset*2)
|
||||
{
|
||||
case 0:
|
||||
resetpulse^=0x15; // and 0x07, cmp with 0x05
|
||||
return 0 | resetpulse;
|
||||
case 2: return 0x15; // unknown
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(highvdeo_state, record)
|
||||
{
|
||||
m_maincpu->space(AS_IO).install_read_handler(0x0030, 0x0033, read16_delegate(FUNC(highvdeo_state::record_status_r), this));
|
||||
}
|
||||
|
||||
|
||||
GAMEL( 2000, tour4000, 0, tv_vcf, tv_vcf, highvdeo_state, 0, ROT0, "High Video", "Tour 4000", 0, layout_fashion )
|
||||
GAMEL( 2000, cfever40, 0, tv_vcf, tv_vcf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 4.0", 0, layout_fashion )
|
||||
@ -1700,10 +1634,10 @@ GAMEL( 2000, nyjoker, 0, nyjoker, nyjoker, highvdeo_state, 0, ROT
|
||||
GAMEL( 2000, cfever1k, 0, tv_tcf, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "Casino Fever 1k", 0, layout_fashion )
|
||||
GAMEL( 2000, girotutt, 0, tv_tcf, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "GiroTutto", 0, layout_fashion )
|
||||
GAMEL( 2000, galeone, 0, nyjoker, nyjoker, highvdeo_state, 0, ROT0, "San Remo Games", "Il Galeone", 0, layout_fashion )
|
||||
GAMEL( 2000, ciclone, 0, ciclone, tv_tcf, highvdeo_state, ciclone, ROT0, "High Video", "Ciclone", 0, layout_fashion )
|
||||
GAMEL( 2000, ciclone, 0, ciclone, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "Ciclone", 0, layout_fashion )
|
||||
GAMEL( 2000, newmcard, 0, newmcard, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "New Magic Card", 0, layout_fashion )
|
||||
GAMEL( 2000, brasil, 0, brasil, brasil, highvdeo_state, 0, ROT0, "High Video", "Bra$il (Version 3)", 0, layout_fashion )
|
||||
GAMEL( 2000, fashion, brasil, brasil, fashion, highvdeo_state, fashion, ROT0, "High Video", "Fashion (Version 2.14)", 0, layout_fashion )
|
||||
GAMEL( 2000, fashion, brasil, fashion, fashion, highvdeo_state, 0, ROT0, "High Video", "Fashion (Version 2.14)", 0, layout_fashion )
|
||||
GAMEL( 2000, grancapi, 0, grancapi, brasil, highvdeo_state, 0, ROT0, "High Video", "Gran Capitan (Version 3)", MACHINE_NOT_WORKING, layout_fashion )
|
||||
GAMEL( 2000, magicbom, 0, magicbom, fashion, highvdeo_state, fashion, ROT0, "High Video", "Magic Bomb (Version 1)", MACHINE_NOT_WORKING, layout_fashion )
|
||||
GAMEL( 2000, record, 0, newmcard, tv_tcf, highvdeo_state, record, ROT0, "High Video", "Record (Version 1)", 0, layout_fashion )
|
||||
GAMEL( 2000, magicbom, 0, magicbom, fashion, highvdeo_state, 0, ROT0, "High Video", "Magic Bomb (Version 1)", MACHINE_NOT_WORKING, layout_fashion )
|
||||
GAMEL( 2000, record, 0, record, tv_tcf, highvdeo_state, 0, ROT0, "High Video", "Record (Version 1)", 0, layout_fashion )
|
||||
|
Loading…
Reference in New Issue
Block a user