mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
srcclean (nw)
This commit is contained in:
parent
cf3f4b2530
commit
32868b8e2a
@ -6917,7 +6917,7 @@ has been replaced with an all-zero block. -->
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="actnserv35" cloneof="actnserv">
|
<software name="actnserv35" cloneof="actnserv">
|
||||||
<description>Action Service (Smash16 release) (3.5")</description>
|
<description>Action Service (Smash16 release) (3.5")</description>
|
||||||
<year>1990</year>
|
<year>1990</year>
|
||||||
@ -8829,7 +8829,7 @@ has been replaced with an all-zero block. -->
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="italy90">
|
<software name="italy90">
|
||||||
<description>Italy '90 Soccer</description>
|
<description>Italy '90 Soccer</description>
|
||||||
<year>1989</year>
|
<year>1989</year>
|
||||||
@ -8854,7 +8854,7 @@ has been replaced with an all-zero block. -->
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="joeblade">
|
<software name="joeblade">
|
||||||
<description>Joe Blade (Smash16 release)</description>
|
<description>Joe Blade (Smash16 release)</description>
|
||||||
<year>1992</year>
|
<year>1992</year>
|
||||||
@ -10154,7 +10154,7 @@ has been replaced with an all-zero block. -->
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="outruna" cloneof="outrun">
|
<software name="outruna" cloneof="outrun">
|
||||||
<description>Out Run (Kixx release)</description>
|
<description>Out Run (Kixx release)</description>
|
||||||
<year>1989</year>
|
<year>1989</year>
|
||||||
@ -11288,7 +11288,7 @@ has been replaced with an all-zero block. -->
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="starflg2">
|
<software name="starflg2">
|
||||||
<description>Starflight 2: Trade Routes of the Cloud Nebula (5.25")</description>
|
<description>Starflight 2: Trade Routes of the Cloud Nebula (5.25")</description>
|
||||||
<year>1989</year>
|
<year>1989</year>
|
||||||
|
@ -9376,7 +9376,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="cosmo">
|
<software name="cosmo">
|
||||||
<description>Cosmo's Cosmic Adventure - Forbidden Planet</description>
|
<description>Cosmo's Cosmic Adventure - Forbidden Planet</description>
|
||||||
<year>1992</year>
|
<year>1992</year>
|
||||||
@ -11220,7 +11220,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="linksfcc">
|
<software name="linksfcc">
|
||||||
<!-- Dumped via Kryoflux, all tracks show as good and unmodified -->
|
<!-- Dumped via Kryoflux, all tracks show as good and unmodified -->
|
||||||
<description>Links - Championship Course - Firestone Country Club</description>
|
<description>Links - Championship Course - Firestone Country Club</description>
|
||||||
|
@ -13,16 +13,16 @@ project "netlist"
|
|||||||
uuid "665ef8ac-2a4c-4c3e-a05f-fd1e5db11de9"
|
uuid "665ef8ac-2a4c-4c3e-a05f-fd1e5db11de9"
|
||||||
kind (LIBTYPE)
|
kind (LIBTYPE)
|
||||||
|
|
||||||
if _OPTIONS["targetos"]=="windows" then
|
if _OPTIONS["targetos"]=="windows" then
|
||||||
configuration { "mingw* or vs*" }
|
configuration { "mingw* or vs*" }
|
||||||
defines {
|
defines {
|
||||||
"UNICODE",
|
"UNICODE",
|
||||||
"_UNICODE",
|
"_UNICODE",
|
||||||
"_WIN32_WINNT=0x0501",
|
"_WIN32_WINNT=0x0501",
|
||||||
"WIN32_LEAN_AND_MEAN",
|
"WIN32_LEAN_AND_MEAN",
|
||||||
"NOMINMAX",
|
"NOMINMAX",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
addprojectflags()
|
addprojectflags()
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ project "netlist"
|
|||||||
|
|
||||||
includedirs {
|
includedirs {
|
||||||
MAME_DIR .. "src/lib",
|
MAME_DIR .. "src/lib",
|
||||||
MAME_DIR .. "src/lib/netlist",
|
MAME_DIR .. "src/lib/netlist",
|
||||||
}
|
}
|
||||||
|
|
||||||
files {
|
files {
|
||||||
@ -47,7 +47,7 @@ project "netlist"
|
|||||||
MAME_DIR .. "src/lib/netlist/nl_parser.h",
|
MAME_DIR .. "src/lib/netlist/nl_parser.h",
|
||||||
MAME_DIR .. "src/lib/netlist/nl_setup.cpp",
|
MAME_DIR .. "src/lib/netlist/nl_setup.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/nl_setup.h",
|
MAME_DIR .. "src/lib/netlist/nl_setup.h",
|
||||||
MAME_DIR .. "src/lib/netlist/nl_types.h",
|
MAME_DIR .. "src/lib/netlist/nl_types.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/pconfig.h",
|
MAME_DIR .. "src/lib/netlist/plib/pconfig.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/palloc.h",
|
MAME_DIR .. "src/lib/netlist/plib/palloc.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/pchrono.h",
|
MAME_DIR .. "src/lib/netlist/plib/pchrono.h",
|
||||||
@ -72,9 +72,9 @@ project "netlist"
|
|||||||
MAME_DIR .. "src/lib/netlist/plib/pstate.h",
|
MAME_DIR .. "src/lib/netlist/plib/pstate.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/pstring.cpp",
|
MAME_DIR .. "src/lib/netlist/plib/pstring.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/pstring.h",
|
MAME_DIR .. "src/lib/netlist/plib/pstring.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/pstrutil.h",
|
MAME_DIR .. "src/lib/netlist/plib/pstrutil.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/pstream.h",
|
MAME_DIR .. "src/lib/netlist/plib/pstream.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/ptime.h",
|
MAME_DIR .. "src/lib/netlist/plib/ptime.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/ptypes.h",
|
MAME_DIR .. "src/lib/netlist/plib/ptypes.h",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/putil.cpp",
|
MAME_DIR .. "src/lib/netlist/plib/putil.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/plib/putil.h",
|
MAME_DIR .. "src/lib/netlist/plib/putil.h",
|
||||||
@ -82,9 +82,9 @@ project "netlist"
|
|||||||
MAME_DIR .. "src/lib/netlist/tools/nl_convert.h",
|
MAME_DIR .. "src/lib/netlist/tools/nl_convert.h",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nld_bjt.cpp",
|
MAME_DIR .. "src/lib/netlist/analog/nld_bjt.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nld_bjt.h",
|
MAME_DIR .. "src/lib/netlist/analog/nld_bjt.h",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nld_generic_models.h",
|
MAME_DIR .. "src/lib/netlist/analog/nld_generic_models.h",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.cpp",
|
MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.h",
|
MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.h",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.cpp",
|
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.h",
|
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.h",
|
||||||
MAME_DIR .. "src/lib/netlist/analog/nld_fourterm.h",
|
MAME_DIR .. "src/lib/netlist/analog/nld_fourterm.h",
|
||||||
@ -224,4 +224,4 @@ project "netlist"
|
|||||||
MAME_DIR .. "src/lib/netlist/macro/nlm_opamp.h",
|
MAME_DIR .. "src/lib/netlist/macro/nlm_opamp.h",
|
||||||
MAME_DIR .. "src/lib/netlist/macro/nlm_other.cpp",
|
MAME_DIR .. "src/lib/netlist/macro/nlm_other.cpp",
|
||||||
MAME_DIR .. "src/lib/netlist/macro/nlm_other.h",
|
MAME_DIR .. "src/lib/netlist/macro/nlm_other.h",
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ files{
|
|||||||
MAME_DIR .. "src/mame/video/1942.cpp",
|
MAME_DIR .. "src/mame/video/1942.cpp",
|
||||||
MAME_DIR .. "src/mame/audio/nl_1942.cpp",
|
MAME_DIR .. "src/mame/audio/nl_1942.cpp",
|
||||||
MAME_DIR .. "src/mame/audio/nl_1942.h",
|
MAME_DIR .. "src/mame/audio/nl_1942.h",
|
||||||
|
|
||||||
MAME_DIR .. "src/mame/drivers/gamemachine.cpp",
|
MAME_DIR .. "src/mame/drivers/gamemachine.cpp",
|
||||||
MAME_DIR .. "src/mame/audio/nl_gamemachine.h",
|
MAME_DIR .. "src/mame/audio/nl_gamemachine.h",
|
||||||
MAME_DIR .. "src/mame/audio/nl_gamemachine.cpp",
|
MAME_DIR .. "src/mame/audio/nl_gamemachine.cpp",
|
||||||
|
@ -985,7 +985,7 @@ MC6845_UPDATE_ROW( isa8_ec1840_0002_device::crtc_update_row )
|
|||||||
/* PCB layouts and assembly years from online pictures and physical unit.
|
/* PCB layouts and assembly years from online pictures and physical unit.
|
||||||
Ericsson - marked SPVT02 8301 60 53-10, assembled in 1985 indicated by chip dates
|
Ericsson - marked SPVT02 8301 60 53-10, assembled in 1985 indicated by chip dates
|
||||||
+--------------------------------------------------------------------------------------+ ___
|
+--------------------------------------------------------------------------------------+ ___
|
||||||
| IC1 IC2 IC3 IC4 IC5 +-IC15--EPROM-+ IC6 IC7 IC8 S1 ||
|
| IC1 IC2 IC3 IC4 IC5 +-IC15--EPROM-+ IC6 IC7 IC8 S1 ||
|
||||||
| |8363 65 14-80| ||
|
| |8363 65 14-80| ||
|
||||||
| IC9 IC10 IC11 IC12 IC13 IC14|CG 50821 A64 |+------------------++-IC24 EPROM--+ ||
|
| IC9 IC10 IC11 IC12 IC13 IC14|CG 50821 A64 |+------------------++-IC24 EPROM--+ ||
|
||||||
| +-------------+| CRTC HD46505SP-1 ||10-40VP | ||
|
| +-------------+| CRTC HD46505SP-1 ||10-40VP | ||
|
||||||
@ -1028,7 +1028,7 @@ MC6845_UPDATE_ROW( isa8_ec1840_0002_device::crtc_update_row )
|
|||||||
IC20 74LS299 IC45 74LS109 IC70 74LS109
|
IC20 74LS299 IC45 74LS109 IC70 74LS109
|
||||||
IC21 74LS273 IC46 74LS00 IC71 74LS138
|
IC21 74LS273 IC46 74LS00 IC71 74LS138
|
||||||
IC22 74ALS574 IC47 74F194 IC72 74LS139
|
IC22 74ALS574 IC47 74F194 IC72 74LS139
|
||||||
IC23 CRTC HD46505SP,HD68A45SP IC48 74F04
|
IC23 CRTC HD46505SP,HD68A45SP IC48 74F04
|
||||||
IC24 EPROM 2764, 10-40 VP 402 28 A19 IC49 74LS174
|
IC24 EPROM 2764, 10-40 VP 402 28 A19 IC49 74LS174
|
||||||
IC25 74ALS109 IC50 TMS4416-15NL 4 x 16Kbits DRAM
|
IC25 74ALS109 IC50 TMS4416-15NL 4 x 16Kbits DRAM
|
||||||
|
|
||||||
@ -1044,16 +1044,16 @@ MC6845_UPDATE_ROW( isa8_ec1840_0002_device::crtc_update_row )
|
|||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
Ericsson 2 +VS 4 Ericsson
|
Ericsson 2 +VS 4 Ericsson
|
||||||
Monochrome 3 VS return 2 Monochrome HR
|
Monochrome 3 VS return 2 Monochrome HR
|
||||||
HR Graphics 10 +VS 17 Monitors 3111 (Amber) or
|
HR Graphics 10 +VS 17 Monitors 3111 (Amber) or
|
||||||
Board 1070 11 VS return 15 3712/3715 (Black & White)
|
Board 1070 11 VS return 15 3712/3715 (Black & White)
|
||||||
4 VSYNC 6
|
4 VSYNC 6
|
||||||
12 VSYNC 19
|
12 VSYNC 19
|
||||||
5 HSYNC 7
|
5 HSYNC 7
|
||||||
13 HSYNC 20
|
13 HSYNC 20
|
||||||
6 High intensity 8
|
6 High intensity 8
|
||||||
14 High intensity 21
|
14 High intensity 21
|
||||||
7 Video 9
|
7 Video 9
|
||||||
15 Video 22
|
15 Video 22
|
||||||
8 GND 11
|
8 GND 11
|
||||||
|
|
||||||
This board is normaly used with an Ericsson monitor due to the non standard connector.
|
This board is normaly used with an Ericsson monitor due to the non standard connector.
|
||||||
@ -1194,7 +1194,7 @@ void isa8_epc_mda_device::device_reset()
|
|||||||
*-------------------------------------------------------------------------------
|
*-------------------------------------------------------------------------------
|
||||||
* 6845 Address Registers 0x3b4 0x3d4 wo CRT Index reg
|
* 6845 Address Registers 0x3b4 0x3d4 wo CRT Index reg
|
||||||
* 6845 Data Registers 0x3b5 0x3d5 wo CRT Data reg
|
* 6845 Data Registers 0x3b5 0x3d5 wo CRT Data reg
|
||||||
* Mode Register 1 0x3b8 0x3d8 rw MDA/CGA mode reg (bit 0,1 & 4 incompatible)
|
* Mode Register 1 0x3b8 0x3d8 rw MDA/CGA mode reg (bit 0,1 & 4 incompatible)
|
||||||
* Mode Register 2 0x3bf 0x3df rw CRT/CPU page reg (incompatible w PCjr only)
|
* Mode Register 2 0x3bf 0x3df rw CRT/CPU page reg (incompatible w PCjr only)
|
||||||
* Status Register 0x3ba 0x3da r CGA/MDA status reg (incompatible)
|
* Status Register 0x3ba 0x3da r CGA/MDA status reg (incompatible)
|
||||||
* w EGA/VGA feature ccontrol reg (not used by this board)
|
* w EGA/VGA feature ccontrol reg (not used by this board)
|
||||||
@ -1296,7 +1296,7 @@ inline int isa8_epc_mda_device::get_yres()
|
|||||||
|
|
||||||
MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
||||||
{
|
{
|
||||||
uint32_t *p = &bitmap.pix32(y);
|
uint32_t *p = &bitmap.pix32(y);
|
||||||
uint16_t chr_base = ra;
|
uint16_t chr_base = ra;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -1304,7 +1304,7 @@ MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
|||||||
if ( y < (16 * 0 + 0x20) && (m_framecnt & 0xff) == 0 )
|
if ( y < (16 * 0 + 0x20) && (m_framecnt & 0xff) == 0 )
|
||||||
{
|
{
|
||||||
LOGROW("%11.6f %s\n - y:%d chr_base:%d ra:%d ma:%d x_count:%d\n", machine().time().as_double(), FUNCNAME,
|
LOGROW("%11.6f %s\n - y:%d chr_base:%d ra:%d ma:%d x_count:%d\n", machine().time().as_double(), FUNCNAME,
|
||||||
y, y % 16, ra, ma, x_count);
|
y, y % 16, ra, ma, x_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Video Off handling
|
// Video Off handling
|
||||||
@ -1376,7 +1376,7 @@ MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle intense foreground
|
// Handle intense foreground
|
||||||
if ((attr & ATTR_INTEN) != 0 && fg == 2)
|
if ((attr & ATTR_INTEN) != 0 && fg == 2)
|
||||||
{
|
{
|
||||||
fg = 3;
|
fg = 3;
|
||||||
@ -1384,7 +1384,7 @@ MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
|||||||
|
|
||||||
// Handle intense background if blinking is disabled
|
// Handle intense background if blinking is disabled
|
||||||
if ((m_mode_control & MR1_BLINK) == 0 &&
|
if ((m_mode_control & MR1_BLINK) == 0 &&
|
||||||
(attr & ATTR_BLINK) != 0 && bg == 2)
|
(attr & ATTR_BLINK) != 0 && bg == 2)
|
||||||
{
|
{
|
||||||
bg = 3;
|
bg = 3;
|
||||||
}
|
}
|
||||||
@ -1400,12 +1400,12 @@ MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( (m_mode_control & MR1_BLINK) &&
|
if ( (m_mode_control & MR1_BLINK) &&
|
||||||
( attr & ATTR_BLINK ) && ( m_framecnt & 0x10 ) )
|
( attr & ATTR_BLINK ) && ( m_framecnt & 0x10 ) )
|
||||||
{
|
{
|
||||||
data = 0x00;
|
data = 0x00;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*p = (*m_pal)[( data & 0x80 ) ? fg : bg]; p++;
|
*p = (*m_pal)[( data & 0x80 ) ? fg : bg]; p++;
|
||||||
*p = (*m_pal)[( data & 0x40 ) ? fg : bg]; p++;
|
*p = (*m_pal)[( data & 0x40 ) ? fg : bg]; p++;
|
||||||
*p = (*m_pal)[( data & 0x20 ) ? fg : bg]; p++;
|
*p = (*m_pal)[( data & 0x20 ) ? fg : bg]; p++;
|
||||||
|
@ -149,7 +149,7 @@ public:
|
|||||||
|
|
||||||
virtual DECLARE_READ8_MEMBER(io_read) override;
|
virtual DECLARE_READ8_MEMBER(io_read) override;
|
||||||
virtual DECLARE_WRITE8_MEMBER(io_write) override;
|
virtual DECLARE_WRITE8_MEMBER(io_write) override;
|
||||||
|
|
||||||
/* Monitor */
|
/* Monitor */
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(monitor_changed);
|
DECLARE_INPUT_CHANGED_MEMBER(monitor_changed);
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@ Y1 : 12,000 MHz crystal 2 pin
|
|||||||
R1 : 15K ohm resistor +-5%
|
R1 : 15K ohm resistor +-5%
|
||||||
R2 : 390 ohm resistor +-5%
|
R2 : 390 ohm resistor +-5%
|
||||||
|
|
||||||
RP1 : 10K ohm Commoned (?) resistor network 2% SIP package (code used A103GA)
|
RP1 : 10K ohm Commoned (?) resistor network 2% SIP package (code used A103GA)
|
||||||
RP2 : 220 ohm Commoned (?) resistor network 2% SIP package (code used B221GA)
|
RP2 : 220 ohm Commoned (?) resistor network 2% SIP package (code used B221GA)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ void m6801_cpu_device::serial_transmit()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_m_tx != m_tx) // call callback only if line has changed
|
if (old_m_tx != m_tx) // call callback only if line has changed
|
||||||
{
|
{
|
||||||
m_out_sertx_func((m_tx == 1) ? ASSERT_LINE : CLEAR_LINE);
|
m_out_sertx_func((m_tx == 1) ? ASSERT_LINE : CLEAR_LINE);
|
||||||
}
|
}
|
||||||
|
@ -865,7 +865,7 @@ void m6805_mrom_device::internal_map(address_map &map)
|
|||||||
* 6805S3 0000-007f 0080-00ff 0100-0eff 0f00-0ff7 0ff8-0fff
|
* 6805S3 0000-007f 0080-00ff 0100-0eff 0f00-0ff7 0ff8-0fff
|
||||||
* 6805U2 0000-007f 0080-00ff 07c0-0f37 0f38-0ff7 0ff8-0fff
|
* 6805U2 0000-007f 0080-00ff 07c0-0f37 0f38-0ff7 0ff8-0fff
|
||||||
* 6805U3 0000-007f 0080-0f37 0f38-0ff7 0ff8-0fff
|
* 6805U3 0000-007f 0080-0f37 0f38-0ff7 0ff8-0fff
|
||||||
* 6805U1 0000-007f 0080-00ff 0800-0f7f 0f80-0ff7 0ff8-0fff
|
* 6805U1 0000-007f 0080-00ff 0800-0f7f 0f80-0ff7 0ff8-0fff
|
||||||
*
|
*
|
||||||
* This code assumes that dumps are captured contiguously from address 0 to
|
* This code assumes that dumps are captured contiguously from address 0 to
|
||||||
* the end of the address range, and are not split by range. Register, RAM
|
* the end of the address range, and are not split by range. Register, RAM
|
||||||
|
@ -2112,7 +2112,7 @@ void tms340x0_device::clip(uint16_t op)
|
|||||||
XY wend = WEND_XY();
|
XY wend = WEND_XY();
|
||||||
XY dydx = DYDX_XY();
|
XY dydx = DYDX_XY();
|
||||||
// logerror("020:clip PC=0x%08x: WSTART=(%dx%d) WEND=(%dx%d) DADDR=(%dx%d) DYDX=(%dx%d)\n",
|
// logerror("020:clip PC=0x%08x: WSTART=(%dx%d) WEND=(%dx%d) DADDR=(%dx%d) DYDX=(%dx%d)\n",
|
||||||
// m_pc, wstart.x, wstart.y, wend.x, wend.y, daddr.x, daddr.y, dydx.x, dydx.y);
|
// m_pc, wstart.x, wstart.y, wend.x, wend.y, daddr.x, daddr.y, dydx.x, dydx.y);
|
||||||
|
|
||||||
// Check whether array intersects with window...
|
// Check whether array intersects with window...
|
||||||
bool is_l = wstart.x < (daddr.x + dydx.x);
|
bool is_l = wstart.x < (daddr.x + dydx.x);
|
||||||
|
@ -413,7 +413,7 @@ WRITE16_MEMBER(spg110_video_device::dma_len_trigger_w)
|
|||||||
/*
|
/*
|
||||||
if (m_dma_unk_2061 != 0x0000)
|
if (m_dma_unk_2061 != 0x0000)
|
||||||
{
|
{
|
||||||
logerror("unknown DMA params are not zero!\n");
|
logerror("unknown DMA params are not zero!\n");
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -54,9 +54,9 @@
|
|||||||
|
|
||||||
#include "logmacro.h"
|
#include "logmacro.h"
|
||||||
|
|
||||||
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
|
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
|
||||||
#define LOGREGS(...) LOGMASKED(LOG_REGS, __VA_ARGS__)
|
#define LOGREGS(...) LOGMASKED(LOG_REGS, __VA_ARGS__)
|
||||||
#define LOGCONF(...) LOGMASKED(LOG_CONF, __VA_ARGS__)
|
#define LOGCONF(...) LOGMASKED(LOG_CONF, __VA_ARGS__)
|
||||||
|
|
||||||
DEFINE_DEVICE_TYPE(MC6845, mc6845_device, "mc6845", "Motorola MC6845 CRTC")
|
DEFINE_DEVICE_TYPE(MC6845, mc6845_device, "mc6845", "Motorola MC6845 CRTC")
|
||||||
DEFINE_DEVICE_TYPE(MC6845_1, mc6845_1_device, "mc6845_1", "Motorola MC6845-1 CRTC")
|
DEFINE_DEVICE_TYPE(MC6845_1, mc6845_1_device, "mc6845_1", "Motorola MC6845-1 CRTC")
|
||||||
@ -223,15 +223,15 @@ void mc6845_device::register_w(uint8_t data)
|
|||||||
|
|
||||||
/* Omits LOGSETUP logs of cursor registers as they tend to be spammy */
|
/* Omits LOGSETUP logs of cursor registers as they tend to be spammy */
|
||||||
if (m_register_address_latch < 0x0e &&
|
if (m_register_address_latch < 0x0e &&
|
||||||
m_register_address_latch != 0x0a &&
|
m_register_address_latch != 0x0a &&
|
||||||
m_register_address_latch != 0x0b) LOGSETUP(" * %02x <= %3u [%02x] %s\n", m_register_address_latch,
|
m_register_address_latch != 0x0b) LOGSETUP(" * %02x <= %3u [%02x] %s\n", m_register_address_latch,
|
||||||
data, data, std::array<char const *, 16>
|
data, data, std::array<char const *, 16>
|
||||||
{{ "R0 - Horizontal Total", "R1 - Horizontal Displayed", "R2 - Horizontal Sync Position",
|
{{ "R0 - Horizontal Total", "R1 - Horizontal Displayed", "R2 - Horizontal Sync Position",
|
||||||
"R3 - Sync Width", "R4 - Vertical Total", "R5 - Vertical Total Adjust",
|
"R3 - Sync Width", "R4 - Vertical Total", "R5 - Vertical Total Adjust",
|
||||||
"R6 - Vertical Displayed", "R7 - Vertical Sync Position", "R8 - Interlace & Skew",
|
"R6 - Vertical Displayed", "R7 - Vertical Sync Position", "R8 - Interlace & Skew",
|
||||||
"R9 - Maximum Raster Address", "R10 - Cursor Start Address", "R11 - Cursor End Address",
|
"R9 - Maximum Raster Address", "R10 - Cursor Start Address", "R11 - Cursor End Address",
|
||||||
"R12 - Start Address (H)", "R13 - Start Address (L)", "R14 - Cursor (H)",
|
"R12 - Start Address (H)", "R13 - Start Address (L)", "R14 - Cursor (H)",
|
||||||
"R15 - Cursor (L)" }}[(m_register_address_latch & 0x0f)]);
|
"R15 - Cursor (L)" }}[(m_register_address_latch & 0x0f)]);
|
||||||
|
|
||||||
switch (m_register_address_latch)
|
switch (m_register_address_latch)
|
||||||
{
|
{
|
||||||
|
@ -734,7 +734,7 @@ inline uint32_t snes_ppu_device::get_tile( uint8_t layer_idx, uint32_t hoffset,
|
|||||||
if (tilex & 0x20) offset += screenx;
|
if (tilex & 0x20) offset += screenx;
|
||||||
if (tiley & 0x20) offset += screeny;
|
if (tiley & 0x20) offset += screeny;
|
||||||
uint32_t addr = ((self.tilemap + offset) & 0x7fff) << 1;
|
uint32_t addr = ((self.tilemap + offset) & 0x7fff) << 1;
|
||||||
return m_vram[addr] | (m_vram[addr + 1] << 8);
|
return m_vram[addr] | (m_vram[addr + 1] << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********************************************
|
/*********************************************
|
||||||
@ -770,11 +770,11 @@ inline void snes_ppu_device::update_line( uint16_t curline, uint8_t layer_idx, u
|
|||||||
{
|
{
|
||||||
layer_t &layer = m_layer[layer_idx];
|
layer_t &layer = m_layer[layer_idx];
|
||||||
|
|
||||||
if (layer.tile_mode == SNES_COLOR_DEPTH_NONE) return;
|
if (layer.tile_mode == SNES_COLOR_DEPTH_NONE) return;
|
||||||
|
|
||||||
#if SNES_LAYER_DEBUG
|
#if SNES_LAYER_DEBUG
|
||||||
if (m_debug_options.bg_disabled[layer_idx])
|
if (m_debug_options.bg_disabled[layer_idx])
|
||||||
return;
|
return;
|
||||||
#endif /* SNES_LAYER_DEBUG */
|
#endif /* SNES_LAYER_DEBUG */
|
||||||
|
|
||||||
m_scanlines[SNES_MAINSCREEN].enable = layer.main_bg_enabled;
|
m_scanlines[SNES_MAINSCREEN].enable = layer.main_bg_enabled;
|
||||||
@ -819,10 +819,10 @@ inline void snes_ppu_device::update_line( uint16_t curline, uint8_t layer_idx, u
|
|||||||
uint32_t mosaic_priority = 0;
|
uint32_t mosaic_priority = 0;
|
||||||
uint32_t mosaic_color = 0;
|
uint32_t mosaic_color = 0;
|
||||||
|
|
||||||
int x = 0 - (hscroll & 7);
|
int x = 0 - (hscroll & 7);
|
||||||
while (x < width)
|
while (x < width)
|
||||||
{
|
{
|
||||||
uint32_t hoffset = x + hscroll;
|
uint32_t hoffset = x + hscroll;
|
||||||
uint32_t voffset = y + vscroll;
|
uint32_t voffset = y + vscroll;
|
||||||
if (opt_mode)
|
if (opt_mode)
|
||||||
{
|
{
|
||||||
@ -886,7 +886,7 @@ inline void snes_ppu_device::update_line( uint16_t curline, uint8_t layer_idx, u
|
|||||||
data |= (uint64_t)m_vram[address + 48] << 48;
|
data |= (uint64_t)m_vram[address + 48] << 48;
|
||||||
data |= (uint64_t)m_vram[address + 49] << 56;
|
data |= (uint64_t)m_vram[address + 49] << 56;
|
||||||
|
|
||||||
for (uint32_t tilex = 0; tilex < 8; tilex++, x++)
|
for (uint32_t tilex = 0; tilex < 8; tilex++, x++)
|
||||||
{
|
{
|
||||||
if (x & width) continue;
|
if (x & width) continue;
|
||||||
if (!layer.mosaic_enabled || --mosaic_counter == 0)
|
if (!layer.mosaic_enabled || --mosaic_counter == 0)
|
||||||
@ -925,7 +925,7 @@ inline void snes_ppu_device::update_line( uint16_t curline, uint8_t layer_idx, u
|
|||||||
|
|
||||||
if (!hires)
|
if (!hires)
|
||||||
{
|
{
|
||||||
if (layer.main_bg_enabled && mosaic_priority > m_scanlines[SNES_MAINSCREEN].priority[x])
|
if (layer.main_bg_enabled && mosaic_priority > m_scanlines[SNES_MAINSCREEN].priority[x])
|
||||||
{
|
{
|
||||||
if (!m_scanlines[SNES_MAINSCREEN].clip || m_clipmasks[layer_idx][x])
|
if (!m_scanlines[SNES_MAINSCREEN].clip || m_clipmasks[layer_idx][x])
|
||||||
{
|
{
|
||||||
@ -2303,8 +2303,8 @@ uint16_t snes_ppu_device::direct_color(uint16_t palette, uint16_t group)
|
|||||||
//group = -------- -----bgr
|
//group = -------- -----bgr
|
||||||
//output = 0BBb00GG Gg0RRRr0
|
//output = 0BBb00GG Gg0RRRr0
|
||||||
return (palette << 7 & 0x6000) + (group << 10 & 0x1000)
|
return (palette << 7 & 0x6000) + (group << 10 & 0x1000)
|
||||||
+ (palette << 4 & 0x0380) + (group << 5 & 0x0040)
|
+ (palette << 4 & 0x0380) + (group << 5 & 0x0040)
|
||||||
+ (palette << 2 & 0x001c) + (group << 1 & 0x0002);
|
+ (palette << 2 & 0x001c) + (group << 1 & 0x0002);
|
||||||
}
|
}
|
||||||
|
|
||||||
void snes_ppu_device::cache_background()
|
void snes_ppu_device::cache_background()
|
||||||
@ -3108,4 +3108,4 @@ uint8_t snes_ppu_device::dbg_video( uint16_t curline )
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* SNES_LAYER_DEBUG */
|
#endif /* SNES_LAYER_DEBUG */
|
||||||
|
@ -326,4 +326,4 @@ private:
|
|||||||
DECLARE_DEVICE_TYPE(SNES_PPU, snes_ppu_device)
|
DECLARE_DEVICE_TYPE(SNES_PPU, snes_ppu_device)
|
||||||
|
|
||||||
|
|
||||||
#endif // MAME_VIDEO_SNES_PPU_H
|
#endif // MAME_VIDEO_SNES_PPU_H
|
||||||
|
@ -218,7 +218,7 @@ struct render_texinfo
|
|||||||
u64 unique_id; // unique identifier to pass to osd
|
u64 unique_id; // unique identifier to pass to osd
|
||||||
u64 old_id; // previously allocated id, if applicable
|
u64 old_id; // previously allocated id, if applicable
|
||||||
const rgb_t * palette; // palette for PALETTE16 textures, bcg lookup table for RGB32/YUY16
|
const rgb_t * palette; // palette for PALETTE16 textures, bcg lookup table for RGB32/YUY16
|
||||||
u32 palette_length;
|
u32 palette_length;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -486,13 +486,13 @@ private:
|
|||||||
int m_width; // current width (HTOTAL)
|
int m_width; // current width (HTOTAL)
|
||||||
int m_height; // current height (VTOTAL)
|
int m_height; // current height (VTOTAL)
|
||||||
rectangle m_visarea; // current visible area (HBLANK end/start, VBLANK end/start)
|
rectangle m_visarea; // current visible area (HBLANK end/start, VBLANK end/start)
|
||||||
std::vector<int> m_scan_widths; // current width, in samples, of each individual scanline
|
std::vector<int> m_scan_widths; // current width, in samples, of each individual scanline
|
||||||
|
|
||||||
// textures and bitmaps
|
// textures and bitmaps
|
||||||
texture_format m_texformat; // texture format
|
texture_format m_texformat; // texture format
|
||||||
render_texture * m_texture[2]; // 2x textures for the screen bitmap
|
render_texture * m_texture[2]; // 2x textures for the screen bitmap
|
||||||
screen_bitmap m_bitmap[2]; // 2x bitmaps for rendering
|
screen_bitmap m_bitmap[2]; // 2x bitmaps for rendering
|
||||||
std::vector<bitmap_t *> m_scan_bitmaps[2]; // 2x bitmaps for each individual scanline
|
std::vector<bitmap_t *> m_scan_bitmaps[2]; // 2x bitmaps for each individual scanline
|
||||||
bitmap_ind8 m_priority; // priority bitmap
|
bitmap_ind8 m_priority; // priority bitmap
|
||||||
bitmap_ind64 m_burnin; // burn-in bitmap
|
bitmap_ind64 m_burnin; // burn-in bitmap
|
||||||
u8 m_curbitmap; // current bitmap index
|
u8 m_curbitmap; // current bitmap index
|
||||||
|
@ -166,7 +166,7 @@ video_manager::video_manager(running_machine &machine)
|
|||||||
// extract snap resolution if present
|
// extract snap resolution if present
|
||||||
if (sscanf(machine.options().snap_size(), "%dx%d", &m_snap_width, &m_snap_height) != 2)
|
if (sscanf(machine.options().snap_size(), "%dx%d", &m_snap_width, &m_snap_height) != 2)
|
||||||
m_snap_width = m_snap_height = 0;
|
m_snap_width = m_snap_height = 0;
|
||||||
|
|
||||||
// if no screens, create a periodic timer to drive updates
|
// if no screens, create a periodic timer to drive updates
|
||||||
if (no_screens)
|
if (no_screens)
|
||||||
{
|
{
|
||||||
|
@ -281,7 +281,7 @@
|
|||||||
NET_REGISTER_DEV(TTL_74279_DIP, name)
|
NET_REGISTER_DEV(TTL_74279_DIP, name)
|
||||||
|
|
||||||
#define DM9312(name, cA, cB, cC, cSTROBE, cD0, cD1, cD2, cD3, cD4, cD5, cD6, cD7) \
|
#define DM9312(name, cA, cB, cC, cSTROBE, cD0, cD1, cD2, cD3, cD4, cD5, cD6, cD7) \
|
||||||
NET_REGISTER_DEV(DM9312, name) \
|
NET_REGISTER_DEV(DM9312, name) \
|
||||||
NET_CONNECT(name, VCC, VCC) \
|
NET_CONNECT(name, VCC, VCC) \
|
||||||
NET_CONNECT(name, GND, GND) \
|
NET_CONNECT(name, GND, GND) \
|
||||||
NET_CONNECT(name, A, cA) \
|
NET_CONNECT(name, A, cA) \
|
||||||
|
@ -325,7 +325,7 @@ namespace netlist
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
plib::ppreprocessor::defines_map_type m_defines;
|
plib::ppreprocessor::defines_map_type m_defines;
|
||||||
plib::psource_collection_t<> m_includes;
|
plib::psource_collection_t<> m_includes;
|
||||||
|
|
||||||
setup_t &m_setup;
|
setup_t &m_setup;
|
||||||
log_type &m_log;
|
log_type &m_log;
|
||||||
|
@ -469,7 +469,7 @@ namespace plib
|
|||||||
for (index_type k = 0; k < base::size(); k++)
|
for (index_type k = 0; k < base::size(); k++)
|
||||||
m_ge_par[levGE[k]].push_back(k);
|
m_ge_par[levGE[k]].push_back(k);
|
||||||
//for (std::size_t k = 0; k < m_ge_par.size(); k++)
|
//for (std::size_t k = 0; k < m_ge_par.size(); k++)
|
||||||
// printf("%d %d\n", (int) k, (int) m_ge_par[k].size());
|
// printf("%d %d\n", (int) k, (int) m_ge_par[k].size());
|
||||||
}
|
}
|
||||||
// contains elimination rows below the diagonal
|
// contains elimination rows below the diagonal
|
||||||
std::vector<std::vector<index_type>> m_ge_par; // parallel execution support for Gauss
|
std::vector<std::vector<index_type>> m_ge_par; // parallel execution support for Gauss
|
||||||
@ -560,7 +560,7 @@ namespace plib
|
|||||||
const auto p_i_end = base::row_idx[i + 1];
|
const auto p_i_end = base::row_idx[i + 1];
|
||||||
// loop over all columns k left of diag in row i
|
// loop over all columns k left of diag in row i
|
||||||
//if (row_idx[i] < diag[i])
|
//if (row_idx[i] < diag[i])
|
||||||
// printf("occ %d\n", (int)i);
|
// printf("occ %d\n", (int)i);
|
||||||
for (auto i_k = base::row_idx[i]; i_k < base::diag[i]; i_k++)
|
for (auto i_k = base::row_idx[i]; i_k < base::diag[i]; i_k++)
|
||||||
{
|
{
|
||||||
const auto k(base::col_idx[i_k]);
|
const auto k(base::col_idx[i_k]);
|
||||||
|
@ -391,9 +391,9 @@ namespace plib {
|
|||||||
using mutex_type = pspin_mutex<TS>;
|
using mutex_type = pspin_mutex<TS>;
|
||||||
using lock_guard_type = std::lock_guard<mutex_type>;
|
using lock_guard_type = std::lock_guard<mutex_type>;
|
||||||
|
|
||||||
mutex_type m_lock;
|
mutex_type m_lock;
|
||||||
PALIGNAS_CACHELINE()
|
PALIGNAS_CACHELINE()
|
||||||
T * m_end;
|
T * m_end;
|
||||||
aligned_vector<T> m_list;
|
aligned_vector<T> m_list;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -327,8 +327,8 @@ void ppreprocessor::error(const pstring &err)
|
|||||||
#define CHECKTOK2(p_op, p_prio) \
|
#define CHECKTOK2(p_op, p_prio) \
|
||||||
else if (tok == # p_op) \
|
else if (tok == # p_op) \
|
||||||
{ \
|
{ \
|
||||||
if (!has_val) \
|
if (!has_val) \
|
||||||
{ error("parsing error!"); return 1;} \
|
{ error("parsing error!"); return 1;} \
|
||||||
if (prio < (p_prio)) \
|
if (prio < (p_prio)) \
|
||||||
return val; \
|
return val; \
|
||||||
start++; \
|
start++; \
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
namespace plib
|
namespace plib
|
||||||
{
|
{
|
||||||
template<class T>
|
template<class T>
|
||||||
struct string_info
|
struct string_info
|
||||||
|
@ -76,7 +76,7 @@ private:
|
|||||||
struct riff_chunk_t
|
struct riff_chunk_t
|
||||||
{
|
{
|
||||||
std::array<uint8_t, 4> group_id = {{'R','I','F','F'}};
|
std::array<uint8_t, 4> group_id = {{'R','I','F','F'}};
|
||||||
uint32_t filelen = 0;
|
uint32_t filelen = 0;
|
||||||
std::array<uint8_t, 4> rifftype = {{'W','A','V','E'}};
|
std::array<uint8_t, 4> rifftype = {{'W','A','V','E'}};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
* inputs. The arrangement of components in the schematic however indicate that
|
* inputs. The arrangement of components in the schematic however indicate that
|
||||||
* this is not the case and indeed a connection exists. This results in sounds
|
* this is not the case and indeed a connection exists. This results in sounds
|
||||||
* at output XU1.14 to contain more detail.
|
* at output XU1.14 to contain more detail.
|
||||||
*
|
*
|
||||||
* You can observe sounds at XU1.14 by doing
|
* You can observe sounds at XU1.14 by doing
|
||||||
*
|
*
|
||||||
* NL_LOGS=XU1.14 ./mame64 kidniki
|
* NL_LOGS=XU1.14 ./mame64 kidniki
|
||||||
@ -60,7 +60,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define J4 (1)
|
#define J4 (1)
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------------
|
/* ----------------------------------------------------------------------------
|
||||||
* Library section header START
|
* Library section header START
|
||||||
|
@ -24,16 +24,16 @@
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Super Champion Baseball "ball speed pitch" protection;
|
- Super Champion Baseball "ball speed pitch" protection;
|
||||||
- II & V board: bit 15 of palette RAM isn't hooked up, according to Sky Adventure
|
- II & V board: bit 15 of palette RAM isn't hooked up, according to Sky Adventure
|
||||||
service mode enables "bright", it is actually same as NeoGeo device;
|
service mode enables "bright", it is actually same as NeoGeo device;
|
||||||
- II & V board: Fix sound CPU crashes properly (nested NMIs)
|
- II & V board: Fix sound CPU crashes properly (nested NMIs)
|
||||||
- Sky Soldiers: BGM Fade out before boss battle isn't implemented
|
- Sky Soldiers: BGM Fade out before boss battle isn't implemented
|
||||||
- Sky Adventure, probably others: on a real PCB reference BGM stutters when using
|
- Sky Adventure, probably others: on a real PCB reference BGM stutters when using
|
||||||
30 Hz autofire (not enough sound resources?)
|
30 Hz autofire (not enough sound resources?)
|
||||||
- Sky Adventure, probably others: sprite drawing is off-sync, cfr. notes in video file;
|
- Sky Adventure, probably others: sprite drawing is off-sync, cfr. notes in video file;
|
||||||
- Gold Medalist: attract mode has missing finger on button 1, may be btanb;
|
- Gold Medalist: attract mode has missing finger on button 1, may be btanb;
|
||||||
- Gold Medalist: incorrect blank effect on shooting pistol for dash events (cfr. alpha68k_palette_device);
|
- Gold Medalist: incorrect blank effect on shooting pistol for dash events (cfr. alpha68k_palette_device);
|
||||||
- Super Champion Baseball: enables opacity bit on fix layer, those are transparent on SNK Arcade Classics 0
|
- Super Champion Baseball: enables opacity bit on fix layer, those are transparent on SNK Arcade Classics 0
|
||||||
but actually opaque on a reference shot, sounds like a btanb;
|
but actually opaque on a reference shot, sounds like a btanb;
|
||||||
- Fix layer tilemap should be a common device between this, snk68.cpp and other Alpha/SNK-based games;
|
- Fix layer tilemap should be a common device between this, snk68.cpp and other Alpha/SNK-based games;
|
||||||
|
|
||||||
@ -509,7 +509,7 @@ void alpha68k_II_state::alpha68k_II_map(address_map &map)
|
|||||||
map(0x0e0000, 0x0e0001).nopr(); /* IRQ ack? */
|
map(0x0e0000, 0x0e0001).nopr(); /* IRQ ack? */
|
||||||
map(0x0e8000, 0x0e8001).nopr(); /* watchdog? */
|
map(0x0e8000, 0x0e8001).nopr(); /* watchdog? */
|
||||||
map(0x100000, 0x100fff).ram().w(FUNC(alpha68k_II_state::videoram_w)).share("videoram");
|
map(0x100000, 0x100fff).ram().w(FUNC(alpha68k_II_state::videoram_w)).share("videoram");
|
||||||
map(0x200000, 0x207fff).rw(m_sprites, FUNC(snk68_spr_device::spriteram_r), FUNC(snk68_spr_device::spriteram_w)).share("spriteram");
|
map(0x200000, 0x207fff).rw(m_sprites, FUNC(snk68_spr_device::spriteram_r), FUNC(snk68_spr_device::spriteram_w)).share("spriteram");
|
||||||
map(0x300000, 0x3001ff).rw(FUNC(alpha68k_II_state::alpha_II_trigger_r), FUNC(alpha68k_II_state::alpha_microcontroller_w));
|
map(0x300000, 0x3001ff).rw(FUNC(alpha68k_II_state::alpha_II_trigger_r), FUNC(alpha68k_II_state::alpha_microcontroller_w));
|
||||||
map(0x400000, 0x400fff).rw(m_palette, FUNC(alpha68k_palette_device::read), FUNC(alpha68k_palette_device::write));
|
map(0x400000, 0x400fff).rw(m_palette, FUNC(alpha68k_palette_device::read), FUNC(alpha68k_palette_device::write));
|
||||||
map(0x800000, 0x83ffff).rom().region("maincpu", 0x40000);
|
map(0x800000, 0x83ffff).rom().region("maincpu", 0x40000);
|
||||||
@ -528,7 +528,7 @@ void alpha68k_III_state::alpha68k_V_map(address_map &map)
|
|||||||
map(0x0e0000, 0x0e0001).nopr(); /* IRQ ack? */
|
map(0x0e0000, 0x0e0001).nopr(); /* IRQ ack? */
|
||||||
map(0x0e8000, 0x0e8001).nopr(); /* watchdog? */
|
map(0x0e8000, 0x0e8001).nopr(); /* watchdog? */
|
||||||
map(0x100000, 0x100fff).ram().w(FUNC(alpha68k_III_state::videoram_w)).share("videoram");
|
map(0x100000, 0x100fff).ram().w(FUNC(alpha68k_III_state::videoram_w)).share("videoram");
|
||||||
map(0x200000, 0x207fff).rw(m_sprites, FUNC(snk68_spr_device::spriteram_r), FUNC(snk68_spr_device::spriteram_w)).share("spriteram");
|
map(0x200000, 0x207fff).rw(m_sprites, FUNC(snk68_spr_device::spriteram_r), FUNC(snk68_spr_device::spriteram_w)).share("spriteram");
|
||||||
map(0x300000, 0x303fff).r(FUNC(alpha68k_III_state::alpha_V_trigger_r));
|
map(0x300000, 0x303fff).r(FUNC(alpha68k_III_state::alpha_V_trigger_r));
|
||||||
map(0x300000, 0x3001ff).w(FUNC(alpha68k_III_state::alpha_microcontroller_w));
|
map(0x300000, 0x3001ff).w(FUNC(alpha68k_III_state::alpha_microcontroller_w));
|
||||||
map(0x303e00, 0x303fff).w(FUNC(alpha68k_III_state::alpha_microcontroller_w)); /* Gang Wars mirror */
|
map(0x303e00, 0x303fff).w(FUNC(alpha68k_III_state::alpha_microcontroller_w)); /* Gang Wars mirror */
|
||||||
@ -1243,7 +1243,7 @@ void alpha68k_II_state::base_config(machine_config &config)
|
|||||||
LS259(config, m_outlatch); // 14A
|
LS259(config, m_outlatch); // 14A
|
||||||
m_outlatch->q_out_cb<2>().set(FUNC(alpha68k_II_state::video_control2_w));
|
m_outlatch->q_out_cb<2>().set(FUNC(alpha68k_II_state::video_control2_w));
|
||||||
m_outlatch->q_out_cb<3>().set(FUNC(alpha68k_II_state::video_control3_w));
|
m_outlatch->q_out_cb<3>().set(FUNC(alpha68k_II_state::video_control3_w));
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "speaker").front_center();
|
SPEAKER(config, "speaker").front_center();
|
||||||
|
|
||||||
@ -1269,7 +1269,7 @@ void alpha68k_II_state::video_config(machine_config &config, u16 num_pens)
|
|||||||
set_screen_raw_params(config);
|
set_screen_raw_params(config);
|
||||||
m_screen->set_screen_update(FUNC(alpha68k_II_state::screen_update));
|
m_screen->set_screen_update(FUNC(alpha68k_II_state::screen_update));
|
||||||
m_screen->set_palette(m_palette);
|
m_screen->set_palette(m_palette);
|
||||||
|
|
||||||
// TODO: should really be same as snk68.cpp
|
// TODO: should really be same as snk68.cpp
|
||||||
MCFG_VIDEO_START_OVERRIDE(alpha68k_II_state,alpha68k)
|
MCFG_VIDEO_START_OVERRIDE(alpha68k_II_state,alpha68k)
|
||||||
|
|
||||||
@ -1287,8 +1287,8 @@ void alpha68k_II_state::video_config(machine_config &config, u16 num_pens)
|
|||||||
void alpha68k_II_state::alpha68k_II(machine_config &config)
|
void alpha68k_II_state::alpha68k_II(machine_config &config)
|
||||||
{
|
{
|
||||||
base_config(config);
|
base_config(config);
|
||||||
m_outlatch->parallel_out_cb().set(FUNC(alpha68k_II_state::video_bank_w)).rshift(4).mask(0x07);
|
m_outlatch->parallel_out_cb().set(FUNC(alpha68k_II_state::video_bank_w)).rshift(4).mask(0x07);
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
M68000(config, m_maincpu, 8000000); // TODO: verify me
|
M68000(config, m_maincpu, 8000000); // TODO: verify me
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &alpha68k_II_state::alpha68k_II_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &alpha68k_II_state::alpha68k_II_map);
|
||||||
@ -1673,7 +1673,7 @@ ROM_START( goldmedla )
|
|||||||
ROM_LOAD32_BYTE( "goldchr1.c44", 0x000002, 0x80000, CRC(55db41cd) SHA1(15fa192ea2b829dc6dc0cb88fc2c5e5a30af6c91) )
|
ROM_LOAD32_BYTE( "goldchr1.c44", 0x000002, 0x80000, CRC(55db41cd) SHA1(15fa192ea2b829dc6dc0cb88fc2c5e5a30af6c91) )
|
||||||
ROM_LOAD32_BYTE( "goldchr0.c43", 0x000003, 0x80000, CRC(76572c3f) SHA1(e7a1abf4240510810a0f9663295c0fbab9e55a63) )
|
ROM_LOAD32_BYTE( "goldchr0.c43", 0x000003, 0x80000, CRC(76572c3f) SHA1(e7a1abf4240510810a0f9663295c0fbab9e55a63) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "user1", 0 ) // TODO: legacy gfx roms, are these even on this specific board?
|
ROM_REGION( 0x10000, "user1", 0 ) // TODO: legacy gfx roms, are these even on this specific board?
|
||||||
ROM_LOAD16_BYTE( "gm.6", 0x00001, 0x08000, BAD_DUMP CRC(56020b13) SHA1(17e176a9c82ed0d6cb5c4014034ce4e16b8ef4fb) )
|
ROM_LOAD16_BYTE( "gm.6", 0x00001, 0x08000, BAD_DUMP CRC(56020b13) SHA1(17e176a9c82ed0d6cb5c4014034ce4e16b8ef4fb) )
|
||||||
ROM_LOAD16_BYTE( "gm.5", 0x00000, 0x08000, BAD_DUMP CRC(667f33f1) SHA1(6d05603b49927f09c9bb34e787b003eceaaf7062) )
|
ROM_LOAD16_BYTE( "gm.5", 0x00000, 0x08000, BAD_DUMP CRC(667f33f1) SHA1(6d05603b49927f09c9bb34e787b003eceaaf7062) )
|
||||||
ROM_END
|
ROM_END
|
||||||
@ -1704,7 +1704,7 @@ ROM_START( goldmedlb )
|
|||||||
ROM_LOAD32_BYTE( "goldchr1.c44", 0x000002, 0x80000, CRC(55db41cd) SHA1(15fa192ea2b829dc6dc0cb88fc2c5e5a30af6c91) )
|
ROM_LOAD32_BYTE( "goldchr1.c44", 0x000002, 0x80000, CRC(55db41cd) SHA1(15fa192ea2b829dc6dc0cb88fc2c5e5a30af6c91) )
|
||||||
ROM_LOAD32_BYTE( "goldchr0.c43", 0x000003, 0x80000, CRC(76572c3f) SHA1(e7a1abf4240510810a0f9663295c0fbab9e55a63) )
|
ROM_LOAD32_BYTE( "goldchr0.c43", 0x000003, 0x80000, CRC(76572c3f) SHA1(e7a1abf4240510810a0f9663295c0fbab9e55a63) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "user1", 0 ) // TODO: legacy gfx roms, are these even on this specific board?
|
ROM_REGION( 0x10000, "user1", 0 ) // TODO: legacy gfx roms, are these even on this specific board?
|
||||||
ROM_LOAD16_BYTE( "gm.6", 0x00001, 0x08000, BAD_DUMP CRC(56020b13) SHA1(17e176a9c82ed0d6cb5c4014034ce4e16b8ef4fb) )
|
ROM_LOAD16_BYTE( "gm.6", 0x00001, 0x08000, BAD_DUMP CRC(56020b13) SHA1(17e176a9c82ed0d6cb5c4014034ce4e16b8ef4fb) )
|
||||||
ROM_LOAD16_BYTE( "gm.5", 0x00000, 0x08000, BAD_DUMP CRC(667f33f1) SHA1(6d05603b49927f09c9bb34e787b003eceaaf7062) )
|
ROM_LOAD16_BYTE( "gm.5", 0x00000, 0x08000, BAD_DUMP CRC(667f33f1) SHA1(6d05603b49927f09c9bb34e787b003eceaaf7062) )
|
||||||
// TODO: recover this!
|
// TODO: recover this!
|
||||||
@ -2140,7 +2140,7 @@ GAME( 1988, goldmedl, 0, goldmedal, goldmedl, goldmedal_II_state, ini
|
|||||||
|
|
||||||
// Alpha III HW
|
// Alpha III HW
|
||||||
GAME( 1988, goldmedla, goldmedl, goldmedal, goldmedl, goldmedal_III_state, init_goldmedla, ROT0, "SNK", "Gold Medalist (set 2, Alpha68k III PCB)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1988, goldmedla, goldmedl, goldmedal, goldmedl, goldmedal_III_state, init_goldmedla, ROT0, "SNK", "Gold Medalist (set 2, Alpha68k III PCB)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1988, goldmedlb, goldmedl, goldmedal, goldmedl, goldmedal_III_state, init_goldmedla, ROT0, "bootleg", "Gold Medalist (bootleg, Alpha68k III PCB)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1988, goldmedlb, goldmedl, goldmedal, goldmedl, goldmedal_III_state, init_goldmedla, ROT0, "bootleg", "Gold Medalist (bootleg, Alpha68k III PCB)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
|
||||||
// Alpha V HW
|
// Alpha V HW
|
||||||
GAME( 1989, skyadvnt, 0, skyadventure, skyadvnt, skyadventure_state, init_skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (World)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1989, skyadvnt, 0, skyadventure, skyadvnt, skyadventure_state, init_skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (World)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
SNK/Alpha 68000 I board based games
|
SNK/Alpha 68000 I board based games
|
||||||
|
|
||||||
derived from alpha68k.cpp
|
|
||||||
|
|
||||||
TODO:
|
derived from alpha68k.cpp
|
||||||
- Both POST screens are X offset by a large margin,
|
|
||||||
i.e. Paddle Mania draws a middle line there, which isn't shown on real HW.
|
TODO:
|
||||||
- Paddle Mania: ranking screen is unreadable, maybe
|
- Both POST screens are X offset by a large margin,
|
||||||
|
i.e. Paddle Mania draws a middle line there, which isn't shown on real HW.
|
||||||
|
- Paddle Mania: ranking screen is unreadable, maybe
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ u16 thenextspace_state::sound_cpu_r(){ return 1; }
|
|||||||
* Address Maps
|
* Address Maps
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void paddlemania_state::main_map(address_map &map)
|
void paddlemania_state::main_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x000000, 0x03ffff).rom(); // main program
|
map(0x000000, 0x03ffff).rom(); // main program
|
||||||
@ -344,12 +344,12 @@ void alpha68k_I_state::base_config(machine_config &config)
|
|||||||
{
|
{
|
||||||
MCFG_MACHINE_START_OVERRIDE(alpha68k_I_state,common)
|
MCFG_MACHINE_START_OVERRIDE(alpha68k_I_state,common)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(alpha68k_I_state,common)
|
MCFG_MACHINE_RESET_OVERRIDE(alpha68k_I_state,common)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "speaker").front_center();
|
SPEAKER(config, "speaker").front_center();
|
||||||
|
|
||||||
GENERIC_LATCH_8(config, m_soundlatch);
|
GENERIC_LATCH_8(config, m_soundlatch);
|
||||||
|
|
||||||
ym3812_device &ymsnd(YM3812(config, "ymsnd", 4000000));
|
ym3812_device &ymsnd(YM3812(config, "ymsnd", 4000000));
|
||||||
ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
|
ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
|
||||||
ymsnd.add_route(ALL_OUTPUTS, "speaker", 1.0);
|
ymsnd.add_route(ALL_OUTPUTS, "speaker", 1.0);
|
||||||
@ -435,7 +435,7 @@ ROM_START( paddlema )
|
|||||||
ROM_LOAD( "padlem.a", 0x0000, 0x0100, CRC(cae6bcd6) SHA1(da3b3bdcdc7fefae80b0ef8365565bbe5ff0d5d2) ) /* R */
|
ROM_LOAD( "padlem.a", 0x0000, 0x0100, CRC(cae6bcd6) SHA1(da3b3bdcdc7fefae80b0ef8365565bbe5ff0d5d2) ) /* R */
|
||||||
ROM_LOAD( "padlem.b", 0x0100, 0x0100, CRC(b6df8dcb) SHA1(318ca20fab6608aa2956ec3bb82e8ae77c250d51) ) /* G */
|
ROM_LOAD( "padlem.b", 0x0100, 0x0100, CRC(b6df8dcb) SHA1(318ca20fab6608aa2956ec3bb82e8ae77c250d51) ) /* G */
|
||||||
ROM_LOAD( "padlem.c", 0x0200, 0x0100, CRC(39ca9b86) SHA1(8b8d7aae85830e69366e86f8b6cccfb8140cd526) ) /* B */
|
ROM_LOAD( "padlem.c", 0x0200, 0x0100, CRC(39ca9b86) SHA1(8b8d7aae85830e69366e86f8b6cccfb8140cd526) ) /* B */
|
||||||
|
|
||||||
ROM_REGION( 0x800, "clut_proms", 0 )
|
ROM_REGION( 0x800, "clut_proms", 0 )
|
||||||
ROM_LOAD( "padlem.17j", 0x0000, 0x0400, CRC(86170069) SHA1(8e2ad7afa50453e9a2dc89386ce02d10e7c89fbc) ) /* Clut low nibble */
|
ROM_LOAD( "padlem.17j", 0x0000, 0x0400, CRC(86170069) SHA1(8e2ad7afa50453e9a2dc89386ce02d10e7c89fbc) ) /* Clut low nibble */
|
||||||
ROM_LOAD( "padlem.16j", 0x0400, 0x0400, CRC(8da58e2c) SHA1(6012715a2d3ba4cf8bc5a8250e7f28cb59913092) ) /* Clut high nibble */
|
ROM_LOAD( "padlem.16j", 0x0400, 0x0400, CRC(8da58e2c) SHA1(6012715a2d3ba4cf8bc5a8250e7f28cb59913092) ) /* Clut high nibble */
|
||||||
|
@ -3,14 +3,14 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
SNK/Alpha 68000 N based board games
|
SNK/Alpha 68000 N based board games
|
||||||
|
|
||||||
derived from alpha68k.cpp
|
|
||||||
|
|
||||||
TODO:
|
derived from alpha68k.cpp
|
||||||
- Super Stingray MCU irq controls timer speed. The MCU has been
|
|
||||||
|
TODO:
|
||||||
|
- Super Stingray MCU irq controls timer speed. The MCU has been
|
||||||
hooked up but the clock is almost certainly wrong.
|
hooked up but the clock is almost certainly wrong.
|
||||||
- GFX region can eventually overflow in jongbou, and in general all three
|
- GFX region can eventually overflow in jongbou, and in general all three
|
||||||
games can probably be run with the same gfx_layout structs
|
games can probably be run with the same gfx_layout structs
|
||||||
|
|
||||||
============================================================================
|
============================================================================
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ void alpha68k_N_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipr
|
|||||||
int mx = m_spriteram[offs + c];
|
int mx = m_spriteram[offs + c];
|
||||||
int my = -(mx >> 8) & 0xff;
|
int my = -(mx >> 8) & 0xff;
|
||||||
mx &= 0xff;
|
mx &= 0xff;
|
||||||
|
|
||||||
// TODO: not convinced by this
|
// TODO: not convinced by this
|
||||||
if (m_is_super_stingray && mx > 0xf8)
|
if (m_is_super_stingray && mx > 0xf8)
|
||||||
mx -= 0x100;
|
mx -= 0x100;
|
||||||
@ -101,7 +101,7 @@ void alpha68k_N_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipr
|
|||||||
{
|
{
|
||||||
u8 color, bank;
|
u8 color, bank;
|
||||||
u16 tile;
|
u16 tile;
|
||||||
|
|
||||||
bank = data >> 10 & 3;
|
bank = data >> 10 & 3;
|
||||||
tile = data & 0x3ff;
|
tile = data & 0x3ff;
|
||||||
if (m_is_super_stingray == true)
|
if (m_is_super_stingray == true)
|
||||||
@ -112,7 +112,7 @@ void alpha68k_N_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipr
|
|||||||
bank += ((data >> m_tile_bankshift) & 4);
|
bank += ((data >> m_tile_bankshift) & 4);
|
||||||
tile += (data >> 3 & 0x400);
|
tile += (data >> 3 & 0x400);
|
||||||
}
|
}
|
||||||
|
|
||||||
// can't be 0xff in super stingray
|
// can't be 0xff in super stingray
|
||||||
if (color != 0xff)
|
if (color != 0xff)
|
||||||
{
|
{
|
||||||
@ -670,7 +670,7 @@ void alpha68k_N_state::base_config(machine_config &config)
|
|||||||
{
|
{
|
||||||
MCFG_MACHINE_START_OVERRIDE(alpha68k_N_state,common)
|
MCFG_MACHINE_START_OVERRIDE(alpha68k_N_state,common)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(alpha68k_N_state,common)
|
MCFG_MACHINE_RESET_OVERRIDE(alpha68k_N_state,common)
|
||||||
|
|
||||||
GENERIC_LATCH_8(config, m_soundlatch);
|
GENERIC_LATCH_8(config, m_soundlatch);
|
||||||
|
|
||||||
SPEAKER(config, "speaker").front_center();
|
SPEAKER(config, "speaker").front_center();
|
||||||
@ -683,7 +683,7 @@ void alpha68k_N_state::video_config(machine_config &config, u8 tile_transchar, u
|
|||||||
set_screen_raw_params(config);
|
set_screen_raw_params(config);
|
||||||
m_screen->set_screen_update(FUNC(alpha68k_N_state::screen_update));
|
m_screen->set_screen_update(FUNC(alpha68k_N_state::screen_update));
|
||||||
m_screen->set_palette(m_palette);
|
m_screen->set_palette(m_palette);
|
||||||
|
|
||||||
PALETTE(config, m_palette, FUNC(alpha68k_N_state::palette_init), 256 + 1, 256);
|
PALETTE(config, m_palette, FUNC(alpha68k_N_state::palette_init), 256 + 1, 256);
|
||||||
|
|
||||||
m_tile_transchar = tile_transchar;
|
m_tile_transchar = tile_transchar;
|
||||||
@ -947,7 +947,7 @@ ROM_START( jongbou )
|
|||||||
ROM_REGION( 0x200, "clut_proms", 0 )
|
ROM_REGION( 0x200, "clut_proms", 0 )
|
||||||
ROM_LOAD( "h.l9", 0x0100, 0x0100, CRC(e6e93b0b) SHA1(f64ff63699451910982a1a44c94ccd2c18fd389e) )
|
ROM_LOAD( "h.l9", 0x0100, 0x0100, CRC(e6e93b0b) SHA1(f64ff63699451910982a1a44c94ccd2c18fd389e) )
|
||||||
ROM_LOAD( "l.l10", 0x0000, 0x0100, CRC(51676dac) SHA1(685d14f448501a63cc9fa063f65842caddad8f39) )
|
ROM_LOAD( "l.l10", 0x0000, 0x0100, CRC(51676dac) SHA1(685d14f448501a63cc9fa063f65842caddad8f39) )
|
||||||
|
|
||||||
ROM_REGION( 0x2000, "color_proms", 0 )
|
ROM_REGION( 0x2000, "color_proms", 0 )
|
||||||
ROM_LOAD( "p3.i15", 0x0000, 0x2000, CRC(8c09cd2a) SHA1(317764e0f5af29e78fd764bdf28579bf6be5630f) )
|
ROM_LOAD( "p3.i15", 0x0000, 0x2000, CRC(8c09cd2a) SHA1(317764e0f5af29e78fd764bdf28579bf6be5630f) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
@ -48,7 +48,7 @@ TODO:
|
|||||||
|
|
||||||
#define LOG_SERVO (1 << 0)
|
#define LOG_SERVO (1 << 0)
|
||||||
#define LOG_SLAVE (1 << 1)
|
#define LOG_SLAVE (1 << 1)
|
||||||
#define LOG_ALL (LOG_SERVO | LOG_SLAVE)
|
#define LOG_ALL (LOG_SERVO | LOG_SLAVE)
|
||||||
|
|
||||||
#define VERBOSE (LOG_ALL)
|
#define VERBOSE (LOG_ALL)
|
||||||
#include "logmacro.h"
|
#include "logmacro.h"
|
||||||
@ -112,7 +112,7 @@ void cdi_state::cdi910_mem(address_map &map)
|
|||||||
// map(0x00318000, 0x0031ffff).noprw();
|
// map(0x00318000, 0x0031ffff).noprw();
|
||||||
map(0x00320000, 0x00323fff).rw("mk48t08", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)).umask16(0xff00); /* nvram (only low bytes used) */
|
map(0x00320000, 0x00323fff).rw("mk48t08", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)).umask16(0xff00); /* nvram (only low bytes used) */
|
||||||
map(0x004fffe0, 0x004fffff).rw(m_mcd212, FUNC(mcd212_device::regs_r), FUNC(mcd212_device::regs_w));
|
map(0x004fffe0, 0x004fffff).rw(m_mcd212, FUNC(mcd212_device::regs_r), FUNC(mcd212_device::regs_w));
|
||||||
// map(0x00500000, 0x0057ffff).ram();
|
// map(0x00500000, 0x0057ffff).ram();
|
||||||
map(0x00500000, 0x00ffffff).noprw();
|
map(0x00500000, 0x00ffffff).noprw();
|
||||||
// map(0x00e00000, 0x00efffff).ram(); // DVC
|
// map(0x00e00000, 0x00efffff).ram(); // DVC
|
||||||
}
|
}
|
||||||
|
@ -155,10 +155,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(phantom_state::motors_timer)
|
|||||||
if (m_motors_ctrl & 0x0c) m_hmotor_sensor0_ff = true;
|
if (m_motors_ctrl & 0x0c) m_hmotor_sensor0_ff = true;
|
||||||
if (m_motors_ctrl & 0x04) m_hmotor_sensor1_ff = true;
|
if (m_motors_ctrl & 0x04) m_hmotor_sensor1_ff = true;
|
||||||
|
|
||||||
if ((m_motors_ctrl & 0x01) && m_vmotor_pos > 0x00) m_vmotor_pos--;
|
if ((m_motors_ctrl & 0x01) && m_vmotor_pos > 0x00) m_vmotor_pos--;
|
||||||
if ((m_motors_ctrl & 0x02) && m_vmotor_pos < 0xff) m_vmotor_pos++;
|
if ((m_motors_ctrl & 0x02) && m_vmotor_pos < 0xff) m_vmotor_pos++;
|
||||||
if ((m_motors_ctrl & 0x04) && m_hmotor_pos > 0x00) m_hmotor_pos--;
|
if ((m_motors_ctrl & 0x04) && m_hmotor_pos > 0x00) m_hmotor_pos--;
|
||||||
if ((m_motors_ctrl & 0x08) && m_hmotor_pos < 0xff) m_hmotor_pos++;
|
if ((m_motors_ctrl & 0x08) && m_hmotor_pos < 0xff) m_hmotor_pos++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void phantom_state::update_pieces_position(int state)
|
void phantom_state::update_pieces_position(int state)
|
||||||
|
@ -243,7 +243,7 @@ void firetrap_state::mcu_p3_w(uint8_t data)
|
|||||||
if (BIT(m_mcu_p3, 1) == 1 && BIT(data, 1) == 0)
|
if (BIT(m_mcu_p3, 1) == 1 && BIT(data, 1) == 0)
|
||||||
m_mcu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE);
|
m_mcu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE);
|
||||||
|
|
||||||
// if (BIT(m_mcu_p3, 4) == 1 && BIT(data, 4) == 0)
|
// if (BIT(m_mcu_p3, 4) == 1 && BIT(data, 4) == 0)
|
||||||
|
|
||||||
m_mcu_p3 = data;
|
m_mcu_p3 = data;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Regular models:
|
Regular models:
|
||||||
|
|
||||||
@ -2980,7 +2980,7 @@ void towns_state::townssj(machine_config &config)
|
|||||||
m_maincpu->set_addrmap(AS_IO, &towns_state::towns2_io);
|
m_maincpu->set_addrmap(AS_IO, &towns_state::towns2_io);
|
||||||
m_maincpu->set_vblank_int("screen", FUNC(towns_state::towns_vsync_irq));
|
m_maincpu->set_vblank_int("screen", FUNC(towns_state::towns_vsync_irq));
|
||||||
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
||||||
|
|
||||||
scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
|
scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
|
||||||
scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0));
|
scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0));
|
||||||
scsi.set_slot_device(2, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_1));
|
scsi.set_slot_device(2, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_1));
|
||||||
@ -3045,7 +3045,7 @@ void marty_state::marty(machine_config &config)
|
|||||||
m_maincpu->set_addrmap(AS_IO, &marty_state::towns16_io);
|
m_maincpu->set_addrmap(AS_IO, &marty_state::towns16_io);
|
||||||
m_maincpu->set_vblank_int("screen", FUNC(towns_state::towns_vsync_irq));
|
m_maincpu->set_vblank_int("screen", FUNC(towns_state::towns_vsync_irq));
|
||||||
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
||||||
|
|
||||||
FLOPPY_CONNECTOR(config.replace(), m_flop[1], towns_floppies, nullptr, towns_state::floppy_formats);
|
FLOPPY_CONNECTOR(config.replace(), m_flop[1], towns_floppies, nullptr, towns_state::floppy_formats);
|
||||||
|
|
||||||
// 2 MB onboard, expandable to 4 MB with a Marty-only expansion card
|
// 2 MB onboard, expandable to 4 MB with a Marty-only expansion card
|
||||||
@ -3056,9 +3056,9 @@ void marty_state::marty(machine_config &config)
|
|||||||
|
|
||||||
/* ROM definitions */
|
/* ROM definitions */
|
||||||
|
|
||||||
/* These ROMs were dumped from an FM Towns Model 2. Model 1 is assumed to use the same ROMs, since they were
|
/* These ROMs were dumped from an FM Towns Model 2. Model 1 is assumed to use the same ROMs, since they were
|
||||||
released at the same time, and the only differences are the amount of RAM and floppy drives.
|
released at the same time, and the only differences are the amount of RAM and floppy drives.
|
||||||
|
|
||||||
The ROM is physically contained in three 4 Mbit chips: two MB834200-20 (DIP40) and one MB834200-25 (QFP44) */
|
The ROM is physically contained in three 4 Mbit chips: two MB834200-20 (DIP40) and one MB834200-25 (QFP44) */
|
||||||
ROM_START( fmtowns )
|
ROM_START( fmtowns )
|
||||||
ROM_REGION32_LE( 0x280000, "user", 0)
|
ROM_REGION32_LE( 0x280000, "user", 0)
|
||||||
|
@ -378,15 +378,15 @@ void fp1100_state::handle_int_to_main()
|
|||||||
{
|
{
|
||||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||||
LOG("%s: Main IRQ asserted\n",machine().describe_context());
|
LOG("%s: Main IRQ asserted\n",machine().describe_context());
|
||||||
// m_main_irq_status = true;
|
// m_main_irq_status = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_main_irq_status)
|
if (m_main_irq_status)
|
||||||
{
|
{
|
||||||
// m_maincpu->set_input_line(0, CLEAR_LINE);
|
// m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||||
// LOG("%s: Main IRQ cleared\n",machine().describe_context());
|
// LOG("%s: Main IRQ cleared\n",machine().describe_context());
|
||||||
m_main_irq_status = false;
|
m_main_irq_status = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ static INPUT_PORTS_START( h01b )
|
|||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e')
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e')
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d')
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d')
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c')
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c')
|
||||||
// PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
|
// PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
|
||||||
|
@ -81,7 +81,7 @@ READ8_MEMBER(markham_state::strnskil_d800_r)
|
|||||||
WRITE8_MEMBER(markham_state::strnskil_master_output_w)
|
WRITE8_MEMBER(markham_state::strnskil_master_output_w)
|
||||||
{
|
{
|
||||||
m_scroll_ctrl = data >> 5;
|
m_scroll_ctrl = data >> 5;
|
||||||
|
|
||||||
flipscreen_w(space, 0, (data >> 3) & 1);
|
flipscreen_w(space, 0, (data >> 3) & 1);
|
||||||
|
|
||||||
// bit 0: master CPU bus request?
|
// bit 0: master CPU bus request?
|
||||||
|
@ -67,7 +67,7 @@ ________________________________________________________________________________
|
|||||||
| NO | Party Darts| Compumatic | More info: http://www.recreativas.org/party-darts-4906-compumatic |
|
| NO | Party Darts| Compumatic | More info: http://www.recreativas.org/party-darts-4906-compumatic |
|
||||||
| NO | Diamant | Unknown | Newer PCB with Philips REF34VA and additional Compumatic custom ICs |
|
| NO | Diamant | Unknown | Newer PCB with Philips REF34VA and additional Compumatic custom ICs |
|
||||||
| NO | Tiger Dart | Unknown | Standard Microdar SPD with Philips REF34VA |
|
| NO | Tiger Dart | Unknown | Standard Microdar SPD with Philips REF34VA |
|
||||||
|_______|____________|______________|_____________________________________________________________________|
|
|_______|____________|______________|_____________________________________________________________________|
|
||||||
|
|
||||||
There's a later revision of the Compumatic Microdar PCB (V5), smaller, with a standard Atmel AT89S51
|
There's a later revision of the Compumatic Microdar PCB (V5), smaller, with a standard Atmel AT89S51
|
||||||
instead of the REF34 CPU.
|
instead of the REF34 CPU.
|
||||||
|
@ -3987,7 +3987,7 @@ static INPUT_PORTS_START( blandia )
|
|||||||
|
|
||||||
|
|
||||||
PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
|
PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
|
||||||
PORT_DIPSETTING( 0x0200, "1, 1 Round" ) // Test mode shows 1 in both blandia and blandiap
|
PORT_DIPSETTING( 0x0200, "1, 1 Round" ) // Test mode shows 1 in both blandia and blandiap
|
||||||
PORT_DIPSETTING( 0x0300, "1, 2 Rounds" ) // Test mode shows 0 in blandia, 2 in blandiap (neither match actual behaviour)
|
PORT_DIPSETTING( 0x0300, "1, 2 Rounds" ) // Test mode shows 0 in blandia, 2 in blandiap (neither match actual behaviour)
|
||||||
PORT_DIPSETTING( 0x0100, "2" ) // Test mode shows 2 in blandia, 3 in blandiap (blandiap test mode is wrong)
|
PORT_DIPSETTING( 0x0100, "2" ) // Test mode shows 2 in blandia, 3 in blandiap (blandiap test mode is wrong)
|
||||||
PORT_DIPSETTING( 0x0000, "3" ) // Test mode shows 3 in blandia, 4 in blandiap (blandiap test mode is wrong)
|
PORT_DIPSETTING( 0x0000, "3" ) // Test mode shows 3 in blandia, 4 in blandiap (blandiap test mode is wrong)
|
||||||
|
@ -382,13 +382,13 @@ void sidepckt_state::sidepckt(machine_config &config)
|
|||||||
|
|
||||||
Ports to be corrected once MCU is dumped
|
Ports to be corrected once MCU is dumped
|
||||||
|
|
||||||
I8751(config, m_mcu, 8_MHz_XTAL); // 8.0MHz OSC on PCB
|
I8751(config, m_mcu, 8_MHz_XTAL); // 8.0MHz OSC on PCB
|
||||||
m_mcu->port_in_cb<0>().set([this](){ return m_mcu_p0; });
|
m_mcu->port_in_cb<0>().set([this](){ return m_mcu_p0; });
|
||||||
m_mcu->port_out_cb<0>().set([this](u8 data){ m_mcu_p0 = data; });
|
m_mcu->port_out_cb<0>().set([this](u8 data){ m_mcu_p0 = data; });
|
||||||
m_mcu->port_in_cb<1>().set([this](){ return m_mcu_p1; });
|
m_mcu->port_in_cb<1>().set([this](){ return m_mcu_p1; });
|
||||||
m_mcu->port_out_cb<1>().set([this](u8 data){ m_mcu_p1 = data; });
|
m_mcu->port_out_cb<1>().set([this](u8 data){ m_mcu_p1 = data; });
|
||||||
m_mcu->port_out_cb<2>().set(FUNC(karnov_state::mcu_p2_w));
|
m_mcu->port_out_cb<2>().set(FUNC(karnov_state::mcu_p2_w));
|
||||||
m_mcu->port_in_cb<3>().set_ioport("COIN");
|
m_mcu->port_in_cb<3>().set_ioport("COIN");
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -595,7 +595,7 @@ void snk68_state::pow(machine_config &config)
|
|||||||
m_screen->set_palette(m_palette);
|
m_screen->set_palette(m_palette);
|
||||||
|
|
||||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pow);
|
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pow);
|
||||||
|
|
||||||
ALPHA68K_PALETTE(config, m_palette, 0);
|
ALPHA68K_PALETTE(config, m_palette, 0);
|
||||||
m_palette->set_entries(2048);
|
m_palette->set_entries(2048);
|
||||||
|
|
||||||
|
@ -441,11 +441,11 @@ ROM_START( spartanxtec )
|
|||||||
ROM_REGION( 0x18000, "unkprom", 0 ) // just linear increasing value
|
ROM_REGION( 0x18000, "unkprom", 0 ) // just linear increasing value
|
||||||
ROM_LOAD( "1_tbp24s10_82s129.bin", 0x0000, 0x0100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )
|
ROM_LOAD( "1_tbp24s10_82s129.bin", 0x0000, 0x0100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )
|
||||||
ROM_LOAD( "2_tbp24s10_82s129.bin", 0x0000, 0x0100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )
|
ROM_LOAD( "2_tbp24s10_82s129.bin", 0x0000, 0x0100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )
|
||||||
|
|
||||||
ROM_REGION( 0x00228, "plds", 0 )
|
ROM_REGION( 0x00228, "plds", 0 )
|
||||||
ROM_LOAD( "pal16r8acn.ic12", 0x0000, 0x0114, NO_DUMP )
|
ROM_LOAD( "pal16r8acn.ic12", 0x0000, 0x0114, NO_DUMP )
|
||||||
ROM_LOAD( "pal16r6acn.ic33", 0x0114, 0x0114, NO_DUMP )
|
ROM_LOAD( "pal16r6acn.ic33", 0x0114, 0x0114, NO_DUMP )
|
||||||
|
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Super Dead Heat hardware
|
Super Dead Heat hardware
|
||||||
|
|
||||||
driver by Phil Bennett
|
driver by Phil Bennett
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
* Sound filters
|
* Sound filters
|
||||||
|
|
||||||
@ -98,37 +98,37 @@ TILE_GET_INFO_MEMBER(spdheat_state::get_fg_tile_info)
|
|||||||
void spdheat_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t xo, uint32_t yo)
|
void spdheat_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t xo, uint32_t yo)
|
||||||
{
|
{
|
||||||
gfx_element *gfx = m_gfxdecode->gfx(1);
|
gfx_element *gfx = m_gfxdecode->gfx(1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Sprite RAM format:
|
Sprite RAM format:
|
||||||
|
|
||||||
0: .... .... .... .... = ?
|
0: .... .... .... .... = ?
|
||||||
|
|
||||||
1: .... .... xxxx xxxx = Y position
|
1: .... .... xxxx xxxx = Y position
|
||||||
.... ..x. .... .... = Y position
|
.... ..x. .... .... = Y position
|
||||||
x... .... .... .... = 0 = 16x16, 1 = 16x32
|
x... .... .... .... = 0 = 16x16, 1 = 16x32
|
||||||
|
|
||||||
2: .... ..xx xxxx xxxx = Code
|
2: .... ..xx xxxx xxxx = Code
|
||||||
..xx xx.. .... .... = Color
|
..xx xx.. .... .... = Color
|
||||||
.x.. .... .... .... = X flip
|
.x.. .... .... .... = X flip
|
||||||
x... .... .... .... = Y flip
|
x... .... .... .... = Y flip
|
||||||
|
|
||||||
3: .... ..xx xxxx xxxx = X position
|
3: .... ..xx xxxx xxxx = X position
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (int offs = (0x800 / 2) - 4; offs >= 0; offs -= 4)
|
for (int offs = (0x800 / 2) - 4; offs >= 0; offs -= 4)
|
||||||
{
|
{
|
||||||
int code = (m_spriteram[offs + 2] & 0x3ff) ^ 0x200;
|
int code = (m_spriteram[offs + 2] & 0x3ff) ^ 0x200;
|
||||||
int color = (m_spriteram[offs + 2] >> 10) & 0x0f;
|
int color = (m_spriteram[offs + 2] >> 10) & 0x0f;
|
||||||
|
|
||||||
int y = 256 - ((m_spriteram[offs + 1] & 0x0ff));
|
int y = 256 - ((m_spriteram[offs + 1] & 0x0ff));
|
||||||
int x = (m_spriteram[offs + 3] & 0x3ff);
|
int x = (m_spriteram[offs + 3] & 0x3ff);
|
||||||
|
|
||||||
int flipx = BIT(m_spriteram[offs + 2], 14);
|
int flipx = BIT(m_spriteram[offs + 2], 14);
|
||||||
int flipy = BIT(m_spriteram[offs + 2], 15);
|
int flipy = BIT(m_spriteram[offs + 2], 15);
|
||||||
|
|
||||||
if (xo == 1)
|
if (xo == 1)
|
||||||
{
|
{
|
||||||
x -= 0x200;
|
x -= 0x200;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -136,10 +136,10 @@ void spdheat_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
|
|||||||
if (x & 0x200)
|
if (x & 0x200)
|
||||||
x -= 0x400;
|
x -= 0x400;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (yo != BIT(m_spriteram[offs + 1], 9))
|
if (yo != BIT(m_spriteram[offs + 1], 9))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((m_spriteram[offs + 1] & 0x8000) == 0)
|
if ((m_spriteram[offs + 1] & 0x8000) == 0)
|
||||||
{
|
{
|
||||||
if (flipy)
|
if (flipy)
|
||||||
@ -353,105 +353,105 @@ WRITE8_MEMBER(spdheat_state::sub_nmi_w)
|
|||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
YM2203 IC62
|
YM2203 IC62
|
||||||
===========
|
===========
|
||||||
|
|
||||||
PORT A
|
PORT A
|
||||||
.... xxxx PGA[3:0]
|
.... xxxx PGA[3:0]
|
||||||
xxxx .... PC010SA IC58 'VR'
|
xxxx .... PC010SA IC58 'VR'
|
||||||
|
|
||||||
PORT B
|
PORT B
|
||||||
.... xxxx PC010SA IC58 'BASS'
|
.... xxxx PC010SA IC58 'BASS'
|
||||||
xxxx .... PC010SA IC58 TREBL
|
xxxx .... PC010SA IC58 TREBL
|
||||||
|
|
||||||
PSG OUTPUT -> PC010SA IC58 (PSGA)
|
PSG OUTPUT -> PC010SA IC58 (PSGA)
|
||||||
|
|
||||||
|
|
||||||
YM2203 IC61
|
YM2203 IC61
|
||||||
===========
|
===========
|
||||||
|
|
||||||
PORT A
|
PORT A
|
||||||
.... xxxx PGB[3:0]
|
.... xxxx PGB[3:0]
|
||||||
xxxx .... PC010SA IC59 'VR'
|
xxxx .... PC010SA IC59 'VR'
|
||||||
|
|
||||||
PORT B
|
PORT B
|
||||||
.... xxxx PC010SA IC59 'BASS'
|
.... xxxx PC010SA IC59 'BASS'
|
||||||
xxxx .... PC010SA IC59 TREBL
|
xxxx .... PC010SA IC59 TREBL
|
||||||
|
|
||||||
PSG OUTPUT -> PC010SA IC59 (PSGB)
|
PSG OUTPUT -> PC010SA IC59 (PSGB)
|
||||||
|
|
||||||
|
|
||||||
YM2149 IC57
|
YM2149 IC57
|
||||||
===========
|
===========
|
||||||
|
|
||||||
PORT A
|
PORT A
|
||||||
.... xxxx PGC[3:0]
|
.... xxxx PGC[3:0]
|
||||||
xxxx .... PC010SA IC54 'VR'
|
xxxx .... PC010SA IC54 'VR'
|
||||||
|
|
||||||
PORT B
|
PORT B
|
||||||
.... xxxx PC010SA IC54 'BASS'
|
.... xxxx PC010SA IC54 'BASS'
|
||||||
xxxx .... PC010SA IC54 TREBL
|
xxxx .... PC010SA IC54 TREBL
|
||||||
|
|
||||||
PSG OUTPUT -> PC010SA IC54 (PSGC)
|
PSG OUTPUT -> PC010SA IC54 (PSGC)
|
||||||
|
|
||||||
|
|
||||||
YM2149 IC56
|
YM2149 IC56
|
||||||
===========
|
===========
|
||||||
|
|
||||||
PORT A
|
PORT A
|
||||||
.... xxxx PGD[3:0]
|
.... xxxx PGD[3:0]
|
||||||
xxxx .... PC010SA IC55 'VR'
|
xxxx .... PC010SA IC55 'VR'
|
||||||
|
|
||||||
PORT B
|
PORT B
|
||||||
.... xxxx PC010SA IC55 'BASS'
|
.... xxxx PC010SA IC55 'BASS'
|
||||||
xxxx .... PC010SA IC55 TREBL
|
xxxx .... PC010SA IC55 TREBL
|
||||||
|
|
||||||
PSG OUTPUT -> PC010SA IC55 (PSGD)
|
PSG OUTPUT -> PC010SA IC55 (PSGD)
|
||||||
|
|
||||||
|
|
||||||
PGC[3:0], PGD[3:0] = FMB BAL1
|
PGC[3:0], PGD[3:0] = FMB BAL1
|
||||||
PGA[3:0], PGB[3:0] = FMB VR1
|
PGA[3:0], PGB[3:0] = FMB VR1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym1_port_a_w)
|
WRITE8_MEMBER(spdheat_state::ym1_port_a_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym1_port_b_w)
|
WRITE8_MEMBER(spdheat_state::ym1_port_b_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym2_port_a_w)
|
WRITE8_MEMBER(spdheat_state::ym2_port_a_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym2_port_b_w)
|
WRITE8_MEMBER(spdheat_state::ym2_port_b_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym3_port_a_w)
|
WRITE8_MEMBER(spdheat_state::ym3_port_a_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym3_port_b_w)
|
WRITE8_MEMBER(spdheat_state::ym3_port_b_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym4_port_a_w)
|
WRITE8_MEMBER(spdheat_state::ym4_port_a_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(spdheat_state::ym4_port_b_w)
|
WRITE8_MEMBER(spdheat_state::ym4_port_b_w)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -593,7 +593,7 @@ static INPUT_PORTS_START( spdheat )
|
|||||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_TOGGLE PORT_NAME("P3 Shift") PORT_PLAYER(3)
|
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_TOGGLE PORT_NAME("P3 Shift") PORT_PLAYER(3)
|
||||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) // see above
|
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) // see above
|
||||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("Reserved 3")
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_NAME("Reserved 3")
|
||||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_TOGGLE PORT_NAME("P4 Shift") PORT_PLAYER(4)
|
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_TOGGLE PORT_NAME("P4 Shift") PORT_PLAYER(4)
|
||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) // see above
|
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) // see above
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE4 )
|
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE4 )
|
||||||
@ -684,7 +684,7 @@ void spdheat_state::spdheat(machine_config &config)
|
|||||||
|
|
||||||
Z80(config, m_audiocpu, SOUND_CLOCK);
|
Z80(config, m_audiocpu, SOUND_CLOCK);
|
||||||
m_audiocpu->set_addrmap(AS_PROGRAM, &spdheat_state::sound_map);
|
m_audiocpu->set_addrmap(AS_PROGRAM, &spdheat_state::sound_map);
|
||||||
|
|
||||||
Z80(config, m_subcpu, SOUND_CLOCK);
|
Z80(config, m_subcpu, SOUND_CLOCK);
|
||||||
m_subcpu->set_addrmap(AS_PROGRAM, &spdheat_state::sub_map);
|
m_subcpu->set_addrmap(AS_PROGRAM, &spdheat_state::sub_map);
|
||||||
m_subcpu->set_addrmap(AS_IO, &spdheat_state::sub_io_map);
|
m_subcpu->set_addrmap(AS_IO, &spdheat_state::sub_io_map);
|
||||||
@ -734,9 +734,9 @@ void spdheat_state::spdheat(machine_config &config)
|
|||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
// TODO: there are multiple speakers
|
// TODO: there are multiple speakers
|
||||||
SPEAKER(config, "mono").front_center();
|
SPEAKER(config, "mono").front_center();
|
||||||
|
|
||||||
INPUT_MERGER_ANY_HIGH(config, m_audio_irq).output_handler().set_inputline(m_audiocpu, INPUT_LINE_IRQ0);
|
INPUT_MERGER_ANY_HIGH(config, m_audio_irq).output_handler().set_inputline(m_audiocpu, INPUT_LINE_IRQ0);
|
||||||
|
|
||||||
ym2203_device &ym1(YM2203(config, "ym1", FM_CLOCK));
|
ym2203_device &ym1(YM2203(config, "ym1", FM_CLOCK));
|
||||||
ym1.irq_handler().set(m_audio_irq, FUNC(input_merger_any_high_device::in_w<0>));
|
ym1.irq_handler().set(m_audio_irq, FUNC(input_merger_any_high_device::in_w<0>));
|
||||||
ym1.port_a_write_callback().set(FUNC(spdheat_state::ym1_port_a_w));
|
ym1.port_a_write_callback().set(FUNC(spdheat_state::ym1_port_a_w));
|
||||||
@ -745,7 +745,7 @@ void spdheat_state::spdheat(machine_config &config)
|
|||||||
ym1.add_route(1, "mono", 0.3);
|
ym1.add_route(1, "mono", 0.3);
|
||||||
ym1.add_route(2, "mono", 0.3);
|
ym1.add_route(2, "mono", 0.3);
|
||||||
ym1.add_route(3, "mono", 0.3);
|
ym1.add_route(3, "mono", 0.3);
|
||||||
|
|
||||||
ym2203_device &ym2(YM2203(config, "ym2", FM_CLOCK));
|
ym2203_device &ym2(YM2203(config, "ym2", FM_CLOCK));
|
||||||
ym2.irq_handler().set(m_audio_irq, FUNC(input_merger_any_high_device::in_w<1>));
|
ym2.irq_handler().set(m_audio_irq, FUNC(input_merger_any_high_device::in_w<1>));
|
||||||
ym2.port_a_write_callback().set(FUNC(spdheat_state::ym2_port_a_w));
|
ym2.port_a_write_callback().set(FUNC(spdheat_state::ym2_port_a_w));
|
||||||
@ -754,7 +754,7 @@ void spdheat_state::spdheat(machine_config &config)
|
|||||||
ym2.add_route(1, "mono", 0.3);
|
ym2.add_route(1, "mono", 0.3);
|
||||||
ym2.add_route(2, "mono", 0.3);
|
ym2.add_route(2, "mono", 0.3);
|
||||||
ym2.add_route(3, "mono", 0.3);
|
ym2.add_route(3, "mono", 0.3);
|
||||||
|
|
||||||
ym2149_device &ym3(YM2149(config, "ym3", SOUND_CLOCK));
|
ym2149_device &ym3(YM2149(config, "ym3", SOUND_CLOCK));
|
||||||
ym3.port_a_write_callback().set(FUNC(spdheat_state::ym3_port_a_w));
|
ym3.port_a_write_callback().set(FUNC(spdheat_state::ym3_port_a_w));
|
||||||
ym3.port_b_write_callback().set(FUNC(spdheat_state::ym3_port_b_w));
|
ym3.port_b_write_callback().set(FUNC(spdheat_state::ym3_port_b_w));
|
||||||
@ -764,7 +764,7 @@ void spdheat_state::spdheat(machine_config &config)
|
|||||||
ym4.port_a_write_callback().set(FUNC(spdheat_state::ym4_port_a_w));
|
ym4.port_a_write_callback().set(FUNC(spdheat_state::ym4_port_a_w));
|
||||||
ym4.port_b_write_callback().set(FUNC(spdheat_state::ym4_port_b_w));
|
ym4.port_b_write_callback().set(FUNC(spdheat_state::ym4_port_b_w));
|
||||||
ym4.add_route(ALL_OUTPUTS, "mono", 0.3);
|
ym4.add_route(ALL_OUTPUTS, "mono", 0.3);
|
||||||
|
|
||||||
DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "mono", 0.3);
|
DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "mono", 0.3);
|
||||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
JAKKS Spiderman 5-in-1 (original release)
|
JAKKS Spiderman 5-in-1 (original release)
|
||||||
Conny TV Virtual Tennis
|
Conny TV Virtual Tennis
|
||||||
|
|
||||||
assumed:
|
assumed:
|
||||||
JAKKS EA Sports (NHL 95 + Madden 95) (US)
|
JAKKS EA Sports (NHL 95 + Madden 95) (US)
|
||||||
JAKKS EA Sports (NHL 95 + Fifa 96) (US)
|
JAKKS EA Sports (NHL 95 + Fifa 96) (US)
|
||||||
JAKKS Bob the Builder
|
JAKKS Bob the Builder
|
||||||
Conny Ping Pong
|
Conny Ping Pong
|
||||||
JAKKS Disney (original release)
|
JAKKS Disney (original release)
|
||||||
|
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
|
@ -92,25 +92,25 @@ DEBUG TRICKS:
|
|||||||
#define DEBUG_PRIORITY (0)
|
#define DEBUG_PRIORITY (0)
|
||||||
#define DEBUG_PRIORITY_INDEX (0) // 0-3
|
#define DEBUG_PRIORITY_INDEX (0) // 0-3
|
||||||
|
|
||||||
#define LOG_UNKNOWNS (1 << 0)
|
#define LOG_UNKNOWNS (1 << 0)
|
||||||
#define LOG_DMA (1 << 1)
|
#define LOG_DMA (1 << 1)
|
||||||
#define LOG_SPRDMA (1 << 2)
|
#define LOG_SPRDMA (1 << 2)
|
||||||
#define LOG_SPRITES (1 << 3)
|
#define LOG_SPRITES (1 << 3)
|
||||||
#define LOG_TILEMAP0 (1 << 4)
|
#define LOG_TILEMAP0 (1 << 4)
|
||||||
#define LOG_TILEMAP1 (1 << 5)
|
#define LOG_TILEMAP1 (1 << 5)
|
||||||
#define LOG_TILEMAP2 (1 << 6)
|
#define LOG_TILEMAP2 (1 << 6)
|
||||||
#define LOG_ROZ (1 << 7)
|
#define LOG_ROZ (1 << 7)
|
||||||
#define LOG_HFVIDEO (1 << 8)
|
#define LOG_HFVIDEO (1 << 8)
|
||||||
#define LOG_IRQS (1 << 9)
|
#define LOG_IRQS (1 << 9)
|
||||||
#define LOG_SOUND (1 << 10)
|
#define LOG_SOUND (1 << 10)
|
||||||
#define LOG_HFUNKNOWNS (1 << 11)
|
#define LOG_HFUNKNOWNS (1 << 11)
|
||||||
#define LOG_68K_SOUND (1 << 12)
|
#define LOG_68K_SOUND (1 << 12)
|
||||||
#define LOG_CONTROLS (1 << 13)
|
#define LOG_CONTROLS (1 << 13)
|
||||||
#define LOG_VIDEO (LOG_SPRDMA | LOG_SPRITES | LOG_TILEMAP0 | LOG_TILEMAP1 | LOG_TILEMAP2 | LOG_ROZ)
|
#define LOG_VIDEO (LOG_SPRDMA | LOG_SPRITES | LOG_TILEMAP0 | LOG_TILEMAP1 | LOG_TILEMAP2 | LOG_ROZ)
|
||||||
#define LOG_ALL (LOG_UNKNOWNS | LOG_HFUNKNOWNS | LOG_DMA | LOG_VIDEO | LOG_HFVIDEO | LOG_IRQS | LOG_SOUND | LOG_68K_SOUND | LOG_CONTROLS)
|
#define LOG_ALL (LOG_UNKNOWNS | LOG_HFUNKNOWNS | LOG_DMA | LOG_VIDEO | LOG_HFVIDEO | LOG_IRQS | LOG_SOUND | LOG_68K_SOUND | LOG_CONTROLS)
|
||||||
#define LOG_DEFAULT (LOG_ALL & ~(LOG_HFVIDEO | LOG_HFUNKNOWNS))
|
#define LOG_DEFAULT (LOG_ALL & ~(LOG_HFVIDEO | LOG_HFUNKNOWNS))
|
||||||
|
|
||||||
#define VERBOSE (0)
|
#define VERBOSE (0)
|
||||||
#include "logmacro.h"
|
#include "logmacro.h"
|
||||||
|
|
||||||
class supracan_state : public driver_device
|
class supracan_state : public driver_device
|
||||||
|
@ -7,21 +7,21 @@
|
|||||||
Hardware:
|
Hardware:
|
||||||
- AMD N80C188-25
|
- AMD N80C188-25
|
||||||
- TERMTEK TKA-200
|
- TERMTEK TKA-200
|
||||||
- 128k + 32k RAM
|
- 128k + 32k RAM
|
||||||
- 256 KB flash memory
|
- 256 KB flash memory
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
- 31.5khz or 48.1khz horizontal
|
- 31.5khz or 48.1khz horizontal
|
||||||
- 70/72 hz vertical
|
- 70/72 hz vertical
|
||||||
- 16 background/foreground/border colors
|
- 16 background/foreground/border colors
|
||||||
- 24x80/132, 25x80/132, 42x80/132, 43x80/132
|
- 24x80/132, 25x80/132, 42x80/132, 43x80/132
|
||||||
- Standard PC/AT keyboard
|
- Standard PC/AT keyboard
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
- Identical to the Qume QVT-72 Plus?
|
- Identical to the Qume QVT-72 Plus?
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Everything
|
- Everything
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
@ -83,9 +83,9 @@ void tk635_state::io_map(address_map &map)
|
|||||||
map(0x04, 0x04).w(FUNC(tk635_state::voffset_lsb_w));
|
map(0x04, 0x04).w(FUNC(tk635_state::voffset_lsb_w));
|
||||||
map(0x05, 0x05).w(FUNC(tk635_state::voffset_msb_w));
|
map(0x05, 0x05).w(FUNC(tk635_state::voffset_msb_w));
|
||||||
map(0x11, 0x11).r(FUNC(tk635_state::unk_11_r));
|
map(0x11, 0x11).r(FUNC(tk635_state::unk_11_r));
|
||||||
// map(0x13, 0x13).ram(); // host port
|
// map(0x13, 0x13).ram(); // host port
|
||||||
map(0x19, 0x19).r(FUNC(tk635_state::unk_19_r));
|
map(0x19, 0x19).r(FUNC(tk635_state::unk_19_r));
|
||||||
// map(0x1b, 0x1b).ram(); // aux port
|
// map(0x1b, 0x1b).ram(); // aux port
|
||||||
map(0xf0, 0xf0).w(FUNC(tk635_state::unk_f0_w));
|
map(0xf0, 0xf0).w(FUNC(tk635_state::unk_f0_w));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,14 +101,14 @@
|
|||||||
Game seems unhappy with NVRAM, clears contents on each boot.
|
Game seems unhappy with NVRAM, clears contents on each boot.
|
||||||
jak_pooh:
|
jak_pooh:
|
||||||
In the 'Light Tag' minigame (select the rock) the game usually softlocks when you find a friend (with or without DRC)
|
In the 'Light Tag' minigame (select the rock) the game usually softlocks when you find a friend (with or without DRC)
|
||||||
jak_care:
|
jak_care:
|
||||||
All but one mini-game waits on RAM address 0x0165 changing from 0x00f9 to 0x00f8
|
All but one mini-game waits on RAM address 0x0165 changing from 0x00f9 to 0x00f8
|
||||||
The bottom left game "Wish Bear's Wishing Tree" appears to fail for more complex reasons.
|
The bottom left game "Wish Bear's Wishing Tree" appears to fail for more complex reasons.
|
||||||
jak_disf:
|
jak_disf:
|
||||||
Shows corrupt logo on first boot with no valid nvram (possibly hardware does too - verify if possible to invalidate EEPROM on device)
|
Shows corrupt logo on first boot with no valid nvram (possibly hardware does too - verify if possible to invalidate EEPROM on device)
|
||||||
lexizeus:
|
lexizeus:
|
||||||
Some corrupt sound effects and a few corrupt ground tiles a few minutes in. (checksum is good, and a video recorded
|
Some corrupt sound effects and a few corrupt ground tiles a few minutes in. (checksum is good, and a video recorded
|
||||||
from one of these doesn't exhibit these problems, so either emulation issue or alt revision?)
|
from one of these doesn't exhibit these problems, so either emulation issue or alt revision?)
|
||||||
|
|
||||||
vii:
|
vii:
|
||||||
When loading a cart from file manager, sometimes MAME will crash.
|
When loading a cart from file manager, sometimes MAME will crash.
|
||||||
@ -128,18 +128,18 @@
|
|||||||
Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKeys) for test mode, hold UP,
|
Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKeys) for test mode, hold UP,
|
||||||
press A, press DOWN during startup
|
press A, press DOWN during startup
|
||||||
|
|
||||||
Capcom test (same access as other Hotgen games) mode looks like this (tested on PAL unit, same ROM as dumped one)
|
Capcom test (same access as other Hotgen games) mode looks like this (tested on PAL unit, same ROM as dumped one)
|
||||||
|
|
||||||
RAM OK 2800
|
RAM OK 2800
|
||||||
111111
|
111111
|
||||||
5432109876543210
|
5432109876543210
|
||||||
IOA ............111. (values go from . to 1 when inputs are moved, never 0 as in MAME!, core bug?)
|
IOA ............111. (values go from . to 1 when inputs are moved, never 0 as in MAME!, core bug?)
|
||||||
GAMEKEY E0
|
GAMEKEY E0
|
||||||
IOB0
|
IOB0
|
||||||
IOC XXX.........X...
|
IOC XXX.........X...
|
||||||
SPRITES
|
SPRITES
|
||||||
|
|
||||||
Care Bears : Hold analog stck up, rotate stick 360 degress back to up, press 'A' while still holding up
|
Care Bears : Hold analog stck up, rotate stick 360 degress back to up, press 'A' while still holding up
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
Work out how to access the hidden TEST menus for all games (most JAKKS games should have one at least)
|
Work out how to access the hidden TEST menus for all games (most JAKKS games should have one at least)
|
||||||
@ -2491,7 +2491,7 @@ void spg2xx_game_state::rad_skatp(machine_config &config)
|
|||||||
rad_skat(config);
|
rad_skat(config);
|
||||||
m_maincpu->set_pal(true);
|
m_maincpu->set_pal(true);
|
||||||
m_screen->set_refresh_hz(50);
|
m_screen->set_refresh_hz(50);
|
||||||
// m_screen->set_size(320, 312);
|
// m_screen->set_size(320, 312);
|
||||||
}
|
}
|
||||||
|
|
||||||
void spg2xx_game_state::rad_sktv(machine_config &config)
|
void spg2xx_game_state::rad_sktv(machine_config &config)
|
||||||
@ -2556,11 +2556,11 @@ void spg2xx_game_state::taikeegr(machine_config &config)
|
|||||||
spg2xx_base(config);
|
spg2xx_base(config);
|
||||||
|
|
||||||
m_screen->set_refresh_hz(50);
|
m_screen->set_refresh_hz(50);
|
||||||
// m_screen->set_size(320, 312);
|
// m_screen->set_size(320, 312);
|
||||||
|
|
||||||
m_maincpu->porta_in().set_ioport("P1");
|
m_maincpu->porta_in().set_ioport("P1");
|
||||||
// m_maincpu->portb_in().set_ioport("P2");
|
// m_maincpu->portb_in().set_ioport("P2");
|
||||||
// m_maincpu->portc_in().set_ioport("P3");
|
// m_maincpu->portc_in().set_ioport("P3");
|
||||||
|
|
||||||
NVRAM(config, m_nvram, nvram_device::DEFAULT_ALL_1);
|
NVRAM(config, m_nvram, nvram_device::DEFAULT_ALL_1);
|
||||||
}
|
}
|
||||||
@ -2764,7 +2764,7 @@ ROM_START( tvgogo )
|
|||||||
// no internal ROM? (Camera might have an MCU tho)
|
// no internal ROM? (Camera might have an MCU tho)
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( pvmil )
|
ROM_START( pvmil )
|
||||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) // Fujistu 29Z0002TN, read as ST M29W320FB
|
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) // Fujistu 29Z0002TN, read as ST M29W320FB
|
||||||
ROM_LOAD16_WORD_SWAP( "millionare4.bin", 0x000000, 0x400000, CRC(9c43d0f2) SHA1(fb4ba0115000b10b7c0e0d44b9fa3234c900e694) )
|
ROM_LOAD16_WORD_SWAP( "millionare4.bin", 0x000000, 0x400000, CRC(9c43d0f2) SHA1(fb4ba0115000b10b7c0e0d44b9fa3234c900e694) )
|
||||||
ROM_END
|
ROM_END
|
||||||
@ -2841,7 +2841,7 @@ void spg2xx_game_state::init_taikeegr()
|
|||||||
dat = bitswap<16>(dat, 15,14,13,12, 11,10,9,8, 7,6,5,4, 0,1,2,3 );
|
dat = bitswap<16>(dat, 15,14,13,12, 11,10,9,8, 7,6,5,4, 0,1,2,3 );
|
||||||
src[i] = dat;
|
src[i] = dat;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<u16> buffer(0x800000/2);
|
std::vector<u16> buffer(0x800000/2);
|
||||||
|
|
||||||
for (int i = 0; i < 0x800000/2; i++)
|
for (int i = 0; i < 0x800000/2; i++)
|
||||||
@ -2934,7 +2934,7 @@ CONS( 2009, zone40, 0, 0, non_spg_base, wirels60, spg2xx_game_st
|
|||||||
// Similar, SPG260?, scrambled
|
// Similar, SPG260?, scrambled
|
||||||
CONS( 200?, lexizeus, 0, 0, lexizeus, lexizeus, spg2xx_game_state, init_zeus, "Lexibook", "Zeus IG900 20-in-1 (US?)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
CONS( 200?, lexizeus, 0, 0, lexizeus, lexizeus, spg2xx_game_state, init_zeus, "Lexibook", "Zeus IG900 20-in-1 (US?)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||||
|
|
||||||
// there are other regions of this, including a Finnish version "Haluatko miljonääriksi?" (see https://millionaire.fandom.com/wiki/Haluatko_miljon%C3%A4%C3%A4riksi%3F_(Play_Vision_game) )
|
// there are other regions of this, including a Finnish version "Haluatko miljonääriksi?" (see https://millionaire.fandom.com/wiki/Haluatko_miljon%C3%A4%C3%A4riksi%3F_(Play_Vision_game) )
|
||||||
CONS( 2006, pvmil, 0, 0, pvmil, pvmil, spg2xx_game_state, empty_init, "Play Vision", "Who Wants to Be a Millionaire (Play Vision, Plug and Play, UK)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // p4 inputs need mapping
|
CONS( 2006, pvmil, 0, 0, pvmil, pvmil, spg2xx_game_state, empty_init, "Play Vision", "Who Wants to Be a Millionaire (Play Vision, Plug and Play, UK)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // p4 inputs need mapping
|
||||||
|
|
||||||
// there are multiple versions of this with different songs, was also sold by dreamGEAR as 'Shredmaster Jr.' (different title screen)
|
// there are multiple versions of this with different songs, was also sold by dreamGEAR as 'Shredmaster Jr.' (different title screen)
|
||||||
|
@ -60,7 +60,7 @@ protected:
|
|||||||
optional_shared_ptr<u16> m_shared_ram;
|
optional_shared_ptr<u16> m_shared_ram;
|
||||||
required_shared_ptr<u16> m_spriteram;
|
required_shared_ptr<u16> m_spriteram;
|
||||||
optional_shared_ptr<u16> m_videoram;
|
optional_shared_ptr<u16> m_videoram;
|
||||||
|
|
||||||
optional_ioport_array<7> m_in;
|
optional_ioport_array<7> m_in;
|
||||||
optional_memory_bank m_audiobank;
|
optional_memory_bank m_audiobank;
|
||||||
|
|
||||||
@ -95,10 +95,10 @@ public:
|
|||||||
, m_sprites(*this, "sprites")
|
, m_sprites(*this, "sprites")
|
||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void alpha68k_II(machine_config &config);
|
void alpha68k_II(machine_config &config);
|
||||||
void btlfieldb(machine_config &config);
|
void btlfieldb(machine_config &config);
|
||||||
|
|
||||||
void init_skysoldr();
|
void init_skysoldr();
|
||||||
void init_timesold();
|
void init_timesold();
|
||||||
void init_timesold1();
|
void init_timesold1();
|
||||||
@ -108,7 +108,7 @@ protected:
|
|||||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
required_device<snk68_spr_device> m_sprites;
|
required_device<snk68_spr_device> m_sprites;
|
||||||
required_device<alpha68k_palette_device> m_palette;
|
required_device<alpha68k_palette_device> m_palette;
|
||||||
|
|
||||||
void base_config(machine_config &config);
|
void base_config(machine_config &config);
|
||||||
DECLARE_VIDEO_START(alpha68k);
|
DECLARE_VIDEO_START(alpha68k);
|
||||||
void video_config(machine_config &config, u16 num_pens);
|
void video_config(machine_config &config, u16 num_pens);
|
||||||
@ -154,7 +154,7 @@ public:
|
|||||||
goldmedal_II_state(const machine_config &mconfig, device_type type, const char *tag)
|
goldmedal_II_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: alpha68k_II_state(mconfig, type, tag)
|
: alpha68k_II_state(mconfig, type, tag)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void init_goldmedl();
|
void init_goldmedl();
|
||||||
void goldmedal(machine_config &config);
|
void goldmedal(machine_config &config);
|
||||||
};
|
};
|
||||||
@ -165,7 +165,7 @@ public:
|
|||||||
alpha68k_III_state(const machine_config &mconfig, device_type type, const char *tag)
|
alpha68k_III_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: alpha68k_II_state(mconfig, type, tag)
|
: alpha68k_II_state(mconfig, type, tag)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void alpha68k_III(machine_config &config);
|
void alpha68k_III(machine_config &config);
|
||||||
protected:
|
protected:
|
||||||
DECLARE_MACHINE_START(alpha68k_V);
|
DECLARE_MACHINE_START(alpha68k_V);
|
||||||
@ -181,7 +181,7 @@ public:
|
|||||||
goldmedal_III_state(const machine_config &mconfig, device_type type, const char *tag)
|
goldmedal_III_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: alpha68k_III_state(mconfig, type, tag)
|
: alpha68k_III_state(mconfig, type, tag)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void init_goldmedla();
|
void init_goldmedla();
|
||||||
void goldmedal(machine_config &config);
|
void goldmedal(machine_config &config);
|
||||||
};
|
};
|
||||||
@ -234,8 +234,8 @@ public:
|
|||||||
m_palette(*this, "palette"),
|
m_palette(*this, "palette"),
|
||||||
m_color_proms(*this, "color_proms")
|
m_color_proms(*this, "color_proms")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void palette_init(palette_device &palette) const;
|
void palette_init(palette_device &palette) const;
|
||||||
|
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
@ -259,10 +259,10 @@ protected:
|
|||||||
|
|
||||||
void base_config(machine_config &config);
|
void base_config(machine_config &config);
|
||||||
void video_config(machine_config &config, u8 tile_transchar, u8 tile_bankshift, bool is_super_stingray);
|
void video_config(machine_config &config, u8 tile_transchar, u8 tile_bankshift, bool is_super_stingray);
|
||||||
|
|
||||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d);
|
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d);
|
||||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
|
|
||||||
u16 kyros_alpha_trigger_r(offs_t offset);
|
u16 kyros_alpha_trigger_r(offs_t offset);
|
||||||
void sound_map(address_map &map);
|
void sound_map(address_map &map);
|
||||||
void sound_iomap(address_map &map);
|
void sound_iomap(address_map &map);
|
||||||
@ -310,7 +310,7 @@ public:
|
|||||||
kyros_state(const machine_config &mconfig, device_type type, const char *tag)
|
kyros_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: alpha68k_N_state(mconfig, type, tag)
|
: alpha68k_N_state(mconfig, type, tag)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void kyros(machine_config &config);
|
void kyros(machine_config &config);
|
||||||
void init_kyros();
|
void init_kyros();
|
||||||
};
|
};
|
||||||
@ -321,7 +321,7 @@ public:
|
|||||||
jongbou_state(const machine_config &mconfig, device_type type, const char *tag)
|
jongbou_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: alpha68k_N_state(mconfig, type, tag)
|
: alpha68k_N_state(mconfig, type, tag)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void jongbou(machine_config &config);
|
void jongbou(machine_config &config);
|
||||||
void init_jongbou();
|
void init_jongbou();
|
||||||
|
|
||||||
@ -344,7 +344,7 @@ public:
|
|||||||
: alpha68k_prom_state(mconfig, type, tag)
|
: alpha68k_prom_state(mconfig, type, tag)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void base_config(machine_config &config);
|
void base_config(machine_config &config);
|
||||||
void video_config(machine_config &config, int yshift);
|
void video_config(machine_config &config, int yshift);
|
||||||
|
@ -142,7 +142,7 @@ class towns_state : public driver_device
|
|||||||
void townssj(machine_config &config);
|
void townssj(machine_config &config);
|
||||||
|
|
||||||
INTERRUPT_GEN_MEMBER(towns_vsync_irq);
|
INTERRUPT_GEN_MEMBER(towns_vsync_irq);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
uint16_t m_towns_machine_id; // default is 0x0101
|
uint16_t m_towns_machine_id; // default is 0x0101
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ protected:
|
|||||||
|
|
||||||
required_device<ram_device> m_ram;
|
required_device<ram_device> m_ram;
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
|
||||||
required_device_array<upd71071_device, 2> m_dma;
|
required_device_array<upd71071_device, 2> m_dma;
|
||||||
optional_device<fmscsi_device> m_scsi;
|
optional_device<fmscsi_device> m_scsi;
|
||||||
required_device_array<floppy_connector, 2> m_flop;
|
required_device_array<floppy_connector, 2> m_flop;
|
||||||
|
@ -125,7 +125,7 @@ private:
|
|||||||
uint8_t m_packet_buffer[2];
|
uint8_t m_packet_buffer[2];
|
||||||
uint8_t m_packet_write_pos;
|
uint8_t m_packet_write_pos;
|
||||||
bool m_packet_reset;
|
bool m_packet_reset;
|
||||||
|
|
||||||
u8 m_strnskil_slave_irq;
|
u8 m_strnskil_slave_irq;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,14 +41,14 @@ public:
|
|||||||
m_palette3(*this, "palette3"),
|
m_palette3(*this, "palette3"),
|
||||||
m_dac(*this, "dac")
|
m_dac(*this, "dac")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void spdheat(machine_config &config);
|
void spdheat(machine_config &config);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
virtual void video_start() override;
|
virtual void video_start() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<cpu_device> m_subcpu;
|
required_device<cpu_device> m_subcpu;
|
||||||
@ -57,24 +57,24 @@ private:
|
|||||||
required_shared_ptr_array<uint16_t, 4> m_fg_ram;
|
required_shared_ptr_array<uint16_t, 4> m_fg_ram;
|
||||||
required_shared_ptr<uint16_t> m_spriteram;
|
required_shared_ptr<uint16_t> m_spriteram;
|
||||||
tilemap_t *m_fg_tilemap[4];
|
tilemap_t *m_fg_tilemap[4];
|
||||||
|
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
required_device<palette_device> m_palette0;
|
required_device<palette_device> m_palette0;
|
||||||
required_device<palette_device> m_palette1;
|
required_device<palette_device> m_palette1;
|
||||||
required_device<palette_device> m_palette2;
|
required_device<palette_device> m_palette2;
|
||||||
required_device<palette_device> m_palette3;
|
required_device<palette_device> m_palette3;
|
||||||
required_device<dac_byte_interface> m_dac;
|
required_device<dac_byte_interface> m_dac;
|
||||||
|
|
||||||
uint32_t m_sound_data[4];
|
uint32_t m_sound_data[4];
|
||||||
uint32_t m_sound_status;
|
uint32_t m_sound_status;
|
||||||
uint32_t m_sub_data;
|
uint32_t m_sub_data;
|
||||||
uint32_t m_sub_status;
|
uint32_t m_sub_status;
|
||||||
|
|
||||||
void main_map(address_map &map);
|
void main_map(address_map &map);
|
||||||
void sub_map(address_map &map);
|
void sub_map(address_map &map);
|
||||||
void sub_io_map(address_map &map);
|
void sub_io_map(address_map &map);
|
||||||
void sound_map(address_map &map);
|
void sound_map(address_map &map);
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER(sub_r);
|
DECLARE_READ8_MEMBER(sub_r);
|
||||||
DECLARE_WRITE8_MEMBER(sub_dac_w);
|
DECLARE_WRITE8_MEMBER(sub_dac_w);
|
||||||
DECLARE_WRITE8_MEMBER(sub_nmi_w);
|
DECLARE_WRITE8_MEMBER(sub_nmi_w);
|
||||||
@ -94,7 +94,7 @@ private:
|
|||||||
DECLARE_WRITE8_MEMBER(ym3_port_b_w);
|
DECLARE_WRITE8_MEMBER(ym3_port_b_w);
|
||||||
DECLARE_WRITE8_MEMBER(ym4_port_a_w);
|
DECLARE_WRITE8_MEMBER(ym4_port_a_w);
|
||||||
DECLARE_WRITE8_MEMBER(ym4_port_b_w);
|
DECLARE_WRITE8_MEMBER(ym4_port_b_w);
|
||||||
|
|
||||||
template<int screen> DECLARE_WRITE16_MEMBER(text_w);
|
template<int screen> DECLARE_WRITE16_MEMBER(text_w);
|
||||||
template<int screen> TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
template<int screen> TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t xo, uint32_t yo);
|
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t xo, uint32_t yo);
|
||||||
|
@ -278,7 +278,7 @@ WRITE_LINE_MEMBER(eispc_keyboard_device::rst_line_w)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// set_input_line suspends with a true argument which causes "Keyboard error"
|
// set_input_line suspends with a true argument which causes "Keyboard error"
|
||||||
//m_mcu->suspend(SUSPEND_REASON_RESET, false); // This causes an assert later when DEBUG==1
|
//m_mcu->suspend(SUSPEND_REASON_RESET, false); // This causes an assert later when DEBUG==1
|
||||||
m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||||
LOGRST("KBD: Keyboard mcu reset line is asserted\n");
|
LOGRST("KBD: Keyboard mcu reset line is asserted\n");
|
||||||
|
@ -2,26 +2,26 @@
|
|||||||
// copyright-holders:Angelo Salese
|
// copyright-holders:Angelo Salese
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
||||||
Alpha Denshi "NeoGeo" palette devices
|
Alpha Denshi "NeoGeo" palette devices
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
- URL reference: https://wiki.neogeodev.org/index.php?title=Palettes
|
- URL reference: https://wiki.neogeodev.org/index.php?title=Palettes
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Make mods to support NeoGeo HW (palette bank, shadows);
|
- Make mods to support NeoGeo HW (palette bank, shadows);
|
||||||
- Are alpha68k.cpp/snk68.cpp with or without shadows?
|
- Are alpha68k.cpp/snk68.cpp with or without shadows?
|
||||||
- Reference color, research exact consequences about this wiki claim:
|
- Reference color, research exact consequences about this wiki claim:
|
||||||
"It always has to be pure black ($8000)(*) otherwise monitors won't
|
"It always has to be pure black ($8000)(*) otherwise monitors won't
|
||||||
be happy and other colors won't be displayed correctly."
|
be happy and other colors won't be displayed correctly."
|
||||||
(*) tested nam1975/skyadvnt, they actually setup $0000.
|
(*) tested nam1975/skyadvnt, they actually setup $0000.
|
||||||
Update: Gold Medalist actually setup $0fff when starter pistol is shot
|
Update: Gold Medalist actually setup $0fff when starter pistol is shot
|
||||||
on dash events, according to a reference video it causes generally darker
|
on dash events, according to a reference video it causes generally darker
|
||||||
colors on playfield and a color overflow in the border area.
|
colors on playfield and a color overflow in the border area.
|
||||||
We currently just dim the palette to simulate the effect, it's totally
|
We currently just dim the palette to simulate the effect, it's totally
|
||||||
possible that the side effects are different depending on type of monitor
|
possible that the side effects are different depending on type of monitor
|
||||||
used, and maybe the dimming is caused by the capture card uncapable of
|
used, and maybe the dimming is caused by the capture card uncapable of
|
||||||
catching up the actual signal and intended behaviour is actually a bright
|
catching up the actual signal and intended behaviour is actually a bright
|
||||||
flash (without palette clamp?).
|
flash (without palette clamp?).
|
||||||
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ inline void alpha68k_palette_device::set_color_entry(u16 offset, u16 pal_data, i
|
|||||||
int r = ((pal_data >> 14) & 0x1) | ((pal_data >> 7) & 0x1e);
|
int r = ((pal_data >> 14) & 0x1) | ((pal_data >> 7) & 0x1e);
|
||||||
int g = ((pal_data >> 13) & 0x1) | ((pal_data >> 3) & 0x1e);
|
int g = ((pal_data >> 13) & 0x1) | ((pal_data >> 3) & 0x1e);
|
||||||
int b = ((pal_data >> 12) & 0x1) | ((pal_data << 1) & 0x1e);
|
int b = ((pal_data >> 12) & 0x1) | ((pal_data << 1) & 0x1e);
|
||||||
|
|
||||||
r >>= shift;
|
r >>= shift;
|
||||||
g >>= shift;
|
g >>= shift;
|
||||||
b >>= shift;
|
b >>= shift;
|
||||||
@ -159,7 +159,7 @@ WRITE16_MEMBER( alpha68k_palette_device::write )
|
|||||||
// TODO: actual behaviour, needs HW tests.
|
// TODO: actual behaviour, needs HW tests.
|
||||||
bool is_sync_color = (pal_data & 0x7fff) == 0;
|
bool is_sync_color = (pal_data & 0x7fff) == 0;
|
||||||
int sync_color_shift = is_sync_color ? 0 : 2;
|
int sync_color_shift = is_sync_color ? 0 : 2;
|
||||||
|
|
||||||
for (int i=0; i<m_entries; i++)
|
for (int i=0; i<m_entries; i++)
|
||||||
set_color_entry(i, m_paletteram[i], sync_color_shift);
|
set_color_entry(i, m_paletteram[i], sync_color_shift);
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// copyright-holders:Angelo Salese
|
// copyright-holders:Angelo Salese
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Alpha Denshi "NeoGeo" palette devices
|
Alpha Denshi "NeoGeo" palette devices
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ protected:
|
|||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_start() override;
|
virtual void device_start() override;
|
||||||
virtual void device_reset() override;
|
virtual void device_reset() override;
|
||||||
|
|
||||||
virtual uint32_t palette_entries() const override { return m_entries; }
|
virtual uint32_t palette_entries() const override { return m_entries; }
|
||||||
private:
|
private:
|
||||||
std::vector<uint16_t> m_paletteram;
|
std::vector<uint16_t> m_paletteram;
|
||||||
|
@ -2,32 +2,32 @@
|
|||||||
// copyright-holders:Mirko Buffoni,Nicola Salmoria,Bryan McPhail,David Haywood,R. Belmont,Alex Marshall,Angelo Salese,Luca Elia
|
// copyright-holders:Mirko Buffoni,Nicola Salmoria,Bryan McPhail,David Haywood,R. Belmont,Alex Marshall,Angelo Salese,Luca Elia
|
||||||
// thanks-to:Richard Bush
|
// thanks-to:Richard Bush
|
||||||
/*
|
/*
|
||||||
NMK 16 bit sprite hardware
|
NMK 16 bit sprite hardware
|
||||||
|
|
||||||
Configured in NMK008 + one or more NMK009s or TTL logics or FPGA
|
Configured in NMK008 + one or more NMK009s or TTL logics or FPGA
|
||||||
|
|
||||||
From hardware manual : http://upl-gravedigger.boo.jp/pcb_info/pcb_manual_7.jpg
|
From hardware manual : http://upl-gravedigger.boo.jp/pcb_info/pcb_manual_7.jpg
|
||||||
|
|
||||||
used by:
|
used by:
|
||||||
nmk16.cpp
|
nmk16.cpp
|
||||||
powerins.cpp
|
powerins.cpp
|
||||||
|
|
||||||
Sprite format (16 byte per each sprite):
|
Sprite format (16 byte per each sprite):
|
||||||
|
|
||||||
Offset Bits Description
|
Offset Bits Description
|
||||||
fedcba98 76543210
|
fedcba98 76543210
|
||||||
00 -------- -------s Visible
|
00 -------- -------s Visible
|
||||||
02 ---x---- -------- Flip X (powerins)
|
02 ---x---- -------- Flip X (powerins)
|
||||||
------x- -------- Flip Y (manybloc)
|
------x- -------- Flip Y (manybloc)
|
||||||
-------x -------- Flip X (manybloc) or Code hi bits (powerins)
|
-------x -------- Flip X (manybloc) or Code hi bits (powerins)
|
||||||
-------- xxxx---- Number of tiles along Y, minus 1 (1-16)
|
-------- xxxx---- Number of tiles along Y, minus 1 (1-16)
|
||||||
-------- ----xxxx Number of tiles along X, minus 1 (1-16)
|
-------- ----xxxx Number of tiles along X, minus 1 (1-16)
|
||||||
04 -------- -------- Unused
|
04 -------- -------- Unused
|
||||||
06 xxxxxxxx xxxxxxxx Code (low 15 bit for powerins)
|
06 xxxxxxxx xxxxxxxx Code (low 15 bit for powerins)
|
||||||
08 ------xx xxxxxxxx X (10 bit for powerins, 9 bit for others)
|
08 ------xx xxxxxxxx X (10 bit for powerins, 9 bit for others)
|
||||||
0a -------- -------- Unused
|
0a -------- -------- Unused
|
||||||
0c ------xx xxxxxxxx Y (10 bit for powerins, 9 bit for others)
|
0c ------xx xxxxxxxx Y (10 bit for powerins, 9 bit for others)
|
||||||
0e -------- --xxxxxx Palette select (differ bits per game (4/5/6 bits))
|
0e -------- --xxxxxx Palette select (differ bits per game (4/5/6 bits))
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -222,42 +222,42 @@ void sgi_gr1_device::device_reset()
|
|||||||
u8 sgi_gr1_device::dr0_r()
|
u8 sgi_gr1_device::dr0_r()
|
||||||
{
|
{
|
||||||
LOG("dr0_r 0x%02x (%s)\n", m_dr0, machine().describe_context());
|
LOG("dr0_r 0x%02x (%s)\n", m_dr0, machine().describe_context());
|
||||||
|
|
||||||
return m_dr0;
|
return m_dr0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sgi_gr1_device::dr1_r()
|
u8 sgi_gr1_device::dr1_r()
|
||||||
{
|
{
|
||||||
LOG("dr1_r 0x%02x (%s)\n", m_dr1, machine().describe_context());
|
LOG("dr1_r 0x%02x (%s)\n", m_dr1, machine().describe_context());
|
||||||
|
|
||||||
return m_dr1;
|
return m_dr1;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sgi_gr1_device::dr2_r()
|
u8 sgi_gr1_device::dr2_r()
|
||||||
{
|
{
|
||||||
LOG("dr2_r 0x%02x (%s)\n", m_dr2, machine().describe_context());
|
LOG("dr2_r 0x%02x (%s)\n", m_dr2, machine().describe_context());
|
||||||
|
|
||||||
return m_dr2;
|
return m_dr2;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sgi_gr1_device::dr3_r()
|
u8 sgi_gr1_device::dr3_r()
|
||||||
{
|
{
|
||||||
LOG("dr3_r 0x%02x (%s)\n", m_dr3, machine().describe_context());
|
LOG("dr3_r 0x%02x (%s)\n", m_dr3, machine().describe_context());
|
||||||
|
|
||||||
return m_dr3;
|
return m_dr3;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sgi_gr1_device::dr4_r()
|
u8 sgi_gr1_device::dr4_r()
|
||||||
{
|
{
|
||||||
LOG("dr4_r 0x%02x (%s)\n", m_dr4, machine().describe_context());
|
LOG("dr4_r 0x%02x (%s)\n", m_dr4, machine().describe_context());
|
||||||
|
|
||||||
return (m_dr4 | (m_ge->suspended() ? 0 : DR4_GESTALL)) & DR4_RM;
|
return (m_dr4 | (m_ge->suspended() ? 0 : DR4_GESTALL)) & DR4_RM;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sgi_gr1_device::dr0_w(u8 data)
|
void sgi_gr1_device::dr0_w(u8 data)
|
||||||
{
|
{
|
||||||
LOG("dr0_w 0x%02x (%s)\n", data, machine().describe_context());
|
LOG("dr0_w 0x%02x (%s)\n", data, machine().describe_context());
|
||||||
|
|
||||||
m_dr0 = (m_dr0 & ~DR0_WM) | (data & DR0_WM);
|
m_dr0 = (m_dr0 & ~DR0_WM) | (data & DR0_WM);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ void sgi_gr1_device::dr2_w(u8 data)
|
|||||||
void sgi_gr1_device::dr3_w(u8 data)
|
void sgi_gr1_device::dr3_w(u8 data)
|
||||||
{
|
{
|
||||||
LOG("dr3_w 0x%02x (%s)\n", data, machine().describe_context());
|
LOG("dr3_w 0x%02x (%s)\n", data, machine().describe_context());
|
||||||
|
|
||||||
m_dr3 = (m_dr3 & ~DR3_WM) | (data & DR3_WM);
|
m_dr3 = (m_dr3 & ~DR3_WM) | (data & DR3_WM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
// copyright-holders:Bryan McPhail, Acho A. Tang, Nicola Salmoria
|
// copyright-holders:Bryan McPhail, Acho A. Tang, Nicola Salmoria
|
||||||
/*
|
/*
|
||||||
* Alpha 68k II/V sprite system
|
* Alpha 68k II/V sprite system
|
||||||
* tile-based, with 8-bit accesses.
|
* tile-based, with 8-bit accesses.
|
||||||
* Two banks, first at 0x0000-0x1000, second at 0x1000 until end of VRAM.
|
* Two banks, first at 0x0000-0x1000, second at 0x1000 until end of VRAM.
|
||||||
* First bank is processed by 64 bytes stepping starting from address $8,
|
* First bank is processed by 64 bytes stepping starting from address $8,
|
||||||
* then once it reaches end it restarts at $c, finally at $4.
|
* then once it reaches end it restarts at $c, finally at $4.
|
||||||
*
|
*
|
||||||
* 0x0000-0x1000
|
* 0x0000-0x1000
|
||||||
@ -35,10 +35,10 @@
|
|||||||
* - player death animation has first frame with inverted horizontal halves;
|
* - player death animation has first frame with inverted horizontal halves;
|
||||||
* - stage 1 priest desyncs with background;
|
* - stage 1 priest desyncs with background;
|
||||||
* - glitchy first frame on title screen;
|
* - glitchy first frame on title screen;
|
||||||
* Given how this and the actual HW works it is pretty likely this having a consistent delay,
|
* Given how this and the actual HW works it is pretty likely this having a consistent delay,
|
||||||
* however it isn't known how exactly DMA triggers, and one frame of bufferd spriteram isn't enough.
|
* however it isn't known how exactly DMA triggers, and one frame of bufferd spriteram isn't enough.
|
||||||
* - Why entry 0x7c0 requires a one line and a priority hack for alpha68k.cpp games?
|
* - Why entry 0x7c0 requires a one line and a priority hack for alpha68k.cpp games?
|
||||||
* - Super Champion Baseball: selecting a 3rd or 5th column team causes a shadow to appear on the drawn
|
* - Super Champion Baseball: selecting a 3rd or 5th column team causes a shadow to appear on the drawn
|
||||||
* object which isn't present on the other columns, verify real HW behaviour;
|
* object which isn't present on the other columns, verify real HW behaviour;
|
||||||
* - Sky Adventure: stage 1 priest priority goes above the bonus ship, confirmed to be a btanb;
|
* - Sky Adventure: stage 1 priest priority goes above the bonus ship, confirmed to be a btanb;
|
||||||
*
|
*
|
||||||
@ -121,7 +121,7 @@ void snk68_spr_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipr
|
|||||||
|
|
||||||
mx = ((mx + 16) & 0x1ff) - 16;
|
mx = ((mx + 16) & 0x1ff) - 16;
|
||||||
my = -my;
|
my = -my;
|
||||||
|
|
||||||
// TODO: alpha68k games all wants this hack, why?
|
// TODO: alpha68k games all wants this hack, why?
|
||||||
if (group == 1 && start_offset == 0x7c0)
|
if (group == 1 && start_offset == 0x7c0)
|
||||||
my++;
|
my++;
|
||||||
|
@ -70,14 +70,14 @@
|
|||||||
---- ---- ---4 ---- Layer Disable
|
---- ---- ---4 ---- Layer Disable
|
||||||
---- ---- ---- 3210 Varies*
|
---- ---- ---- 3210 Varies*
|
||||||
|
|
||||||
*color bank for mcatadv or Layer-Layer priority for cave
|
*color bank for mcatadv or Layer-Layer priority for cave
|
||||||
|
|
||||||
There are more!
|
There are more!
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
de-fragmentation and merge drawing behavior into tmap038.cpp
|
de-fragmentation and merge drawing behavior into tmap038.cpp
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
|
|
||||||
|
@ -47,10 +47,10 @@ public:
|
|||||||
|
|
||||||
u16 lineram_r(offs_t offset) { return m_lineram[offset]; }
|
u16 lineram_r(offs_t offset) { return m_lineram[offset]; }
|
||||||
void lineram_w(offs_t offset, u16 data, u16 mem_mask = ~0) { COMBINE_DATA(&m_lineram[offset]); }
|
void lineram_w(offs_t offset, u16 data, u16 mem_mask = ~0) { COMBINE_DATA(&m_lineram[offset]); }
|
||||||
|
|
||||||
u16 vregs_r(offs_t offset) { return m_vregs[offset]; }
|
u16 vregs_r(offs_t offset) { return m_vregs[offset]; }
|
||||||
void vregs_w(offs_t offset, u16 data, u16 mem_mask = ~0) { COMBINE_DATA(&m_vregs[offset]); }
|
void vregs_w(offs_t offset, u16 data, u16 mem_mask = ~0) { COMBINE_DATA(&m_vregs[offset]); }
|
||||||
|
|
||||||
void mark_all_dirty() { m_tmap->mark_all_dirty(); };
|
void mark_all_dirty() { m_tmap->mark_all_dirty(); };
|
||||||
void set_flip(u32 attributes) { m_tmap->set_flip(attributes); }
|
void set_flip(u32 attributes) { m_tmap->set_flip(attributes); }
|
||||||
void set_palette_offset(u32 offset) { m_tmap->set_palette_offset(offset); }
|
void set_palette_offset(u32 offset) { m_tmap->set_palette_offset(offset); }
|
||||||
|
@ -55,7 +55,7 @@ private:
|
|||||||
std::map<std::string, bgfx_target*> m_target_map;
|
std::map<std::string, bgfx_target*> m_target_map;
|
||||||
int64_t m_current_time;
|
int64_t m_current_time;
|
||||||
uint32_t m_screen_index;
|
uint32_t m_screen_index;
|
||||||
bool m_has_converter;
|
bool m_has_converter;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __DRAWBGFX_CHAIN__
|
#endif // __DRAWBGFX_CHAIN__
|
||||||
|
@ -144,10 +144,10 @@ private:
|
|||||||
std::vector<ui::menu_item> m_selection_sliders;
|
std::vector<ui::menu_item> m_selection_sliders;
|
||||||
std::vector<std::unique_ptr<slider_state>> m_core_sliders;
|
std::vector<std::unique_ptr<slider_state>> m_core_sliders;
|
||||||
std::vector<int32_t> m_current_chain;
|
std::vector<int32_t> m_current_chain;
|
||||||
std::vector<bgfx_texture*> m_screen_textures;
|
std::vector<bgfx_texture*> m_screen_textures;
|
||||||
std::vector<bgfx_texture*> m_screen_palettes;
|
std::vector<bgfx_texture*> m_screen_palettes;
|
||||||
std::vector<bgfx_effect*> m_converters;
|
std::vector<bgfx_effect*> m_converters;
|
||||||
std::vector<screen_prim> m_screen_prims;
|
std::vector<screen_prim> m_screen_prims;
|
||||||
std::vector<uint8_t> m_palette_temp;
|
std::vector<uint8_t> m_palette_temp;
|
||||||
|
|
||||||
static const uint32_t CHAIN_NONE;
|
static const uint32_t CHAIN_NONE;
|
||||||
|
@ -50,10 +50,10 @@ void bgfx_input_pair::bind(bgfx_effect *effect, const int32_t screen) const
|
|||||||
std::string name = m_texture + std::to_string(screen);
|
std::string name = m_texture + std::to_string(screen);
|
||||||
|
|
||||||
bgfx_texture_handle_provider* provider = chains().textures().provider(name);
|
bgfx_texture_handle_provider* provider = chains().textures().provider(name);
|
||||||
if (!provider)
|
if (!provider)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bgfx_uniform *tex_size = effect->uniform("u_tex_size" + std::to_string(m_index));
|
bgfx_uniform *tex_size = effect->uniform("u_tex_size" + std::to_string(m_index));
|
||||||
if (tex_size && provider)
|
if (tex_size && provider)
|
||||||
{
|
{
|
||||||
float values[2] = { float(provider->width()), float(provider->height()) };
|
float values[2] = { float(provider->width()), float(provider->height()) };
|
||||||
|
@ -41,28 +41,28 @@ const bgfx::Memory* bgfx_util::mame_texture_data_to_bgfx_texture_data(bgfx::Text
|
|||||||
|
|
||||||
for (int y = 0; y < height; y++)
|
for (int y = 0; y < height; y++)
|
||||||
{
|
{
|
||||||
switch (format)
|
switch (format)
|
||||||
{
|
{
|
||||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_PALETTE16):
|
case PRIMFLAG_TEXFORMAT(TEXFORMAT_PALETTE16):
|
||||||
copy_util::copyline_palette16(dst, src16, width, palette);
|
copy_util::copyline_palette16(dst, src16, width, palette);
|
||||||
src16 += rowpixels;
|
src16 += rowpixels;
|
||||||
break;
|
break;
|
||||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_YUY16):
|
case PRIMFLAG_TEXFORMAT(TEXFORMAT_YUY16):
|
||||||
copy_util::copyline_yuy16_to_argb(dst, src16, width, palette, 1);
|
copy_util::copyline_yuy16_to_argb(dst, src16, width, palette, 1);
|
||||||
src16 += rowpixels;
|
src16 += rowpixels;
|
||||||
break;
|
break;
|
||||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_ARGB32):
|
case PRIMFLAG_TEXFORMAT(TEXFORMAT_ARGB32):
|
||||||
copy_util::copyline_argb32(dst, src32, width, palette);
|
copy_util::copyline_argb32(dst, src32, width, palette);
|
||||||
src32 += rowpixels;
|
src32 += rowpixels;
|
||||||
break;
|
break;
|
||||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_RGB32):
|
case PRIMFLAG_TEXFORMAT(TEXFORMAT_RGB32):
|
||||||
copy_util::copyline_rgb32(dst, src32, width, palette);
|
copy_util::copyline_rgb32(dst, src32, width, palette);
|
||||||
src32 += rowpixels;
|
src32 += rowpixels;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
dst += width;
|
dst += width;
|
||||||
}
|
}
|
||||||
return mem;*/
|
return mem;*/
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,7 @@ struct ti990_fdr
|
|||||||
UINT32BE eom; /* end of medium record number */
|
UINT32BE eom; /* end of medium record number */
|
||||||
UINT32BE bkm; /* end of medium block number */
|
UINT32BE bkm; /* end of medium block number */
|
||||||
UINT16BE ofm; /* end of medium offset / */
|
UINT16BE ofm; /* end of medium offset / */
|
||||||
/* prelog number for KIF */
|
/* prelog number for KIF */
|
||||||
UINT32BE fbq; /* free block queue head */
|
UINT32BE fbq; /* free block queue head */
|
||||||
UINT16BE btr; /* B-tree roots block # */
|
UINT16BE btr; /* B-tree roots block # */
|
||||||
UINT32BE ebq; /* empty block queue head */
|
UINT32BE ebq; /* empty block queue head */
|
||||||
|
Loading…
Reference in New Issue
Block a user