mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
hh_pic16: rename sfxchas to flash (nw)
This commit is contained in:
parent
fdc9787c23
commit
f908f7f858
@ -1430,7 +1430,7 @@ void m6801_cpu_device::ocrh_w(uint8_t data)
|
||||
{
|
||||
LOGTIMER("Output Compare High Register: %02x\n", data);
|
||||
|
||||
if(!(m_pending_tcsr&TCSR_OCF) && !machine().side_effects_disabled())
|
||||
if(!(m_pending_tcsr&TCSR_OCF))
|
||||
{
|
||||
m_tcsr &= ~TCSR_OCF;
|
||||
modified_tcsr();
|
||||
@ -1447,7 +1447,7 @@ void m6801_cpu_device::ocrl_w(uint8_t data)
|
||||
{
|
||||
LOGTIMER("Output Compare Low Register: %02x\n", data);
|
||||
|
||||
if(!(m_pending_tcsr&TCSR_OCF) && !machine().side_effects_disabled())
|
||||
if(!(m_pending_tcsr&TCSR_OCF))
|
||||
{
|
||||
m_tcsr &= ~TCSR_OCF;
|
||||
modified_tcsr();
|
||||
@ -1511,7 +1511,7 @@ void hd6301x_cpu_device::ocr2h_w(uint8_t data)
|
||||
{
|
||||
LOGTIMER("Output Compare High Register 2: %02x\n", data);
|
||||
|
||||
if(!(m_pending_tcsr2&TCSR2_OCF2) && !machine().side_effects_disabled())
|
||||
if(!(m_pending_tcsr2&TCSR2_OCF2))
|
||||
{
|
||||
m_tcsr2 &= ~TCSR2_OCF2;
|
||||
modified_tcsr();
|
||||
@ -1528,7 +1528,7 @@ void hd6301x_cpu_device::ocr2l_w(uint8_t data)
|
||||
{
|
||||
LOGTIMER("Output Compare Low Register 2: %02x\n", data);
|
||||
|
||||
if(!(m_pending_tcsr2&TCSR2_OCF2) && !machine().side_effects_disabled())
|
||||
if(!(m_pending_tcsr2&TCSR2_OCF2))
|
||||
{
|
||||
m_tcsr2 &= ~TCSR2_OCF2;
|
||||
modified_tcsr();
|
||||
|
@ -27,7 +27,7 @@ cc_table_dn = [ "t", "f", "hi", "ls", "cc", "cs", "ne", "eq", "vc", "vs", "pl",
|
||||
# Probably incorrect starting with the 030 and further
|
||||
#
|
||||
# The C code was going out-of-bounds, or more precisely
|
||||
# out-of-initialization, on the Coldfire, explaning the
|
||||
# out-of-initialization, on the Coldfire, explaining the
|
||||
# zeroes.
|
||||
#
|
||||
# 000 010 020 030 040 FSCPU32 Coldfire
|
||||
|
@ -20,7 +20,7 @@
|
||||
@053 1655A 1979, Atari Touch Me
|
||||
@0?? 1655A 1979, Tiger Half Court Computer Basketball/Sears Electronic Basketball (custom label)
|
||||
@061 1655A 1980, Lakeside Le Boom
|
||||
@078 1655A 1980, Radio Shack Sound Effects Chassis
|
||||
@078 1655A 1980, Ideal Flash
|
||||
*081 1655A 1981, Ramtex Space Invaders/Block Buster
|
||||
@094 1655A 1980, GAF Melody Madness
|
||||
@110 1650A 1979, Tiger/Tandy Rocket Pinball
|
||||
@ -44,7 +44,6 @@
|
||||
- ttfball: discrete sound part, for volume gating?
|
||||
- what's the relation between hccbaskb and tbaskb? Is one the bootleg of the
|
||||
other? Or are they both made by the same subcontractor? I presume Toytronic.
|
||||
- is sfxchas an import of an existing toy meant for US-market? if so, which?
|
||||
- uspbball and pabball internal artwork
|
||||
|
||||
***************************************************************************/
|
||||
@ -57,13 +56,13 @@
|
||||
#include "sound/spkrdev.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include "flash.lh" // clickable
|
||||
#include "hccbaskb.lh"
|
||||
#include "leboom.lh" // clickable
|
||||
#include "maniac.lh" // clickable
|
||||
#include "melodym.lh" // clickable
|
||||
#include "matchme.lh" // clickable
|
||||
#include "rockpin.lh"
|
||||
#include "sfxchas.lh" // clickable
|
||||
#include "tbaskb.lh"
|
||||
#include "touchme.lh" // clickable
|
||||
#include "ttfball.lh"
|
||||
@ -643,6 +642,159 @@ ROM_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Ideal Flash
|
||||
* PCB label 25-600321, REV C, TCI-A3H / 94HB
|
||||
* PIC 1655A-078
|
||||
* 2 7seg LEDs + 8 other LEDs, 1-bit sound with volume decay
|
||||
|
||||
Flash is a wall-mounted game, players throw beanbags to activate the buttons.
|
||||
It's described in patent US4333657 as an electronic dart game.
|
||||
|
||||
In games 4 and 5 it's easy to lock up the program by pressing the buttons
|
||||
repeatedly and causing a score overflow. Although that wouldn't be possible
|
||||
by properly throwing beanbags at it.
|
||||
|
||||
This could also be purchased as a bare PCB from Radio Shack under the Archer
|
||||
brand, catalog number 277-1013. It was named "Sound Effects Chassis" but
|
||||
clearly it's nothing like that. The instruction leaflet that came with the
|
||||
PCB says to attach a speaker and a 9V power source. It actually takes 5V,
|
||||
9V would break it. The only thing it has to say about the game itself is
|
||||
"Your module will produce blinking lights and several different sounds."
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class flash_state : public hh_pic16_state
|
||||
{
|
||||
public:
|
||||
flash_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
hh_pic16_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void update_display();
|
||||
DECLARE_WRITE8_MEMBER(write_b);
|
||||
DECLARE_READ8_MEMBER(read_c);
|
||||
DECLARE_WRITE8_MEMBER(write_c);
|
||||
|
||||
void speaker_decay_reset();
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim);
|
||||
double m_speaker_volume;
|
||||
void flash(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
|
||||
void flash_state::machine_start()
|
||||
{
|
||||
hh_pic16_state::machine_start();
|
||||
|
||||
// zerofill/init
|
||||
m_speaker_volume = 0;
|
||||
save_item(NAME(m_speaker_volume));
|
||||
}
|
||||
|
||||
// handlers
|
||||
|
||||
void flash_state::speaker_decay_reset()
|
||||
{
|
||||
if (~m_b & 0x40)
|
||||
m_speaker_volume = 20.0;
|
||||
|
||||
// it takes a bit before it actually starts fading
|
||||
double vol = (m_speaker_volume > 1.0) ? 1.0 : m_speaker_volume;
|
||||
m_speaker->set_output_gain(0, vol);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(flash_state::speaker_decay_sim)
|
||||
{
|
||||
// volume decays when speaker is off (divisor and timer period determine duration)
|
||||
speaker_decay_reset();
|
||||
m_speaker_volume /= 1.15;
|
||||
}
|
||||
|
||||
void flash_state::update_display()
|
||||
{
|
||||
m_display->matrix(~m_b >> 4 & 3, (~m_c >> 1 & 0x7f) | (~m_b << 7 & 0x780));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(flash_state::write_b)
|
||||
{
|
||||
// B0-B3: led data
|
||||
// B4,B5: led select
|
||||
m_b = data;
|
||||
update_display();
|
||||
|
||||
// B6: speaker on
|
||||
// B7: speaker out
|
||||
speaker_decay_reset();
|
||||
m_speaker->level_w(data >> 7 & 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(flash_state::read_c)
|
||||
{
|
||||
// C1-C7: buttons
|
||||
return (m_c & 1) ? 0xff : m_inputs[1]->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(flash_state::write_c)
|
||||
{
|
||||
// C0: enable buttons
|
||||
// C1-C7: digit segments
|
||||
m_c = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( flash )
|
||||
PORT_START("IN.0") // port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // top button, increment clockwise
|
||||
PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // port C
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void flash_state::flash(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
PIC1655(config, m_maincpu, 1050000); // approximation
|
||||
m_maincpu->read_a().set_ioport("IN.0");
|
||||
m_maincpu->write_b().set(FUNC(flash_state::write_b));
|
||||
m_maincpu->read_c().set(FUNC(flash_state::read_c));
|
||||
m_maincpu->write_c().set(FUNC(flash_state::write_c));
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_display).set_size(2, 7+4);
|
||||
m_display->set_segmask(3, 0x7f);
|
||||
config.set_default_layout(layout_flash);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
TIMER(config, "speaker_decay").configure_periodic(FUNC(flash_state::speaker_decay_sim), attotime::from_msec(25));
|
||||
}
|
||||
|
||||
// roms
|
||||
|
||||
ROM_START( flash )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "pic_1655a-078", 0x0000, 0x0400, CRC(bf780733) SHA1(57ac4620d87492280ab8cf69c148f98e38ecedc4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Kingsford Match Me
|
||||
@ -1078,160 +1230,6 @@ ROM_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tandy(Radio Shack division) Sound Effects Chassis
|
||||
* PCB label 25-600321, REV C, TCI-A3H / 94HB
|
||||
* PIC 1655A-078
|
||||
* 2 7seg LEDs + 8 other LEDs, 1-bit sound with volume decay
|
||||
|
||||
This could be purchased as a bare PCB from Radio Shack under the Archer
|
||||
brand, catalog number 277-1013. It was named "Sound Effects Chassis" but
|
||||
clearly it's nothing like that. More likely, it's a canceled tabletop game,
|
||||
either custom made for Tandy, or an (as of yet) unknown import.
|
||||
|
||||
The bottom-left button selects game type and the bottom-right button selects
|
||||
number of players. Press the bottom button(IPT_BUTTON5) to start. In games
|
||||
4 and 5 it's easy to lock up the program by pressing the buttons repeatedly
|
||||
and causing a score overflow.
|
||||
|
||||
The instruction leaflet says to attach a speaker and a 9V power source.
|
||||
It actually takes 5V, 9V would break it. The only thing it has to say about
|
||||
the game itself is "Your module will produce blinking lights and several
|
||||
different sounds."
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class sfxchas_state : public hh_pic16_state
|
||||
{
|
||||
public:
|
||||
sfxchas_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
hh_pic16_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void update_display();
|
||||
DECLARE_WRITE8_MEMBER(write_b);
|
||||
DECLARE_READ8_MEMBER(read_c);
|
||||
DECLARE_WRITE8_MEMBER(write_c);
|
||||
|
||||
void speaker_decay_reset();
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim);
|
||||
double m_speaker_volume;
|
||||
void sfxchas(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
|
||||
void sfxchas_state::machine_start()
|
||||
{
|
||||
hh_pic16_state::machine_start();
|
||||
|
||||
// zerofill/init
|
||||
m_speaker_volume = 0;
|
||||
save_item(NAME(m_speaker_volume));
|
||||
}
|
||||
|
||||
// handlers
|
||||
|
||||
void sfxchas_state::speaker_decay_reset()
|
||||
{
|
||||
if (~m_b & 0x40)
|
||||
m_speaker_volume = 20.0;
|
||||
|
||||
// it takes a bit before it actually starts fading
|
||||
double vol = (m_speaker_volume > 1.0) ? 1.0 : m_speaker_volume;
|
||||
m_speaker->set_output_gain(0, vol);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(sfxchas_state::speaker_decay_sim)
|
||||
{
|
||||
// volume decays when speaker is off (divisor and timer period determine duration)
|
||||
speaker_decay_reset();
|
||||
m_speaker_volume /= 1.15;
|
||||
}
|
||||
|
||||
void sfxchas_state::update_display()
|
||||
{
|
||||
m_display->matrix(~m_b >> 4 & 3, (~m_c >> 1 & 0x7f) | (~m_b << 7 & 0x780));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sfxchas_state::write_b)
|
||||
{
|
||||
// B0-B3: led data
|
||||
// B4,B5: led select
|
||||
m_b = data;
|
||||
update_display();
|
||||
|
||||
// B6: speaker on
|
||||
// B7: speaker out
|
||||
speaker_decay_reset();
|
||||
m_speaker->level_w(data >> 7 & 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(sfxchas_state::read_c)
|
||||
{
|
||||
// C1-C7: buttons
|
||||
return (m_c & 1) ? 0xff : m_inputs[1]->read();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sfxchas_state::write_c)
|
||||
{
|
||||
// C0: enable buttons
|
||||
// C1-C7: digit segments
|
||||
m_c = data;
|
||||
update_display();
|
||||
}
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( sfxchas )
|
||||
PORT_START("IN.0") // port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // top button, increment clockwise
|
||||
PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // port C
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void sfxchas_state::sfxchas(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
PIC1655(config, m_maincpu, 1050000); // approximation
|
||||
m_maincpu->read_a().set_ioport("IN.0");
|
||||
m_maincpu->write_b().set(FUNC(sfxchas_state::write_b));
|
||||
m_maincpu->read_c().set(FUNC(sfxchas_state::read_c));
|
||||
m_maincpu->write_c().set(FUNC(sfxchas_state::write_c));
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_display).set_size(2, 7+4);
|
||||
m_display->set_segmask(3, 0x7f);
|
||||
config.set_default_layout(layout_sfxchas);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
TIMER(config, "speaker_decay").configure_periodic(FUNC(sfxchas_state::speaker_decay_sim), attotime::from_msec(25));
|
||||
}
|
||||
|
||||
// roms
|
||||
|
||||
ROM_START( sfxchas )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "pic_1655a-078", 0x0000, 0x0400, CRC(bf780733) SHA1(57ac4620d87492280ab8cf69c148f98e38ecedc4) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Tiger Electronics Rocket Pinball (model 7-460)
|
||||
@ -1912,13 +1910,13 @@ CONS( 1979, pabball, 0, 0, pabball, pabball, pabball_state, empty_
|
||||
CONS( 1980, melodym, 0, 0, melodym, melodym, melodym_state, empty_init, "GAF", "Melody Madness", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1979, maniac, 0, 0, maniac, maniac, maniac_state, empty_init, "Ideal", "Maniac", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1980, flash, 0, 0, flash, flash, flash_state, empty_init, "Ideal", "Flash (Ideal)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1980, matchme, 0, 0, matchme, matchme, matchme_state, empty_init, "Kingsford", "Match Me", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1980, leboom, 0, 0, leboom, leboom, leboom_state, empty_init, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, tbaskb_state, empty_init, "Tandy Corporation", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1980, sfxchas, 0, 0, sfxchas, sfxchas, sfxchas_state, empty_init, "Tandy Corporation", "Sound Effects Chassis", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1979, rockpin, 0, 0, rockpin, rockpin, rockpin_state, empty_init, "Tiger Electronics", "Rocket Pinball", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1979, hccbaskb, 0, 0, hccbaskb, hccbaskb, hccbaskb_state, empty_init, "Tiger Electronics", "Half Court Computer Basketball", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -353,7 +353,7 @@ void diablo_state::scorpio68k(machine_config &config)
|
||||
ROM Definitions
|
||||
******************************************************************************/
|
||||
|
||||
ROM_START( diablo68 ) // UCB ID = D 1.08
|
||||
ROM_START( diablo68 ) // ID = D 1.08
|
||||
ROM_REGION16_BE( 0x20000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_BYTE("evenurom.bin", 0x00000, 0x8000, CRC(03477746) SHA1(8bffcb159a61e59bfc45411e319aea6501ebe2f9) )
|
||||
ROM_LOAD16_BYTE("oddlrom.bin", 0x00001, 0x8000, CRC(e182dbdd) SHA1(24dacbef2173fa737636e4729ff22ec1e6623ca5) )
|
||||
@ -361,7 +361,7 @@ ROM_START( diablo68 ) // UCB ID = D 1.08
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( scorpio68 ) // UCB ID = S 1.08
|
||||
ROM_START( scorpio68 ) // ID = S 1.08
|
||||
ROM_REGION16_BE( 0x20000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_BYTE("s_evn_904.u3", 0x00000, 0x8000, CRC(a8f63245) SHA1(0ffdc6eb8ecad730440b0bfb2620fb00820e1aea) )
|
||||
ROM_LOAD16_BYTE("s_odd_c18.u2", 0x00001, 0x8000, CRC(4f033319) SHA1(fce228b1705b7156d4d01ef92b22a875d0f6f321) )
|
||||
|
@ -498,14 +498,14 @@ ROM_START( sexpertb ) // from model 887
|
||||
ROM_LOAD("se_f_hi0_605.u2", 0x10000, 0x8000, CRC(bb07ad52) SHA1(30cf9005021ab2d7b03facdf2d3588bc94dc68a6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( sexpertc ) // UCB ID = E3.6
|
||||
ROM_START( sexpertc ) // ID = E3.6
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD("se_lo_v3.6.u3", 0x0000, 0x8000, CRC(5a29105e) SHA1(be37bb29b530dbba847a5e8d27d81b36525e47f7) )
|
||||
ROM_LOAD("se_hi1.u1", 0x8000, 0x8000, CRC(0085c2c4) SHA1(d84bf4afb022575db09dd9dc12e9b330acce35fa) )
|
||||
ROM_LOAD("se_hi0.u2", 0x10000, 0x8000, CRC(2d085064) SHA1(76162322aa7d23a5c07e8356d0bbbb33816419af) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( sexpertc1 ) // from model 902, UCB ID = E3.0
|
||||
ROM_START( sexpertc1 ) // from model 902, ID = E3.0
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD("se_c24_l.u3", 0x0000, 0x8000, CRC(43ed7a9e) SHA1(273c485e5be6b107b6c5c448003ba7686d4a6d06) )
|
||||
ROM_LOAD("se_c23_h1.u1", 0x8000, 0x8000, CRC(0085c2c4) SHA1(d84bf4afb022575db09dd9dc12e9b330acce35fa) )
|
||||
@ -541,7 +541,7 @@ ROM_START( sforteb )
|
||||
ROM_LOAD("forte_b_hi0.u2", 0x10000, 0x8000, CRC(bb07ad52) SHA1(30cf9005021ab2d7b03facdf2d3588bc94dc68a6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( sfortec ) // UCB ID = F1.2
|
||||
ROM_START( sfortec ) // ID = F1.2
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD("sfl_c_iii.u3", 0x0000, 0x8000, CRC(f040cf30) SHA1(1fc1220b8ed67cdffa3866d230ce001721cf684f) ) // Toshiba TC57256AD-12
|
||||
ROM_LOAD("sfh_c_iii.u1", 0x8000, 0x8000, CRC(0f926b32) SHA1(9c7270ecb3f41dd9172a9a7928e6e04e64b2a340) ) // NEC D27C256AD-12
|
||||
|
@ -17,7 +17,8 @@ instead of black, otherwise it's the same game.
|
||||
|
||||
TODO:
|
||||
- does not work, most likely due to incomplete cpu emulation (unemulated timer registers),
|
||||
could also be a bad rom dump on top of that
|
||||
could also be a bad rom dump on top of that - even when adding IRQ3 with a hack, it
|
||||
doesn't do much at all
|
||||
- is 1988 version the same ROM?
|
||||
|
||||
******************************************************************************/
|
||||
@ -106,6 +107,10 @@ void supremo_state::supremo(machine_config &config)
|
||||
HD6303Y(config, m_maincpu, 8_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &supremo_state::main_map);
|
||||
|
||||
// THIS IS A HACK, vector @ 0xffec, use ROM_COPY
|
||||
//const attotime irq_period = attotime::from_ticks(4 * 128 * 10, 8_MHz_XTAL);
|
||||
//m_maincpu->set_periodic_int(FUNC(supremo_state::irq0_line_hold), irq_period);
|
||||
|
||||
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
|
||||
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
|
||||
m_board->set_delay(attotime::from_msec(150));
|
||||
@ -124,7 +129,7 @@ void supremo_state::supremo(machine_config &config)
|
||||
|
||||
ROM_START( supremo )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("sp_a10.u5", 0x8000, 0x8000, CRC(745d010f) SHA1(365a8e2afcf63678ba0161b9082f6439a9d78c9f) )
|
||||
ROM_LOAD("sp_a10.u5", 0x8000, 0x8000, BAD_DUMP CRC(745d010f) SHA1(365a8e2afcf63678ba0161b9082f6439a9d78c9f) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
@ -710,14 +710,14 @@ ROM_START(tstrk_l1)
|
||||
ROM_END
|
||||
|
||||
|
||||
GAME( 1979, flash_l2, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Flash (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, flash_l1, flash_l2, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Flash (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, flash_t1, flash_l2, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Flash (T-1) Ted Estes", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, flash_l2, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Flash (Williams, L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, flash_l1, flash_l2, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Flash (Williams, L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, flash_t1, flash_l2, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Flash (Williams, T-1) Ted Estes", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1978, trizn_l1, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Tri Zone (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1978, trizn_t1, trizn_l1, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Tri Zone (T-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, tmwrp_l3, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Time Warp (L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, tmwrp_l2, tmwrp_l3, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Time Warp (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, tmwrp_t2, tmwrp_l3, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Time Warp (T-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, tmwrp_l3, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Time Warp (Williams, L-3)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, tmwrp_l2, tmwrp_l3, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Time Warp (Williams, L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, tmwrp_t2, tmwrp_l3, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Time Warp (Williams, T-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
GAME( 1979, stlwr_l2, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Stellar Wars (L-2)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
|
||||
|
||||
GAME( 1978, pomp_l1, 0, s4a, s4, s4_state, empty_init, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
|
||||
|
@ -76,18 +76,13 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(digit_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
|
||||
u16 m_inp_mux;
|
||||
u8 m_select;
|
||||
u8 m_7seg_data;
|
||||
u16 m_inp_mux = 0;
|
||||
u8 m_select = 0;
|
||||
u8 m_7seg_data = 0;
|
||||
};
|
||||
|
||||
void cp2000_state::machine_start()
|
||||
{
|
||||
// zerofill
|
||||
m_inp_mux = 0;
|
||||
m_select = 0;
|
||||
m_7seg_data = 0;
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_select));
|
||||
save_item(NAME(m_inp_mux));
|
||||
|
@ -4,7 +4,9 @@
|
||||
/******************************************************************************
|
||||
|
||||
SciSys Mini Chess, pocket calculator style chesscomputer
|
||||
It's the first chess program on HMCS40, the engine was written by Mark Taylor.
|
||||
|
||||
It's the first chess program on HMCS40. The engine was written by Mark Taylor
|
||||
with assistance from David Levy.
|
||||
|
||||
Hardware notes:
|
||||
- Hitachi 44801A34 MCU @ ~400kHz
|
||||
|
92
src/mame/layout/flash.lay
Normal file
92
src/mame/layout/flash.lay
Normal file
@ -0,0 +1,92 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0
|
||||
-->
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="disk_b"><disk><color red="0" green="0" blue="0" /></disk></element>
|
||||
<element name="disk_w"><disk><color red="0.85" green="0.85" blue="0.85" /></disk></element>
|
||||
|
||||
<element name="disk_1"><disk><color red="0.75" green="0" blue="0.1" /></disk></element>
|
||||
<element name="disk_2"><disk><color red="0.2" green="0.7" blue="0.8" /></disk></element>
|
||||
<element name="disk_3"><disk><color red="0.85" green="0.55" blue="0.25" /></disk></element>
|
||||
<element name="disk_4"><disk><color red="0.35" green="0.8" blue="0.1" /></disk></element>
|
||||
<element name="disk_5"><disk><color red="0.85" green="0.3" blue="0.1" /></disk></element>
|
||||
<element name="disk_6"><disk><color red="0.05" green="0" blue="0.7" /></disk></element>
|
||||
<element name="disk_7"><disk><color red="0.85" green="0.85" blue="0.2" /></disk></element>
|
||||
<element name="disk_8"><disk><color red="0" green="0.55" blue="0.2" /></disk></element>
|
||||
|
||||
<element name="text_1"><text string="GAME"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_2"><text string="START"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_3"><text string="PLAYERS"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
|
||||
</element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
</element>
|
||||
<element name="but" defstate="0">
|
||||
<text string=" " />
|
||||
<disk state="1"><color red="0" green="0" blue="0" /></disk>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="22" right="90" top="20.5" bottom="88.5" />
|
||||
|
||||
<!-- actually, buttons are pie-slice shaped -->
|
||||
<bezel element="disk_1"><bounds x="48" y="24.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_2"><bounds x="64" y="30.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_3"><bounds x="70" y="46.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_4"><bounds x="64" y="62.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_5"><bounds x="48" y="68.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_6"><bounds x="32" y="62.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_7"><bounds x="26" y="46.5" width="16" height="16" /></bezel>
|
||||
<bezel element="disk_8"><bounds x="32" y="30.5" width="16" height="16" /></bezel>
|
||||
|
||||
<bezel element="disk_w"><bounds x="53.5" y="30" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="69.5" y="36" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="75.5" y="52" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="69.5" y="68" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="53.5" y="74" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="37.5" y="68" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="31.5" y="52" width="5" height="5" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="37.5" y="36" width="5" height="5" /></bezel>
|
||||
|
||||
<bezel name="0.7" element="led"><bounds x="55" y="31.5" width="2" height="2" /></bezel>
|
||||
<bezel name="0.8" element="led"><bounds x="71" y="37.5" width="2" height="2" /></bezel>
|
||||
<bezel name="0.9" element="led"><bounds x="77" y="53.5" width="2" height="2" /></bezel>
|
||||
<bezel name="0.10" element="led"><bounds x="71" y="69.5" width="2" height="2" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="55" y="75.5" width="2" height="2" /></bezel>
|
||||
<bezel name="1.8" element="led"><bounds x="39" y="69.5" width="2" height="2" /></bezel>
|
||||
<bezel name="1.9" element="led"><bounds x="33" y="53.5" width="2" height="2" /></bezel>
|
||||
<bezel name="1.10" element="led"><bounds x="39" y="37.5" width="2" height="2" /></bezel>
|
||||
|
||||
<bezel element="but" inputtag="IN.0" inputmask="0x01"><bounds x="48" y="24.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x02"><bounds x="64" y="30.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x04"><bounds x="70" y="46.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x08"><bounds x="64" y="62.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x10"><bounds x="48" y="68.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x20"><bounds x="32" y="62.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x40"><bounds x="26" y="46.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
<bezel element="but" inputtag="IN.1" inputmask="0x80"><bounds x="32" y="30.5" width="16" height="16" /><color alpha="0.17" /></bezel>
|
||||
|
||||
<bezel element="disk_b"><bounds x="40" y="38.5" width="32" height="32" /></bezel>
|
||||
<bezel element="disk_w"><bounds x="43" y="41.5" width="26" height="26" /></bezel>
|
||||
<bezel element="disk_b"><bounds x="44" y="42.5" width="24" height="24" /></bezel>
|
||||
<bezel name="digit1" element="digit"><bounds x="50" y="50" width="6" height="9" /></bezel>
|
||||
<bezel name="digit0" element="digit"><bounds x="56" y="50" width="6" height="9" /></bezel>
|
||||
|
||||
<bezel element="text_1"><bounds x="32" y="79" width="16" height="2" /></bezel>
|
||||
<bezel element="text_2"><bounds x="48" y="85" width="16" height="2" /></bezel>
|
||||
<bezel element="text_3"><bounds x="64" y="79" width="16" height="2" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -1,50 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0
|
||||
-->
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
|
||||
</element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
</element>
|
||||
<element name="but" defstate="0">
|
||||
<disk state="0"><color red="0.09" green="0.09" blue="0.1" /></disk>
|
||||
<disk state="1"><color red="0.18" green="0.18" blue="0.2" /></disk>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="28" right="84" top="26.5" bottom="82.5" />
|
||||
|
||||
<element name="digit1" ref="digit"><bounds x="50" y="50" width="6" height="9" /></element>
|
||||
<element name="digit0" ref="digit"><bounds x="56" y="50" width="6" height="9" /></element>
|
||||
|
||||
<element name="0.7" ref="led"><bounds x="55" y="31.5" width="2" height="2" /></element>
|
||||
<element name="0.8" ref="led"><bounds x="71" y="37.5" width="2" height="2" /></element>
|
||||
<element name="0.9" ref="led"><bounds x="77" y="53.5" width="2" height="2" /></element>
|
||||
<element name="0.10" ref="led"><bounds x="71" y="69.5" width="2" height="2" /></element>
|
||||
<element name="1.7" ref="led"><bounds x="55" y="75.5" width="2" height="2" /></element>
|
||||
<element name="1.8" ref="led"><bounds x="39" y="69.5" width="2" height="2" /></element>
|
||||
<element name="1.9" ref="led"><bounds x="33" y="53.5" width="2" height="2" /></element>
|
||||
<element name="1.10" ref="led"><bounds x="39" y="37.5" width="2" height="2" /></element>
|
||||
|
||||
<element ref="but" blend="add" inputtag="IN.0" inputmask="0x01"><bounds x="52" y="28.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x02"><bounds x="68" y="34.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x04"><bounds x="74" y="50.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x08"><bounds x="68" y="66.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x10"><bounds x="52" y="72.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x20"><bounds x="36" y="66.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x40"><bounds x="30" y="50.5" width="8" height="8" /></element>
|
||||
<element ref="but" blend="add" inputtag="IN.1" inputmask="0x80"><bounds x="36" y="34.5" width="8" height="8" /></element>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -15817,6 +15817,7 @@ cfrogger // Coleco
|
||||
gjungler // Gakken
|
||||
|
||||
@source:hh_pic16.cpp
|
||||
flash // Ideal
|
||||
hccbaskb // Tiger Electronics
|
||||
leboom // Lakeside
|
||||
maniac // Ideal
|
||||
@ -15824,7 +15825,6 @@ melodym // GAF
|
||||
matchme // Kingsford
|
||||
pabball // Caprice
|
||||
rockpin // Tiger Electronics
|
||||
sfxchas // Tandy Corporation
|
||||
tbaskb // Tandy Corporation
|
||||
touchme // Atari
|
||||
ttfball // Toytronic
|
||||
|
Loading…
Reference in New Issue
Block a user