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? // FIXME: should there be anything connected where other system have the fdc?
MCFG_DEVICE_MODIFY("pokey") 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_SEROUT_W_CB(NOOP)
MCFG_POKEY_KEYBOARD_CB(a400_state, a5200_keypads) MCFG_POKEY_KEYBOARD_CB(a400_state, a5200_keypads)
MCFG_POKEY_INTERRUPT_CB(a400_state, interrupt_cb) MCFG_POKEY_INTERRUPT_CB(a400_state, interrupt_cb)
@ -2389,8 +2389,8 @@ MACHINE_CONFIG_START(a400_state::a5200)
MCFG_ANTIC_GTIA("gtia") MCFG_ANTIC_GTIA("gtia")
MCFG_DEVICE_MODIFY("pia") MCFG_DEVICE_MODIFY("pia")
MCFG_PIA_READPA_HANDLER(NOOP) // FIXME: is there anything connected here MCFG_PIA_READPA_HANDLER(CONSTANT(0)) // FIXME: is there anything connected here
MCFG_PIA_READPB_HANDLER(NOOP) // 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_PIA_CB2_HANDLER(NOOP) // FIXME: is there anything connected here
MCFG_MACHINE_START_OVERRIDE( a400_state, a5200 ) 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) 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) if (byteoffs & 1)
word = (word & 0xff00) | data; word = (word & 0xff00) | data;
else else
word = (word & 0x00ff) | (((uint16_t)data) << 8); word = (word & 0x00ff) | (((uint16_t)data) << 8);
chip_ram_w(byteoffs, word); write_chip_ram(byteoffs, word);
} }
void cubo_state::cndypuzl_input_hack() void cubo_state::cndypuzl_input_hack()
@ -1207,7 +1207,7 @@ void cubo_state::cndypuzl_input_hack()
if (m_maincpu->pc() < m_chip_ram.bytes()) if (m_maincpu->pc() < m_chip_ram.bytes())
{ {
uint32_t r_A5 = m_maincpu->state_int(M68K_A5); 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()) if (m_maincpu->pc() < m_chip_ram.bytes())
{ {
uint32_t r_A5 = m_maincpu->state_int(M68K_A5); 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); 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()) if (m_maincpu->pc() < m_chip_ram.bytes())
{ {
uint32_t r_A5 = m_maincpu->state_int(M68K_A5); 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); 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()) if (m_maincpu->pc() < m_chip_ram.bytes())
{ {
uint32_t r_A5 = m_maincpu->state_int(M68K_A5); 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); 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()) if (m_maincpu->pc() < m_chip_ram.bytes())
{ {
uint32_t r_A5 = m_maincpu->state_int(M68K_A5); 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); 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()) if (m_maincpu->pc() < m_chip_ram.bytes())
{ {
uint32_t r_A5 = m_maincpu->state_int(M68K_A5); 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

@ -355,12 +355,12 @@ public:
{ } { }
/* chip RAM access */ /* 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; 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())) if (EXPECTED(byteoffs < m_chip_ram.bytes()))
m_chip_ram.write(byteoffs >> 1, data); m_chip_ram.write(byteoffs >> 1, data);
@ -368,13 +368,13 @@ public:
DECLARE_READ16_MEMBER(chip_ram_r) 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) DECLARE_WRITE16_MEMBER(chip_ram_w)
{ {
uint16_t val = chip_ram_r(offset & ~1) & ~mem_mask; uint16_t val = read_chip_ram(offset & ~1) & ~mem_mask;
chip_ram_w(offset & ~1, val | data); write_chip_ram(offset & ~1, val | data);
} }
/* sprite states */ /* sprite states */

View File

@ -119,8 +119,8 @@ class apollo_ni;
class apollo_state : public driver_device class apollo_state : public driver_device
{ {
public: public:
apollo_state(const machine_config &mconfig, device_type type, const char *tag) apollo_state(const machine_config &mconfig, device_type type, const char *tag) :
: driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, MAINCPU), m_maincpu(*this, MAINCPU),
m_messram_ptr(*this, "messram"), m_messram_ptr(*this, "messram"),
m_dma8237_1(*this, APOLLO_DMA1_TAG), m_dma8237_1(*this, APOLLO_DMA1_TAG),

View File

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

View File

@ -5,6 +5,10 @@
Atari Centipede hardware Atari Centipede hardware
*************************************************************************/ *************************************************************************/
#ifndef MAME_INCLUDES_CENTIPED_H
#define MAME_INCLUDES_CENTIPED_H
#pragma once
#include "machine/eepromser.h" #include "machine/eepromser.h"
#include "machine/timer.h" #include "machine/timer.h"
@ -15,8 +19,8 @@
class centiped_state : public driver_device class centiped_state : public driver_device
{ {
public: public:
centiped_state(const machine_config &mconfig, device_type type, const char *tag) centiped_state(const machine_config &mconfig, device_type type, const char *tag) :
: driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_rambase(*this, "rambase"), m_rambase(*this, "rambase"),
m_videoram(*this, "videoram"), m_videoram(*this, "videoram"),
m_spriteram(*this, "spriteram"), m_spriteram(*this, "spriteram"),
@ -27,7 +31,8 @@ public:
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"), m_screen(*this, "screen"),
m_palette(*this, "palette"), m_palette(*this, "palette"),
m_aysnd(*this, "aysnd") { } m_aysnd(*this, "aysnd")
{ }
void centiped_base(machine_config &config); void centiped_base(machine_config &config);
void milliped(machine_config &config); void milliped(machine_config &config);
@ -135,3 +140,5 @@ private:
void multiped_map(address_map &map); void multiped_map(address_map &map);
void warlords_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) 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) = 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; CUSTOM_REG_LONG(REG_BLTAPTH) += 2;
} }
/* fetch data for B */ /* fetch data for B */
if (CUSTOM_REG(REG_BLTCON0) & 0x0400) 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; CUSTOM_REG_LONG(REG_BLTBPTH) += 2;
} }
/* fetch data for C */ /* fetch data for C */
if (CUSTOM_REG(REG_BLTCON0) & 0x0200) 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; CUSTOM_REG_LONG(REG_BLTCPTH) += 2;
} }
@ -535,7 +535,7 @@ uint32_t amiga_state::blit_ascending()
/* write to the destination */ /* write to the destination */
if (CUSTOM_REG(REG_BLTCON0) & 0x0100) 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; CUSTOM_REG_LONG(REG_BLTDPTH) += 2;
} }
} }
@ -590,21 +590,21 @@ uint32_t amiga_state::blit_descending()
/* fetch data for A */ /* fetch data for A */
if (CUSTOM_REG(REG_BLTCON0) & 0x0800) 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; CUSTOM_REG_LONG(REG_BLTAPTH) -= 2;
} }
/* fetch data for B */ /* fetch data for B */
if (CUSTOM_REG(REG_BLTCON0) & 0x0400) 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; CUSTOM_REG_LONG(REG_BLTBPTH) -= 2;
} }
/* fetch data for C */ /* fetch data for C */
if (CUSTOM_REG(REG_BLTCON0) & 0x0200) 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; CUSTOM_REG_LONG(REG_BLTCPTH) -= 2;
} }
@ -677,7 +677,7 @@ uint32_t amiga_state::blit_descending()
/* write to the destination */ /* write to the destination */
if (CUSTOM_REG(REG_BLTCON0) & 0x0100) 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; CUSTOM_REG_LONG(REG_BLTDPTH) -= 2;
} }
} }
@ -769,7 +769,7 @@ uint32_t amiga_state::blit_line()
/* fetch data for C */ /* fetch data for C */
if (CUSTOM_REG(REG_BLTCON0) & 0x0200) 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 */ /* rotate the A data according to the shift */
tempa = CUSTOM_REG(REG_BLTADAT) >> (CUSTOM_REG(REG_BLTCON0) >> 12); tempa = CUSTOM_REG(REG_BLTADAT) >> (CUSTOM_REG(REG_BLTCON0) >> 12);
@ -820,7 +820,7 @@ uint32_t amiga_state::blit_line()
blitsum |= tempd; blitsum |= tempd;
/* write to the destination */ /* 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 */ /* always increment along the major axis */
if (CUSTOM_REG(REG_BLTCON1) & 0x0010) 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) uint8_t kaneko_calc3_device::shift_bits(uint8_t dat, int bits)
{ {
switch (bits & 7) return (dat << (bits & 7)) | (dat >> (8 - (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);
}
} }
int kaneko_calc3_device::decompress_table(int tabnum, uint8_t* dstram, int dstoffset) 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); 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 */ /* fetch the first data word */
word0 = chip_ram_r(m_copper_pc); word0 = read_chip_ram(m_copper_pc);
m_copper_pc += 2; m_copper_pc += 2;
xpos += COPPER_CYCLES_TO_PIXELS(1); xpos += COPPER_CYCLES_TO_PIXELS(1);
/* fetch the second data word */ /* fetch the second data word */
word1 = chip_ram_r(m_copper_pc); word1 = read_chip_ram(m_copper_pc);
m_copper_pc += 2; m_copper_pc += 2;
xpos += COPPER_CYCLES_TO_PIXELS(1); 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) 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_SPR0DATA + 4 * sprite) = read_chip_ram(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_SPR0DATB + 4 * sprite) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; 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)); 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; m_sprite_dma_reload_mask &= ~bitmask;
/* fetch data into the control words */ /* 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_SPR0POS + 4 * num) = read_chip_ram(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_SPR0CTL + 4 * num) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4; 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)); 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) 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; 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) switch((CUSTOM_REG(REG_FMODE) >> 2) & 0x03)
{ {
case 0: case 0:
m_aga_sprdata[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0); m_aga_sprdata[sprite][0] = read_chip_ram(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_sprdatb[sprite][0] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprite_fetched_words = 1; 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]); 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; break;
case 1: case 1:
case 2: case 2:
m_aga_sprdata[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0); m_aga_sprdata[sprite][0] = read_chip_ram(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][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; 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][0] = read_chip_ram(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][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprite_fetched_words = 2; 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] ); 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; break;
case 3: case 3:
m_aga_sprdata[sprite][0] = chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0); m_aga_sprdata[sprite][0] = read_chip_ram(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][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; 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][2] = read_chip_ram(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][3] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; 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][0] = read_chip_ram(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][1] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; 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][2] = read_chip_ram(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][3] = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4; CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
m_aga_sprite_fetched_words = 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", 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; m_sprite_dma_reload_mask &= ~bitmask;
/* fetch data into the control words */ /* 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_SPR0POS + 4 * num) = read_chip_ram(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_SPR0CTL + 4 * num) = read_chip_ram(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4; CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4;
/* fetch additional words */ /* fetch additional words */
switch((CUSTOM_REG(REG_FMODE) >> 2) & 0x03) 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) switch (CUSTOM_REG(REG_FMODE) & 0x03)
{ {
case 0: 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; CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
break; break;
case 1: case 1:
case 2: 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; 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; CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
break; break;
case 3: 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; 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; 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; 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; CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
break; break;
} }