mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
othunder.cpp: changed to mono speaker, as shown on schematics and verified on real board [Guru]
This commit is contained in:
parent
fcfae40e57
commit
5294f18b9c
@ -264,15 +264,6 @@ Stephh's notes (based on the game M68000 code and some tests) :
|
|||||||
TODO:
|
TODO:
|
||||||
-----
|
-----
|
||||||
|
|
||||||
- With the correct clock speed of 12MHz for the 68000, garbage graphics remain
|
|
||||||
over the Taito logo on startup. This seems to be a bug in the original which
|
|
||||||
would have no effect if our timing was 100% right. The interrupt handling
|
|
||||||
should be quite correct, it's derived straight from the schematics and PAL
|
|
||||||
dump.
|
|
||||||
The current workaround is to make the 68000 run at 13MHz. Lowering below
|
|
||||||
12MHz would work as well, and possibly be closer to the real reason (wait
|
|
||||||
states slowing the CPU down?)
|
|
||||||
|
|
||||||
- The "FIRE!" arrows pointing to padlocks are not in perfect sync with the
|
- The "FIRE!" arrows pointing to padlocks are not in perfect sync with the
|
||||||
background scrolling. Should they?
|
background scrolling. Should they?
|
||||||
|
|
||||||
@ -667,8 +658,7 @@ void othunder_state::machine_reset()
|
|||||||
MACHINE_CONFIG_START(othunder_state::othunder)
|
MACHINE_CONFIG_START(othunder_state::othunder)
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
// MCFG_CPU_ADD("maincpu", M68000, 24000000/2 ) /* 12 MHz */
|
MCFG_CPU_ADD("maincpu", M68000, 24000000/2 ) /* 12 MHz */
|
||||||
MCFG_CPU_ADD("maincpu", M68000, 13000000 ) /* fixes garbage graphics on startup */
|
|
||||||
MCFG_CPU_PROGRAM_MAP(othunder_map)
|
MCFG_CPU_PROGRAM_MAP(othunder_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", othunder_state, vblank_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", othunder_state, vblank_interrupt)
|
||||||
|
|
||||||
@ -710,7 +700,7 @@ MACHINE_CONFIG_START(othunder_state::othunder)
|
|||||||
MCFG_TC0110PCR_PALETTE("palette")
|
MCFG_TC0110PCR_PALETTE("palette")
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_MONO("speaker")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
|
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
|
||||||
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||||
@ -722,17 +712,17 @@ MACHINE_CONFIG_START(othunder_state::othunder)
|
|||||||
MCFG_SOUND_ROUTE(2, "2610.2r", 1.0)
|
MCFG_SOUND_ROUTE(2, "2610.2r", 1.0)
|
||||||
|
|
||||||
MCFG_FILTER_VOLUME_ADD("2610.0l", 0)
|
MCFG_FILTER_VOLUME_ADD("2610.0l", 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||||
MCFG_FILTER_VOLUME_ADD("2610.0r", 0)
|
MCFG_FILTER_VOLUME_ADD("2610.0r", 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||||
MCFG_FILTER_VOLUME_ADD("2610.1l", 0)
|
MCFG_FILTER_VOLUME_ADD("2610.1l", 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||||
MCFG_FILTER_VOLUME_ADD("2610.1r", 0)
|
MCFG_FILTER_VOLUME_ADD("2610.1r", 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||||
MCFG_FILTER_VOLUME_ADD("2610.2l", 0)
|
MCFG_FILTER_VOLUME_ADD("2610.2l", 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||||
MCFG_FILTER_VOLUME_ADD("2610.2r", 0)
|
MCFG_FILTER_VOLUME_ADD("2610.2r", 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
|
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
|
||||||
MCFG_TC0140SYT_MASTER_CPU("maincpu")
|
MCFG_TC0140SYT_MASTER_CPU("maincpu")
|
||||||
@ -978,4 +968,4 @@ GAME( 1988, othundero, othunder, othunder, othunder, othunder_state, 0, ORIENT
|
|||||||
GAME( 1988, othunderu, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, rev 1)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1988, othunderu, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, rev 1)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1988, othunderuo, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1988, othunderuo, othunder, othunder, othundu, othunder_state, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1988, othunderj, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1988, othunderj, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1988, othunderjsc, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan, SC)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1988, othunderjsc, othunder, othunder, othundrj, othunder_state, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan, SC)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -41,6 +41,18 @@ public:
|
|||||||
m_gfxdecode(*this, "gfxdecode"),
|
m_gfxdecode(*this, "gfxdecode"),
|
||||||
m_palette(*this, "palette") { }
|
m_palette(*this, "palette") { }
|
||||||
|
|
||||||
|
void othunder(machine_config &config);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void machine_start() override;
|
||||||
|
virtual void machine_reset() override;
|
||||||
|
virtual void video_start() override;
|
||||||
|
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void update_irq();
|
||||||
|
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs);
|
||||||
|
|
||||||
DECLARE_WRITE16_MEMBER(irq_ack_w);
|
DECLARE_WRITE16_MEMBER(irq_ack_w);
|
||||||
DECLARE_WRITE8_MEMBER(eeprom_w);
|
DECLARE_WRITE8_MEMBER(eeprom_w);
|
||||||
DECLARE_WRITE8_MEMBER(coins_w);
|
DECLARE_WRITE8_MEMBER(coins_w);
|
||||||
@ -53,18 +65,8 @@ public:
|
|||||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
INTERRUPT_GEN_MEMBER(vblank_interrupt);
|
INTERRUPT_GEN_MEMBER(vblank_interrupt);
|
||||||
|
|
||||||
void othunder(machine_config &config);
|
|
||||||
void othunder_map(address_map &map);
|
void othunder_map(address_map &map);
|
||||||
void z80_sound_map(address_map &map);
|
void z80_sound_map(address_map &map);
|
||||||
protected:
|
|
||||||
virtual void machine_start() override;
|
|
||||||
virtual void machine_reset() override;
|
|
||||||
virtual void video_start() override;
|
|
||||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void update_irq();
|
|
||||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs);
|
|
||||||
|
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
required_shared_ptr<uint16_t> m_spriteram;
|
required_shared_ptr<uint16_t> m_spriteram;
|
||||||
|
Loading…
Reference in New Issue
Block a user