Previous 199869 Revisions Next

r18037 Thursday 20th September, 2012 at 10:25:42 UTC by hap
made schaser sound timer a device
[src/mame/audio]8080bw.c
[src/mame/drivers]8080bw.c
[src/mame/includes]8080bw.h
[src/mame/video]8080bw.c

trunk/src/mame/audio/8080bw.c
r18036r18037
1616
1717MACHINE_START_MEMBER(_8080bw_state,extra_8080bw_sh)
1818{
19
2019   m_speaker = machine().device("speaker");
2120
2221   save_item(NAME(m_port_1_last_extra));
r18036r18037
820819         /* disable effect - stops at end of low cycle */
821820         if (!m_schaser_effect_555_is_low)
822821         {
823            m_schaser_effect_555_time_remain = m_schaser_effect_555_timer->remaining();
822            m_schaser_effect_555_time_remain = m_schaser_effect_555_timer->time_left();
824823                  m_schaser_effect_555_time_remain_savable = m_schaser_effect_555_time_remain.as_double();
825824            m_schaser_effect_555_timer->adjust(attotime::never);
826825         }
r18036r18037
870869}
871870
872871
873static TIMER_CALLBACK( schaser_effect_555_cb )
872TIMER_DEVICE_CALLBACK( schaser_effect_555_cb )
874873{
875   _8080bw_state *state = machine.driver_data<_8080bw_state>();
874   _8080bw_state *state = timer.machine().driver_data<_8080bw_state>();
876875   int effect = param;
877876   attotime new_time;
877
878878   /* Toggle 555 output */
879879   state->m_schaser_effect_555_is_low = !state->m_schaser_effect_555_is_low;
880880   state->m_schaser_effect_555_time_remain = attotime::zero;
r18036r18037
905905
906906MACHINE_START_MEMBER(_8080bw_state,schaser_sh)
907907{
908
909   m_schaser_effect_555_timer = machine().scheduler().timer_alloc(FUNC(schaser_effect_555_cb));
910
911908   save_item(NAME(m_schaser_explosion));
912909   save_item(NAME(m_schaser_effect_555_is_low));
913910   save_item(NAME(m_schaser_effect_555_time_remain_savable));
r18036r18037
10421039
10431040WRITE8_MEMBER(_8080bw_state::schasercv_sh_port_1_w)
10441041{
1045
10461042   /* bit 2 = 2nd speedup
10471043       bit 3 = 1st speedup
10481044       Death is a stream of ff's with some fe's thrown in */
r18036r18037
10571053
10581054WRITE8_MEMBER(_8080bw_state::schasercv_sh_port_2_w)
10591055{
1060
10611056   speaker_level_w(m_speaker, (data & 0x01) ? 1 : 0);      /* End-of-Level */
10621057
10631058   machine().sound().system_enable(data & 0x10);
trunk/src/mame/includes/8080bw.h
r18036r18037
1414{
1515public:
1616   _8080bw_state(const machine_config &mconfig, device_type type, const char *tag)
17      : mw8080bw_state(mconfig, type, tag) { }
17      : mw8080bw_state(mconfig, type, tag),
18      m_schaser_effect_555_timer(*this, "schaser_sh_555")
19   { }
1820
19   /* misc game specific */
20   emu_timer   *m_schaser_effect_555_timer;
21   attotime    m_schaser_effect_555_time_remain;
22   INT32       m_schaser_effect_555_time_remain_savable;
23   int         m_schaser_effect_555_is_low;
24   int         m_schaser_explosion;
25   int         m_schaser_last_effect;
26   UINT8       m_polaris_cloud_speed;
27   UINT8       m_polaris_cloud_pos;
28   UINT8       m_schaser_background_disable;
29   UINT8       m_schaser_background_select;
30   UINT8       m_c8080bw_flip_screen;
31   UINT8       m_color_map;
32   UINT8       m_screen_red;
21   /* devices/memory pointers */
22   optional_device<timer_device> m_schaser_effect_555_timer;
3323
3424   device_t *m_speaker;
3525
26
27   /* misc game specific */
28   UINT8 m_c8080bw_flip_screen;
29   UINT8 m_color_map;
30   UINT8 m_screen_red;
31
32   attotime m_schaser_effect_555_time_remain;
33   INT32 m_schaser_effect_555_time_remain_savable;
34   int m_schaser_effect_555_is_low;
35   int m_schaser_explosion;
36   int m_schaser_last_effect;
37   UINT8 m_polaris_cloud_speed;
38   UINT8 m_polaris_cloud_pos;
39   UINT8 m_schaser_background_disable;
40   UINT8 m_schaser_background_select;
41
42
3643   DECLARE_CUSTOM_INPUT_MEMBER(sflush_80_r);
44
3745   DECLARE_READ8_MEMBER(indianbt_r);
3846   DECLARE_WRITE8_MEMBER(steelwkr_sh_port_3_w);
3947   DECLARE_WRITE8_MEMBER(invadpt2_sh_port_1_w);
r18036r18037
6169   DECLARE_READ8_MEMBER(invmulti_eeprom_r);
6270   DECLARE_WRITE8_MEMBER(invmulti_eeprom_w);
6371   DECLARE_WRITE8_MEMBER(invmulti_bank_w);
72
6473   DECLARE_DRIVER_INIT(invmulti);
6574   DECLARE_DRIVER_INIT(vortex);
75
6676   DECLARE_MACHINE_START(extra_8080bw);
6777   DECLARE_MACHINE_START(schaser);
6878   DECLARE_MACHINE_RESET(schaser);
r18036r18037
7484   DECLARE_MACHINE_START(extra_8080bw_vh);
7585   DECLARE_MACHINE_START(schaser_sh);
7686   DECLARE_MACHINE_RESET(schaser_sh);
87
7788   UINT32 screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7889   UINT32 screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7990   UINT32 screen_update_rollingc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
r18036r18037
8596   UINT32 screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8697   UINT32 screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8798   UINT32 screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
99
88100   INTERRUPT_GEN_MEMBER(polaris_interrupt);
89101};
90102
r18036r18037
102114
103115extern const sn76477_interface schaser_sn76477_interface;
104116DISCRETE_SOUND_EXTERN( schaser );
117TIMER_DEVICE_CALLBACK( schaser_effect_555_cb );
trunk/src/mame/video/8080bw.c
r18036r18037
1515
1616MACHINE_START_MEMBER(_8080bw_state,extra_8080bw_vh)
1717{
18
1918   save_item(NAME(m_c8080bw_flip_screen));
2019   save_item(NAME(m_color_map));
2120   save_item(NAME(m_screen_red));
trunk/src/mame/drivers/8080bw.c
r18036r18037
10671067   MCFG_MACHINE_START_OVERRIDE(_8080bw_state,schaser)
10681068   MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state,schaser)
10691069
1070   MCFG_TIMER_ADD("schaser_sh_555", schaser_effect_555_cb)
1071
10701072   /* add shifter */
10711073   MCFG_MB14241_ADD("mb14241")
10721074

Previous 199869 Revisions Next


© 1997-2024 The MAME Team