diff --git a/hash/archimedes.xml b/hash/archimedes.xml index cda7bfce63f..db823474f83 100644 --- a/hash/archimedes.xml +++ b/hash/archimedes.xml @@ -1638,9 +1638,9 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - - - Jahangir Khan Squash + + + Jahangir Khan's World Championship Squash 1991 Krisalis @@ -1821,7 +1821,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - + Lemmings 2: The Tribes 1994 @@ -1853,7 +1853,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - + Lotus Turbo Challenge 2 1992 @@ -1952,7 +1952,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - + Manchester United Europe 1991 @@ -2044,7 +2044,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - + Nebulus 1992 @@ -2443,7 +2443,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - + Rotor (Patched RiscOS3) 1989 @@ -2565,7 +2565,7 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - + Small 1993 @@ -2954,8 +2954,8 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - - + + The Wimp Game 1990 Fourth Dimension @@ -2967,8 +2967,8 @@ Zelanites: The Onslaught by Micro Power (RiscOS2) - - + + The Wimp Game [cracked] 1990 Fourth Dimension diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua index 726d92510c5..96598c3aab8 100644 --- a/scripts/src/machine.lua +++ b/scripts/src/machine.lua @@ -4162,3 +4162,14 @@ if (MACHINES["VRENDER0"]~=null) then } end +-------------------------------------------------- +-- +--@src/devices/machine/acorn_vidc.h,MACHINES["ACORN_VIDC10"] = true +-------------------------------------------------- + +if (MACHINES["ACORN_VIDC10"]~=null) then + files { + MAME_DIR .. "src/devices/machine/acorn_vidc.cpp", + MAME_DIR .. "src/devices/machine/acorn_vidc.h", + } +end diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index b2119cd29e0..6c746f1b680 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -982,7 +982,6 @@ files { MAME_DIR .. "src/mame/drivers/aristmk5.cpp", MAME_DIR .. "src/mame/machine/archimds.cpp", MAME_DIR .. "src/mame/includes/archimds.h", - MAME_DIR .. "src/mame/video/archimds.cpp", } createMAMEProjects(_target, _subtarget, "adp") diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 3d5462490b7..0e809ed1c3a 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -1347,7 +1347,6 @@ if (_subtarget=="mess") then createMESSProjects(_target, _subtarget, "mameshared") files { MAME_DIR .. "src/mame/machine/archimds.cpp", - MAME_DIR .. "src/mame/video/archimds.cpp", MAME_DIR .. "src/mame/machine/amiga.cpp", MAME_DIR .. "src/mame/video/amiga.cpp", MAME_DIR .. "src/mame/video/amigaaga.cpp", diff --git a/src/devices/machine/acorn_vidc.cpp b/src/devices/machine/acorn_vidc.cpp new file mode 100644 index 00000000000..261ac48fd96 --- /dev/null +++ b/src/devices/machine/acorn_vidc.cpp @@ -0,0 +1,518 @@ +// license:LGPL-2.1+ +// copyright-holders:Angelo Salese, R. Belmont, Juergen Buchmueller +/********************************************************************************************** + + Acorn VIDC10 (VIDeo Controller) device chip + + based off legacy AA VIDC implementation by Angelo Salese, R. Belmont, Juergen Buchmueller + + TODO: + - subclass screen_device, derive h/vsync signals out there; + - improve timings for raster effects: + * nebulus: 20 lines off with aa310; + * lotustc2: abuses color flipping; + * quazer: needs in-flight DMA; + - improve sound DAC writes; + - subclass this for VIDC20 emulation (RiscPC); + - Are CRTC values correct? VGA modes have a +1 in display line; + +**********************************************************************************************/ + +#include "emu.h" +#include "acorn_vidc.h" + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +DEFINE_DEVICE_TYPE(ACORN_VIDC10, acorn_vidc10_device, "acorn_vidc10", "Acorn VIDC10") +DEFINE_DEVICE_TYPE(ACORN_VIDC10_LCD, acorn_vidc10_lcd_device, "acorn_vidc10_lcd", "Acorn VIDC10 with LCD monitor") + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// acorn_vidc10_device - constructor +//------------------------------------------------- + +void acorn_vidc10_device::regs_map(address_map &map) +{ + map(0x00, 0x3f).w(FUNC(acorn_vidc10_device::pal_data_display_w)); + map(0x40, 0x4f).w(FUNC(acorn_vidc10_device::pal_data_cursor_w)); + map(0x60, 0x7f).w(FUNC(acorn_vidc10_device::stereo_image_w)); + map(0x80, 0xbf).w(FUNC(acorn_vidc10_device::crtc_w)); + map(0xc0, 0xc3).w(FUNC(acorn_vidc10_device::sound_frequency_w)); + map(0xe0, 0xe3).w(FUNC(acorn_vidc10_device::control_w)); +} + + +acorn_vidc10_device::acorn_vidc10_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock) + , device_memory_interface(mconfig, *this) + , device_video_interface(mconfig, *this) + , m_screen(*this, "screen") + , m_space_config("regs_space", ENDIANNESS_LITTLE, 32, 8, 0, address_map_constructor(FUNC(acorn_vidc10_device::regs_map), this)) + , m_palette(*this, "palette") + , m_lspeaker(*this, "lspeaker") + , m_rspeaker(*this, "rspeaker") + , m_dac(*this, "dac%u", 0) + , m_vblank_cb(*this) + , m_sound_drq_cb(*this) +{ +} + +acorn_vidc10_device::acorn_vidc10_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : acorn_vidc10_device(mconfig, ACORN_VIDC10, tag, owner, clock) +{ +} + + +acorn_vidc10_lcd_device::acorn_vidc10_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : acorn_vidc10_device(mconfig, ACORN_VIDC10_LCD, tag, owner, clock) +{ +} + +device_memory_interface::space_config_vector acorn_vidc10_device::memory_space_config() const +{ + return space_config_vector { + std::make_pair(AS_IO, &m_space_config) + }; +} + + +//------------------------------------------------- +// device_add_mconfig - device-specific machine +// configuration addiitons +//------------------------------------------------- + +void acorn_vidc10_device::device_add_mconfig(machine_config &config) +{ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(XTAL(16'000'000), 1024,0,735, 624/2,0,292); // RiscOS 3 default screen settings + m_screen->set_screen_update(FUNC(acorn_vidc10_device::screen_update)); +// m_screen->screen_vblank().set(FUNC(acorn_vidc10_device::screen_vblank)); + + // 8bpp + 1/2/4bpp + 2bpp for cursor + PALETTE(config, m_palette, palette_device::BLACK).set_entries(0x100+0x10+4); + + SPEAKER(config, m_lspeaker).front_left(); + SPEAKER(config, m_rspeaker).front_right(); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); + for (int i = 0; i < m_sound_max_channels; i++) + { + // custom DAC + DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, m_lspeaker, m_sound_input_gain).add_route(0, m_rspeaker, m_sound_input_gain); + vref.add_route(0, m_dac[i], 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, m_dac[i], -1.0, DAC_VREF_NEG_INPUT); + } +} + +void acorn_vidc10_lcd_device::device_add_mconfig(machine_config &config) +{ + acorn_vidc10_device::device_add_mconfig(config); + m_screen->set_type(SCREEN_TYPE_LCD); + // TODO: verify !Configure with automatic type detection, there must be an ID telling this is a LCD machine. +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void acorn_vidc10_device::device_start() +{ + m_vblank_cb.resolve_safe(); + m_sound_drq_cb.resolve_safe(); + + save_item(NAME(m_bpp_mode)); + save_item(NAME(m_crtc_interlace)); + save_item(NAME(m_pixel_clock)); + save_item(NAME(m_sound_frequency_latch)); + save_item(NAME(m_sound_frequency_test_bit)); + save_item(NAME(m_cursor_enable)); + save_pointer(NAME(m_crtc_regs), CRTC_VCER+1); + m_data_vram = auto_alloc_array_clear(machine(), u8, m_data_vram_size); + m_cursor_vram = auto_alloc_array_clear(machine(), u8, m_cursor_vram_size); + save_pointer(NAME(m_data_vram), m_data_vram_size); + save_pointer(NAME(m_cursor_vram), m_cursor_vram_size); + save_pointer(NAME(m_stereo_image), m_sound_max_channels); + + m_video_timer = timer_alloc(TIMER_VIDEO); + m_sound_timer = timer_alloc(TIMER_SOUND); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void acorn_vidc10_device::device_reset() +{ + m_cursor_enable = false; + memset(m_data_vram, 0, m_data_vram_size); + memset(m_cursor_vram, 0, m_cursor_vram_size); + memset(m_stereo_image, 4, m_sound_max_channels); + for (int ch=0;chadjust(attotime::never); + m_sound_timer->adjust(attotime::never); +} + +//------------------------------------------------- +// device_timer - device-specific timer +//------------------------------------------------- + +void acorn_vidc10_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + switch (id) + { + case TIMER_VIDEO: + m_vblank_cb(ASSERT_LINE); + screen_vblank_line_update(); + break; + case TIMER_SOUND: + m_sound_drq_cb(ASSERT_LINE); + break; + } +} + +//************************************************************************** +// CRTC section +//************************************************************************** + +inline void acorn_vidc10_device::screen_vblank_line_update() +{ + int vline = (m_crtc_regs[CRTC_VDER]) * (m_crtc_interlace + 1); + m_video_timer->adjust((vline > 2) ? m_screen->time_until_pos(vline) : attotime::never); +} + +void acorn_vidc10_device::screen_dynamic_res_change() +{ + const int32_t pixel_rate[4] = { 8000000, 12000000, 16000000, 24000000}; + + // sanity checks + if (m_crtc_regs[CRTC_HCR] <= 1 || m_crtc_regs[CRTC_VCR] <= 1) + return; + + if (m_crtc_regs[CRTC_HBER] <= 1 || m_crtc_regs[CRTC_VBER] <= 1) + return; + + // total cycles >= border end >= border start + if (m_crtc_regs[CRTC_HCR] < m_crtc_regs[CRTC_HBER]) + return; + + if (m_crtc_regs[CRTC_HBER] < m_crtc_regs[CRTC_HBSR]) + return; + + if (m_crtc_regs[CRTC_VBER] < m_crtc_regs[CRTC_VBSR]) + return; + + rectangle const visarea( + 0, m_crtc_regs[CRTC_HBER] - m_crtc_regs[CRTC_HBSR] - 1, + 0, (m_crtc_regs[CRTC_VBER] - m_crtc_regs[CRTC_VBSR]) * (m_crtc_interlace + 1)); + +#if 0 + // TODO: move to debugger custom command + const int m_vidc_vblank_time = m_crtc_regs[CRTC_VDER] * (m_crtc_interlace+1); + printf("Configuring: htotal %d vtotal %d border %d x %d display origin %d x %d vblank = %d\n", + m_crtc_regs[CRTC_HCR], m_crtc_regs[CRTC_VCR], + visarea.right(), visarea.bottom(), + m_crtc_regs[CRTC_HDER]-m_crtc_regs[CRTC_HDSR],m_crtc_regs[CRTC_VDER]-m_crtc_regs[CRTC_VDSR]+1, + m_vidc_vblank_time); +#endif + + attoseconds_t const refresh = HZ_TO_ATTOSECONDS(pixel_rate[m_pixel_clock]) * m_crtc_regs[CRTC_HCR] * m_crtc_regs[CRTC_VCR]; + + m_screen->configure(m_crtc_regs[CRTC_HCR], m_crtc_regs[CRTC_VCR] * (m_crtc_interlace+1), visarea, refresh); +} + +//************************************************************************** +// READ/WRITE HANDLERS +//************************************************************************** + +WRITE32_MEMBER( acorn_vidc10_device::write ) +{ + // TODO: check against mem_mask not 32-bit wide + uint8_t reg = data >> 24; + uint32_t val = data & 0xffffff; + + this->space(AS_IO).write_dword(reg, val); +} + +inline void acorn_vidc10_device::update_4bpp_palette(uint16_t index, uint32_t paldata) +{ + int r,g,b; + + // TODO: for TV Tuner we need to output this, also check if cursor mode actually sets this up for offset = 0 +// i = (paldata & 0x1000) >> 12; //supremacy bit + b = (paldata & 0x0f00) >> 8; + g = (paldata & 0x00f0) >> 4; + r = (paldata & 0x000f) >> 0; + + m_palette->set_pen_color(index, pal4bit(r), pal4bit(g), pal4bit(b) ); + m_screen->update_partial(m_screen->vpos()); +} + +WRITE32_MEMBER( acorn_vidc10_device::pal_data_display_w ) +{ + update_4bpp_palette(offset+0x100, data); + //printf("%02x: %01x %01x %01x [%d]\n",offset,r,g,b,m_screen->vpos()); + + // 8bpp + for(int idx=0;idx<0x100;idx+=0x10) + { + int b = ((data & 0x700) >> 8) | ((idx & 0x80) >> 4); + int g = ((data & 0x030) >> 4) | ((idx & 0x60) >> 3); + int r = ((data & 0x007) >> 0) | ((idx & 0x10) >> 1); + + m_palette->set_pen_color(offset + idx, pal4bit(r), pal4bit(g), pal4bit(b) ); + } +} + +WRITE32_MEMBER( acorn_vidc10_device::pal_data_cursor_w ) +{ + update_4bpp_palette(offset+0x110, data); +} + +WRITE32_MEMBER( acorn_vidc10_device::control_w ) +{ + // TODO: not sure what the commented out bits do + m_pixel_clock = (data & 0x03); + m_bpp_mode = ((data & 0x0c) >> 2); + //m_dma_request_mode = ((data & 0x30) >> 4); + m_crtc_interlace = ((data & 0x40) >> 6); + //m_composite_sync = BIT(data, 7); + //m_test_mode = (data & 0xc100) != 0xc100; + + //todo: vga/svga modes sets 0x1000? + screen_vblank_line_update(); + screen_dynamic_res_change(); +} + +WRITE32_MEMBER( acorn_vidc10_device::crtc_w ) +{ + switch(offset) + { + case CRTC_HCR: m_crtc_regs[CRTC_HCR] = ((data >> 14)<<1)+2; break; +// case CRTC_HSWR: m_crtc_regs[CRTC_HSWR] = (data >> 14)+1; break; + case CRTC_HBSR: m_crtc_regs[CRTC_HBSR] = ((data >> 14)<<1)+1; break; + case CRTC_HDSR: m_crtc_regs[CRTC_HDSR] = (data >> 14); break; + case CRTC_HDER: m_crtc_regs[CRTC_HDER] = (data >> 14); break; + case CRTC_HBER: m_crtc_regs[CRTC_HBER] = ((data >> 14)<<1)+1; break; + case CRTC_HCSR: m_crtc_regs[CRTC_HCSR] = ((data >> 13) & 0x7ff) + 6; return; +// case CRTC_HIR: // ... + + case CRTC_VCR: m_crtc_regs[CRTC_VCR] = (data >> 14)+1; break; + case CRTC_VSWR: m_crtc_regs[CRTC_VSWR] = (data >> 14)+1; break; + case CRTC_VBSR: + m_crtc_regs[CRTC_VBSR] = (data >> 14)+1; + break; + case CRTC_VDSR: + m_crtc_regs[CRTC_VDSR] = (data >> 14)+1; + break; + case CRTC_VDER: + m_crtc_regs[CRTC_VDER] = (data >> 14)+1; + screen_vblank_line_update(); + break; + case CRTC_VBER: + m_crtc_regs[CRTC_VBER] = (data >> 14)+1; + break; + case CRTC_VCSR: m_crtc_regs[CRTC_VCSR] = ((data >> 14) & 0x3ff) + 1; return; + case CRTC_VCER: m_crtc_regs[CRTC_VCER] = ((data >> 14) & 0x3ff) + 1; return; + } + + screen_dynamic_res_change(); +} + +inline void acorn_vidc10_device::refresh_stereo_image(uint8_t channel) +{ + /* + -111 full right + -110 83% right, 17% left + -101 67% right, 33% left + -100 center + -011 67% left, 33% right + -010 83% left, 17% right + -001 full left + -000 "undefined" TODO: verify what it actually means + */ + const float left_gain[8] = { 1.0, 2.0, 1.66, 1.34, 1.0, 0.66, 0.34, 0.0 }; + const float right_gain[8] = { 1.0, 0.0, 0.34, 0.66, 1.0, 1.34, 1.66, 2.0 }; + + m_lspeaker->set_input_gain(channel,left_gain[m_stereo_image[channel]]*m_sound_input_gain); + m_rspeaker->set_input_gain(channel,right_gain[m_stereo_image[channel]]*m_sound_input_gain); + //printf("%d %f %f\n",channel,m_lspeaker->input_gain(channel),m_rspeaker->input_gain(channel)); +} + + +WRITE32_MEMBER( acorn_vidc10_device::stereo_image_w ) +{ + uint8_t channel = (offset + 7) & 0x7; + m_stereo_image[channel] = data & 0x7; + refresh_stereo_image(channel); +} + +WRITE32_MEMBER( acorn_vidc10_device::sound_frequency_w ) +{ + m_sound_frequency_test_bit = BIT(data, 8); + m_sound_frequency_latch = data & 0xff; + if (m_sound_mode == true) + refresh_sound_frequency(); +} + +//************************************************************************** +// MEMC comms +//************************************************************************** + +void acorn_vidc10_device::write_dac(uint8_t channel, uint8_t data) +{ + uint8_t ulaw_comp; + int16_t res; + const int16_t mulawTable[256] = + { + -32124,-31100,-30076,-29052,-28028,-27004,-25980,-24956, + -23932,-22908,-21884,-20860,-19836,-18812,-17788,-16764, + -15996,-15484,-14972,-14460,-13948,-13436,-12924,-12412, + -11900,-11388,-10876,-10364, -9852, -9340, -8828, -8316, + -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140, + -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092, + -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004, + -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980, + -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436, + -1372, -1308, -1244, -1180, -1116, -1052, -988, -924, + -876, -844, -812, -780, -748, -716, -684, -652, + -620, -588, -556, -524, -492, -460, -428, -396, + -372, -356, -340, -324, -308, -292, -276, -260, + -244, -228, -212, -196, -180, -164, -148, -132, + -120, -112, -104, -96, -88, -80, -72, -64, + -56, -48, -40, -32, -24, -16, -8, -1, + 32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956, + 23932, 22908, 21884, 20860, 19836, 18812, 17788, 16764, + 15996, 15484, 14972, 14460, 13948, 13436, 12924, 12412, + 11900, 11388, 10876, 10364, 9852, 9340, 8828, 8316, + 7932, 7676, 7420, 7164, 6908, 6652, 6396, 6140, + 5884, 5628, 5372, 5116, 4860, 4604, 4348, 4092, + 3900, 3772, 3644, 3516, 3388, 3260, 3132, 3004, + 2876, 2748, 2620, 2492, 2364, 2236, 2108, 1980, + 1884, 1820, 1756, 1692, 1628, 1564, 1500, 1436, + 1372, 1308, 1244, 1180, 1116, 1052, 988, 924, + 876, 844, 812, 780, 748, 716, 684, 652, + 620, 588, 556, 524, 492, 460, 428, 396, + 372, 356, 340, 324, 308, 292, 276, 260, + 244, 228, 212, 196, 180, 164, 148, 132, + 120, 112, 104, 96, 88, 80, 72, 64, + 56, 48, 40, 32, 24, 16, 8, 0 + }; + + uint8_t ulaw_temp = data ^ 0xff; + ulaw_comp = (ulaw_temp>>1) | ((ulaw_temp&1)<<7); + res = mulawTable[ulaw_comp]; + m_dac[channel & 7]->write(res); +} + +void acorn_vidc10_device::refresh_sound_frequency() +{ + // TODO: check against test bit (reloads sound frequency if 0) + if (m_sound_mode == true) + { + // TODO: Range is between 3 and 256 usecs + double sndhz = 1e6 / ((m_sound_frequency_latch & 0xff) + 2); + sndhz /= 8.0; + m_sound_timer->adjust(attotime::zero, 0, attotime::from_hz(sndhz)); + //printf("VIDC: audio DMA start, sound freq %d, sndhz = %f\n", (m_crtc_regs[0xc0] & 0xff)-2, sndhz); + } + else + m_sound_timer->adjust(attotime::never); +} + +//************************************************************************** +// Screen Update / VBlank / HBlank +//************************************************************************** + +void acorn_vidc10_device::draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, u8 *vram, uint8_t bpp, int xstart, int ystart, int xsize, int ysize, bool is_cursor) +{ + const u16 pen_base = (bpp == 3 ? 0 : 0x100) + (is_cursor == true ? 0x10 : 0); + const u16 pen_masks[4] = { 1, 3, 0xf, 0xff }; + const u16 pen_mask = pen_masks[bpp]; + const u16 xchar_size = 1 << (3 - bpp); + const u8 pen_byte_sizes[4] = { 1, 2, 4, 1 }; + const u16 pen_byte_size = pen_byte_sizes[bpp]; + const int raster_ystart = std::max(0, cliprect.min_y-ystart); + xsize >>= 3-bpp; + + //printf("%d %d %d %d\n",ystart, ysize, cliprect.min_y, cliprect.max_y); + + for (int srcy = raster_ystart; srcy>(xi*pen_byte_size)) & pen_mask); + if (is_cursor == true && dot == 0) + continue; + dot += pen_base; + bitmap.pix32(dsty, dstx+xi) = m_palette->pen(dot); + if (m_crtc_interlace) + bitmap.pix32(dsty+1, dstx+xi) = m_palette->pen(dot); + } + } + } +} + +u32 acorn_vidc10_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + int xstart,ystart,xend,yend; + int xsize,ysize; + int calc_dxs = 0,calc_dxe = 0; + const uint8_t x_step[4] = { 19, 11, 7, 5 }; + + /* border color */ + bitmap.fill(m_palette->pen(0x110), cliprect); + + /* define X display area through BPP mode register */ + calc_dxs = (m_crtc_regs[CRTC_HDSR]*2)+x_step[m_bpp_mode & 3]; + calc_dxe = (m_crtc_regs[CRTC_HDER]*2)+x_step[m_bpp_mode & 3]; + + /* now calculate display clip rectangle start/end areas */ + xstart = (calc_dxs)-m_crtc_regs[CRTC_HBSR]; + ystart = (m_crtc_regs[CRTC_VDSR]-m_crtc_regs[CRTC_VBSR]); + xend = (calc_dxe)+xstart; + yend = (m_crtc_regs[CRTC_VDER] * (m_crtc_interlace+1))+ystart; + + /* disable the screen if display params are invalid */ + if(xstart > xend || ystart > yend) + return 0; + + xsize = calc_dxe-calc_dxs; + ysize = m_crtc_regs[CRTC_VDER]-m_crtc_regs[CRTC_VDSR]; + + if (xsize <= 0 || ysize <= 0) + return 0; + + draw(bitmap, cliprect, m_data_vram, m_bpp_mode, xstart, ystart, xsize, ysize, false); + if (m_cursor_enable == true) + { + xstart = m_crtc_regs[CRTC_HCSR] - m_crtc_regs[CRTC_HBSR]; + ystart = m_crtc_regs[CRTC_VCSR] - m_crtc_regs[CRTC_VBSR]; + xsize = 32; + ysize = m_crtc_regs[CRTC_VCER] - m_crtc_regs[CRTC_VCSR]; + if (ysize > 0) + draw(bitmap, cliprect, m_cursor_vram, 1, xstart, ystart, xsize, ysize, true); + } + + return 0; +} + +READ_LINE_MEMBER(acorn_vidc10_device::flyback_r ) +{ + int vert_pos = m_screen->vpos(); + bool flyback = (vert_pos <= m_crtc_regs[CRTC_VDSR] || vert_pos >= m_crtc_regs[CRTC_VDER]); + return flyback; +} diff --git a/src/devices/machine/acorn_vidc.h b/src/devices/machine/acorn_vidc.h new file mode 100644 index 00000000000..ca4f4d07bcc --- /dev/null +++ b/src/devices/machine/acorn_vidc.h @@ -0,0 +1,145 @@ +// license:LGPL-2.1+ +// copyright-holders:Angelo Salese, R. Belmont, Juergen Buchmueller +/*************************************************************************** + + Acorn VIDC10 (VIDeo Controller) device chip + +***************************************************************************/ + +#ifndef MAME_MACHINE_ACORN_VIDC_H +#define MAME_MACHINE_ACORN_VIDC_H + +#pragma once + +#include "screen.h" +#include "speaker.h" +#include "emupal.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> acorn_vidc10_device + +class acorn_vidc10_device : public device_t, + public device_memory_interface, + public device_video_interface +{ +public: + // construction/destruction + acorn_vidc10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + // I/O operations + DECLARE_WRITE32_MEMBER( write ); + DECLARE_READ_LINE_MEMBER( flyback_r ); + auto vblank() { return m_vblank_cb.bind(); } + auto sound_drq() { return m_sound_drq_cb.bind(); } + // MEMC comms + void write_vram(uint32_t offset, uint8_t data) { m_data_vram[offset & (m_data_vram_mask)] = data; } + void write_cram(uint32_t offset, uint8_t data) { m_cursor_vram[offset & (m_cursor_vram_mask)] = data; } + void write_dac(uint8_t channel, uint8_t data); + void clear_dac(uint8_t channel) { m_dac[channel & 7]->write(0); } + void update_sound_mode(bool state) { m_sound_mode = state; refresh_sound_frequency(); } + void set_cursor_enable(bool state) { m_cursor_enable = state; } + uint32_t get_cursor_size() { return (m_crtc_regs[CRTC_VCER] - m_crtc_regs[CRTC_VCSR]) * (32/4); } + +protected: + acorn_vidc10_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + + // device-level overrides + //virtual void device_validity_check(validity_checker &valid) const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual space_config_vector memory_space_config() const override; + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + required_device m_screen; + +private: + const address_space_config m_space_config; + + void regs_map(address_map &map); + + required_device m_palette; + required_device m_lspeaker; + required_device m_rspeaker; + required_device_array m_dac; + devcb_write_line m_vblank_cb; + devcb_write_line m_sound_drq_cb; + + DECLARE_WRITE32_MEMBER( pal_data_display_w ); + DECLARE_WRITE32_MEMBER( pal_data_cursor_w ); + DECLARE_WRITE32_MEMBER( stereo_image_w ); + DECLARE_WRITE32_MEMBER( crtc_w ); + DECLARE_WRITE32_MEMBER( sound_frequency_w ); + DECLARE_WRITE32_MEMBER( control_w ); + + uint8_t m_pixel_clock, m_bpp_mode, m_crtc_interlace; + //bool m_flyback; + enum { + TIMER_VIDEO = 1, + TIMER_SOUND = 2 + }; + emu_timer *m_video_timer; + emu_timer *m_sound_timer; + + inline void screen_vblank_line_update(); + void screen_dynamic_res_change(); + + enum { + CRTC_HCR = 0, CRTC_HSWR, CRTC_HBSR, CRTC_HDSR, CRTC_HDER, CRTC_HBER, CRTC_HCSR, CRTC_HIR, + CRTC_VCR, CRTC_VSWR, CRTC_VBSR, CRTC_VDSR, CRTC_VDER, CRTC_VBER, CRTC_VCSR, CRTC_VCER + }; + uint32_t m_crtc_regs[16]; + u8 *m_data_vram; + u8 *m_cursor_vram; + // TODO: correct data vram size + const u32 m_data_vram_mask = 0x1fffff; + const u32 m_cursor_vram_mask = 0x7fff; + const u32 m_data_vram_size = m_data_vram_mask+1; + const u32 m_cursor_vram_size = m_cursor_vram_mask+1; + bool m_cursor_enable; + void draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, u8 *vram, uint8_t bpp, int xstart, int ystart, int xsize, int ysize, bool is_cursor); + inline void update_4bpp_palette(uint16_t index, uint32_t paldata); + + u8 m_sound_frequency_latch; + bool m_sound_frequency_test_bit; + bool m_sound_mode; + u8 m_stereo_image[8]; + const float m_sound_input_gain = 0.05; + const int m_sound_max_channels = 8; + void refresh_sound_frequency(); + inline void refresh_stereo_image(uint8_t channel); +}; + +class acorn_vidc10_lcd_device : public acorn_vidc10_device +{ +public: + // construction/destruction + acorn_vidc10_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + virtual void device_add_mconfig(machine_config &config) override; +}; + +// device type definition +DECLARE_DEVICE_TYPE(ACORN_VIDC10, acorn_vidc10_device) +DECLARE_DEVICE_TYPE(ACORN_VIDC10_LCD, acorn_vidc10_lcd_device) + + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + + +#endif // MAME_MACHINE_ACORN_VIDC10_H diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp index b9f66bcaf2c..22e52c76b56 100644 --- a/src/mame/drivers/aa310.cpp +++ b/src/mame/drivers/aa310.cpp @@ -198,7 +198,7 @@ void aa310_state::aa310_mem(address_map &map) map(0x00000000, 0x01ffffff).rw(FUNC(aa310_state::archimedes_memc_logical_r), FUNC(aa310_state::archimedes_memc_logical_w)); map(0x02000000, 0x02ffffff).ram().share("physicalram"); /* physical RAM - 16 MB for now, should be 512k for the A310 */ map(0x03000000, 0x033fffff).rw(FUNC(aa310_state::archimedes_ioc_r), FUNC(aa310_state::archimedes_ioc_w)); - map(0x03400000, 0x035fffff).rom().region("extension", 0x000000).w(FUNC(aa310_state::archimedes_vidc_w)); + map(0x03400000, 0x035fffff).rom().region("extension", 0x000000).w(m_vidc, FUNC(acorn_vidc10_device::write)); map(0x03600000, 0x037fffff).rom().region("extension", 0x200000).w(FUNC(aa310_state::archimedes_memc_w)); map(0x03800000, 0x03ffffff).rom().region("maincpu", 0).w(FUNC(aa310_state::archimedes_memc_page_w)); } @@ -428,12 +428,9 @@ void aa310_state::aa310(machine_config &config) I2CMEM(config, "i2cmem", 0).set_data_size(0x100); - /* video hardware */ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(16_MHz_XTAL, 1024, 0, 735, 624/2, 0, 292); // RiscOS 3 default screen settings - m_screen->set_screen_update(FUNC(archimedes_state::screen_update)); - - PALETTE(config, m_palette).set_entries(32768); + ACORN_VIDC10(config, m_vidc, 0); + m_vidc->vblank().set(FUNC(aa310_state::vblank_irq)); + m_vidc->sound_drq().set(FUNC(aa310_state::sound_drq)); RAM(config, m_ram).set_default_size("1M"); @@ -448,21 +445,6 @@ void aa310_state::aa310(machine_config &config) SOFTWARE_LIST(config, "flop_list").set_original("archimedes"); - SPEAKER(config, "speaker").front_center(); - for (int i = 0; i < 8; i++) - { - DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.1); // unknown DAC - } - voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); - vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT); - /* Expansion slots - 2-card backplane */ } @@ -546,7 +528,9 @@ void aa310_state::aa4(machine_config &config) m_maincpu->set_clock(24_MHz_XTAL); // ARM3 /* video hardware */ - m_screen->set_type(SCREEN_TYPE_LCD); + ACORN_VIDC10_LCD(config.replace(), m_vidc, 0); + m_vidc->vblank().set(FUNC(aa310_state::vblank_irq)); + m_vidc->sound_drq().set(FUNC(aa310_state::sound_drq)); /* 765 FDC */ @@ -619,7 +603,7 @@ ROM_START( aa305 ) ROMX_LOAD( "0276,148-01.ic26", 0x000002, 0x10000, CRC(1ab02f2d) SHA1(dd7d216967524e64d1a03076a6081461ec8528c3), ROM_BIOS(8) | ROM_SKIP(3) ) ROMX_LOAD( "0276,149-01.ic27", 0x000003, 0x10000, CRC(5fd6a406) SHA1(790af8a4c74d0f6714d528f7502443ce5898a618), ROM_BIOS(8) | ROM_SKIP(3) ) - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "extension", ROMREGION_ERASE00 ) ROM_REGION( 0x100, "i2cmem", ROMREGION_ERASE00 ) @@ -663,7 +647,7 @@ ROM_START( aa3000 ) ROM_SYSTEM_BIOS( 5, "319", "RISC OS 3.19 (09 Jun 1993)" ) // Parts 0296,241-01, 0296,242-01, 0296,243-01, 0296,244-01, ROMX_LOAD( "riscos319.bin", 0x000000, 0x200000, CRC(00c7a3d3) SHA1(be7a8cba5d6c6c0e1c4838712524056cf4b8c8cb), ROM_BIOS(5) ) - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "extension", ROMREGION_ERASE00 ) ROM_REGION( 0x100, "i2cmem", ROMREGION_ERASE00 ) @@ -700,7 +684,7 @@ ROM_START( aa5000 ) ROM_SYSTEM_BIOS( 3, "319", "RISC OS 3.19 (09 Jun 1993)" ) // Parts 0296,241-01, 0296,242-01, 0296,243-01, 0296,244-01, ROMX_LOAD( "riscos319.bin", 0x000000, 0x200000, CRC(00c7a3d3) SHA1(be7a8cba5d6c6c0e1c4838712524056cf4b8c8cb), ROM_BIOS(3) ) - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "extension", ROMREGION_ERASE00 ) ROM_REGION( 0x100, "i2cmem", ROMREGION_ERASE00 ) @@ -714,7 +698,7 @@ ROM_START( aa4 ) ROM_LOAD32_WORD( "0296,061-01.ic4", 0x000000, 0x100000, CRC(b77fe215) SHA1(57b19ea4b97a9b6a240aa61211c2c134cb295aa0) ) ROM_LOAD32_WORD( "0296,062-01.ic15", 0x000002, 0x100000, CRC(d42e196e) SHA1(64243d39d1bca38b10761f66a8042c883bde87a4) ) - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "extension", ROMREGION_ERASE00 ) /* Power Management */ ROM_LOAD32_BYTE( "0296,063-01.ic38", 0x000003, 0x010000, CRC(9ca3a6be) SHA1(75905b031f49960605d55c3e7350d309559ed440) ) @@ -728,7 +712,7 @@ ROM_START( aa3010 ) ROM_LOAD32_WORD( "0296,061-02.ic17", 0x000000, 0x100000, CRC(552fc3aa) SHA1(b2f1911e53d7377f2e69e1a870139745d3df494b) ) ROM_LOAD32_WORD( "0296,062-02.ic18", 0x000002, 0x100000, CRC(308d5a4a) SHA1(b309e1dd85670a06d77ec504dbbec6c42336329f) ) - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "extension", ROMREGION_ERASE00 ) ROM_REGION( 0x100, "i2cmem", ROMREGION_ERASE00 ) diff --git a/src/mame/drivers/aristmk5.cpp b/src/mame/drivers/aristmk5.cpp index 95aec608b5b..1c1b03173b4 100644 --- a/src/mame/drivers/aristmk5.cpp +++ b/src/mame/drivers/aristmk5.cpp @@ -590,8 +590,6 @@ #include "machine/nvram.h" #include "machine/ins8250.h" #include "machine/ticket.h" -#include "sound/volt_reg.h" -#include "speaker.h" // Non-US button layouts Bet buttons Lines Gamble Other #include "aristmk5.lh" // 1, 2, 3, 5, 10 20 suits Take Win/Start Feature @@ -1155,7 +1153,7 @@ void aristmk5_state::aristmk5_map(address_map &map) map(0x03320000, 0x0333ffff).rw(FUNC(aristmk5_state::sram_r), FUNC(aristmk5_state::sram_w)).umask32(0x000000ff); - map(0x03400000, 0x035fffff).w(FUNC(aristmk5_state::archimedes_vidc_w)); + map(0x03400000, 0x035fffff).w(m_vidc, FUNC(acorn_vidc10_device::write)); map(0x03600000, 0x037fffff).w(FUNC(aristmk5_state::archimedes_memc_w)); map(0x03800000, 0x039fffff).w(FUNC(aristmk5_state::archimedes_memc_page_w)); @@ -2294,14 +2292,9 @@ void aristmk5_state::aristmk5(machine_config &config) /* TODO: this isn't supposed to access a keyboard ... */ AAKART(config, m_kart, 12000000/128); // TODO: frequency - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); - m_screen->set_size(640, 400); - m_screen->set_visarea(0, 640-1, 0, 400-1); - m_screen->set_screen_update(FUNC(archimedes_state::screen_update)); - - PALETTE(config, m_palette).set_entries(0x200); + ACORN_VIDC10(config, m_vidc, 0); + m_vidc->vblank().set(FUNC(aristmk5_state::vblank_irq)); + m_vidc->sound_drq().set(FUNC(aristmk5_state::sound_drq)); EEPROM_93C56_16BIT(config, m_eeprom[0]); EEPROM_93C56_16BIT(config, m_eeprom[1]); @@ -2337,21 +2330,6 @@ void aristmk5_state::aristmk5(machine_config &config) DS1302(config, m_rtc, 32.768_kHz_XTAL); HOPPER(config, m_hopper, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); - - SPEAKER(config, "speaker").front_center(); - for (int i = 0; i < 8; i++) - { - DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.1); // unknown DAC - } - voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); - vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT); } @@ -2422,7 +2400,7 @@ ROM_START( aristmk5 ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2448,7 +2426,7 @@ ROM_START( adonis ) ROM_LOAD32_WORD( "0200751v.u12", 0x100002, 0x80000, CRC(443a7b6d) SHA1(c19a1c50fb8774826a1e12adacba8bbfce320891) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2473,7 +2451,7 @@ ROM_START( adonisa ) ROM_LOAD32_WORD( "0100751v.u12", 0x100002, 0x80000, CRC(77090858) SHA1(76ebc15b26f378ac95276f0aa26d077e3646a6f1) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2500,7 +2478,7 @@ ROM_START( adonisu ) ROM_LOAD32_WORD( "bhg1508.u12", 0x100002, 0x80000, CRC(b8995b25) SHA1(ad39ad11dc02dbbe8be99d81c96e9fc3191726ad) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2528,7 +2506,7 @@ ROM_START( adonisce ) ROM_LOAD32_WORD( "0201005v.u13", 0x200002, 0x80000, CRC(e005a7e8) SHA1(cbb313f5d1d04c5a441b3f92b7a90a281ddb4885) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2558,7 +2536,7 @@ ROM_START( alchemst ) ROM_LOAD32_WORD( "01j02046.u13", 0x200002, 0x80000, CRC(6b791adf) SHA1(f00923101f926034603243a3c63e1010b044829e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2585,7 +2563,7 @@ ROM_START( baddog ) ROM_LOAD32_WORD( "0200428v.u13", 0x200002, 0x80000, CRC(883b2ec3) SHA1(5b431d8c9c8eabca65ab22dcf2bdb22d49445bb1) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2611,7 +2589,7 @@ ROM_START( blackpnt ) ROM_LOAD32_WORD( "0200818v.u12", 0x100002, 0x80000, BAD_DUMP CRC(bb2bf7bb) SHA1(f88208238a69fc79e33af17f39e25cd2857d7172) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2639,7 +2617,7 @@ ROM_START( bootsctn ) ROM_LOAD32_WORD( "0100812v.u14", 0x300002, 0x80000, CRC(75b9b89e) SHA1(08d487b3722f2ea5d2d18c78f571a44c78616dbe) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2672,7 +2650,7 @@ ROM_START( bootsctnu ) ROM_LOAD32_WORD( "ghg101202.u14", 0x300002, 0x80000, CRC(18934c51) SHA1(f7c9c95c687dbfe89747e7877157fde37bc1119e) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2701,7 +2679,7 @@ ROM_START( bootsctnua ) ROM_LOAD32_WORD( "ghg100803.u14", 0x300002, 0x80000, CRC(9759692e) SHA1(7666027e21af27329720127367a780776973c515) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2731,7 +2709,7 @@ ROM_START( bootsctnub ) ROM_LOAD32_WORD( "ahg1547.u14", 0x300002, 0x80000, CRC(de2888e2) SHA1(f614d68c0e09912e9126cb024f54ed32ee50b57e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2763,7 +2741,7 @@ ROM_START( bparty ) ROM_LOAD32_WORD( "bhg1248.u14", 0x300002, 0x80000, CRC(b276d61a) SHA1(8bee7fa551caec3da03afa061612c153f7b48cdb) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2787,7 +2765,7 @@ ROM_START( bpartya ) ROM_LOAD32_WORD( "bhg1579.u14", 0x300002, 0x7ff94, BAD_DUMP CRC(34ffe312) SHA1(34432e57e2e3dd90c15dd3ff7cb16d8381343be8) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2809,7 +2787,7 @@ ROM_START( bumblbug ) ROM_LOAD32_WORD( "0200510v.u11", 0x000002, 0x80000, CRC(5d888245) SHA1(bbbe61e09bebd5fcb79f060d5caee15100c9a685) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2834,7 +2812,7 @@ ROM_START( bumblbugql ) ROM_LOAD32_WORD( "0200456v.u12", 0x100002, 0x80000, CRC(9f0d7615) SHA1(1453b1476510e1dd68bc14feba72dc59b9dfe676) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2863,7 +2841,7 @@ ROM_START( bumblbugu ) ROM_LOAD32_WORD( "chg047903.u12", 0x100002, 0x80000, CRC(7dbb634b) SHA1(f7a752240989032af142f4cd6e4260a12a5b4c0a) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2893,7 +2871,7 @@ ROM_START( bumblbugua ) ROM_LOAD32_WORD( "chg047999.u12", 0x100002, 0x80000, CRC(7dbb634b) SHA1(f7a752240989032af142f4cd6e4260a12a5b4c0a) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2918,7 +2896,7 @@ ROM_START( buttdeli ) ROM_LOAD32_WORD( "0200143v.u12", 0x100002, 0x80000, CRC(0d58cf28) SHA1(aa65b7ee88b5bc872008a46e60bd49d9e5eda153) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2937,7 +2915,7 @@ ROM_START( canrose ) ROM_LOAD32_WORD( "ahg1463.u12", 0x100002, 0x7f4fc, CRC(5fe736c2) SHA1(d7c1a3f003085848e413aa499d9eaecca74773da) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2962,7 +2940,7 @@ ROM_START( cashcat ) ROM_LOAD32_WORD( "0100676v.u12", 0x100002, 0x80000, CRC(a7199f5f) SHA1(6a46935c095b1d89307921e3a53b48032e6f45fa) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -2987,7 +2965,7 @@ ROM_START( cashcata ) ROM_LOAD32_WORD( "0100557v.u12", 0x100002, 0x80000, CRC(bdeeafd3) SHA1(a95a44ff8534bb030d696a37821f3e53072f2947) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3005,7 +2983,7 @@ ROM_START( cashcatnz ) ROM_LOAD32_WORD( "0300863v.u12", 0x100002, 0x80000, CRC(f930fc07) SHA1(cb3fdbd5b87af7b14067f7999740470d3cf434df) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3030,7 +3008,7 @@ ROM_START( cashcham ) ROM_LOAD32_WORD( "0100438v.u12", 0x100002, 0x80000, CRC(7ae3b5db) SHA1(238698b72f529ac4fb292d08267069d1da01b43b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3055,7 +3033,7 @@ ROM_START( cashchama ) ROM_LOAD32_WORD( "0200437v.u12", 0x100002, 0x80000, CRC(571aab82) SHA1(03895d1a08d2dd868fd594db1aaeb29b295f0d98) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3073,7 +3051,7 @@ ROM_START( cashchamnz ) ROM_LOAD32_WORD( "0300781v.u12", 0x100002, 0x80000, CRC(2aeb0265) SHA1(50e526ecccfdd35f7e156e1873cf4c81fb117069) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3101,7 +3079,7 @@ ROM_START( cashchamu ) ROM_LOAD32_WORD( "dhg407899.u12", 0x100002, 0x80000, CRC(2fd087f8) SHA1(f16414abf58e1a7a8ca08380993bdeca6f9c7317) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3126,7 +3104,7 @@ ROM_START( cashcra5 ) ROM_LOAD32_WORD( "0300467v.u12", 0x100002, 0x80000, CRC(570c7f8a) SHA1(7c9527e0b37970b7960c723727c3c650a48e8125) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3144,7 +3122,7 @@ ROM_START( cashcra5a ) ROM_LOAD32_WORD( "0300447v.u12", 0x100002, 0x7fe36, BAD_DUMP CRC(ef641efa) SHA1(52e54ed933352cde0f280ba2b3e9bae01c4aae7e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3169,7 +3147,7 @@ ROM_START( chariotc ) ROM_LOAD32_WORD( "0100787v.u12", 0x100002, 0x80000, CRC(b44cf571) SHA1(04447820e015425493cade5611b3eb2f21e48c2e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3196,7 +3174,7 @@ ROM_START( chariotcv ) ROM_LOAD32_WORD( "04j00714.u12", 0x100002, 0x80000, CRC(b8d4a5ec) SHA1(097e44cdb30b9aafd7f5358c8f0cdd130ec0615e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3224,7 +3202,7 @@ ROM_START( checkma5 ) ROM_LOAD32_WORD( "01j00681.u13", 0x200002, 0x80000, CRC(ad12a718) SHA1(0c36729cb8da800668f533f65fcc870f5dfc0f6a) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3250,7 +3228,7 @@ ROM_START( chickna5 ) ROM_LOAD32_WORD( "0100351v.u13", 0x200002, 0x80000, CRC(88a1ccae) SHA1(e242f48f99044b4fdf1bf36d8e105df09f94aa50) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3279,7 +3257,7 @@ ROM_START( chickna5ql ) ROM_LOAD32_WORD( "0200530v.u14", 0x300002, 0x80000, CRC(e87cf6c9) SHA1(a330644658da6100d7231b1c47260dc7f2e88448) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3314,7 +3292,7 @@ ROM_START( chickna5u ) ROM_LOAD32_WORD( "rhg073003.u14", 0x300002, 0x80000, CRC(240f7759) SHA1(1fa5ba0185b027101dae207ec5d28b07d3d73fc2) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3347,7 +3325,7 @@ ROM_START( chickna5ua ) ROM_LOAD32_WORD( "rhg073099.u14", 0x300002, 0x80000, CRC(240f7759) SHA1(1fa5ba0185b027101dae207ec5d28b07d3d73fc2) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3376,7 +3354,7 @@ ROM_START( chickna5v ) ROM_LOAD32_WORD( "01j01886.u13", 0x200002, 0x80000, BAD_DUMP CRC(231ca698) SHA1(eb237652974228994e793f0dc87de93095db3c9c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3401,7 +3379,7 @@ ROM_START( coralrc2 ) ROM_LOAD32_WORD( "0100919v.u12", 0x100002, 0x80000, CRC(9ea140b5) SHA1(11f6b9ab60117f236b464c9dbc939dfb8f240359) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3426,7 +3404,7 @@ ROM_START( cuckoo ) ROM_LOAD32_WORD( "0200753v.u12", 0x100002, 0x80000, CRC(cb706eb7) SHA1(cbd6235ca7a29c78ef2cb659d9c21466ed39b360) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3454,7 +3432,7 @@ ROM_START( cuckoou ) ROM_LOAD32_WORD( "chg1195.u12", 0x100002, 0x80000, CRC(00bb7597) SHA1(f4d6b21091e320a82d59477469340633b001ed0d) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -3491,7 +3469,7 @@ ROM_START( dstbloom ) ROM_LOAD32_WORD( "0300111v.u12", 0x100002, 0x80000, CRC(10cf45b3) SHA1(3f47682ed95f65bdb267f911e113e329ad448167) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3517,7 +3495,7 @@ ROM_START( dstblooma ) ROM_LOAD32_WORD( "0200111v.u12", 0x100002, 0x80000, CRC(0ad41815) SHA1(131efc6ed45d8f44a667bd30380c9e37c64f2c42) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3538,7 +3516,7 @@ ROM_START( diamdest ) ROM_LOAD32_WORD( "ahg1533.u13", 0x200002, 0x7ffeb, BAD_DUMP CRC(612a6bf2) SHA1(01ee8854204da0610aa4ab3a36c3e517906d2ab4) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3566,7 +3544,7 @@ ROM_START( diamdove ) ROM_LOAD32_WORD( "0101018v.u13", 0x200002, 0x80000, CRC(952a850f) SHA1(66da391af532f9ef531d10995c96a90eb71cd09a) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3588,7 +3566,7 @@ ROM_START( dmdfever ) ROM_LOAD32_WORD( "0200302v.u11", 0x000002, 0x80000, CRC(29620f05) SHA1(172b6226c443931f0c4ddc44a63c8fc0e6be3824) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASEFF ) ROM_END @@ -3607,7 +3585,7 @@ ROM_START( dimtouch ) ROM_LOAD32_WORD( "0400433v.u12", 0x100002, 0x80000, CRC(9e0d08e2) SHA1(38b10f7c37f1cefe9271549073dc0a4fed409aec) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASEFF ) ROM_END @@ -3629,7 +3607,7 @@ ROM_START( dolphntr ) ROM_LOAD32_WORD( "0200424v.u11", 0x000002, 0x80000, CRC(bcb732ea) SHA1(838300914846c6e740780e5a24b9db7304a8a88d) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3655,7 +3633,7 @@ ROM_START( dolphntra ) ROM_LOAD32_WORD( "0100424v.u12", 0x100002, 0x80000, CRC(6abd9309) SHA1(c405a13f5bfe447c1ab20d92e140e4fb145920d4) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3680,7 +3658,7 @@ ROM_START( dolphntrb ) ROM_LOAD32_WORD( "0100388v.u12", 0x100002, 0x80000, CRC(1a1fbbcf) SHA1(6e3772dcccd9b5958bec3bfac9af22b2eabca32e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3712,7 +3690,7 @@ ROM_START( dolphntrce ) ROM_LOAD32_WORD( "ahg1607.u14", 0x300002, 0x80000, CRC(6f522ffb) SHA1(0fbba6b8df15631e4361daf505469f2214ad8695) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3744,7 +3722,7 @@ ROM_START( dolphntrcea ) ROM_LOAD32_WORD( "ahg1606.u14", 0x300002, 0x80000, CRC(c6c59ed6) SHA1(0ce8e5824c5937ffe2eeb34320db9dc568bca7cb) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3776,7 +3754,7 @@ ROM_START( dolphntrceb ) ROM_LOAD32_WORD( "ahg1519.u14", 0x300002, 0x80000, CRC(f2da081c) SHA1(5202741719d72a9290bda2c646d37e8c8ad41c04) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3801,7 +3779,7 @@ ROM_START( dolphntrql ) ROM_LOAD32_WORD( "0101250v.u12", 0x100002, 0x80000, CRC(35236e6f) SHA1(f196f12a1761a235ad66f4e181ca249b1df7e245) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3828,7 +3806,7 @@ ROM_START( dolphntru ) ROM_LOAD32_WORD( "fhg407702.u12", 0x100002, 0x80000, CRC(8ee1c2d3) SHA1(e6ecaaac0cb4518ecc0d36532ab532f46e3e628b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -3863,7 +3841,7 @@ ROM_START( drgneye ) ROM_LOAD32_WORD( "0100521v.u11", 0x000002, 0x80000, CRC(2bb47749) SHA1(796f610e5202b5eb26a6e901d43ee5d9e3f95332) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3882,7 +3860,7 @@ ROM_START( dreamwv ) ROM_LOAD32_WORD( "0200586v.u12", 0x100002, 0x80000, CRC(0b3e03d3) SHA1(966ec84aff686ad360d440995b81ae469539a5b5) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3909,7 +3887,7 @@ ROM_START( dynajack ) ROM_LOAD32_WORD( "01j00081.u13", 0x200002, 0x80000, CRC(d204ff9c) SHA1(8ac5533928fb3ca247dc85cea67da45a6743f732) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3930,7 +3908,7 @@ ROM_START( dynajacku ) ROM_LOAD32_WORD( "chg1562.u13", 0x200002, 0x80000, CRC(5a2220d7) SHA1(aca5fefb60af93ba776cc695e9a7ea406f527937) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3952,7 +3930,7 @@ ROM_START( eldorda5 ) ROM_LOAD32_WORD( "0100652v.u11", 0x000002, 0x80000, CRC(35233cf8) SHA1(e02477526f2f9e2663c1876f543d138b2caf28df) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3974,7 +3952,7 @@ ROM_START( eforsta5 ) ROM_LOAD32_WORD( "0400122v.u11", 0x000002, 0x80000, CRC(7a97adc8) SHA1(b52f7fdc7edf9ad92351154c01b8003c0576ed94) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -3998,7 +3976,7 @@ ROM_START( eforsta5ce ) ROM_LOAD32_WORD( "chg1536.u14", 0x300002, 0x80000, CRC(113238a6) SHA1(145467e1f015543d23bb4a377d71949693f21c34) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4031,7 +4009,7 @@ ROM_START( eforsta5cea ) ROM_LOAD32_WORD( "ahg1615.u14", 0x300002, 0x80000, CRC(961fd1b3) SHA1(59c2280258b98bc0153b6dc08d1af026de5b3ed3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4060,7 +4038,7 @@ ROM_START( eforsta5u ) ROM_LOAD32_WORD( "jhg041503.u12", 0x100002, 0x80000, CRC(c968471f) SHA1(9d54a5c396e6f83690db2fcb7ddcc8a47a7dd777) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4089,7 +4067,7 @@ ROM_START( eforsta5ua ) ROM_LOAD32_WORD( "jhg041599.u12", 0x100002, 0x80000, CRC(c968471f) SHA1(9d54a5c396e6f83690db2fcb7ddcc8a47a7dd777) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4114,7 +4092,7 @@ ROM_START( fastfort ) ROM_LOAD32_WORD( "0100651v.u12", 0x100002, 0x80000, CRC(d591dfb6) SHA1(9a1c1070b7e8774928d684c45481d72ce5108bf1) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4143,7 +4121,7 @@ ROM_START( fortellr ) ROM_LOAD32_WORD( "01j00131.u14", 0x300002, 0x80000, CRC(507bbe10) SHA1(01b1982c02a00b60aa39ee1b408d653365f728d4) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4166,7 +4144,7 @@ ROM_START( fortfvr ) ROM_LOAD32_WORD( "bhg1566.u14", 0x300002, 0x7ffff, BAD_DUMP CRC(4fba6570) SHA1(46bb22ba10dc69c70241dfbb00e86ffa5b28fd1c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4195,7 +4173,7 @@ ROM_START( gambler ) ROM_LOAD32_WORD( "ehg091602.u12", 0x100002, 0x80000, CRC(ebe957f9) SHA1(539945ec9beafe2c83051208370588fce2334f16) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4216,7 +4194,7 @@ ROM_START( geisha ) ROM_LOAD32_WORD( "0101408v.u13", 0x200002, 0x80000, CRC(5ef6323e) SHA1(82a720d814ca06c6d286c59bbf325d9a1034375a) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4239,7 +4217,7 @@ ROM_START( genmagi ) ROM_LOAD32_WORD( "0200894v.u14", 0x300002, 0x80000, CRC(52092ffb) SHA1(6ed591a510e9186588470ec745caf8001712012e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4270,7 +4248,7 @@ ROM_START( glizrdce ) ROM_LOAD32_WORD( "ahg1623.u14", 0x300002, 0x80000, CRC(5ceb871c) SHA1(42b8a087fa39261818dd333ea3d8c1ef269671bf) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4295,7 +4273,7 @@ ROM_START( gnomeatw ) ROM_LOAD32_WORD( "0100767v.u12", 0x100002, 0x80000, CRC(49eb3869) SHA1(d98fe385c667872f26d656a3240f557a70ba924f) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4324,7 +4302,7 @@ ROM_START( goldpyr ) ROM_LOAD32_WORD( "ahg120503.u12", 0x100002, 0x80000, CRC(8bbf45d0) SHA1(f58f28e7cc4ac225197959566d81973b5aa0e836) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4353,7 +4331,7 @@ ROM_START( goldpyra ) ROM_LOAD32_WORD( "ahg120699.u12", 0x100002, 0x80000, CRC(13021157) SHA1(6beb8dea66659b5ec9cbb8dcd921c30a621049a9) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4385,7 +4363,7 @@ ROM_START( goldpyrb ) ROM_LOAD32_WORD( "0100878v.u13", 0x200002, 0x80000, CRC(0df660be) SHA1(73d370d90655dada34f2b5b2209652632c34a22e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4412,7 +4390,7 @@ ROM_START( goldenra ) ROM_LOAD32_WORD( "0101164v.u13", 0x200002, 0x80000, CRC(8f62ccc5) SHA1(5105313192ab8dfd522b921c70b8b03a8a61ac63) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4439,7 +4417,7 @@ ROM_START( honeypot ) ROM_LOAD32_WORD( "03j00241.u13", 0x200002, 0x80000, CRC(d98e20eb) SHA1(6274ceee7ad49a9052b354d9dfc7e3cfa4e61017) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4470,7 +4448,7 @@ ROM_START( hnktonku ) ROM_LOAD32_WORD( "bhg1455.u13", 0x200002, 0x80000, CRC(18dd37fe) SHA1(432a4959886fad4f4a55de31b7cc42c51d7f2792) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4496,7 +4474,7 @@ ROM_START( incasun ) ROM_LOAD32_WORD( "0100872v.u13", 0x200002, 0x80000, CRC(00407593) SHA1(4c759fe3267b1782ae84d8ed9134295dfaa0faaf) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4523,7 +4501,7 @@ ROM_START( incasunsp ) ROM_LOAD32_WORD( "sp__0100872v.u13", 0x200002, 0x80000, CRC(6d66c6b4) SHA1(2106f2ede58bd4d09334e32a1553f02a154bb767) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4543,7 +4521,7 @@ ROM_START( incasunnz ) ROM_LOAD32_WORD( "0101108v.u13", 0x200002, 0x80000, CRC(472f4097) SHA1(5ebe72b138cdc67989db17c82979eeddc60a081e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4570,7 +4548,7 @@ ROM_START( incasunu ) ROM_LOAD32_WORD( "chg1458.u13", 0x200002, 0x80000, CRC(2e573a8d) SHA1(aa8ac4f4a427829f0a5929273c618edb4ecf7b36) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -4611,7 +4589,7 @@ ROM_START( incasunua ) ROM_LOAD32_WORD( "dhg1577.u13", 0x200002, 0x80000, CRC(f7c30ef9) SHA1(44d7213e1220d6b89715408d009ef1484de2696f) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4638,7 +4616,7 @@ ROM_START( incasunv ) ROM_LOAD32_WORD( "01j01946.u13", 0x200002, 0x80000, CRC(0efdd830) SHA1(de0be1cd3f691299f48d7a184df6bb59fef22de2) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4663,7 +4641,7 @@ ROM_START( indrema5 ) ROM_LOAD32_WORD( "0100845v.u12", 0x100002, 0x80000, CRC(4bbe67f6) SHA1(928f88387da66697f1de54f086531f600f80a15e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4689,7 +4667,7 @@ ROM_START( indrema5ql ) ROM_LOAD32_WORD( "0101340v.u13", 0x200002, 0x80000, CRC(7ec9557e) SHA1(8f143c1ee1c82d822ff66ec5b3dac03b0c911223) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4707,7 +4685,7 @@ ROM_START( jumpbean ) ROM_LOAD32_WORD( "0100161v.u12", 0x100002, 0x7fa54, BAD_DUMP CRC(d1d6cfba) SHA1(8c8ee5a97bc3c8cd21cd291701cebf214ca388f3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4732,7 +4710,7 @@ ROM_START( jumpjoey ) ROM_LOAD32_WORD( "0100383v.u12", 0x100002, 0x80000, CRC(defce2e9) SHA1(95f88f8647c52f99dceb4920780696d7f7c1c24b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4761,7 +4739,7 @@ ROM_START( jungjuic ) ROM_LOAD32_WORD( "0200240v.u12", 0x100002, 0x80000, CRC(ffa3d0ba) SHA1(e60e01d4d425aea483387fa2f9ae5bb69b80f829) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4787,7 +4765,7 @@ ROM_START( kgalah ) ROM_LOAD32_WORD( "0200536v.u12", 0x100002, 0x80000, CRC(15d5bfb4) SHA1(7c48dabfd83cc30fe2ffd0b4de63fbc9dc56ee2f) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4813,7 +4791,7 @@ ROM_START( kgalaha ) ROM_LOAD32_WORD( "0100536v.u12", 0x100002, 0x80000, CRC(ddde1739) SHA1(d2dec30baef8b43b2f3bc1d572353b5afe01be4b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4845,7 +4823,7 @@ ROM_START( kgalahce ) ROM_LOAD32_WORD( "ahg1625.u14", 0x300002, 0x80000, CRC(499419db) SHA1(6df8c7a9a69d60e746eb266127647327d4b88919) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4870,7 +4848,7 @@ ROM_START( kgbirda5 ) ROM_LOAD32_WORD( "0200024v.u12", 0x100002, 0x80000, CRC(df176c5a) SHA1(dcaecdefb7c880b9425a6445dbed969968fe3d1c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4900,7 +4878,7 @@ ROM_START( koalamnt ) ROM_LOAD32_WORD( "chg1573.u14", 0x300002, 0x80000, CRC(5e4776e9) SHA1(d44851cbfaa054cd5675a841a3089a8f4fdc8421) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4925,7 +4903,7 @@ ROM_START( kookabuk ) ROM_LOAD32_WORD( "0100677v.u12", 0x100002, 0x80000, CRC(b2f2fd15) SHA1(9614f3ae6e82a40ecf44090d0b8d7bd8b6b1f830) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4957,7 +4935,7 @@ ROM_START( kyhatonu ) ROM_LOAD32_WORD( "bhg1204.u14", 0x300002, 0x80000, CRC(490a9eb5) SHA1(30df13960614f82deac5426ff754885ffb429603) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -4979,7 +4957,7 @@ ROM_START( locoloot ) ROM_LOAD32_WORD( "0100473v.u11", 0x000002, 0x80000, CRC(0c0c2697) SHA1(0fc1dec8fba488a4b59c81b5bab7a11d62be2599) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5001,7 +4979,7 @@ ROM_START( locoloota ) ROM_LOAD32_WORD( "0100472v.u11", 0x000002, 0x80000, CRC(21332a1a) SHA1(76a4c30d1c9624984175e9bd117c68c9204f01df) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5019,7 +4997,7 @@ ROM_START( locolootnz ) ROM_LOAD32_WORD( "0600725v.u12", 0x100002, 0x80000, CRC(29f03505) SHA1(c173167f43cc2eef0e063118e03bc37a87188391) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5046,7 +5024,7 @@ ROM_START( locolootu ) ROM_LOAD32_WORD( "ahg1513.u12", 0x100002, 0x80000, CRC(5bf7b4b1) SHA1(2282ec8d0ddd1aea715005fba2171468831513f4) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5068,7 +5046,7 @@ ROM_START( lonewolf ) ROM_LOAD32_WORD( "0100587v.u11", 0x000002, 0x80000, CRC(0ed6fb6b) SHA1(a2baa4154fe762e2c1b40a97b2d27265df8b5dab) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5090,7 +5068,7 @@ ROM_START( luckyclo ) ROM_LOAD32_WORD( "0300109v.u11", 0x000002, 0x80000, CRC(4be1cdef) SHA1(8633077a6ddde80b2e7a3c4439ccb5a3f2b83695) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5118,7 +5096,7 @@ ROM_START( mgarden ) ROM_LOAD32_WORD( "ahg121199.u12", 0x100002, 0x80000, CRC(4b252c2c) SHA1(8be41fb2b8f8d2829c18ea123a02f3e61c136206) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5146,7 +5124,7 @@ ROM_START( magimask ) ROM_LOAD32_WORD( "ahg1549.u12", 0x100002, 0x80000, CRC(d008deab) SHA1(fd544767356bfdf44ec4af7218c9f2990581e620) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5173,7 +5151,7 @@ ROM_START( magimaska ) ROM_LOAD32_WORD( "ahg1548.u12", 0x100002, 0x80000, CRC(cf4cd569) SHA1(408edcd746587d249c4286f7a99f33ad94214f7c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -5214,7 +5192,7 @@ ROM_START( magimaskb ) ROM_LOAD32_WORD( "dhg1309.u12", 0x100002, 0x80000, CRC(6829a7bf) SHA1(97eed83763d0ec5e753d6ad194e906b1307c4940) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -5247,7 +5225,7 @@ ROM_START( magtcha5 ) ROM_LOAD32_WORD( "0300455v.u13", 0x200002, 0x80000, CRC(5e54ed88) SHA1(5fe9a74e210bc2c1b158e7a3bb01fdcc96ea0075) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5269,7 +5247,7 @@ ROM_START( magtcha5a ) ROM_LOAD32_WORD( "0200455v.u13", 0x200002, 0x80000, CRC(cfd2a86e) SHA1(66891a1b0e85ad7146b733f4b5d806db789d8821) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5294,7 +5272,7 @@ ROM_START( mammothm ) ROM_LOAD32_WORD( "0100425v.u12", 0x100002, 0x80000, CRC(58171e9b) SHA1(7f375aeb8cabe22fcc6f61cac5ef6f72f0c99899) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5321,7 +5299,7 @@ ROM_START( marmagic ) ROM_LOAD32_WORD( "01j00101.u13", 0x200002, 0x80000, CRC(3f702945) SHA1(a6c9a848d059c1e564fdc5a65bf8c9600853edfa) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5352,7 +5330,7 @@ ROM_START( marmagicu ) ROM_LOAD32_WORD( "ehg1558.u14", 0x300002, 0x80000, CRC(a2096cb3) SHA1(c2bba35396f9c83b17d692a384b6406f3441c8f5) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5384,7 +5362,7 @@ ROM_START( marmagicua ) ROM_LOAD32_WORD( "ehg1559.u14", 0x300002, 0x80000, CRC(bdfdc0e4) SHA1(0e56f08abc0cdd9dfa5d8e51bb6fe06fa356b3b3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5409,7 +5387,7 @@ ROM_START( minemine ) ROM_LOAD32_WORD( "0400115v.u12", 0x100002, 0x80000, CRC(b0607ccf) SHA1(f7b35d02170620060c8cdf90b9cb6aac86e26a52) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5436,7 +5414,7 @@ ROM_START( minemineu ) ROM_LOAD32_WORD( "vhg041699.u12", 0x100002, 0x80000, CRC(26c01532) SHA1(ec68ad44b703609c7bc27275f8d9250a16d9067c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -5477,7 +5455,7 @@ ROM_START( minemineua ) ROM_LOAD32_WORD( "nhg0416.u12", 0x100002, 0x80000, CRC(fc3f18ff) SHA1(f2afc6bdd7a702e4ac4037749613ac4a40446511) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5502,7 +5480,7 @@ ROM_START( monmouse ) ROM_LOAD32_WORD( "0400469v.u12", 0x100002, 0x80000, CRC(72d992ed) SHA1(94560305dacbe776ddc95114ad5e5ffaa234937c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5528,7 +5506,7 @@ ROM_START( monmousea ) ROM_LOAD32_WORD( "0300469v.u12", 0x100002, 0x80000, CRC(2be9bce0) SHA1(3768e616e4f03f253074e1f06aa628181db9dce8) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5548,7 +5526,7 @@ ROM_START( montree ) ROM_LOAD32_WORD( "0201397v.u13", 0x200002, 0x80000, CRC(e1f23c3f) SHA1(fe74c219c738625257fb62806e271a60075aaa07) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5570,7 +5548,7 @@ ROM_START( mountmon ) ROM_LOAD32_WORD( "0100294v.u11", 0x000002, 0x80000, CRC(4fb2a4dc) SHA1(23895b701387f7442a31969989d21cefe2a25efd) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5592,7 +5570,7 @@ ROM_START( mountmona ) ROM_LOAD32_WORD( "0100289v.u11", 0x000002, 0x80000, CRC(565b76ff) SHA1(559d4ec4f1a727cd293d842b7f777c99dcf488bc) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5616,7 +5594,7 @@ ROM_START( mountmonce ) ROM_LOAD32_WORD( "ahg1629.u14", 0x300002, 0x7ffff, BAD_DUMP CRC(57f31de5) SHA1(aceb1d700c3b41e29e0abd613d59008d7dc259c9) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5639,7 +5617,7 @@ ROM_START( mountmonu ) ROM_LOAD32_WORD( "bhg1465.u14", 0x300002, 0x80000, CRC(62f9b2af) SHA1(bddf24c7a412e911cf75316723f3139be99acbdd) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5670,7 +5648,7 @@ ROM_START( mountmonua ) ROM_LOAD32_WORD( "bhg1464.u14", 0x300002, 0x80000, CRC(5b1e5888) SHA1(4cfb0a7af2553037fed650085bbe11e3d043797b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5697,7 +5675,7 @@ ROM_START( multidrw ) ROM_LOAD32_WORD( "0200956v.u13", 0x200002, 0x80000, CRC(0d6f7ec5) SHA1(0a80257eb464e50292554f45583f3d7b85de2bc3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5719,7 +5697,7 @@ ROM_START( mystgard ) ROM_LOAD32_WORD( "0100275v.u11", 0x000002, 0x80000, CRC(6e618fc5) SHA1(a02e7ca2433cf8128d74792833d9708a3ba5df4b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5739,7 +5717,7 @@ ROM_START( one4all ) ROM_LOAD32_WORD( "0101503v.u13", 0x200002, 0x80000, CRC(3b116e0d) SHA1(5df873c00c1103304c2cb77cedf05a5db83ece29) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5765,7 +5743,7 @@ ROM_START( orchidms ) ROM_LOAD32_WORD( "0200849v.u12", 0x100002, 0x80000, CRC(165a762d) SHA1(8487d2e32bd2fab5a9114380ba2be6d34b097b11) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5792,7 +5770,7 @@ ROM_START( orchidmsa ) ROM_LOAD32_WORD( "0100849v.u12", 0x100002, 0x80000, CRC(4b5baf9d) SHA1(2fd13cbb22aff14936cbe2da582a0aa3984ab4a2) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5810,7 +5788,7 @@ ROM_START( orchidmsnz ) ROM_LOAD32_WORD( "0101241v.u12", 0x100002, 0x80000, CRC(141e2b47) SHA1(e311693d730bfff99ad75995e47606e9822ba722) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5832,7 +5810,7 @@ ROM_START( oscara5 ) ROM_LOAD32_WORD( "0200348v.u11", 0x000002, 0x80000, CRC(11394e80) SHA1(1c6e7e954a6118e04da9d761fef8ec00c46d2af8) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5858,7 +5836,7 @@ ROM_START( oscara5a ) ROM_LOAD32_WORD( "0100348v.u12", 0x100002, 0x80000, CRC(fd1c5c7b) SHA1(61b29459e39912ea3c2bf290e1f3061ce13ea648) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5883,7 +5861,7 @@ ROM_START( pantmag ) ROM_LOAD32_WORD( "0101046v.u12", 0x100002, 0x80000, CRC(eae75fa9) SHA1(576c8cf98ad4032bbdde12162e2c1bdd10056762) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5908,7 +5886,7 @@ ROM_START( pantmaga ) ROM_LOAD32_WORD( "0100716v.u12", 0x100002, 0x80000, CRC(6adfd0ab) SHA1(3b6479bcd95812f5678a27adc7decbc881cd6caa) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5937,7 +5915,7 @@ ROM_START( partygrs ) ROM_LOAD32_WORD( "ahg1567.u12", 0x100002, 0x80000, CRC(00d1395c) SHA1(d9a66d6cdb5aa4f583d8c23306b1416646cbde93) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -5977,7 +5955,7 @@ ROM_START( partygrsa ) ROM_LOAD32_WORD( "bhg1284.u12", 0x100002, 0x80000, CRC(090ce72f) SHA1(a4783ca84aabd365613357a53a19a3dd48f4df0c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -5997,7 +5975,7 @@ ROM_START( partygrsb ) ROM_LOAD32_WORD( "ahg1568.u12", 0x100002, 0x7f7da, BAD_DUMP CRC(43764888) SHA1(cfd59692f17e9ca70dc882423238f6de59dafbed) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6022,7 +6000,7 @@ ROM_START( peaflut ) ROM_LOAD32_WORD( "02j00011.u12", 0x100002, 0x80000, CRC(2d96c449) SHA1(af98a864b9ed3f95227fd0d6edc6a38c0544c93f) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6047,7 +6025,7 @@ ROM_START( pengpay ) ROM_LOAD32_WORD( "0200460v.u12", 0x100002, 0x80000, CRC(90864742) SHA1(f6491e4fbce5d642b9d0224118923b56625338b1) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6072,7 +6050,7 @@ ROM_START( pengpaya ) ROM_LOAD32_WORD( "0200357v.u12", 0x100002, 0x80000, CRC(123cbe90) SHA1(b51b84f79e0822a1be71485bbad514ab9fa55622) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6098,7 +6076,7 @@ ROM_START( pengpayb ) ROM_LOAD32_WORD( "0200359v.u12", 0x100002, 0x80000, CRC(d2882682) SHA1(dd42edca8ef9d28dd5b16fe8132f8e0fb3c85979) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6123,7 +6101,7 @@ ROM_START( pengpayc ) ROM_LOAD32_WORD( "0200113v.u12", 0x100002, 0x80000, CRC(a1865467) SHA1(572558bab639145c8260884a95646fc424687b47) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6141,7 +6119,7 @@ ROM_START( pengpayd ) ROM_LOAD32_WORD( "0300113v.u12", 0x100002, 0x7fb27, BAD_DUMP CRC(7206dc37) SHA1(4d2f8551daeb4be13e73e3123e158dc1e1e4e067) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6169,7 +6147,7 @@ ROM_START( pengpayu ) ROM_LOAD32_WORD( "bhi041703.u12", 0x100002, 0x80000, CRC(d959a048) SHA1(92f69090d599f95b48e79213e5b7d486e083d8f4) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -6209,7 +6187,7 @@ ROM_START( pengpayua ) ROM_LOAD32_WORD( "ohg041703.u12", 0x100002, 0x80000, CRC(9eae7f7b) SHA1(23bd952de1d6d5d69e5565cc2bc241c2cd775453) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6237,7 +6215,7 @@ ROM_START( pengpayub ) ROM_LOAD32_WORD( "ohg041702.u12", 0x100002, 0x80000, CRC(9eae7f7b) SHA1(23bd952de1d6d5d69e5565cc2bc241c2cd775453) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6270,7 +6248,7 @@ ROM_START( pengpayce ) ROM_LOAD32_WORD( "ahg1544.u14", 0x300002, 0x80000, CRC(4ef4f063) SHA1(d6e9928f80f19d3fdd0e7acb0bfb6f9b2ae5724b) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6301,7 +6279,7 @@ ROM_START( pengpuck ) ROM_LOAD32_WORD( "ehg1257.u14", 0x300002, 0x80000, CRC(b6cb5809) SHA1(84288a41d2a3980bf68e9a32b9402652ac6a16d6) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6326,7 +6304,7 @@ ROM_START( penpir ) ROM_LOAD32_WORD( "0100674v.u12", 0x100002, 0x80000, CRC(acdbbbe6) SHA1(5909135163af18c3ecd84934612e3751ca62ae74) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6351,7 +6329,7 @@ ROM_START( penpira ) ROM_LOAD32_WORD( "0200578v.u12", 0x100002, 0x80000, CRC(7ea30a52) SHA1(70d7640ea237197be4b2b8c64c2a97ad7b608cc0) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6384,7 +6362,7 @@ ROM_START( penpir2 ) ROM_LOAD32_WORD( "0100869v.u13", 0x200002, 0x80000, CRC(e1dbfd58) SHA1(687b7254279734e1835e1713d032b5aa2cf70812) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6409,7 +6387,7 @@ ROM_START( petshop ) ROM_LOAD32_WORD( "0100731v.u12", 0x100002, 0x80000, CRC(6e74cd57) SHA1(9092e656cbd8627b208b81ca0d737483a779bce1) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6426,7 +6404,7 @@ ROM_START( petshopa ) ROM_LOAD32_WORD( "0100679v.u12", 0x100002, 0x80000, BAD_DUMP CRC(2cd12986) SHA1(b6b0bd6dd8c964498edc3763cb5c450795042a8d) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6451,7 +6429,7 @@ ROM_START( phantpay ) ROM_LOAD32_WORD( "0500005v.u12", 0x100002, 0x80000, CRC(d43a092a) SHA1(5f851bd179b14ef3983b460ed932810f3713d3e5) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6478,7 +6456,7 @@ ROM_START( przfight ) ROM_LOAD32_WORD( "0100299v.u13", 0x200002, 0x80000, CRC(c16197d5) SHA1(716c4afdf2acde10ff09ad90b03bc5e689f0a737) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6503,7 +6481,7 @@ ROM_START( qcash ) ROM_LOAD32_WORD( "0100706v.u12", 0x100002, 0x80000, CRC(bfedb3fc) SHA1(e115db94b8ee7babb29e31e64b96d181f5c6491b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6529,7 +6507,7 @@ ROM_START( qnile ) ROM_LOAD32_WORD( "0300439v.u12", 0x100002, 0x80000, CRC(eec01bb4) SHA1(146fdce6b32a21659dc775e4a5f3bb027bd09825) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6555,7 +6533,7 @@ ROM_START( qnilea ) ROM_LOAD32_WORD( "0200439v.u12", 0x100002, 0x80000, CRC(2a0f7feb) SHA1(27c89dadf759e6c892121650758c44ec50990cb6) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6581,7 +6559,7 @@ ROM_START( qnileb ) ROM_LOAD32_WORD( "0100439v.u12", 0x100002, 0x80000, CRC(bdcec4eb) SHA1(ef3658460263cd2e68e10015efdc016ad705213e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6615,7 +6593,7 @@ ROM_START( qnilebr ) ROM_LOAD32_WORD( "0101707v.u13", 0x200002, 0x80000, CRC(1b5da8ca) SHA1(9a6cfbadba24677a0d82a61ffdc25772ecbac287) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6640,7 +6618,7 @@ ROM_START( qnilec ) ROM_LOAD32_WORD( "0300440v.u12", 0x100002, 0x80000, CRC(52bd3694) SHA1(bcfa3054c7577f7a1653b756828d048a5f1776e7) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6671,7 +6649,7 @@ ROM_START( qnilece ) ROM_LOAD32_WORD( "ahg1609.u14", 0x300002, 0x80000, CRC(fe7817f3) SHA1(a3579ed7ce6d999b0f71482f2a2e3ade693668fb) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6703,7 +6681,7 @@ ROM_START( qnilecea ) ROM_LOAD32_WORD( "ahg1525.u14", 0x300002, 0x80000, CRC(520452d4) SHA1(6d501b82a7b35a6e53a0991cbc384b752a295edf) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6736,7 +6714,7 @@ ROM_START( qnileceb ) ROM_LOAD32_WORD( "ahg1608.u14", 0x300002, 0x80000, CRC(4d0f1d12) SHA1(980775e628e9508398cb5227af10ed9ff0555b8a) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6763,7 +6741,7 @@ ROM_START( qniled ) ROM_LOAD32_WORD( "0101139v.u13", 0x200002, 0x80000, CRC(160fbbb5) SHA1(fe2ce9b915b0dfcbc60deed30a95550a21a18127) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6790,7 +6768,7 @@ ROM_START( qnilefl ) ROM_LOAD32_WORD( "0101670v.u13", 0x200002, 0x80000, CRC(715e7789) SHA1(b734aa88e7e65fba988e7fffd711039c4f554b2c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6819,7 +6797,7 @@ ROM_START( qnilemax ) ROM_LOAD32_WORD( "0401072v.u14", 0x300002, 0x80000, CRC(4fbccf72) SHA1(97d6bb400caf78cb673a324d48d2580f1bbb1acd) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6844,7 +6822,7 @@ ROM_START( qnilenl ) ROM_LOAD32_WORD( "0301059v.u12", 0x100002, 0x80000, CRC(e505912a) SHA1(ae71aa6d56d424383add3b9cbc17473ab0a13bdc) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6865,7 +6843,7 @@ ROM_START( qnilenz ) ROM_LOAD32_WORD( "0300785v.u13", 0x200002, 0x80000, CRC(b267d25a) SHA1(8065601190540e5f0b4a91fed1deffcdb2606f94) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6890,7 +6868,7 @@ ROM_START( qnileql ) ROM_LOAD32_WORD( "0201200v.u12", 0x100002, 0x80000, CRC(38332f4e) SHA1(53c90103df06e5a28bbaf32504a0984b7c65bec7) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6918,7 +6896,7 @@ ROM_START( qnileu ) ROM_LOAD32_WORD( "ghg409102.u12", 0x100002, 0x80000, CRC(7871a846) SHA1(ac1d741092afda842e1864f1a7a14137a9ee46d9) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -6961,7 +6939,7 @@ ROM_START( qnileua ) ROM_LOAD32_WORD( "ghg4091.u12", 0x100002, 0x80000, CRC(7871a846) SHA1(ac1d741092afda842e1864f1a7a14137a9ee46d9) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -6988,7 +6966,7 @@ ROM_START( qnilev ) ROM_LOAD32_WORD( "04j00784.u12", 0x100002, 0x80000, CRC(621adc77) SHA1(2fecef64139c502b0baee5c945fe5671532aacab) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7013,7 +6991,7 @@ ROM_START( qtbird ) ROM_LOAD32_WORD( "0500009v.u12", 0x100002, 0x80000, CRC(bb8344a9) SHA1(8b0e904b937c7f34470ad946076240b0c54bf434) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7043,7 +7021,7 @@ ROM_START( rainwrce ) ROM_LOAD32_WORD( "0101332v.u14", 0x300002, 0x80000, CRC(92274626) SHA1(fae8d89efba9bf3d171bfe484015d009786ce40d) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7068,7 +7046,7 @@ ROM_START( reelpwr ) ROM_LOAD32_WORD( "0100400v.u12", 0x100002, 0x80000, CRC(e6033756) SHA1(82603f02fcec2b01f5a1cfc13d50129669e84dc7) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7094,7 +7072,7 @@ ROM_START( reelrock ) ROM_LOAD32_WORD( "0100779v.u12", 0x100002, 0x80000, CRC(4ac20679) SHA1(0ac732ffe6a33806e4a06e87ec875a3e1314e06b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7121,7 +7099,7 @@ ROM_START( reelrockql ) ROM_LOAD32_WORD( "0101460v.u13", 0x200002, 0x80000, NO_DUMP ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7146,7 +7124,7 @@ ROM_START( retrsam ) ROM_LOAD32_WORD( "0400549v.u12", 0x100002, 0x80000, CRC(fdf22d5b) SHA1(664fa003a350c0a3b515b7c384d32176158c2d3e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7169,7 +7147,7 @@ ROM_START( retrsama ) ROM_LOAD32_WORD( "0200549v.u11", 0x000002, 0x80000, CRC(99f61822) SHA1(88a726a5c9cae3a7d3120cb9013ca4d38ef8c560) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7191,7 +7169,7 @@ ROM_START( retrsamb ) ROM_LOAD32_WORD( "0200506v.u11", 0x000002, 0x80000, CRC(e662404b) SHA1(f0da3384c81d01ec17d24b2191d3a0b0eaf48d12) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7218,7 +7196,7 @@ ROM_START( rushrst ) ROM_LOAD32_WORD( "0200534v.u13", 0x200002, 0x80000, CRC(dfe02424) SHA1(798ce31ef23cf5bd7d5b04dc21ffd99b2f6243b3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7244,7 +7222,7 @@ ROM_START( sbuk2 ) ROM_LOAD32_WORD( "0400501v.u12", 0x100002, 0x80000, CRC(f9b65d2b) SHA1(f519fc284aaa08d3619e4d88e92e690320cf5432) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7263,7 +7241,7 @@ ROM_START( sbuk2a ) ROM_LOAD32_WORD( "0300006v.u12", 0x100002, 0x80000, NO_DUMP ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7288,7 +7266,7 @@ ROM_START( sbuk3 ) ROM_LOAD32_WORD( "0200711v.u12", 0x100002, 0x80000, CRC(a585172d) SHA1(3c74efb11285ff78ce76a7e8af2f936d3dc31290) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7314,7 +7292,7 @@ ROM_START( sbuk3a ) ROM_LOAD32_WORD( "0100711v.u12", 0x100002, 0x80000, CRC(0ce0ba8d) SHA1(7fc6ee6281bb3c474fa0cf4d879e735ae03bb1ed) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7344,7 +7322,7 @@ ROM_START( sldeluxe ) ROM_LOAD32_WORD( "ahg1575.u14", 0x300002, 0x80000, CRC(bd890100) SHA1(c82b2891287429a3e77ccaf9b66139f0548f1902) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7369,7 +7347,7 @@ ROM_START( slvrwolf ) ROM_LOAD32_WORD( "0100673v.u12", 0x100002, 0x80000, CRC(122816dd) SHA1(5c37b29179262a79d8c68c92035ff14fc2885150) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7391,7 +7369,7 @@ ROM_START( snowcat ) ROM_LOAD32_WORD( "0100405v.u11", 0x000002, 0x80000, CRC(9f9e2637) SHA1(3d4992cec760360931bc5de400c7a27329f8b953) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7416,7 +7394,7 @@ ROM_START( sumospin ) ROM_LOAD32_WORD( "0200606v.u12", 0x100002, 0x80000, CRC(ba3eede2) SHA1(708a25af0908a1aa874b3ca4897816c65b0c9178) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7438,7 +7416,7 @@ ROM_START( swhr2 ) ROM_LOAD32_WORD( "0200465v.u11", 0x000002, 0x80000, CRC(dcf51719) SHA1(1ea07091ce22245f77b6de5dcd994efb94c4ba58) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7461,7 +7439,7 @@ ROM_START( swhr2a ) ROM_LOAD32_WORD( "0200004v.u11", 0x000002, 0x80000, CRC(bde067d7) SHA1(cbf2cbd0644f1daeb5c3cd08d72f3d7aafe521ec) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7490,7 +7468,7 @@ ROM_START( swhr2u ) ROM_LOAD32_WORD( "phg074202.u12", 0x100002, 0x80000, CRC(885cde6c) SHA1(a6ccf94ecdae2092a703075c9917d0b4004efa52) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7513,7 +7491,7 @@ ROM_START( swhr2v ) ROM_LOAD32_WORD( "01j01986.u11", 0x000002, 0x80000, CRC(bd7ead91) SHA1(9f775428a4aa0b0a8ee17aed9be620edc2020c5e) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7538,7 +7516,7 @@ ROM_START( thor ) ROM_LOAD32_WORD( "0200319v.u12", 0x100002, 0x80000, CRC(a4b27820) SHA1(75bb554300372c8bccea79ab55aa60688b7597fa) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7563,7 +7541,7 @@ ROM_START( thndh ) ROM_LOAD32_WORD( "0200333v.u12", 0x100002, 0x80000, CRC(522b0459) SHA1(d9f0e94223897ef8935558593b1d261ad953a3ec) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7588,7 +7566,7 @@ ROM_START( thndha ) ROM_LOAD32_WORD( "0200334v.u12", 0x100002, 0x80000, CRC(77c0d46d) SHA1(a183eca1ebdc305dce75caa311635ec98477909d) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7610,7 +7588,7 @@ ROM_START( topbana ) ROM_LOAD32_WORD( "0100550v.u11", 0x000002, 0x80000, CRC(1c64b3b6) SHA1(80bbc6e3f47ab932e9c07e0c6063197a2d8e81f7) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7639,7 +7617,7 @@ ROM_START( toutango ) ROM_LOAD32_WORD( "0100782v.u14", 0x300002, 0x80000, CRC(69f2acde) SHA1(cda52548e675a06677a2d9fee89b33f9abb96f64) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7667,7 +7645,7 @@ ROM_START( toutangonl ) ROM_LOAD32_WORD( "0301388v.u14", 0x300002, 0x80000, CRC(fbb37975) SHA1(648b56df5047b8ae60b41bdf29f35f8bf8fe2d29) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7692,7 +7670,7 @@ ROM_START( trstrove ) ROM_LOAD32_WORD( "01j00161.u12", 0x100002, 0x80000, CRC(715f53cb) SHA1(364c35fc2d36180c13127c8004a8729126f68db1) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7719,7 +7697,7 @@ ROM_START( tritreat ) ROM_LOAD32_WORD( "0201692v.u13", 0x200002, 0x80000, CRC(0a0b0ce1) SHA1(41a4d613cf1828df1832c087f0bc18d31076f056) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7746,7 +7724,7 @@ ROM_START( trojhors ) ROM_LOAD32_WORD( "01j00851.u13", 0x200002, 0x80000, CRC(b6d1ceb6) SHA1(b41200620aaa905697ac73b4c86496a53f070ed3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7771,7 +7749,7 @@ ROM_START( trpdlght ) ROM_LOAD32_WORD( "0100269v.u12", 0x100002, 0x80000, CRC(88978d4e) SHA1(cd2b747fd858f7d84b889bf87865c4fbb349e1b7) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7800,7 +7778,7 @@ ROM_START( trpdlghtu ) ROM_LOAD32_WORD( "phg062502.u12", 0x100002, 0x80000, CRC(0190804b) SHA1(7acb29fb7f77e78bb2afeb74d341475cd089dafb) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7825,7 +7803,7 @@ ROM_START( unicornd ) ROM_LOAD32_WORD( "0100791v.u12", 0x100002, 0x80000, CRC(14afdeda) SHA1(1eb2a297e903dc1a0683425b37669e0af4ae4218) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7850,7 +7828,7 @@ ROM_START( unicornda ) ROM_LOAD32_WORD( "0100813v.u12", 0x100002, 0x80000, CRC(b712dcd1) SHA1(f4080185f909d385e93edc73954d05de1dc6aa65) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7868,7 +7846,7 @@ ROM_START( unicorndnz ) ROM_LOAD32_WORD( "0101228v.u12", 0x100002, 0x80000, CRC(00d4cd6e) SHA1(eb941164cf421f22bcc9864f198348c4f30d904c) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7895,7 +7873,7 @@ ROM_START( unicorndu ) ROM_LOAD32_WORD( "bhg1584.u12", 0x100002, 0x80000, CRC(c1e878b5) SHA1(4e4e9dee4d85fbb77dc6f7d39c2dc5b0bf438aef) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7922,7 +7900,7 @@ ROM_START( venicea5 ) ROM_LOAD32_WORD( "02j02056.u14", 0x300002, 0x80000, CRC(7b695bf3) SHA1(89ea3252c9915aab81a85c6c028b21911bf8b4c4) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7950,7 +7928,7 @@ ROM_START( wafricau ) ROM_LOAD32_WORD( "ahg1535.u12", 0x100002, 0x80000, CRC(f569843c) SHA1(ccf1b727ad1dc49bca609ee0887b36a29223cace) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7972,7 +7950,7 @@ ROM_START( wamazon ) ROM_LOAD32_WORD( "0200507v.u11", 0x000002, 0x80000, CRC(2e24756a) SHA1(247db8316e7815be7524aefc43a5756fad84779a) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -7997,7 +7975,7 @@ ROM_START( wamazona ) ROM_LOAD32_WORD( "0200285v.u12", 0x100002, 0x80000, CRC(fdb10dd3) SHA1(cbf4fe97c75652f83b8ddb929b06941a70b36388) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8023,7 +8001,7 @@ ROM_START( wamazonv ) ROM_LOAD32_WORD( "01j01996.u12", 0x100002, 0x80000, CRC(945e0a05) SHA1(db7580b39c537a7b50898ee99cfceb5eb71be19a) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8048,7 +8026,7 @@ ROM_START( wikwin ) ROM_LOAD32_WORD( "0100553v.u12", 0x100002, 0x80000, CRC(06cf5d68) SHA1(5469e8087371f8b59fd9b2b413682efe2ea0f279) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8070,7 +8048,7 @@ ROM_START( wildbill ) ROM_LOAD32_WORD( "0100297v.u11", 0x000002, 0x80000, CRC(57b3c340) SHA1(4f95ed7fed697cf2bfbde8215f6e35768cf20334) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8095,7 +8073,7 @@ ROM_START( wcougar ) ROM_LOAD32_WORD( "0100167v.u12", 0x100002, 0x80000, CRC(85bb41a7) SHA1(335f29f10f216e202b93b46a376958c3f5271461) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8122,7 +8100,7 @@ ROM_START( wcougaru ) ROM_LOAD32_WORD( "nhg029604.u12", 0x100002, 0x80000, CRC(fe2bafdc) SHA1(e8b454db44a532d75b3aff323855340695688f0f) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_REGION16_BE( 0x100, "eeprom0", 0 ) @@ -8163,7 +8141,7 @@ ROM_START( wcougarua ) ROM_LOAD32_WORD( "nhg029607.u12", 0x100002, 0x80000, CRC(fe2bafdc) SHA1(e8b454db44a532d75b3aff323855340695688f0f) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8191,7 +8169,7 @@ ROM_START( wcougarub ) ROM_LOAD32_WORD( "nhg029699.u12", 0x100002, 0x80000, CRC(fe2bafdc) SHA1(e8b454db44a532d75b3aff323855340695688f0f) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8220,7 +8198,7 @@ ROM_START( wcougaruc ) ROM_LOAD32_WORD( "ahg1531.u12", 0x100002, 0x80000, CRC(5aac8336) SHA1(d1bfd21579bdcf5b46e0f4db1181d10159f0b643) ) // base ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8239,7 +8217,7 @@ ROM_START( wcoyote ) ROM_LOAD32_WORD( "ahg1515.u12", 0x100002, 0x7ff14, BAD_DUMP CRC(0068bce4) SHA1(37517f6bd53660deab471f41a4d63c4b03bf22b3) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8265,7 +8243,7 @@ ROM_START( wizways ) ROM_LOAD32_WORD( "0200396v.u12", 0x100002, 0x80000, CRC(934d7286) SHA1(205f72b62d83667e9068141346bda3bcb9742a83) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8290,7 +8268,7 @@ ROM_START( wldangel ) ROM_LOAD32_WORD( "0100337v.u12", 0x100002, 0x80000, CRC(81f0d1c8) SHA1(1e91c9457593f592c0ca4a186a49b00b2cfe256f) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8317,7 +8295,7 @@ ROM_START( wnpost ) ROM_LOAD32_WORD( "rhg041804.u12", 0x100002, 0x80000, CRC(ff70b305) SHA1(3c832ed20b1d00318fd3d2428bb469735f68965b) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8342,7 +8320,7 @@ ROM_START( wthing ) ROM_LOAD32_WORD( "0101158v.u12", 0x100002, 0x80000, CRC(450a4f4f) SHA1(e59fb3260755a125c47ff6c1a042a48b0eace72d) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8362,7 +8340,7 @@ ROM_START( wthinga ) ROM_LOAD32_WORD( "0201176v.u13", 0x200002, 0x7ffdb, BAD_DUMP CRC(026317bc) SHA1(94a48b33ddc60d6271ac0a89fc86b9f1be68f9a6) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8384,7 +8362,7 @@ ROM_START( wtiger ) ROM_LOAD32_WORD( "0200954v.u11", 0x000002, 0x80000, CRC(38e888b1) SHA1(acc857eb2be19140bbb58d70583e08f24807b9f2) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END @@ -8411,7 +8389,7 @@ ROM_START( yukongl5 ) ROM_LOAD32_WORD( "03j00191.u13", 0x200002, 0x80000, CRC(e514b87f) SHA1(5423215bc03ab8468d5ebec0dba6ba7820cdcd50) ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */ - ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 ) ROM_END diff --git a/src/mame/drivers/ertictac.cpp b/src/mame/drivers/ertictac.cpp index 475ba24611e..d9be8882e3a 100644 --- a/src/mame/drivers/ertictac.cpp +++ b/src/mame/drivers/ertictac.cpp @@ -21,13 +21,12 @@ PCB has a single OSC at 24MHz *******************************************************************************************/ + #include "emu.h" #include "includes/archimds.h" #include "cpu/arm/arm.h" #include "machine/aakart.h" #include "machine/i2cmem.h" -#include "sound/volt_reg.h" -#include "speaker.h" class ertictac_state : public archimedes_state @@ -73,8 +72,8 @@ void ertictac_state::ertictac_map(address_map &map) map(0x03000000, 0x033fffff).rw(FUNC(ertictac_state::archimedes_ioc_r), FUNC(ertictac_state::archimedes_ioc_w)); map(0x03340000, 0x0334001f).r(FUNC(ertictac_state::ertictac_podule_r)); map(0x033c0000, 0x033c001f).r(FUNC(ertictac_state::ertictac_podule_r)); - map(0x03400000, 0x035fffff).rw(FUNC(ertictac_state::archimedes_vidc_r), FUNC(ertictac_state::archimedes_vidc_w)); - map(0x03600000, 0x037fffff).rw(FUNC(ertictac_state::archimedes_memc_r), FUNC(ertictac_state::archimedes_memc_w)); + map(0x03400000, 0x035fffff).w(m_vidc, FUNC(acorn_vidc10_device::write)); + map(0x03600000, 0x037fffff).w(FUNC(ertictac_state::archimedes_memc_w)); map(0x03800000, 0x03ffffff).rom().region("maincpu", 0).w(FUNC(ertictac_state::archimedes_memc_page_w)); } @@ -233,26 +232,9 @@ void ertictac_state::ertictac(machine_config &config) // AAKART(config, m_kart, XTAL(24'000'000)/3); // TODO: frequency - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(XTAL(16'000'000), 1024,0,735, 624/2,0,292); // RiscOS 3 default screen settings - m_screen->set_screen_update(FUNC(archimedes_state::screen_update)); - - PALETTE(config, m_palette).set_entries(0x200); - - SPEAKER(config, "speaker").front_center(); - for (int i = 0; i < 8; i++) - { - DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.05); // unknown DAC - } - voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); - vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT); - vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT); + ACORN_VIDC10(config, m_vidc, 0); + m_vidc->vblank().set(FUNC(ertictac_state::vblank_irq)); + m_vidc->sound_drq().set(FUNC(ertictac_state::sound_drq)); } ROM_START( ertictac ) @@ -273,8 +255,6 @@ ROM_START( ertictac ) ROM_LOAD32_BYTE( "eroti_ver01_-14-", 0xc0001, 0x10000, CRC(3029567c) SHA1(6d49bea3a3f6f11f4182a602d37b53f1f896c154) ) ROM_LOAD32_BYTE( "eroti_ver01_-15-", 0xc0002, 0x10000, CRC(500997ab) SHA1(028c7b3ca03141e5b596ab1e2ab98d0ccd9bf93a) ) ROM_LOAD32_BYTE( "eroti_ver01_-16-", 0xc0003, 0x10000, CRC(70a8d136) SHA1(50b11f5701ed5b79a5d59c9a3c7d5b7528e66a4d) ) - - ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) ROM_END @@ -296,8 +276,6 @@ ROM_START( ertictaca ) /* PCB had sticker printed "092121 EROTICTAC" */ ROM_LOAD32_BYTE( "eroti_ver01_-14-", 0xc0001, 0x10000, CRC(3029567c) SHA1(6d49bea3a3f6f11f4182a602d37b53f1f896c154) ) ROM_LOAD32_BYTE( "eroti_ver01_-15-", 0xc0002, 0x10000, CRC(500997ab) SHA1(028c7b3ca03141e5b596ab1e2ab98d0ccd9bf93a) ) ROM_LOAD32_BYTE( "eroti_ver01_-16-", 0xc0003, 0x10000, CRC(70a8d136) SHA1(50b11f5701ed5b79a5d59c9a3c7d5b7528e66a4d) ) - - ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) ROM_END ROM_START( ertictacb ) @@ -318,8 +296,6 @@ ROM_START( ertictacb ) ROM_LOAD32_BYTE( "eroti_ver01_-14-", 0xc0001, 0x10000, CRC(3029567c) SHA1(6d49bea3a3f6f11f4182a602d37b53f1f896c154) ) ROM_LOAD32_BYTE( "eroti_ver01_-15-", 0xc0002, 0x10000, CRC(500997ab) SHA1(028c7b3ca03141e5b596ab1e2ab98d0ccd9bf93a) ) ROM_LOAD32_BYTE( "eroti_ver01_-16-", 0xc0003, 0x10000, CRC(70a8d136) SHA1(50b11f5701ed5b79a5d59c9a3c7d5b7528e66a4d) ) - - ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) ROM_END @@ -342,8 +318,6 @@ ROM_START( poizone ) ROM_LOAD32_BYTE( "p_son22.bin", 0x140001, 0x10000, CRC(16f0bb52) SHA1(893ab1e72b84de7a38f88f9d713769968ebd4553) ) ROM_LOAD32_BYTE( "p_son23.bin", 0x140002, 0x10000, CRC(e9c118b2) SHA1(110d9a204e701b9b54d89f027f8892c3f3a819c7) ) ROM_LOAD32_BYTE( "p_son24.bin", 0x140003, 0x10000, CRC(a09d7f55) SHA1(e0d562c655c16034b40db93de801b98b7948beb2) ) - - ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) ROM_END GAME( 1990, ertictac, 0, ertictac, ertictac, ertictac_state, init_ertictac, ROT0, "Sisteme", "Erotictac/Tactic", MACHINE_IMPERFECT_SOUND) diff --git a/src/mame/includes/archimds.h b/src/mame/includes/archimds.h index 2e13bb33219..e6080400cfb 100644 --- a/src/mame/includes/archimds.h +++ b/src/mame/includes/archimds.h @@ -14,9 +14,7 @@ #include "machine/aakart.h" #include "machine/i2cmem.h" #include "machine/wd_fdc.h" -#include "sound/dac.h" -#include "emupal.h" -#include "screen.h" +#include "machine/acorn_vidc.h" // interrupt definitions. these are for the real Archimedes computer - arcade // and gambling knockoffs likely are a bit different. @@ -53,15 +51,12 @@ public: m_kart(*this, "kart"), m_maincpu(*this, "maincpu"), m_i2cmem(*this, "i2cmem"), + m_vidc(*this, "vidc"), m_fdc(*this, "fdc"), m_floppy0(*this, "fdc:0"), m_floppy1(*this, "fdc:1"), m_region_maincpu(*this, "maincpu"), - m_region_vram(*this, "vram"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_joy(*this, "joy_p%u",1), - m_dac(*this, { "dac0", "dac1", "dac2", "dac3", "dac4", "dac5", "dac6", "dac7" }) + m_joy(*this, "joy_p%u",1) { } optional_device m_kart; @@ -79,24 +74,16 @@ public: DECLARE_READ32_MEMBER(aristmk5_drame_memc_logical_r); DECLARE_READ32_MEMBER(archimedes_memc_logical_r); DECLARE_WRITE32_MEMBER(archimedes_memc_logical_w); - DECLARE_READ32_MEMBER(archimedes_memc_r); DECLARE_WRITE32_MEMBER(archimedes_memc_w); DECLARE_WRITE32_MEMBER(archimedes_memc_page_w); DECLARE_READ32_MEMBER(archimedes_ioc_r); DECLARE_WRITE32_MEMBER(archimedes_ioc_w); - DECLARE_READ32_MEMBER(archimedes_vidc_r); - DECLARE_WRITE32_MEMBER(archimedes_vidc_w); DECLARE_WRITE_LINE_MEMBER( a310_kart_rx_w ); DECLARE_WRITE_LINE_MEMBER( a310_kart_tx_w ); uint8_t m_i2c_clk; int16_t m_memc_pages[0x2000]; // the logical RAM area is 32 megs, and the smallest page size is 4k - uint32_t m_vidc_regs[256]; - uint8_t m_cursor_vram[0x8000]; // size -> max(VCER) - min(VCSR) * 32 = 0x7fe0 uint8_t m_ioc_regs[0x80/4]; - uint8_t m_vidc_bpp_mode; - uint8_t m_vidc_interlace; - uint16_t m_vidc_vblank_time; uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -104,29 +91,25 @@ public: protected: required_device m_maincpu; optional_device m_i2cmem; + required_device m_vidc; optional_device m_fdc; optional_device m_floppy0; optional_device m_floppy1; required_memory_region m_region_maincpu; - required_memory_region m_region_vram; - required_device m_screen; - required_device m_palette; optional_ioport_array<2> m_joy; - required_device_array m_dac; + + DECLARE_WRITE_LINE_MEMBER( vblank_irq ); + DECLARE_WRITE_LINE_MEMBER( sound_drq ); private: - static const device_timer_id TIMER_VBLANK = 0; - static const device_timer_id TIMER_VIDEO = 1; - static const device_timer_id TIMER_AUDIO = 2; static const device_timer_id TIMER_IOC = 3; - void vidc_vblank(); +// void vidc_vblank(); void vidc_video_tick(); void vidc_audio_tick(); void ioc_timer(int param); - void vidc_dynamic_res_change(); void latch_timer_cnt(int tmr); void a310_set_timer(int tmr); DECLARE_READ32_MEMBER(ioc_ctrl_r); @@ -136,14 +119,11 @@ private: uint32_t m_memc_pagesize; int m_memc_latchrom; uint32_t m_ioc_timercnt[4], m_ioc_timerout[4]; - uint32_t m_vidc_vidstart, m_vidc_vidend, m_vidc_vidinit, m_vidc_vidcur,m_vidc_cinit; + uint32_t m_vidc_vidstart, m_vidc_vidend, m_vidc_vidinit, m_vidc_vidcur, m_vidc_cinit; uint32_t m_vidc_sndstart, m_vidc_sndend, m_vidc_sndcur, m_vidc_sndendcur; uint8_t m_video_dma_on,m_audio_dma_on; - uint8_t m_vidc_pixel_clk; - uint8_t m_vidc_stereo_reg[8]; bool m_cursor_enabled; - emu_timer *m_timer[4], *m_snd_timer, *m_vid_timer; - emu_timer *m_vbl_timer; + emu_timer *m_timer[4]; uint8_t m_floppy_select; bool check_floppy_ready(); uint8_t m_joy_serial_data; @@ -185,22 +165,4 @@ private: #define T3_GO 0x78/4 #define T3_LATCH 0x7c/4 -#define VIDC_HCR 0x80 -#define VIDC_HSWR 0x84 -#define VIDC_HBSR 0x88 -#define VIDC_HDSR 0x8c -#define VIDC_HDER 0x90 -#define VIDC_HBER 0x94 -#define VIDC_HCSR 0x98 -#define VIDC_HIR 0x9c - -#define VIDC_VCR 0xa0 -#define VIDC_VSWR 0xa4 -#define VIDC_VBSR 0xa8 -#define VIDC_VDSR 0xac -#define VIDC_VDER 0xb0 -#define VIDC_VBER 0xb4 -#define VIDC_VCSR 0xb8 -#define VIDC_VCER 0xbc - #endif // MAME_INCLUDES_ARCHIMEDES_H diff --git a/src/mame/machine/archimds.cpp b/src/mame/machine/archimds.cpp index 319c963afa5..d4231028005 100644 --- a/src/mame/machine/archimds.cpp +++ b/src/mame/machine/archimds.cpp @@ -34,7 +34,7 @@ #include "debugger.h" static const int page_sizes[4] = { 4096, 8192, 16384, 32768 }; -static const uint32_t pixel_rate[4] = { 8000000, 12000000, 16000000, 24000000}; +//static const uint32_t pixel_rate[4] = { 8000000, 12000000, 16000000, 24000000}; #define IOC_LOG 0 #define CRTC_LOG 0 @@ -97,30 +97,42 @@ void archimedes_state::device_timer(emu_timer &timer, device_timer_id id, int pa { switch (id) { - case TIMER_VBLANK: vidc_vblank();break; - case TIMER_VIDEO: vidc_video_tick(); break; - case TIMER_AUDIO: vidc_audio_tick(); break; + //case TIMER_VBLANK: vidc_vblank();break; + //case TIMER_VIDEO: vidc_video_tick(); break; + //case TIMER_AUDIO: vidc_audio_tick(); break; case TIMER_IOC: ioc_timer(param); break; } } -void archimedes_state::vidc_vblank() +WRITE_LINE_MEMBER( archimedes_state::vblank_irq ) { - archimedes_request_irq_a(ARCHIMEDES_IRQA_VBL); + if (state) + { + archimedes_request_irq_a(ARCHIMEDES_IRQA_VBL); + if (m_video_dma_on) + vidc_video_tick(); + } + // set up for next vbl - m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_vblank_time)); + //m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_vblank_time)); } +WRITE_LINE_MEMBER( archimedes_state::sound_drq ) +{ + if (state) + vidc_audio_tick(); +} + + /* video DMA */ -/* TODO: what type of DMA this is, burst or cycle steal? Docs doesn't explain it (4 usec is the DRAM refresh). */ -/* TODO: change m_region_vram into proper alloc array */ -/* TODO: Erotictac and Poizone sets up vidinit register AFTER vidend, for double buffering? (fixes Poizone "Eterna" logo display on attract) */ +// TODO: what type of DMA this is, burst or cycle steal? Docs doesn't explain it (4 usec is the DRAM refresh). */ +// TODO: Erotictac and Poizone sets up vidinit register AFTER vidend, for double buffering? (fixes Poizone "Eterna" logo display on attract) +// TODO: understand how to make quazer to work (sets video DMA param in-flight) void archimedes_state::vidc_video_tick() { address_space &space = m_maincpu->space(AS_PROGRAM); - static uint8_t *vram = m_region_vram->base(); uint32_t size; uint32_t offset_ptr; @@ -134,7 +146,7 @@ void archimedes_state::vidc_video_tick() for(m_vidc_vidcur = 0;m_vidc_vidcur < size;m_vidc_vidcur++) { - vram[m_vidc_vidcur] = (space.read_byte(offset_ptr)); + m_vidc->write_vram(m_vidc_vidcur, space.read_byte(offset_ptr)); offset_ptr++; if(offset_ptr >= m_vidc_vidend+0x10) // TODO: correct? offset_ptr = m_vidc_vidstart; @@ -142,73 +154,21 @@ void archimedes_state::vidc_video_tick() if(m_cursor_enabled == true) { - uint32_t ccur_size = (m_vidc_regs[VIDC_VCER] - m_vidc_regs[VIDC_VCSR]) * 32; + uint32_t ccur_size = m_vidc->get_cursor_size(); for(uint32_t ccur = 0; ccur < ccur_size; ccur++) - m_cursor_vram[ccur] = (space.read_byte(m_vidc_cinit+ccur)); + m_vidc->write_cram(ccur, space.read_byte(m_vidc_cinit+ccur)); } - - if(m_video_dma_on) - { - m_vid_timer->adjust(m_screen->time_until_pos(m_vidc_vblank_time+1)); - } - else - m_vid_timer->adjust(attotime::never); } /* audio DMA */ void archimedes_state::vidc_audio_tick() { address_space &space = m_maincpu->space(AS_PROGRAM); - uint8_t ulaw_comp; - int16_t res; uint8_t ch; - static const int16_t mulawTable[256] = - { - -32124,-31100,-30076,-29052,-28028,-27004,-25980,-24956, - -23932,-22908,-21884,-20860,-19836,-18812,-17788,-16764, - -15996,-15484,-14972,-14460,-13948,-13436,-12924,-12412, - -11900,-11388,-10876,-10364, -9852, -9340, -8828, -8316, - -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140, - -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092, - -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004, - -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980, - -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436, - -1372, -1308, -1244, -1180, -1116, -1052, -988, -924, - -876, -844, -812, -780, -748, -716, -684, -652, - -620, -588, -556, -524, -492, -460, -428, -396, - -372, -356, -340, -324, -308, -292, -276, -260, - -244, -228, -212, -196, -180, -164, -148, -132, - -120, -112, -104, -96, -88, -80, -72, -64, - -56, -48, -40, -32, -24, -16, -8, -1, - 32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956, - 23932, 22908, 21884, 20860, 19836, 18812, 17788, 16764, - 15996, 15484, 14972, 14460, 13948, 13436, 12924, 12412, - 11900, 11388, 10876, 10364, 9852, 9340, 8828, 8316, - 7932, 7676, 7420, 7164, 6908, 6652, 6396, 6140, - 5884, 5628, 5372, 5116, 4860, 4604, 4348, 4092, - 3900, 3772, 3644, 3516, 3388, 3260, 3132, 3004, - 2876, 2748, 2620, 2492, 2364, 2236, 2108, 1980, - 1884, 1820, 1756, 1692, 1628, 1564, 1500, 1436, - 1372, 1308, 1244, 1180, 1116, 1052, 988, 924, - 876, 844, 812, 780, 748, 716, 684, 652, - 620, 588, 556, 524, 492, 460, 428, 396, - 372, 356, 340, 324, 308, 292, 276, 260, - 244, 228, 212, 196, 180, 164, 148, 132, - 120, 112, 104, 96, 88, 80, 72, 64, - 56, 48, 40, 32, 24, 16, 8, 0 - }; for(ch=0; ch<8; ch++) - { - uint8_t ulaw_temp = (space.read_byte(m_vidc_sndcur + ch)) ^ 0xff; - - ulaw_comp = (ulaw_temp>>1) | ((ulaw_temp&1)<<7); - - res = mulawTable[ulaw_comp]; - - m_dac[ch & 7]->write(res); - } + m_vidc->write_dac(ch, (space.read_byte(m_vidc_sndcur + ch))); m_vidc_sndcur+=8; @@ -216,13 +176,12 @@ void archimedes_state::vidc_audio_tick() { archimedes_request_irq_b(ARCHIMEDES_IRQB_SOUND_EMPTY); + // TODO: nuke this implementation detail, repeated below + m_vidc->update_sound_mode(m_audio_dma_on); if(!m_audio_dma_on) { - m_snd_timer->adjust(attotime::never); for(ch=0; ch<8; ch++) - { - m_dac[ch & 7]->write(0); - } + m_vidc->clear_dac(ch); } else { @@ -293,21 +252,12 @@ void archimedes_state::archimedes_reset() m_ioc_regs[IRQ_STATUS_B] = 0x00; //set up IL[1] On m_ioc_regs[FIQ_STATUS] = 0x80; //set up Force FIQ m_ioc_regs[CONTROL] = 0xff; - - m_vidc_vblank_time = 10000; // set a stupidly high time so it doesn't fire off - m_vbl_timer->adjust(attotime::never); - - m_cursor_enabled = false; - memset(m_cursor_vram, 0, sizeof(m_cursor_vram)); } void archimedes_state::archimedes_init() { m_memc_pagesize = 0; - m_vbl_timer = timer_alloc(TIMER_VBLANK); - m_vbl_timer->adjust(attotime::never); - m_timer[0] = timer_alloc(TIMER_IOC); m_timer[1] = timer_alloc(TIMER_IOC); m_timer[2] = timer_alloc(TIMER_IOC); @@ -316,10 +266,6 @@ void archimedes_state::archimedes_init() m_timer[1]->adjust(attotime::never); m_timer[2]->adjust(attotime::never); m_timer[3]->adjust(attotime::never); - - m_vid_timer = timer_alloc(TIMER_VIDEO); - m_snd_timer = timer_alloc(TIMER_AUDIO); - m_snd_timer->adjust(attotime::never); } READ32_MEMBER(archimedes_state::archimedes_memc_logical_r) @@ -520,13 +466,8 @@ READ32_MEMBER( archimedes_state::ioc_ctrl_r ) case CONTROL: { uint8_t i2c_data = 1; - uint8_t flyback; //internal name for vblank here - int vert_pos; bool floppy_ready_state; - vert_pos = m_screen->vpos(); - flyback = (vert_pos <= m_vidc_regs[VIDC_VDSR] || vert_pos >= m_vidc_regs[VIDC_VDER]) ? 0x80 : 0x00; - if ( m_i2cmem ) { i2c_data = (m_i2cmem->read_sda() & 1); @@ -534,7 +475,7 @@ READ32_MEMBER( archimedes_state::ioc_ctrl_r ) floppy_ready_state = check_floppy_ready(); - return (flyback) | (m_ioc_regs[CONTROL] & 0x78) | (floppy_ready_state<<2) | (m_i2c_clk<<1) | i2c_data; + return (m_vidc->flyback_r()<<7) | (m_ioc_regs[CONTROL] & 0x78) | (floppy_ready_state<<2) | (m_i2c_clk<<1) | i2c_data; } case KART: // keyboard read @@ -628,8 +569,8 @@ WRITE32_MEMBER( archimedes_state::ioc_ctrl_w ) /* bit 7 forces an IRQ trap */ archimedes_request_irq_a((data & 0x80) ? ARCHIMEDES_IRQA_FORCE : 0); - if(data & 0x08) //set up the VBLANK timer - m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_vblank_time)); + //if(data & 0x08) //set up the VBLANK timer + // m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_vblank_time)); break; @@ -747,10 +688,11 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r) } case 2: // RTFM joystick interface routes here + // TODO: slot interface for econet (reads registers 0 and 1 during boot) switch(ioc_addr) { case 0x3a0000: - return 0xed; // ID? Status? + return 0xed; // ID for econet case 0x3a0004: return m_joy[0].read_safe(0xff); case 0x3a0008: @@ -770,12 +712,13 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r) case 5: if (m_fdc) { + // TODO: IOEB slot interface switch(ioc_addr & 0xfffc) { case 0x18: return 0xff; // FDC latch B case 0x40: return 0xff; // FDC latch A - case 0x50: return 0; //fdc type, new model returns 5 here - case 0x70: return 0x0f; + case 0x50: return 0; //fdc type, an 82c711 returns 5 here + case 0x70: return 0x0f; // monitor type, TBD case 0x74: return 0xff; // unknown case 0x78: // serial joystick? case 0x7c: @@ -917,178 +860,6 @@ WRITE32_MEMBER(archimedes_state::archimedes_ioc_w) logerror("(PC=%08x) I/O: W %x @ %x (mask %08x)\n", m_maincpu->pc(), data, (offset*4)+0x3000000, mem_mask); } -READ32_MEMBER(archimedes_state::archimedes_vidc_r) -{ - return 0; -} - -void archimedes_state::vidc_dynamic_res_change() -{ - /* sanity checks - first pass */ - /* - total cycles + border end - */ - if(m_vidc_regs[VIDC_HCR] && m_vidc_regs[VIDC_HBER] && - m_vidc_regs[VIDC_VCR] && m_vidc_regs[VIDC_VBER]) - { - /* sanity checks - second pass */ - /* - total cycles >= border end >= border start - */ - if((m_vidc_regs[VIDC_HCR] >= m_vidc_regs[VIDC_HBER]) && - (m_vidc_regs[VIDC_HBER] >= m_vidc_regs[VIDC_HBSR]) && - (m_vidc_regs[VIDC_VBER] >= m_vidc_regs[VIDC_VBSR])) - { - rectangle const visarea( - 0, m_vidc_regs[VIDC_HBER] - m_vidc_regs[VIDC_HBSR] - 1, - 0, (m_vidc_regs[VIDC_VBER] - m_vidc_regs[VIDC_VBSR]) * (m_vidc_interlace + 1)); - - m_vidc_vblank_time = m_vidc_regs[VIDC_VBER] * (m_vidc_interlace+1); - //logerror("Configuring: htotal %d vtotal %d border %d x %d display origin %d x %d vblank = %d\n", - // m_vidc_regs[VIDC_HCR], m_vidc_regs[VIDC_VCR], - // visarea.right(), visarea.bottom(), - // m_vidc_regs[VIDC_HDER]-m_vidc_regs[VIDC_HDSR],m_vidc_regs[VIDC_VDER]-m_vidc_regs[VIDC_VDSR]+1, - // m_vidc_vblank_time); - - attoseconds_t const refresh = HZ_TO_ATTOSECONDS(pixel_rate[m_vidc_pixel_clk]) * m_vidc_regs[VIDC_HCR] * m_vidc_regs[VIDC_VCR]; - - m_screen->configure(m_vidc_regs[VIDC_HCR], m_vidc_regs[VIDC_VCR] * (m_vidc_interlace+1), visarea, refresh); - } - } -} - -WRITE32_MEMBER(archimedes_state::archimedes_vidc_w) -{ - uint32_t reg = data>>24; - uint32_t val = data & 0xffffff; - #if CRTC_LOG - static const char *const vrnames[] = - { - "horizontal total", - "horizontal sync width", - "horizontal border start", - "horizontal display start", - "horizontal display end", - "horizontal border end", - "horizontal cursor start", - "horizontal interlace", - "vertical total", - "vertical sync width", - "vertical border start", - "vertical display start", - "vertical display end", - "vertical border end", - "vertical cursor start", - "vertical cursor end", - }; - #endif - - - // 0x00 - 0x3c Video Palette Logical Colors (16 colors) - // 0x40 Border Color - // 0x44 - 0x4c Cursor Palette Logical Colors - if (reg <= 0x4c) - { - int r,g,b; - - //i = (val & 0x1000) >> 12; //supremacy bit - b = (val & 0x0f00) >> 8; - g = (val & 0x00f0) >> 4; - r = (val & 0x000f) >> 0; - - //if(reg == 0x40 && val & 0xfff) - // logerror("WARNING: border color write here (PC=%08x)!\n",m_maincpu->pc()); - - m_palette->set_pen_color(reg >> 2, pal4bit(r), pal4bit(g), pal4bit(b) ); - - /* handle 8bpp colors here */ - if(reg <= 0x3c) - { - int i; - - for(i=0;i<0x100;i+=0x10) - { - b = ((val & 0x700) >> 8) | ((i & 0x80) >> 4); - g = ((val & 0x030) >> 4) | ((i & 0x60) >> 3); - r = ((val & 0x007) >> 0) | ((i & 0x10) >> 1); - - m_palette->set_pen_color((reg >> 2) + 0x100 + i, pal4bit(r), pal4bit(g), pal4bit(b) ); - } - } - - // update partials - m_screen->update_partial(m_screen->vpos()); - } - else if (reg >= 0x60 && reg <= 0x7c) - { - m_vidc_stereo_reg[(reg >> 2) & 7] = val & 0x07; - -// popmessage("%02x %02x %02x %02x %02x %02x %02x %02x",vidc_stereo_reg[0],vidc_stereo_reg[1],vidc_stereo_reg[2],vidc_stereo_reg[3] -// ,vidc_stereo_reg[4],vidc_stereo_reg[5],vidc_stereo_reg[6],vidc_stereo_reg[7]); - } - else if (reg >= 0x80 && reg <= 0xbc) - { - switch(reg) - { - case VIDC_HCR: m_vidc_regs[VIDC_HCR] = ((val >> 14)<<1)+1; break; -// case VIDC_HSWR: m_vidc_regs[VIDC_HSWR] = (val >> 14)+1; break; - case VIDC_HBSR: m_vidc_regs[VIDC_HBSR] = ((val >> 14)<<1)+1; break; - case VIDC_HDSR: m_vidc_regs[VIDC_HDSR] = (val >> 14); break; - case VIDC_HDER: m_vidc_regs[VIDC_HDER] = (val >> 14); break; - case VIDC_HBER: m_vidc_regs[VIDC_HBER] = ((val >> 14)<<1)+1; break; - case VIDC_HCSR: m_vidc_regs[VIDC_HCSR] = ((val >> 13) & 0x7ff) + 6; break; -// #define VIDC_HIR 0x9c - - case VIDC_VCR: m_vidc_regs[VIDC_VCR] = ((val >> 14))+1; break; -// #define VIDC_VSWR 0xa4 - case VIDC_VBSR: m_vidc_regs[VIDC_VBSR] = (val >> 14)+1; break; - case VIDC_VDSR: m_vidc_regs[VIDC_VDSR] = (val >> 14)+1; break; - case VIDC_VDER: m_vidc_regs[VIDC_VDER] = (val >> 14)+1; break; - case VIDC_VBER: m_vidc_regs[VIDC_VBER] = (val >> 14)+1; break; - case VIDC_VCSR: m_vidc_regs[VIDC_VCSR] = ((val >> 14) & 0x3ff) + 1; break; - case VIDC_VCER: m_vidc_regs[VIDC_VCER] = ((val >> 14) & 0x3ff) + 1; break; - } - - - #if CRTC_LOG - if(reg != VIDC_VCSR && reg != VIDC_VCER && reg != VIDC_HCSR) - logerror("VIDC: %s = %d\n", vrnames[(reg-0x80)/4], m_vidc_regs[reg]); - #endif - - vidc_dynamic_res_change(); - } - else if (reg == 0xc0) - { - m_vidc_regs[reg] = val & 0xffff; - - if (m_audio_dma_on) - { - double sndhz = 1e6 / ((m_vidc_regs[0xc0] & 0xff) + 2); - sndhz /= 8.0; - m_snd_timer->adjust(attotime::zero, 0, attotime::from_hz(sndhz)); - //printf("VIDC: sound freq to %d, sndhz = %f\n", (val & 0xff)-2, sndhz); - } - } - else if (reg == 0xe0) - { - m_vidc_bpp_mode = ((val & 0x0c) >> 2); - m_vidc_interlace = ((val & 0x40) >> 6); - m_vidc_pixel_clk = (val & 0x03); - //todo: vga/svga modes sets 0x1000 - vidc_dynamic_res_change(); - } - else - { - logerror("VIDC: %x to register %x\n", val, reg); - m_vidc_regs[reg] = val&0xffff; - } -} - -READ32_MEMBER(archimedes_state::archimedes_memc_r) -{ - return 0; -} - WRITE32_MEMBER(archimedes_state::archimedes_memc_w) { // is it a register? @@ -1113,6 +884,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_w) case 3: /* cursor init */ m_cursor_enabled = true; + m_vidc->set_cursor_enable(m_cursor_enabled); m_vidc_cinit = 0x2000000 | (((data>>2)&0x7fff)*16); //printf("MEMC: CURSOR INIT %08x\n",((data>>2)&0x7fff)*16); break; @@ -1138,24 +910,25 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_w) logerror("(PC = %08x) MEMC: %x to Control (page size %d, %s, %s)\n", m_maincpu->pc(), data & 0x1ffc, page_sizes[m_memc_pagesize], ((data>>10)&1) ? "Video DMA on" : "Video DMA off", ((data>>11)&1) ? "Sound DMA on" : "Sound DMA off"); - m_video_dma_on = ((data>>10)&1); - m_audio_dma_on = ((data>>11)&1); + m_video_dma_on = BIT(data, 10); + m_audio_dma_on = BIT(data, 11); - if ((data>>10)&1) + if (m_video_dma_on) { m_vidc_vidcur = 0; - m_vid_timer->adjust(m_screen->time_until_pos(m_vidc_vblank_time+1)); + // TODO: update internally } else + { m_cursor_enabled = false; + m_vidc->set_cursor_enable(m_cursor_enabled); + } - if ((data>>11) & 1) + m_vidc->update_sound_mode(m_audio_dma_on); + if (m_audio_dma_on) { //printf("MEMC: Starting audio DMA at %d uSec, buffer from %x to %x\n", ((m_vidc_regs[0xc0]&0xff)-2)*8, m_vidc_sndstart, m_vidc_sndend); - double sndhz = 1e6 / ((m_vidc_regs[0xc0] & 0xff) + 2); - sndhz /= 8.0; - m_snd_timer->adjust(attotime::zero, 0, attotime::from_hz(sndhz)); //printf("MEMC: audio DMA start, sound freq %d, sndhz = %f\n", (m_vidc_regs[0xc0] & 0xff)-2, sndhz); m_vidc_sndcur = m_vidc_sndstart; diff --git a/src/mame/video/archimds.cpp b/src/mame/video/archimds.cpp deleted file mode 100644 index 7b18dc83f30..00000000000 --- a/src/mame/video/archimds.cpp +++ /dev/null @@ -1,229 +0,0 @@ -// license:LGPL-2.1+ -// copyright-holders:Angelo Salese, R. Belmont, Juergen Buchmueller -/*************************************************************************** - - Acorn Archimedes VIDC (VIDeo Controller) emulation - -***************************************************************************/ - -#include "emu.h" -#include "includes/archimds.h" - -uint32_t archimedes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - int xstart,ystart,xend,yend; - int res_x,res_y; - int xsize,ysize; - int calc_dxs = 0,calc_dxe = 0; - const uint8_t x_step[4] = { 19, 11, 7, 5 }; - - /* border color */ - bitmap.fill(m_palette->pen(0x10), cliprect); - - /* define X display area through BPP mode register */ - calc_dxs = (m_vidc_regs[VIDC_HDSR]*2)+x_step[m_vidc_bpp_mode & 3]; - calc_dxe = (m_vidc_regs[VIDC_HDER]*2)+x_step[m_vidc_bpp_mode & 3]; - - /* now calculate display clip rectangle start/end areas */ - xstart = (calc_dxs)-m_vidc_regs[VIDC_HBSR]; - ystart = (m_vidc_regs[VIDC_VDSR]-m_vidc_regs[VIDC_VBSR]); - xend = (calc_dxe)+xstart; - yend = (m_vidc_regs[VIDC_VDER] * (m_vidc_interlace+1))+ystart; - - /* disable the screen if display params are invalid */ - if(xstart > xend || ystart > yend) - return 0; - - xsize = calc_dxe-calc_dxs; - ysize = m_vidc_regs[VIDC_VDER]-m_vidc_regs[VIDC_VDSR]; - - { - int count; - int x,y,xi; - uint8_t pen; - static uint8_t *vram = memregion("vram")->base(); - - count = (0); - - switch(m_vidc_bpp_mode) - { - case 0: //1 bpp - { - for(y=0;ypen((pen>>(xi))&0x1); - if (cliprect.contains(res_x, res_y+1) && (res_x) <= xend && (res_y+1) <= yend) - bitmap.pix32(res_y+1, res_x) = m_palette->pen((pen>>(xi))&0x1); - } - else - { - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) - bitmap.pix32(res_y, res_x) = m_palette->pen((pen>>(xi))&0x1); - } - } - - count++; - } - } - } - break; - case 1: //2 bpp - { - for(y=0;ypen((pen>>(xi*2))&0x3); - if (cliprect.contains(res_x, res_y+1) && (res_x) <= xend && (res_y+1) <= yend) - bitmap.pix32(res_y+1, res_x) = m_palette->pen((pen>>(xi*2))&0x3); - } - else - { - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) - bitmap.pix32(res_y, res_x) = m_palette->pen((pen>>(xi*2))&0x3); - } - } - - count++; - } - } - } - break; - case 2: //4 bpp - { - for(y=0;ypen((pen>>(xi*4))&0xf); - if (cliprect.contains(res_x, res_y+1) && (res_x) <= xend && (res_y+1) <= yend) - bitmap.pix32(res_y+1, res_x) = m_palette->pen((pen>>(xi*4))&0xf); - } - else - { - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) - bitmap.pix32(res_y, res_x) = m_palette->pen((pen>>(xi*4))&0xf); - } - } - - count++; - } - } - } - break; - case 3: //8 bpp - { - for(y=0;ypen((pen&0xff)+0x100); - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y+1) <= yend) - bitmap.pix32(res_y+1, res_x) = m_palette->pen((pen&0xff)+0x100); - } - else - { - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) - bitmap.pix32(res_y, res_x) = m_palette->pen((pen&0xff)+0x100); - } - - count++; - } - } - } - break; - default: - popmessage("Unemulated bpp mode %02x, contact MAME/MESSdev",m_vidc_bpp_mode); - break; - } - - - if(m_cursor_enabled == true) - { - count = 0; - int cursor_h = m_vidc_regs[VIDC_VCER] - m_vidc_regs[VIDC_VCSR]; - - if (cursor_h <= 0) - return 0; - - for(y=0; y>(xi*2))&0x3); - - if(cursor_dot) - { - if(m_vidc_interlace) - { - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) - bitmap.pix32(res_y, res_x) = m_palette->pen(cursor_dot+0x10); - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y+1) <= yend) - bitmap.pix32(res_y+1, res_x) = m_palette->pen(cursor_dot+0x10); - } - else - { - if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) - bitmap.pix32(res_y, res_x) = m_palette->pen(cursor_dot+0x10); - } - } - } - - count++; - } - } - } - } - - - - return 0; -}