Cleanups and version bump

This commit is contained in:
Miodrag Milanovic 2015-05-27 09:03:32 +02:00
parent e5caefbfbd
commit 64e16ca8cf
141 changed files with 1475 additions and 1491 deletions

View File

@ -7,7 +7,7 @@
<description>Acer CPR</description>
<year>1995</year>
<publisher>Acer America Corporation</publisher>
<info name="version" value="1.2a" /> <!-- floppy version 1.2a, CD version 1.2 -->
<info name="version" value="1.2a" /> <!-- floppy version 1.2a, CD version 1.2 -->
<part name="flop1" interface="floppy_3_5">
<feature name="disk_label" value="Hard Drive Recovery Start-Up Diskette" />

View File

@ -1878,7 +1878,7 @@ The following floppies came with the machines.
<software name="3dwater">
<description>3D Water Driver (Jpn)</description>
<year>19??</year>
<publisher>&lt;tape2disk hack&gt;</publisher> <!-- or maybe cart2disk -->
<publisher>&lt;tape2disk hack&gt;</publisher> <!-- or maybe cart2disk -->
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="737280">

View File

@ -376,7 +376,7 @@ The following floppies came with the machines.
</dataarea>
</part>
<!-- This is the sound cartridge that came with the game Snatcher. This sound cartridge
can also be used with the MSX Game Collections from Konami. -->
can also be used with the MSX Game Collections from Konami. -->
<part name="cart" interface="msx_cart">
<feature name="slot" value="sound_snatcher" />
<dataarea name="ram" size="65536">
@ -404,7 +404,7 @@ The following floppies came with the machines.
</dataarea>
</part>
<!-- This is the sound cartridge that came with the game Snatcher. This sound cartridge
can also be used with the MSX Game Collections from Konami. -->
can also be used with the MSX Game Collections from Konami. -->
<part name="cart" interface="msx_cart">
<feature name="slot" value="sound_snatcher" />
<dataarea name="ram" size="65536">
@ -432,7 +432,7 @@ The following floppies came with the machines.
</dataarea>
</part>
<!-- This is the sound cartridge that came with the game SD Snatcher. This sound cartridge
can _not_ be used with the MSX Game Collections from Konami. -->
can _not_ be used with the MSX Game Collections from Konami. -->
<part name="cart" interface="msx_cart">
<feature name="slot" value="sound_sdsnatch" />
<dataarea name="ram" size="65536">
@ -460,7 +460,7 @@ The following floppies came with the machines.
</dataarea>
</part>
<!-- This is the sound cartridge that came with the game SD Snatcher. This sound cartridge
can _not_ be used with the MSX Game Collections from Konami. -->
can _not_ be used with the MSX Game Collections from Konami. -->
<part name="cart" interface="msx_cart">
<feature name="slot" value="sound_sdsnatch" />
<dataarea name="ram" size="65536">

View File

