rltennis.cpp : Fix device finders, Minor cleanups (#3637)

* rltennis.cpp : Fix device finders, Minor cleanups

* rltennis.cpp : Minor fix
This commit is contained in:
cam900 2018-06-06 23:26:09 +09:00 committed by Vas Crabb
parent f94462201e
commit dfb5f8e1c5
3 changed files with 22 additions and 25 deletions

View File

@ -141,14 +141,14 @@ TIMER_CALLBACK_MEMBER(rltennis_state::sample_player)
{
if((m_dac_counter&0x7ff) == 0x7ff) /* reload top address bits */
{
m_sample_rom_offset_1=(( m_data740000 >> m_offset_shift ) & 0xff )<<11;
m_sample_rom_offset_2=(( m_data760000 >> m_offset_shift ) & 0xff )<<11;
m_sample_rom_offset[0]=(( m_data740000 >> m_offset_shift ) & 0xff )<<11;
m_sample_rom_offset[1]=(( m_data760000 >> m_offset_shift ) & 0xff )<<11;
m_offset_shift^=8; /* switch between MSB and LSB */
}
++m_dac_counter; /* update low address bits */
m_dac1->write(m_samples_1[m_sample_rom_offset_1 + (m_dac_counter & 0x7ff)]);
m_dac2->write(m_samples_2[m_sample_rom_offset_2 + (m_dac_counter & 0x7ff)]);
m_dac[0]->write(m_samples[0][m_sample_rom_offset[0] + (m_dac_counter & 0x7ff)]);
m_dac[1]->write(m_samples[1][m_sample_rom_offset[1] + (m_dac_counter & 0x7ff)]);
m_timer->adjust(attotime::from_hz( RLT_TIMER_FREQ ));
}
@ -161,16 +161,12 @@ INTERRUPT_GEN_MEMBER(rltennis_state::interrupt)
void rltennis_state::machine_start()
{
m_samples_1 = memregion("samples1")->base();
m_samples_2 = memregion("samples2")->base();
m_gfx = memregion("gfx1")->base();
m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(rltennis_state::sample_player),this));
save_item(NAME(m_data760000));
save_item(NAME(m_data740000));
save_item(NAME(m_dac_counter));
save_item(NAME(m_sample_rom_offset_1));
save_item(NAME(m_sample_rom_offset_2));
save_item(NAME(m_sample_rom_offset));
save_item(NAME(m_offset_shift));
save_item(NAME(m_unk_counter));
}
@ -219,7 +215,7 @@ ROM_START( rltennis )
ROM_LOAD16_BYTE( "tennis_1.u12", 0x00001, 0x80000, CRC(2ded10d7) SHA1(cca1e858c9c759ef5c0aca6ee50d23d5d532534c) )
ROM_LOAD16_BYTE( "tennis_2.u19", 0x00000, 0x80000, CRC(a0dbd2ed) SHA1(8db7dbb6a36fd0fb382a4938d7eba1f7662aa672) )
ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASE00 )
ROM_REGION( 0x1000000, "gfx", ROMREGION_ERASE00 )
ROM_LOAD( "tennis_5.u33", 0x000000, 0x80000, CRC(067a2e4b) SHA1(ab5a227de2b0c51b17aeca68c8af1bf224904ac8) )
ROM_LOAD( "tennis_6.u34", 0x080000, 0x80000, CRC(901df2c1) SHA1(7e57d7c7e281ddc02a3e34178d3e471bd8e1d572) )
ROM_LOAD( "tennis_7.u35", 0x100000, 0x80000, CRC(8d70fb37) SHA1(250c4c3d32e5a7e17413ee41e1abccb0492b63fd) )

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Tomasz Slanina
#include "sound/dac.h"
#include <algorithm>
#define RLT_NUM_BLITTER_REGS 8
#define RLT_NUM_BITMAPS 8
@ -9,30 +9,31 @@
class rltennis_state : public driver_device
{
public:
rltennis_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
rltennis_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_dac1(*this, "dac1"),
m_dac2(*this, "dac2"),
m_data760000(0), m_data740000(0), m_dac_counter(0), m_sample_rom_offset_1(0), m_sample_rom_offset_2(0),
m_offset_shift(0) { }
m_dac(*this, "dac%u", 1U),
m_samples(*this, "samples%u", 1U),
m_gfx(*this, "gfx"),
m_data760000(0), m_data740000(0), m_dac_counter(0),
m_offset_shift(0)
{
std::fill(std::begin(m_sample_rom_offset), std::end(m_sample_rom_offset), 0);
}
required_device<cpu_device> m_maincpu;
required_device<dac_byte_interface> m_dac1;
required_device<dac_byte_interface> m_dac2;
required_device_array<dac_byte_interface, 2> m_dac;
required_region_ptr_array<uint8_t, 2> m_samples;
required_region_ptr<uint8_t> m_gfx;
uint16_t m_blitter[RLT_NUM_BLITTER_REGS];
int32_t m_data760000;
int32_t m_data740000;
int32_t m_dac_counter;
int32_t m_sample_rom_offset_1;
int32_t m_sample_rom_offset_2;
int32_t m_sample_rom_offset[2];
int32_t m_offset_shift;
int32_t m_unk_counter;
std::unique_ptr<bitmap_ind16> m_tmp_bitmap[RLT_NUM_BITMAPS];
uint8_t *m_samples_1;
uint8_t *m_samples_2;
uint8_t *m_gfx;
emu_timer *m_timer;
DECLARE_READ16_MEMBER(io_r);

View File

@ -208,7 +208,7 @@ WRITE16_MEMBER(rltennis_state::blitter_w)
int address=yy*512+xx;
int pix = m_gfx[ address & 0x0ffffff ];
int pix = m_gfx[ address & m_gfx.mask() ];
int screen_x=(x&0xff)+((m_blitter[BLT_FLAGS] & BLTFLAG_DST_LR )?256:0);
if((pix || force_blit)&& screen_x >0 && y >0 && screen_x < 512 && y < 256 )