more misc stuff (nw)

This commit is contained in:
Vas Crabb 2018-06-16 17:33:35 +10:00
parent 843484332d
commit 5d4a34c9d2
10 changed files with 148 additions and 145 deletions

View File

@ -2375,7 +2375,7 @@ MACHINE_CONFIG_START(a400_state::a5200)
// FIXME: should there be anything connected where other system have the fdc?
MCFG_DEVICE_MODIFY("pokey")
MCFG_POKEY_SERIN_R_CB(NOOP)
MCFG_POKEY_SERIN_R_CB(CONSTANT(0))
MCFG_POKEY_SEROUT_W_CB(NOOP)
MCFG_POKEY_KEYBOARD_CB(a400_state, a5200_keypads)
MCFG_POKEY_INTERRUPT_CB(a400_state, interrupt_cb)
@ -2389,8 +2389,8 @@ MACHINE_CONFIG_START(a400_state::a5200)
MCFG_ANTIC_GTIA("gtia")
MCFG_DEVICE_MODIFY("pia")
MCFG_PIA_READPA_HANDLER(NOOP) // FIXME: is there anything connected here
MCFG_PIA_READPB_HANDLER(NOOP) // FIXME: is there anything connected here
MCFG_PIA_READPA_HANDLER(CONSTANT(0)) // FIXME: is there anything connected here
MCFG_PIA_READPB_HANDLER(CONSTANT(0)) // FIXME: is there anything connected here
MCFG_PIA_CB2_HANDLER(NOOP) // FIXME: is there anything connected here
MCFG_MACHINE_START_OVERRIDE( a400_state, a5200 )

View File

@ -1192,14 +1192,14 @@ ROM_END
void cubo_state::chip_ram_w8_hack(offs_t byteoffs, uint8_t data)
{
uint16_t word = chip_ram_r(byteoffs);
uint16_t word = read_chip_ram(byteoffs);
if (byteoffs & 1)
word = (word & 0xff00) | data;
else
word = (word & 0x00ff) | (((uint16_t)data) << 8);
chip_ram_w(byteoffs, word);
write_chip_ram(byteoffs, word);
}
void cubo_state::cndypuzl_input_hack()
@ -1207,7 +1207,7 @@ void cubo_state::cndypuzl_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
chip_ram_w(r_A5 - 0x7ebe, 0x0000);
write_chip_ram(r_A5 - 0x7ebe, 0x0000);
}
}
@ -1222,7 +1222,7 @@ void cubo_state::haremchl_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7f00 + 0) << 16) | (chip_ram_r(r_A5 - 0x7f00 + 2));
uint32_t r_A2 = (read_chip_ram(r_A5 - 0x7f00 + 0) << 16) | (read_chip_ram(r_A5 - 0x7f00 + 2));
chip_ram_w8_hack(r_A2 + 0x1f, 0x00);
}
}
@ -1238,7 +1238,7 @@ void cubo_state::lsrquiz_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7fe0 + 0) << 16) | (chip_ram_r(r_A5 - 0x7fe0 + 2));
uint32_t r_A2 = (read_chip_ram(r_A5 - 0x7fe0 + 0) << 16) | (read_chip_ram(r_A5 - 0x7fe0 + 2));
chip_ram_w8_hack(r_A2 + 0x13, 0x00);
}
}
@ -1255,7 +1255,7 @@ void cubo_state::lsrquiz2_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7fdc + 0) << 16) | (chip_ram_r(r_A5 - 0x7fdc + 2));
uint32_t r_A2 = (read_chip_ram(r_A5 - 0x7fdc + 0) << 16) | (read_chip_ram(r_A5 - 0x7fdc + 2));
chip_ram_w8_hack(r_A2 + 0x17, 0x00);
}
}
@ -1271,7 +1271,7 @@ void cubo_state::lasstixx_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
uint32_t r_A2 = (chip_ram_r(r_A5 - 0x7fa2 + 0) << 16) | (chip_ram_r(r_A5 - 0x7fa2 + 2));
uint32_t r_A2 = (read_chip_ram(r_A5 - 0x7fa2 + 0) << 16) | (read_chip_ram(r_A5 - 0x7fa2 + 2));
chip_ram_w8_hack(r_A2 + 0x24, 0x00);
}
}
@ -1287,7 +1287,7 @@ void cubo_state::mgnumber_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes())
{
uint32_t r_A5 = m_maincpu->state_int(M68K_A5);
chip_ram_w(r_A5 - 0x7ed8, 0x0000);
write_chip_ram(r_A5 - 0x7ed8, 0x0000);
}
}