@ -37,8 +37,8 @@
// ======================> c1541_base_t
class c1541_base_t : public device_t,
public device_cbm_iec_interface,
public device_c64_floppy_parallel_interface
public device_cbm_iec_interface,
public device_c64_floppy_parallel_interface
{
public:
// construction/destruction

View File

@ -39,8 +39,8 @@
// ======================> c1571_t
class c1571_t : public device_t,
public device_cbm_iec_interface,
public device_c64_floppy_parallel_interface
public device_cbm_iec_interface,
public device_c64_floppy_parallel_interface
{
public:
// construction/destruction

View File

@ -35,7 +35,7 @@
// ======================> c1581_t
class c1581_t : public device_t,
public device_cbm_iec_interface
public device_cbm_iec_interface
{
public:
// construction/destruction

View File

@ -45,7 +45,7 @@
// ======================> interpod_device
class interpod_device : public device_t,
public device_cbm_iec_interface
public device_cbm_iec_interface
{
public:
// construction/destruction

View File

@ -6,31 +6,31 @@
50-pin slot
1 GND 26 /MREQ
2 A8 27 /WR
3 A7 28 /C4
4 A6 29 (not used)
5 A9 30 /C1
6 A5 31 BD3
7 A4 32 /C3
8 A3 33 (not used)
9 A10 34 /C2
10 A2 35 DB6
11 A11 36 /RD
12 A1 37 BD4
13 A0 38 (not used)
14 A12 39 BD7
15 A14 40 (not used)
16 A13 41 BD5
17 /RFSH 42 (not useD)
18 A15 43 BD0
19 /INT 44 (not used)
20 /BUSRQ 45 BD2
21 /NMI 46 /RESET
22 /WAIT 47 /M1
23 /HALT 48 /IORQ
24 /BUSAK 49 BD1
25 /ROMDIS 50 +5V
1 GND 26 /MREQ
2 A8 27 /WR
3 A7 28 /C4
4 A6 29 (not used)
5 A9 30 /C1
6 A5 31 BD3
7 A4 32 /C3
8 A3 33 (not used)
9 A10 34 /C2
10 A2 35 DB6
11 A11 36 /RD
12 A1 37 BD4
13 A0 38 (not used)
14 A12 39 BD7
15 A14 40 (not used)
16 A13 41 BD5
17 /RFSH 42 (not useD)
18 A15 43 BD0
19 /INT 44 (not used)
20 /BUSRQ 45 BD2
21 /NMI 46 /RESET
22 /WAIT 47 /M1
23 /HALT 48 /IORQ
24 /BUSAK 49 BD1
25 /ROMDIS 50 +5V
***************************************************************************/

View File

@ -83,7 +83,7 @@ static MACHINE_CONFIG_FRAGMENT( cgenie_fdc )
MCFG_FLOPPY_DRIVE_ADD("fd1793:2", cgenie_floppies, NULL, cgenie_fdc_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1793:3", cgenie_floppies, NULL, cgenie_fdc_device::floppy_formats)
// MCFG_SOFTWARE_LIST_ADD("floppy_list", "cgenie_flop")
// MCFG_SOFTWARE_LIST_ADD("floppy_list", "cgenie_flop")
MCFG_GENERIC_SOCKET_ADD("socket", generic_plain_slot, "cgenie_socket")
MCFG_GENERIC_EXTENSIONS("bin,rom")

View File

@ -6,16 +6,16 @@
20-pin slot
1 GND 11 IOB2
2 +12V 12 IOB1
3 IOA3 13 IOB0
4 IOA4 14 IOB3
5 IOA0 15 IOB4
6 IOA5 16 IOB5
7 IOA1 17 IOB7
8 IOA2 18 IOB6
9 IOA7 19 +5V
10 IOA6 20 -12V
1 GND 11 IOB2
2 +12V 12 IOB1
3 IOA3 13 IOB0
4 IOA4 14 IOB3
5 IOA0 15 IOB4
6 IOA5 16 IOB5
7 IOA1 17 IOB7
8 IOA2 18 IOB6
9 IOA7 19 +5V
10 IOA6 20 -12V
***************************************************************************/

View File

@ -2,13 +2,13 @@
// copyright-holders:Barry Rodewald
/*
Brunword MK4 - Word processor ROM / expansion
Brunword MK4 - Word processor ROM / expansion
Software is provided as an expansion device, which uses it own ROM mapping
Software is provided as an expansion device, which uses it own ROM mapping
The ROM select port will be handled by this device, calling back to the standard driver when necessary.
Not enabled for the CPC Plus, as ROM selection wraps after 63, making it impossible to see cartridge
banks in the upper ROM area (0x80-0xff)
The ROM select port will be handled by this device, calling back to the standard driver when necessary.
Not enabled for the CPC Plus, as ROM selection wraps after 63, making it impossible to see cartridge
banks in the upper ROM area (0x80-0xff)
*/
#include "brunword4.h"
@ -108,4 +108,3 @@ void cpc_brunword4_device::set_mapping()
membank(":bank4")->set_base(ROM+((bank*0x4000) + 0x2000));
}
}

View File

@ -2,7 +2,7 @@
// copyright-holders:Barry Rodewald
/*
Brunword MK4 - Word processor ROM / expansion
Brunword MK4 - Word processor ROM / expansion
*/
@ -36,4 +36,3 @@ private:
// device type definition
extern const device_type CPC_BRUNWORD_MK4;

View File

@ -748,7 +748,6 @@ WRITE8_MEMBER(gb_rom_mmm01_device::write_bank)
READ8_MEMBER(gb_rom_sachen_mmc1_device::read_rom)
{
UINT16 off_edit = offset;
/* Wait for 0x31 transitions of A15 (hi -> lo), i.e. ROM accesses; A15 = HI while in bootstrap */
@ -780,7 +779,6 @@ READ8_MEMBER(gb_rom_sachen_mmc1_device::read_rom)
WRITE8_MEMBER(gb_rom_sachen_mmc1_device::write_bank)
{
/* Only A15..A6, A4, A1..A0 are connected */
/* We only decode upper three bits */
switch ((offset & 0xFFD3) & 0xE000)
@ -822,7 +820,6 @@ WRITE8_MEMBER(gb_rom_sachen_mmc1_device::write_bank)
READ8_MEMBER(gb_rom_sachen_mmc2_device::read_rom)
{
UINT16 off_edit = offset;
/* Wait for 0x30 transitions of A15 (lo -> hi), i.e. ROM accesses; A15 = HI while in bootstrap */
@ -861,7 +858,6 @@ READ8_MEMBER(gb_rom_sachen_mmc2_device::read_rom)
READ8_MEMBER(gb_rom_sachen_mmc2_device::read_ram)
{
if (m_mode == MODE_LOCKED_DMG) {
m_unlock_cnt = 0x00;
m_mode = MODE_LOCKED_CGB;
@ -872,7 +868,6 @@ READ8_MEMBER(gb_rom_sachen_mmc2_device::read_ram)
WRITE8_MEMBER(gb_rom_sachen_mmc2_device::write_ram)
{
if (m_mode == MODE_LOCKED_DMG) {
m_unlock_cnt = 0x00;
m_mode = MODE_LOCKED_CGB;

View File

@ -28,7 +28,7 @@
// ======================> c2040_t
class c2040_t : public device_t,
public device_ieee488_interface
public device_ieee488_interface
{
public:
// construction/destruction

View File

@ -28,7 +28,7 @@
// ======================> c8050_t
class c8050_t : public device_t,
public device_ieee488_interface
public device_ieee488_interface
{
public:
// construction/destruction

View File

@ -27,7 +27,7 @@
// ======================> c8280_t
class c8280_t : public device_t,
public device_ieee488_interface
public device_ieee488_interface
{
public:
// construction/destruction

View File

@ -28,7 +28,7 @@
// ======================> d9060_base_t
class d9060_base_t : public device_t,
public device_ieee488_interface
public device_ieee488_interface
{
public:
enum

View File

@ -2,7 +2,7 @@
// copyright-holders:Fabio Priuli
/**********************************************************************
Megadrive carts
Megadrive carts
**********************************************************************/

View File

@ -131,8 +131,8 @@ class nasbus_slot_device : public device_t, public device_slot_interface
{
public:
// construction/destruction
nasbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
nasbus_slot_device(const machine_config &mconfig, device_type type, const char *name,
nasbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
nasbus_slot_device(const machine_config &mconfig, device_type type, const char *name,
const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
// device-level overrides
@ -155,7 +155,7 @@ class nasbus_device : public device_t
{
public:
// construction/destruction
nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~nasbus_device();
template<class _Object> static devcb_base &set_ram_disable_handler(device_t &device, _Object object)

View File

@ -273,7 +273,7 @@ WRITE32_MEMBER( nubus_image_device::file_cmd_w )
char fullpath[1024];
UINT64 filesize;
// data = ((data & 0xff) << 24) | ((data & 0xff00) << 8) | ((data & 0xff0000) >> 8) | ((data & 0xff000000) >> 24);
// data = ((data & 0xff) << 24) | ((data & 0xff00) << 8) | ((data & 0xff0000) >> 8) | ((data & 0xff000000) >> 24);
filectx.curcmd = data;
switch(data) {
case kFileCmdGetDir:

View File

@ -27,7 +27,7 @@
// ======================> c1551_t
class c1551_t : public device_t,
public device_plus4_expansion_card_interface
public device_plus4_expansion_card_interface
{
public:
// construction/destruction

View File

@ -1882,7 +1882,7 @@ int media_identifier::find_by_hash(const hash_collection &hashes, int length)
{
int found = 0;
slname_map listnames;
slname_map shortnames;
slname_map shortnames;
// iterate over drivers
m_drivlist.reset();
@ -1891,26 +1891,26 @@ int media_identifier::find_by_hash(const hash_collection &hashes, int length)
// iterate over devices, regions and files within the region */
device_iterator deviter(m_drivlist.config().root_device());
for (device_t *device = deviter.first(); device != NULL; device = deviter.next())
{
if (shortnames.add(device->shortname(), 0, FALSE) != TMERR_DUPLICATE)
{
for (const rom_entry *region = rom_first_region(*device); region != NULL; region = rom_next_region(region))
for (const rom_entry *rom = rom_first_file(region); rom != NULL; rom = rom_next_file(rom))
{
hash_collection romhashes(ROM_GETHASHDATA(rom));
if (!romhashes.flag(hash_collection::FLAG_NO_DUMP) && hashes == romhashes)
{
bool baddump = romhashes.flag(hash_collection::FLAG_BAD_DUMP);
{
if (shortnames.add(device->shortname(), 0, FALSE) != TMERR_DUPLICATE)
{
for (const rom_entry *region = rom_first_region(*device); region != NULL; region = rom_next_region(region))
for (const rom_entry *rom = rom_first_file(region); rom != NULL; rom = rom_next_file(rom))
{
hash_collection romhashes(ROM_GETHASHDATA(rom));
if (!romhashes.flag(hash_collection::FLAG_NO_DUMP) && hashes == romhashes)
{
bool baddump = romhashes.flag(hash_collection::FLAG_BAD_DUMP);
// output information about the match
if (found)
osd_printf_info(" ");
osd_printf_info("= %s%-20s %-10s %s\n", baddump ? "(BAD) " : "", ROM_GETNAME(rom), m_drivlist.driver().name, m_drivlist.driver().description);
found++;
}
}
}
}
// output information about the match
if (found)
osd_printf_info(" ");
osd_printf_info("= %s%-20s %-10s %s\n", baddump ? "(BAD) " : "", ROM_GETNAME(rom), m_drivlist.driver().name, m_drivlist.driver().description);
found++;
}
}
}
}
// next iterate over softlists
software_list_device_iterator iter(m_drivlist.config().root_device());

View File

@ -1906,9 +1906,9 @@ void avr8_device::timer5_tick()
case WGM5_FAST_PWM_ICR:
case WGM5_FAST_PWM_OCR:
#if LOG_TIMER_5
printf("Unimplemented timer#5 waveform generation mode: AVR8_WGM5 = 0x%02X\n", AVR8_WGM5);
printf("Unimplemented timer#5 waveform generation mode: AVR8_WGM5 = 0x%02X\n", AVR8_WGM5);
#endif
break;
break;
case WGM5_CTC_OCR:
//TODO: verify this! Can be very wrong!!!

View File

@ -296,7 +296,6 @@ void e0c6200_cpu_device::execute_one()
default:
switch (m_op)
{
// LD r,q: load register with register
case 0xec0: /* m_a = m_a; */ break;
case 0xec1: m_a = m_b; break;
@ -698,7 +697,6 @@ void e0c6200_cpu_device::execute_one()
default:
switch (m_op & 0xff0)
{
// LD r,i: load register with 4-bit immediate data
case 0xe00: m_a = m_op & 0xf; break;
case 0xe10: m_b = m_op & 0xf; break;

View File

@ -180,7 +180,6 @@ CPU_DISASSEMBLE(e0c6200)
default:
switch (op)
{
// RLC r
case 0xaf0: case 0xaf5: case 0xafa: case 0xaff:
m = em_RLC; p1 = ep_R0;
@ -475,7 +474,6 @@ CPU_DISASSEMBLE(e0c6200)
default:
switch (op & 0xff0)
{
// ADC XH,i
case 0xa00:
m = em_ADC; p1 = ep_XH; p2 = ep_I;

View File

@ -166,7 +166,7 @@ void mips3_device::clear_fastram(UINT32 select_start)
m_fastram[i].readonly = false;
m_fastram[i].base = NULL;
}
m_fastram_select=select_start;
m_fastram_select=select_start;
}
/*-------------------------------------------------

View File

@ -6,9 +6,9 @@
emulation by Luca Elia, based on the Z80 core by Juergen Buchmueller
ChangeLog:
ChangeLog:
20150517 Fixed TRUN bit masking (timers start/stop handling) [Rainer Keuchel]
20150517 Fixed TRUN bit masking (timers start/stop handling) [Rainer Keuchel]
*************************************************************************************************************/

View File

@ -5,21 +5,21 @@
ds1315.c
Dallas Semiconductor's Phantom Time Chip DS1315.
NOTE: writes are decoded, but the host's time will always be returned when asked.
NOTE: writes are decoded, but the host's time will always be returned when asked.
April 2015: chip enable / chip reset / phantom writes by Karl-Ludwig Deisenhofer
April 2015: chip enable / chip reset / phantom writes by Karl-Ludwig Deisenhofer
November 2001: implementation by Tim Lindner
November 2001: implementation by Tim Lindner
HOW DOES IT WORK?
HOW DOES IT WORK?
READS: pattern recognition (64 bits in correct order). When RTC finally enables
64 bits of data can be read. Chance of accidential pattern recognition is minimal.
READS: pattern recognition (64 bits in correct order). When RTC finally enables
64 bits of data can be read. Chance of accidential pattern recognition is minimal.
WRITES: two different locations (bits 0 and 1) are used to transfer data to the
DS1315. 64 bit with time/date info are transmitted directly after recognition
of the magic 64 bit pattern (see read above).
**************************************************************************************/
WRITES: two different locations (bits 0 and 1) are used to transfer data to the
DS1315. 64 bit with time/date info are transmitted directly after recognition
of the magic 64 bit pattern (see read above).
**************************************************************************************/
#include "ds1315.h"
#include "coreutil.h"
@ -242,7 +242,7 @@ void ds1315_device::input_raw_data()
flag = 1;
if (m_raw_data[i] & 1)
raw[j] |= flag;
raw[j] |= flag;
flag <<= 1;
}
raw[0] = bcd_2_dec(raw[0]); // hundreds of seconds
@ -256,8 +256,8 @@ void ds1315_device::input_raw_data()
raw[7] = bcd_2_dec(raw[7]); // year (two digits)
printf("\nDS1315 RTC INPUT (WILL BE IGNORED) mm/dd/yy hh:mm:ss - %02d/%02d/%02d %02d/%02d/%02d",
raw[6], raw[5], raw[7], raw[3], raw[2], raw[1]
);
raw[6], raw[5], raw[7], raw[3], raw[2], raw[1]
);
}
/*-------------------------------------------------

View File

@ -40,7 +40,7 @@ Implements WD2010 / WD1010 controller basics.
// DEC RD51 chip; different STEP / CYLINDER LIMIT (**):
// WD 1010 CONFIGURATION (1024 cylinder limit)
// #define STEP_LIMIT 1024
// #define STEP_LIMIT 1024
// #define CYLINDER_HIGH_MASK 0x03
// --------------------------------------------------------
@ -245,7 +245,6 @@ READ8_MEMBER(wd2010_device::read)
if (offset == TASK_FILE_SDH_REGISTER)
{
logerror("(READ) %s WD2010 '%s' SDH: %u\n", machine().describe_context(), tag(), data);
logerror("(READ) %s WD2010 '%s' Head: %u\n", machine().describe_context(), tag(), HEAD);
logerror("(READ) %s WD2010 '%s' Drive: %u\n", machine().describe_context(), tag(), DRIVE);
@ -490,7 +489,7 @@ void wd2010_device::seek(UINT8 data)
}
else
{
while (step_pulses > 0) // issue STEP PULSES
while (step_pulses > 0) // issue STEP PULSES
{
if (direction == 0)
{
@ -528,7 +527,7 @@ void wd2010_device::seek(UINT8 data)
logerror("SEEK (END) - m_present_cylinder = %u\n", m_present_cylinder);
cmd_timer->adjust(attotime::from_msec(35), newstatus); // 35 msecs makes "SEEK_TIMING" test happy.
cmd_timer->adjust(attotime::from_msec(35), newstatus); // 35 msecs makes "SEEK_TIMING" test happy.
}
//-------------------------------------------------
@ -728,7 +727,7 @@ void wd2010_device::complete_write_sector(UINT8 data)
// ******************************************************
// AUTO SCAN-ID (whenever DRIVE # changes):
// * does nothing right now *
// * does nothing right now *
// ******************************************************
void wd2010_device::auto_scan_id(UINT8 data)
{
@ -860,16 +859,16 @@ void wd2010_device::format(UINT8 data)
return;
}
// UINT8 format_sector_count = m_task_file[TASK_FILE_SECTOR_COUNT];
// do
// {
// < WRITE GAP 1 or GAP 3 >
// UINT8 format_sector_count = m_task_file[TASK_FILE_SECTOR_COUNT];
// do
// {
// < WRITE GAP 1 or GAP 3 >
// < Wait for SEEK_COMPLETE=1 (extend GAP if SEEK_COMPLETE = 0) >
// < Assume SEEK COMPLETE >
// < Wait for SEEK_COMPLETE=1 (extend GAP if SEEK_COMPLETE = 0) >
// < Assume SEEK COMPLETE >
// format_sector_count--;
// if (format_sector_count != 0)
// format_sector_count--;
// if (format_sector_count != 0)
{
// The Rainbow 100 driver does ignore multiple sector
// transfers so WRITE FORMAT does not actually write -
@ -878,10 +877,10 @@ void wd2010_device::format(UINT8 data)
// NOTE: decrementing TASK_FILE_SECTOR_COUNT does * NOT WORK *
}
// else
// { // < Write 4Es until INDEX (*** UNIMPLEMENTED ****) >
// }
// } while (format_sector_count > 0);
// else
// { // < Write 4Es until INDEX (*** UNIMPLEMENTED ****) >
// }
// } while (format_sector_count > 0);
// ** DELAY INTRQ UNTIL WRITE IS COMPLETE :
complete_write_when_buffer_ready_high->adjust(attotime::from_usec(1), newstatus | STATUS_DRQ); // 1 USECs
@ -962,7 +961,7 @@ void wd2010_device::complete_immediate(UINT8 status)
status &= ~(STATUS_RDY | STATUS_WF | STATUS_SC); // RDY 0x40 / WF 0x20 / SC 0x10
status |= (m_in_drdy_cb() ? 0x40 : 0) | (m_in_wf_cb() ? 0x20 : 0) | (m_in_sc_cb() ? 0x10 : 0);
if (status & STATUS_DRQ) // if DRQ was set, reset
if (status & STATUS_DRQ) // if DRQ was set, reset
{
status &= ~(STATUS_DRQ);
m_out_bdrq_cb(0);
@ -988,4 +987,3 @@ void wd2010_device::complete_cmd(UINT8 status)
{
cmd_timer->adjust(attotime::from_msec(1), status);
}

View File

@ -1788,13 +1788,13 @@ horizon // (c) 1985
youjyudn // (c) 1986 (Japan)
vigilant // (c) 1988 (World Rev E)
vigilanta // (c) 1988 (World Rev A)
vigilanta // (c) 1988 (World Rev A)
vigilantb // (c) 1988 (US Rev B)
vigilantc // (c) 1988 (World Rev C)
vigilantc // (c) 1988 (World Rev C)
vigilantd // (c) 1988 (Japan Rev D)
vigilantg // (c) 1988 (US Rev G)
vigilano // (c) 1988 (US)
vigilanbl // bootleg
vigilantg // (c) 1988 (US Rev G)
vigilano // (c) 1988 (US)
vigilanbl // bootleg
kikcubic // (c) 1988 (Japan)
kikcubicb // bootleg
buccanrs // (c) 1989 Duintronic
@ -6348,7 +6348,7 @@ ddribble // GX690 (c) 1986
ddribblep // GX690 (c) 1986
contra // GX633 (c) 1987
contra1 // GX633 (c) 1987
contrae // GX633 (c) 1987
contrae // GX633 (c) 1987
contraj // GX633 (c) 1987 (Japan)
contraj1 // GX633 (c) 1987 (Japan)
gryzor // GX633 (c) 1987
@ -10901,7 +10901,7 @@ wheelfir // (c) 199? TCH
littlerb // (c) 1993 TCH
tattack // (c) 198? Shonan
mosaicf2 // (c) 1999 F2 System
royalpk2 //
royalpk2 //
finalgdr // (c) 2001 Semicom
mrkicker // (c) 2001 Semicom
wivernwg // (c) 2001 Semicom

View File

@ -24,7 +24,7 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_video_ram(*this, "video_ram") { }
m_video_ram(*this, "video_ram") { }
/* devices */
required_device<cpu_device> m_maincpu;

View File

@ -1059,7 +1059,7 @@ static const struct {
UINT8 write_byte;
} modify[16];
} hacks[2] = { { "chihiro", { { 0x6a79f, 0x01 }, { 0x6a7a0, 0x00 }, { 0x6b575, 0x00 }, { 0x6b576, 0x00 }, { 0x6b5af, 0x75 }, { 0x6b78a, 0x75 }, { 0x6b7ca, 0x00 }, { 0x6b7b8, 0x00 }, { 0x8f5b2, 0x75 }, { 0x79a9e, 0x74 }, { 0x79b80, 0x74 }, { 0x79b97, 0x74 }, { 0, 0 } } },
{ "outr2", { { 0x12e4cf, 0x01 }, { 0x12e4d0, 0x00 }, { 0x4793e, 0x01 }, { 0x4793f, 0x00 }, { 0x47aa3, 0x01 }, { 0x47aa4, 0x00 }, { 0x14f2b6, 0x84 }, { 0x14f2d1, 0x75 }, { 0x8732f, 0x7d }, { 0x87384, 0x7d }, { 0x87388, 0xeb }, { 0, 0 } } } };
{ "outr2", { { 0x12e4cf, 0x01 }, { 0x12e4d0, 0x00 }, { 0x4793e, 0x01 }, { 0x4793f, 0x00 }, { 0x47aa3, 0x01 }, { 0x47aa4, 0x00 }, { 0x14f2b6, 0x84 }, { 0x14f2d1, 0x75 }, { 0x8732f, 0x7d }, { 0x87384, 0x7d }, { 0x87388, 0xeb }, { 0, 0 } } } };
READ32_MEMBER(chihiro_state::usbctrl_r)
{

View File

@ -4,7 +4,7 @@
Double Dragon 3 Technos Japan Corp 1990
The Combatribes Technos Japan Corp 1990
WWF WrestleFest Technos Japan Corp 1991
WWF WrestleFest Technos Japan Corp 1991
Notes:

View File

@ -255,9 +255,9 @@ static MACHINE_CONFIG_START( royalpk2, mosaicf2_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
// MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* 3.579545 MHz */
// MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
// MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
// MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* 3.579545 MHz */
// MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
// MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_14_31818MHz/8, OKIM6295_PIN7_HIGH) /* 1.7897725 MHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)

View File

@ -64,14 +64,14 @@ public:
m_upd7759(*this, "7759") { }
required_device<cpu_device> m_maincpu;
optional_device<upd7759_device> m_upd7759;
int m_comms_state;
optional_device<upd7759_device> m_upd7759;
int m_comms_state;
int m_comms_ind;
UINT8 m_comms_data[1002];
int m_comms_cmd;
int m_comms_expect;
int m_comms_blocks;
bool m_comms_ack;
int m_comms_cmd;
int m_comms_expect;
int m_comms_blocks;
bool m_comms_ack;
virtual void machine_start();
DECLARE_READ16_MEMBER(comms_r);
@ -97,233 +97,233 @@ static const UINT8 password[] = {5, 2, 0, 3, 0, 0, 2, 4, 5, 6, 0x16};
READ16_MEMBER(gambl186_state::comms_r)
{
UINT16 retval = 0;
UINT16 retval = 0;
if ((offset == 0) && ACCESSING_BITS_0_7) //port 680 == data
{
if (m_comms_state == 0x16) //read mode, just in case
{
if (!m_comms_ind && (m_comms_cmd == 0xff))
{
m_comms_cmd = m_comms_data[1];
if ((offset == 0) && ACCESSING_BITS_0_7) //port 680 == data
{
if (m_comms_state == 0x16) //read mode, just in case
{
if (!m_comms_ind && (m_comms_cmd == 0xff))
{
m_comms_cmd = m_comms_data[1];
switch (m_comms_cmd)
{
case 0:
{
m_comms_expect = 4;
break;
}
switch (m_comms_cmd)
{
case 0:
{
m_comms_expect = 4;
break;
}
case 1:
{
m_comms_expect = 12;
m_comms_blocks = 2;
break;
}
case 1:
{
m_comms_expect = 12;
m_comms_blocks = 2;
break;
}
case 2:
{
m_comms_expect = 408;
m_comms_blocks = 4;
break;
}
case 2:
{
m_comms_expect = 408;
m_comms_blocks = 4;
break;
}
case 3:
{
m_comms_expect = 7;
m_comms_blocks = 3;
break;
}
case 3:
{
m_comms_expect = 7;
m_comms_blocks = 3;
break;
}
case 4:
{
m_comms_expect = 2;
m_comms_blocks = 2;
break;
}
case 4:
{
m_comms_expect = 2;
m_comms_blocks = 2;
break;
}
case 5:
{
m_comms_expect = 13;
m_comms_blocks = 4;
break;
}
case 5:
{
m_comms_expect = 13;
m_comms_blocks = 4;
break;
}
case 6:
{
m_comms_expect = 1003;
break;
}
case 6:
{
m_comms_expect = 1003;
break;
}
default: //unknown
{
m_comms_expect = 1;
}
}
}
default: //unknown
{
m_comms_expect = 1;
}
}
}
if (m_comms_ind < sizeof(m_comms_data))
{
if (m_comms_expect && !--m_comms_expect)
{
m_comms_ack = true;
if (m_comms_ind < sizeof(m_comms_data))
{
if (m_comms_expect && !--m_comms_expect)
{
m_comms_ack = true;
if (m_comms_ind)
{
int i, sum;
if (m_comms_ind)
{
int i, sum;
for (i = 1, sum = 0; i < m_comms_ind; sum += m_comms_data[i++]);
m_comms_data[m_comms_ind] = (unsigned char) sum;
for (i = 1, sum = 0; i < m_comms_ind; sum += m_comms_data[i++]);
m_comms_data[m_comms_ind] = (unsigned char) sum;
switch (m_comms_cmd)
{
case 1:
{
if (m_comms_blocks == 2)
{
m_comms_expect = 5;
}
else
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
}
switch (m_comms_cmd)
{
case 1:
{
if (m_comms_blocks == 2)
{
m_comms_expect = 5;
}
else
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
}
break;
}
break;
}
case 2:
{
if (m_comms_blocks == 4)
{
m_comms_expect = 5;
}
else
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
m_comms_expect = 3;
}
case 2:
{
if (m_comms_blocks == 4)
{
m_comms_expect = 5;
}
else
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
m_comms_expect = 3;
}
break;
}
break;
}
case 3:
{
if (m_comms_blocks == 3)
{
m_comms_expect = 3;
}
else
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
m_comms_expect = 5;
}
case 3:
{
if (m_comms_blocks == 3)
{
m_comms_expect = 3;
}
else
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
m_comms_expect = 5;
}
break;
}
break;
}
case 5:
{
m_comms_expect = 3;
case 5:
{
m_comms_expect = 3;
if (m_comms_blocks < 4)
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
if (m_comms_blocks < 4)
{
m_comms_data[m_comms_ind] += 5; //compensate for ack
if (m_comms_blocks == 2)
{
m_comms_expect = 2;
}
}
if (m_comms_blocks == 2)
{
m_comms_expect = 2;
}
}
break;
}
break;
}
default:
{
}
}
}
else if (m_comms_cmd == 4)
{
if (!memcmp(m_comms_data, password, sizeof(password)))
{
m_comms_data[1] = 0x55;
m_comms_data[2] = 0x55;
}
default:
{
}
}
}
else if (m_comms_cmd == 4)
{
if (!memcmp(m_comms_data, password, sizeof(password)))
{
m_comms_data[1] = 0x55;
m_comms_data[2] = 0x55;
}
m_comms_expect = 2;
m_comms_ack = false;
}
m_comms_expect = 2;
m_comms_ack = false;
}
if (!m_comms_blocks || !--m_comms_blocks)
{
m_comms_cmd = 0xff;
}
}
if (!m_comms_blocks || !--m_comms_blocks)
{
m_comms_cmd = 0xff;
}
}
retval = m_comms_data[m_comms_ind++];
}
}
}
else if (offset == 1) //port 681 == status
{
if (m_comms_state == 0x16) //read mode
{
retval = 2; //read ready
}
else if (m_comms_state == 0x31) //write mode
{
retval = 4; //write ready
}
}
retval = m_comms_data[m_comms_ind++];
}
}
}
else if (offset == 1) //port 681 == status
{
if (m_comms_state == 0x16) //read mode
{
retval = 2; //read ready
}
else if (m_comms_state == 0x31) //write mode
{
retval = 4; //write ready
}
}
return retval;
return retval;
}
WRITE16_MEMBER(gambl186_state::comms_w)
{
if (offset == 0)
{
if ((m_comms_state == 0x31) && (m_comms_ind < 1000))
{
if (!m_comms_ack || (data == 0x15)) //validation failure
{
if (m_comms_cmd == 6) //1000 bytes transfer
{
data = ~data;
}
else if (m_comms_ack)
{
m_comms_cmd = 0xfe;
m_comms_expect = 2;
data = 5;
}
if (offset == 0)
{
if ((m_comms_state == 0x31) && (m_comms_ind < 1000))
{
if (!m_comms_ack || (data == 0x15)) //validation failure
{
if (m_comms_cmd == 6) //1000 bytes transfer
{
data = ~data;
}
else if (m_comms_ack)
{
m_comms_cmd = 0xfe;
m_comms_expect = 2;
data = 5;
}
m_comms_data[++m_comms_ind] = (UINT8) data;
}
m_comms_data[++m_comms_ind] = (UINT8) data;
}
m_comms_ack = false;
}
}
else if (offset == 1)
{
if (m_comms_state != data) //detect transition
{
m_comms_ind = 0;
m_comms_ack = false;
}
}
else if (offset == 1)
{
if (m_comms_state != data) //detect transition
{
m_comms_ind = 0;
if (data == 0x4e) //reset
{
m_comms_data[0] = 5; //operation complete
m_comms_cmd = 0xff; //none
m_comms_expect = 0;
m_comms_blocks = 0;
m_comms_ack = false;
}
}
if (data == 0x4e) //reset
{
m_comms_data[0] = 5; //operation complete
m_comms_cmd = 0xff; //none
m_comms_expect = 0;
m_comms_blocks = 0;
m_comms_ack = false;
}
}
m_comms_state = data;
}
m_comms_state = data;
}
}
WRITE16_MEMBER( gambl186_state::data_bank_w)
@ -352,16 +352,16 @@ WRITE16_MEMBER( gambl186_state::data_bank_w)
WRITE16_MEMBER(gambl186_state::upd_w)
{
//// FIXME
// m_upd7759->reset_w(0);
// m_upd7759->reset_w(1);
// m_upd7759->reset_w(0);
// m_upd7759->reset_w(1);
// if (mem_mask&0x00ff) m_upd7759->port_w(space, 0, data & 0xff);
// if (mem_mask&0xff00) m_upd7759->port_w(space, 0, (data >> 8) & 0xff);
// if (mem_mask&0x00ff) m_upd7759->port_w(space, 0, data & 0xff);
// if (mem_mask&0xff00) m_upd7759->port_w(space, 0, (data >> 8) & 0xff);
data = (data >> 8);
popmessage("sample index: %02x", data);
popmessage("sample index: %02x", data);
// m_upd7759->start_w(0);
// m_upd7759->start_w(1);
// m_upd7759->start_w(0);
// m_upd7759->start_w(1);
}
@ -378,7 +378,7 @@ static ADDRESS_MAP_START( gambl186_io, AS_IO, 16, gambl186_state )
AM_RANGE(0x0580, 0x0581) AM_READ_PORT("DSW1")
AM_RANGE(0x0582, 0x0583) AM_READ_PORT("JOY")
AM_RANGE(0x0584, 0x0585) AM_READ_PORT("DSW0") AM_WRITENOP // Watchdog: bit 8
// AM_RANGE(0x0600, 0x0603) AM_WRITENOP // lamps
// AM_RANGE(0x0600, 0x0603) AM_WRITENOP // lamps
AM_RANGE(0x0680, 0x0683) AM_READWRITE(comms_r, comms_w)
AM_RANGE(0x0700, 0x0701) AM_WRITE(data_bank_w)
ADDRESS_MAP_END
@ -493,7 +493,7 @@ ROM_START( gambl186 )
ROM_LOAD16_BYTE( "se403p.u9", 0x00000, 0x20000, CRC(1021cc20) SHA1(d9bb67676b05458ff813d608431ff06946ab7721) )
ROM_LOAD16_BYTE( "so403p.u10", 0x00001, 0x20000, CRC(af9746c9) SHA1(3f1ab8110cc5eadec661181779799693ad695e21) )
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_LOAD( "347.u302", 0x00000, 0x20000, CRC(7ce8f490) SHA1(2f856e31d189e9d46ba6b322133d99133e0b52ac) )
ROM_END
@ -506,7 +506,7 @@ ROM_START( gambl186a )
ROM_LOAD16_BYTE( "se403p.u9", 0x00000, 0x20000, CRC(1021cc20) SHA1(d9bb67676b05458ff813d608431ff06946ab7721) )
ROM_LOAD16_BYTE( "so403p.u10", 0x00001, 0x20000, CRC(af9746c9) SHA1(3f1ab8110cc5eadec661181779799693ad695e21) )
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_LOAD( "347.u302", 0x00000, 0x20000, CRC(7ce8f490) SHA1(2f856e31d189e9d46ba6b322133d99133e0b52ac) )
ROM_END

View File

@ -142,13 +142,13 @@ void iteagle_state::machine_reset()
{
}
#define PCI_ID_IDE ":pci:06.0"
// Primary IDE Control ":pci:06.1"
// Seconday IDE Control ":pci:06.2"
#define PCI_ID_SOUND ":pci:07.0"
#define PCI_ID_FPGA ":pci:08.0"
#define PCI_ID_VIDEO ":pci:09.0"
#define PCI_ID_EEPROM ":pci:0a.0"
#define PCI_ID_IDE ":pci:06.0"
// Primary IDE Control ":pci:06.1"
// Seconday IDE Control ":pci:06.2"
#define PCI_ID_SOUND ":pci:07.0"
#define PCI_ID_FPGA ":pci:08.0"
#define PCI_ID_VIDEO ":pci:09.0"
#define PCI_ID_EEPROM ":pci:0a.0"
static MACHINE_CONFIG_START( iteagle, iteagle_state )

View File

@ -64,23 +64,23 @@ TI TVP3409
V53C16258HK40 x24
V53C511816500K60 x4
U38 and U97 on main board 3DFX
500-0004-02
BF2733.1 TMU
9748 20001
TAIWAN 1001
U38 and U97 on main board 3DFX
500-0004-02
BF2733.1 TMU
9748 20001
TAIWAN 1001
U4 on daughter board Zoran ZR36050PQC
-29.5
85 GF7B9726E
U4 on daughter board Zoran ZR36050PQC
-29.5
85 GF7B9726E
U11 on main board Removed heatsink, Couldn't see anything...
U11 on main board Removed heatsink, Couldn't see anything...
U71 on main board Galileo
GT-64010A-B-0
BB8018.1
TAIWAN
U71 on main board Galileo
GT-64010A-B-0
BB8018.1
TAIWAN
14.31818 Oscillator by the TI part
50.0000 Oscillator by EPROMS
33.0000 Oscillator by the V53C511816500K60

View File

@ -309,10 +309,10 @@ WRITE8_MEMBER(miniboy7_state::ay_pa_w)
// output_set_lamp_value(3, (data >> 3) & 1); // [-x---]
// output_set_lamp_value(4, (data >> 4) & 1); // [x----]
coin_counter_w(machine(), 0, data & 0x40); // counter
coin_counter_w(machine(), 0, data & 0x40); // counter
// popmessage("Out Lamps: %02x", data);
// logerror("Out Lamps: %02x\n", data);
// logerror("Out Lamps: %02x\n", data);
}

View File

@ -89,17 +89,17 @@ static Mono9602Desc a8_desc(K_OHM(27.0), U_FARAD(1.0), K_OHM(27.0), U_FARAD(1.0)
CIRCUIT_LAYOUT( breakout )
#if (SLOW_BUT_ACCURATE)
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-8) // less accuracy and diode will not work
PARAM(Solver.GS_THRESHOLD, 6)
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-8) // less accuracy and diode will not work
PARAM(Solver.GS_THRESHOLD, 6)
#else
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-6)
PARAM(Solver.GS_THRESHOLD, 6)
// FIXME: PARALLEL Doesn't work in breakout.
PARAM(Solver.PARALLEL, 0)
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-6)
PARAM(Solver.GS_THRESHOLD, 6)
// FIXME: PARALLEL Doesn't work in breakout.
PARAM(Solver.PARALLEL, 0)
#endif
PARAM(NETLIST.USE_DEACTIVATE, 1)
PARAM(NETLIST.USE_DEACTIVATE, 1)
// DIPSWITCH - Free game
SWITCH(S1_1)
@ -129,7 +129,7 @@ CIRCUIT_LAYOUT( breakout )
// Clock circuit
//----------------------------------------------------------------
#if 0 || (SLOW_BUT_ACCURATE)
MAINCLOCK(Y1, 14318000.0)
MAINCLOCK(Y1, 14318000.0)
CHIP("F1", 9316)
NET_C(Y1.Q, F1.2)
@ -149,24 +149,24 @@ CIRCUIT_LAYOUT( breakout )
#define DICECLOCK "H1", 11
#else
/*
* 9316 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 4 5 6
* A 0 1 0 1 0 1 0 1 0 1 0 1 0 1
* B 1 1 0 0 1 1 0 0 1 1 0 0 1 1
* CKBH 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1
* 9316 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 4 5 6
* A 0 1 0 1 0 1 0 1 0 1 0 1 0 1
* B 1 1 0 0 1 1 0 0 1 1 0 0 1 1
* CKBH 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1
* ^--- Pattern Start
* CLOCK 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1
* CLOCK 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1
* ^--- Pattern Start
* <--------> 3 Clocks Offset
*/
EXTCLOCK(Y1, 14318000.0, "4,4,4,4,4,8")
EXTCLOCK(Y2, 14318000.0, "2,6,2,6,2,2,2,6")
PARAM(Y2.OFFSET, 3.0 / 14318000.0 + 20.0e-9 )
EXTCLOCK(Y1, 14318000.0, "4,4,4,4,4,8")
EXTCLOCK(Y2, 14318000.0, "2,6,2,6,2,2,2,6")
PARAM(Y2.OFFSET, 3.0 / 14318000.0 + 20.0e-9 )
#define CKBH "Y1", Q
#define DICECLOCK "Y2", Q
NET_C(ttlhigh, H1.13)
NET_C(ttlhigh, H1.12)
NET_C(ttlhigh, E1.5)
NET_C(ttlhigh, H1.13)
NET_C(ttlhigh, H1.12)
NET_C(ttlhigh, E1.5)
#endif
//----------------------------------------------------------------
@ -175,38 +175,38 @@ CIRCUIT_LAYOUT( breakout )
TTL_INPUT(antenna, 0)
DIODE(CR3, "1N914")
DIODE(CR4, "1N914")
DIODE(CR5, "1N914")
DIODE(CR7, "1N914")
DIODE(CR3, "1N914")
DIODE(CR4, "1N914")
DIODE(CR5, "1N914")
DIODE(CR7, "1N914")
QBJT_EB(Q1, "2N3644")
QBJT_EB(Q2, "2N3643")
QBJT_EB(Q3, "2N3643")
CAP(C19, CAP_U(0.1))
CAP(C16, CAP_U(0.1))
QBJT_EB(Q1, "2N3644")
QBJT_EB(Q2, "2N3643")
QBJT_EB(Q3, "2N3643")
CAP(C19, CAP_U(0.1))
CAP(C16, CAP_U(0.1))
RES(R25, 100)
RES(R26, 330)
RES(R27, 100)
RES(R31, 220)
RES(R32, 100)
RES(R25, 100)
RES(R26, 330)
RES(R27, 100)
RES(R31, 220)
RES(R32, 100)
NET_C(GND, CR5.A, Q2.E, C16.2, R25.2, Q3.E)
NET_C(CR5.K, Q2.B, antenna)
NET_C(Q2.C, C16.1, R25.1, Q3.B, R27.2)
NET_C(R27.1, CR7.A, R31.2) //CR7.K == IN
NET_C(R31.1, Q1.C)
NET_C(Q3.C, R26.2, CR3.A, CR4.A, E9.5) // E9.6 = Q Q3.C=QQ CR3.K = COIN*1 CR4.K = COIN*2
NET_C(R26.1, Q1.B, C19.2, R32.2)
NET_C(Q1.E, C19.1, R32.1, V5)
NET_C(GND, CR5.A, Q2.E, C16.2, R25.2, Q3.E)
NET_C(CR5.K, Q2.B, antenna)
NET_C(Q2.C, C16.1, R25.1, Q3.B, R27.2)
NET_C(R27.1, CR7.A, R31.2) //CR7.K == IN
NET_C(R31.1, Q1.C)
NET_C(Q3.C, R26.2, CR3.A, CR4.A, E9.5) // E9.6 = Q Q3.C=QQ CR3.K = COIN*1 CR4.K = COIN*2
NET_C(R26.1, Q1.B, C19.2, R32.2)
NET_C(Q1.E, C19.1, R32.1, V5)
#define LAT_Q "E9", 6
#define Q_n "Q3", C
#define COIN1_n "F8", 5
#define COIN2_n "H9", 5
CONNECTION("CR7", K, "D8", 11) //set
CONNECTION("CR7", K, "D8", 11) //set
CONNECTION("CR3", K, COIN1_n) //reset
CONNECTION("CR4", K, COIN2_n) //reset
@ -440,31 +440,31 @@ CIRCUIT_LAYOUT( breakout )
#define EGL "C37" , 2
#define EGL_n "C5", 2
#define RAM_PLAYER1 "E7", 4
#define A1 "H6", 14
#define B1 "H6", 13
#define C1 "H6", 12
#define D1 "H6", 11
#define E1 "J6", 14
#define F1 "J6", 13
#define G1 "J6", 12
#define H01 "J6", 11
#define I1 "K6", 14
#define J1 "K6", 13
#define K1 "K6", 12
#define L1 "K6", 11
#define A2 "N6", 14
#define B2 "N6", 13
#define C2 "N6", 12
#define D2 "N6", 11
#define E2s "M6", 14
#define F2 "M6", 13
#define G2 "M6", 12
#define H02 "M6", 11 //TODO: better name for these signals
#define I2 "L6", 14
#define J2 "L6", 13
#define K2 "L6", 12
#define L2 "L6", 11
#define RAM_PLAYER1 "E7", 4
#define A1 "H6", 14
#define B1 "H6", 13
#define C1 "H6", 12
#define D1 "H6", 11
#define E1 "J6", 14
#define F1 "J6", 13
#define G1 "J6", 12
#define H01 "J6", 11
#define I1 "K6", 14
#define J1 "K6", 13
#define K1 "K6", 12
#define L1 "K6", 11
#define A2 "N6", 14
#define B2 "N6", 13
#define C2 "N6", 12
#define D2 "N6", 11
#define E2s "M6", 14
#define F2 "M6", 13
#define G2 "M6", 12
#define H02 "M6", 11 //TODO: better name for these signals
#define I2 "L6", 14
#define J2 "L6", 13
#define K2 "L6", 12
#define L2 "L6", 11
#define CX0 "C6", 11
#define CX1 "C6", 6
@ -772,18 +772,18 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(BALL_C, "C4", 10)
CONNECTION("A4", 11, "C4", 9)
CONNECTION(A2, "N5", 1)
CONNECTION(E2s, "N5", 2)
CONNECTION(I2, "N5", 3)
CONNECTION("C5", 6, "N5", 4)
CONNECTION(A1, "N5", 5)
CONNECTION(E1, "N5", 6)
CONNECTION(I1, "N5", 7)
CONNECTION(PLAYER_2_n, "N5", 9)
CONNECTION(H32_n, "N5", 10)
CONNECTION(V16, "N5", 11)
CONNECTION(V64, "N5", 12)
CONNECTION(V128, "N5", 13)
CONNECTION(A2, "N5", 1)
CONNECTION(E2s, "N5", 2)
CONNECTION(I2, "N5", 3)
CONNECTION("C5", 6, "N5", 4)
CONNECTION(A1, "N5", 5)
CONNECTION(E1, "N5", 6)
CONNECTION(I1, "N5", 7)
CONNECTION(PLAYER_2_n, "N5", 9)
CONNECTION(H32_n, "N5", 10)
CONNECTION(V16, "N5", 11)
CONNECTION(V64, "N5", 12)
CONNECTION(V128, "N5", 13)
CONNECTION(B2, "M5", 1)
CONNECTION(F2, "M5", 2)
@ -1561,7 +1561,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(PSYNC, "B9", 1)
CONNECTION(VSYNC_n, "B9", 2)
// VIDEO SUMMING
// VIDEO SUMMING
RES(R41, RES_K(3.9))
RES(R42, RES_K(3.9))
RES(R43, RES_K(3.9))

View File

@ -9,14 +9,14 @@
#include "netlist/devices/net_lib.h"
#define FAST_CLOCK (1)
#define FAST_CLOCK (1)
NETLIST_START(pong_fast)
SOLVER(Solver, 48000)
PARAM(Solver.PARALLEL, 0) // Don't do parallel solvers
PARAM(Solver.ACCURACY, 1e-4) // works and is sufficient
PARAM(Solver.LTE, 1e-4) // Default is not enough for paddle control if using LTE
PARAM(NETLIST.USE_DEACTIVATE, 1)
PARAM(NETLIST.USE_DEACTIVATE, 1)
ANALOG_INPUT(V5, 5)

View File

@ -2,32 +2,32 @@
// copyright-holders:Ville Linde
/* Konami NWK-TR System
Driver by Ville Linde
Driver by Ville Linde
Hardware overview:
Hardware overview:
GN676 CPU Board:
----------------
IBM PowerPC 403GA at 32MHz (main CPU)
Motorola MC68EC000 at 16MHz (sound CPU)
Konami K056800 (MIRAC), sound system interface
Ricoh RF5c400 sound chip
National Semiconductor ADC12138
GN676 CPU Board:
----------------
IBM PowerPC 403GA at 32MHz (main CPU)
Motorola MC68EC000 at 16MHz (sound CPU)
Konami K056800 (MIRAC), sound system interface
Ricoh RF5c400 sound chip
National Semiconductor ADC12138
GN676 GFX Board:
----------------
Analog Devices ADSP-21062 SHARC DSP at 36MHz
Konami K001604 (2D tilemaps + 2x ROZ)
Konami 0000033906 (PCI bridge)
3DFX 500-0003-03 (Voodoo) FBI with 2MB RAM
2x 3DFX 500-0004-02 (Voodoo) TMU with 2MB RAM
GN676 GFX Board:
----------------
Analog Devices ADSP-21062 SHARC DSP at 36MHz
Konami K001604 (2D tilemaps + 2x ROZ)
Konami 0000033906 (PCI bridge)
3DFX 500-0003-03 (Voodoo) FBI with 2MB RAM
2x 3DFX 500-0004-02 (Voodoo) TMU with 2MB RAM
GN676 LAN Board:
----------------
Xilinx XC5210 FPGA
Xilinx XC5204 FPGA
GN676 LAN Board:
----------------
Xilinx XC5210 FPGA
Xilinx XC5204 FPGA
Konami 'NWK-TR' Hardware
@ -90,56 +90,56 @@ Konami 1997
|M48T58Y-70PC1 CN4 DSW(8) CN6 64.000MHz|
|--------------------------------------------------------------|
Notes:
DRM1M4SJ8 - Fujitsu 81C4256 256kx4 DRAM (SOJ24)
SRAM256K - Cypress CY7C199 32kx8 SRAM (SOJ28)
DRAM16X16 - Fujitsu 8118160A-60 16megx16 DRAM (SOJ42)
M48T58Y-70PC1 - ST Timekeeper RAM
RF5C400 - Ricoh RF5C400 PCM 32Ch, 44.1 kHz Stereo, 3D Effect Spatializer, clock input 16.9344MHz
056800 - Konami Custom (QFP80)
058232 - Konami Custom Ceramic Package (SIL14)
ADC12138 - National Semiconductor ADC12138 A/D Converter, 12-bit + Serial I/O With MUX (SOP28)
MACH111 - AMD MACH111 CPLD (Stamped 'N676A1', PLCC44)
68EC000 - Motorola MC68EC000, running at 16.0MHz (64/4)
PPC403GA - IBM PowerPC 403GA CPU, clock input 32.0MHz (64/2) (QFP160)
SM5877AM - Nippon Precision Circuits 3rd Order 2-Channel D/A Converter (SOIC24)
4AK16 - Hitachi 4AK16 Silicon N-Channel Power MOS FET Array (SIL10)
NE5532AN - Philips, Dual Low-Noise High-Speed Audio OP Amp (DIP8)
SP485CS - Sipex SP485CS Low Power Half Duplex RS485 Transceiver (DIP8)
AN7395S - Panasonic AM7395S Spatializer Audio Processor IC for 3D surround (SOIC20)
PAL1 - AMD PALCE16V8 (stamped 'N676A4', DIP20)
PAL2 - AMD PALCE16V8 (stamped 'N676A2', DIP20)
PAL3 - AMD PALCE16V8 (stamped 'N676A3', DIP20)
PAL4 - AMD PALCE16V8 (stamped 'N676A5', DIP20)
JP1 - 25M O O-O 32M
JP2 - 25M O O-O 32M
JP3 - RW O O O RO
JP4 - PROG 32M O O-O 16M
JP5 - DATA 32M O-O O 16M
JP6 - BOOT 16 O-O O 32
JP7 - SRC DOUT2 O O-O 0
JP8 - 64M&32M O-O O 16M
JP9 - 64M O O-O 32M&16M
JP10 - 64M&32M O-O O 16M
JP11 - 64M O O-O 32M&16M
JP12 - through O-O O SP
JP13 - through O-O O SP
JP14 - WDT O O
JP15 - MONO O-O O SURR
JP16 - HIGH O O O MID (N/C LOW)
CN1 to CN3 - D-SUB Connectors
CN4 - Multi-pin Connector for Network PCB
CN5 - DIN96 connector (pads only, not used)
CN6 - DIN96 joining connector to lower PCB
CN7 - Multi-pin connector (pads only, not used)
CN9 to CN13 - Power Connectors
CN14 to CN17 - RCA Stereo Audio OUT
CN18 - RCA Mono Audio OUT
CN19 - USB Connector
DRM1M4SJ8 - Fujitsu 81C4256 256kx4 DRAM (SOJ24)
SRAM256K - Cypress CY7C199 32kx8 SRAM (SOJ28)
DRAM16X16 - Fujitsu 8118160A-60 16megx16 DRAM (SOJ42)
M48T58Y-70PC1 - ST Timekeeper RAM
RF5C400 - Ricoh RF5C400 PCM 32Ch, 44.1 kHz Stereo, 3D Effect Spatializer, clock input 16.9344MHz
056800 - Konami Custom (QFP80)
058232 - Konami Custom Ceramic Package (SIL14)
ADC12138 - National Semiconductor ADC12138 A/D Converter, 12-bit + Serial I/O With MUX (SOP28)
MACH111 - AMD MACH111 CPLD (Stamped 'N676A1', PLCC44)
68EC000 - Motorola MC68EC000, running at 16.0MHz (64/4)
PPC403GA - IBM PowerPC 403GA CPU, clock input 32.0MHz (64/2) (QFP160)
SM5877AM - Nippon Precision Circuits 3rd Order 2-Channel D/A Converter (SOIC24)
4AK16 - Hitachi 4AK16 Silicon N-Channel Power MOS FET Array (SIL10)
NE5532AN - Philips, Dual Low-Noise High-Speed Audio OP Amp (DIP8)
SP485CS - Sipex SP485CS Low Power Half Duplex RS485 Transceiver (DIP8)
AN7395S - Panasonic AM7395S Spatializer Audio Processor IC for 3D surround (SOIC20)
PAL1 - AMD PALCE16V8 (stamped 'N676A4', DIP20)
PAL2 - AMD PALCE16V8 (stamped 'N676A2', DIP20)
PAL3 - AMD PALCE16V8 (stamped 'N676A3', DIP20)
PAL4 - AMD PALCE16V8 (stamped 'N676A5', DIP20)
JP1 - 25M O O-O 32M
JP2 - 25M O O-O 32M
JP3 - RW O O O RO
JP4 - PROG 32M O O-O 16M
JP5 - DATA 32M O-O O 16M
JP6 - BOOT 16 O-O O 32
JP7 - SRC DOUT2 O O-O 0
JP8 - 64M&32M O-O O 16M
JP9 - 64M O O-O 32M&16M
JP10 - 64M&32M O-O O 16M
JP11 - 64M O O-O 32M&16M
JP12 - through O-O O SP
JP13 - through O-O O SP
JP14 - WDT O O
JP15 - MONO O-O O SURR
JP16 - HIGH O O O MID (N/C LOW)
CN1 to CN3 - D-SUB Connectors
CN4 - Multi-pin Connector for Network PCB
CN5 - DIN96 connector (pads only, not used)
CN6 - DIN96 joining connector to lower PCB
CN7 - Multi-pin connector (pads only, not used)
CN9 to CN13 - Power Connectors
CN14 to CN17 - RCA Stereo Audio OUT
CN18 - RCA Mono Audio OUT
CN19 - USB Connector
ROM Usage
---------
|------------------------------- ROM Locations -------------------------------------|
|------------------------------- ROM Locations -------------------------------------|
Game 27P 25P 22P 16P 14P 12P 9P 16T 14T 12T 9T 7S
--------------------------------------------------------------------------------------------------
Racing Jam 676NC01 - - 676A09 676A10 - - 676A04 676A05 - - 676A08
@ -163,18 +163,18 @@ sticker - GC713AC
| CN1 |
|------------------------|
Notes:
CN1 - Connector joining to CPU board CN4
CN2/3 - RCA jacks for network cable
2G - Small SOIC8 chip with number 0038323 at location 2G. An identical chip is present on
*some* Hornet games on the GN715 CPU board at location 30C. It may be a PIC or EEPROM.
On Hornet, the chip seems to refresh the data in the Timekeeper RAM when the battery
dies and keeps the game working. It's purpose on the network board is unknown but it may
'upgrade' the data in the NVRAM to the network version of the game for a twin cabinet set-up.
HYC2485S - Hybrid ceramic module for RS485
CY7C199 - 32k x8 SRAM
XC5204 - Xilinx XC5204 FPGA
XC5210 - Xilink XC5210 FPGA
N676H1 - PALCE16V8Q-15 stamped 'N676H1'
CN1 - Connector joining to CPU board CN4
CN2/3 - RCA jacks for network cable
2G - Small SOIC8 chip with number 0038323 at location 2G. An identical chip is present on
*some* Hornet games on the GN715 CPU board at location 30C. It may be a PIC or EEPROM.
On Hornet, the chip seems to refresh the data in the Timekeeper RAM when the battery
dies and keeps the game working. It's purpose on the network board is unknown but it may
'upgrade' the data in the NVRAM to the network version of the game for a twin cabinet set-up.
HYC2485S - Hybrid ceramic module for RS485
CY7C199 - 32k x8 SRAM
XC5204 - Xilinx XC5204 FPGA
XC5210 - Xilink XC5210 FPGA
N676H1 - PALCE16V8Q-15 stamped 'N676H1'
Bottom Board (VIDEO PCB)
@ -211,34 +211,34 @@ GN676 PWB(B)B
| 256KSRAM 256KSRAM JP2 CN1 PAL2 |
|-------------------------------------------------------------------------------------------|
Notes:
4M_EDO - Silicon Magic SM81C256K16CJ-35 EDO DRAM 66MHz (SOJ40)
1MSRAM - Cypress CY7C109-25VC 1Meg SRAM (SOJ32)
256KSRAM - Winbond W24257AJ-15 256k SRAM (SOJ28)
TEXELFX - 3DFX 500-0004-02 BD0665.1 TMU (QFP208)
PIXELFX - 3DFX 500-0003-03 F001701.1 FBI (QFP240)
001604 - Konami Custom (QFP208)
MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44)
MACH111 - AMD MACH111 CPLD (Stamped '03161A', PLCC44)
PLCC44_SOCKET - empty PLCC44 socket
AV9170 - Integrated Circuit Systems Inc. Clock Multiplier (SOIC8)
AM7201 - AMD AM7201 FIFO (PLCC32)
PAL1 - AMD PALCE16V8 (stamped 'N676B4', DIP20)
PAL2 - AMD PALCE16V8 (stamped 'N676B5', DIP20)
PAL3 - AMD PALCE16V8 (stamped 'N676B2', DIP20)
JP1 - SLV O O-O MST,TWN (sets board to MASTER TWIN or SLAVE)
JP2 - SLV O O-O MST (sets board to MASTER or SLAVE)
CN1 - 96 Pin joining connector to upper PCB
CN2 - 8-Pin 24kHz RGB OUT
CN3 - 15-Pin DSUB VGA Video MAIN OUT
CN4 - 6-Pin Power Connector
CN5 - 4-Pin Power Connector
CN6 - 2-Pin Connector (Not Used)
CN7 - 6-Pin Connector
4M_EDO - Silicon Magic SM81C256K16CJ-35 EDO DRAM 66MHz (SOJ40)
1MSRAM - Cypress CY7C109-25VC 1Meg SRAM (SOJ32)
256KSRAM - Winbond W24257AJ-15 256k SRAM (SOJ28)
TEXELFX - 3DFX 500-0004-02 BD0665.1 TMU (QFP208)
PIXELFX - 3DFX 500-0003-03 F001701.1 FBI (QFP240)
001604 - Konami Custom (QFP208)
MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44)
MACH111 - AMD MACH111 CPLD (Stamped '03161A', PLCC44)
PLCC44_SOCKET - empty PLCC44 socket
AV9170 - Integrated Circuit Systems Inc. Clock Multiplier (SOIC8)
AM7201 - AMD AM7201 FIFO (PLCC32)
PAL1 - AMD PALCE16V8 (stamped 'N676B4', DIP20)
PAL2 - AMD PALCE16V8 (stamped 'N676B5', DIP20)
PAL3 - AMD PALCE16V8 (stamped 'N676B2', DIP20)
JP1 - SLV O O-O MST,TWN (sets board to MASTER TWIN or SLAVE)
JP2 - SLV O O-O MST (sets board to MASTER or SLAVE)
CN1 - 96 Pin joining connector to upper PCB
CN2 - 8-Pin 24kHz RGB OUT
CN3 - 15-Pin DSUB VGA Video MAIN OUT
CN4 - 6-Pin Power Connector
CN5 - 4-Pin Power Connector
CN6 - 2-Pin Connector (Not Used)
CN7 - 6-Pin Connector
ROM Usage
---------
|------ ROM Locations -------|
|------ ROM Locations -------|
Game 8X 8Y 16X 16Y
-------------------------------------------
Racing Jam 676A13 - 676A14 -

View File

@ -425,47 +425,47 @@ WRITE32_MEMBER(savquest_state::bios_ec000_ram_w)
static const UINT8 m_hasp_cmppass[] = {0xc3, 0xd9, 0xd3, 0xfb, 0x9d, 0x89, 0xb9, 0xa1, 0xb3, 0xc1, 0xf1, 0xcd, 0xdf, 0x9d}; /* 0x9d or 0x9e */
static const UINT8 m_hasp_prodinfo[] = {0x51, 0x4c, 0x52, 0x4d, 0x53, 0x4e, 0x53, 0x4e, 0x53, 0x49, 0x53, 0x48, 0x53, 0x4b, 0x53, 0x4a,
0x53, 0x43, 0x53, 0x45, 0x52, 0x46, 0x53, 0x43, 0x53, 0x41, 0xac, 0x40, 0x53, 0xbc, 0x53, 0x42,
0x53, 0x57, 0x53, 0x5d, 0x52, 0x5e, 0x53, 0x5b, 0x53, 0x59, 0xac, 0x58, 0x53, 0xa4
};
0x53, 0x43, 0x53, 0x45, 0x52, 0x46, 0x53, 0x43, 0x53, 0x41, 0xac, 0x40, 0x53, 0xbc, 0x53, 0x42,
0x53, 0x57, 0x53, 0x5d, 0x52, 0x5e, 0x53, 0x5b, 0x53, 0x59, 0xac, 0x58, 0x53, 0xa4
};
READ8_MEMBER(savquest_state::parallel_port_r)
{
if (offset == 1)
{
if ((m_haspstate == HASPSTATE_READ)
&& (m_hasp_passmode == 3)
)
&& (m_hasp_passmode == 3)
)
{
/* passmode 3 is used to retrieve the product(s) information
it comes in two parts: header and product
the header has this format:
offset range purpose
00 01 header type
01 01-05 count of used product slots, must be 2
02 01-05 count of unused product slots
this is assumed to be 6-(count of used slots)
but it is not enforced here
however a total of 6 structures will be checked
03 01-02 unknown
04 01-46 country code
05-0f 00 reserved
the used product slots have this format:
(the unused product slots must be entirely zeroes)
00-01 0001-000a product ID, one must be 6, the other 0a
02 0001-0003 unknown but must be 0001
04 01-05 HASP plug country ID
05 01-02 unknown but must be 01
06 05 unknown
07-0a any unknown, not used
0b ff unknown
0c ff unknown
0d-0f 00 reserved
offset range purpose
00 01 header type
01 01-05 count of used product slots, must be 2
02 01-05 count of unused product slots
this is assumed to be 6-(count of used slots)
but it is not enforced here
however a total of 6 structures will be checked
03 01-02 unknown
04 01-46 country code
05-0f 00 reserved
the used product slots have this format:
(the unused product slots must be entirely zeroes)
00-01 0001-000a product ID, one must be 6, the other 0a
02 0001-0003 unknown but must be 0001
04 01-05 HASP plug country ID
05 01-02 unknown but must be 01
06 05 unknown
07-0a any unknown, not used
0b ff unknown
0c ff unknown
0d-0f 00 reserved
the read is performed by accessing an array of 16-bit big-endian values
and returning one bit at a time into bit 5 of the result
the 16-bit value is then XORed with 0x534d and the register index
*/
the read is performed by accessing an array of 16-bit big-endian values
and returning one bit at a time into bit 5 of the result
the 16-bit value is then XORed with 0x534d and the register index
*/
if (m_hasp_prodind <= (sizeof(m_hasp_prodinfo) * 8))
{
@ -567,24 +567,24 @@ WRITE8_MEMBER(savquest_state::parallel_port_w)
*/
if ((data8 == 0x94)
|| (data8 == 0x9e)
|| (data8 == 0xa4)
|| (data8 == 0xb2)
|| (data8 == 0xbe)
|| (data8 == 0xd0)
)
|| (data8 == 0x9e)
|| (data8 == 0xa4)
|| (data8 == 0xb2)
|| (data8 == 0xbe)
|| (data8 == 0xd0)
)
{
return;
}
if ((data8 == 0x8a)
|| (data8 == 0x8e)
|| (data8 == 0xca)
|| (data8 == 0xd2)
|| (data8 == 0xe2)
|| (data8 == 0xf0)
|| (data8 == 0xfc)
)
|| (data8 == 0x8e)
|| (data8 == 0xca)
|| (data8 == 0xd2)
|| (data8 == 0xe2)
|| (data8 == 0xf0)
|| (data8 == 0xfc)
)
{
/* someone with access to the actual dongle could dump the true values
I've never seen it so I just determined the relevant bits instead
@ -648,8 +648,8 @@ WRITE8_MEMBER(savquest_state::parallel_port_w)
if (data8 & 1)
{
if ((m_hasp_passmode == 1)
&& (data8 == 0x9d)
)
&& (data8 == 0x9d)
)
{
m_hasp_passmode = 2;
}
@ -663,8 +663,8 @@ WRITE8_MEMBER(savquest_state::parallel_port_w)
if (++m_hasp_passind == sizeof(m_hasp_tmppass))
{
if ((m_hasp_tmppass[0] == 0x9c)
&& (m_hasp_tmppass[1] == 0x9e)
)
&& (m_hasp_tmppass[1] == 0x9e)
)
{
int i;
@ -690,7 +690,7 @@ WRITE8_MEMBER(savquest_state::parallel_port_w)
}
}
else if ((m_haspstate == HASPSTATE_PASSBEG)
&& (data8 & 1)
&& (data8 & 1)
)
{
m_hasp_tmppass[m_hasp_passind] = data8;
@ -725,7 +725,7 @@ WRITE8_MEMBER(savquest_state::smram_w)
}
static ADDRESS_MAP_START(savquest_map, AS_PROGRAM, 32, savquest_state)
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
AM_RANGE(0x000a0000, 0x000bffff) AM_READWRITE8(smram_r,smram_w,0xffffffff) //AM_DEVREADWRITE8("vga", vga_device, mem_r, mem_w, 0xffffffff)
AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM AM_REGION("video_bios", 0)

View File

@ -55,8 +55,8 @@ public:
PALETTE_INIT_MEMBER(sealy_state,sealy)
{
// for (int i = 0; i < 32768; i++)
// palette.set_pen_color(i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
// for (int i = 0; i < 32768; i++)
// palette.set_pen_color(i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
}
UINT32 sealy_state::screen_update_sealy(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)

View File

@ -194,12 +194,12 @@ static ADDRESS_MAP_START( segasp_map, AS_PROGRAM, 64, segasp_state )
/* External Device */
AM_RANGE(0x01000000, 0x0100ffff) AM_RAM // banked access to ROM/NET board address space, mainly backup SRAM and ATA
AM_RANGE(0x01010000, 0x01010007) AM_READWRITE(sp_bank_r, sp_bank_w )
// AM_RANGE(0x01010080, 0x01010087) IRQ pending/reset, ATA control
// AM_RANGE(0x01010080, 0x01010087) IRQ pending/reset, ATA control
AM_RANGE(0x01010100, 0x01010127) AM_READ(sp_io_r)
AM_RANGE(0x01010128, 0x0101012f) AM_READWRITE(sp_eeprom_r, sp_eeprom_w )
AM_RANGE(0x01010150, 0x01010157) AM_READ(sp_rombdflg_r)
// AM_RANGE(0x01010180, 0x010101af) custom UART 1
// AM_RANGE(0x010101c0, 0x010101ef) custom UART 2
// AM_RANGE(0x01010180, 0x010101af) custom UART 1
// AM_RANGE(0x010101c0, 0x010101ef) custom UART 2
/* Area 1 */
AM_RANGE(0x04000000, 0x04ffffff) AM_MIRROR(0x02000000) AM_RAM AM_SHARE("dc_texture_ram") // texture memory 64 bit access
@ -370,7 +370,7 @@ ROM_START( brickppl )
ROM_LOAD( "ic64", 0x08000000, 0x4000000, CRC(383e90d9) SHA1(eeca4b1bd0cd1fed7b85f045d71e0c7258d4350b) )
ROM_LOAD( "ic65", 0x0c000000, 0x4000000, CRC(4c29b5ac) SHA1(9e6a79ad2d2498eed5b2590c8764222e7d6c0229) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0558-com.ic15", 0, 0x800, BAD_DUMP CRC(7592d004) SHA1(632373d807f54953d68c95a9f874ed3e8011f085) )
@ -392,7 +392,7 @@ ROM_START( dinoking )
ROM_LOAD( "ic69s", 0x07000000, 0x01000000, CRC(c78e46c2) SHA1(b8224c68face23010414d13ebb4cc05a2a9dce8a) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // actually 8x 128Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // actually 8x 128Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) )
@ -413,7 +413,7 @@ ROM_START( dinokior )
ROM_LOAD( "ic68s", 0x06000000, 0x01000000, CRC(ff5ed2b8) SHA1(d8d86b3ed976c8c8fc51d225ae661e5f237b6e1d) )
ROM_LOAD( "ic69s", 0x07000000, 0x01000000, CRC(ab8ac4eb) SHA1(e6b3ce796ae4887011e2764261f3f437dc9939f9) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // actually 8x 128Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // actually 8x 128Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) )
@ -429,7 +429,7 @@ ROM_START( lovebery )
ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(1bd80ed0) SHA1(d50307573389ebe71e381a75deb83811fa397b94) )
ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(d3870287) SHA1(efd3630d54068f5a8caf242a48db410bedf48e7a) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
@ -453,7 +453,7 @@ ROM_START( lovebero )
ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(0a23cea3) SHA1(1780d935b0d641769859b2022df8e4262e7bafd8) )
ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(d3870287) SHA1(efd3630d54068f5a8caf242a48db410bedf48e7a) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
@ -469,7 +469,7 @@ ROM_START( tetgiant )
ROM_LOAD( "ic62", 0x00000000, 0x4000000, CRC(31ba1938) SHA1(9b5a05193b3df13cd7617a38913e0b0fbd61da44) )
ROM_LOAD( "ic63", 0x04000000, 0x4000000, CRC(cb946213) SHA1(6195e33c44a1e8eb464dfc3558dc1c9b4d910ef3) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // 2x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // 2x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0604-com.ic15", 0, 0x800, BAD_DUMP CRC(e8dd2b86) SHA1(765ffd2e4a36302b1db0815e842c9656e29f2457) )
@ -487,7 +487,7 @@ ROM_START( dinoki25 )
DISK_REGION( "cflash" )
DISK_IMAGE( "mda-c0047", 0, SHA1(0f97291d9c5dbe3e66a5220da05aebdfaa78b35d) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) )
@ -511,7 +511,7 @@ ROM_START( loveber3 )
DISK_REGION( "cflash" )
DISK_IMAGE( "mda-c0042", 0, SHA1(9992d90dae8ce7636e4153e02b779c27931b3be6) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x08)) // 8x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0446-com.ic15", 0, 0x800, BAD_DUMP CRC(60f56bf2) SHA1(35e697aca7213e3fb1ebe75bb8991b1b992af6d9) )
@ -528,7 +528,7 @@ ROM_START( tetgiano )
DISK_REGION( "cflash" )
DISK_IMAGE( "mda-c0076", 0, SHA1(6987c888d2a3ada2d07f6396d47fdba507ca859d) )
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // 2x 512Mbit FlashROMs
ROM_REGION( 0x04, "boardid", ROMREGION_ERASEVAL(0x02)) // 2x 512Mbit FlashROMs
ROM_REGION( 0x800, "pic_readout", 0 )
ROM_LOAD( "317-0604-com.ic15", 0, 0x800, BAD_DUMP CRC(e8dd2b86) SHA1(765ffd2e4a36302b1db0815e842c9656e29f2457) )

View File

@ -300,7 +300,7 @@ void sigmab98_state::video_start()
inline int integer_part(int x)
{
// return x >> 16;
// return x >> 16;
return (x + 0x8000) >> 16;
}
@ -328,14 +328,14 @@ void sigmab98_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
int ny = ((s[ 0x06 ] & 0xf8) >> 3) + 1;
int dsty = (s[ 0x06 ] & 0x03) * 256 + s[ 0x07 ];
int dstdx = (s[ 0x08 ] & 0xff) * 256 + s[ 0x09 ]; // 0x100 = no zoom, 0x200 = 50% zoom
int dstdy = (s[ 0x0a ] & 0xff) * 256 + s[ 0x0b ]; // ""
int dstdx = (s[ 0x08 ] & 0xff) * 256 + s[ 0x09 ]; // 0x100 = no zoom, 0x200 = 50% zoom
int dstdy = (s[ 0x0a ] & 0xff) * 256 + s[ 0x0b ]; // ""
int srcx = (s[ 0x0c ] & 0xff) * 256 + s[ 0x0d ];
int srcy = (s[ 0x0e ] & 0xff) * 256 + s[ 0x0f ];
// Sign extend the position
dstx = (dstx & 0x01ff) - (dstx & 0x0200); // or 0x3ff/0x400?
dstx = (dstx & 0x01ff) - (dstx & 0x0200); // or 0x3ff/0x400?
dsty = (dsty & 0x01ff) - (dsty & 0x0200);
// Flipping
@ -390,17 +390,17 @@ void sigmab98_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
dsty <<= 16;
// Source delta (equal for x and y)
int z = int( sqrt(dstdx * dstdx + dstdy * dstdy) + 0.5 ); // dest delta vector is scaled by the source delta!?
int z = int( sqrt(dstdx * dstdx + dstdy * dstdy) + 0.5 ); // dest delta vector is scaled by the source delta!?
if (!z)
z = 0x100;
int srcdzz = z << 8;
// Destination x and y deltas
int dstdxx = (dstdx << 16) / z; // dest x delta for source x increments
int dstdyx = (dstdy << 16) / z; // dest y delta for source x increments
int dstdxx = (dstdx << 16) / z; // dest x delta for source x increments
int dstdyx = (dstdy << 16) / z; // dest y delta for source x increments
int dstdxy = -dstdyx; // dest x delta for source y increments (orthogonal to the above vector)
int dstdyy = dstdxx; // dest y delta for source y increments
int dstdxy = -dstdyx; // dest x delta for source y increments (orthogonal to the above vector)
int dstdyy = dstdxx; // dest y delta for source y increments
// Transform the source offset in a destination offset (negate, scale and rotate it)
srcx = (-srcx << 8) / z;

View File

@ -1055,14 +1055,14 @@ ROM_START( buccanrsa )
ROM_LOAD( "prom2.u99", 0x0300, 0x0100, CRC(e0aa8869) SHA1(ac8bdfeba69420ba56ec561bf3d0f1229d02cea2) )
ROM_END
GAME( 1988, vigilant, 0, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev E)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantg, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev G)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilano, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilanta, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev A)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantb, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev B)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantc, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev C)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantd, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan, Rev D)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilanbl, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "bootleg", "Vigilante (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilant, 0, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev E)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantg, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev G)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilano, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilanta, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev A)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantb, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev B)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantc, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev C)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilantd, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan, Rev D)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, vigilanbl, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "bootleg", "Vigilante (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1988, kikcubic, 0, kikcubic, kikcubic, driver_device, 0, ROT0, "Irem", "Meikyu Jima (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) /* English title is Kickle Cubicle */
GAME( 1988, kikcubicb, kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg", "Kickle Cubele", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )

View File

@ -77,7 +77,7 @@
#define VIDEO_CLOCK XTAL_14_31818MHz // Pletronics MP49 14.31818 MHz. Crystal. Used in common VGA ISA cards.
#define UART_CLOCK XTAL_1_8432MHz // Seems UART clock, since allows integer division to common baud rates.
// (16 * 115200 baud, 192 * 9600 baud, 1536 * 1200 baud, etc...)
// (16 * 115200 baud, 192 * 9600 baud, 1536 * 1200 baud, etc...)
#include "emu.h"

View File

@ -195,7 +195,7 @@ yyyyyyyy fccccccc x???pppp xxxxxxxx
sx = sprram[offs + 3] - ((sprram[offs + 2] & 0x80) << 1);
sy = 256 - 8 - sprram[offs + 0] - 23; // center player sprite: 256 - 8 - 0x71 + dy = 256/2-32/2 -> dy = -23
// int flipx = sprram[offs + 2] & 0x40; // nope
// int flipx = sprram[offs + 2] & 0x40; // nope
int flipx = 0;
int flipy = sprram[offs + 1] & 0x80;

View File

@ -18,7 +18,7 @@ public:
m_bg_videoram(*this, "bg_videoram"),
m_spriteram(*this, "spriteram"),
m_rombank(*this, "rombank"),
m_adpcmrom(*this, "adpcm") { }
m_adpcmrom(*this, "adpcm") { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;

View File

@ -1723,17 +1723,17 @@ int n64_periphs::pif_channel_handle_command(int channel, int slength, UINT8 *sda
// Read status
switch ((machine().root_device().ioport("input")->read() >> (2 * channel)) & 3)
{
case 0: //NONE (unconnected)
case 3: //Invalid
case 0: //NONE (unconnected)
case 3: //Invalid
return 1;
case 1: //JOYPAD
case 1: //JOYPAD
rdata[0] = 0x05;
rdata[1] = 0x00;
rdata[2] = 0x01;
return 0;
case 2: //MOUSE
case 2: //MOUSE
rdata[0] = 0x02;
rdata[1] = 0x00;
rdata[2] = 0x01;
@ -1778,15 +1778,15 @@ int n64_periphs::pif_channel_handle_command(int channel, int slength, UINT8 *sda
case 0: // P1 Inputs
case 1: // P2 Inputs
case 2: // P3 Inputs
case 3: // P4 Inputs
case 3: // P4 Inputs
{
switch ((machine().root_device().ioport("input")->read() >> (2 * channel)) & 3)
{
case 0: //NONE
case 3: //Invalid
case 0: //NONE
case 3: //Invalid
return 1;
case 1: //JOYPAD
case 1: //JOYPAD
buttons = machine().root_device().ioport(portnames[(channel*5) + 0])->read();
x = machine().root_device().ioport(portnames[(channel*5) + 1])->read() - 128;
y = machine().root_device().ioport(portnames[(channel*5) + 2])->read() - 128;
@ -1797,7 +1797,7 @@ int n64_periphs::pif_channel_handle_command(int channel, int slength, UINT8 *sda
rdata[3] = (UINT8)(y);
return 0;
case 2: //MOUSE
case 2: //MOUSE
buttons = machine().root_device().ioport(portnames[(channel*5) + 0])->read();
x = (INT16)machine().root_device().ioport(portnames[(channel*5) + 1 + 2])->read();// - 128;
y = (INT16)machine().root_device().ioport(portnames[(channel*5) + 2 + 2])->read();// - 128;

View File

@ -442,11 +442,11 @@ void n64_rdp::set_suba_input_rgb(UINT8** input_r, UINT8** input_g, UINT8** input
case 3: *input_r = &userdata->m_prim_color.i.r; *input_g = &userdata->m_prim_color.i.g; *input_b = &userdata->m_prim_color.i.b; break;
case 4: *input_r = &userdata->m_shade_color.i.r; *input_g = &userdata->m_shade_color.i.g; *input_b = &userdata->m_shade_color.i.b; break;
case 5: *input_r = &userdata->m_env_color.i.r; *input_g = &userdata->m_env_color.i.g; *input_b = &userdata->m_env_color.i.b; break;
case 6: *input_r = &m_one.i.r; *input_g = &m_one.i.g; *input_b = &m_one.i.b; break;
case 6: *input_r = &m_one.i.r; *input_g = &m_one.i.g; *input_b = &m_one.i.b; break;
case 7: *input_r = &userdata->m_noise_color.i.r; *input_g = &userdata->m_noise_color.i.g; *input_b = &userdata->m_noise_color.i.b; break;
case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15:
{
*input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
*input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
}
}
}
@ -462,10 +462,10 @@ void n64_rdp::set_subb_input_rgb(UINT8** input_r, UINT8** input_g, UINT8** input
case 4: *input_r = &userdata->m_shade_color.i.r; *input_g = &userdata->m_shade_color.i.g; *input_b = &userdata->m_shade_color.i.b; break;
case 5: *input_r = &userdata->m_env_color.i.r; *input_g = &userdata->m_env_color.i.g; *input_b = &userdata->m_env_color.i.b; break;
case 6: fatalerror("SET_SUBB_RGB_INPUT: key_center\n");
case 7: *input_r = (UINT8*)&m_k4; *input_g = (UINT8*)&m_k4; *input_b = (UINT8*)&m_k4; break;
case 7: *input_r = (UINT8*)&m_k4; *input_g = (UINT8*)&m_k4; *input_b = (UINT8*)&m_k4; break;
case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15:
{
*input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
*input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
}
}
}
@ -493,7 +493,7 @@ void n64_rdp::set_mul_input_rgb(UINT8** input_r, UINT8** input_g, UINT8** input_
case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23:
case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31:
{
*input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
*input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
}
}
}
@ -508,8 +508,8 @@ void n64_rdp::set_add_input_rgb(UINT8** input_r, UINT8** input_g, UINT8** input_
case 3: *input_r = &userdata->m_prim_color.i.r; *input_g = &userdata->m_prim_color.i.g; *input_b = &userdata->m_prim_color.i.b; break;
case 4: *input_r = &userdata->m_shade_color.i.r; *input_g = &userdata->m_shade_color.i.g; *input_b = &userdata->m_shade_color.i.b; break;
case 5: *input_r = &userdata->m_env_color.i.r; *input_g = &userdata->m_env_color.i.g; *input_b = &userdata->m_env_color.i.b; break;
case 6: *input_r = &m_one.i.r; *input_g = &m_one.i.g; *input_b = &m_one.i.b; break;
case 7: *input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
case 6: *input_r = &m_one.i.r; *input_g = &m_one.i.g; *input_b = &m_one.i.b; break;
case 7: *input_r = &m_zero.i.r; *input_g = &m_zero.i.g; *input_b = &m_zero.i.b; break;
}
}
@ -2623,7 +2623,7 @@ void n64_rdp::cmd_set_other_modes(UINT32 w1, UINT32 w2)
m_other_modes.blend_m2b_0 = (w2 >> 18) & 0x3; // 00
m_other_modes.blend_m2b_1 = (w2 >> 16) & 0x3; // 01
m_other_modes.force_blend = (w2 >> 14) & 1; // 0
m_other_modes.blend_shift = m_other_modes.force_blend ? 5 : 2;
m_other_modes.blend_shift = m_other_modes.force_blend ? 5 : 2;
m_other_modes.alpha_cvg_select = (w2 >> 13) & 1; // 1
m_other_modes.cvg_times_alpha = (w2 >> 12) & 1; // 0
m_other_modes.z_mode = (w2 >> 10) & 0x3; // 00

View File

@ -101,7 +101,7 @@
//sign-extension macros
#define SIGN22(x) (((x & 0x00200000) * 0x7ff) | (x & 0x1fffff))
#define SIGN17(x) (((x & 0x00010000) * 0xffff) | (x & 0xffff))
#define SIGN17(x) (((x & 0x00010000) * 0xffff) | (x & 0xffff))
#define SIGN16(x) (((x & 0x00008000) * 0x1ffff) | (x & 0x7fff))
#define SIGN13(x) (((x & 0x00001000) * 0xfffff) | (x & 0xfff))
#define SIGN11(x) (((x & 0x00000400) * 0x3fffff) | (x & 0x3ff))
@ -222,7 +222,7 @@ struct misc_state_t
INT32 m_fb_format; // Framebuffer pixel format index (0 - I, 1 - IA, 2 - CI, 3 - RGBA)
INT32 m_fb_size; // Framebuffer pixel size index (0 - 4bpp, 1 - 8bpp, 2 - 16bpp, 3 - 32bpp)
INT32 m_fb_width; // Framebuffer width, in pixels
INT32 m_fb_height; // Framebuffer height, in pixels
INT32 m_fb_height; // Framebuffer height, in pixels
UINT32 m_fb_address; // Framebuffer source address offset (in bytes) from start of RDRAM
UINT32 m_zb_address; // Z-buffer source address offset (in bytes) from start of RDRAM
@ -367,10 +367,10 @@ struct rdp_span_aux
INT32 m_shift_b;
INT32 m_precomp_s;
INT32 m_precomp_t;
INT32 m_blend_enable;
INT32 m_blend_enable;
bool m_pre_wrap;
INT32 m_dzpix_enc;
UINT8* m_tmem; /* pointer to texture cache for this polygon */
UINT8* m_tmem; /* pointer to texture cache for this polygon */
bool m_start_span;
};
@ -398,11 +398,11 @@ struct cv_mask_derivative_t
struct rdp_poly_state
{
n64_rdp* m_rdp; /* pointer back to the RDP state */
n64_rdp* m_rdp; /* pointer back to the RDP state */
misc_state_t m_misc_state; /* miscellaneous rasterizer bits */
other_modes_t m_other_modes; /* miscellaneous rasterizer bits (2) */
span_base_t m_span_base; /* span initial values for triangle rasterization */
other_modes_t m_other_modes; /* miscellaneous rasterizer bits (2) */
span_base_t m_span_base; /* span initial values for triangle rasterization */
rectangle_t m_scissor; /* screen-space scissor bounds */
UINT32 m_fill_color; /* poly fill color */
n64_tile_t m_tiles[8]; /* texture tile state */
@ -488,10 +488,10 @@ public:
void set_blender_input(INT32 cycle, INT32 which, UINT8** input_r, UINT8** input_g, UINT8** input_b, UINT8** input_a, INT32 a, INT32 b, rdp_span_aux* userdata);
// Span rasterization
void span_draw_1cycle(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_2cycle(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_copy(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_fill(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_1cycle(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_2cycle(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_copy(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
void span_draw_fill(INT32 scanline, const extent_t &extent, const rdp_poly_state &object, INT32 threadid);
// Render-related (move into eventual drawing-related classes?)
void tc_div(INT32 ss, INT32 st, INT32 sw, INT32* sss, INT32* sst);
@ -575,7 +575,7 @@ public:
UINT32 m_fill_color;
other_modes_t m_other_modes;
other_modes_t m_other_modes;
n64_blender_t m_blender;
@ -588,7 +588,7 @@ public:
UINT16 m_dzpix_normalize[0x10000];
rectangle_t m_scissor;
span_base_t m_span_base;
span_base_t m_span_base;
rectangle m_visarea;
@ -602,16 +602,16 @@ public:
bool rdp_range_check(UINT32 addr);
n64_tile_t m_tiles[8];
n64_tile_t m_tiles[8];
private:
void write_pixel(UINT32 curpixel, INT32 r, INT32 g, INT32 b, rdp_span_aux* userdata, const rdp_poly_state &object);
void read_pixel(UINT32 curpixel, rdp_span_aux* userdata, const rdp_poly_state &object);
void copy_pixel(UINT32 curpixel, INT32 r, INT32 g, INT32 b, INT32 m_current_pix_cvg, const rdp_poly_state &object);
void fill_pixel(UINT32 curpixel, const rdp_poly_state &object);
void write_pixel(UINT32 curpixel, INT32 r, INT32 g, INT32 b, rdp_span_aux* userdata, const rdp_poly_state &object);
void read_pixel(UINT32 curpixel, rdp_span_aux* userdata, const rdp_poly_state &object);
void copy_pixel(UINT32 curpixel, INT32 r, INT32 g, INT32 b, INT32 m_current_pix_cvg, const rdp_poly_state &object);
void fill_pixel(UINT32 curpixel, const rdp_poly_state &object);
void precalc_cvmask_derivatives(void);
void z_build_com_table(void);
void precalc_cvmask_derivatives(void);
void z_build_com_table(void);
void video_update16(n64_periphs* n64, bitmap_rgb32 &bitmap);
void video_update32(n64_periphs* n64, bitmap_rgb32 &bitmap);
@ -624,15 +624,15 @@ private:
cv_mask_derivative_t cvarray[(1 << 8)];
UINT16 m_z_com_table[0x40000]; //precalced table of compressed z values, 18b: 512 KB array!
UINT32 m_z_complete_dec_table[0x4000]; //the same for decompressed z values, 14b
UINT8 m_compressed_cvmasks[0x10000]; //16bit cvmask -> to byte
UINT16 m_z_com_table[0x40000]; //precalced table of compressed z values, 18b: 512 KB array!
UINT32 m_z_complete_dec_table[0x4000]; //the same for decompressed z values, 14b
UINT8 m_compressed_cvmasks[0x10000]; //16bit cvmask -> to byte
UINT32 m_cmd_data[0x1000];
UINT32 m_temp_rect_data[0x1000];
INT32 m_cmd_ptr;
INT32 m_cmd_cur;
INT32 m_cmd_ptr;
INT32 m_cmd_cur;
UINT32 m_start;
UINT32 m_end;

View File

@ -72,8 +72,8 @@ class n64_blender_t
INT32 dither_alpha(INT32 alpha, INT32 dither);
INT32 dither_color(INT32 color, INT32 dither);
UINT8 m_color_dither[256 * 8];
UINT8 m_alpha_dither[256 * 8];
UINT8 m_color_dither[256 * 8];
UINT8 m_alpha_dither[256 * 8];
};
#endif // _VIDEO_RDPBLEND_H_

View File

@ -255,7 +255,7 @@ void n64_texture_pipe_t::clamp_cycle_light(INT32* S, INT32* T, const bool maxs,
void n64_texture_pipe_t::cycle_nearest(color_t* TEX, color_t* prev, INT32 SSS, INT32 SST, UINT32 tilenum, UINT32 cycle, rdp_span_aux* userdata, const rdp_poly_state& object)
{
// const n64_tile_t* tiles = object.m_tiles;
// const n64_tile_t* tiles = object.m_tiles;
const n64_tile_t& tile = object.m_tiles[tilenum];
const UINT32 tformat = tile.format;
const UINT32 tsize = tile.size;

View File

@ -158,15 +158,15 @@ class n64_texture_pipe_t
UINT32 fetch_i8_tlut1(INT32 s, INT32 t, INT32 tbase, INT32 tpal, rdp_span_aux* userdata);
UINT32 fetch_i8_raw(INT32 s, INT32 t, INT32 tbase, INT32 tpal, rdp_span_aux* userdata);
texel_fetcher_t m_texel_fetch[16*5];
texel_fetcher_t m_texel_fetch[16*5];
n64_rdp* m_rdp;
INT32 m_maskbits_table[16];
UINT32 m_expand_16to32_table[0x10000];
UINT16 m_lod_lookup[0x80000];
INT32 m_clamp_s_diff[8];
INT32 m_clamp_t_diff[8];
UINT16 m_lod_lookup[0x80000];
INT32 m_clamp_s_diff[8];
INT32 m_clamp_t_diff[8];
};
#endif // _VIDEO_RDPTEXPIPE_H_

View File

@ -139,11 +139,11 @@ Notes:
/*
TODO:
TODO:
- cassette
- abc806 RTC
- abc806 disks except ufd631 won't boot
- cassette
- abc806 RTC
- abc806 disks except ufd631 won't boot
*/

View File

@ -393,7 +393,7 @@ WRITE8_MEMBER( camplynx_state::port84_w )
// Square wave output
m_cass->output(BIT(data, 5) ? -1.0 : +1.0);
}
else // speaker output
else // speaker output
m_dac->write_unsigned8(space, 0, data);
}
@ -432,7 +432,7 @@ WRITE8_MEMBER( camplynx_state::lynx128k_port84_w )
// Square wave output
m_cass->output(BIT(data, 5) ? -1.0 : +1.0);
}
else // speaker output
else // speaker output
m_dac->write_unsigned8(space, 0, data);
}

View File

@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( ctstein, ctstein_state )
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, COP400_MICROBUS_DISABLED) // guessed
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
// MCFG_DEFAULT_LAYOUT(layout_ctstein)
// MCFG_DEFAULT_LAYOUT(layout_ctstein)
/* no video! */
@ -633,7 +633,7 @@ static MACHINE_CONFIG_START( plus1, plus1_state )
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, COP400_MICROBUS_ENABLED) // guessed
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
// MCFG_DEFAULT_LAYOUT(layout_plus1)
// MCFG_DEFAULT_LAYOUT(layout_plus1)
/* no video! */

View File

@ -1722,7 +1722,7 @@ static MACHINE_CONFIG_START( efootb4, efootb4_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(efootb4_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
// MCFG_DEFAULT_LAYOUT(layout_efootb4)
// MCFG_DEFAULT_LAYOUT(layout_efootb4)
MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
/* no video! */
@ -1836,7 +1836,7 @@ static MACHINE_CONFIG_START( ebaskb2, ebaskb2_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ebaskb2_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
// MCFG_DEFAULT_LAYOUT(layout_ebaskb2)
// MCFG_DEFAULT_LAYOUT(layout_ebaskb2)
MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
/* no video! */
@ -4081,7 +4081,7 @@ static MACHINE_CONFIG_START( tbreakup, tbreakup_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tbreakup_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
// MCFG_DEFAULT_LAYOUT(layout_tbreakup)
// MCFG_DEFAULT_LAYOUT(layout_tbreakup)
MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
/* no video! */

View File

@ -35,54 +35,54 @@ public:
monty_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_sed0(*this, "sed1520_0")
, m_writeUpper(false)
, m_sed0(*this, "sed1520_0")
, m_writeUpper(false)
{
for (int i = 0; i < 42*32; i++)
m_pixels[i] = 0xff000000;
for (int i = 0; i < 42*32; i++)
m_pixels[i] = 0xff000000;
}
DECLARE_READ8_MEMBER(ioInputRead);
DECLARE_READ8_MEMBER(ioInputRead);
DECLARE_WRITE8_MEMBER(ioDisplayWrite);
DECLARE_WRITE8_MEMBER(ioCommandWrite0);
DECLARE_WRITE8_MEMBER(ioCommandWrite1);
DECLARE_WRITE8_MEMBER(ioDisplayWrite);
DECLARE_WRITE8_MEMBER(ioCommandWrite0);
DECLARE_WRITE8_MEMBER(ioCommandWrite1);
// screen updates
// screen updates
UINT32 lcd_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect);
private:
required_device<cpu_device> m_maincpu;
required_device<sed1520_device> m_sed0; // TODO: This isn't actually a SED1520, it's a SED1503F
//required_device<sed1520_device> m_sed1; // TODO: Also, there are 2 SED1503Fs on the board - one is flipped upside down
required_device<sed1520_device> m_sed0; // TODO: This isn't actually a SED1520, it's a SED1503F
//required_device<sed1520_device> m_sed1; // TODO: Also, there are 2 SED1503Fs on the board - one is flipped upside down
// Test
UINT8 m_writeUpper;
UINT32 m_pixels[42*32];
// Test
UINT8 m_writeUpper;
UINT32 m_pixels[42*32];
};
static ADDRESS_MAP_START(monty_mem, AS_PROGRAM, 8, monty_state)
AM_RANGE(0x0000, 0x3fff) AM_ROM
//AM_RANGE(0x4000, 0x4000) // The main rom checks to see if another program is here on startup
AM_RANGE(0xf800, 0xffff) AM_RAM
//AM_RANGE(0x4000, 0x4000) // The main rom checks to see if another program is here on startup
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START(monty_io, AS_IO, 8, monty_state)
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(ioCommandWrite0)
AM_RANGE(0x02, 0x02) AM_WRITE(ioCommandWrite1)
AM_RANGE(0x80, 0xff) AM_WRITE(ioDisplayWrite)
AM_RANGE(0x00, 0x00) AM_WRITE(ioCommandWrite0)
AM_RANGE(0x02, 0x02) AM_WRITE(ioCommandWrite1)
AM_RANGE(0x80, 0xff) AM_WRITE(ioDisplayWrite)
// 7 reads from a bit shifted IO port
AM_RANGE(0x01, 0x01) AM_READ(ioInputRead)
AM_RANGE(0x02, 0x02) AM_READ(ioInputRead)
AM_RANGE(0x04, 0x04) AM_READ(ioInputRead)
AM_RANGE(0x08, 0x08) AM_READ(ioInputRead)
AM_RANGE(0x10, 0x10) AM_READ(ioInputRead)
AM_RANGE(0x20, 0x20) AM_READ(ioInputRead)
AM_RANGE(0x40, 0x40) AM_READ(ioInputRead)
// 7 reads from a bit shifted IO port
AM_RANGE(0x01, 0x01) AM_READ(ioInputRead)
AM_RANGE(0x02, 0x02) AM_READ(ioInputRead)
AM_RANGE(0x04, 0x04) AM_READ(ioInputRead)
AM_RANGE(0x08, 0x08) AM_READ(ioInputRead)
AM_RANGE(0x10, 0x10) AM_READ(ioInputRead)
AM_RANGE(0x20, 0x20) AM_READ(ioInputRead)
AM_RANGE(0x40, 0x40) AM_READ(ioInputRead)
ADDRESS_MAP_END
@ -93,79 +93,79 @@ INPUT_PORTS_END
READ8_MEMBER( monty_state::ioInputRead )
{
//UINT8 foo; // = machine().rand() & 0xff;
//if (m_maincpu->pc() == 0x135f)
// foo = 0x14;
//if (m_maincpu->pc() == 0x1371)
// foo = 0x1f;
//UINT8 foo; // = machine().rand() & 0xff;
//if (m_maincpu->pc() == 0x135f)
// foo = 0x14;
//if (m_maincpu->pc() == 0x1371)
// foo = 0x1f;
UINT8 foo = (machine().rand() & 0xff) | 0x14;
UINT8 foo = (machine().rand() & 0xff) | 0x14;
//printf("(%04x) %02x %02x\n", m_maincpu->pc(), foo, (foo & 0x14));
return foo;
//printf("(%04x) %02x %02x\n", m_maincpu->pc(), foo, (foo & 0x14));
return foo;
}
WRITE8_MEMBER( monty_state::ioCommandWrite0 )
{
//printf("(%04x) Command Port 0 write : %02x\n", m_maincpu->pc(), data);
m_writeUpper = false;
//printf("(%04x) Command Port 0 write : %02x\n", m_maincpu->pc(), data);
m_writeUpper = false;
}
WRITE8_MEMBER( monty_state::ioCommandWrite1 )
{
//if (data == 0xfe)
// printf("---\n");
//if (data == 0xfe)
// printf("---\n");
//printf("(%04x) Command Port 1 write : %02x\n", m_maincpu->pc(), data);
m_writeUpper = true;
//printf("(%04x) Command Port 1 write : %02x\n", m_maincpu->pc(), data);
m_writeUpper = true;
}
WRITE8_MEMBER( monty_state::ioDisplayWrite )
{
// Offset directly corresponds to sed1503, DD RAM address (offset 0x7f may be special?)
//printf("(%04x) %02x %02x\n", m_maincpu->pc(), offset, data);
// Offset directly corresponds to sed1503, DD RAM address (offset 0x7f may be special?)
//printf("(%04x) %02x %02x\n", m_maincpu->pc(), offset, data);
const UINT8 localUpper = (offset & 0x40) >> 6;
const UINT8 seg = offset & 0x3f;
const UINT8 com = data;
const UINT8 localUpper = (offset & 0x40) >> 6;
const UINT8 seg = offset & 0x3f;
const UINT8 com = data;
// Skip the controller and write straight to the LCD (pc=134f)
for (int i = 0; i < 8; i++)
{
// Pixel location
const int upperSedOffset = m_writeUpper ? 8*2 : 0;
// Skip the controller and write straight to the LCD (pc=134f)
for (int i = 0; i < 8; i++)
{
// Pixel location
const int upperSedOffset = m_writeUpper ? 8*2 : 0;
const size_t x = seg;
const size_t y = i + (localUpper*8) + upperSedOffset;
const size_t x = seg;
const size_t y = i + (localUpper*8) + upperSedOffset;
// Pixel color
const bool on = (com >> i) & 0x01;
m_pixels[(y*42) + x] = on ? 0xffffffff : 0xff000000;
}
// Pixel color
const bool on = (com >> i) & 0x01;
m_pixels[(y*42) + x] = on ? 0xffffffff : 0xff000000;
}
}
UINT32 monty_state::lcd_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect)
{
for (int y = 0; y < 32; y++)
{
for (int x = 0; x < 42; x++)
{
bitmap.pix32(y, x) = m_pixels[(y*42) + x];
}
}
for (int y = 0; y < 32; y++)
{
for (int x = 0; x < 42; x++)
{
bitmap.pix32(y, x) = m_pixels[(y*42) + x];
}
}
return 0x00;
return 0x00;
}
SED1520_UPDATE_CB(monty_screen_update)
{
// TODO: Not really a SED1520 - there are two SED1503s
return 0x00;
// TODO: Not really a SED1520 - there are two SED1503s
return 0x00;
}
@ -177,15 +177,15 @@ static MACHINE_CONFIG_START( monty, monty_state )
MCFG_CPU_IO_MAP(monty_io)
// Video hardware
MCFG_SCREEN_ADD("screen", LCD)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not accurate
MCFG_SCREEN_SIZE(42, 32) // Two SED1503s (42x16 pixels) control the top and bottom halves
MCFG_SCREEN_VISIBLE_AREA(0, 42-1, 0, 32-1)
MCFG_SCREEN_UPDATE_DRIVER(monty_state, lcd_update)
MCFG_SCREEN_ADD("screen", LCD)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not accurate
MCFG_SCREEN_SIZE(42, 32) // Two SED1503s (42x16 pixels) control the top and bottom halves
MCFG_SCREEN_VISIBLE_AREA(0, 42-1, 0, 32-1)
MCFG_SCREEN_UPDATE_DRIVER(monty_state, lcd_update)
// LCD controller interfaces
MCFG_SED1520_ADD("sed1520_0", monty_screen_update)
// LCD controller interfaces
MCFG_SED1520_ADD("sed1520_0", monty_screen_update)
MACHINE_CONFIG_END
@ -193,15 +193,15 @@ MACHINE_CONFIG_END
ROM_START( monty )
ROM_REGION(0xc000, "maincpu", 0)
ROM_LOAD( "monty_main.bin", 0x0000, 0x4000, CRC(720b4f55) SHA1(0106eb88d3fbbf25a745b9b6ee785ba13689d095) ) // 27128
ROM_LOAD( "monty_module1.bin", 0x4000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
ROM_LOAD( "monty_module2.bin", 0x8000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
ROM_LOAD( "monty_module1.bin", 0x4000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
ROM_LOAD( "monty_module2.bin", 0x8000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
ROM_END
ROM_START( mmonty )
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "master_monty_main.bin", 0x0000, 0x8000, CRC(bb5ef4d4) SHA1(ba2c759e429f8740df419f9abb60832eddfba8ab) ) // 27C256
ROM_LOAD( "monty_module1.bin", 0x8000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
ROM_LOAD( "monty_module2.bin", 0xc000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
ROM_LOAD( "monty_module1.bin", 0x8000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
ROM_LOAD( "monty_module2.bin", 0xc000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
ROM_END

View File

@ -175,12 +175,12 @@ DIAGNOSTIC-LEDs |J3 | |J2 | |J1 |
|-------------PCB# 5416206 / 5016205-01C1-------------|
CONNECTORS ("J"):
...J5... ...J4... both: RD51 controller (hard disk)
...J5... ...J4... both: EXTENDED COMM. controller
...J5... ...J4... both: RD51 controller (hard disk)
...J5... ...J4... both: EXTENDED COMM. controller
...J6... is the MEMORY OPTION connector (52 pin)
...J7... is the GRAPHICS OPTION connector (40 pin)
...J9... RX50 FLOPPY CONTROLLER (40 pin; REQUIRED)
...J6... is the MEMORY OPTION connector (52 pin)
...J7... is the GRAPHICS OPTION connector (40 pin)
...J9... RX50 FLOPPY CONTROLLER (40 pin; REQUIRED)
JUMPERS (labeled "W"):
W5 + W6 are out when 16K x 8 EPROMS are used
@ -212,7 +212,7 @@ W17 pulls J1 serial port pin 1 to GND when set (chassis to logical GND).
// (2) KEYBOARD_WORKAROUND : also requires FORCE...LOGO (and preliminary headers)
//#define KEYBOARD_WORKAROUND
//#define KBD_DELAY 8 // (debounce delay)
//#define KBD_DELAY 8 // (debounce delay)
// ---------------------------------------------------------------------------
@ -386,10 +386,10 @@ private:
IRQ_8088_MAILBOX = 0, // 27/A7 9C/29C - [built-in] Interrupt from Z80A
IRQ_8088_KBD, // 26/A6 98/298 - [built-in] KEYBOARD Interrupt - 8251A
IRQ_BDL_INTR_L, // 25/A5 94/294 - [ext. BUNDLE OPTION] Hard disk or Extended communication IRQ (no DMA)
// IRQ_COMM_PTR_INTR_L, // 24/A4 90/290 - [built-in 7201] Communication/Printer interrupt
// IRQ_DMAC_INTR_L, // 23/A3 8C/28C - [ext. COMM.BOARD only] - external DMA Controller (8237) interrupt
// IRQ_GRF_INTR_L, // 22/A2 88/288 - [ext. COLOR GRAPHICS]
// IRQ_BDL_INTR_1L, // 21/A1 84/284 - [ext. COMM.BOARD only]
// IRQ_COMM_PTR_INTR_L, // 24/A4 90/290 - [built-in 7201] Communication/Printer interrupt
// IRQ_DMAC_INTR_L, // 23/A3 8C/28C - [ext. COMM.BOARD only] - external DMA Controller (8237) interrupt
// IRQ_GRF_INTR_L, // 22/A2 88/288 - [ext. COLOR GRAPHICS]
// IRQ_BDL_INTR_1L, // 21/A1 84/284 - [ext. COMM.BOARD only]
IRQ_8088_VBL, // 20/A0 80/280 - [built-in DC012] - VERT INTR L (= schematics)
IRQ_8088_NMI // 02/02 08/08 - [external MEMORY EXTENSION] - PARITY ERROR L
}; // HIGHEST PRIORITY
@ -808,22 +808,22 @@ void rainbow_state::machine_reset()
// BIOS can't handle soft resets (would trigger ERROR 16).
// As a fallback, execute a hard reboot!
if (COLD_BOOT == 2)
{ // FIXME: ask for confirmation (via UI ?)
{ // FIXME: ask for confirmation (via UI ?)
device().machine().schedule_hard_reset();
}
/* *****************************************************************************************************************
Suitable Solutions ClikClok (one of the more compatible battery backed real time clocks)
DESCRIPTION: plugs into NVRAM chip socket on a 100-A and into one of the (EP)ROM sockets on the 100-B
............ (there is a socket on the ClikClok for the NVRAM / EPROM chip).
DESCRIPTION: plugs into NVRAM chip socket on a 100-A and into one of the (EP)ROM sockets on the 100-B
............ (there is a socket on the ClikClok for the NVRAM / EPROM chip).
DS1315 phantom clock. No address space needed (-> IRQs must be disabled to block ROM accesses during reads).
DS1315 phantom clock. No address space needed (-> IRQs must be disabled to block ROM accesses during reads).
DRIVERS: 'rbclik.zip' DOS and CP/M binaries plus source from DEC employee; Reads & displays times. Y2K READY.
+ 'newclk.arc' (Suitable Solutions; sets time and date; uses FE000 and up). 2 digit year here.
DRIVERS: 'rbclik.zip' DOS and CP/M binaries plus source from DEC employee; Reads & displays times. Y2K READY.
+ 'newclk.arc' (Suitable Solutions; sets time and date; uses FE000 and up). 2 digit year here.
TODO: obtain hardware / check address decoders. Access logic here is derived from Vincent Esser's source.
TODO: obtain hardware / check address decoders. Access logic here is derived from Vincent Esser's source.
*****************************************************************************************************************/
// * Reset RTC to a defined state *
@ -933,12 +933,12 @@ void rainbow_state::machine_reset()
UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/*
// Suppress display when accessing floppy (switch to 'smooth scroll' when working with DOS, please)!
if (MOTOR_DISABLE_counter) // IF motor running...
{
if (m_p_vol_ram[0x84] == 0x00) // IF jump scroll
return 0;
}
// Suppress display when accessing floppy (switch to 'smooth scroll' when working with DOS, please)!
if (MOTOR_DISABLE_counter) // IF motor running...
{
if (m_p_vol_ram[0x84] == 0x00) // IF jump scroll
return 0;
}
*/
m_crtc->palette_select(m_inp9->read());
@ -1045,22 +1045,22 @@ WRITE8_MEMBER(rainbow_state::share_z80_w)
// ------------------------ClikClok (for model B; DS1315) ---------------------------------
#define RTC_RESET_MACRO m_rtc->chip_reset(); \
UINT8 *rom = memregion("maincpu")->base();
UINT8 *rom = memregion("maincpu")->base();
#define RTC_ENABLE_MACRO \
if (m_inp11->read() == 0x01) \
{ \
if (offset & 1) \
if (m_inp11->read() == 0x01) \
{ \
if (offset & 1) \
m_rtc->read_1(space, 0); \
else \
m_rtc->read_0(space, 0); \
} \
UINT8 *rom = memregion("maincpu")->base();
m_rtc->read_0(space, 0); \
} \
UINT8 *rom = memregion("maincpu")->base();
#define RTC_READ_MACRO \
if (m_rtc->chip_enable() && (m_inp11->read() == 0x01)) \
return (m_rtc->read_data(space, 0) & 0x01); \
UINT8 *rom = memregion("maincpu")->base();
if (m_rtc->chip_enable() && (m_inp11->read() == 0x01)) \
return (m_rtc->read_data(space, 0) & 0x01); \
UINT8 *rom = memregion("maincpu")->base();
// *********** RTC RESET **************
READ8_MEMBER(rainbow_state::rtc_reset)
@ -1078,7 +1078,7 @@ READ8_MEMBER(rainbow_state::rtc_reset2)
// *********** RTC ENABLE **************
READ8_MEMBER(rainbow_state::rtc_enable)
{
RTC_ENABLE_MACRO
RTC_ENABLE_MACRO
return rom[RTC_PATTERN_0 + offset];
}
@ -1242,7 +1242,7 @@ WRITE_LINE_MEMBER(rainbow_state::hdc_read_sector)
// Pointer to info + C + H + S
UINT32 lbasector = get_and_print_lbasector(info, cylinder, SDH & 0x07, sector_number);
if ((cylinder <= info->cylinders) && // filter invalid ranges
if ((cylinder <= info->cylinders) && // filter invalid ranges
(SECTOR_SIZES[(SDH >> 5) & 0x03] == info->sectorbytes) // may not vary in image!
)
{
@ -1261,8 +1261,8 @@ WRITE_LINE_MEMBER(rainbow_state::hdc_read_sector)
if (read_status != 0)
{
logerror("...** READ FAILED WITH STATUS %u ** (CYLINDER %u - HEAD %u - SECTOR # %u - SECTOR_SIZE %u ) ***\n",
read_status, cylinder, SDH & 0x07, sector_number, SECTOR_SIZES[(SDH >> 5) & 0x03]
) ;
read_status, cylinder, SDH & 0x07, sector_number, SECTOR_SIZES[(SDH >> 5) & 0x03]
) ;
}
} // (on BCS 1 -> 0)
@ -1352,7 +1352,7 @@ int rainbow_state::do_write_sector()
int sector_number = m_hdc->read(space(AS_PROGRAM), 0x03);
int sector_count = m_hdc->read(space(AS_PROGRAM), 0x02); // (1 = single sector)
if (!((cylinder <= info->cylinders) && // filter invalid cylinders
if (!((cylinder <= info->cylinders) && // filter invalid cylinders
(SECTOR_SIZES[(SDH >> 5) & 0x03] == info->sectorbytes) // 512, may not vary
))
{
@ -1426,7 +1426,7 @@ WRITE8_MEMBER(rainbow_state::hd_status_60_w)
// - disk drive(latched status signals)
READ8_MEMBER(rainbow_state::hd_status_68_r)
{
// (*) Bits 5-7 : HARD WIRED IDENTIFICATION BITS, bits 5+7 = 1 and bit 6 = 0 (= 101 für RD51 module)
// (*) Bits 5-7 : HARD WIRED IDENTIFICATION BITS, bits 5+7 = 1 and bit 6 = 0 (= 101 f?r RD51 module)
int data = 0xe0; // 111 gives DRIVE NOT READY (when W is pressed on boot screen)
if ((m_inp5->read() == 0x01) && (rainbow_hdc_file(0) != NULL))
data = 0xa0; // A0 : OK, DRIVE IS READY (!)
@ -1439,23 +1439,23 @@ READ8_MEMBER(rainbow_state::hd_status_68_r)
// Bit 4 : SEEK COMPLETE: This status bit indicates that the disk drive positioned the R/W heads over the desired track on the disk surface.
// (ALT.TEXT): "Seek Complete - When this signal from the disk drive goes low(0), it indicates that the R /W heads settled on the correct track.
// Writing is inhibited until this signal goes low(0). Seek complete is high(1) during normal seek operation.
// Writing is inhibited until this signal goes low(0). Seek complete is high(1) during normal seek operation.
if (stat & 16) // SEEK COMPLETE (bit 4)?
data |= 16;
// Bit 3 : DIRECTION : This bit indicates the direction the read/write heads in the disk
// drive will move when the WD1010 chip issues step pulse(s). When high(1), the R / W heads will move toward the spindle.
// When low (0), the heads will move away from the spindle, towards track O.
// drive will move when the WD1010 chip issues step pulse(s). When high(1), the R / W heads will move toward the spindle.
// When low (0), the heads will move away from the spindle, towards track O.
if (m_hdc_direction)
data |= 8;
// Bit 2 : LATCHED STEP PULSE: This status bit from the step pulse latch indicates if the WD1010
// chip issued a step pulse since the last time the 8088 processor cleared the step pulse latch.
// chip issued a step pulse since the last time the 8088 processor cleared the step pulse latch.
if (m_hdc_step_latch)
data |= 4;
// Bit 1 : LATCHED INDEX : This status bit from the index latch indicates if the disk drive
// encountered an index mark since the last time the 8088 processor cleared the index latch.
// encountered an index mark since the last time the 8088 processor cleared the index latch.
if (m_hdc_index_latch)
data |= 2;
@ -1468,7 +1468,7 @@ READ8_MEMBER(rainbow_state::hd_status_68_r)
}
// 68 (WRITE): Secondary Command Registers (68H) - - ERKLÄRUNG: "write-only register for commands"
// 68 (WRITE): Secondary Command Registers (68H) - - ERKL?RUNG: "write-only register for commands"
// - see TABLE 4.8 (4-24)
WRITE8_MEMBER(rainbow_state::hd_status_68_w)
{
@ -1693,7 +1693,7 @@ READ8_MEMBER(rainbow_state::system_parameter_r)
((m_inp6->read() == 1) ? 0 : 2) |
((m_inp7->read() == 1) ? 0 : 4) |
((m_inp8->read() > BOARD_RAM) ? 0 : 8)
// 16 | 32 | 64 | 128 // to be verified.
// 16 | 32 | 64 | 128 // to be verified.
);
}
@ -1709,7 +1709,7 @@ READ8_MEMBER(rainbow_state::comm_control_r)
*/
int data = 0;
if (COLD_BOOT == 2)
data = 0; // During boot phase 2, never enable MHFU (prevents errors).
data = 0; // During boot phase 2, never enable MHFU (prevents errors).
else
{
data = m_crtc->MHFU(1);
@ -1831,8 +1831,8 @@ READ8_MEMBER(rainbow_state::z80_generalstat_r)
int track = 0;
int fdc_step = 0;
int fdc_ready = 0;
int tk00 = 0;
int fdc_ready = 0;
int tk00 = 0;
int fdc_write_gate = 0;
int last_dir = 0;
@ -2131,13 +2131,13 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 +
allows the floppy data separator and the serial video output to be tested
through the use of the printer port. The following table shows how signals are routed.
DIAGNOSTIC LOOPBACK = 0 DIAGNOSTIC LOOPBACK = 1 SIGNAL INPUT
SIGNAL SOURCE SIGNAL SOURCE TO
FROM FROM
PRT RDATA(J2) VIDEO OUT PRT RXD(7201)
PRT RXTXC 500 KHZ PRT RXTXC(7201)
MASTER CLK 250 KHZ VIDEO CLK(DCO11)
FLOPPY RAW DATA PRT TXD(7201) FLOPPY DATA SEPARATOR
DIAGNOSTIC LOOPBACK = 0 DIAGNOSTIC LOOPBACK = 1 SIGNAL INPUT
SIGNAL SOURCE SIGNAL SOURCE TO
FROM FROM
PRT RDATA(J2) VIDEO OUT PRT RXD(7201)
PRT RXTXC 500 KHZ PRT RXTXC(7201)
MASTER CLK 250 KHZ VIDEO CLK(DCO11)
FLOPPY RAW DATA PRT TXD(7201) FLOPPY DATA SEPARATOR
During Diagnostic Loopback, the - TEST input of the 8088 is connected to the
interrupt output of the MPSC.Thus, using the 8088's WAIT instruction in a
@ -2420,8 +2420,8 @@ ROM_RELOAD(0xfc000, 0x4000)
ROM_REGION(0x1000, "chargen", 0)
ROM_LOAD("chargen.bin", 0x0000, 0x1000, CRC(1685e452) SHA1(bc299ff1cb74afcededf1a7beb9001188fdcf02f))
// ROM_REGION(0x800, BUFFER, 0) // HDC RAM buffer 2 K -- NEW HDC
// // ROM_FILL(0x000, 0x800, 0x00)
// ROM_REGION(0x800, BUFFER, 0) // HDC RAM buffer 2 K -- NEW HDC
// // ROM_FILL(0x000, 0x800, 0x00)
ROM_END
// 'Rainbow 190 B' (announced March 1985) is identical to 100-B, with alternate ROM v5.05.

View File

@ -667,84 +667,84 @@ static MACHINE_CONFIG_START( replicator, replicator_state )
MACHINE_CONFIG_END
ROM_START( replica1 )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_DEFAULT_BIOS("v750")
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_DEFAULT_BIOS("v750")
/* Version 5.1 release:
- Initial firmware release
*/
ROM_SYSTEM_BIOS( 0, "v51", "V 5.1" )
ROMX_LOAD("mighty-mb40-v5.1.bin", 0x0000, 0x10b90, CRC(20d65cd1) SHA1(da18c3eb5a29a6bc1eecd92eaae6063fe29d0305), ROM_BIOS(1))
/* Version 5.1 release:
- Initial firmware release
*/
ROM_SYSTEM_BIOS( 0, "v51", "V 5.1" )
ROMX_LOAD("mighty-mb40-v5.1.bin", 0x0000, 0x10b90, CRC(20d65cd1) SHA1(da18c3eb5a29a6bc1eecd92eaae6063fe29d0305), ROM_BIOS(1))
/* Version 5.2 release:
- Nozzle Tolerance added to EEPROM
- Updated onboard menus
- X,Y calibration tool added
*/
ROM_SYSTEM_BIOS( 1, "v52", "V 5.2" )
ROMX_LOAD("mighty-mb40-v5.2.bin", 0x0000, 0x126c4, CRC(555e47cf) SHA1(9d24a3dbeddce16669bb4d29c3366220ddf15d2a), ROM_BIOS(2))
/* Version 5.2 release:
- Nozzle Tolerance added to EEPROM
- Updated onboard menus
- X,Y calibration tool added
*/
ROM_SYSTEM_BIOS( 1, "v52", "V 5.2" )
ROMX_LOAD("mighty-mb40-v5.2.bin", 0x0000, 0x126c4, CRC(555e47cf) SHA1(9d24a3dbeddce16669bb4d29c3366220ddf15d2a), ROM_BIOS(2))
/* Version 5.5 release:
- Acceleration added to motor motion
- Digipot updates
*/
ROM_SYSTEM_BIOS( 2, "v55", "V 5.5" )
ROMX_LOAD("mighty-mb40-v5.5.bin", 0x0000, 0x1a420, CRC(9327d7e4) SHA1(d734ba2bda12f50ec3ac0035ab11591909d9edde), ROM_BIOS(3))
/* Version 5.5 release:
- Acceleration added to motor motion
- Digipot updates
*/
ROM_SYSTEM_BIOS( 2, "v55", "V 5.5" )
ROMX_LOAD("mighty-mb40-v5.5.bin", 0x0000, 0x1a420, CRC(9327d7e4) SHA1(d734ba2bda12f50ec3ac0035ab11591909d9edde), ROM_BIOS(3))
/* Version 6.2.0 release:
- Bug fix release to firmware 6.0
- Addresses wavy print issue above 1cm
- Left extruder prints with makerware.
*/
ROM_SYSTEM_BIOS( 3, "v620", "V 6.2.0" )
ROMX_LOAD("mighty_one_v6.2.0.bin", 0x0000, 0x1cf54, CRC(00df6f48) SHA1(db05afc2e1ebc104fb04753634a911187e396556), ROM_BIOS(4))
/* Version 6.2.0 release:
- Bug fix release to firmware 6.0
- Addresses wavy print issue above 1cm
- Left extruder prints with makerware.
*/
ROM_SYSTEM_BIOS( 3, "v620", "V 6.2.0" )
ROMX_LOAD("mighty_one_v6.2.0.bin", 0x0000, 0x1cf54, CRC(00df6f48) SHA1(db05afc2e1ebc104fb04753634a911187e396556), ROM_BIOS(4))
/* Version 7.0.0 release:
- Major upgrade to Stepper Motor Smoothness (via Sailfish team)
- X3G format introduced
- Heaters default to leaving 'preheat' on more of the time
*/
ROM_SYSTEM_BIOS( 4, "v700", "V 7.0.0" )
ROMX_LOAD("mighty_one_v7.0.0.bin", 0x0000, 0x1cb52, CRC(aa2a5fcf) SHA1(934e642b0b2d007689249680bad03c9255ae016a), ROM_BIOS(5))
/* Version 7.0.0 release:
- Major upgrade to Stepper Motor Smoothness (via Sailfish team)
- X3G format introduced
- Heaters default to leaving 'preheat' on more of the time
*/
ROM_SYSTEM_BIOS( 4, "v700", "V 7.0.0" )
ROMX_LOAD("mighty_one_v7.0.0.bin", 0x0000, 0x1cb52, CRC(aa2a5fcf) SHA1(934e642b0b2d007689249680bad03c9255ae016a), ROM_BIOS(5))
/* Version 7.2.0 release:
- Removes support for S3G files
- X3G is the recognized format
- Minor bug fixes
*/
ROM_SYSTEM_BIOS( 5, "v720", "V 7.2.0" )
ROMX_LOAD("mighty_one_v7.2.0.bin", 0x0000, 0x1cb80, CRC(5e546706) SHA1(ed4aaf7522d5a5beea7eb69bf2c85d7a89f8f188), ROM_BIOS(6))
/* Version 7.2.0 release:
- Removes support for S3G files
- X3G is the recognized format
- Minor bug fixes
*/
ROM_SYSTEM_BIOS( 5, "v720", "V 7.2.0" )
ROMX_LOAD("mighty_one_v7.2.0.bin", 0x0000, 0x1cb80, CRC(5e546706) SHA1(ed4aaf7522d5a5beea7eb69bf2c85d7a89f8f188), ROM_BIOS(6))
/* Version 7.3.0 release:
- Pause at Z Height
- Elapsed time displays during prints
- Minor bug fixes
*/
ROM_SYSTEM_BIOS( 6, "v730", "V 7.3.0" )
ROMX_LOAD("mighty_one_v7.3.0.bin", 0x0000, 0x1d738, CRC(71811ff5) SHA1(6728ea600ab3ff4b589adca90b0d700d9b70bd18), ROM_BIOS(7))
/* Version 7.3.0 release:
- Pause at Z Height
- Elapsed time displays during prints
- Minor bug fixes
*/
ROM_SYSTEM_BIOS( 6, "v730", "V 7.3.0" )
ROMX_LOAD("mighty_one_v7.3.0.bin", 0x0000, 0x1d738, CRC(71811ff5) SHA1(6728ea600ab3ff4b589adca90b0d700d9b70bd18), ROM_BIOS(7))
/* Version 7.4.0 (bugfix) release:
- Fixes issues with Z Pause and elapsed print time
*/
ROM_SYSTEM_BIOS( 7, "v740", "V 7.4.0" )
ROMX_LOAD("mighty_one_v7.4.0.bin", 0x0000, 0x1b9e2, CRC(97b05a27) SHA1(76ca2c9c1db2e006e501c3177a8a1aa693dda0f9), ROM_BIOS(8))
/* Version 7.4.0 (bugfix) release:
- Fixes issues with Z Pause and elapsed print time
*/
ROM_SYSTEM_BIOS( 7, "v740", "V 7.4.0" )
ROMX_LOAD("mighty_one_v7.4.0.bin", 0x0000, 0x1b9e2, CRC(97b05a27) SHA1(76ca2c9c1db2e006e501c3177a8a1aa693dda0f9), ROM_BIOS(8))
/* Version 7.5.0 (bugfix) release:
- Fixes issue with Heat Hold
*/
ROM_SYSTEM_BIOS( 8, "v750", "V 7.5.0" )
ROMX_LOAD("mighty_one_v7.5.0.bin", 0x0000, 0x1b9c4, CRC(169d6709) SHA1(62b5aacd1bc46969042aea7a50531ec467a4ff1f), ROM_BIOS(9))
/* Version 7.5.0 (bugfix) release:
- Fixes issue with Heat Hold
*/
ROM_SYSTEM_BIOS( 8, "v750", "V 7.5.0" )
ROMX_LOAD("mighty_one_v7.5.0.bin", 0x0000, 0x1b9c4, CRC(169d6709) SHA1(62b5aacd1bc46969042aea7a50531ec467a4ff1f), ROM_BIOS(9))
/* Sailfish firmware image - Metamáquina experimental build v7.5.0 */
ROM_SYSTEM_BIOS( 9, "v750mm", "V 7.5.0 - Metamáquina" )
ROMX_LOAD("mighty_one_v7.5.0.mm.bin", 0x0000, 0x1ef9a, CRC(0d36d9e7) SHA1(a53899775b4c4eea87b6903758ebb75f06710a69), ROM_BIOS(10))
/* Sailfish firmware image - Metam??quina experimental build v7.5.0 */
ROM_SYSTEM_BIOS( 9, "v750mm", "V 7.5.0 - Metam??quina" )
ROMX_LOAD("mighty_one_v7.5.0.mm.bin", 0x0000, 0x1ef9a, CRC(0d36d9e7) SHA1(a53899775b4c4eea87b6903758ebb75f06710a69), ROM_BIOS(10))
/*Arduino MEGA bootloader */
ROM_LOAD( "atmegaboot_168_atmega1280.bin", 0x1f000, 0x0f16, CRC(c041f8db) SHA1(d995ebf360a264cccacec65f6dc0c2257a3a9224) )
/*Arduino MEGA bootloader */
ROM_LOAD( "atmegaboot_168_atmega1280.bin", 0x1f000, 0x0f16, CRC(c041f8db) SHA1(d995ebf360a264cccacec65f6dc0c2257a3a9224) )
/* on-die 4kbyte eeprom */
ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF )
/* on-die 4kbyte eeprom */
ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */

View File

@ -222,7 +222,7 @@ static ADDRESS_MAP_START (spectrum_128_io, AS_IO, 8, spectrum_state )
AM_RANGE(0x001f, 0x001f) AM_READ(spectrum_port_1f_r) AM_MIRROR(0xff00)
AM_RANGE(0x007f, 0x007f) AM_READ(spectrum_port_7f_r) AM_MIRROR(0xff00)
AM_RANGE(0x00df, 0x00df) AM_READ(spectrum_port_df_r) AM_MIRROR(0xff00)
AM_RANGE(0x0000, 0x0000) AM_WRITE(spectrum_128_port_7ffd_w) AM_MIRROR(0x7ffd) // (A15 | A1) == 0, note: reading from this port does write to it by value from data bus
AM_RANGE(0x0000, 0x0000) AM_WRITE(spectrum_128_port_7ffd_w) AM_MIRROR(0x7ffd) // (A15 | A1) == 0, note: reading from this port does write to it by value from data bus
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("ay8912", ay8910_device, data_w) AM_MIRROR(0x3ffd)
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE("ay8912", ay8910_device, data_r, address_w) AM_MIRROR(0x3ffd)
AM_RANGE(0x0001, 0x0001) AM_READ(spectrum_128_ula_r) AM_MIRROR(0xfffe)

View File

@ -17,7 +17,7 @@
0x0071: RAM fill to 0x00
0x1c8f: UPD7220
// vt240: x2212 nvram at E56
// vt240: x2212 nvram at E56
****************************************************************************/
#include "emu.h"

View File

@ -1,3 +1,2 @@
// license:LGPL-2.1+
// copyright-holders: Angelo Salese

View File

@ -95,64 +95,64 @@ public:
required_device<mc6845_device> m_crtc;
required_device<z80ctc_device> m_ctc;
UINT8 *m_tvram; /**< Pointer for Text Video RAM */
UINT8 *m_avram; /**< Pointer for Attribute Video RAM */
UINT8 *m_kvram; /**< Pointer for Extended Kanji Video RAM (X1 Turbo) */
UINT8 *m_ipl_rom; /**< Pointer for IPL ROM */
UINT8 *m_work_ram; /**< Pointer for base work RAM */
UINT8 *m_emm_ram; /**< Pointer for EMM RAM */
UINT8 *m_pcg_ram; /**< Pointer for PCG GFX RAM */
UINT8 *m_cg_rom; /**< Pointer for GFX ROM */
UINT8 *m_kanji_rom; /**< Pointer for Kanji ROMs */
int m_xstart, /**< Start X offset for screen drawing. */
m_ystart; /**< Start Y offset for screen drawing. */
UINT8 m_hres_320; /**< Pixel clock divider setting: (1) 48 (0) 24 */
UINT8 m_io_switch; /**< Enable access for special bitmap RMW phase in isolated i/o. */
UINT8 m_io_sys; /**< Read-back for PPI port C */
UINT8 m_vsync; /**< Screen V-Sync bit, active low */
UINT8 m_vdisp; /**< Screen V-Disp bit, active high */
UINT8 m_io_bank_mode; /**< Helper for special bitmap RMW phase. */
UINT8 *m_gfx_bitmap_ram; /**< Pointer for bitmap layer RAM. */
UINT8 m_pcg_reset; /**< @todo Unused variable. */
UINT8 m_sub_obf; /**< MCU side: OBF flag active low, indicates that there are parameters in comm buffer. */
UINT8 m_ctc_irq_flag; /**< @todo Unused variable. */
scrn_reg_t m_scrn_reg; /**< Base Video Registers. */
turbo_reg_t m_turbo_reg; /**< Turbo Z Video Registers. */
x1_rtc_t m_rtc; /**< Struct for RTC related variables */
emu_timer *m_rtc_timer; /**< Pointer for RTC timer. */
UINT8 m_pcg_write_addr; /**< @todo Unused variable. */
UINT8 m_sub_cmd; /**< MCU side: current command issued from Main to Sub. */
UINT8 m_sub_cmd_length; /**< MCU side: number of parameters, in bytes. */
UINT8 m_sub_val[8]; /**< MCU side: parameters buffer. */
int m_sub_val_ptr; /**< MCU side: index for parameter read-back */
int m_key_i; /**< MCU side: index for keyboard read-back during OBF phase. */
UINT8 m_irq_vector; /**< @todo Unused variable. */
UINT8 m_cmt_current_cmd; /**< MCU side: CMT command issued. */
UINT8 m_cmt_test; /**< MCU side: Tape BREAK status bit. */
UINT8 m_rom_index[3]; /**< Current ROM address. */
UINT32 m_kanji_offset; /**< @todo Unused variable. */
UINT8 m_bios_offset; /**< @todo Unused variable. */
UINT8 m_x_b; /**< Palette Register for Blue Gun */
UINT8 m_x_g; /**< Palette Register for Green Gun */
UINT8 m_x_r; /**< Palette Register for Red Gun */
UINT16 m_kanji_addr_latch; /**< Internal Kanji ROM address. */
UINT32 m_kanji_addr; /**< Latched Kanji ROM address. */
UINT8 m_kanji_eksel; /**< Kanji ROM register bit for latch phase. */
UINT8 m_pcg_reset_occurred; /**< @todo Unused variable. */
UINT32 m_old_key1; /**< Keyboard read buffer for i/o port "key1" */
UINT32 m_old_key2; /**< Keyboard read buffer for i/o port "key2" */
UINT32 m_old_key3; /**< Keyboard read buffer for i/o port "key3" */
UINT32 m_old_key4; /**< Keyboard read buffer for i/o port "tenkey" */
UINT32 m_old_fkey; /**< Keyboard read buffer for i/o port "f_keys" */
UINT8 m_key_irq_flag; /**< Keyboard IRQ pending. */
UINT8 m_key_irq_vector; /**< Keyboard IRQ vector. */
UINT32 m_emm_addr; /**< EMM RAM current address */
UINT8 *m_pal_4096; /**< X1 Turbo Z: pointer for 4096 palette entries */
UINT8 m_crtc_vreg[0x100], /**< CRTC register buffer. */
m_crtc_index; /**< CRTC register index. */
UINT8 m_is_turbo; /**< Machine type: (0) X1 Vanilla, (1) X1 Turbo */
UINT8 m_ex_bank; /**< X1 Turbo Z: RAM bank register */
UINT8 m_ram_bank; /**< Regular RAM bank for 0x0000-0x7fff memory window: (0) ROM/IPL (1) RAM */
UINT8 *m_tvram; /**< Pointer for Text Video RAM */
UINT8 *m_avram; /**< Pointer for Attribute Video RAM */
UINT8 *m_kvram; /**< Pointer for Extended Kanji Video RAM (X1 Turbo) */
UINT8 *m_ipl_rom; /**< Pointer for IPL ROM */
UINT8 *m_work_ram; /**< Pointer for base work RAM */
UINT8 *m_emm_ram; /**< Pointer for EMM RAM */
UINT8 *m_pcg_ram; /**< Pointer for PCG GFX RAM */
UINT8 *m_cg_rom; /**< Pointer for GFX ROM */
UINT8 *m_kanji_rom; /**< Pointer for Kanji ROMs */
int m_xstart, /**< Start X offset for screen drawing. */
m_ystart; /**< Start Y offset for screen drawing. */
UINT8 m_hres_320; /**< Pixel clock divider setting: (1) 48 (0) 24 */
UINT8 m_io_switch; /**< Enable access for special bitmap RMW phase in isolated i/o. */
UINT8 m_io_sys; /**< Read-back for PPI port C */
UINT8 m_vsync; /**< Screen V-Sync bit, active low */
UINT8 m_vdisp; /**< Screen V-Disp bit, active high */
UINT8 m_io_bank_mode; /**< Helper for special bitmap RMW phase. */
UINT8 *m_gfx_bitmap_ram; /**< Pointer for bitmap layer RAM. */
UINT8 m_pcg_reset; /**< @todo Unused variable. */
UINT8 m_sub_obf; /**< MCU side: OBF flag active low, indicates that there are parameters in comm buffer. */
UINT8 m_ctc_irq_flag; /**< @todo Unused variable. */
scrn_reg_t m_scrn_reg; /**< Base Video Registers. */
turbo_reg_t m_turbo_reg; /**< Turbo Z Video Registers. */
x1_rtc_t m_rtc; /**< Struct for RTC related variables */
emu_timer *m_rtc_timer; /**< Pointer for RTC timer. */
UINT8 m_pcg_write_addr; /**< @todo Unused variable. */
UINT8 m_sub_cmd; /**< MCU side: current command issued from Main to Sub. */
UINT8 m_sub_cmd_length; /**< MCU side: number of parameters, in bytes. */
UINT8 m_sub_val[8]; /**< MCU side: parameters buffer. */
int m_sub_val_ptr; /**< MCU side: index for parameter read-back */
int m_key_i; /**< MCU side: index for keyboard read-back during OBF phase. */
UINT8 m_irq_vector; /**< @todo Unused variable. */
UINT8 m_cmt_current_cmd; /**< MCU side: CMT command issued. */
UINT8 m_cmt_test; /**< MCU side: Tape BREAK status bit. */
UINT8 m_rom_index[3]; /**< Current ROM address. */
UINT32 m_kanji_offset; /**< @todo Unused variable. */
UINT8 m_bios_offset; /**< @todo Unused variable. */
UINT8 m_x_b; /**< Palette Register for Blue Gun */
UINT8 m_x_g; /**< Palette Register for Green Gun */
UINT8 m_x_r; /**< Palette Register for Red Gun */
UINT16 m_kanji_addr_latch; /**< Internal Kanji ROM address. */
UINT32 m_kanji_addr; /**< Latched Kanji ROM address. */
UINT8 m_kanji_eksel; /**< Kanji ROM register bit for latch phase. */
UINT8 m_pcg_reset_occurred; /**< @todo Unused variable. */
UINT32 m_old_key1; /**< Keyboard read buffer for i/o port "key1" */
UINT32 m_old_key2; /**< Keyboard read buffer for i/o port "key2" */
UINT32 m_old_key3; /**< Keyboard read buffer for i/o port "key3" */
UINT32 m_old_key4; /**< Keyboard read buffer for i/o port "tenkey" */
UINT32 m_old_fkey; /**< Keyboard read buffer for i/o port "f_keys" */
UINT8 m_key_irq_flag; /**< Keyboard IRQ pending. */
UINT8 m_key_irq_vector; /**< Keyboard IRQ vector. */
UINT32 m_emm_addr; /**< EMM RAM current address */
UINT8 *m_pal_4096; /**< X1 Turbo Z: pointer for 4096 palette entries */
UINT8 m_crtc_vreg[0x100], /**< CRTC register buffer. */
m_crtc_index; /**< CRTC register index. */
UINT8 m_is_turbo; /**< Machine type: (0) X1 Vanilla, (1) X1 Turbo */
UINT8 m_ex_bank; /**< X1 Turbo Z: RAM bank register */
UINT8 m_ram_bank; /**< Regular RAM bank for 0x0000-0x7fff memory window: (0) ROM/IPL (1) RAM */
/**
@brief Refresh current bitmap palette.
*/

View File

@ -758,4 +758,3 @@ WRITE8_MEMBER( lk201_device::spi_w )
// printf("SPI %02x to %x (PC=%x)\n", data, offset, m_maincpu->pc());
}

View File

@ -2,7 +2,7 @@
// copyright-holders:Curt Coder
/**********************************************************************
Wang PC keyboard emulation
Wang PC keyboard emulation
*********************************************************************/

View File

@ -2,11 +2,11 @@
// copyright-holders:R. Belmont,Ryan Holtz
/***************************************************************************
gba.c
gba.c
File to handle emulation of the video hardware of the Game Boy Advance
File to handle emulation of the video hardware of the Game Boy Advance
By R. Belmont, MooglyGuy
By R. Belmont, MooglyGuy
***************************************************************************/

View File

@ -264,7 +264,7 @@ WRITE8_MEMBER(vt100_video_device::dc012_w)
//printf("\n PC %05x - MHFU MAGIC -2 %02x\n", PC, magic2);
//if (VERBOSE)
//if(1 )
//if(1 )
if ((rom[PC - 2] == 0x0C) &&
(rom[PC - 1] == 0x01)
)
@ -904,7 +904,7 @@ int rainbow_video_device::MHFU(int ASK)
return -100;
case -200: // -200 : RESET and DISABLE MHFU
case -200: // -200 : RESET and DISABLE MHFU
MHFU_counter = 0;
if(1) //if (VERBOSE)

View File

@ -1655,7 +1655,7 @@ void shaders::bloom_pass(render_target *rt, vec2f &texsize, vec2f &delta, poly_i
void shaders::screen_pass(render_target *rt, vec2f &texsize, vec2f &delta, poly_info *poly, int vertnum)
{
UINT num_passes = 0;
UINT num_passes = 0;
curr_effect = simple_effect;
curr_effect->update_uniforms();

View File

@ -102,17 +102,17 @@ class tool_options_t : public poptions
public:
tool_options_t() :
poptions(),
opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
opt_logs("l", "logs", "", "colon separated list of terminals to log", this),
opt_file("f", "file", "-", "file to process (default is stdin)", this),
opt_cmd ("c", "cmd", "run", "run|convert|listdevices", this),
opt_cmd ("c", "cmd", "run", "run|convert|listdevices", this),
opt_verb("v", "verbose", "be verbose - this produces lots of output", this),
opt_help("h", "help", "display help", this)
{}
poption_double opt_ttr;
poption_str opt_logs;
poption_str opt_file;
poption_str opt_file;
poption_str opt_cmd;
poption_bool opt_verb;
poption_bool opt_help;
@ -639,21 +639,21 @@ private:
};
convert_t::sp_unit convert_t::m_sp_units[] = {
{"T", "", 1.0e12 },
{"G", "", 1.0e9 },
{"MEG", "RES_M(%g)", 1.0e6 },
{"K", "RES_K(%g)", 1.0e3 },
{"", "%g", 1.0e0 },
{"M", "CAP_M(%g)", 1.0e-3 },
{"U", "CAP_U(%g)", 1.0e-6 },
{"µ", "CAP_U(%g)", 1.0e-6 },
{"N", "CAP_N(%g)", 1.0e-9 },
{"T", "", 1.0e12 },
{"G", "", 1.0e9 },
{"MEG", "RES_M(%g)", 1.0e6 },
{"K", "RES_K(%g)", 1.0e3 },
{"", "%g", 1.0e0 },
{"M", "CAP_M(%g)", 1.0e-3 },
{"U", "CAP_U(%g)", 1.0e-6 },
{"??", "CAP_U(%g)", 1.0e-6 },
{"N", "CAP_N(%g)", 1.0e-9 },
{"P", "CAP_P(%g)", 1.0e-12},
{"F", "%ge-15", 1.0e-15},
{"F", "%ge-15", 1.0e-15},
{"MIL", "%e", 25.4e-6},
{"-", "%g", 1.0 }
{"-", "%g", 1.0 }
};
@ -665,7 +665,6 @@ convert_t::sp_unit convert_t::m_sp_units[] = {
int main(int argc, char *argv[])
{
track_memory(true);
{
tool_options_t opts;

View File

@ -8,7 +8,7 @@
***************************************************************************/
#define BARE_BUILD_VERSION "0.161"
#define BARE_BUILD_VERSION "0.162"
extern const char bare_build_version[];
extern const char build_version[];