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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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)

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

@ -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

@ -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);
}
@ -142,10 +142,10 @@ 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;
}
@ -173,7 +173,7 @@ 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")
@ -183,7 +183,7 @@ static ADDRESS_MAP_START( acchi_map, AS_PROGRAM, 16, acchi_state )
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?

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;

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

@ -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;
}
@ -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 )
@ -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)

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

@ -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

@ -16,7 +16,7 @@
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)
- 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,7 +205,7 @@ 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)

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)
otomedius.cpp: Konami Otomedius (and maybe related Konami PC-based stuff)
Skeleton by R. Belmont
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"
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"
@ -87,7 +87,7 @@ ROM_START( otomedius )
ROM_REGION( 0x80000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "sst49fl004b.u18", 0x000000, 0x080000, CRC(bb9f4e3e) SHA1(95b393a38a5eded3204debfe7a88cc7ea15adf9a) )
ROM_REGION( 0x10000, "vbios", 0 ) // video card BIOS
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

View File

@ -1,6 +1,6 @@
// license:BSD-3-Clause
/**************************************************************************
Pirate Ship
Pirate Ship
PWB(A)354460B
@ -53,7 +53,7 @@ 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")
{ }
@ -66,7 +66,7 @@ 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;
@ -127,8 +127,8 @@ 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);
}
@ -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,7 +363,7 @@ 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)
@ -372,7 +372,7 @@ WRITE16_MEMBER(piratesh_state::control3_w)
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);
@ -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

@ -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

@ -116,14 +116,14 @@ MACHINE_CONFIG_END
/*
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

@ -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"
@ -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

View File

@ -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

@ -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
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
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
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
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
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.
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
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
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
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
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
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
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.
@ -166,7 +166,7 @@ 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)
@ -190,7 +190,7 @@ WRITE_LINE_MEMBER(vp10x_state::dmarq_w)
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);
@ -213,7 +213,7 @@ READ32_MEMBER(vp10x_state::pic_r)
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++];
}
@ -238,7 +238,7 @@ READ32_MEMBER(vp10x_state::spi_r)
WRITE32_MEMBER(vp10x_state::spi_w)
{
// printf("%d to SPI select\n", data);
// printf("%d to SPI select\n", data);
m_spi_select = data;
}
@ -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,7 +329,7 @@ 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)
@ -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

@ -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,7 +709,7 @@ 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
@ -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

@ -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

@ -73,8 +73,8 @@ void k053250ps_device::device_start()
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();
@ -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;
}
}
@ -514,8 +514,8 @@ void k053250ps_device::device_timer(emu_timer &timer, device_timer_id id, int pa
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;

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];