srcclean (nw)

This commit is contained in:
Vas Crabb 2017-04-23 12:27:42 +10:00
parent f5da128a94
commit dac6dc4f62
74 changed files with 765 additions and 765 deletions

View File

@ -25153,8 +25153,8 @@
* GS-?? - Crouching Tiger Hidden Dragon (99% this is Tiger A Dragon below)
-->
<!-- For GS-01: You have to enable the "Skip Logo check", at 0x0423 you have to
patch the rom to 0x00 and 0x00....and at 0x0B3D also patch it to
<!-- For GS-01: You have to enable the "Skip Logo check", at 0x0423 you have to
patch the rom to 0x00 and 0x00....and at 0x0B3D also patch it to
0x00....the last routine (0x0B3D) checks if the first one was changed...
after that "Sound of the Pipa" should run... Magic Ball should not have
a Protection Check....

View File

@ -52930,22 +52930,22 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- Alt. Title: Adan y Eva (on the cart label) -->
<software name="adanyeva">
<description>Adam &amp; Eve (Spa)</description>
<year>1991</year>
<publisher>Gluk Video</publisher>
<info name="serial" value="CN-11"/>
<info name="release" value="19910101"/>
<part name="cart" interface="nes_cart">
<description>Adam &amp; Eve (Spa)</description>
<year>1991</year>
<publisher>Gluk Video</publisher>
<info name="serial" value="CN-11"/>
<info name="release" value="19910101"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="cnrom" />
<feature name="pcb" value="NTDEC-N715062" />
<feature name="mirroring" value="vertical" />
<dataarea name="prg" size="32768">
<rom name="0.prg" size="32768" crc="626238f8" sha1="7e757c3f67849330066da6984d97a377bb910f21" offset="00000" />
</dataarea>
<dataarea name="chr" size="32768">
<rom name="0.chr" size="32768" crc="0a7307d9" sha1="de1ef6c5c390947aab477afe7d61e37b6c4d2e32" offset="00000" />
</dataarea>
</part>
<feature name="pcb" value="NTDEC-N715062" />
<feature name="mirroring" value="vertical" />
<dataarea name="prg" size="32768">
<rom name="0.prg" size="32768" crc="626238f8" sha1="7e757c3f67849330066da6984d97a377bb910f21" offset="00000" />
</dataarea>
<dataarea name="chr" size="32768">
<rom name="0.chr" size="32768" crc="0a7307d9" sha1="de1ef6c5c390947aab477afe7d61e37b6c4d2e32" offset="00000" />
</dataarea>
</part>
</software>
<software name="destroyr">

View File

@ -1539,7 +1539,7 @@
<rom name="msdetecticve1.ccd" size="772" crc="92ccce73" sha1="717957cf8f02b585c5845347035cafca1be9613c"/>
<rom name="msdetecticve1.img" size="361540032" crc="bdea9ba7" sha1="dee4ab701aba51df0ebd635131f0b040d5ab81d9"/>
<rom name="msdetecticve1.sub" size="14756736" crc="d02e1e88" sha1="8aa6ebe48b95a36b725748eb43b92d3c90aef63c"/>
*after conversion with IsoBuster+EAC *
<rom name="msdet1.cue" size="263" crc="d2572803" sha1="095924856d2540617e11b88790ad3d50d71b7553"/>
<rom name="Track01.bin" size="470811600" crc="a56fd0c7" sha1="7d1a05f94a1959f28bc5b4f2c9074ea5b0f0488d"/>

View File

@ -344,7 +344,7 @@
<part name="cart" interface="tourvision_cart">
<dataarea name="rom" size="1048576">
<!-- 0x80000 matches PCE dragnegg -->
<rom name="dragon_egg.tv" size="1048576" crc="fa24bc20" sha1="d6da2f5c95bb25d15918e01de951bbf35de9de7b" offset="000000" />
<rom name="dragon_egg.tv" size="1048576" crc="fa24bc20" sha1="d6da2f5c95bb25d15918e01de951bbf35de9de7b" offset="000000" />
</dataarea>
</part>
</software>

View File

@ -771,15 +771,15 @@ project "bx"
configuration { }
local version = str_to_version(_OPTIONS["gcc_version"])
local version = str_to_version(_OPTIONS["gcc_version"])
if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
if version < 60000 then
buildoptions {
"-Wno-strict-overflow",
}
end
end
end
includedirs {
MAME_DIR .. "3rdparty/bx/include",
}

View File

