mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
Added preliminary sound to Dulmont Magnum [smf]
This commit is contained in:
parent
8ab4957f97
commit
43bf02b759
@ -8,6 +8,7 @@
|
||||
#include "emu.h"
|
||||
#include "cpu/i86/i186.h"
|
||||
#include "machine/cdp1879.h"
|
||||
#include "sound/beep.h"
|
||||
|
||||
class magnum_state : public driver_device
|
||||
{
|
||||
@ -15,11 +16,13 @@ public:
|
||||
magnum_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_palette(*this, "palette"),
|
||||
m_cgrom(*this, "cgrom")
|
||||
m_cgrom(*this, "cgrom"),
|
||||
m_beep(*this, "beep")
|
||||
{}
|
||||
|
||||
DECLARE_READ8_MEMBER(lcd_r);
|
||||
DECLARE_WRITE8_MEMBER(lcd_w);
|
||||
DECLARE_WRITE8_MEMBER(beep_w);
|
||||
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
protected:
|
||||
virtual void machine_reset() override;
|
||||
@ -27,6 +30,8 @@ protected:
|
||||
private:
|
||||
required_device<palette_device> m_palette;
|
||||
required_memory_region m_cgrom;
|
||||
required_device<beep_device> m_beep;
|
||||
|
||||
struct lcd
|
||||
{
|
||||
u8 vram[640];
|
||||
@ -112,6 +117,12 @@ WRITE8_MEMBER(magnum_state::lcd_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(magnum_state::beep_w)
|
||||
{
|
||||
if (data & ~1) printf("beep_w unmapped bits %02x\n", data);
|
||||
m_beep->set_state(BIT(data, 0));
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( magnum_map, AS_PROGRAM, 16, magnum_state )
|
||||
AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now
|
||||
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("bios", 0)
|
||||
@ -122,6 +133,7 @@ static ADDRESS_MAP_START( magnum_io, AS_IO, 16, magnum_state )
|
||||
//AM_RANGE(0x000a, 0x000b) cdp1854 1
|
||||
//AM_RANGE(0x000e, 0x000f) cpd1854 2
|
||||
AM_RANGE(0x0018, 0x001f) AM_READWRITE8(lcd_r, lcd_w, 0x00ff)
|
||||
AM_RANGE(0x0056, 0x0057) AM_WRITE8(beep_w, 0x00ff)
|
||||
AM_RANGE(0x0080, 0x008f) AM_DEVREADWRITE8("rtc", cdp1879_device, read, write, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -140,6 +152,10 @@ static MACHINE_CONFIG_START( magnum, magnum_state )
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 6*80-1, 0, 9*16-1)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_SPEAKER_STANDARD_MONO("speaker")
|
||||
MCFG_SOUND_ADD("beep", BEEP, 500) /// frequency is guessed
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( magnum )
|
||||
@ -160,4 +176,4 @@ ROM_START( magnum )
|
||||
ROM_LOAD("hd44780_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(01d108e2) SHA1(bc0cdf0c9ba895f22e183c7bd35a3f655f2ca96f))
|
||||
ROM_END
|
||||
|
||||
COMP( 1983, magnum, 0, 0, magnum, 0, driver_device, 0, "Dulmont", "Magnum", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
|
||||
COMP( 1983, magnum, 0, 0, magnum, 0, driver_device, 0, "Dulmont", "Magnum", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
|
||||
|
Loading…
Reference in New Issue
Block a user