mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
Hook up Borderline netlist, provided by 'beta-tester' (#7328) [beta-tester]
* netlist: Explicitly trim connection names. * Hook up Borderline netlist, provided by 'beta-tester' * brdrline: Add static solver, using dynamic timestep, update driver flags.
This commit is contained in:
parent
7492ea4b9c
commit
db3a24507f
@ -3608,6 +3608,8 @@ files {
|
||||
MAME_DIR .. "src/mame/includes/vicdual.h",
|
||||
MAME_DIR .. "src/mame/audio/vicdual.cpp",
|
||||
MAME_DIR .. "src/mame/audio/vicdual.h",
|
||||
MAME_DIR .. "src/mame/audio/nl_brdrline.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_brdrline.h",
|
||||
MAME_DIR .. "src/mame/audio/vicdual-97271p.cpp",
|
||||
MAME_DIR .. "src/mame/audio/vicdual-97271p.h",
|
||||
MAME_DIR .. "src/mame/video/vicdual.cpp",
|
||||
|
@ -288,6 +288,28 @@ files{
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.cpp",
|
||||
MAME_DIR .. "src/mame/machine/nl_palestra.h",
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/vicdual.cpp",
|
||||
MAME_DIR .. "src/mame/includes/vicdual.h",
|
||||
MAME_DIR .. "src/mame/audio/vicdual.cpp",
|
||||
MAME_DIR .. "src/mame/audio/vicdual.h",
|
||||
MAME_DIR .. "src/mame/audio/nl_brdrline.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_brdrline.h",
|
||||
MAME_DIR .. "src/mame/audio/vicdual-97271p.cpp",
|
||||
MAME_DIR .. "src/mame/audio/vicdual-97271p.h",
|
||||
MAME_DIR .. "src/mame/video/vicdual.cpp",
|
||||
MAME_DIR .. "src/mame/video/vicdual-97269pb.cpp",
|
||||
MAME_DIR .. "src/mame/video/vicdual-97269pb.h",
|
||||
MAME_DIR .. "src/mame/audio/carnival.cpp",
|
||||
MAME_DIR .. "src/mame/audio/carnival.h",
|
||||
MAME_DIR .. "src/mame/audio/depthch.cpp",
|
||||
MAME_DIR .. "src/mame/audio/depthch.h",
|
||||
MAME_DIR .. "src/mame/audio/invinco.cpp",
|
||||
MAME_DIR .. "src/mame/audio/invinco.h",
|
||||
MAME_DIR .. "src/mame/audio/pulsar.cpp",
|
||||
MAME_DIR .. "src/mame/audio/pulsar.h",
|
||||
MAME_DIR .. "src/mame/audio/tranqgun.cpp",
|
||||
MAME_DIR .. "src/mame/audio/tranqgun.h",
|
||||
|
||||
MAME_DIR .. "src/mame/machine/segacrpt_device.cpp",
|
||||
MAME_DIR .. "src/mame/machine/segacrpt_device.h",
|
||||
MAME_DIR .. "src/mame/drivers/segag80r.cpp",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -165,7 +165,7 @@ namespace netlist
|
||||
|
||||
void nlparse_t::register_link(const pstring &sin, const pstring &sout)
|
||||
{
|
||||
register_link_fqn(build_fqn(sin), build_fqn(sout));
|
||||
register_link_fqn(build_fqn(plib::trim(sin)), build_fqn(plib::trim(sout)));
|
||||
}
|
||||
|
||||
void nlparse_t::register_link_arr(const pstring &terms)
|
||||
|
1805
src/mame/audio/nl_brdrline.cpp
Normal file
1805
src/mame/audio/nl_brdrline.cpp
Normal file
File diff suppressed because it is too large
Load Diff
11
src/mame/audio/nl_brdrline.h
Normal file
11
src/mame/audio/nl_brdrline.h
Normal file
@ -0,0 +1,11 @@
|
||||
// license:CC0
|
||||
// copyright-holders: beta-tester (https://github.com/beta-tester)
|
||||
|
||||
#ifndef MAME_AUDIO_NL_BRDRLINE_H
|
||||
#define MAME_AUDIO_NL_BRDRLINE_H
|
||||
|
||||
#pragma once
|
||||
|
||||
NETLIST_EXTERNAL(brdrline)
|
||||
|
||||
#endif // MAME_AUDIO_NL_BRDRLINE_H
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Derrick Renaud, Couriersud
|
||||
// copyright-holders:Derrick Renaud, Couriersud, Aaron Giles
|
||||
/*************************************************************************
|
||||
|
||||
VIC Dual Game board
|
||||
@ -9,6 +9,8 @@
|
||||
#include "emu.h"
|
||||
#include "includes/vicdual.h"
|
||||
|
||||
#include "audio/nl_brdrline.h"
|
||||
|
||||
|
||||
/************************************************************************
|
||||
* frogs Sound System Analog emulation
|
||||
@ -479,104 +481,7 @@ void vicdual_state::invho2_audio_w(uint8_t data)
|
||||
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* brdrline Sound System Analog emulation
|
||||
* May 2006, Derrick Renaud
|
||||
************************************************************************/
|
||||
#if 0
|
||||
|
||||
|
||||
/* Discrete Sound Input Nodes */
|
||||
#define BRDRLINE_GUN_TRG_EN NODE_01
|
||||
#define BRDRLINE_JEEP_ON_EN NODE_02
|
||||
#define BRDRLINE_POINT_TRG_EN NODE_03
|
||||
#define BRDRLINE_HIT_TRG_EN NODE_04
|
||||
#define BRDRLINE_ANIMAL_TRG_EN NODE_05
|
||||
#define BRDRLINE_EMAR_TRG_EN NODE_06
|
||||
#define BRDRLINE_WALK_TRG_EN NODE_07
|
||||
#define BRDRLINE_CRY_TRG_EN NODE_08
|
||||
|
||||
/* Nodes - Sounds */
|
||||
#define BRDRLINE_GUN_TRG_SND NODE_91
|
||||
#define BRDRLINE_JEEP_ON_SND NODE_92
|
||||
#define BRDRLINE_POINT_TRG_SND NODE_93
|
||||
#define BRDRLINE_HIT_TRG_SND NODE_94
|
||||
#define BRDRLINE_ANIMAL_TRG_SND NODE_95
|
||||
#define BRDRLINE_EMAR_TRG_SND NODE_96
|
||||
#define BRDRLINE_WALK_TRG_SND NODE_97
|
||||
#define BRDRLINE_CRY_TRG_SND NODE_98
|
||||
|
||||
DISCRETE_SOUND_START(brdrline_discrete)
|
||||
/************************************************
|
||||
* Input register mapping
|
||||
************************************************/
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_GUN_TRG_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_JEEP_ON_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_POINT_TRG_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_HIT_TRG_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_ANIMAL_TRG_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_EMAR_TRG_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_WALK_TRG_EN)
|
||||
DISCRETE_INPUT_LOGIC(BRDRLINE_CRY_TRG_EN)
|
||||
|
||||
/************************************************
|
||||
* GUN TRG
|
||||
************************************************/
|
||||
DISCRETE_LFSR_NOISE(NODE_10, 1, 1,CLK,AMPL,FEED,BIAS,LFSRTB)
|
||||
DISCRETE_MIXER2(NODE_11, 1, NODE_10,IN1,INFO)
|
||||
DISCRETE_FILTER2(NODE_12, 1, NODE_11,FREQ,DAMP,TYPE)
|
||||
DISCRETE_ONESHOT(NODE_13, BRDRLINE_GUN_TRG_EN, DEFAULT_TTL_V_LOGIC_1,
|
||||
TIME_OF_74LS123(RES_K(47), CAP_U(1)), // R155, C73
|
||||
DISC_ONESHOT_FEDGE | DISC_ONESHOT_RETRIG | DISC_OUT_ACTIVE_LOW)
|
||||
DISCRETE_RCDISC4(NODE_14, 1, NODE_13,RVAL0,RVAL1,RVAL2,CVAL,VP,TYPE)
|
||||
DISCRETE_VCA(BRDRLINE_GUN_TRG_SND, 1, NODE_12, NODE_14,TYPE)
|
||||
|
||||
/************************************************
|
||||
* JEEP ON
|
||||
************************************************/
|
||||
DISCRETE_555_ASTABLE(NODE_20, BRDRLINE_JEEP_ON_EN,
|
||||
RES_K(1), // R150
|
||||
RES_K(33), // R153
|
||||
CAP_U(.1), // C72
|
||||
OPTIONS)
|
||||
DISCRETE_COUNTER(NODE_21, 1, 1, NODE_20,MIN,MAX,DIR,INIT0, DISC_CLK_BY_COUNT)
|
||||
DISCRETE_COUNTER(NODE_22, 1, 1, NODE_20,MIN,MAX,DIR,INIT0, DISC_CLK_BY_COUNT)
|
||||
DISCRETE_TRANSFORM3(NODE,INP0,INP1,INP2,FUNCT)
|
||||
DISCRETE_DAC_R1(NODE,DATA,VDATA,LADDER)
|
||||
|
||||
/************************************************
|
||||
* POINT TRG
|
||||
************************************************/
|
||||
|
||||
/************************************************
|
||||
* HIT TRG
|
||||
************************************************/
|
||||
|
||||
/************************************************
|
||||
* ANIMAL TRG
|
||||
************************************************/
|
||||
|
||||
/************************************************
|
||||
* EMAR TRG
|
||||
************************************************/
|
||||
|
||||
/************************************************
|
||||
* WALK TRG
|
||||
************************************************/
|
||||
|
||||
/************************************************
|
||||
* CRY TRG
|
||||
************************************************/
|
||||
|
||||
/************************************************
|
||||
* Mixer
|
||||
************************************************/
|
||||
|
||||
DISCRETE_OUTPUT(NODE_90, 1)
|
||||
|
||||
DISCRETE_SOUND_END
|
||||
#endif
|
||||
|
||||
/*
|
||||
static const char *const brdrline_sample_names[] =
|
||||
{
|
||||
"*brdrline",
|
||||
@ -630,3 +535,55 @@ void vicdual_state::brdrline_audio_aux_w(uint8_t data)
|
||||
else // boot sample
|
||||
m_samples->start(0, 0);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Borderline
|
||||
*
|
||||
*************************************/
|
||||
|
||||
borderline_audio_device::borderline_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
|
||||
device_t(mconfig, BORDERLINE_AUDIO, tag, owner, clock),
|
||||
device_mixer_interface(mconfig, *this),
|
||||
m_input_line(*this, "sound_nl:in_%u", 0)
|
||||
{
|
||||
}
|
||||
|
||||
void borderline_audio_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
NETLIST_SOUND(config, "sound_nl", 48000)
|
||||
.set_source(NETLIST_NAME(brdrline))
|
||||
.add_route(ALL_OUTPUTS, *this, 1.0);
|
||||
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[7], "GUN_TRG.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[6], "JEEP_ON.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[5], "POINT_TRG.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[4], "HIT_TRG.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[3], "WALK_TRG.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[2], "EMAR_TRG.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[1], "CRY_TRG.IN", 0);
|
||||
NETLIST_LOGIC_INPUT(config, m_input_line[0], "ANIMAL_TRG.IN", 0);
|
||||
|
||||
NETLIST_STREAM_OUTPUT(config, "sound_nl:cout0", 0, "OUTPUT").set_mult_offset(1.0, 0.0);
|
||||
}
|
||||
|
||||
void borderline_audio_device::device_start()
|
||||
{
|
||||
save_item(NAME(m_input_state));
|
||||
}
|
||||
|
||||
void borderline_audio_device::write(u8 value)
|
||||
{
|
||||
if (value != m_input_state)
|
||||
{
|
||||
m_input_state = value;
|
||||
for (int index = 0; index < 8; index++)
|
||||
if (m_input_line[index] != nullptr)
|
||||
m_input_line[index]->write_line(BIT(m_input_state, index));
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_DEVICE_TYPE(BORDERLINE_AUDIO, borderline_audio_device, "borderline_audio", "Borderline Sound Board")
|
||||
|
30
src/mame/audio/vicdual.h
Normal file
30
src/mame/audio/vicdual.h
Normal file
@ -0,0 +1,30 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Aaron Giles
|
||||
#ifndef MAME_AUDIO_VICDUAL_H
|
||||
#define MAME_AUDIO_VICDUAL_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/netlist.h"
|
||||
#include "netlist/nl_setup.h"
|
||||
|
||||
|
||||
class borderline_audio_device : public device_t, public device_mixer_interface
|
||||
{
|
||||
public:
|
||||
borderline_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual void device_start() override;
|
||||
|
||||
void write(u8 data);
|
||||
|
||||
private:
|
||||
optional_device_array<netlist_mame_logic_input_device, 8> m_input_line;
|
||||
u8 m_input_state = 0xff;
|
||||
};
|
||||
|
||||
|
||||
DECLARE_DEVICE_TYPE(BORDERLINE_AUDIO, borderline_audio_device)
|
||||
|
||||
#endif // MAME_AUDIO_VICDUAL_H
|
@ -1168,11 +1168,11 @@ void carnival_state::carnival_io_w(offs_t offset, uint8_t data)
|
||||
|
||||
void vicdual_state::brdrline_io_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (offset & 0x01) brdrline_audio_w(data);
|
||||
if (offset & 0x01) m_borderline_sound->write(data);
|
||||
if (offset & 0x02)
|
||||
{
|
||||
palette_bank_w(data);
|
||||
brdrline_audio_aux_w(data);
|
||||
// brdrline_audio_aux_w(data);
|
||||
}
|
||||
if (offset & 0x08) assert_coin_status();
|
||||
}
|
||||
@ -2279,7 +2279,7 @@ void vicdual_state::brdrline(machine_config &config)
|
||||
|
||||
/* audio hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
brdrline_audio(config);
|
||||
BORDERLINE_AUDIO(config, "borderline_sound", 0).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
@ -4032,11 +4032,11 @@ GAME( 1980, carnivalc, carnival, carnival, carnivalc, carnival_state, empty_in
|
||||
GAME( 1980, carnivalh, carnival, carnivalh, carnivalh, carnival_state, empty_init, ROT270, "Sega", "Carnival (Head On hardware, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1980, carnivalha, carnival, carnivalh, carnivalh, carnival_state, empty_init, ROT270, "Sega", "Carnival (Head On hardware, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1980, verbena, carnival, carnival, carnival, carnival_state, empty_init, ROT270, "bootleg (Cocamatic)", "Verbena (bootleg of Carnival)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrline, 0, brdrline, brdrline, vicdual_state, empty_init, ROT270, "Sega", "Borderline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, starrkr, brdrline, brdrline, starrkr, vicdual_state, empty_init, ROT270, "Sega", "Star Raker", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrlins, brdrline, brdrline, brdrline, vicdual_state, empty_init, ROT270, "bootleg (Sidam)", "Borderline (Sidam bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrlinb, brdrline, brdrline, brdrline, vicdual_state, empty_init, ROT270, "bootleg (Karateco)", "Borderline (Karateco bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrlinet, brdrline, tranqgun, tranqgun, vicdual_state, empty_init, ROT270, "Sega", "Borderline (Tranquillizer Gun conversion)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // official factory conversion
|
||||
GAME( 1981, brdrline, 0, brdrline, brdrline, vicdual_state, empty_init, ROT270, "Sega", "Borderline", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, starrkr, brdrline, brdrline, starrkr, vicdual_state, empty_init, ROT270, "Sega", "Star Raker", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrlins, brdrline, brdrline, brdrline, vicdual_state, empty_init, ROT270, "bootleg (Sidam)", "Borderline (Sidam bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrlinb, brdrline, brdrline, brdrline, vicdual_state, empty_init, ROT270, "bootleg (Karateco)", "Borderline (Karateco bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, brdrlinet, brdrline, tranqgun, tranqgun, vicdual_state, empty_init, ROT270, "Sega", "Borderline (Tranquillizer Gun conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // official factory conversion
|
||||
GAME( 198?, startrks, 0, headons, headons, vicdual_state, empty_init, ROT0, "bootleg (Sidam)", "Star Trek (Head On hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1980, digger, 0, digger, digger, vicdual_state, empty_init, ROT270, "Sega", "Digger", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, pulsar, 0, pulsar, pulsar, vicdual_state, empty_init, ROT270, "Sega", "Pulsar", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "sound/samples.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "screen.h"
|
||||
#include "audio/vicdual.h"
|
||||
#include "audio/vicdual-97271p.h"
|
||||
#include "video/vicdual-97269pb.h"
|
||||
|
||||
@ -29,6 +30,7 @@ public:
|
||||
m_coinstate_timer(*this, "coinstate"),
|
||||
m_nsub_coinage_timer(*this, "nsub_coin"),
|
||||
m_screen(*this, "screen"),
|
||||
m_borderline_sound(*this, "borderline_sound"),
|
||||
m_proms(*this, "proms"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_characterram(*this, "characterram"),
|
||||
@ -61,7 +63,6 @@ public:
|
||||
void headon2bw(machine_config &config);
|
||||
void safari(machine_config &config);
|
||||
void brdrline(machine_config &config);
|
||||
void brdrline_audio(machine_config &config);
|
||||
void samurai(machine_config &config);
|
||||
void sspaceat(machine_config &config);
|
||||
void digger(machine_config &config);
|
||||
@ -88,6 +89,7 @@ protected:
|
||||
required_device<timer_device> m_coinstate_timer;
|
||||
optional_device<timer_device> m_nsub_coinage_timer;
|
||||
required_device<screen_device> m_screen;
|
||||
optional_device<borderline_audio_device> m_borderline_sound;
|
||||
optional_memory_region m_proms;
|
||||
|
||||
required_shared_ptr<uint8_t> m_videoram;
|
||||
@ -149,8 +151,6 @@ protected:
|
||||
void frogs_audio_w(uint8_t data);
|
||||
void headon_audio_w(uint8_t data);
|
||||
void invho2_audio_w(uint8_t data);
|
||||
void brdrline_audio_w(uint8_t data);
|
||||
void brdrline_audio_aux_w(uint8_t data);
|
||||
TIMER_CALLBACK_MEMBER( frogs_croak_callback );
|
||||
|
||||
/*----------- defined in audio/depthch.cpp -----------*/
|
||||
|
@ -364,6 +364,13 @@ startrek // (c) 1982
|
||||
tacscan // (c) 1982
|
||||
zektor // (c) 1982
|
||||
|
||||
@source:vicdual.cpp
|
||||
brdrlinb // Karateco bootleg
|
||||
brdrline // (c) 1980 Sega
|
||||
brdrlinet // (c) 1981 Sega
|
||||
brdrlins // Sidam bootleg
|
||||
starrkr // (c) 1981 Sega
|
||||
|
||||
@source:zaxxon.cpp
|
||||
congo // 605-5167 (c) 1983 (2 board stack)
|
||||
congoa // 605-5167 (c) 1983 (3 board stack)
|
||||
|
Loading…
Reference in New Issue
Block a user