@ -2,9 +2,9 @@
// copyright-holders:Nathan Woods
/***************************************************************************
coco_multi.cpp
coco_multi.cpp
Code for emulating CoCo's Multi-Pak Interface
Code for emulating CoCo's Multi-Pak Interface
The Multi-Pak interface multiplexes all I/O lines from the Color
Computer's expansion port to four identical ports. All I/O lines
@ -47,9 +47,9 @@
$FF9F. No software is known to take advantage of this. After the
introduction of the CoCo 3, which uses $FF9F internally, Tandy provided
free upgrades to any MPI to fix this problem. This behavior is not
emulated (yet).
emulated (yet).
Slots seem to be one-counted (i.e. - 1-4, not 0-3) by convention
Slots seem to be one-counted (i.e. - 1-4, not 0-3) by convention
***************************************************************************/
@ -355,15 +355,15 @@ WRITE8_MEMBER(coco_multipak_device::write)
// multiX_slotX_[cart|nmi|halt] trampolines
//-------------------------------------------------
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot1_cart_w) { update_line(1, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot1_nmi_w) { update_line(1, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot1_halt_w) { update_line(1, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot2_cart_w) { update_line(2, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot2_nmi_w) { update_line(2, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot2_halt_w) { update_line(2, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot3_cart_w) { update_line(3, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot3_nmi_w) { update_line(3, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot3_halt_w) { update_line(3, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot4_cart_w) { update_line(4, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot4_nmi_w) { update_line(4, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot4_halt_w) { update_line(4, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot1_cart_w) { update_line(1, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot1_nmi_w) { update_line(1, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot1_halt_w) { update_line(1, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot2_cart_w) { update_line(2, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot2_nmi_w) { update_line(2, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot2_halt_w) { update_line(2, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot3_cart_w) { update_line(3, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot3_nmi_w) { update_line(3, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot3_halt_w) { update_line(3, cococart_slot_device::line::HALT); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot4_cart_w) { update_line(4, cococart_slot_device::line::CART); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot4_nmi_w) { update_line(4, cococart_slot_device::line::NMI); }
WRITE_LINE_MEMBER(coco_multipak_device::multi_slot4_halt_w) { update_line(4, cococart_slot_device::line::HALT); }

View File

@ -240,7 +240,7 @@ void cococart_slot_device::twiddle_line_if_q(coco_cartridge_line &line)
//-------------------------------------------------
// twiddle_q_lines - hack to support twiddling the
// Q line
// Q line
//-------------------------------------------------
void cococart_slot_device::twiddle_q_lines()

View File

@ -160,7 +160,7 @@ void cpc_multiface2_device::multiface_stop()
m_slot->nmi_w(0);
/* initialise 0065 override to monitor calls to 0065 */
// machine().device("maincpu")->memory().space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&cpc_multiface2_device::amstrad_multiface_directoverride,this));
// machine().device("maincpu")->memory().space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&cpc_multiface2_device::amstrad_multiface_directoverride,this));
}
}

View File

@ -1040,7 +1040,7 @@ WRITE8_MEMBER(nes_waixing_sgz_device::write_h)
iNES: mapper 178
In MESS: Supported.
Implementations wildly vary between emulators, but
Cah4e3's implementation boots up both the games and
the educational carts that assumedly use this board.
@ -1085,7 +1085,7 @@ WRITE8_MEMBER(nes_waixing_sgzlz_device::write_l)
}
}
else
{ // NROM mode
{ // NROM mode
if (BIT(m_reg[0], 3))
{
prg16_89ab(bank);

View File

@ -4,7 +4,7 @@
TMS1000 family - TMS1000, TMS1070, TMS1040, TMS1200, TMS1700, TMS1730,
and second source Motorola MC141000, MC141200.
TODO:
- add TMS1270 (10 O pins, how does that work?)
- add TMS1000C, TMS1200C (CMOS, and 3-level stack)

View File

@ -155,7 +155,7 @@ struct OPL3_SLOT
uint32_t Cnt; /* frequency counter */
uint32_t Incr; /* frequency counter step */
uint8_t FB; /* feedback shift value */
uint8_t conn_enum; /* slot output route */
uint8_t conn_enum; /* slot output route */
int32_t *connect; /* slot output pointer */
int32_t op1_out[2]; /* slot1 output for feedback */
uint8_t CON; /* connection (algorithm) type */

View File

@ -184,7 +184,7 @@ void cesblit_device::do_blit()
#endif
sx &= 0x1ff;
sw &= 0x1ff; // can be 0: draw nothing (see e.g. fade-in effect in galgame3/diamond derby)
sw &= 0x1ff; // can be 0: draw nothing (see e.g. fade-in effect in galgame3/diamond derby)
sy &= 0x1ff;
sh &= 0x1ff;

View File

@ -6011,10 +6011,10 @@ uint8_t saturn_state::get_odd_bit( void )
{
if((STV_VDP2_HRES & 1) == 0)
return STV_VDP2_DISP;
return 1;
}
return machine().first_screen()->frame_number() & 1;
}

View File

@ -553,10 +553,10 @@ void zeus2_device::zeus2_register_update(offs_t offset, uint32_t oldval, int log
}
/*
m_zeusbase[0x4e] :
bit 0 - 1 : which register triggers write through
bit 3 : enable write through via these registers
bit 4 : seems to be set during reads, when 0x41 is used for latching
bit 6 : enable autoincrement on write through
bit 0 - 1 : which register triggers write through
bit 3 : enable write through via these registers
bit 4 : seems to be set during reads, when 0x41 is used for latching
bit 6 : enable autoincrement on write through
*/
if ((offset & 0xf) == (m_zeusbase[0x4e] & 0xf)) {
// If the address is auto-increment then don't load new value
@ -608,8 +608,8 @@ void zeus2_device::zeus2_register_update(offs_t offset, uint32_t oldval, int log
case 5:
{
//if (m_zeusbase[0x41] == 0x266) {
// logit = 1;
// log_fifo = 1;
// logit = 1;
// log_fifo = 1;
//}
// Zeus microcode burst from waveram
if (logit)
@ -754,7 +754,7 @@ void zeus2_device::zeus2_register_update(offs_t offset, uint32_t oldval, int log
}
break;
//case 6: {
// // Zeus model fifo burst from waveram
// // Zeus model fifo burst from waveram
//}
//break;
case 9:
@ -1813,7 +1813,7 @@ void zeus2_renderer::zeus2_draw_quad(const uint32_t *databuffer, uint32_t texdat
}
//if (numverts == 3)
// render_triangle(m_state->zeus_cliprect, render_delegate(&zeus2_renderer::render_poly_8bit, this), 4, vert[0], vert[1], vert[2]);
// render_triangle(m_state->zeus_cliprect, render_delegate(&zeus2_renderer::render_poly_8bit, this), 4, vert[0], vert[1], vert[2]);
render_polygon<4>(m_state->zeus_cliprect, render_delegate(&zeus2_renderer::render_poly_8bit, this), 4, vert);
}
@ -1859,9 +1859,9 @@ void zeus2_renderer::render_poly_8bit(int32_t scanline, const extent_t& extent,
curDepthVal = curz;
}
//if (curz < object.zbuf_min)
// curDepthVal = object.zbuf_min;
// curDepthVal = object.zbuf_min;
//else
// curDepthVal = curz;
// curDepthVal = curz;
if (curDepthVal < 0)
curDepthVal = 0;
bool depth_pass = true;
@ -1974,16 +1974,16 @@ void zeus2_renderer::render_poly_8bit(int32_t scanline, const extent_t& extent,
}
// Rendering for textures with transparent color
//} else {
// // Add rounding
// u0 += (curu >> 7) & 1;
// v0 += (curv >> 7) & 1;
// uint8_t texel0 = object.get_texel(texbase, v0, u0, texwidth);
// if (texel0 != transcolor) {
// uint32_t color0 = m_state->m_pal_table[texel0];
// colorptr[x] = color0;
// if (object.depth_write_enable)
// depthptr[x] = curz; // Should limit to 24 bits
// }
// // Add rounding
// u0 += (curu >> 7) & 1;
// v0 += (curv >> 7) & 1;
// uint8_t texel0 = object.get_texel(texbase, v0, u0, texwidth);
// if (texel0 != transcolor) {
// uint32_t color0 = m_state->m_pal_table[texel0];
// colorptr[x] = color0;
// if (object.depth_write_enable)
// depthptr[x] = curz; // Should limit to 24 bits
// }
}
}
curz += dzdx;
@ -2232,31 +2232,31 @@ std::string zeus2_device::tex_info(void)
case 0x0003ff20: retVal = "0, s=64, t=8_alpha"; break;
case 0x00130300: retVal = "People in stands, s=64, t=8_4x2"; break;
case 0x0007c8e0: retVal = "Greenish blob, s=64, t=8_alpha"; break;
case 0x0015c940: retVal = "Red +"; break;
case 0x0015bf40: retVal = "Blue circle with green outline"; break;
case 0x0015c740: retVal = "Radiation symbol"; break;
case 0x0015cb80: retVal = "Grey square"; break;
case 0x0015d380: retVal = "Green circle inside grey square"; break;
case 0x00159f40: retVal = "Shinny green square"; break;
case 0x001a6340: retVal = "Yellow ski tip"; break;
case 0x001a65a0: retVal = "Metal vest"; break;
case 0x001a6a00: retVal = "Head hole metal vest"; break;
case 0x001a6b70: retVal = "Yellow WES badge"; break;
case 0x001a6140: retVal = "Backwards Yellow WES badge"; break;
case 0x001a6d70: retVal = "Maybe stomach"; break;
case 0x001a6e60: retVal = "Maybe back"; break;
case 0x001a6f20: retVal = "Hand with black glove"; break;
case 0x001a7090: retVal = "Wes Face"; break;
case 0x001a72c0: retVal = "Dark red strip"; break;
case 0x001a7340: retVal = "Wes shoulder pad"; break;
case 0x001a7460: retVal = "Orange circle"; break;
case 0x001a5e20: retVal = "Wes belt"; break;
case 0x001a5f40: retVal = "Wes orange strip on side"; break;
case 0x001a7770: retVal = "Grey something"; break;
case 0x001a74e0: retVal = "Grey maybe top of boot"; break;
case 0x001a76e0: retVal = "Grey hexagon"; break;
case 0x001a7800: retVal = "Belt pouches"; break;
case 0x0015a340: retVal = "Green shinny block"; break;
case 0x0015c940: retVal = "Red +"; break;
case 0x0015bf40: retVal = "Blue circle with green outline"; break;
case 0x0015c740: retVal = "Radiation symbol"; break;
case 0x0015cb80: retVal = "Grey square"; break;
case 0x0015d380: retVal = "Green circle inside grey square"; break;
case 0x00159f40: retVal = "Shinny green square"; break;
case 0x001a6340: retVal = "Yellow ski tip"; break;
case 0x001a65a0: retVal = "Metal vest"; break;
case 0x001a6a00: retVal = "Head hole metal vest"; break;
case 0x001a6b70: retVal = "Yellow WES badge"; break;
case 0x001a6140: retVal = "Backwards Yellow WES badge"; break;
case 0x001a6d70: retVal = "Maybe stomach"; break;
case 0x001a6e60: retVal = "Maybe back"; break;
case 0x001a6f20: retVal = "Hand with black glove"; break;
case 0x001a7090: retVal = "Wes Face"; break;
case 0x001a72c0: retVal = "Dark red strip"; break;
case 0x001a7340: retVal = "Wes shoulder pad"; break;
case 0x001a7460: retVal = "Orange circle"; break;
case 0x001a5e20: retVal = "Wes belt"; break;
case 0x001a5f40: retVal = "Wes orange strip on side"; break;
case 0x001a7770: retVal = "Grey something"; break;
case 0x001a74e0: retVal = "Grey maybe top of boot"; break;
case 0x001a76e0: retVal = "Grey hexagon"; break;
case 0x001a7800: retVal = "Belt pouches"; break;
case 0x0015a340: retVal = "Green shinny block"; break;
default: retVal = "Unknown"; break;
}
}

View File

@ -42,18 +42,18 @@ struct zeus2_poly_extra_data
uint16_t texwidth;
uint16_t color;
uint32_t srcAlpha;
uint32_t dstAlpha;
uint32_t dstAlpha;
uint32_t ctrl_word;
uint32_t ucode_src;
uint32_t tex_src;
bool texture_alpha;
bool texture_rgb555;
uint32_t ucode_src;
uint32_t tex_src;
bool texture_alpha;
bool texture_rgb555;
bool blend_enable;
int32_t zbuf_min;
int32_t zbuf_min;
bool depth_min_enable;
bool depth_test_enable;
bool depth_write_enable;
bool depth_clear_enable;
bool depth_clear_enable;
uint8_t(*get_texel)(const void *, int, int, int);
uint8_t(*get_alpha)(const void *, int, int, int);
@ -245,7 +245,7 @@ public:
addr = m_zeusbase[0x38] >> (16 - 9 - 2 * m_yScale);
}
//uint32_t addr = render ? frame_addr_from_phys_addr(m_renderRegs[0x4] << (15 + m_yScale))
// : frame_addr_from_phys_addr((m_zeusbase[0x38] >> 1) << (m_yScale << 1));
// : frame_addr_from_phys_addr((m_zeusbase[0x38] >> 1) << (m_yScale << 1));
addr += (y << (9 + m_yScale)) + x;
return addr;
}

View File

@ -1013,7 +1013,7 @@ u64 debugger_cpu::expression_read_memory(void *param, const char *name, expressi
auto dis = m_machine.disable_side_effect(disable_se);
return expression_read_program_direct(memory->space(AS_DECRYPTED_OPCODES), (spacenum == EXPSPACE_OPCODE), address, size);
break;
}
}
case EXPSPACE_REGION:
if (name == nullptr)

View File

@ -1208,9 +1208,9 @@ image_init_result device_image_interface::create(const std::string &path, const
//-------------------------------------------------
// reset_and_load - called internally when we try
// to load an is_reset_on_load() item; will reset
// the emulation and record this image to be loaded
// reset_and_load - called internally when we try
// to load an is_reset_on_load() item; will reset
// the emulation and record this image to be loaded
//-------------------------------------------------
void device_image_interface::reset_and_load(const std::string &path)

View File

@ -334,7 +334,7 @@ private:
// flags
bool m_readonly;
bool m_created;
// special - used when creating
int m_create_format;
util::option_resolution *m_create_args;

View File

@ -159,4 +159,4 @@ bool get_default_card_software_hook::hashfile_extrainfo(std::string &extrainfo)
}
extrainfo = m_hash_extrainfo;
return m_has_hash_extrainfo;
}
}

View File

@ -99,7 +99,7 @@ class get_default_card_software_hook
public:
get_default_card_software_hook(const std::string &path, std::function<bool(util::core_file &, std::string&)> &&get_hashfile_extrainfo);
// accesses the image file to be scrutinized by get_default_card_software(); is
// accesses the image file to be scrutinized by get_default_card_software(); is
// nullptr in the case of images loaded by software list
util::core_file::ptr &image_file() { return m_image_file; }
@ -110,12 +110,12 @@ public:
bool hashfile_extrainfo(std::string &extrainfo);
private:
util::core_file::ptr m_image_file;
std::string m_file_type;
std::function<bool(util::core_file &, std::string&)> m_get_hashfile_extrainfo;
bool m_called_get_hashfile_extrainfo;
bool m_has_hash_extrainfo;
std::string m_hash_extrainfo;
util::core_file::ptr m_image_file;
std::string m_file_type;
std::function<bool(util::core_file &, std::string&)> m_get_hashfile_extrainfo;
bool m_called_get_hashfile_extrainfo;
bool m_has_hash_extrainfo;
std::string m_hash_extrainfo;
};

View File

@ -267,9 +267,9 @@ void emu_options::value_changed(const std::string &name, const std::string &valu
//-------------------------------------------------
// override_get_value - when saving to an INI, we
// need to hook into that process so we can write
// out image/slot options
// override_get_value - when saving to an INI, we
// need to hook into that process so we can write
// out image/slot options
//-------------------------------------------------
core_options::override_get_value_result emu_options::override_get_value(const char *name, std::string &value) const
@ -298,9 +298,9 @@ core_options::override_get_value_result emu_options::override_get_value(const ch
//-------------------------------------------------
// override_set_value - when parsing an INI, we
// need to hook into into it so we can do the same
// crazy slot logic done in mameopt
// override_set_value - when parsing an INI, we
// need to hook into into it so we can do the same
// crazy slot logic done in mameopt
//-------------------------------------------------
bool emu_options::override_set_value(const char *name, const std::string &value)
@ -334,7 +334,7 @@ bool emu_options::override_set_value(const char *name, const std::string &value)
//-------------------------------------------------
// slot_option ctor
// slot_option ctor
//-------------------------------------------------
slot_option::slot_option(const char *default_value)
@ -345,7 +345,7 @@ slot_option::slot_option(const char *default_value)
//-------------------------------------------------
// slot_option::value
// slot_option::value
//-------------------------------------------------
const std::string &slot_option::value() const
@ -353,17 +353,17 @@ const std::string &slot_option::value() const
// There are a number of ways that the value can be determined; there
// is a specific order of precedence:
//
// 1. Highest priority is whatever may have been specified by the user (whether it
// was specified at the command line, an INI file, or in the UI). We keep track
// of whether these values were specified this way
// 1. Highest priority is whatever may have been specified by the user (whether it
// was specified at the command line, an INI file, or in the UI). We keep track
// of whether these values were specified this way
//
// Take note that slots have a notion of being "selectable". Slots that are not
// marked as selectable cannot be specified with this technique
// Take note that slots have a notion of being "selectable". Slots that are not
// marked as selectable cannot be specified with this technique
//
// 2. Next highest is what is returned from get_default_card_software()
// 2. Next highest is what is returned from get_default_card_software()
//
// 3. Last in priority is what was specified as the slot default. This comes from
// device setup
// 3. Last in priority is what was specified as the slot default. This comes from
// device setup
if (m_specified)
return m_specified_value;
else if (!m_default_card_software.empty())
@ -374,7 +374,7 @@ const std::string &slot_option::value() const
//-------------------------------------------------
// slot_option::specified_value
// slot_option::specified_value
//-------------------------------------------------
std::string slot_option::specified_value() const
@ -391,7 +391,7 @@ std::string slot_option::specified_value() const
//-------------------------------------------------
// slot_option::specify
// slot_option::specify
//-------------------------------------------------
void slot_option::specify(std::string &&text)
@ -416,7 +416,7 @@ void slot_option::specify(std::string &&text)
//-------------------------------------------------
// slot_option::set_bios
// slot_option::set_bios
//-------------------------------------------------
void slot_option::set_bios(std::string &&text)

View File

@ -235,11 +235,11 @@ public:
void set_default_card_software(std::string &&s) { m_default_card_software = std::move(s); }
private:
bool m_specified;
std::string m_specified_value;
std::string m_specified_bios;
std::string m_default_card_software;
std::string m_default_value;
bool m_specified;
std::string m_specified_value;
std::string m_specified_bios;
std::string m_default_card_software;
std::string m_default_value;
};
@ -448,15 +448,15 @@ private:
static const options_entry s_option_entries[];
// slots and devices
std::map<std::string, slot_option> m_slot_options;
std::map<std::string, std::string> m_image_options;
std::map<std::string, slot_option> m_slot_options;
std::map<std::string, std::string> m_image_options;
// cached options, for scenarios where parsing core_options is too slow
int m_coin_impulse;
bool m_joystick_contradictory;
bool m_sleep;
bool m_refresh_speed;
ui_option m_ui;
int m_coin_impulse;
bool m_joystick_contradictory;
bool m_sleep;
bool m_refresh_speed;
ui_option m_ui;
};
#endif // MAME_EMU_EMUOPTS_H

View File

@ -1068,15 +1068,15 @@ int open_disk_image(emu_options &options, const game_driver *gamedrv, const rom_
// and try to open that
//
// An example of a system that requires this is src/mame/drivers/ksys673.cpp, that has declarations like this:
// ...
// DISK_IMAGE_READONLY("889aa", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// DISK_IMAGE_READONLY("889ea", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// DISK_IMAGE_READONLY("889ja", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// DISK_IMAGE_READONLY("889ua", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// ...
// DISK_IMAGE_READONLY("889aa", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// DISK_IMAGE_READONLY("889ea", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// DISK_IMAGE_READONLY("889ja", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
// DISK_IMAGE_READONLY("889ua", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac))
// ...
util::hash_collection romphashes(ROM_GETHASHDATA(romp));
for (int drv = driver_list::find(*gamedrv); drv != -1; drv = driver_list::clone(drv))
{

View File

@ -100,7 +100,7 @@ private:
driver_enumerator m_drivlist;
// blank options for use during validation
emu_options m_blank_options;
emu_options m_blank_options;
// error tracking
int m_errors;

View File

@ -115,7 +115,7 @@ void mame_options::update_slot_options(emu_options &options, const software_part
//-------------------------------------------------
// get_default_card_software
// get_default_card_software
//-------------------------------------------------
std::string mame_options::get_default_card_software(device_slot_interface &slot, const emu_options &options)
@ -130,7 +130,7 @@ std::string mame_options::get_default_card_software(device_slot_interface &slot,
auto iter = options.image_options().find(image->instance_name());
if (iter != options.image_options().end())
image_path = iter->second;
get_hashfile_extrainfo = [image, &options](util::core_file &file, std::string &extrainfo)
{
util::hash_collection hashes = image->calculate_hash_on_file(file);

View File

@ -26,7 +26,7 @@ namespace ui {
#define ERROR_MESSAGE_TIME 5
// item reference for "Switch Item Ordering"
#define ITEMREF_SWITCH_ITEM_ORDERING ((void *)1)
#define ITEMREF_SWITCH_ITEM_ORDERING ((void *)1)
/***************************************************************************

View File

@ -377,42 +377,42 @@ static floperr_t fd_construct(floppy_image_legacy *floppy, int tracks, int secto
static FLOPPY_IDENTIFY(fd_80_256_identify)
{
return fd_identify(floppy, vote, 80, 256);
return fd_identify(floppy, vote, 80, 256);
}
static FLOPPY_CONSTRUCT(fd_80_256_construct)
{
return fd_construct(floppy, 80, 256);
return fd_construct(floppy, 80, 256);
}
static FLOPPY_IDENTIFY(fd_40_256_identify)
{
return fd_identify(floppy, vote, 40, 256);
return fd_identify(floppy, vote, 40, 256);
}
static FLOPPY_CONSTRUCT(fd_40_256_construct)
{
return fd_construct(floppy, 40, 256);
return fd_construct(floppy, 40, 256);
}
static FLOPPY_IDENTIFY(fd_80_128_identify)
{
return fd_identify(floppy, vote, 80, 128);
return fd_identify(floppy, vote, 80, 128);
}
static FLOPPY_CONSTRUCT(fd_80_128_construct)
{
return fd_construct(floppy, 80, 128);
return fd_construct(floppy, 80, 128);
}
static FLOPPY_IDENTIFY(fd_40_128_identify)
{
return fd_identify(floppy, vote, 40, 128);
return fd_identify(floppy, vote, 40, 128);
}
static FLOPPY_CONSTRUCT(fd_40_128_construct)
{
return fd_construct(floppy, 40, 128);
return fd_construct(floppy, 40, 128);
}
@ -421,24 +421,24 @@ static FLOPPY_CONSTRUCT(fd_40_128_construct)
LEGACY_FLOPPY_OPTIONS_START(thomson)
LEGACY_FLOPPY_OPTION(fdmfm2, "fd", "Thomson FD (MFM) 80 tracks disk image (3\"1/2 DD)",
fd_80_256_identify, fd_80_256_construct, nullptr, nullptr)
fd_80_256_identify, fd_80_256_construct, nullptr, nullptr)
// Note: no way to distinguish between FD files for 5"1/4 DD and 3"1/2 SD actually, as they have the same size
// however, we expect 3"1/2 SD to be rather rare, so, we simply put it after 5"1/4 DD
LEGACY_FLOPPY_OPTION(fdmfm, "fd", "Thomson FD (MFM) 40 tracks disk image (5\"1/4 DD)",
fd_40_256_identify, fd_40_256_construct, nullptr, nullptr)
fd_40_256_identify, fd_40_256_construct, nullptr, nullptr)
LEGACY_FLOPPY_OPTION(fd2, "fd", "Thomson FD (FM) 80 tracks disk image (3\"1/2 SD)",
fd_80_128_identify, fd_80_128_construct, nullptr, nullptr)
fd_80_128_identify, fd_80_128_construct, nullptr, nullptr)
LEGACY_FLOPPY_OPTION(fd, "fd", "Thomson FD (FM) 40 tracks disk image (5\"1/4 SD)",
fd_40_128_identify, fd_40_128_construct, nullptr, nullptr)
fd_40_128_identify, fd_40_128_construct, nullptr, nullptr)
LEGACY_FLOPPY_OPTION(sap,"sap", "Thomson SAP floppy disk image",
sap_dsk_identify, sap_dsk_construct, nullptr, nullptr)
sap_dsk_identify, sap_dsk_construct, nullptr, nullptr)
LEGACY_FLOPPY_OPTION(qdd,"qd", "Thomson QDD floppy disk image (2\"8 SD)",
qdd_dsk_identify, qdd_dsk_construct, nullptr, nullptr)
qdd_dsk_identify, qdd_dsk_construct, nullptr, nullptr)
LEGACY_FLOPPY_OPTIONS_END

View File

@ -44,9 +44,9 @@ namespace netlist
struct need_bytes_for_bits
{
enum { value =
bits <= 8 ? 1 :
bits <= 16 ? 2 :
bits <= 32 ? 4 :
bits <= 8 ? 1 :
bits <= 16 ? 2 :
bits <= 32 ? 4 :
8
};
};

82
src/lib/netlist/plib/pstring.h Executable file → Normal file
View File

@ -62,18 +62,18 @@ public:
typedef typename traits_type::mem_t mem_t;
typedef typename traits_type::code_t code_t;
typedef std::size_t size_type;
typedef std::ptrdiff_t difference_type;
typedef typename traits_type::string_type string_type;
typedef std::size_t size_type;
typedef std::ptrdiff_t difference_type;
typedef typename traits_type::string_type string_type;
class ref_value_type final
{
public:
ref_value_type() = delete;
ref_value_type(const ref_value_type &) = delete;
ref_value_type(ref_value_type &&) = delete;
ref_value_type &operator=(const ref_value_type &) = delete;
ref_value_type &operator=(ref_value_type &&) = delete;
ref_value_type() = delete;
ref_value_type(const ref_value_type &) = delete;
ref_value_type(ref_value_type &&) = delete;
ref_value_type &operator=(const ref_value_type &) = delete;
ref_value_type &operator=(ref_value_type &&) = delete;
operator code_t() const noexcept { return traits_type::code(&m); }
private:
const mem_t m;
@ -166,8 +166,8 @@ public:
const_iterator cend() const { return const_iterator(m_str.end()); }
// C string conversion helpers
const mem_t *c_str() const { return static_cast<const mem_t *>(m_str.c_str()); }
const mem_t *data() const { return c_str(); }
const mem_t *c_str() const { return static_cast<const mem_t *>(m_str.c_str()); }
const mem_t *data() const { return c_str(); }
size_type length() const { return traits_type::len(m_str); }
size_type size() const { return traits_type::len(m_str); }
@ -369,7 +369,7 @@ struct putf16_traits
while (i != p.end())
{
// FIXME: check that size is equal
uint16_t c = static_cast<uint16_t>(*i++);
uint16_t c = static_cast<uint16_t>(*i++);
if (!((c & 0xd800) == 0xd800))
ret++;
}
@ -377,8 +377,8 @@ struct putf16_traits
}
static std::size_t codelen(const mem_t *p)
{
uint16_t c = static_cast<uint16_t>(*p);
return ((c & 0xd800) == 0xd800) ? 2 : 1;
uint16_t c = static_cast<uint16_t>(*p);
return ((c & 0xd800) == 0xd800) ? 2 : 1;
}
static std::size_t codelen(const code_t c)
{
@ -389,28 +389,28 @@ struct putf16_traits
}
static code_t code(const mem_t *p)
{
uint32_t c = static_cast<uint32_t>(*p++);
if ((c & 0xd800) == 0xd800)
{
c = (c - 0xd800) << 10;
c += static_cast<uint32_t>(*p) - 0xdc00 + 0x10000;
}
return static_cast<code_t>(c);
uint32_t c = static_cast<uint32_t>(*p++);
if ((c & 0xd800) == 0xd800)
{
c = (c - 0xd800) << 10;
c += static_cast<uint32_t>(*p) - 0xdc00 + 0x10000;
}
return static_cast<code_t>(c);
}
static void encode(code_t c, string_type &s)
{
uint32_t cu = static_cast<uint32_t>(c);
if (c > 0xffff)
{ //make a surrogate pair
uint32_t t = ((cu - 0x10000) >> 10) + 0xd800;
cu = (cu & 0x3ff) + 0xdc00;
s += static_cast<mem_t>(t);
s += static_cast<mem_t>(cu);
}
else
{
s += static_cast<mem_t>(cu);
}
if (c > 0xffff)
{ //make a surrogate pair
uint32_t t = ((cu - 0x10000) >> 10) + 0xd800;
cu = (cu & 0x3ff) + 0xdc00;
s += static_cast<mem_t>(t);
s += static_cast<mem_t>(cu);
}
else
{
s += static_cast<mem_t>(cu);
}
}
static const mem_t *nthcode(const mem_t *p, const std::size_t n)
{
@ -435,7 +435,7 @@ struct pwchar_traits
while (i != p.end())
{
// FIXME: check that size is equal
uint32_t c = static_cast<uint32_t>(*i++);
uint32_t c = static_cast<uint32_t>(*i++);
if (!((c & 0xd800) == 0xd800))
ret++;
}
@ -449,8 +449,8 @@ struct pwchar_traits
{
if (sizeof(wchar_t) == 2)
{
uint16_t c = static_cast<uint16_t>(*p);
return ((c & 0xd800) == 0xd800) ? 2 : 1;
uint16_t c = static_cast<uint16_t>(*p);
return ((c & 0xd800) == 0xd800) ? 2 : 1;
}
else
return 1;
@ -468,13 +468,13 @@ struct pwchar_traits
{
if (sizeof(wchar_t) == 2)
{
uint32_t c = static_cast<uint32_t>(*p++);
if ((c & 0xd800) == 0xd800)
{
c = (c - 0xd800) << 10;
c += static_cast<uint32_t>(*p) - 0xdc00 + 0x10000;
}
return static_cast<code_t>(c);
uint32_t c = static_cast<uint32_t>(*p++);
if ((c & 0xd800) == 0xd800)
{
c = (c - 0xd800) << 10;
c += static_cast<uint32_t>(*p) - 0xdc00 + 0x10000;
}
return static_cast<code_t>(c);
}
else
return static_cast<code_t>(*p);

View File

@ -38,7 +38,7 @@ constexpr bool gregorian_is_leap_year(int year)
//-------------------------------------------------
// gregorian_days_in_month - given a year and a one-counted
// month, return the amount of days in that month
// month, return the amount of days in that month
//-------------------------------------------------
inline int gregorian_days_in_month(int month, int year)

View File

@ -21,7 +21,7 @@
namespace util {
/***************************************************************************
GLOBAL VARIABLES
GLOBAL VARIABLES
***************************************************************************/
extern std::chrono::system_clock::duration system_clock_adjustment;
@ -35,18 +35,18 @@ typedef std::chrono::duration<std::uint64_t, std::ratio<1, 10000000> > ntfs_dura
//---------------------------------------------------------
// arbitrary_clock - an std::chrono clock that "knows" the
// date of the epoch's begining
// arbitrary_clock - an std::chrono clock that "knows" the
// date of the epoch's begining
//---------------------------------------------------------
template<typename Rep, int Y, int M, int D, int H, int N, int S, typename Ratio>
class arbitrary_clock
{
public:
typedef Rep rep;
typedef Ratio period;
typedef std::chrono::duration<rep, period> duration;
typedef std::chrono::time_point<arbitrary_clock> time_point;
typedef Rep rep;
typedef Ratio period;
typedef std::chrono::duration<rep, period> duration;
typedef std::chrono::time_point<arbitrary_clock> time_point;
static constexpr int base_year = Y;
static constexpr int base_month = M;
static constexpr int base_day = D;
@ -55,8 +55,8 @@ public:
static constexpr int base_second = S;
//---------------------------------------------------------
// from_arbitrary_time_point - converts an arbitrary_clock
// with a different scale to this arbitrary_clock's scale
// from_arbitrary_time_point - converts an arbitrary_clock
// with a different scale to this arbitrary_clock's scale
//---------------------------------------------------------
template<typename Rep2, int Y2, int M2, int D2, int H2, int N2, int S2, typename Ratio2>
@ -75,8 +75,8 @@ public:
//---------------------------------------------------------
// to_arbitrary_time_point - converts an arbitrary_clock
// of this scale to one of different scale
// to_arbitrary_time_point - converts an arbitrary_clock
// of this scale to one of different scale
//---------------------------------------------------------
template<typename Rep2, int Y2, int M2, int D2, int H2, int N2, int S2, typename Ratio2>
@ -87,7 +87,7 @@ public:
//---------------------------------------------------------
// to_tm - formats a structure of type 'struct tm'
// to_tm - formats a structure of type 'struct tm'
//---------------------------------------------------------
static struct tm to_tm(const time_point &tp)
@ -106,7 +106,7 @@ public:
//---------------------------------------------------------
// to_system_clock - converts to a system_clock time_point
// to_system_clock - converts to a system_clock time_point
//---------------------------------------------------------
static std::chrono::time_point<std::chrono::system_clock> to_system_clock(const time_point &tp)
@ -124,7 +124,7 @@ public:
}
//---------------------------------------------------------
// from_system_clock - converts from a system_clock time_point
// from_system_clock - converts from a system_clock time_point
//---------------------------------------------------------
static time_point from_system_clock(const std::chrono::time_point<std::chrono::system_clock> &tp)
@ -138,13 +138,13 @@ private:
//
// * years with leap years are at the end of every quadyear
// * quadyears without leap years are at the end of every century
// * centuries where the last quadyear has a leap year at the end are at the
// end of every quadcentury
// * centuries where the last quadyear has a leap year at the end are at the
// end of every quadcentury
typedef arbitrary_clock<std::int64_t, 1601, 1, 1, 0, 0, 0, std::ratio<1, 1> > tm_conversion_clock;
//---------------------------------------------------------
// internal_to_tm - formats a structure of type 'struct tm'
// based on a normalized clock
// internal_to_tm - formats a structure of type 'struct tm'
// based on a normalized clock
//---------------------------------------------------------
static struct tm internal_to_tm(std::chrono::duration<std::int64_t, std::ratio<1, 1> > duration)
@ -217,8 +217,8 @@ private:
typedef arbitrary_clock<std::int64_t, 1970, 1, 1, 0, 0, 0, std::chrono::system_clock::period > system_conversion_clock;
//-------------------------------------------------
// absolute_day - returns the absolute day count
// for the specified year/month/day
// absolute_day - returns the absolute day count
// for the specified year/month/day
//-------------------------------------------------
static int64_t absolute_day(int year, int month, int day)

View File

@ -50,7 +50,7 @@ static const char *const nsub_sample_names[] =
};
/* sample ids - must match sample file name table above */
enum
enum
{
SND_EXPL_L0 = 0,
SND_EXPL_L1,

View File

@ -65,7 +65,7 @@ Notes:
TODO:
- PWM sound in ABC-klubben/abc80/grafik/flagga.bac
- PWM sound in ABC-klubben/abc80/grafik/flagga.bac
- proper keyboard controller emulation
- MyAB TKN80 80-column card
- GeJo 80-column card

View File

@ -141,7 +141,7 @@ Notes:
TODO:
- option ROM/HR video RAM access needs refactor of memory banking
- option ROM/HR video RAM access needs refactor of memory banking
- cassette
- abc806 RTC
- abc806 disks except ufd631 won't boot

View File

@ -43,7 +43,7 @@ public:
required_shared_ptr<uint16_t> m_vregs;
/* video-related */
TILEMAP_MAPPER_MEMBER(pagescan);
TILEMAP_MAPPER_MEMBER(pagescan);
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
DECLARE_WRITE16_MEMBER(acchi_bg_videoram_w);
@ -94,7 +94,7 @@ TILE_GET_INFO_MEMBER(acchi_state::get_acchi_fg_tile_info)
TILEMAP_MAPPER_MEMBER(acchi_state::pagescan)
{
return (col &0xff) * (num_rows>>1) + (row & 0xf) + ((row & 0x10)<<8) + ((col & 0x300) << 5);
// return (col &0xff) * (num_rows>>1) + (row & 0xf) + ((row & 0x10)<<8) + ((col & 0x100) << 5); // see comment with tilemap creation
// return (col &0xff) * (num_rows>>1) + (row & 0xf) + ((row & 0x10)<<8) + ((col & 0x100) << 5); // see comment with tilemap creation
}
@ -107,8 +107,8 @@ void acchi_state::video_start()
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(acchi_state::get_acchi_fg_tile_info),this), tilemap_mapper_delegate(FUNC(acchi_state::pagescan),this), 16, 16, 1024,16*2);
// 2nd half of the ram seems unused, maybe it's actually a mirror meaning this would be the correct tilemap sizes
// m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(acchi_state::get_acchi_bg_tile_info),this), tilemap_mapper_delegate(FUNC(acchi_state::pagescan),this), 16, 16, 1024/2,16*2);
// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(acchi_state::get_acchi_fg_tile_info),this), tilemap_mapper_delegate(FUNC(acchi_state::pagescan),this), 16, 16, 1024/2,16*2);
// m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(acchi_state::get_acchi_bg_tile_info),this), tilemap_mapper_delegate(FUNC(acchi_state::pagescan),this), 16, 16, 1024/2,16*2);
// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(acchi_state::get_acchi_fg_tile_info),this), tilemap_mapper_delegate(FUNC(acchi_state::pagescan),this), 16, 16, 1024/2,16*2);
m_fg_tilemap->set_transparent_pen(0xf);
}
@ -134,7 +134,7 @@ uint32_t acchi_state::screen_update_acchi(screen_device &screen, bitmap_ind16 &b
scrolly&=0x1ff;
m_fg_tilemap->set_scrollx(0, scrollx);
m_fg_tilemap->set_scrolly(0, scrolly);
m_fg_tilemap->set_scrolly(0, scrolly);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
@ -142,17 +142,17 @@ uint32_t acchi_state::screen_update_acchi(screen_device &screen, bitmap_ind16 &b
/*
popmessage("%04x %04x %04x %04x\n%04x %04x %04x %04x",
m_vregs[0], m_vregs[1],
m_vregs[2], m_vregs[3],
m_vregs[4], m_vregs[5],
m_vregs[6], m_vregs[7]);
m_vregs[0], m_vregs[1],
m_vregs[2], m_vregs[3],
m_vregs[4], m_vregs[5],
m_vregs[6], m_vregs[7]);
*/
return 0;
}
/*
also
also
[:maincpu] ':maincpu' (00A284): unmapped program memory write to 110400 = 0000 & FFFF
[:maincpu] ':maincpu' (00A284): unmapped program memory write to 110402 = 0000 & FFFF
@ -173,17 +173,17 @@ static ADDRESS_MAP_START( acchi_map, AS_PROGRAM, 16, acchi_state )
AM_RANGE(0x100014, 0x100015) AM_WRITE8(flipscreen_w, 0x00ff)
AM_RANGE(0x110000, 0x1103ff) AM_RAM AM_SHARE("videoregs")
AM_RANGE(0x110000, 0x1103ff) AM_RAM AM_SHARE("videoregs")
AM_RANGE(0x120000, 0x1205ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x130000, 0x13ffff) AM_RAM_WRITE(acchi_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x140000, 0x14ffff) AM_RAM_WRITE(acchi_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x130000, 0x13ffff) AM_RAM_WRITE(acchi_fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x140000, 0x14ffff) AM_RAM_WRITE(acchi_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x150000, 0x150001) AM_WRITENOP // ? also reads (oki?)
AM_RANGE(0x150010, 0x150011) AM_WRITENOP // ? also reads
AM_RANGE(0x180000, 0x18ffff) AM_RAM // mainram?
AM_RANGE(0x180000, 0x18ffff) AM_RAM // mainram?
ADDRESS_MAP_END
static INPUT_PORTS_START( acchi ) // inputs register in test mode but not in game mode?
@ -219,7 +219,7 @@ static INPUT_PORTS_START( acchi ) // inputs register in test mode but not in gam
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x00, "DSW1:2")
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x00, "DSW1:1")
PORT_START("DSW2")
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x00, "DSW2:8")
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x00, "DSW2:7")
@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( acchi, acchi_state )
MCFG_OKIM6295_ADD("oki2", 16000000/16, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47)
MACHINE_CONFIG_END
ROM_START( acchi )

View File

@ -204,7 +204,7 @@ uint32_t astinvad_state::screen_update_spcking2(screen_device &screen, bitmap_rg
uint32_t astinvad_state::screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
uint8_t x,y;
for (offs_t offs = 0; offs < m_videoram.bytes(); offs++)
{
uint8_t data = m_videoram[offs];

View File

@ -1307,7 +1307,7 @@ static INPUT_PORTS_START(crospuzl)
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("IN2")
PORT_DIPNAME( 0x01, 0x01, "IN2" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
@ -1334,7 +1334,7 @@ static INPUT_PORTS_START(crospuzl)
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("IN3")
PORT_DIPNAME( 0x01, 0x01, "IN3" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )

View File

@ -9,7 +9,7 @@
Appears to be a down-grade of the nmk16 HW
TODO:
- Fix MCU simulation for credit subtractions & add coinage settings (currently set to free play for convenience);
- Fix MCU simulation for credit subtractions & add coinage settings (currently set to free play for convenience);
- Understand better the video emulation and convert it to tilemaps;
- Decap + emulate MCU, required if the random number generation is going to be accurate;
@ -563,7 +563,7 @@ static INPUT_PORTS_START( ddealer )
PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:1" ) /* Listed as "Always Off" */
PORT_START("UNK")
PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // MCU port?
PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // MCU port?
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END

View File

@ -2937,7 +2937,7 @@ ROM_END
ROM_START( ghostb3a )
ROM_REGION( 0x50000, "maincpu", 0 )
ROM_LOAD( "dz01-2.1d", 0x08000, 0x08000, CRC(1b16890e) SHA1(eebd253d616b6286937b72cfb64612877f383932) )
ROM_LOAD( "dz01-2.1d", 0x08000, 0x08000, CRC(1b16890e) SHA1(eebd253d616b6286937b72cfb64612877f383932) )
ROM_LOAD( "dz02-.3d", 0x10000, 0x10000, CRC(8e117541) SHA1(7dfa6eabb29f39a615f3e5123bddcc7197ab82d0) ) // == dz02.3d (ghostb3)
ROM_LOAD( "dz03-.4d", 0x20000, 0x10000, CRC(5606a8f4) SHA1(e46e887f13f648fe2162cb853b3c20fa60e3d215) ) // == dz03.4d (ghostb3)
ROM_LOAD( "dz04-.6d", 0x30000, 0x10000, CRC(490b4525) SHA1(3066b76f8fe99c8f9f1cdf943209883a199a4184) )

View File

@ -242,8 +242,8 @@ WRITE8_MEMBER(discoboy_state::port_01_w)
WRITE8_MEMBER(discoboy_state::port_06_w)
{
//printf("unk discoboy_port_06_w %02x\n",data);
if (data != 0) logerror("port 06!!!! %02x\n",data);
//printf("unk discoboy_port_06_w %02x\n",data);
if (data != 0) logerror("port 06!!!! %02x\n",data);
}
READ8_MEMBER(discoboy_state::rambank2_r)

View File

@ -1110,7 +1110,7 @@ WRITE8_MEMBER(fidelz80_state::dsc_select_w)
{
// d4: speaker out
m_dac->write(BIT(~data, 4));
// d0-d3: digit select
m_led_select = data & 0xf;
dsc_prepare_display();

View File

@ -93,7 +93,7 @@ else on it because when I ripped the entire drive and compressed it, the compres
to upload. So I just ripped the partitions (it had 3) and the size was reasonable. This rip was burned into another drive and
tested working on the real hardware. It uses the same hardware and bios as the kit version.*/
DISK_REGION( "disks" )
DISK_REGION( "disks" )
DISK_IMAGE( "tokyocop", 0, SHA1(f3b60046da7094743822191473e05ee9cbc1af86) )
ROM_END

View File

@ -17,14 +17,14 @@
Main CPU: 68000-12
Video: 056832 / 058143 (GX tilemaps)
Video: 000907 LCD Controller
WANTED: main PCB and any other PCBs for GI Classic EX, plus any and all
WANTED: main PCB and any other PCBs for GI Classic EX, plus any and all
PCBs for other games also believed to be on this h/w:
- GI-Classic (1995)
- GI-Classic Special (1996)
- GI-Classic WINDS (1996)
- GI-Classic WINDS EX (1998)
Other "GI" games, list from http://www.konami.jp/am/g1/
- GI-LEADING SIRE (1999)
- GI-LEADING SIRE Ver. 2 (2000)
@ -40,7 +40,7 @@
- GI-HORSEPARK GX STD (2009)
- GI-HORSEPARK GX (2009)
- GI-Turf TV (2010)
***************************************************************************/
#include "emu.h"
@ -68,7 +68,7 @@ public:
required_device<palette_device> m_palette;
DECLARE_PALETTE_INIT(giclassic);
INTERRUPT_GEN_MEMBER(giclassic_interrupt);
virtual void machine_start() override;
@ -76,7 +76,7 @@ public:
virtual void video_start() override;
uint32_t screen_update_giclassic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
K056832_CB_MEMBER(tile_callback);
DECLARE_WRITE16_MEMBER(control_w);
DECLARE_READ16_MEMBER(vrom_r);
@ -105,7 +105,7 @@ uint32_t giclassic_state::screen_update_giclassic(screen_device &screen, bitmap_
m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, 0, 1);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, 0, 2);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 4);
// m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 8);
// m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 8);
return 0;
}
@ -137,7 +137,7 @@ READ16_MEMBER(giclassic_state::vrom_r)
{
return m_k056832->piratesh_rom_r(space, offset + 0x1000);
}
return m_k056832->piratesh_rom_r(space, offset);
}
@ -145,13 +145,13 @@ static ADDRESS_MAP_START( satellite_main, AS_PROGRAM, 16, giclassic_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_REGION("maincpu", 0)
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x800000, 0x801fff) AM_RAM AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
AM_RANGE(0x800000, 0x801fff) AM_RAM AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
AM_RANGE(0x900000, 0x90003f) AM_DEVREADWRITE("k056832", k056832_device, word_r, word_w)
AM_RANGE(0xb00000, 0xb01fff) AM_READ(vrom_r)
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(control_w)
AM_RANGE(0xd00000, 0xd0003f) AM_RAM // these must read/write or 26S (LCD controller) fails
AM_RANGE(0xd00000, 0xd0003f) AM_RAM // these must read/write or 26S (LCD controller) fails
AM_RANGE(0xe00000, 0xe0001f) AM_DEVWRITE8("k056832", k056832_device, b_w, 0xff00)
AM_RANGE(0xf00000, 0xf00001) AM_NOP AM_WRITENOP // watchdog reset
AM_RANGE(0xf00000, 0xf00001) AM_NOP AM_WRITENOP // watchdog reset
ADDRESS_MAP_END
static INPUT_PORTS_START( giclassic )
@ -192,10 +192,10 @@ public:
uint32_t screen_update_giclassicsvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
K056832_CB_MEMBER(tile_callback);
K055673_CB_MEMBER(sprite_callback);
DECLARE_WRITE16_MEMBER(control_w);
DECLARE_READ16_MEMBER(control_r);
private:
uint16 m_control;
};
@ -209,7 +209,7 @@ READ16_MEMBER(giclassicsvr_state::control_r)
{
return m_control;
}
INTERRUPT_GEN_MEMBER(giclassicsvr_state::giclassicsvr_interrupt)
{
//if (m_control & 2)
@ -235,12 +235,12 @@ K055673_CB_MEMBER(giclassicsvr_state::sprite_callback)
// ..x. .... .... .... - ?
*priority_mask = 0;
// 0 - Sprites over everything
// f0 -
// f0 cc -
// f0 cc aa -
// 1111 0000
// 1100 1100
// 1010 1010
@ -266,13 +266,13 @@ static ADDRESS_MAP_START( server_main, AS_PROGRAM, 16, giclassicsvr_state )
AM_RANGE(0x090000, 0x093fff) AM_RAM
AM_RANGE(0x100000, 0x107fff) AM_RAM AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x180000, 0x183fff) AM_RAM
AM_RANGE(0x280000, 0x281fff) AM_RAM AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
AM_RANGE(0x280000, 0x281fff) AM_RAM AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w)
AM_RANGE(0x300000, 0x300007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) // SPRITES
AM_RANGE(0x300060, 0x30006f) AM_DEVREAD("k055673", k055673_device, k055673_ps_rom_word_r) // SPRITES
AM_RANGE(0x308000, 0x30803f) AM_DEVREADWRITE("k056832", k056832_device, word_r, word_w)
AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252a", k053252_device, read, write, 0x00ff) // CRTC 1
AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252b", k053252_device, read, write, 0xff00) // CRTC 2
AM_RANGE(0x380000, 0x380001) AM_WRITENOP // watchdog reset
AM_RANGE(0x380000, 0x380001) AM_WRITENOP // watchdog reset
AM_RANGE(0x398000, 0x398001) AM_READWRITE(control_r, control_w)
AM_RANGE(0x400000, 0x41ffff) AM_RAM
ADDRESS_MAP_END
@ -317,7 +317,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( giclassvr, giclassicsvr_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // unknown speed
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // unknown speed
MCFG_CPU_PROGRAM_MAP(server_main)
MCFG_CPU_VBLANK_INT_DRIVER("screen", giclassicsvr_state, giclassicsvr_interrupt)
@ -338,39 +338,39 @@ static MACHINE_CONFIG_START( giclassvr, giclassicsvr_state )
MCFG_K056832_CB(giclassicsvr_state, tile_callback)
MCFG_K056832_CONFIG("gfx1", K056832_BPP_4PIRATESH, 0, 0, "none")
MCFG_K056832_PALETTE("palette")
MCFG_DEVICE_ADD("k055673", K055673, 0)
MCFG_K055673_CB(giclassicsvr_state, sprite_callback)
MCFG_K055673_CONFIG("gfx2", K055673_LAYOUT_PS, -60, 24)
MCFG_K055673_PALETTE("palette")
MCFG_DEVICE_ADD("k053252a", K053252, XTAL_32MHz/4)
MCFG_K053252_OFFSETS(40, 16) // TODO
MCFG_DEVICE_ADD("k053252b", K053252, XTAL_32MHz/4)
MCFG_K053252_OFFSETS(40, 16) // TODO
MACHINE_CONFIG_END
ROM_START( giclasex )
ROM_REGION( 0x80000, "maincpu", 0 ) /* main program */
ROM_LOAD16_WORD_SWAP( "gsgu760ae01.12t", 0x000000, 0x080000, CRC(f0f9c118) SHA1(1753d53946bc0703d329e4a09c452713b260da75) )
ROM_LOAD16_WORD_SWAP( "gsgu760ae01.12t", 0x000000, 0x080000, CRC(f0f9c118) SHA1(1753d53946bc0703d329e4a09c452713b260da75) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* tilemaps */
ROM_LOAD( "gsgu760ae03.14c", 0x000000, 0x080000, CRC(1663d327) SHA1(98c1a9653d38f4918f78b3a11af0c29c658201f5) )
ROM_LOAD( "gsgu760ae02.14e", 0x080000, 0x080000, CRC(2b9fe163) SHA1(f60190a9689a70d6c5bb14fb46b7ac2267cf0969) )
ROM_LOAD( "gsgu760ae03.14c", 0x000000, 0x080000, CRC(1663d327) SHA1(98c1a9653d38f4918f78b3a11af0c29c658201f5) )
ROM_LOAD( "gsgu760ae02.14e", 0x080000, 0x080000, CRC(2b9fe163) SHA1(f60190a9689a70d6c5bb14fb46b7ac2267cf0969) )
ROM_END
ROM_START( giclassvr )
ROM_REGION( 0x80000, "maincpu", 0 ) /* main program */
ROM_LOAD16_WORD_SWAP( "gsgu_760_fd01.34e.bin", 0x000000, 0x080000, CRC(da89c1d7) SHA1(551d050a9b6e54fbf98e966eb37924b644037893) )
ROM_LOAD16_WORD_SWAP( "gsgu_760_fd01.34e.bin", 0x000000, 0x080000, CRC(da89c1d7) SHA1(551d050a9b6e54fbf98e966eb37924b644037893) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* tilemaps */
ROM_LOAD( "gsgu_760_ad04.25q", 0x080000, 0x080000, CRC(71a45742) SHA1(fbddd54f5fb236662f7cc7e9b350723bc5404f72) )
ROM_LOAD( "gsgu_760_ad05.25r", 0x000000, 0x080000, CRC(44221eec) SHA1(966452e606e828b536ed11cbdd626a2fe3165199) )
ROM_LOAD( "gsgu_760_ad04.25q", 0x080000, 0x080000, CRC(71a45742) SHA1(fbddd54f5fb236662f7cc7e9b350723bc5404f72) )
ROM_LOAD( "gsgu_760_ad05.25r", 0x000000, 0x080000, CRC(44221eec) SHA1(966452e606e828b536ed11cbdd626a2fe3165199) )
ROM_REGION( 0x100000, "gfx2", 0 ) /* tilemaps */
ROM_LOAD32_WORD( "gsgu_760_ad02.34j", 0x000000, 0x080000, CRC(6d33c720) SHA1(35da3e1f0133a76480d2078fae89ea87b841ffc7) )
ROM_LOAD32_WORD( "gsgu_760_ad02.34k", 0x000002, 0x080000, CRC(8057a417) SHA1(82d4a1d84729e9f0a8aff4c219a19601b89caf15) )
ROM_LOAD32_WORD( "gsgu_760_ad02.34j", 0x000000, 0x080000, CRC(6d33c720) SHA1(35da3e1f0133a76480d2078fae89ea87b841ffc7) )
ROM_LOAD32_WORD( "gsgu_760_ad02.34k", 0x000002, 0x080000, CRC(8057a417) SHA1(82d4a1d84729e9f0a8aff4c219a19601b89caf15) )
ROM_END
GAME( 1998, giclasex, 0, giclassic, giclassic, driver_device, 0, 0, "Konami", "GI-Classic EX (satellite terminal)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND_HW)

View File

@ -254,7 +254,7 @@ MACHINE_CONFIG_END
Konami Contra
* PCB label BH002
* Sharp SM511 under epoxy (die label KMS73B, KMS773)
Contra handheld is titled simply "C" in the USA.
***************************************************************************/
@ -649,7 +649,7 @@ MACHINE_CONFIG_END
Nintendo Game & Watch: Boxing (model BX-301)
* Sharp SM511 label BX-301 287C (die label KMS73B, KMS744)
Also known as Punch-Out!! in the USA.
***************************************************************************/

View File

@ -150,31 +150,31 @@
// Constants of 98770A video
// HBEND & VBEND probably are not really 0
#define VIDEO_770_PIXEL_CLOCK 29798400
#define VIDEO_770_HTOTAL 1024
#define VIDEO_770_HBEND 0
#define VIDEO_770_HBSTART (VIDEO_CHAR_COLUMNS * VIDEO_CHAR_WIDTH)
#define VIDEO_770_VTOTAL 485
#define VIDEO_770_VBEND 0
#define VIDEO_770_VBSTART (VIDEO_770_VBEND + GVIDEO_VPIXELS)
#define VIDEO_770_ALPHA_L_LIM 80 // Left-side limit of alpha-only horizontal part
#define VIDEO_770_ALPHA_R_LIM 640 // Right-side limit of alpha-only horizontal part
#define VIDEO_770_PIXEL_CLOCK 29798400
#define VIDEO_770_HTOTAL 1024
#define VIDEO_770_HBEND 0
#define VIDEO_770_HBSTART (VIDEO_CHAR_COLUMNS * VIDEO_CHAR_WIDTH)
#define VIDEO_770_VTOTAL 485
#define VIDEO_770_VBEND 0
#define VIDEO_770_VBSTART (VIDEO_770_VBEND + GVIDEO_VPIXELS)
#define VIDEO_770_ALPHA_L_LIM 80 // Left-side limit of alpha-only horizontal part
#define VIDEO_770_ALPHA_R_LIM 640 // Right-side limit of alpha-only horizontal part
// Constants of 98780A video
#define VIDEO_780_PIXEL_CLOCK 28224000
#define VIDEO_780_HTOTAL 896
#define VIDEO_780_VTOTAL 525
#define VIDEO_780_HBEND 0
#define VIDEO_780_HBSTART (VIDEO_CHAR_COLUMNS * VIDEO_CHAR_WIDTH)
#define VIDEO_780_VBEND 0
#define VIDEO_780_VBSTART (VIDEO_780_VBEND + GVIDEO_VPIXELS)
#define VIDEO_780_ALPHA_L_LIM 80 // Left-side limit of alpha-only horizontal part
#define VIDEO_780_ALPHA_R_LIM 640 // Right-side limit of alpha-only horizontal part
#define VIDEO_780_PIXEL_CLOCK 28224000
#define VIDEO_780_HTOTAL 896
#define VIDEO_780_VTOTAL 525
#define VIDEO_780_HBEND 0
#define VIDEO_780_HBSTART (VIDEO_CHAR_COLUMNS * VIDEO_CHAR_WIDTH)
#define VIDEO_780_VBEND 0
#define VIDEO_780_VBSTART (VIDEO_780_VBEND + GVIDEO_VPIXELS)
#define VIDEO_780_ALPHA_L_LIM 80 // Left-side limit of alpha-only horizontal part
#define VIDEO_780_ALPHA_R_LIM 640 // Right-side limit of alpha-only horizontal part
#define I_GR 0xb0 // graphics intensity
#define I_AL 0xd0 // alpha intensity
#define I_CU 0xf0 // graphics cursor intensity
#define I_LP 0xff // light pen cursor intensity
#define I_GR 0xb0 // graphics intensity
#define I_AL 0xd0 // alpha intensity
#define I_CU 0xf0 // graphics cursor intensity
#define I_LP 0xff // light pen cursor intensity
// Palette indexes (for monochromatic screens)
#define PEN_BLACK 0 // Black
@ -188,10 +188,10 @@ constexpr unsigned LP_FOV = 9; // Field of view
constexpr unsigned LP_XOFFSET = 5; // x-offset of LP (due to delay in hit recognition)
// Peripheral Addresses (PA)
#define IO_SLOT_FIRST_PA 1
#define IO_SLOT_LAST_PA 12
#define IO_SLOT_FIRST_PA 1
#define IO_SLOT_LAST_PA 12
#define GVIDEO_PA 13
#define T14_PA 14
#define T14_PA 14
#define T15_PA 15
#define KEY_SCAN_OSCILLATOR 327680
@ -2649,11 +2649,11 @@ void hp9845t_state::machine_start()
m_graphic_mem.resize(GVIDEO_MEM_SIZE);
// initialize palette
m_palette->set_pen_color(PEN_BLACK , 0x00, 0x00, 0x00); // black
m_palette->set_pen_color(PEN_GRAPHIC, 0x00, I_GR, 0x00); // graphics
m_palette->set_pen_color(PEN_ALPHA , 0x00, I_AL, 0x00); // alpha
m_palette->set_pen_color(PEN_CURSOR , 0x00, I_CU, 0x00); // graphics cursor
m_palette->set_pen_color(PEN_LP , 0x00, I_LP, 0x00); // lightpen cursor
m_palette->set_pen_color(PEN_BLACK , 0x00, 0x00, 0x00); // black
m_palette->set_pen_color(PEN_GRAPHIC, 0x00, I_GR, 0x00); // graphics
m_palette->set_pen_color(PEN_ALPHA , 0x00, I_AL, 0x00); // alpha
m_palette->set_pen_color(PEN_CURSOR , 0x00, I_CU, 0x00); // graphics cursor
m_palette->set_pen_color(PEN_LP , 0x00, I_LP, 0x00); // lightpen cursor
}
void hp9845t_state::machine_reset()
@ -2697,18 +2697,18 @@ READ16_MEMBER(hp9845t_state::graphic_r)
BIT_SET(res, 6);
}
if (m_gv_lp_status && m_gv_lp_int_en) {
BIT_SET(res, 0); // Lightpen service request
BIT_SET(res, 0); // Lightpen service request
}
// TODO: gsr/
// TODO: fix sk status
if (m_gv_sk_status) {
BIT_SET(res, 1); // Softkey service request
BIT_SET(res, 1); // Softkey service request
m_gv_sk_status = false;
}
BIT_SET(res, 9); // ID
BIT_SET(res, 11); // ID
BIT_SET(res, 9); // ID
BIT_SET(res, 11); // ID
if (m_gv_stat) {
BIT_SET(res, 13); // error indication
BIT_SET(res, 13); // error indication
}
update_graphic_bits();
@ -2758,8 +2758,8 @@ WRITE16_MEMBER(hp9845t_state::graphic_w)
m_gv_gr_en = BIT(data , 8); // enables graphics controller & vector generator command processing and IRQs
m_gv_sk_en = BIT(data , 9); // enables reads on R4 to return SK keycode, also enables SK IRQs
m_gv_opt_en = BIT(data , 11); // not really used
m_gv_dsa_en = BIT(data , 12); // for factory use only (function unknown)
m_gv_fsm_state = GV_STAT_RESET; // command/reset state machine
m_gv_dsa_en = BIT(data , 12); // for factory use only (function unknown)
m_gv_fsm_state = GV_STAT_RESET; // command/reset state machine
lp_r5_w(data);
advance_gv_fsm(false , false);
break;
@ -2808,7 +2808,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp9845t_state::scanline_timer)
void hp9845t_state::set_graphic_mode(bool graphic , bool alpha)
{
m_back_arrow_cursor = graphic; // triggers back arrow cursor, 98780A uses video on/off command for enabling/disabling graphics
m_back_arrow_cursor = graphic; // triggers back arrow cursor, 98780A uses video on/off command for enabling/disabling graphics
m_alpha_sel = alpha;
}
@ -2955,20 +2955,20 @@ void hp9845t_state::plot(uint16_t x, uint16_t y, bool draw_erase)
if (BIT(m_gv_rb_control, 1)) {
// save graphics memory to rubber band memory
if (m_graphic_mem[ addr ] & pixel_mask)
m_gv_rb_memory[m_gv_rb_counter/16] |= 0x1 << (m_gv_rb_counter % 16); // set
m_gv_rb_memory[m_gv_rb_counter/16] |= 0x1 << (m_gv_rb_counter % 16); // set
else
m_gv_rb_memory[m_gv_rb_counter/16] &= ~(0x1 << (m_gv_rb_counter % 16)); // clear
m_gv_rb_memory[m_gv_rb_counter/16] &= ~(0x1 << (m_gv_rb_counter % 16)); // clear
m_gv_rb_counter++;
if (m_gv_rb_counter > 4095) {
m_gv_stat = true; // we might prevent data corruption here, but the original hardware doesn't
m_gv_stat = true; // we might prevent data corruption here, but the original hardware doesn't
m_gv_rb_counter = 0;
}
} else if (BIT(m_gv_rb_control, 0)) {
// restore graphics memory from rubber band memory
if (BIT(m_gv_rb_memory[m_gv_rb_counter / 16], m_gv_rb_counter % 16))
m_graphic_mem[ addr ] |= pixel_mask; // set
m_graphic_mem[ addr ] |= pixel_mask; // set
else
m_graphic_mem[ addr ] &= ~pixel_mask; // clear
m_graphic_mem[ addr ] &= ~pixel_mask; // clear
m_gv_rb_counter++;
if (m_gv_rb_counter > 4095) {
m_gv_stat = true;
@ -3020,16 +3020,16 @@ void hp9845t_state::draw_arc(uint16_t x0, uint16_t y0, int xstart, int ystart, u
if (do_plot) {
switch (quadrant) {
case 0:
plot(x0 + x1, y0 - y1, draw_erase); // quadrant 0
plot(x0 + x1, y0 - y1, draw_erase); // quadrant 0
break;
case 1:
plot(x0 - y1, y0 - x1, draw_erase); // quadrant 1
plot(x0 - y1, y0 - x1, draw_erase); // quadrant 1
break;
case 2:
plot(x0 - x1, y0 + y1, draw_erase); // quadrant 2
plot(x0 - x1, y0 + y1, draw_erase); // quadrant 2
break;
case 3:
plot(x0 + y1, y0 + x1, draw_erase); // quadrant 3
plot(x0 + y1, y0 + x1, draw_erase); // quadrant 3
break;
}
}
@ -3112,7 +3112,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
m_gv_io_counter = get_gv_mem_addr(m_gv_word_x_position , m_gv_word_y_position);
}
LOG(("read words, last = %x\n", m_gv_last_cmd));
m_gv_fsm_state = GV_STAT_WAIT_MEM_0; // -> read stream
m_gv_fsm_state = GV_STAT_WAIT_MEM_0; // -> read stream
m_gv_last_cmd = m_gv_cmd;
} else if (m_gv_cmd == 0xd) {
// fast clear/set command
@ -3125,10 +3125,10 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
m_gv_io_counter = get_gv_mem_addr(m_gv_word_x_position , m_gv_word_y_position);
}
LOG(("write words\n"));
m_gv_fsm_state = GV_STAT_WAIT_TRIG_1; // -> write stream
m_gv_fsm_state = GV_STAT_WAIT_TRIG_1; // -> write stream
} else {
// any other command
m_gv_fsm_state = GV_STAT_WAIT_TRIG_0; // -> wait for trigger
m_gv_fsm_state = GV_STAT_WAIT_TRIG_0; // -> wait for trigger
}
m_gv_last_cmd = m_gv_cmd;
} else {
@ -3139,21 +3139,21 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
case GV_STAT_WAIT_TRIG_0:
// process data on R4 or R6
switch (m_gv_cmd) {
case 0x1: // load end points
case 0x1: // load end points
m_gv_ypt = m_gv_data_w & 0x3ff;
LOG(("load end points y = %d\n", m_gv_ypt));
break;
case 0x3: // load arc
case 0x3: // load arc
m_gv_arc_parm = 0;
m_gv_arc[ m_gv_arc_parm ] = m_gv_data_w;
LOG(("load arc parm%d = %04x\n", m_gv_arc_parm, m_gv_arc[m_gv_arc_parm]));
m_gv_arc_parm++;
break;
case 0x5: // load scan
m_gv_scan_start_x = m_gv_data_w & 0x3ff; // 0..559
case 0x5: // load scan
m_gv_scan_start_x = m_gv_data_w & 0x3ff; // 0..559
LOG(("load scan x = %d\n", m_gv_scan_start_x));
break;
case 0x6: // set line type/area fill
case 0x6: // set line type/area fill
m_gv_line_type_area_fill = m_gv_data_w & 0x1ff;
if (BIT(m_gv_line_type_area_fill, 4)) {
m_gv_line_type_mask = m_line_type[ m_gv_line_type_area_fill & 0x7 ];
@ -3161,29 +3161,29 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
}
LOG(("set line type = %04x\n", m_gv_line_type_area_fill));
break;
case 0x7: // load X/Y I/O address
m_gv_word_y_position = m_gv_data_w & 0x1ff; // 0..454
case 0x7: // load X/Y I/O address
m_gv_word_y_position = m_gv_data_w & 0x1ff; // 0..454
LOG(("load X/Y I/O adress y = %04x\n", m_gv_word_y_position));
break;
case 0xa: // load memory control
case 0xa: // load memory control
// A single bit is saved (InvBit)
m_gv_memory_control = (m_gv_data_w & 0x9) == 9 || (m_gv_data_w & 0x12) == 0x12 || (m_gv_data_w & 0x24) == 0x24;
LOG(("load memory control = %04x\n", m_gv_memory_control));
break;
case 0xb: // video on/off - enable graphics video output (1=on 2=off)
case 0xb: // video on/off - enable graphics video output (1=on 2=off)
m_graphic_sel = BIT(m_gv_data_w, 0);
LOG(("video on/off parm = %d\n", m_gv_data_w & 0x3));
break;
case 0xc: // load color mask (no effect, just for compatibility with 9845c), takes a single word as parameter
case 0xc: // load color mask (no effect, just for compatibility with 9845c), takes a single word as parameter
break;
case 0xe: // Y cursor position
case 0xe: // Y cursor position
m_gv_cursor_fs = (m_gv_data_w & 0x3) == 0;
m_gv_cursor_gc = ((m_gv_data_w & 0x3) == 1) || m_gv_cursor_fs;
m_gv_cursor_y = 559 - (m_gv_data_w >> 7);
if (m_gv_cursor_fs) m_gv_cursor_y -= 4;
LOG(("Y cursor position = %d, fs = %d, gc = %d\n", m_gv_cursor_y, m_gv_cursor_fs, m_gv_cursor_gc));
break;
case 0xf: // X cursor position
case 0xf: // X cursor position
m_gv_cursor_x = ((m_gv_data_w >> 6) & 0x3ff) - 121;
LOG(("X cursor position = %d\n", m_gv_cursor_x));
break;
@ -3191,10 +3191,10 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
LOG(("unknown 98780A command = %d, parm = 0x%04x\n", m_gv_cmd, m_gv_data_w));
}
if ((m_gv_cmd == 0x1) || (m_gv_cmd == 0x3) || (m_gv_cmd == 0x5) || (m_gv_cmd == 0x7)) {
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> get second data word
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> get second data word
} else {
get_out = true;
m_gv_fsm_state = GV_STAT_WAIT_DS_0; // -> done
m_gv_fsm_state = GV_STAT_WAIT_DS_0; // -> done
}
break;
@ -3206,7 +3206,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
m_gv_data_r = m_graphic_mem[ m_gv_io_counter ];
LOG(("read words @%04x = %04x\n" , m_gv_io_counter , m_gv_data_r));
m_gv_io_counter = (m_gv_io_counter + 1) & GVIDEO_ADDR_MASK;
m_gv_fsm_state = GV_STAT_WAIT_DS_1; // -> proceed with read stream
m_gv_fsm_state = GV_STAT_WAIT_DS_1; // -> proceed with read stream
} else {
m_gv_timer->adjust(time_mem_av);
get_out = true;
@ -3217,7 +3217,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
// wait for data word to be read
if (ds) {
// -- next word
m_gv_fsm_state = GV_STAT_WAIT_MEM_0; // -> process data word
m_gv_fsm_state = GV_STAT_WAIT_MEM_0; // -> process data word
} else {
// -- done
get_out = true;
@ -3228,7 +3228,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
// wait for data word to be written
if (ds) {
// -- next word
m_gv_fsm_state = GV_STAT_WAIT_TRIG_1; // -> process data word
m_gv_fsm_state = GV_STAT_WAIT_TRIG_1; // -> process data word
} else {
// done
get_out = true;
@ -3250,12 +3250,12 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
if (BIT(m_gv_data_w, 11)) {
// draw vector
LOG(("load end points x = %d, rb = %d (draw)\n", m_gv_xpt, m_gv_rb_control));
m_gv_fsm_state = GV_STAT_WAIT_MEM_2; // -> proceed with draw vector
m_gv_fsm_state = GV_STAT_WAIT_MEM_2; // -> proceed with draw vector
} else {
LOG(("load end points x = %d, rb = %d (move)\n", m_gv_xpt, m_gv_rb_control));
m_gv_last_xpt = m_gv_xpt;
m_gv_last_ypt = m_gv_ypt;
m_gv_fsm_state = GV_STAT_WAIT_DS_0; // -> proceed with next word pair
m_gv_fsm_state = GV_STAT_WAIT_DS_0; // -> proceed with next word pair
}
break;
@ -3265,22 +3265,22 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
LOG(("load arc parm%d = %04x\n", m_gv_arc_parm, m_gv_arc[m_gv_arc_parm]));
m_gv_arc_parm++;
if (m_gv_arc_parm < 4) {
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> proceed with next word
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> proceed with next word
} else {
m_gv_fsm_state = GV_STAT_WAIT_MEM_2; // -> proceed with draw vector
m_gv_fsm_state = GV_STAT_WAIT_MEM_2; // -> proceed with draw vector
}
break;
case 0x5:
// load scan
m_gv_scan_start_y = m_gv_data_w & 0x3ff; // 0..454
m_gv_scan_start_y = m_gv_data_w & 0x3ff; // 0..454
LOG(("load scan y = %d\n", m_gv_scan_start_y));
m_gv_fsm_state = GV_STAT_WAIT_DS_0;
break;
case 0x7:
// load X/Y I/O address
m_gv_word_x_position = (m_gv_data_w & 0x3f0) >> 4; // 0..34
m_gv_word_x_position = (m_gv_data_w & 0x3f0) >> 4; // 0..34
m_gv_increment_to_next_row = BIT(m_gv_data_w, 11);
m_gv_io_counter = get_gv_mem_addr(m_gv_word_x_position , m_gv_word_y_position);
LOG(("load X/Y I/O adress x = %04x increment = %d\n", m_gv_word_x_position, m_gv_increment_to_next_row));
@ -3289,7 +3289,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
case 0x8:
// write words command
m_gv_fsm_state = GV_STAT_WAIT_MEM_1; // -> proceed with next word
m_gv_fsm_state = GV_STAT_WAIT_MEM_1; // -> proceed with next word
break;
}
break;
@ -3304,7 +3304,7 @@ void hp9845t_state::advance_gv_fsm(bool ds , bool trigger)
if (!m_gv_increment_to_next_row || (m_gv_word_x_position < 34)) {
m_gv_io_counter = (m_gv_io_counter + 1) & GVIDEO_ADDR_MASK;
}
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> proceed with write stream
m_gv_fsm_state = GV_STAT_WAIT_DS_2; // -> proceed with write stream
} else {
m_gv_timer->adjust(time_mem_av);
get_out = true;
@ -3470,31 +3470,31 @@ static MACHINE_CONFIG_START( hp9835a, hp9845_state )
MACHINE_CONFIG_END
/*
Global memory map in blocks of 32 kwords / 64 kbytes each:
Global memory map in blocks of 32 kwords / 64 kbytes each:
block 0: 0x000000 - 0x007fff (LPU RAM)
block 1: 0x008000 - 0x00ffff (PPU RAM, only 0x00c000 - 0x00ffff used)
block 2: 0x010000 - 0x017fff (unused)
block 3: 0x018000 - 0x01ffff (LPU system ROM)
block 4: 0x020000 - 0x027fff (LPU RAM)
block 5: 0x028000 - 0x02ffff (PPU system ROM)
block 6: 0x030000 - 0x037fff (LPU RAM)
block 7: 0x038000 - 0x03ffff (LPU option ROM)
block 10: 0x040000 - 0x047fff (LPU RAM)
block 11: 0x048000 - 0x04ffff (PPU option ROM)
block 12: 0x050000 - 0x057fff (LPU RAM)
block 13: 0x058000 - 0x05ffff (LPU option ROM)
block 14: 0x060000 - 0x067fff (LPU RAM)
block 15: 0x068000 - 0x06ffff (PPU option ROM)
block 16: 0x070000 - 0x077fff (LPU RAM)
block 17: 0x078000 - 0x07ffff (unused)
block 0: 0x000000 - 0x007fff (LPU RAM)
block 1: 0x008000 - 0x00ffff (PPU RAM, only 0x00c000 - 0x00ffff used)
block 2: 0x010000 - 0x017fff (unused)
block 3: 0x018000 - 0x01ffff (LPU system ROM)
block 4: 0x020000 - 0x027fff (LPU RAM)
block 5: 0x028000 - 0x02ffff (PPU system ROM)
block 6: 0x030000 - 0x037fff (LPU RAM)
block 7: 0x038000 - 0x03ffff (LPU option ROM)
block 10: 0x040000 - 0x047fff (LPU RAM)
block 11: 0x048000 - 0x04ffff (PPU option ROM)
block 12: 0x050000 - 0x057fff (LPU RAM)
block 13: 0x058000 - 0x05ffff (LPU option ROM)
block 14: 0x060000 - 0x067fff (LPU RAM)
block 15: 0x068000 - 0x06ffff (PPU option ROM)
block 16: 0x070000 - 0x077fff (LPU RAM)
block 17: 0x078000 - 0x07ffff (unused)
notes:
- all block numbers are octal
- blocks 20 to 76 are reserved for 512 kbyte RAM boards (p/n 09845-66590)
- block 45 is reserved for the Test ROM
- memory addresses are continuous (for convenience, the mapping below uses block numbers as
address part above 0xffff, so there are gaps between 0x8000 and 0xffff which are masked out).
notes:
- all block numbers are octal
- blocks 20 to 76 are reserved for 512 kbyte RAM boards (p/n 09845-66590)
- block 45 is reserved for the Test ROM
- memory addresses are continuous (for convenience, the mapping below uses block numbers as
address part above 0xffff, so there are gaps between 0x8000 and 0xffff which are masked out).
- all LPU RAM is dynamically mapped at machine start according to -ramsize option
*/

View File

@ -202,7 +202,7 @@ public:
/* keycode buffer (used for keypad/arrow key transition) */
int m_keycode_buf[2];
int m_keycode_buf_index;
int m_cb2_in;
#endif
@ -974,7 +974,7 @@ TIMER_CALLBACK_MEMBER(mac128_state::kbd_clock)
m_via->write_cb1(0);
m_via->write_cb1(1);
if (m_kbd_receive == TRUE)
{
if (i < 8)

View File

@ -113,9 +113,9 @@ ROM_START(nbamac)
ROM_END
ROM_START(glxplay)
ROM_REGION(0x4000, "maincpu", 0)
ROM_LOAD("1083-1.cpu", 0x0000, 0x2000, CRC(3df33169) SHA1(657720aab4cccf3364f013acb3f5dbc46fe0e05c))
ROM_LOAD("1083-2.cpu", 0x2000, 0x2000, CRC(47b4f49e) SHA1(59853ac56bb9e2dc7b848dc46ebd27c21b9d2e82))
ROM_REGION(0x4000, "maincpu", 0)
ROM_LOAD("1083-1.cpu", 0x0000, 0x2000, CRC(3df33169) SHA1(657720aab4cccf3364f013acb3f5dbc46fe0e05c))
ROM_LOAD("1083-2.cpu", 0x2000, 0x2000, CRC(47b4f49e) SHA1(59853ac56bb9e2dc7b848dc46ebd27c21b9d2e82))
ROM_END
ROM_START(kidnap)

View File

@ -305,16 +305,16 @@ READ32_MEMBER(midzeus_state::disk_asic_jr_r)
/* CMOS/ZPRAM write enable; only low bit is used */
case 2:
break;
// return disk_asic_jr[offset] | ~1;
// return disk_asic_jr[offset] | ~1;
/* reset status; bit 0 is watchdog reset; mk4/invasn/thegrid read at startup; invasn freaks if it is 1 at startup */
case 3:
break;
// return disk_asic_jr[offset] | ~1;
// return disk_asic_jr[offset] | ~1;
/* ROM bank selection on Zeus 2; two bits are used */
case 5:
// return disk_asic_jr[offset] | ~3;
// return disk_asic_jr[offset] | ~3;
/* disk asic jr id; crusnexo reads at startup: if (val & 0xf0) == 0xa0 it affects */
/* how the Zeus is used (reg 0x5d is set to 0x54580006) */
@ -1226,17 +1226,17 @@ static INPUT_PORTS_START( thegrid )
PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE
PORT_START("KEYPAD")
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) /* keypad 1 */
PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) /* keypad 4 */
PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 7") PORT_CODE(KEYCODE_7_PAD) /* keypad 7 */
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad *") PORT_CODE(KEYCODE_MINUS_PAD) /* keypad * */
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) /* keypad 2 */
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) /* keypad 5 */
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) /* keypad 8 */
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) /* keypad 0 */
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 3") PORT_CODE(KEYCODE_3_PAD) /* keypad 3 */
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) /* keypad 6 */
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) /* keypad 9 */
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) /* keypad 1 */
PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) /* keypad 4 */
PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 7") PORT_CODE(KEYCODE_7_PAD) /* keypad 7 */
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad *") PORT_CODE(KEYCODE_MINUS_PAD) /* keypad * */
PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) /* keypad 2 */
PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) /* keypad 5 */
PORT_BIT(0x040, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) /* keypad 8 */
PORT_BIT(0x080, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) /* keypad 0 */
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 3") PORT_CODE(KEYCODE_3_PAD) /* keypad 3 */
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) /* keypad 6 */
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) /* keypad 9 */
PORT_BIT(0x800, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_NAME("Keypad #") PORT_CODE(KEYCODE_PLUS_PAD) /* keypad # */
PORT_START("TRACKX1")

View File

@ -3,20 +3,20 @@
/***************************************************************************
mtouchxl.cpp: Merit Industries MegaTouch XL
Hardware includes a base 486 PC with VGA and a customized ISA I/O
card. The I/O card includes audio and an option ROM which patches int 19h
(POST Completed) to instead jump back to the option ROM which loads
"ROM-DOS", installs drivers for the Microtouch screen, and then boots
"ROM-DOS", installs drivers for the Microtouch screen, and then boots
from the CD-ROM drive.
Audio is a CS4231 combination CODEC/Mixer also found in Gravis Ultraound MAX
and some SPARCstations.
Some boards use the DS1205 chip for security, others use the DS1991 iButton
Megatouch XL (Software) (* indicated verified dumps of CD + Boot ROM,
- means we have it working but would like a redump)
Megatouch XL (Software) (* indicated verified dumps of CD + Boot ROM,
- means we have it working but would like a redump)
Megatouch XL (1997) (CD versions: R0, R0A, R0B, R0C, R0D, R1, R2, R3, R3A, R3B, R3C)
Megatouch XL 5000 (1998) (CD versions: R5A, *R5B, R5D, *R5E, R5G, R5H, *R5I)
Megatouch XL 6000 (1999) (CD versions: *R02, R04, R05, *R07)
@ -205,18 +205,18 @@ static MACHINE_CONFIG_START( at486, mtxl_state )
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("32M") // Early XL games had 8 MB RAM, 6000 and later require 32MB
MCFG_RAM_DEFAULT_SIZE("32M") // Early XL games had 8 MB RAM, 6000 and later require 32MB
/* bankdev for dxxxx */
MCFG_DEVICE_ADD("dbank", ADDRESS_MAP_BANK, 0)
MCFG_DEVICE_PROGRAM_MAP(dbank_map)
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(32)
MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000)
/* Flash ROM */
MCFG_AMD_29F040_ADD("flash")
/* Security key */
MCFG_DS1205_ADD("multikey")
MACHINE_CONFIG_END
@ -229,65 +229,65 @@ MACHINE_CONFIG_END
ROM_START( mtouchxl )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_REGION(192, "multikey", ROMREGION_ERASE00)
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r1", 0, SHA1(874545bfc48eacba4c4887d1c45a40ebc7da456a))
DISK_IMAGE_READONLY("r1", 0, SHA1(874545bfc48eacba4c4887d1c45a40ebc7da456a))
ROM_END
ROM_START( mtchxl5k )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_REGION(192, "multikey", ROMREGION_ERASE00)
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r5i", 0, SHA1(e776a842b557f402e179862397b2ded5cf926702))
DISK_IMAGE_READONLY("r5i", 0, SHA1(e776a842b557f402e179862397b2ded5cf926702))
ROM_END
ROM_START( mtchxl5ko )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_REGION(192, "multikey", ROMREGION_ERASE00)
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r5b", 0, SHA1(37c2562053f0f4ed18c72a8ea04be371a6ac8413))
DISK_IMAGE_READONLY("r5b", 0, SHA1(37c2562053f0f4ed18c72a8ea04be371a6ac8413))
ROM_END
ROM_START( mtchxl5ko2 )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_LOAD( "sa3014-03_u12-r3", 0x000000, 0x100000, CRC(5a14b68a) SHA1(351a3ae14c335ac0b52e6f4976f9819c11a668f9) )
ROM_REGION(192, "multikey", ROMREGION_ERASE00)
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(4ad37efa) SHA1(aa7d0347df61a9fdcc283f362e64e70300eb927f) )
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r5e", 0, SHA1(a07dc6da346bee999f822a3517ea1d65a68dd4a2))
DISK_IMAGE_READONLY("r5e", 0, SHA1(a07dc6da346bee999f822a3517ea1d65a68dd4a2))
ROM_END
ROM_START( mtchxl6k )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_REGION(192, "multikey", 0)
ROM_LOAD( "multikey", 0, 192, BAD_DUMP CRC(a7d118c1) SHA1(c1a08315a2ddaee1fa626a22553b1560b255a59e) ) // hand made
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r07", 0, SHA1(95599e181d9249db09464420522180d753857f3b))
ROM_END
@ -296,11 +296,11 @@ ROM_START( mtchxl6ko )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_REGION(192, "multikey", 0)
ROM_LOAD( "multikey", 0, 192, BAD_DUMP CRC(a7d118c1) SHA1(c1a08315a2ddaee1fa626a22553b1560b255a59e) ) // hand made
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r02", 0, SHA1(eaaf26d2b700f16138090de7f372b40b93e8dba9))
ROM_END
@ -309,13 +309,13 @@ ROM_START( mtchxlgld )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_REGION(0x8000, "nvram", 0)
ROM_LOAD( "u12-nvram-ds1235", 0x000000, 0x008000, CRC(b3b5379d) SHA1(91b3d8b7eb2df127ba35700317aa1aac14e49bb9) )
ROM_LOAD( "u12-nvram-ds1235", 0x000000, 0x008000, CRC(b3b5379d) SHA1(91b3d8b7eb2df127ba35700317aa1aac14e49bb9) )
ROM_REGION(192, "multikey", ROMREGION_ERASE00)
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(b9c6aa26) SHA1(23af5b85e19cde700ac045d4770a22bf5d380076) )
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(b9c6aa26) SHA1(23af5b85e19cde700ac045d4770a22bf5d380076) )
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r01", 0, SHA1(9946bb14d3f77eadbbc606ca9c79f233e402189b))
@ -325,13 +325,13 @@ ROM_START( mtchxlgldo )
MOTHERBOARD_ROMS
ROM_REGION(0x100000, "ioboard", 0)
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_LOAD( "sa3014-04_u12-r00.u12", 0x000000, 0x100000, CRC(2a6fbca4) SHA1(186eb052cb9b77ffe6ee4cb50c1b580532fd8f47) )
ROM_REGION(0x8000, "nvram", 0)
ROM_LOAD( "u12-nvram-ds1235", 0x000000, 0x008000, CRC(b3b5379d) SHA1(91b3d8b7eb2df127ba35700317aa1aac14e49bb9) )
ROM_LOAD( "u12-nvram-ds1235", 0x000000, 0x008000, CRC(b3b5379d) SHA1(91b3d8b7eb2df127ba35700317aa1aac14e49bb9) )
ROM_REGION(192, "multikey", ROMREGION_ERASE00)
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(b9c6aa26) SHA1(23af5b85e19cde700ac045d4770a22bf5d380076) )
ROM_LOAD( "multikey", 0x000000, 0x0000c0, BAD_DUMP CRC(b9c6aa26) SHA1(23af5b85e19cde700ac045d4770a22bf5d380076) )
DISK_REGION("board1:ide:ide:0:cdrom")
DISK_IMAGE_READONLY("r00", 0, SHA1(635e267f1abea060ce813eb7e78b88d57ea3f951))

