mirror of
https://github.com/holub/mame
synced 2025-07-01 00:09:18 +03:00
cclimber, kyugo: simplified handlers (nw)
This commit is contained in:
parent
d4b1f475ca
commit
c3d6be7a60
@ -6,18 +6,15 @@
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
|
||||
/* macro to convert 4-bit unsigned samples to 16-bit signed samples */
|
||||
// macro to convert 4-bit unsigned samples to 16-bit signed samples
|
||||
#define SAMPLE_CONV4(a) (0x1111*((a&0x0f))-0x8000)
|
||||
|
||||
#define SND_CLOCK 3072000 /* 3.072 MHz */
|
||||
|
||||
SAMPLES_START_CB_MEMBER( cclimber_audio_device::sh_start )
|
||||
{
|
||||
if (m_samples_region)
|
||||
{
|
||||
m_sample_buf = std::make_unique<int16_t[]>(2 * m_samples_region.bytes());
|
||||
save_pointer(NAME(m_sample_buf), 2 * m_samples_region.bytes());
|
||||
}
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
@ -38,7 +35,7 @@ cclimber_audio_device::cclimber_audio_device(const machine_config &mconfig, cons
|
||||
m_sample_freq(0),
|
||||
m_sample_volume(0),
|
||||
m_samples(*this, "samples"),
|
||||
m_samples_region(*this, "^samples")
|
||||
m_samples_region(*this, "samples")
|
||||
{
|
||||
}
|
||||
|
||||
@ -70,31 +67,31 @@ void cclimber_audio_device::device_add_mconfig(machine_config &config)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(cclimber_audio_device::sample_select_w)
|
||||
void cclimber_audio_device::sample_select_w(uint8_t data)
|
||||
{
|
||||
m_sample_num = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(cclimber_audio_device::sample_rate_w)
|
||||
void cclimber_audio_device::sample_rate_w(uint8_t data)
|
||||
{
|
||||
/* calculate the sampling frequency */
|
||||
// calculate the sampling frequency
|
||||
m_sample_freq = SND_CLOCK / 4 / (256 - data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(cclimber_audio_device::sample_volume_w)
|
||||
void cclimber_audio_device::sample_volume_w(uint8_t data)
|
||||
{
|
||||
m_sample_volume = data & 0x1f; /* range 0-31 */
|
||||
m_sample_volume = data & 0x1f; // range 0-31
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_audio_device::sample_trigger)
|
||||
void cclimber_audio_device::sample_trigger(int state)
|
||||
{
|
||||
if (state == 0)
|
||||
return;
|
||||
|
||||
play_sample(32 * m_sample_num,m_sample_freq,m_sample_volume);
|
||||
play_sample(32 * m_sample_num, m_sample_freq, m_sample_volume);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(cclimber_audio_device::sample_trigger_w)
|
||||
void cclimber_audio_device::sample_trigger_w(uint8_t data)
|
||||
{
|
||||
sample_trigger(data != 0);
|
||||
}
|
||||
@ -102,16 +99,10 @@ WRITE8_MEMBER(cclimber_audio_device::sample_trigger_w)
|
||||
|
||||
void cclimber_audio_device::play_sample(int start,int freq,int volume)
|
||||
{
|
||||
int len;
|
||||
int romlen = m_samples_region.bytes();
|
||||
|
||||
if (m_samples_region == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* decode the rom samples */
|
||||
len = 0;
|
||||
// decode the ROM samples
|
||||
int len = 0;
|
||||
while (start + len < romlen && m_samples_region[start+len] != 0x70)
|
||||
{
|
||||
int sample;
|
||||
@ -125,5 +116,5 @@ void cclimber_audio_device::play_sample(int start,int freq,int volume)
|
||||
len++;
|
||||
}
|
||||
|
||||
m_samples->start_raw(0,m_sample_buf.get(),2 * len,freq);
|
||||
m_samples->start_raw(0, m_sample_buf.get(), 2 * len, freq);
|
||||
}
|
||||
|
@ -24,27 +24,27 @@ public:
|
||||
// construction/destruction
|
||||
cclimber_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(sample_trigger);
|
||||
DECLARE_WRITE8_MEMBER(sample_trigger_w);
|
||||
DECLARE_WRITE8_MEMBER(sample_rate_w);
|
||||
DECLARE_WRITE8_MEMBER(sample_volume_w);
|
||||
void sample_trigger(int state);
|
||||
void sample_trigger_w(uint8_t data);
|
||||
void sample_rate_w(uint8_t data);
|
||||
void sample_volume_w(uint8_t data);
|
||||
|
||||
protected:
|
||||
// device level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
void play_sample(int start,int freq,int volume);
|
||||
void play_sample(int start, int freq, int volume);
|
||||
|
||||
private:
|
||||
std::unique_ptr<int16_t[]> m_sample_buf; /* buffer to decode samples at run time */
|
||||
int m_sample_num;
|
||||
int m_sample_freq;
|
||||
int m_sample_volume;
|
||||
optional_device<samples_device> m_samples;
|
||||
optional_region_ptr<uint8_t> m_samples_region;
|
||||
std::unique_ptr<int16_t[]> m_sample_buf; // buffer to decode samples at run time
|
||||
uint8_t m_sample_num;
|
||||
uint32_t m_sample_freq;
|
||||
uint8_t m_sample_volume;
|
||||
required_device<samples_device> m_samples;
|
||||
required_region_ptr<uint8_t> m_samples_region;
|
||||
|
||||
DECLARE_WRITE8_MEMBER( sample_select_w );
|
||||
void sample_select_w(uint8_t data);
|
||||
|
||||
SAMPLES_START_CB_MEMBER( sh_start );
|
||||
};
|
||||
|
@ -253,35 +253,35 @@ void cclimber_state::machine_start()
|
||||
save_item(NAME(m_nmi_mask));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(cclimber_state::swimmer_sh_soundlatch_w)
|
||||
void cclimber_state::swimmer_sh_soundlatch_w(uint8_t data)
|
||||
{
|
||||
m_soundlatch->write(data);
|
||||
m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(cclimber_state::yamato_p0_w)
|
||||
void cclimber_state::yamato_p0_w(uint8_t data)
|
||||
{
|
||||
m_yamato_p0 = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(cclimber_state::yamato_p1_w)
|
||||
void cclimber_state::yamato_p1_w(uint8_t data)
|
||||
{
|
||||
m_yamato_p1 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(cclimber_state::yamato_p0_r)
|
||||
uint8_t cclimber_state::yamato_p0_r()
|
||||
{
|
||||
return m_yamato_p0;
|
||||
}
|
||||
|
||||
READ8_MEMBER(cclimber_state::yamato_p1_r)
|
||||
uint8_t cclimber_state::yamato_p1_r()
|
||||
{
|
||||
return m_yamato_p1;
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::toprollr_rombank_w)
|
||||
void cclimber_state::toprollr_rombank_w(int state)
|
||||
{
|
||||
m_toprollr_rombank = m_mainlatch->q5_r() | (m_mainlatch->q6_r() << 1);
|
||||
|
||||
@ -301,13 +301,13 @@ MACHINE_RESET_MEMBER(cclimber_state,cclimber)
|
||||
}
|
||||
#endif
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::nmi_mask_w)
|
||||
void cclimber_state::nmi_mask_w(int state)
|
||||
{
|
||||
m_nmi_mask = state;
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(cclimber_state::bagmanf_a000_r)
|
||||
uint8_t cclimber_state::bagmanf_a000_r()
|
||||
{
|
||||
// Should this actually use the same PAL16R6 as the parent set?
|
||||
return 0x3f;
|
||||
@ -317,7 +317,7 @@ READ8_MEMBER(cclimber_state::bagmanf_a000_r)
|
||||
/* Note that River Patrol reads/writes to a000-a4f0. This is a bug in the code.
|
||||
The instruction at 0x0593 should say LD DE,$8000 */
|
||||
|
||||
void cclimber_state::cclimber_map(address_map &map)
|
||||
void cclimber_state::rpatrol_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x5fff).rom();
|
||||
map(0x6000, 0x6bff).ram(); /* Crazy Kong only */
|
||||
@ -336,9 +336,17 @@ void cclimber_state::cclimber_map(address_map &map)
|
||||
map(0x9c00, 0x9fff).ram().w(FUNC(cclimber_state::cclimber_colorram_w)).share("colorram");
|
||||
map(0xa000, 0xa007).w(m_mainlatch, FUNC(ls259_device::write_d0));
|
||||
map(0xa000, 0xa000).portr("P1");
|
||||
map(0xa800, 0xa800).portr("P2");
|
||||
map(0xb000, 0xb000).portr("DSW");
|
||||
map(0xb800, 0xb800).portr("SYSTEM");
|
||||
}
|
||||
|
||||
void cclimber_state::cclimber_map(address_map &map)
|
||||
{
|
||||
rpatrol_map(map);
|
||||
|
||||
map(0xa800, 0xa800).portr("P2").w("cclimber_audio", FUNC(cclimber_audio_device::sample_rate_w));
|
||||
map(0xb000, 0xb000).portr("DSW").w("cclimber_audio", FUNC(cclimber_audio_device::sample_volume_w));
|
||||
map(0xb800, 0xb800).portr("SYSTEM");
|
||||
}
|
||||
|
||||
void cclimber_state::decrypted_opcodes_map(address_map &map)
|
||||
@ -481,6 +489,13 @@ void cclimber_state::cclimber_portmap(address_map &map)
|
||||
map(0x0c, 0x0c).r("cclimber_audio:aysnd", FUNC(ay8910_device::data_r));
|
||||
}
|
||||
|
||||
void cclimber_state::rpatrol_portmap(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x08, 0x09).w("aysnd", FUNC(ay8910_device::address_data_w));
|
||||
map(0x0c, 0x0c).r("aysnd", FUNC(ay8910_device::data_r));
|
||||
}
|
||||
|
||||
void cclimber_state::yamato_portmap(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
@ -1110,13 +1125,13 @@ static GFXDECODE_START( gfx_toprollr )
|
||||
GFXDECODE_ENTRY( "gfx3", 0x0000, cclimber_charlayout, 24*4, 16 )
|
||||
GFXDECODE_END
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::vblank_irq)
|
||||
void cclimber_state::vblank_irq(int state)
|
||||
{
|
||||
if (state && m_nmi_mask)
|
||||
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::bagmanf_vblank_irq)
|
||||
void cclimber_state::bagmanf_vblank_irq(int state)
|
||||
{
|
||||
if (state && m_nmi_mask)
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
@ -1164,6 +1179,19 @@ void cclimber_state::cclimber(machine_config &config)
|
||||
CCLIMBER_AUDIO(config, "cclimber_audio", 0);
|
||||
}
|
||||
|
||||
void cclimber_state::rpatrol(machine_config &config)
|
||||
{
|
||||
root(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cclimber_state::rpatrol_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &cclimber_state::rpatrol_portmap);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
AY8910(config, "aysnd", XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "speaker", 0.5);
|
||||
}
|
||||
|
||||
void cclimber_state::cclimberx(machine_config &config)
|
||||
{
|
||||
cclimber(config);
|
||||
@ -1343,7 +1371,7 @@ ROM_START( cclimber )
|
||||
ROM_LOAD( "cclimber.pr2", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
|
||||
ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13", 0x0000, 0x1000, CRC(e0042f75) SHA1(86cb31b110742a0f7ae33052c88f42d00deb5468) )
|
||||
ROM_LOAD( "cc12", 0x1000, 0x1000, CRC(5da13aaa) SHA1(b2d41e69435d09c456648a10e33f5e1fbb0bc64c) )
|
||||
ROM_END
|
||||
@ -1375,7 +1403,7 @@ ROM_START( cclimbera )
|
||||
ROM_LOAD( "cclimber.pr2", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
|
||||
ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13", 0x0000, 0x1000, CRC(e0042f75) SHA1(86cb31b110742a0f7ae33052c88f42d00deb5468) )
|
||||
ROM_LOAD( "cc12", 0x1000, 0x1000, CRC(5da13aaa) SHA1(b2d41e69435d09c456648a10e33f5e1fbb0bc64c) )
|
||||
ROM_END
|
||||
@ -1407,7 +1435,7 @@ ROM_START( cclimberj )
|
||||
ROM_LOAD( "cclimber.pr2", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
|
||||
ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1440,7 +1468,7 @@ ROM_START( ccboot )
|
||||
ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
|
||||
ROM_LOAD( "ccboot.prm", 0x0060, 0x0100, CRC(9e11550d) SHA1(b8cba8e16e10e23fba1f11551102ab77b680bdf0) ) /* decryption table (not used) */
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1473,7 +1501,7 @@ ROM_START( ccboot2 )
|
||||
ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
|
||||
ROM_LOAD( "ccboot.prm", 0x0060, 0x0100, CRC(9e11550d) SHA1(b8cba8e16e10e23fba1f11551102ab77b680bdf0) ) /* decryption table (not used) */
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1506,7 +1534,7 @@ ROM_START( ccbootmr ) /* Model Racing bootleg */
|
||||
ROM_LOAD( "198-74288.c9", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
|
||||
ROM_LOAD( "214-74187.cpu",0x0060, 0x0100, CRC(9e11550d) SHA1(b8cba8e16e10e23fba1f11551102ab77b680bdf0) ) /* decryption table (not used) */
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "213.r4", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "212.n4", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1534,7 +1562,7 @@ ROM_START( cclimbroper )
|
||||
ROM_LOAD( "cc9-2716.cpu", 0x0000, 0x0800, CRC(a546a18f) SHA1(302ba08cef61b1badc361666fd559713037a2e43) )
|
||||
ROM_LOAD( "cc8-2716.cpu", 0x0800, 0x0800, CRC(0224e507) SHA1(c9b534246b6bb743294581a5e74608a295cf0734) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc7-2532.cpu", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc6-2532.cpu", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
|
||||
@ -1567,7 +1595,7 @@ ROM_START( cclimbrrod )
|
||||
ROM_LOAD( "cc9.bin", 0x0000, 0x0800, CRC(6fb2afaf) SHA1(d2fe31d00af10e6bcabef51885ce52fb17d1bfbc) )
|
||||
ROM_LOAD( "cc8.bin", 0x0800, 0x0800, CRC(227ee804) SHA1(0cda61a0ceeab299e7d40d33bf6dad3490928323) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc7.cpu", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc6.cpu", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
|
||||
@ -1604,7 +1632,7 @@ ROM_START( ckongpt2 )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "14.5s", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "13.5p", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1633,7 +1661,7 @@ ROM_START( ckongpt2a )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "14.5s", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "13.5p", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1662,7 +1690,7 @@ ROM_START( ckongpt2j )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "14.5s", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "13.5p", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1691,7 +1719,7 @@ ROM_START( ckongpt2jeu )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "14.5s", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "13.5p", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1721,7 +1749,7 @@ ROM_START( ckongpt2b )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "14.5s", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "13.5p", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1750,7 +1778,7 @@ ROM_START( ckongpt2b2 )
|
||||
ROM_LOAD( "prom.t6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.u6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "7.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "6.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1781,7 +1809,7 @@ ROM_START( ckong )
|
||||
ROM_LOAD( "ck6u.bin", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
|
||||
ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) ) // differs from ckongalc
|
||||
ROM_END
|
||||
@ -1816,7 +1844,7 @@ ROM_START( ckongo )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1845,7 +1873,7 @@ ROM_START( ckongalc )
|
||||
ROM_LOAD( "ck6u.bin", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
|
||||
ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "ck12.bin", 0x1000, 0x1000, CRC(2eb23b60) SHA1(c9e7dc584562aceb374193655fbacb7df6c9c731) ) // sldh w/ckongdks
|
||||
ROM_END
|
||||
@ -1874,7 +1902,7 @@ ROM_START( bigkong )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cc12j.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -1903,7 +1931,7 @@ ROM_START( monkeyd )
|
||||
ROM_LOAD( "ck6u.bin", 0x0020, 0x0020, BAD_DUMP CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
|
||||
ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, BAD_DUMP CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cc13j.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "ck12.bin", 0x1000, 0x1000, CRC(2eb23b60) SHA1(c9e7dc584562aceb374193655fbacb7df6c9c731) )
|
||||
ROM_END
|
||||
@ -2076,7 +2104,7 @@ ROM_START( dking )
|
||||
ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) ) // 82s123.1t
|
||||
ROM_LOAD( "82s129.5g", 0x0060, 0x0100, CRC(9e11550d) SHA1(b8cba8e16e10e23fba1f11551102ab77b680bdf0) ) // Decryption Table?
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) ) // d6.1m
|
||||
ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) ) // d5.1k
|
||||
ROM_END
|
||||
@ -2108,7 +2136,7 @@ ROM_START( ckongdks )
|
||||
ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) ) // 82s123.1t
|
||||
ROM_LOAD( "82s129.5g", 0x0060, 0x0100, CRC(9e11550d) SHA1(b8cba8e16e10e23fba1f11551102ab77b680bdf0) ) // Decryption Table?
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "ck08.bin", 0x0000, 0x1000, CRC(31c0a7de) SHA1(ace23fde4cb3c336b8377c1a1e940607d545e8c3) ) // 97.241211%
|
||||
ROM_LOAD( "ck07.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -2253,7 +2281,7 @@ ROM_START( cannonb )
|
||||
ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
|
||||
ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "canballs.5s", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "canballs.5p", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
|
||||
@ -2292,7 +2320,7 @@ ROM_START( cannonb2 )
|
||||
ROM_LOAD( "u6.bin", 0x0020, 0x0020, CRC(c0539747) SHA1(1bc70057b59b8cb11299fb6b0d84a46da6c0a025) )
|
||||
ROM_LOAD( "t6.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "cb6.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "cb5.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -2323,7 +2351,7 @@ ROM_START( cannonb3 )
|
||||
ROM_LOAD( "b pos u6 n82s123n.bin", 0x0020, 0x0020, CRC(a758b567) SHA1(d188c90dba10fe3abaae92488786b555b35218c5) )
|
||||
ROM_LOAD( "a pos t6 n82s123n.bin", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "ck14 pos s5 2532.bin", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
|
||||
ROM_LOAD( "ck13 pos r5 2532.bin", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
|
||||
ROM_END
|
||||
@ -2371,7 +2399,7 @@ ROM_START( bagmanf )
|
||||
ROM_LOAD( "2732 07 pos dboard.bin", 0x0000, 0x1000, CRC(2e0057ff) SHA1(33e3ffa6418f86864eb81e5e9bda4bf540c143a6) )
|
||||
ROM_LOAD( "2732 08 pos dboard.bin", 0x1000, 0x1000, CRC(b2120edd) SHA1(52b89dbcc749b084331fa82b13d0876e911fce52) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", ROMREGION_ERASE00 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", ROMREGION_ERASE00 )
|
||||
/* unpopulated */
|
||||
ROM_END
|
||||
|
||||
@ -2641,7 +2669,7 @@ ROM_START( toprollr )
|
||||
ROM_LOAD( "1.d5", 0x0c000, 0x02000, CRC(9894374d) SHA1(173de4abbc3fb5d522aa6d6d5caf8e4d54f2a598) )
|
||||
ROM_LOAD( "7.d3", 0x0e000, 0x02000, CRC(904fffb6) SHA1(5528bc2a4d2fe8672428fd4725644265f0d57ded) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 )
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "12.p3", 0x0000, 0x2000, CRC(7f989dc9) SHA1(3b4d18cbb992872b3cf8f5eaf5381ed3a9468cc1) )
|
||||
|
||||
ROM_REGION( 0x01a0, "proms", 0 )
|
||||
@ -2740,10 +2768,10 @@ GAME( 1981, ckongpt2b2, ckongpt2, cclimber, ckongb2, cclimber_state, empty_i
|
||||
// see bagman.cpp for parent
|
||||
GAME( 1982, bagmanf, bagman, bagmanf, bagmanf, cclimber_state, empty_init, ROT270, "bootleg", "Le Bagnard (bootleg on Crazy Kong hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1981, rpatrol, 0, cclimber, rpatrol, cclimber_state, init_rpatrol, ROT0, "Orca", "River Patrol (Japan)", MACHINE_SUPPORTS_SAVE)
|
||||
GAME( 1981, rpatroln, rpatrol, cclimber, rpatrol, cclimber_state, empty_init, ROT0, "Orca", "River Patrol (Japan, unprotected)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, rpatrolb, rpatrol, cclimber, rpatrol, cclimber_state, empty_init, ROT0, "bootleg", "River Patrol (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, silvland, rpatrol, cclimber, rpatrol, cclimber_state, empty_init, ROT0, "Falcon", "Silver Land", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, rpatrol, 0, rpatrol, rpatrol, cclimber_state, init_rpatrol, ROT0, "Orca", "River Patrol (Japan)", MACHINE_SUPPORTS_SAVE)
|
||||
GAME( 1981, rpatroln, rpatrol, rpatrol, rpatrol, cclimber_state, empty_init, ROT0, "Orca", "River Patrol (Japan, unprotected)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, rpatrolb, rpatrol, rpatrol, rpatrol, cclimber_state, empty_init, ROT0, "bootleg", "River Patrol (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, silvland, rpatrol, rpatrol, rpatrol, cclimber_state, empty_init, ROT0, "Falcon", "Silver Land", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// see pacman.cpp for parent
|
||||
GAME( 1985, cannonb, cannonbp, cannonb, cannonb, cclimber_state, init_cannonb, ROT90, "bootleg (Soft)", "Cannon Ball (bootleg on Crazy Kong hardware) (set 1, buggy)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // bootleggers missed protection after bonus game
|
||||
|
@ -10770,7 +10770,7 @@ ROM_START( mshuttle )
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "mscprom1.bin", 0x0000, 0x0020, CRC(ea0d1af0) SHA1(cb59e04c02307dfe847e3170cf0a7f62829b6094) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "my07", 0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
|
||||
ROM_LOAD( "my06", 0x1000, 0x1000, CRC(466415f2) SHA1(a05f8238cdcebe926a564ef6268b3cd677987fa2) ) // sldh
|
||||
ROM_END
|
||||
@ -10792,7 +10792,7 @@ ROM_START( mshuttle2 )
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "mscprom1.bin", 0x0000, 0x0020, CRC(ea0d1af0) SHA1(cb59e04c02307dfe847e3170cf0a7f62829b6094) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "my07", 0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
|
||||
ROM_LOAD( "my06", 0x1000, 0x1000, CRC(6d2dd711) SHA1(82e7c7b10258f651943173c968c7fa2bdf937ca9) )
|
||||
ROM_END
|
||||
@ -10814,7 +10814,7 @@ ROM_START( mshuttlea ) // PCB MY-01 + MY-02
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "mscprom1.bin", 0x0000, 0x0020, CRC(ea0d1af0) SHA1(cb59e04c02307dfe847e3170cf0a7f62829b6094) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "my07.4p", 0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
|
||||
ROM_LOAD( "my06.4s", 0x1000, 0x1000, CRC(466415f2) SHA1(a05f8238cdcebe926a564ef6268b3cd677987fa2) ) // sldh
|
||||
ROM_END
|
||||
@ -10837,7 +10837,7 @@ ROM_START( mshuttlej )
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "mscprom1.bin", 0x0000, 0x0020, CRC(ea0d1af0) SHA1(cb59e04c02307dfe847e3170cf0a7f62829b6094) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "my07", 0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
|
||||
ROM_LOAD( "my06", 0x1000, 0x1000, CRC(6d2dd711) SHA1(82e7c7b10258f651943173c968c7fa2bdf937ca9) )
|
||||
ROM_END
|
||||
@ -10860,7 +10860,7 @@ ROM_START( mshuttlej2 )
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "mscprom1.bin", 0x0000, 0x0020, CRC(ea0d1af0) SHA1(cb59e04c02307dfe847e3170cf0a7f62829b6094) )
|
||||
|
||||
ROM_REGION( 0x2000, "samples", 0 ) /* samples */
|
||||
ROM_REGION( 0x2000, "cclimber_audio:samples", 0 )
|
||||
ROM_LOAD( "my07", 0x0000, 0x1000, CRC(522a2920) SHA1(a64d821a8ff6bd6e2b0bdb1e632181e65a97363b) )
|
||||
ROM_LOAD( "my06.4r", 0x1000, 0x1000, CRC(4162be4d) SHA1(84fa8651796e498a37893ea90ef51b274c70e568) )
|
||||
ROM_END
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -34,6 +34,32 @@ public:
|
||||
m_decrypted_opcodes(*this, "decrypted_opcodes")
|
||||
{ }
|
||||
|
||||
void init_cannonb();
|
||||
void init_cannonb2();
|
||||
void init_cclimber();
|
||||
void init_cclimberj();
|
||||
void init_ckongb();
|
||||
void init_dking();
|
||||
void init_rpatrol();
|
||||
void init_toprollr();
|
||||
void init_yamato();
|
||||
|
||||
void root(machine_config &config);
|
||||
void bagmanf(machine_config &config);
|
||||
void cannonb(machine_config &config);
|
||||
void cclimber(machine_config &config);
|
||||
void cclimberx(machine_config &config);
|
||||
void ckongb(machine_config &config);
|
||||
void guzzler(machine_config &config);
|
||||
void rpatrol(machine_config &config);
|
||||
void swimmer(machine_config &config);
|
||||
void toprollr(machine_config &config);
|
||||
void yamato(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
@ -66,30 +92,22 @@ public:
|
||||
tilemap_t *m_toproller_bg_tilemap;
|
||||
std::unique_ptr<uint8_t[]> m_opcodes;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(swimmer_sh_soundlatch_w);
|
||||
DECLARE_WRITE8_MEMBER(yamato_p0_w);
|
||||
DECLARE_WRITE8_MEMBER(yamato_p1_w);
|
||||
DECLARE_READ8_MEMBER(yamato_p0_r);
|
||||
DECLARE_READ8_MEMBER(yamato_p1_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(toprollr_rombank_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(nmi_mask_w);
|
||||
DECLARE_READ8_MEMBER(bagmanf_a000_r);
|
||||
DECLARE_WRITE8_MEMBER(cclimber_colorram_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(flip_screen_x_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(flip_screen_y_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(sidebg_enable_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(palette_bank_w);
|
||||
void swimmer_sh_soundlatch_w(uint8_t data);
|
||||
void yamato_p0_w(uint8_t data);
|
||||
void yamato_p1_w(uint8_t data);
|
||||
uint8_t yamato_p0_r();
|
||||
uint8_t yamato_p1_r();
|
||||
void toprollr_rombank_w(int state);
|
||||
void nmi_mask_w(int state);
|
||||
uint8_t bagmanf_a000_r();
|
||||
void cclimber_colorram_w(offs_t offset, uint8_t data);
|
||||
void flip_screen_x_w(int state);
|
||||
void flip_screen_y_w(int state);
|
||||
void sidebg_enable_w(int state);
|
||||
void palette_bank_w(int state);
|
||||
void vblank_irq(int state);
|
||||
void bagmanf_vblank_irq(int state);
|
||||
|
||||
virtual void machine_start() override;
|
||||
void init_cclimber();
|
||||
void init_yamato();
|
||||
void init_ckongb();
|
||||
void init_toprollr();
|
||||
void init_cclimberj();
|
||||
void init_cannonb2();
|
||||
void init_cannonb();
|
||||
void init_dking();
|
||||
void init_rpatrol();
|
||||
DECLARE_VIDEO_START(cclimber);
|
||||
void cclimber_palette(palette_device &palette) const;
|
||||
DECLARE_VIDEO_START(swimmer);
|
||||
@ -118,24 +136,14 @@ public:
|
||||
void swimmer_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx);
|
||||
void cclimber_decode(const uint8_t convtable[8][16]);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(vblank_irq);
|
||||
DECLARE_WRITE_LINE_MEMBER(bagmanf_vblank_irq);
|
||||
void root(machine_config &config);
|
||||
void swimmer(machine_config &config);
|
||||
void guzzler(machine_config &config);
|
||||
void toprollr(machine_config &config);
|
||||
void cannonb(machine_config &config);
|
||||
void yamato(machine_config &config);
|
||||
void bagmanf(machine_config &config);
|
||||
void cclimber(machine_config &config);
|
||||
void cclimberx(machine_config &config);
|
||||
void ckongb(machine_config &config);
|
||||
void bagmanf_map(address_map &map);
|
||||
void cannonb_map(address_map &map);
|
||||
void cclimber_map(address_map &map);
|
||||
void cclimber_portmap(address_map &map);
|
||||
void decrypted_opcodes_map(address_map &map);
|
||||
void guzzler_map(address_map &map);
|
||||
void rpatrol_map(address_map &map);
|
||||
void rpatrol_portmap(address_map &map);
|
||||
void swimmer_audio_map(address_map &map);
|
||||
void swimmer_audio_portmap(address_map &map);
|
||||
void swimmer_map(address_map &map);
|
||||
|
@ -21,8 +21,7 @@ public:
|
||||
m_fgvideoram(*this, "fgvideoram"),
|
||||
m_bgvideoram(*this, "bgvideoram"),
|
||||
m_bgattribram(*this, "bgattribram"),
|
||||
m_spriteram_1(*this, "spriteram_1"),
|
||||
m_spriteram_2(*this, "spriteram_2"),
|
||||
m_spriteram(*this, "spriteram_%u", 1U),
|
||||
m_shared_ram(*this, "shared_ram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
@ -39,17 +38,22 @@ public:
|
||||
|
||||
void init_srdmissn();
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
DECLARE_WRITE_LINE_MEMBER(nmi_mask_w);
|
||||
DECLARE_WRITE8_MEMBER(coin_counter_w);
|
||||
DECLARE_WRITE8_MEMBER(fgvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(bgvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(bgattribram_w);
|
||||
DECLARE_READ8_MEMBER(spriteram_2_r);
|
||||
DECLARE_WRITE8_MEMBER(scroll_x_lo_w);
|
||||
DECLARE_WRITE8_MEMBER(gfxctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(scroll_y_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
|
||||
void nmi_mask_w(int state);
|
||||
void coin_counter_w(offs_t offset, uint8_t data);
|
||||
void fgvideoram_w(offs_t offset, uint8_t data);
|
||||
void bgvideoram_w(offs_t offset, uint8_t data);
|
||||
void bgattribram_w(offs_t offset, uint8_t data);
|
||||
uint8_t spriteram_2_r(offs_t offset);
|
||||
void scroll_x_lo_w(uint8_t data);
|
||||
void gfxctrl_w(uint8_t data);
|
||||
void scroll_y_w(uint8_t data);
|
||||
void flipscreen_w(int state);
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(vblank_irq);
|
||||
@ -67,31 +71,26 @@ private:
|
||||
void srdmissn_sub_map(address_map &map);
|
||||
void srdmissn_sub_portmap(address_map &map);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
/* memory pointers */
|
||||
// memory pointers
|
||||
required_shared_ptr<uint8_t> m_fgvideoram;
|
||||
required_shared_ptr<uint8_t> m_bgvideoram;
|
||||
required_shared_ptr<uint8_t> m_bgattribram;
|
||||
required_shared_ptr<uint8_t> m_spriteram_1;
|
||||
required_shared_ptr<uint8_t> m_spriteram_2;
|
||||
required_shared_ptr_array<uint8_t, 2> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_shared_ram;
|
||||
|
||||
uint8_t m_nmi_mask;
|
||||
|
||||
/* video-related */
|
||||
// video-related
|
||||
tilemap_t *m_bg_tilemap;
|
||||
tilemap_t *m_fg_tilemap;
|
||||
uint8_t m_scroll_x_lo;
|
||||
uint8_t m_scroll_x_hi;
|
||||
uint8_t m_scroll_y;
|
||||
int m_bgpalbank;
|
||||
int m_fgcolor;
|
||||
uint8_t m_bgpalbank;
|
||||
uint8_t m_fgcolor;
|
||||
const uint8_t *m_color_codes;
|
||||
|
||||
/* devices */
|
||||
// devices
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
@ -318,7 +318,7 @@ void cclimber_state::swimmer_set_background_pen()
|
||||
|
||||
|
||||
|
||||
WRITE8_MEMBER(cclimber_state::cclimber_colorram_w)
|
||||
void cclimber_state::cclimber_colorram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
/* A5 is not connected, there is only 0x200 bytes of RAM */
|
||||
m_colorram[offset & ~0x20] = data;
|
||||
@ -326,25 +326,25 @@ WRITE8_MEMBER(cclimber_state::cclimber_colorram_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::flip_screen_x_w)
|
||||
void cclimber_state::flip_screen_x_w(int state)
|
||||
{
|
||||
m_flip_x = state;
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::flip_screen_y_w)
|
||||
void cclimber_state::flip_screen_y_w(int state)
|
||||
{
|
||||
m_flip_y = state;
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::sidebg_enable_w)
|
||||
void cclimber_state::sidebg_enable_w(int state)
|
||||
{
|
||||
m_swimmer_side_background_enabled = state;
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(cclimber_state::palette_bank_w)
|
||||
void cclimber_state::palette_bank_w(int state)
|
||||
{
|
||||
m_swimmer_palettebank = state;
|
||||
}
|
||||
|
@ -62,46 +62,46 @@ void kyugo_state::video_start()
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE8_MEMBER(kyugo_state::fgvideoram_w)
|
||||
void kyugo_state::fgvideoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_fgvideoram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(kyugo_state::bgvideoram_w)
|
||||
void kyugo_state::bgvideoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bgvideoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(kyugo_state::bgattribram_w)
|
||||
void kyugo_state::bgattribram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bgattribram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(kyugo_state::spriteram_2_r)
|
||||
uint8_t kyugo_state::spriteram_2_r(offs_t offset)
|
||||
{
|
||||
// only the lower nibble is connected
|
||||
return m_spriteram_2[offset] | 0xf0;
|
||||
return m_spriteram[1][offset] | 0xf0;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(kyugo_state::scroll_x_lo_w)
|
||||
void kyugo_state::scroll_x_lo_w(uint8_t data)
|
||||
{
|
||||
m_scroll_x_lo = data;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(kyugo_state::gfxctrl_w)
|
||||
void kyugo_state::gfxctrl_w(uint8_t data)
|
||||
{
|
||||
/* bit 0 is scroll MSB */
|
||||
// bit 0 is scroll MSB
|
||||
m_scroll_x_hi = data & 0x01;
|
||||
|
||||
/* bit 5 is front layer color (Son of Phoenix only) */
|
||||
// bit 5 is front layer color (Son of Phoenix only)
|
||||
if (m_fgcolor != ((data & 0x20) >> 5))
|
||||
{
|
||||
m_fgcolor = (data & 0x20) >> 5;
|
||||
@ -109,7 +109,7 @@ WRITE8_MEMBER(kyugo_state::gfxctrl_w)
|
||||
m_fg_tilemap->mark_all_dirty();
|
||||
}
|
||||
|
||||
/* bit 6 is background palette bank */
|
||||
// bit 6 is background palette bank
|
||||
if (m_bgpalbank != ((data & 0x40) >> 6))
|
||||
{
|
||||
m_bgpalbank = (data & 0x40) >> 6;
|
||||
@ -121,13 +121,13 @@ WRITE8_MEMBER(kyugo_state::gfxctrl_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(kyugo_state::scroll_y_w)
|
||||
void kyugo_state::scroll_y_w(uint8_t data)
|
||||
{
|
||||
m_scroll_y = data;
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(kyugo_state::flipscreen_w)
|
||||
void kyugo_state::flipscreen_w(int state)
|
||||
{
|
||||
flip_screen_set(state);
|
||||
}
|
||||
@ -141,10 +141,10 @@ WRITE_LINE_MEMBER(kyugo_state::flipscreen_w)
|
||||
|
||||
void kyugo_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
/* sprite information is scattered through memory */
|
||||
/* and uses a portion of the text layer memory (outside the visible area) */
|
||||
uint8_t *spriteram_area1 = &m_spriteram_1[0x28];
|
||||
uint8_t *spriteram_area2 = &m_spriteram_2[0x28];
|
||||
// sprite information is scattered through memory
|
||||
// and uses a portion of the text layer memory (outside the visible area)
|
||||
uint8_t *spriteram_area1 = &m_spriteram[0][0x28];
|
||||
uint8_t *spriteram_area2 = &m_spriteram[1][0x28];
|
||||
uint8_t *spriteram_area3 = &m_fgvideoram[0x28];
|
||||
|
||||
int flip = flip_screen();
|
||||
|
Loading…
Reference in New Issue
Block a user