Previous 199869 Revisions Next

r17886 Friday 14th September, 2012 at 13:54:52 UTC by Robbbert
heavymtl : wip, sound works
[src/mame]mame.mak
[src/mame/drivers]kissproto.c rowamet.c

trunk/src/mame/mame.mak
r17885r17886
21702170
21712171$(DRIVERS)/roul.o:   $(LAYOUT)/roul.lh
21722172
2173$(DRIVERS)/rowamet.o:   $(LAYOUT)/rowamet.lh
2174
21732175$(DRIVERS)/sbrkout.o:   $(LAYOUT)/sbrkout.lh
21742176
21752177$(DRIVERS)/sderby.o:   $(LAYOUT)/sderby.lh \
trunk/src/mame/drivers/kissproto.c
r17885r17886
6161ROM_END
6262
6363
64GAME( 1979,  kissp,  kiss,  kissp,  kissp, kissp_state,  kissp,  ROT0,  "Bally",    "Kiss (prototype)",      GAME_NO_SOUND | GAME_MECHANICAL)
64GAME( 1979,  kissp,  kiss,  kissp,  kissp, kissp_state,  kissp,  ROT0,  "Bally", "Kiss (prototype)", GAME_IS_SKELETON_MECHANICAL )
trunk/src/mame/drivers/rowamet.c
r17885r17886
11/************************************************************************************
22
3Pinball
4Rowamet : Heavy Metal
3    Pinball
4    Rowamet : Heavy Metal
55
6    PinMAME used as reference (couldn't find a manual)
7
8
69*************************************************************************************/
710
811#include "emu.h"
912#include "cpu/z80/z80.h"
13#include "sound/dac.h"
14#include "rowamet.lh"
1015
1116class rowamet_state : public driver_device
1217{
1318public:
1419   rowamet_state(const machine_config &mconfig, device_type type, const char *tag)
1520      : driver_device(mconfig, type, tag),
16        m_maincpu(*this, "maincpu")
21   m_maincpu(*this, "maincpu"),
22   m_cpu2(*this, "cpu2"),
23   m_p_ram(*this, "ram")
1724   { }
1825
26   DECLARE_READ8_MEMBER(sound_r);
27   DECLARE_READ8_MEMBER(switch_r);
28   DECLARE_WRITE8_MEMBER(mute_w);
29   UINT8 m_out_offs;
30   required_device<cpu_device> m_maincpu;
31   required_device<cpu_device> m_cpu2;
32   required_shared_ptr<UINT8> m_p_ram;
33
1934protected:
2035
2136   // devices
22   required_device<cpu_device> m_maincpu;
2337
38
2439   // driver_device overrides
2540   virtual void machine_reset();
2641public:
r17885r17886
3045
3146static ADDRESS_MAP_START( rowamet_map, AS_PROGRAM, 8, rowamet_state )
3247   AM_RANGE(0x0000, 0x1fff) AM_ROM
33   //AM_RANGE(0x2800, 0x2806) AM_READ
34   AM_RANGE(0x4000, 0x40ff) AM_RAM
48   AM_RANGE(0x2800, 0x2808) AM_READ(switch_r)
49   AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("ram")
3550ADDRESS_MAP_END
3651
3752static ADDRESS_MAP_START( rowamet_sub_map, AS_PROGRAM, 8, rowamet_state )
r17885r17886
4156
4257static ADDRESS_MAP_START( rowamet_sub_io, AS_IO, 8, rowamet_state )
4358   ADDRESS_MAP_GLOBAL_MASK(0xff)
44   //AM_RANGE(0x00, 0x00) AM_READWRITE(snd_data_r,mute_w)
45   //AM_RANGE(0x01, 0x01) AM_WRITE(dac_w)
59   AM_RANGE(0x00, 0x00) AM_READWRITE(sound_r,mute_w)
60   AM_RANGE(0x01, 0x01) AM_DEVWRITE("dac", dac_device, write_unsigned8)
4661ADDRESS_MAP_END
4762
4863static INPUT_PORTS_START( rowamet )
4964INPUT_PORTS_END
5065
66
67READ8_MEMBER( rowamet_state::sound_r )
68{
69   return (m_p_ram[0x92] >> 4) | (m_p_ram[0x93] & 0xf0);
70}
71
72READ8_MEMBER( rowamet_state::switch_r )
73{
74   return 0;
75}
76
77WRITE8_MEMBER( rowamet_state::mute_w )
78{
79   machine().sound().system_enable(~data);
80   printf("%X ",data);
81}
82
83//m_cpu2->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5184void rowamet_state::machine_reset()
5285{
5386}
r17885r17886
5689{
5790}
5891
92static TIMER_DEVICE_CALLBACK( rowamet_timer )
93{
94   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
95   rowamet_state *state = timer.machine().driver_data<rowamet_state>();
96   state->m_out_offs++;
97   if (state->m_out_offs > 0x9f)
98      state->m_out_offs = 0x80;
99
100   if (state->m_out_offs < 0x90)
101   {
102      UINT8 digit = state->m_out_offs << 1;
103      output_set_digit_value(digit, patterns[state->m_p_ram[state->m_out_offs]>>4]);
104      output_set_digit_value(++digit, patterns[state->m_p_ram[state->m_out_offs]&15]);
105   }
106   //else
107   //if (state->m_out_offs == 0x90)
108   //   timer.machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE);
109   //else
110   //if (state->m_out_offs == 0x9f)
111   //   timer.machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
112}
113
59114static MACHINE_CONFIG_START( rowamet, rowamet_state )
60115   /* basic machine hardware */
61116   MCFG_CPU_ADD("maincpu", Z80, 1888888)
r17885r17886
63118   MCFG_CPU_ADD("cpu2", Z80, 1888888)
64119   MCFG_CPU_PROGRAM_MAP(rowamet_sub_map)
65120   MCFG_CPU_IO_MAP(rowamet_sub_io)
121   MCFG_TIMER_ADD_PERIODIC("rowamet_timer", rowamet_timer, attotime::from_hz(200))
122
123   /* Video */
124   MCFG_DEFAULT_LAYOUT(layout_rowamet)
125
126   /* Sound */
127   MCFG_SPEAKER_STANDARD_MONO("mono")
128   MCFG_DAC_ADD("dac")
129   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
66130MACHINE_CONFIG_END
67131
68132/*-------------------------------------------------------------------

Previous 199869 Revisions Next


© 1997-2024 The MAME Team