View File

@ -910,7 +910,7 @@ static INPUT_PORTS_START( outfxies )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_SERVICE_DIPLOC(0x02, 0x02, "SW1: 1")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) /* Under Coin Options, it shows COIN1 through COIN4 */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) /* When the Coin Mode is set to COMMON, each coin slot can be set to specific values and will be used during game play */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) /* When the Coin Mode is set to COMMON, each coin slot can be set to specific values and will be used during game play */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
@ -944,7 +944,7 @@ static INPUT_PORTS_START( nbsports )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_SERVICE_DIPLOC(0x02, 0x02, "SW1: 1")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) /* Under Coin Options, it shows COIN1 through COIN4 */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) /* When the Coin Mode is set to COMMON, each coin slot can be set to specific values and will be used during game play */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) /* When the Coin Mode is set to COMMON, each coin slot can be set to specific values and will be used during game play */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )

View File

@ -72,10 +72,10 @@ WRITE8_MEMBER(novagmcs48_state::presto_control_w)
{
// P21: input mux high
m_inp_mux = (m_inp_mux & 0xff) | (~data << 7 & 0x100);
// P22,P23: speaker lead 1,2
m_dac->write(BIT(data, 2) & BIT(~data, 3));
// P24-P26: led select
m_led_select = ~data >> 4 & 7;
display_matrix(8, 3, m_led_data, m_led_select);

View File

@ -1,18 +1,18 @@
// license:BSD-3-Clause
// copyright-holders:R. Belmont
/*
otomedius.cpp: Konami Otomedius (and maybe related Konami PC-based stuff)
Skeleton by R. Belmont
Hardware for Otomedius:
- Intel Socket 478 Celeron CPU, 2.5 GHz, S-Spec "SL6ZY"
More info: http://www.cpu-world.com/sspec/SL/SL6ZY.html
- Intel 82865G northbridge
- Intel 82801EB southbridge / "ICH5" Super I/O
- 512MB of system RAM
- ATI-branded Radeon 9600XT AGP video card with 128 MB of VRAM
- Konami protection dongle marked "GEGGG JA-B"
otomedius.cpp: Konami Otomedius (and maybe related Konami PC-based stuff)
Skeleton by R. Belmont
Hardware for Otomedius:
- Intel Socket 478 Celeron CPU, 2.5 GHz, S-Spec "SL6ZY"
More info: http://www.cpu-world.com/sspec/SL/SL6ZY.html
- Intel 82865G northbridge
- Intel 82801EB southbridge / "ICH5" Super I/O
- 512MB of system RAM
- ATI-branded Radeon 9600XT AGP video card with 128 MB of VRAM
- Konami protection dongle marked "GEGGG JA-B"
*/
#include "emu.h"
@ -85,10 +85,10 @@ MACHINE_CONFIG_END
ROM_START( otomedius )
ROM_REGION( 0x80000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "sst49fl004b.u18", 0x000000, 0x080000, CRC(bb9f4e3e) SHA1(95b393a38a5eded3204debfe7a88cc7ea15adf9a) )
ROM_LOAD( "sst49fl004b.u18", 0x000000, 0x080000, CRC(bb9f4e3e) SHA1(95b393a38a5eded3204debfe7a88cc7ea15adf9a) )
ROM_REGION( 0x10000, "vbios", 0 ) // video card BIOS
ROM_LOAD( "ati.9600xt.128.samsung.031113.rom", 0x000000, 0x00d000, CRC(020ec211) SHA1(3860c980106f00e5259ecd8d4cd2f9b3fca2428a) )
ROM_REGION( 0x10000, "vbios", 0 ) // video card BIOS
ROM_LOAD( "ati.9600xt.128.samsung.031113.rom", 0x000000, 0x00d000, CRC(020ec211) SHA1(3860c980106f00e5259ecd8d4cd2f9b3fca2428a) )
DISK_REGION( "ide:0:hdd:image" ) // Seagate ST340015A 40GB PATA drive
DISK_IMAGE( "otomedius", 0, SHA1(9283f8b7cd747be7b8e7321953adbf6cbe926f25) )

View File

@ -4766,7 +4766,7 @@ GAME( 1998, olds103t, olds, pgm, pgm, pgm_state,
GAME( 1999, kov, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0008 04/27/99 10:33:33
GAME( 1999, kov115, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0006 02/22/99 11:53:18
GAME( 1999, kov100, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0002 01/31/99 01:54:16
GAME( 1999, kov100hk, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Hong Kong)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
GAME( 1999, kov100hk, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Hong Kong)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
GAME( 1999, kovplus, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
GAME( 1999, kovplusa, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */

View File

@ -1,9 +1,9 @@
// license:BSD-3-Clause
/**************************************************************************
Pirate Ship
Pirate Ship
PWB(A)354460B
MC68HC00FN16
054539 - 8-Channel ADPCM sound generator. Clock input 18.432MHz. Clock outputs 18.432/4 & 18.432/8
@ -14,17 +14,17 @@
056832 - Tilemap generator
054156 - Tilemap generator
053252 - CRTC
053250 config:
SELC (69) GND
SEL1 (83) GND
SEL0 (82) GND
MODE (68) GND
TODO: Music stops if a coin is inserted. MAME or BTNAB?
**************************************************************************/
#include "emu.h"
@ -53,11 +53,11 @@ public:
m_k056832(*this, "k056832"),
m_k055673(*this, "k055673"),
m_k055555(*this, "k055555"),
// m_k053246(*this, "k053246"),
// m_k053246(*this, "k053246"),
m_k054539(*this, "k054539"),
m_spriteram(*this,"spriteram")
{ }
required_device<cpu_device> m_maincpu;
required_device<k053250ps_device> m_k053250;
@ -66,22 +66,22 @@ public:
required_device<k055673_device> m_k055673;
required_device<k055555_device> m_k055555;
required_device<k054539_device> m_k054539;
// required_device<k053247_device> m_k053246;
// required_device<k053247_device> m_k053246;
optional_shared_ptr<uint16_t> m_spriteram;
int m_layer_colorbase[6];
int m_sprite_colorbase;
int m_lvc_colorbase;
uint8_t m_int_enable;
uint8_t m_int_status;
uint8_t m_sound_ctrl;
uint8_t m_sound_nmi_clk;
uint16_t m_control;
void update_interrupts();
DECLARE_READ16_MEMBER(K056832_rom_r);
DECLARE_WRITE16_MEMBER(control1_w);
DECLARE_WRITE16_MEMBER(control2_w);
@ -93,7 +93,7 @@ public:
DECLARE_WRITE16_MEMBER(k053247_martchmp_word_w);
DECLARE_CUSTOM_INPUT_MEMBER(helm_r);
DECLARE_CUSTOM_INPUT_MEMBER(battery_r);
DECLARE_MACHINE_START(piratesh);
DECLARE_MACHINE_RESET(piratesh);
DECLARE_VIDEO_START(piratesh);
@ -114,11 +114,11 @@ void piratesh_state::update_interrupts()
/*
Priority issues:
1. On title screen, stars should be behind the helm
2. The Konami logo is a square transition
3.
3.
*/
K056832_CB_MEMBER(piratesh_state::piratesh_tile_callback)
@ -127,9 +127,9 @@ K056832_CB_MEMBER(piratesh_state::piratesh_tile_callback)
// Code
// Color
// Flags
// if (*color != 0)
// printf("%x %x %x\n", layer, *code, *color >> 2);
// if (*color != 0)
// printf("%x %x %x\n", layer, *code, *color >> 2);
*color = (m_layer_colorbase[layer] << 4) + ((*color >> 2));// & 0x0f);
}
@ -143,16 +143,16 @@ K055673_CB_MEMBER(piratesh_state::piratesh_sprite_callback)
// .... .... xxx. .... - Priority?
// .... ..x. .... .... - ?
// ..x. .... .... .... - ?
#if 0
int layerpri[4];
static const int pris[4] = { K55_PRIINP_0, K55_PRIINP_3, K55_PRIINP_6, K55_PRIINP_7 };
for (uint32_t i = 0; i < 4; i++)
{
layerpri[i] = m_k055555->K055555_read_register(pris[i]);
}
// TODO: THIS IS ALL WRONG
if (pri <= layerpri[0])
*priority_mask = 0;
@ -165,12 +165,12 @@ K055673_CB_MEMBER(piratesh_state::piratesh_sprite_callback)
#endif
*priority_mask = 0;
// 0 - Sprites over everything
// f0 -
// f0 cc -
// f0 cc aa -
// 1111 0000
// 1100 1100
// 1010 1010
@ -189,7 +189,7 @@ VIDEO_START_MEMBER(piratesh_state, piratesh)
m_lvc_colorbase = 3;
#if 0
konamigx_mixer_init(*m_screen, 0);
m_k056832->set_layer_offs(0, -2+2-1, 0-1);
m_k056832->set_layer_offs(1, 0+2, 0);
m_k056832->set_layer_offs(2, 2+2, 0);
@ -202,21 +202,21 @@ uint32_t piratesh_state::screen_update_piratesh(screen_device &screen, bitmap_rg
{
bitmap.fill(0, cliprect);
#if 1
int layers[4], layerpri[4];
static const int pris[4] = { K55_PRIINP_0, K55_PRIINP_3, K55_PRIINP_6, K55_PRIINP_7 };
static const int enables[4] = { K55_INP_VRAM_A, K55_INP_VRAM_B, K55_INP_VRAM_C, K55_INP_VRAM_D };
for (uint32_t i = 0; i < 4; i++)
{
layers[i] = i;
layerpri[i] = m_k055555->K055555_read_register(pris[i]);
}
konami_sortlayers4(layers, layerpri);
screen.priority().fill(0, cliprect);
const uint32_t input_enables = m_k055555->K055555_read_register(K55_INPUT_ENABLES);
// TODO: FIX COLORBASES
@ -229,10 +229,10 @@ uint32_t piratesh_state::screen_update_piratesh(screen_device &screen, bitmap_rg
m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[i], 0, 1 << i);
}
}
if (input_enables & K55_INP_SUB2)
m_k055673->k053247_sprites_draw(bitmap, cliprect);
#if 0
#define K55_INP_VRAM_A 0x01
#define K55_INP_VRAM_B 0x02
@ -243,7 +243,7 @@ uint32_t piratesh_state::screen_update_piratesh(screen_device &screen, bitmap_rg
#define K55_INP_SUB2 0x40
#define K55_INP_SUB3 0x80
#endif
//055555: 4 to reg 7 (A PRI 0)
//055555: 0 to reg 8 (A PRI 1)
//055555: 0 to reg 9 (A COLPRI)
@ -254,7 +254,7 @@ uint32_t piratesh_state::screen_update_piratesh(screen_device &screen, bitmap_rg
//055555: 18 to reg e (D PRI)
//055555: 0 to reg 11 (SUB2 PRI)
//055555: 0 to reg 12 (SUB3 PRI)
//055555: 0 to reg 17 (A PAL)
//055555: 2 to reg 18 (B PAL)
//055555: 4 to reg 19 (C PAL)
@ -262,18 +262,18 @@ uint32_t piratesh_state::screen_update_piratesh(screen_device &screen, bitmap_rg
//055555: 3 to reg 1d (SUB2 PAL)
//055555: 1 to reg 1e (SUB3 PAL)
#else
// LAYER, FLAGS, PRIORITY
m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2);
// TODO: Fix priority
m_k053250->draw(bitmap, cliprect, 0x20, 0, screen.priority(), 8);
m_k055673->k053247_sprites_draw(bitmap, cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0);
#endif
@ -297,7 +297,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(piratesh_state::piratesh_interrupt)
if (scanline == 240)
{
m_k053250->vblank_w(1);
if (m_int_enable & 2)
{
m_int_status |= 2;
@ -308,7 +308,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(piratesh_state::piratesh_interrupt)
if (scanline == 0)
{
m_k053250->vblank_w(0);
if (m_int_enable & 4)
{
m_int_status |= 4;
@ -341,7 +341,7 @@ WRITE16_MEMBER(piratesh_state::control1_w)
WRITE16_MEMBER(piratesh_state::control2_w)
{
// .... .... ...x .... - Unknown (always 1?)
// .... .... ...x .... - Unknown (always 1?)
// .... .... ..x. .... - Unknown
// .... .... .x.. .... - Counter out
// .... .... x... .... - Counter in
@ -363,16 +363,16 @@ WRITE16_MEMBER(piratesh_state::control2_w)
WRITE16_MEMBER(piratesh_state::control3_w)
{
// .... .... .... ...x - Watchdog? (051550?)
// .... .... .... ...x - Watchdog? (051550?)
// .... .... .... ..x. - 056832 ROM bank control
// .... .... ...x .... - Ticket dispenser enable (active high)
// .... .... ..x. .... - Hopper enable (active high)
// .... ...x .... .... - Unknown (always 1?)
if ((data & ~0x0133) || (~data & 0x100))
printf("CTRL1 W: %x %x %x\n", offset, data, mem_mask);
// printf("CTRL 1: %x\n", data & 0x0010);
// printf("CTRL 1: %x\n", data & 0x0010);
machine().device<ticket_dispenser_device>("ticket")->motor_w(data & 0x0010 ? 1 : 0);
machine().device<ticket_dispenser_device>("hopper")->motor_w(data & 0x0020 ? 1 : 0);
@ -423,7 +423,7 @@ WRITE_LINE_MEMBER(piratesh_state::k054539_nmi_gen)
update_interrupts();
}
}
m_sound_intck = state;
}
@ -432,10 +432,10 @@ CUSTOM_INPUT_MEMBER(piratesh_state::helm_r)
// Appears to be a quadrature encoder
uint8_t xa, xb;
uint16_t dx = ioport("HELM")->read();
xa = ((dx + 1) & 7) <= 3;
xb = (dx & 7) <= 3;
return (xb << 1) | xa;
}
@ -443,7 +443,7 @@ CUSTOM_INPUT_MEMBER(piratesh_state::battery_r)
{
// .x MB3790 /ALARM1
// x. MB3790 /ALARM2
return 0x3;
}
@ -571,11 +571,11 @@ MACHINE_RESET_MEMBER(piratesh_state,piratesh)
// soften chorus(chip 0 channel 0-3), boost voice(chip 0 channel 4-7)
for (i=0; i<=7; i++)
{
// m_k054539->set_gain(i, 0.5);
// m_k054539->set_gain(i, 0.5);
}
// // soften percussions(chip 1 channel 0-7)
// for (i=0; i<=7; i++) m_k054539_2->set_gain(i, 0.5);
// // soften percussions(chip 1 channel 0-7)
// for (i=0; i<=7; i++) m_k054539_2->set_gain(i, 0.5);
}
@ -671,8 +671,8 @@ ROM_START( piratesh )
ROM_LOAD( "360ua-a06.15t", 0x000000, 0x80000, CRC(6816a493) SHA1(4fc4cfbc164d84bbf8d75ccd78c9f40f3273d852) )
ROM_LOAD( "360ua-a07.17t", 0x080000, 0x80000, CRC(af7127c5) SHA1(b525f3c6b831e3354eba46016d414bedcb3ae8dc) )
// ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
// ROM_LOAD( "piratesh.nv", 0x0000, 0x080, CRC(28df2269) SHA1(3f071c97662745a199f96964e2e79f795bd5a391) )
// ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
// ROM_LOAD( "piratesh.nv", 0x0000, 0x080, CRC(28df2269) SHA1(3f071c97662745a199f96964e2e79f795bd5a391) )
ROM_END
/* ROM parent machine inp init */

View File

@ -134,7 +134,7 @@ ROM_START( unkm1 ) // 1992.01.31 string
ROM_LOAD( "epr-14429.ic104", 0x00000, 0x20000, CRC(1ff8262d) SHA1(fb90bd877b2dc65eb3e5495d6e21dee1f871fb44) )
// ROM_REGION( 0x8000, "m1comm", 0 ) // not present?
ROM_REGION( 0x100, "plds", 0 )
ROM_LOAD( "315-5472-01.ic22", 0x000, 0x0eb, CRC(828ee6e2) SHA1(f32dd0f6297cc8bd3049be4bca502c0f8ec738cf) )
// dumps of the X-Board part, and the LINK PCB are missing.

View File

@ -164,7 +164,7 @@ On top copper layer:
On bottom copper layer:
"171-5200"
On a sticker:
On a sticker:
"REV C"
On a sticker:
@ -184,7 +184,7 @@ All ICs have a date code of either 1983 or 1984.
IC6 - SN74LS244N
IC7 - SN73LS244N
IC8 - Toshiba TC5517APL (backed by a super capacitor)
IC9 - NEC D8255AC-2
IC9 - NEC D8255AC-2
IC10 - 28-pin socket (silkscreen is "27128") for "EPR-6450D" (Fujitsu MB27128-30)
IC11 - 28-pin socket (silkscreen is "27128") for "EPR-6504D" (Fujitsu MB27128-30)
IC12 - Toshiba TC4053BP
@ -206,7 +206,7 @@ IC27 - Motorola NE592N
IC28 - Motorola NE592N
IC29 - NEC 7808
PC1 - GI B 5102 321J "TLP521-1"
PC1 - GI B 5102 321J "TLP521-1"
PC2 - GI D 5102 423J
PC3 - GI D 5102 423J
PC4 - GI D 5102 423J
@ -251,18 +251,18 @@ Source code and text in EPR-6450D
POWER DOWN CHANGE
TSEL:
LD A,(BETFLG) ; READ CREDIT
RRCA ; CREDIT IN ?
JR C,BETSELZ
LD A,(BETFLG) ; READ CREDIT
RRCA ; CREDIT IN ?
JR C,BETSELZ
LD A,(SELOLD)
OR A
LD C,A
CALL NZ,OLDCLCG
LD HL,0
LD (SELOLD),HL
LD (DBLSWCT),HL
LD (LMPCNT),1
LD A,(SELOLD)
OR A
LD C,A
CALL NZ,OLDCLCG
LD HL,0
LD (SELOLD),HL
LD (DBLSWCT),HL
LD (LMPCNT),1
================================================================================
End

View File

@ -682,9 +682,9 @@ static MACHINE_CONFIG_START( to7, thomson_state )
MCFG_LEGACY_FLOPPY_CONFIG(thomson_floppy_interface)
MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(thomson_state, fdc_index_3_w))
MCFG_WD2793_ADD("wd2793", XTAL_1MHz)
MCFG_FLOPPY_DRIVE_ADD("wd2793:0", cd90_640_floppies, "dd", thomson_state::cd90_640_formats)
MCFG_FLOPPY_DRIVE_ADD("wd2793:1", cd90_640_floppies, "dd", thomson_state::cd90_640_formats)
MCFG_WD2793_ADD("wd2793", XTAL_1MHz)
MCFG_FLOPPY_DRIVE_ADD("wd2793:0", cd90_640_floppies, "dd", thomson_state::cd90_640_formats)
MCFG_FLOPPY_DRIVE_ADD("wd2793:1", cd90_640_floppies, "dd", thomson_state::cd90_640_formats)
/* network */

View File

@ -112,18 +112,18 @@ MACHINE_CONFIG_END
Game driver(s)
***************************************************************************/
/*
Shark by U.S. Billiards
Etched in copper on Top (C) 1975
010
1SCOOP J6 2SCOOP
Etched in copper on Top (C) 1975
010
1SCOOP J6 2SCOOP
Handwritten on top J0037
124
Handwritten on top J0037
124
empty socket at 5M C etched in copper next to socket
empty socket at 5M C etched in copper next to socket
*/

View File

@ -6,7 +6,7 @@
Driver by Ville Linde
Software notes (as per Police 911)
-- VL - 01.06.2011
@ -73,8 +73,8 @@
0x00009d00: LoadProgram(): R3 = ptr to filename
TODO:
- needs a proper way to dump security dongles, anything but p9112 has placeholder ROM for ds2430.
TODO:
- needs a proper way to dump security dongles, anything but p9112 has placeholder ROM for ds2430.
Game status:
ppp2nd POST: "DIP SWITCH ERROR", "NO SECURITY ERROR"
@ -1809,7 +1809,7 @@ READ64_MEMBER(viper_state::input_r)
#endif
READ8_MEMBER(viper_state::input_r)
{
{
return (m_io_ports[offset & 7])->read();
}
@ -2068,7 +2068,7 @@ WRITE64_MEMBER(viper_state::unk_serial_w)
/*****************************************************************************/
static ADDRESS_MAP_START(viper_map, AS_PROGRAM, 64, viper_state )
// ADDRESS_MAP_UNMAP_HIGH
// ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x00ffffff) AM_MIRROR(0x1000000) AM_RAM AM_SHARE("workram")
AM_RANGE(0x80000000, 0x800fffff) AM_READWRITE32(epic_r, epic_w,0xffffffffffffffffU)
AM_RANGE(0x82000000, 0x83ffffff) AM_READWRITE(voodoo3_r, voodoo3_w)
@ -2079,7 +2079,7 @@ static ADDRESS_MAP_START(viper_map, AS_PROGRAM, 64, viper_state )
// 0xff000000, 0xff000fff - cf_card_data_r/w (installed in DRIVER_INIT(vipercf))
// 0xff200000, 0xff200fff - cf_card_r/w (installed in DRIVER_INIT(vipercf))
// 0xff300000, 0xff300fff - ata_r/w (installed in DRIVER_INIT(viperhd))
// AM_RANGE(0xff400xxx, 0xff400xxx) ppp2nd sense device
// AM_RANGE(0xff400xxx, 0xff400xxx) ppp2nd sense device
AM_RANGE(0xffe00000, 0xffe00007) AM_READ(e00000_r)
AM_RANGE(0xffe00008, 0xffe0000f) AM_READWRITE(e00008_r, e00008_w)
AM_RANGE(0xffe08000, 0xffe08007) AM_NOP
@ -2108,10 +2108,10 @@ CUSTOM_INPUT_MEMBER(viper_state::ds2430_unk_r)
static INPUT_PORTS_START( viper )
PORT_START("IN0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN2")
PORT_DIPNAME( 0x01, 0x01, "DIP4" ) PORT_DIPLOCATION("SW:4")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
@ -2129,7 +2129,7 @@ static INPUT_PORTS_START( viper )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, viper_state, ds2430_unk_r, nullptr)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // if this bit is 0, loads a disk copier instead
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("IN3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) /* Test Button */
@ -2145,7 +2145,7 @@ static INPUT_PORTS_START( viper )
PORT_DIPNAME( 0x80, 0x80, "3-3" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("IN4")
PORT_DIPNAME( 0x01, 0x01, "4" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
@ -2172,22 +2172,22 @@ static INPUT_PORTS_START( viper )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("IN5")
PORT_BIT(0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("IN6")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN7")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
INPUT_PORTS_START( ppp2nd )
PORT_INCLUDE( viper )
PORT_MODIFY("IN2")
PORT_DIPNAME( 0x01, 0x01, "DIP4" ) PORT_DIPLOCATION("SW:4")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
@ -2201,14 +2201,14 @@ INPUT_PORTS_START( ppp2nd )
PORT_DIPNAME( 0x08, 0x08, "DIP1" ) PORT_DIPLOCATION("SW:1")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_MODIFY("IN3")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("OK Button")
PORT_MODIFY("IN4")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Left Button")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Button")
PORT_MODIFY("IN5")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // another OK button
INPUT_PORTS_END
@ -2218,41 +2218,41 @@ INPUT_PORTS_START( thrild2 )
PORT_MODIFY("IN3")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Down")
PORT_MODIFY("IN4")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Up")
// TODO: analog channels
INPUT_PORTS_END
INPUT_PORTS_START( gticlub2 )
PORT_INCLUDE( thrild2 )
// TODO: specific analog channel for hand brake
INPUT_PORTS_END
INPUT_PORTS_START( boxingm )
PORT_INCLUDE( viper )
PORT_MODIFY("IN5")
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // memory card check for boxingm (actually comms enable?)
INPUT_PORTS_END
INPUT_PORTS_START( p911 )
PORT_INCLUDE( viper )
PORT_MODIFY("IN5")
// one of these is P2 SHT2 (checks and fails serial if pressed)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
INPUT_PORTS_START( tsurugi )
PORT_INCLUDE( viper )
PORT_MODIFY("IN4")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shot Button")
PORT_MODIFY("IN5")
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Foot Pedal")
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // deluxe ID? if off tries to check UART & "lampo"/bleeder at POST
@ -2263,7 +2263,7 @@ INPUT_PORTS_END
INTERRUPT_GEN_MEMBER(viper_state::viper_vblank)
{
{
mpc8240_interrupt(MPC8240_IRQ0);
//mpc8240_interrupt(MPC8240_IRQ3);
}
@ -2298,7 +2298,7 @@ void viper_state::machine_reset()
// Viper expects these settings or the BIOS fails
identify_device[51] = 0x0200; /* 51: PIO data transfer cycle timing mode */
identify_device[67] = 0x00f0; /* 67: minimum PIO transfer cycle time without flow control */
m_ds2430_unk_status = 1;
}

View File

@ -206,7 +206,7 @@ public:
DECLARE_MACHINE_START(nevada);
DECLARE_DRIVER_INIT(nevada);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
};
@ -266,8 +266,8 @@ WRITE16_MEMBER( nevada_state::vram_w )
{
// Todo, Just for sample
m_vram[offset] = data;
m_tilemap->mark_tile_dirty(offset / 2);
m_vram[offset] = data;
m_tilemap->mark_tile_dirty(offset / 2);
}
@ -281,12 +281,12 @@ GFXDECODE_END
TILE_GET_INFO_MEMBER( nevada_state::get_bg_tile_info )
{
//int attr = m_colorram[tile_index];
int code = m_vram[tile_index*2+1];
//int bank = (attr & 0x02) >> 1;
//int color = (attr & 0x3c) >> 2;
//int attr = m_colorram[tile_index];
int code = m_vram[tile_index*2+1];
//int bank = (attr & 0x02) >> 1;
//int color = (attr & 0x3c) >> 2;
SET_TILE_INFO_MEMBER(0, code, 0, 0);
SET_TILE_INFO_MEMBER(0, code, 0, 0);
}
@ -294,13 +294,13 @@ TILE_GET_INFO_MEMBER( nevada_state::get_bg_tile_info )
/***************************************************************************/
void nevada_state::video_start()
{
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nevada_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,31,31);
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nevada_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,31,31);
}
/***************************************************************************/
uint32_t nevada_state::screen_update_nevada(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -529,7 +529,7 @@ ROM_END
ROM_START( policet2 )
ROM_REGION( 0x40000, "bios", 0 )
ROM_LOAD( "pm29f002t.u22", 0x000000, 0x040000, CRC(eb32ace6) SHA1(1b1eeb07e20822c690d05959077c7ddcc22d1708) )
ROM_LOAD( "pm29f002t.u22", 0x000000, 0x040000, CRC(eb32ace6) SHA1(1b1eeb07e20822c690d05959077c7ddcc22d1708) )
ROM_REGION( 0x8000, "video_bios", 0 ) // incorrect, need GeForce 2MX BIOS for 32MB card
ROM_LOAD16_BYTE( "trident_tgui9680_bios.bin", 0x0000, 0x4000, CRC(1eebde64) BAD_DUMP SHA1(67896a854d43a575037613b3506aea6dae5d6a19) )

View File

@ -5,93 +5,93 @@
Play Mechanix / Right Hand Tech "VP50", "VP100" and "VP101" platforms
(PCBs are also marked "Raw Thrills" but all RT games appear to be on PC hardware)
Boards:
- VP101: Johnny Nero. The original (?)
- VP100: Special Forces Elite Training. A not-quite-complete VP101; missing ATA DMA.
- VP50 : Zoofari. Cost-reduced (?) with TX4925 SoC, much less complex FPGA.
Boards:
- VP101: Johnny Nero. The original (?)
- VP100: Special Forces Elite Training. A not-quite-complete VP101; missing ATA DMA.
- VP50 : Zoofari. Cost-reduced (?) with TX4925 SoC, much less complex FPGA.
Preliminary driver by R. Belmont
TODO:
- All games: that formidable sounding 3D accelerator mentioned below.
- All games: the sound system (the POST plays some example sounds)
- Zoofari's framebuffer is 256 color but I don't know where the CLUT comes from.
- All games: that formidable sounding 3D accelerator mentioned below.
- All games: the sound system (the POST plays some example sounds)
- Zoofari's framebuffer is 256 color but I don't know where the CLUT comes from.
To make the games go into a POST test, hold down START 1 while resetting.
To make the games go into a POST test, hold down START 1 while resetting.
VP101 Features from http://web.archive.org/web/20041016000248/http://www.righthandtech.com/projects.htm
MIPS VR5500 CPU
The VR5500 operates at either at 300 or 400 MHz with 120MHz external bus
MIPS 64-bit RISC architecture
Two-way super-scalar super pipeline
On-chip floating-point unit (FPU)
High-speed translation look-aside buffer (TLB)(48 double-entries)
On-chip primary cache memory (instruction/data: 32 KB each)
2-way set associative, Supports line lock feature
Conforms to MIPS I, II, III, and IV instruction sets. Also supports product-sum operation instruction, rotate instruction, register scan instruction
Six execution units (ALU0, ALU1, FPU, FPU/MAC, BRU, and LSU)
Employment of out-of-order execution mechanism
Branch prediction mechanism - Branch history table with 4K entries
Support for CPU emulator connection via JTAG/n-Wire port
Unified Memory Architecture - DDR SDRAM bank
Arbitrating DDR SDRAM Memory controller
128Mbyte to 512Mbyte memory capacity
120/240 MHz @ 64 bits - ~2GBytes/sec bandwidth
3D Render Engine
True color and 8-bit palette lookup textures
8K byte texel cache for accelerated source texel selection.
Perspective corrected rendering
Bi-linear filter for source texel scaling
256 Color Palette Lookup (888 RGB plus 8 bit Source Palette Alpha)
True Color Source Textures (888 RGB plus 8 bit Alpha)
24 bit Z-buffer structure in DDR SDRAM buffer
Per-vertex colored lighting
Alpha channel structure in DDR SDRAM buffer
Pixel processing effects (fog, night, etc.)
888 RGB Video DAC output section.
Bitmap structure in DDR SDRAM with DMA for screen update
Flexible CRT controller with X/Y gun interface counters
Game I/O
Standard JAMMA I/O interface, including player 3 and 4 connectors
4 channel general purpose A to D interface (steering wheel and control pedals)
100baseT Ethernet interface for debugging and/or inter game communications
Forced-feedback Wheel Driver Interface for driving games
High-current drivers for lamps or solenoids
Gun interface I/O tightly coupled to the CRT controller
Sound System
AC97 codec for low cost of implementation and development
TDA7375 40 Watt Integrated Amplifier
Codec fed from the DDR bank via a 16 channel (8 channels of stereo) DMA engine.
VP101 Features from http://web.archive.org/web/20041016000248/http://www.righthandtech.com/projects.htm
ATA/IDE Disk Drive Interface
Standard ATA/IDE interface
Ultra DMA 33/66/100/133 to the DDR SDRAM memory
MIPS VR5500 CPU
The VR5500 operates at either at 300 or 400 MHz with 120MHz external bus
MIPS 64-bit RISC architecture
Two-way super-scalar super pipeline
On-chip floating-point unit (FPU)
High-speed translation look-aside buffer (TLB)(48 double-entries)
On-chip primary cache memory (instruction/data: 32 KB each)
2-way set associative, Supports line lock feature
Conforms to MIPS I, II, III, and IV instruction sets. Also supports product-sum operation instruction, rotate instruction, register scan instruction
Six execution units (ALU0, ALU1, FPU, FPU/MAC, BRU, and LSU)
Employment of out-of-order execution mechanism
Branch prediction mechanism - Branch history table with 4K entries
Support for CPU emulator connection via JTAG/n-Wire port
Video DAC
RGB values at 8 bits per color
RGB voltage level adjustable from 0-1.0 Vp-p to 0-4.0 Vp-p
Unified Memory Architecture - DDR SDRAM bank
Arbitrating DDR SDRAM Memory controller
128Mbyte to 512Mbyte memory capacity
120/240 MHz @ 64 bits - ~2GBytes/sec bandwidth
Flash Memory
Minimum of 1MB of Flash memory expandable to 4 MB
Updateable Boot ROM
Updateable FPGA configuration
3D Render Engine
True color and 8-bit palette lookup textures
8K byte texel cache for accelerated source texel selection.
Perspective corrected rendering
Bi-linear filter for source texel scaling
256 Color Palette Lookup (888 RGB plus 8 bit Source Palette Alpha)
True Color Source Textures (888 RGB plus 8 bit Alpha)
24 bit Z-buffer structure in DDR SDRAM buffer
Per-vertex colored lighting
Alpha channel structure in DDR SDRAM buffer
Pixel processing effects (fog, night, etc.)
888 RGB Video DAC output section.
Bitmap structure in DDR SDRAM with DMA for screen update
Flexible CRT controller with X/Y gun interface counters
Battery Backed Up RAM
32K bytes of non-volatile memory for static game configuration and high score table
Non-volatile Real-Time clock
Small Footprint
Small outline design for easy kit retrofitting of existing cabinet
12.2 in x 14.96 in
Game I/O
Standard JAMMA I/O interface, including player 3 and 4 connectors
4 channel general purpose A to D interface (steering wheel and control pedals)
100baseT Ethernet interface for debugging and/or inter game communications
Forced-feedback Wheel Driver Interface for driving games
High-current drivers for lamps or solenoids
Gun interface I/O tightly coupled to the CRT controller
Security Interface
Security processor provides for a means to unlock the FPGA functions
Enabled for software protection against piracy and unwarranted game updates
Sound System
AC97 codec for low cost of implementation and development
TDA7375 40 Watt Integrated Amplifier
Codec fed from the DDR bank via a 16 channel (8 channels of stereo) DMA engine.
ATA/IDE Disk Drive Interface
Standard ATA/IDE interface
Ultra DMA 33/66/100/133 to the DDR SDRAM memory
Video DAC
RGB values at 8 bits per color
RGB voltage level adjustable from 0-1.0 Vp-p to 0-4.0 Vp-p
Flash Memory
Minimum of 1MB of Flash memory expandable to 4 MB
Updateable Boot ROM
Updateable FPGA configuration
Battery Backed Up RAM
32K bytes of non-volatile memory for static game configuration and high score table
Non-volatile Real-Time clock
Small Footprint
Small outline design for easy kit retrofitting of existing cabinet
12.2 in x 14.96 in
Security Interface
Security processor provides for a means to unlock the FPGA functions
Enabled for software protection against piracy and unwarranted game updates
Full populated and tested board is less than $500, including IDE hard disk.
Small outline design for easy kit retrofitting of existing cabinets.
@ -118,25 +118,25 @@ public:
virtual void machine_reset() override;
virtual void machine_start() override;
DECLARE_READ32_MEMBER(tty_ready_r);
DECLARE_WRITE32_MEMBER(tty_w);
DECLARE_READ32_MEMBER(test_r) { return 0xffffffff; }
DECLARE_READ32_MEMBER(pic_r);
DECLARE_WRITE32_MEMBER(pic_w);
DECLARE_WRITE32_MEMBER(dmaaddr_w);
DECLARE_WRITE_LINE_MEMBER(dmarq_w);
DECLARE_READ32_MEMBER(tty_4925_rdy_r) { return 0x2; }
DECLARE_READ32_MEMBER(spi_status_r) { return 0x8007; }
DECLARE_READ32_MEMBER(spi_r);
DECLARE_WRITE32_MEMBER(spi_w);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t vp50_screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@ -166,9 +166,9 @@ void vp10x_state::machine_reset()
void vp10x_state::machine_start()
{
m_maincpu->mips3drc_set_options(MIPS3DRC_FASTEST_OPTIONS);
// m_maincpu->add_fastram(0x00000000, 0x03ffffff, false, m_mainram);
// m_maincpu->add_fastram(0x00000000, 0x03ffffff, false, m_mainram);
}
WRITE32_MEMBER(vp10x_state::dmaaddr_w)
{
m_dma_ptr = (data & 0x07ffffff);
@ -179,18 +179,18 @@ WRITE_LINE_MEMBER(vp10x_state::dmarq_w)
if (state != m_dmarq_state)
{
m_dmarq_state = state;
if (state)
{
uint16_t *RAMbase = (uint16_t *)&m_mainram[0];
uint16_t *RAM = &RAMbase[m_dma_ptr>>1];
uint16_t *RAM = &RAMbase[m_dma_ptr>>1];
m_ata->write_dmack(ASSERT_LINE);
m_ata->write_dmack(ASSERT_LINE);
while (m_dmarq_state)
{
*RAM++ = m_ata->read_dma();
m_dma_ptr += 2; // pointer must advance
m_dma_ptr += 2; // pointer must advance
}
m_ata->write_dmack(CLEAR_LINE);
@ -198,7 +198,7 @@ WRITE_LINE_MEMBER(vp10x_state::dmarq_w)
}
}
READ32_MEMBER(vp10x_state::pic_r)
READ32_MEMBER(vp10x_state::pic_r)
{
static const uint8_t vers[5] = { 0x00, 0x01, 0x00, 0x00, 0x00 };
static const uint8_t serial[10] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a };
@ -208,15 +208,15 @@ READ32_MEMBER(vp10x_state::pic_r)
{
case 0x20:
return vers[pic_state++];
case 0x21:
case 0x22:
return serial[pic_state++];
case 0x23: // this is the same for jnero and specfrce. great security!
case 0x23: // this is the same for jnero and specfrce. great security!
return magic[pic_state++];
}
return 0;
}
@ -231,14 +231,14 @@ WRITE32_MEMBER(vp10x_state::pic_w)
pic_state = 0;
}
READ32_MEMBER(vp10x_state::spi_r)
READ32_MEMBER(vp10x_state::spi_r)
{
return 0xffffffff;
}
WRITE32_MEMBER(vp10x_state::spi_w)
{
// printf("%d to SPI select\n", data);
// printf("%d to SPI select\n", data);
m_spi_select = data;
}
@ -288,7 +288,7 @@ uint32_t vp10x_state::vp50_screen_update(screen_device &screen, bitmap_rgb32 &bi
r = pal_ram[video_ram[x]] >> 11;
g = (pal_ram[video_ram[x]] >> 5) & 0x3f;
b = pal_ram[video_ram[x]] & 0x1f;
*line++ = (r << 19) | (g << 10) | (b << 3);
}
}
@ -304,7 +304,7 @@ WRITE32_MEMBER(vp10x_state::tty_w) // set breakpoint at bfc01430 to catch when
{
// uncomment to see startup messages - it says "RAM OK" and "EPI RSS Ver 4.5.1" followed by "<RSS active>" and then lots of dots
// Special Forces also says "<inited tv_cap> = 00000032"
// printf("%c", data);
// printf("%c", data);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, vp10x_state )
@ -315,13 +315,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, vp10x_state )
AM_RANGE(0x1c400000, 0x1c400003) AM_WRITE(tty_w) // boot ROM code uses this one
AM_RANGE(0x1c400014, 0x1c400017) AM_READ(tty_ready_r)
AM_RANGE(0x1ca0000c, 0x1ca0000f) AM_READ_PORT("IN0")
AM_RANGE(0x1ca00010, 0x1ca00013) AM_READ(test_r) // bits here cause various test mode stuff
AM_RANGE(0x1ca00010, 0x1ca00013) AM_READ(test_r) // bits here cause various test mode stuff
AM_RANGE(0x1cf00000, 0x1cf00003) AM_NOP AM_READNOP
AM_RANGE(0x1d000030, 0x1d000033) AM_WRITE(dmaaddr_w) // ATA DMA destination address
AM_RANGE(0x1d000030, 0x1d000033) AM_WRITE(dmaaddr_w) // ATA DMA destination address
AM_RANGE(0x1d000040, 0x1d00005f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs0, write_cs0, 0x0000ffff)
AM_RANGE(0x1d000060, 0x1d00007f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs1, write_cs1, 0x0000ffff)
AM_RANGE(0x1f200000, 0x1f200003) AM_READWRITE(pic_r, pic_w)
AM_RANGE(0x1f807000, 0x1f807fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1f807000, 0x1f807fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1fc00000, 0x1fffffff) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END
@ -329,10 +329,10 @@ static ADDRESS_MAP_START( vp50_map, AS_PROGRAM, 32, vp10x_state )
AM_RANGE(0x00000000, 0x03ffffff) AM_RAM AM_SHARE("mainram")
AM_RANGE(0x1f000010, 0x1f00001f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs1, write_cs1, 0xffffffff)
AM_RANGE(0x1f000020, 0x1f00002f) AM_DEVREADWRITE16("ata", ata_interface_device, read_cs0, write_cs0, 0xffffffff)
AM_RANGE(0x1f400000, 0x1f400003) AM_NOP // FPGA bitstream download?
AM_RANGE(0x1f400000, 0x1f400003) AM_NOP // FPGA bitstream download?
AM_RANGE(0x1f400800, 0x1f400bff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1fc00000, 0x1fffffff) AM_ROM AM_REGION("maincpu", 0)
// TX4925 peripherals
AM_RANGE(0xff1ff40c, 0xff1ff40f) AM_READ(tty_4925_rdy_r)
AM_RANGE(0xff1ff41c, 0xff1ff41f) AM_WRITE(tty_w)
@ -347,7 +347,7 @@ static INPUT_PORTS_START( vp101 )
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0xfffffff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
@ -357,7 +357,7 @@ static INPUT_PORTS_START( vp50 )
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0xfffffff0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
@ -373,10 +373,10 @@ static MACHINE_CONFIG_START( vp101, vp10x_state )
MCFG_SCREEN_UPDATE_DRIVER(vp10x_state, screen_update)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", nullptr, false)
MCFG_ATA_INTERFACE_DMARQ_HANDLER(WRITELINE(vp10x_state, dmarq_w))
MCFG_NVRAM_ADD_0FILL("nvram")
MACHINE_CONFIG_END
@ -392,9 +392,9 @@ static MACHINE_CONFIG_START( vp50, vp10x_state )
MCFG_SCREEN_UPDATE_DRIVER(vp10x_state, vp50_screen_update)
MCFG_SCREEN_SIZE(400, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", nullptr, false)
MCFG_NVRAM_ADD_0FILL("nvram")
MACHINE_CONFIG_END
@ -405,8 +405,8 @@ ROM_START(jnero)
ROM_REGION(0x80000, "pic", 0) /* PIC18c422 program - read-protected, need dumped */
ROM_LOAD( "8722a-1206.bin", 0x000000, 0x80000, NO_DUMP )
DISK_REGION( "ata:0:hdd:image" ) /* ideally an IDENTIFY page from a real drive should be the IDTN metadata,
but even factory-new boardsets came with a variety of HDD makes and models */
DISK_REGION( "ata:0:hdd:image" ) /* ideally an IDENTIFY page from a real drive should be the IDTN metadata,
but even factory-new boardsets came with a variety of HDD makes and models */
DISK_IMAGE_READONLY("jn010108", 0, SHA1(5a27990478b65fca801c3a6518c519c5b4ca934d) )
ROM_END

View File

@ -185,7 +185,7 @@ public:
uint8_t *maskBaseAddr;
c123_tilemap_delegate cb;
};
c123_mTilemapInfo m_c123_TilemapInfo;
// C169 ROZ Layer Emulation

View File

@ -26,7 +26,7 @@ public:
uint8_t m_irq_mask;
emu_timer *m_dac_irq_timer;
DECLARE_WRITE8_MEMBER(irq_enable_w);
DECLARE_WRITE8_MEMBER(trucocl_videoram_w);
DECLARE_WRITE8_MEMBER(trucocl_colorram_w);

View File

@ -646,7 +646,7 @@ TIMER_CALLBACK_MEMBER(mac_state::mac_adb_tick)
{
m_adb_command <<= 1;
}
// do one clock transition on CB1 to advance the VIA shifter
m_via1->write_cb1(m_adb_extclock ^ 1);
m_via1->write_cb1(m_adb_extclock);
@ -659,7 +659,7 @@ TIMER_CALLBACK_MEMBER(mac_state::mac_adb_tick)
if ((m_adb_direction) && (ADB_IS_BITBANG_CLASS))
{
adb_talk();
if((m_adb_last_talk == 2) && m_adb_datasize)
if((m_adb_last_talk == 2) && m_adb_datasize)
{
m_adb_timer_ticks = 8;
m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
@ -691,7 +691,7 @@ void mac_state::mac_adb_newaction(int state)
m_adb_direction = 1; // Mac is shifting us a command
m_adb_waiting_cmd = 1; // we're going to get a command
m_adb_irq_pending = 0;
m_adb_extclock = 1; // VIA output shifts on falling clock
m_adb_extclock = 1; // VIA output shifts on falling clock
m_via1->write_cb1(m_adb_extclock);
m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
break;
@ -709,9 +709,9 @@ void mac_state::mac_adb_newaction(int state)
m_adb_send = m_adb_buffer[0];
m_adb_datasize--;
m_adb_extclock = 0; // VIA input shifts on rising clock
m_adb_extclock = 0; // VIA input shifts on rising clock
m_via1->write_cb1(m_adb_extclock);
// move down the rest of the buffer, if any
for (i = 0; i < m_adb_datasize; i++)
{
@ -1125,7 +1125,7 @@ void mac_state::adb_vblank()
this->adb_talk();
m_adb_timer_ticks = 8;
m_adb_extclock = 0; // VIA input shifts on rising clock
m_adb_extclock = 0; // VIA input shifts on rising clock
m_via1->write_cb1(m_adb_extclock);
this->m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}
@ -1164,7 +1164,7 @@ void mac_state::adb_vblank()
this->adb_talk();
m_adb_timer_ticks = 8;
m_adb_extclock = 0; // VIA input shifts on rising clock
m_adb_extclock = 0; // VIA input shifts on rising clock
m_via1->write_cb1(m_adb_extclock);
this->m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}

View File

@ -13480,7 +13480,7 @@ hapytour // (c) 2005 GAV Company (on Eolith's Ghost hardw
touryuu // (c) 200? Yuki Enterprise
@source:giclassic.cpp
giclasex
giclasex
giclassvr
@source:gijoe.cpp
@ -27651,14 +27651,14 @@ yis60464 //
mt735 //
@source:mtouchxl.cpp
mtouchxl // 1997 Merit Industries
mtchxl5k // 1998 Merit Industries
mtchxl5ko // 1998 Merit Industries
mtchxl5ko2 // 1998 Merit Industries
mtchxl6k // 1999 Merit Industries
mtchxl6ko // 1999 Merit Industries
mtchxlgld // 2000 Merit Industries
mtchxlgldo // 2000 Merit Industries
mtouchxl // 1997 Merit Industries
mtchxl5k // 1998 Merit Industries
mtchxl5ko // 1998 Merit Industries
mtchxl5ko2 // 1998 Merit Industries
mtchxl6k // 1999 Merit Industries
mtchxl6ko // 1999 Merit Industries
mtchxlgld // 2000 Merit Industries
mtchxlgldo // 2000 Merit Industries
@source:mtx.cpp
mtx500 // 1983 Memotech MTX 500
@ -29616,7 +29616,7 @@ othunderu // B67 (c) 1988 Taito America Corporation (US, r
othunderuo // B67 (c) 1988 Taito America Corporation (US)
@source:otomedius.cpp
otomedius // (c) 2007 Konami
otomedius // (c) 2007 Konami
@source:overdriv.cpp
overdriv // GX789 (c) 1990
@ -30920,7 +30920,7 @@ pirates // (c) 1994 NIX
piratesb // bootleg?
@source:piratesh.cpp
piratesh // (c) 1995 Konami
piratesh // (c) 1995 Konami
@source:pitagjr.cpp
pitagjr // Pitagorin Junior
@ -37001,7 +37001,7 @@ votrtnt // 1980 Votrax Type-'N-Talk
@source:voyager.cpp
voyager // (c) 2002 Team Play, Inc.
policet2 // (c) 2003 Team Play, Inc.
policet2 // (c) 2003 Team Play, Inc.
@source:vp101.cpp
jnero // (c) 2004 ICE/Play Mechanix

View File

@ -194,7 +194,7 @@ READ16_MEMBER( k053247_device::k055673_ps_rom_word_r )
romofs = m_kx46_regs[6] << 16 | m_kx46_regs[7] << 8 | m_kx46_regs[4];
offset = ((offset & 4) >> 1);
int finoffs = (romofs * 2) + (offset * 2) + magic;
return ROM[finoffs+2] | (ROM[finoffs]<<8);

View File

@ -7,19 +7,19 @@
/*
Registers
0
xxxx xxxx X-Scroll [7:0]
1
xxxx xxxx X-Scroll [15:8]
2
xxxx xxxx Y-Scroll [7:0]
3
xxxx xxxx Y-Scroll [15:8]
4 Control
.... ...x 0:Swap XY 1:Normal
.... ..x. Interrupt related?
@ -27,13 +27,13 @@
.... x... Flip X
...x .... Flip Y
xxx. .... Wrap control
5
.... .... Unknown
6
xxxx xxxx ROM access address [7:0]
7
xxxx xxxx ROM access address [15:8]
*/
@ -72,9 +72,9 @@ void k053250ps_device::device_start()
m_ram.resize(0x6000/2);
m_buffer[0] = &m_ram[0x0000];
m_buffer[1] = &m_ram[0x0800];
// m_buffer[0] = &m_ram[0x2000];
// m_buffer[1] = &m_ram[0x2800];
// m_buffer[0] = &m_ram[0x2000];
// m_buffer[1] = &m_ram[0x2800];
unpack_nibbles();
@ -82,7 +82,7 @@ void k053250ps_device::device_start()
save_item(NAME(m_regs));
save_item(NAME(m_page));
save_item(NAME(m_dmairq_on));
m_dmairq_cb.resolve_safe();
m_timer_lvcdma = timer_alloc(0);
}
@ -91,10 +91,10 @@ void k053250ps_device::device_reset()
{
m_page = 0;
memset(m_regs, 0, sizeof(m_regs));
m_timer_lvcdma_state = OD_IDLE;
m_timer_lvcdma->adjust(attotime::never);
m_dmairq_on = false;
}
@ -263,19 +263,19 @@ inline void k053250ps_device::pdraw_scanline32(bitmap_rgb32 &bitmap, const pen_t
void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colorbase, int flags, bitmap_ind8 &priority_bitmap, int priority )
{
static int16_t scroll_x;
if (machine().input().code_pressed(KEYCODE_A))
{
scroll_x--;
popmessage("SCROLL: %d\n", scroll_x);
}
else if (machine().input().code_pressed(KEYCODE_S))
{
scroll_x++;
popmessage("SCROLL: %d\n", scroll_x);
}
uint8_t *pix_ptr;
const pen_t *pal_base, *pal_ptr;
uint32_t src_clipmask, src_wrapmask; //, dst_wrapmask;
@ -308,11 +308,11 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
if (ctrl & 0x10) orientation |= ORIENTATION_FLIP_Y;
//printf("CTRL: %x\n", ctrl);
// 00
// 0x12
// 0x10
switch (ctrl >> 5) // the upper four bits of the control register select source and target dimensions
{
case 0 :
@ -371,7 +371,7 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
linedata_offs += bitmap.height() - 1; // and get info for the first line from the bottom
}
// dst_wrapmask = ~0; // scanlines don't seem to wrap horizontally in normal orientation
// dst_wrapmask = ~0; // scanlines don't seem to wrap horizontally in normal orientation
passes = 1; // draw scanline in a single pass
}
else // orientaion with X and Y parameters switched
@ -401,13 +401,13 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
if (src_clipmask)
{
// determine target wrap boundary and draw scanline in two passes if the source is clipped
// dst_wrapmask = dst_height - 1;
// dst_wrapmask = dst_height - 1;
passes = 2;
}
else
{
// otherwise disable target wraparound and draw scanline in a single pass
// dst_wrapmask = ~0;
// dst_wrapmask = ~0;
passes = 1;
}
}
@ -421,7 +421,7 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
// load physical palette base
pal_base = palette().pens() + (colorbase << 4) % palette().entries();
//printf("Line Start: %u Line End: %u Advance: %u\n", line_start, line_end, linedata_adv);
@ -429,7 +429,7 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
for (line_pos=line_start; line_pos <= line_end; linedata_offs += linedata_adv, line_pos++)
{
linedata_offs &= 0x7ff; // line info data wraps at the four-kilobyte boundary
color = line_ram[linedata_offs]; // get scanline color code
if (color == 0xffff) continue; // reject scanline if color code equals minus one
@ -451,10 +451,10 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
zoom = line_ram[linedata_offs + 2];
scroll = ((short)line_ram[linedata_offs + 3]); // get signed local scroll value for the current scanline
// scavenged from old code; improves Xexex' first level sky
if (wrap500 && scroll >= 0x500) scroll -= 0x800;
if (1 && scroll >= 0x500) scroll -= 0x800;
scroll += scroll_corr; // apply final scroll correction
@ -465,8 +465,8 @@ void k053250ps_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, in
{
printf("%u: [%x] COLR:%x OFFS:%x ZOOM:%x SCRL:%d (%.4x)\n", line_pos, linedata_offs, color, offset, zoom, scroll, line_ram[linedata_offs + 3]);
}
// draw scanlines wrapped at virtual bitmap boundary in two passes
// this should not impose too much overhead due to clipping performed by the render code
i = passes;
@ -513,17 +513,17 @@ void k053250ps_device::device_timer(emu_timer &timer, device_timer_id id, int pa
m_timer_lvcdma_state = OD_WAIT_END;
m_timer_lvcdma->adjust(attotime::from_ticks(4096, clock()));
m_dmairq_cb(ASSERT_LINE);
// memcpy(m_buffer[m_page], &m_ram[0], 0x1000);
// m_page ^= 1;
// memcpy(m_buffer[m_page], &m_ram[0], 0x1000);
// m_page ^= 1;
break;
case OD_WAIT_END:
m_timer_lvcdma_state = OD_IDLE;
m_timer_lvcdma->adjust(attotime::never);
m_dmairq_cb(CLEAR_LINE);
if(/*(m_regs[4] & 0x02) &&*/ !m_dmairq_on)
{
m_dmairq_on = true;

View File

@ -26,7 +26,7 @@ public:
static void static_set_offsets(device_t &device, int offx, int offy);
template<class _cb> static devcb_base &set_dmairq_cb(device_t &device, _cb cb) { return downcast<k053250ps_device &>(device).m_dmairq_cb.set_callback(cb); }
DECLARE_READ16_MEMBER(reg_r);
DECLARE_WRITE16_MEMBER(reg_w);
DECLARE_READ16_MEMBER(ram_r);
@ -44,7 +44,7 @@ protected:
virtual void device_reset() override;
private:
enum {
OD_IDLE,
OD_WAIT_START,
@ -54,7 +54,7 @@ private:
devcb_write_line m_dmairq_cb;
int m_timer_lvcdma_state;
bool m_dmairq_on;
// configuration
int m_offx, m_offy;

View File

@ -154,4 +154,4 @@ pen_t s97269pb_device::choose_pen(uint8_t x, uint8_t y, pen_t back_pen)
}
}
return back_pen;
}
}

View File

@ -31,7 +31,7 @@ protected:
private:
required_region_ptr<uint8_t> m_prom_ptr;
// bit 2 enables gradient and starfield
// bit 2 enables gradient and starfield
// bit 3 seems to be used to flip for cocktail
uint8_t m_palette_bank;
};

View File

@ -103,7 +103,7 @@ void wolfpack_state::video_start()
for (int i = 0; i < 0x8000; i++)
{
uint16_t val = 0;
int bit = (val >> 0x0) ^ (val >> 0xe) ^ 1;
val = (val << 1) | (bit & 1);

View File

@ -88,7 +88,7 @@
[memoryScroll setHasVerticalScroller:YES];
[memoryScroll setAutohidesScrollers:YES];
[memoryScroll setBorderType:NSNoBorder];
[memoryScroll setDrawsBackground:NO];
[memoryScroll setDrawsBackground:NO];
[memoryScroll setDocumentView:memoryView];
[memoryView release];
[[window contentView] addSubview:memoryScroll];

View File

@ -83,7 +83,7 @@ int emulator_info::start_frontend(emu_options &options, osd_interface &osd, std:
options.set_value(OSDOPTION_SOUND, "none", OPTION_PRIORITY_MAXIMUM, error_string);
//options.set_value(OPTION_DEBUG, true, OPTION_PRIORITY_MAXIMUM, error_string);
options.set_value(OPTION_THROTTLE, false, OPTION_PRIORITY_MAXIMUM, error_string);
zexall_machine_manager::instance(options,osd)->start_http_server();
zexall_machine_manager::instance(options,osd)->execute();
return 0;