View File

@ -308,59 +308,59 @@ class amiga_state : public driver_device
{
public:
amiga_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_agnus_id(AGNUS_NTSC),
m_denise_id(DENISE),
m_maincpu(*this, "maincpu"),
m_cia_0(*this, "cia_0"),
m_cia_1(*this, "cia_1"),
m_rs232(*this, "rs232"),
m_centronics(*this, "centronics"),
m_paula(*this, "amiga"),
m_fdc(*this, "fdc"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_overlay(*this, "overlay"),
m_input_device(*this, "input"),
m_joy0dat_port(*this, "joy_0_dat"),
m_joy1dat_port(*this, "joy_1_dat"),
m_potgo_port(*this, "potgo"),
m_pot0dat_port(*this, "POT0DAT"),
m_pot1dat_port(*this, "POT1DAT"),
m_joy_ports(*this, "p%u_joy", 1),
m_p1_mouse_x(*this, "p1_mouse_x"),
m_p1_mouse_y(*this, "p1_mouse_y"),
m_p2_mouse_x(*this, "p2_mouse_x"),
m_p2_mouse_y(*this, "p2_mouse_y"),
m_hvpos(*this, "HVPOS"),
m_power_led(*this, "power_led"),
m_chip_ram_mask(0),
m_cia_0_irq(0),
m_cia_1_irq(0),
m_pot0x(0), m_pot1x(0), m_pot0y(0), m_pot1y(0),
m_pot0dat(0x0000),
m_pot1dat(0x0000),
m_centronics_busy(0),
m_centronics_perror(0),
m_centronics_select(0),
m_gayle_reset(false),
m_diw(),
m_diwhigh_valid(false),
m_previous_lof(true),
m_rx_shift(0),
m_tx_shift(0),
m_rx_state(0),
m_tx_state(0),
m_rx_previous(1)
driver_device(mconfig, type, tag),
m_agnus_id(AGNUS_NTSC),
m_denise_id(DENISE),
m_maincpu(*this, "maincpu"),
m_cia_0(*this, "cia_0"),
m_cia_1(*this, "cia_1"),
m_rs232(*this, "rs232"),
m_centronics(*this, "centronics"),
m_paula(*this, "amiga"),
m_fdc(*this, "fdc"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_overlay(*this, "overlay"),
m_input_device(*this, "input"),
m_joy0dat_port(*this, "joy_0_dat"),
m_joy1dat_port(*this, "joy_1_dat"),
m_potgo_port(*this, "potgo"),
m_pot0dat_port(*this, "POT0DAT"),
m_pot1dat_port(*this, "POT1DAT"),
m_joy_ports(*this, "p%u_joy", 1),
m_p1_mouse_x(*this, "p1_mouse_x"),
m_p1_mouse_y(*this, "p1_mouse_y"),
m_p2_mouse_x(*this, "p2_mouse_x"),
m_p2_mouse_y(*this, "p2_mouse_y"),
m_hvpos(*this, "HVPOS"),
m_power_led(*this, "power_led"),
m_chip_ram_mask(0),
m_cia_0_irq(0),
m_cia_1_irq(0),
m_pot0x(0), m_pot1x(0), m_pot0y(0), m_pot1y(0),
m_pot0dat(0x0000),
m_pot1dat(0x0000),
m_centronics_busy(0),
m_centronics_perror(0),
m_centronics_select(0),
m_gayle_reset(false),
m_diw(),
m_diwhigh_valid(false),
m_previous_lof(true),
m_rx_shift(0),
m_tx_shift(0),
m_rx_state(0),
m_tx_state(0),
m_rx_previous(1)
{ }
/* chip RAM access */
uint16_t chip_ram_r(offs_t byteoffs)
uint16_t read_chip_ram(offs_t byteoffs)
{
return EXPECTED(byteoffs < m_chip_ram.bytes()) ? m_chip_ram.read(byteoffs >> 1) : 0xffff;
}
void chip_ram_w(offs_t byteoffs, uint16_t data)
void write_chip_ram(offs_t byteoffs, uint16_t data)
{
if (EXPECTED(byteoffs < m_chip_ram.bytes()))
m_chip_ram.write(byteoffs >> 1, data);
@ -368,13 +368,13 @@ public:
DECLARE_READ16_MEMBER(chip_ram_r)
{
return chip_ram_r(offset & ~1) & mem_mask;
return read_chip_ram(offset & ~1) & mem_mask;
}
DECLARE_WRITE16_MEMBER(chip_ram_w)
{
uint16_t val = chip_ram_r(offset & ~1) & ~mem_mask;
chip_ram_w(offset & ~1, val | data);
uint16_t val = read_chip_ram(offset & ~1) & ~mem_mask;
write_chip_ram(offset & ~1, val | data);
}
/* sprite states */

View File

@ -119,21 +119,21 @@ class apollo_ni;
class apollo_state : public driver_device
{
public:
apollo_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, MAINCPU),
m_messram_ptr(*this, "messram"),
m_dma8237_1(*this, APOLLO_DMA1_TAG),
m_dma8237_2(*this, APOLLO_DMA2_TAG),
m_pic8259_master(*this, APOLLO_PIC1_TAG),
m_pic8259_slave(*this, APOLLO_PIC2_TAG),
m_ptm(*this, APOLLO_PTM_TAG),
m_sio(*this, APOLLO_SIO_TAG),
m_sio2(*this, APOLLO_SIO2_TAG),
m_rtc(*this, APOLLO_RTC_TAG),
m_node_id(*this, APOLLO_NI_TAG),
m_isa(*this, APOLLO_ISA_TAG)
{ }
apollo_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, MAINCPU),
m_messram_ptr(*this, "messram"),
m_dma8237_1(*this, APOLLO_DMA1_TAG),
m_dma8237_2(*this, APOLLO_DMA2_TAG),
m_pic8259_master(*this, APOLLO_PIC1_TAG),
m_pic8259_slave(*this, APOLLO_PIC2_TAG),
m_ptm(*this, APOLLO_PTM_TAG),
m_sio(*this, APOLLO_SIO_TAG),
m_sio2(*this, APOLLO_SIO2_TAG),
m_rtc(*this, APOLLO_RTC_TAG),
m_node_id(*this, APOLLO_NI_TAG),
m_isa(*this, APOLLO_ISA_TAG)
{ }
required_device<m68000_base_device> m_maincpu;
required_shared_ptr<uint32_t> m_messram_ptr;

View File

@ -5,6 +5,10 @@
Atari System 1 hardware
*************************************************************************/
#ifndef MAME_INCLUDES_ATARISY1_H
#define MAME_INCLUDES_ATARISY1_H
#pragma once
#include "machine/74259.h"
#include "machine/adc0808.h"
@ -19,20 +23,21 @@ class atarisy1_state : public atarigen_state
{
public:
atarisy1_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_audiocpu(*this, "audiocpu"),
m_soundcomm(*this, "soundcomm"),
m_bankselect(*this, "bankselect"),
m_mob(*this, "mob"),
m_adc(*this, "adc"),
m_ajsint(*this, "ajsint"),
m_playfield_tilemap(*this, "playfield"),
m_alpha_tilemap(*this, "alpha"),
m_yscroll_reset_timer(*this, "yreset_timer"),
m_scanline_timer(*this, "scan_timer"),
m_int3off_timer(*this, "int3off_timer"),
m_tms(*this, "tms"),
m_outlatch(*this, "outlatch") { }
: atarigen_state(mconfig, type, tag)
, m_audiocpu(*this, "audiocpu")
, m_soundcomm(*this, "soundcomm")
, m_bankselect(*this, "bankselect")
, m_mob(*this, "mob")
, m_adc(*this, "adc")
, m_ajsint(*this, "ajsint")
, m_playfield_tilemap(*this, "playfield")
, m_alpha_tilemap(*this, "alpha")
, m_yscroll_reset_timer(*this, "yreset_timer")
, m_scanline_timer(*this, "scan_timer")
, m_int3off_timer(*this, "int3off_timer")
, m_tms(*this, "tms")
, m_outlatch(*this, "outlatch")
{ }
required_device<cpu_device> m_audiocpu;
required_device<atari_sound_comm_device> m_soundcomm;
@ -118,3 +123,5 @@ public:
void main_map(address_map &map);
void sound_map(address_map &map);
};
#endif // MAME_INCLUDES_ATARISY1_H

View File

@ -5,6 +5,10 @@
Atari Centipede hardware
*************************************************************************/
#ifndef MAME_INCLUDES_CENTIPED_H
#define MAME_INCLUDES_CENTIPED_H
#pragma once
#include "machine/eepromser.h"
#include "machine/timer.h"
@ -15,8 +19,8 @@
class centiped_state : public driver_device
{
public:
centiped_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
centiped_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_rambase(*this, "rambase"),
m_videoram(*this, "videoram"),
m_spriteram(*this, "spriteram"),
@ -27,7 +31,8 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_aysnd(*this, "aysnd") { }
m_aysnd(*this, "aysnd")
{ }
void centiped_base(machine_config &config);
void milliped(machine_config &config);
@ -135,3 +140,5 @@ private:
void multiped_map(address_map &map);
void warlords_map(address_map &map);
};
#endif // MAME_INCLUDES_CENTIPED_H

View File

@ -465,21 +465,21 @@ uint32_t amiga_state::blit_ascending()
if (CUSTOM_REG(REG_BLTCON0) & 0x0800)
{
//CUSTOM_REG(REG_BLTADAT) = m_maincpu->space(AS_PROGRAM).read_word(CUSTOM_REG_LONG(REG_BLTAPTH));
CUSTOM_REG(REG_BLTADAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTAPTH));
CUSTOM_REG(REG_BLTADAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTAPTH));
CUSTOM_REG_LONG(REG_BLTAPTH) += 2;
}
/* fetch data for B */
if (CUSTOM_REG(REG_BLTCON0) & 0x0400)
{
CUSTOM_REG(REG_BLTBDAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTBPTH));
CUSTOM_REG(REG_BLTBDAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTBPTH));
CUSTOM_REG_LONG(REG_BLTBPTH) += 2;
}
/* fetch data for C */
if (CUSTOM_REG(REG_BLTCON0) & 0x0200)
{
CUSTOM_REG(REG_BLTCDAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTCPTH));
CUSTOM_REG(REG_BLTCDAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTCPTH));
CUSTOM_REG_LONG(REG_BLTCPTH) += 2;
}
@ -535,7 +535,7 @@ uint32_t amiga_state::blit_ascending()
/* write to the destination */
if (CUSTOM_REG(REG_BLTCON0) & 0x0100)
{
chip_ram_w(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
write_chip_ram(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
CUSTOM_REG_LONG(REG_BLTDPTH) += 2;
}
}
@ -590,21 +590,21 @@ uint32_t amiga_state::blit_descending()
/* fetch data for A */
if (CUSTOM_REG(REG_BLTCON0) & 0x0800)
{
CUSTOM_REG(REG_BLTADAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTAPTH));
CUSTOM_REG(REG_BLTADAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTAPTH));
CUSTOM_REG_LONG(REG_BLTAPTH) -= 2;
}
/* fetch data for B */
if (CUSTOM_REG(REG_BLTCON0) & 0x0400)
{
CUSTOM_REG(REG_BLTBDAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTBPTH));
CUSTOM_REG(REG_BLTBDAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTBPTH));
CUSTOM_REG_LONG(REG_BLTBPTH) -= 2;
}
/* fetch data for C */
if (CUSTOM_REG(REG_BLTCON0) & 0x0200)
{
CUSTOM_REG(REG_BLTCDAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTCPTH));
CUSTOM_REG(REG_BLTCDAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTCPTH));
CUSTOM_REG_LONG(REG_BLTCPTH) -= 2;
}
@ -677,7 +677,7 @@ uint32_t amiga_state::blit_descending()
/* write to the destination */
if (CUSTOM_REG(REG_BLTCON0) & 0x0100)
{
chip_ram_w(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
write_chip_ram(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
CUSTOM_REG_LONG(REG_BLTDPTH) -= 2;
}
}
@ -769,7 +769,7 @@ uint32_t amiga_state::blit_line()
/* fetch data for C */
if (CUSTOM_REG(REG_BLTCON0) & 0x0200)
CUSTOM_REG(REG_BLTCDAT) = chip_ram_r(CUSTOM_REG_LONG(REG_BLTCPTH));
CUSTOM_REG(REG_BLTCDAT) = read_chip_ram(CUSTOM_REG_LONG(REG_BLTCPTH));
/* rotate the A data according to the shift */
tempa = CUSTOM_REG(REG_BLTADAT) >> (CUSTOM_REG(REG_BLTCON0) >> 12);
@ -820,7 +820,7 @@ uint32_t amiga_state::blit_line()
blitsum |= tempd;
/* write to the destination */
chip_ram_w(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
write_chip_ram(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
/* always increment along the major axis */
if (CUSTOM_REG(REG_BLTCON1) & 0x0010)

View File

@ -1224,18 +1224,7 @@ const int16_t kaneko_calc3_device::s_keydata[] = {
uint8_t kaneko_calc3_device::shift_bits(uint8_t dat, int bits)
{
switch (bits & 7)
{
default:
case 0: return bitswap<8>(dat, 7,6,5,4,3,2,1,0);
case 1: return bitswap<8>(dat, 6,5,4,3,2,1,0,7);
case 2: return bitswap<8>(dat, 5,4,3,2,1,0,7,6);
case 3: return bitswap<8>(dat, 4,3,2,1,0,7,6,5);
case 4: return bitswap<8>(dat, 3,2,1,0,7,6,5,4);
case 5: return bitswap<8>(dat, 2,1,0,7,6,5,4,3);
case 6: return bitswap<8>(dat, 1,0,7,6,5,4,3,2);
case 7: return bitswap<8>(dat, 0,7,6,5,4,3,2,1);
}
return (dat << (bits & 7)) | (dat >> (8 - (bits & 7)));
}
int kaneko_calc3_device::decompress_table(int tabnum, uint8_t* dstram, int dstoffset)
@ -1433,7 +1422,7 @@ int kaneko_calc3_device::decompress_table(int tabnum, uint8_t* dstram, int dstof
}
}
if(local_counter > 1)
if (local_counter > 1)
{
space.write_byte(dstoffset + i, dat);

View File

@ -250,12 +250,12 @@ int amiga_state::copper_execute_next(int xpos)
}
/* fetch the first data word */
word0 = chip_ram_r(m_copper_pc);
word0 = read_chip_ram(m_copper_pc);
m_copper_pc += 2;
xpos += COPPER_CYCLES_TO_PIXELS(1);
/* fetch the second data word */
word1 = chip_ram_r(m_copper_pc);
word1 = read_chip_ram(m_copper_pc);
m_copper_pc += 2;
xpos += COPPER_CYCLES_TO_PIXELS(1);
@ -387,8 +387,8 @@ void amiga_state::sprite_enable_comparitor(int which, int enable)
void amiga_state::fetch_sprite_data(int scanline, int sprite)
{
CUSTOM_REG(REG_SPR0DATA + 4 * sprite) = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
CUSTOM_REG(REG_SPR0DATB + 4 * sprite) = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG(REG_SPR0DATA + 4 * sprite) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
CUSTOM_REG(REG_SPR0DATB + 4 * sprite) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X\n", scanline, sprite, CUSTOM_REG(REG_SPR0DATA + 4 * sprite), CUSTOM_REG(REG_SPR0DATB + 4 * sprite));
}
@ -417,8 +417,8 @@ void amiga_state::update_sprite_dma(int scanline)
m_sprite_dma_reload_mask &= ~bitmask;
/* fetch data into the control words */
CUSTOM_REG(REG_SPR0POS + 4 * num) = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
CUSTOM_REG(REG_SPR0CTL + 4 * num) = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
CUSTOM_REG(REG_SPR0POS + 4 * num) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
CUSTOM_REG(REG_SPR0CTL + 4 * num) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4;
if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: pos=%04X ctl=%04X\n", scanline, num, CUSTOM_REG(REG_SPR0POS + 4 * num), CUSTOM_REG(REG_SPR0CTL + 4 * num));
}
@ -592,7 +592,7 @@ uint8_t amiga_state::assemble_even_bitplanes(int planes, int ebitoffs)
void amiga_state::fetch_bitplane_data(int plane)
{
CUSTOM_REG(REG_BPL1DAT + plane) = chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
CUSTOM_REG(REG_BPL1DAT + plane) = read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
}

View File

@ -97,35 +97,35 @@ void amiga_state::aga_fetch_sprite_data(int scanline, int sprite)
switch((CUSTOM_REG(REG_FMODE) >> 2) & 0x03)
{
case 0:
m_aga_sprdata[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdata[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprite_fetched_words = 1;
if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X\n", scanline, sprite, m_aga_sprdata[sprite][0], m_aga_sprdatb[sprite][0]);
break;
case 1:
case 2:
m_aga_sprdata[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdata[sprite][1] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdata[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdata[sprite][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprdatb[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][1] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdatb[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprite_fetched_words = 2;
if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X %04X-%04X\n", scanline, sprite, m_aga_sprdata[sprite][0], m_aga_sprdatb[sprite][0], m_aga_sprdata[sprite][1], m_aga_sprdatb[sprite][1] );
break;
case 3:
m_aga_sprdata[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdata[sprite][1] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdata[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdata[sprite][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprdata[sprite][2] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdata[sprite][3] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdata[sprite][2] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdata[sprite][3] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprdatb[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][1] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdatb[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprdatb[sprite][2] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][3] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
m_aga_sprdatb[sprite][2] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
m_aga_sprdatb[sprite][3] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprite_fetched_words = 4;
if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X %04X-%04X %04X-%04X %04X-%04X\n",
@ -163,8 +163,8 @@ void amiga_state::aga_update_sprite_dma(int scanline)
m_sprite_dma_reload_mask &= ~bitmask;
/* fetch data into the control words */
CUSTOM_REG(REG_SPR0POS + 4 * num) = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
CUSTOM_REG(REG_SPR0CTL + 4 * num) = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
CUSTOM_REG(REG_SPR0POS + 4 * num) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
CUSTOM_REG(REG_SPR0CTL + 4 * num) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4;
/* fetch additional words */
switch((CUSTOM_REG(REG_FMODE) >> 2) & 0x03)
@ -374,24 +374,24 @@ void amiga_state::aga_fetch_bitplane_data(int plane)
switch (CUSTOM_REG(REG_FMODE) & 0x03)
{
case 0:
aga_bpldat[plane] = (uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
aga_bpldat[plane] = (uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
break;
case 1:
case 2:
aga_bpldat[plane] = (uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 16;
aga_bpldat[plane] = (uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 16;
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
aga_bpldat[plane] |= ((uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)));
aga_bpldat[plane] |= ((uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)));
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
break;
case 3:
aga_bpldat[plane] = (uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 48;
aga_bpldat[plane] = (uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 48;
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
aga_bpldat[plane] |= ((uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 32;
aga_bpldat[plane] |= ((uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 32;
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
aga_bpldat[plane] |= ((uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 16;
aga_bpldat[plane] |= ((uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 16;
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
aga_bpldat[plane] |= (uint64_t)chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
aga_bpldat[plane] |= (uint64_t)read_chip_ram(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
break;
}