mirror of
https://github.com/holub/mame
synced 2025-05-29 17:13:05 +03:00
rltennis.cpp : Fix device finders, Minor cleanups (#3637)
* rltennis.cpp : Fix device finders, Minor cleanups * rltennis.cpp : Minor fix
This commit is contained in:
parent
f94462201e
commit
dfb5f8e1c5
@ -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) )
|
||||
|
@ -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);
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user