mirror of
https://github.com/holub/mame
synced 2025-10-04 00:23:43 +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>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="actnserv35" cloneof="actnserv">
|
||||
<description>Action Service (Smash16 release) (3.5")</description>
|
||||
<year>1990</year>
|
||||
@ -8829,7 +8829,7 @@ has been replaced with an all-zero block. -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="italy90">
|
||||
<description>Italy '90 Soccer</description>
|
||||
<year>1989</year>
|
||||
@ -8854,7 +8854,7 @@ has been replaced with an all-zero block. -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="joeblade">
|
||||
<description>Joe Blade (Smash16 release)</description>
|
||||
<year>1992</year>
|
||||
@ -10154,7 +10154,7 @@ has been replaced with an all-zero block. -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="outruna" cloneof="outrun">
|
||||
<description>Out Run (Kixx release)</description>
|
||||
<year>1989</year>
|
||||
@ -11288,7 +11288,7 @@ has been replaced with an all-zero block. -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="starflg2">
|
||||
<description>Starflight 2: Trade Routes of the Cloud Nebula (5.25")</description>
|
||||
<year>1989</year>
|
||||
|
@ -9376,7 +9376,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="cosmo">
|
||||
<description>Cosmo's Cosmic Adventure - Forbidden Planet</description>
|
||||
<year>1992</year>
|
||||
@ -11220,7 +11220,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="linksfcc">
|
||||
<!-- Dumped via Kryoflux, all tracks show as good and unmodified -->
|
||||
<description>Links - Championship Course - Firestone Country Club</description>
|
||||
|
@ -13,16 +13,16 @@ project "netlist"
|
||||
uuid "665ef8ac-2a4c-4c3e-a05f-fd1e5db11de9"
|
||||
kind (LIBTYPE)
|
||||
|
||||
if _OPTIONS["targetos"]=="windows" then
|
||||
configuration { "mingw* or vs*" }
|
||||
defines {
|
||||
"UNICODE",
|
||||
"_UNICODE",
|
||||
"_WIN32_WINNT=0x0501",
|
||||
"WIN32_LEAN_AND_MEAN",
|
||||
"NOMINMAX",
|
||||
}
|
||||
end
|
||||
if _OPTIONS["targetos"]=="windows" then
|
||||
configuration { "mingw* or vs*" }
|
||||
defines {
|
||||
"UNICODE",
|
||||
"_UNICODE",
|
||||
"_WIN32_WINNT=0x0501",
|
||||
"WIN32_LEAN_AND_MEAN",
|
||||
"NOMINMAX",
|
||||
}
|
||||
end
|
||||
|
||||
addprojectflags()
|
||||
|
||||
@ -32,7 +32,7 @@ project "netlist"
|
||||
|
||||
includedirs {
|
||||
MAME_DIR .. "src/lib",
|
||||
MAME_DIR .. "src/lib/netlist",
|
||||
MAME_DIR .. "src/lib/netlist",
|
||||
}
|
||||
|
||||
files {
|
||||
@ -47,7 +47,7 @@ project "netlist"
|
||||
MAME_DIR .. "src/lib/netlist/nl_parser.h",
|
||||
MAME_DIR .. "src/lib/netlist/nl_setup.cpp",
|
||||
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/palloc.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/pstring.cpp",
|
||||
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/ptime.h",
|
||||
MAME_DIR .. "src/lib/netlist/plib/ptime.h",
|
||||
MAME_DIR .. "src/lib/netlist/plib/ptypes.h",
|
||||
MAME_DIR .. "src/lib/netlist/plib/putil.cpp",
|
||||
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/analog/nld_bjt.cpp",
|
||||
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_mosfet.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.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.h",
|
||||
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.cpp",
|
||||
MAME_DIR .. "src/lib/netlist/analog/nlid_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_other.cpp",
|
||||
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/audio/nl_1942.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_1942.h",
|
||||
|
||||
|
||||
MAME_DIR .. "src/mame/drivers/gamemachine.cpp",
|
||||
MAME_DIR .. "src/mame/audio/nl_gamemachine.h",
|
||||
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.
|
||||
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| ||
|
||||
| IC9 IC10 IC11 IC12 IC13 IC14|CG 50821 A64 |+------------------++-IC24 EPROM--+ ||
|
||||
| +-------------+| 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
|
||||
IC21 74LS273 IC46 74LS00 IC71 74LS138
|
||||
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
|
||||
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
|
||||
Monochrome 3 VS return 2 Monochrome HR
|
||||
HR Graphics 10 +VS 17 Monitors 3111 (Amber) or
|
||||
Board 1070 11 VS return 15 3712/3715 (Black & White)
|
||||
4 VSYNC 6
|
||||
12 VSYNC 19
|
||||
5 HSYNC 7
|
||||
13 HSYNC 20
|
||||
6 High intensity 8
|
||||
14 High intensity 21
|
||||
7 Video 9
|
||||
15 Video 22
|
||||
HR Graphics 10 +VS 17 Monitors 3111 (Amber) or
|
||||
Board 1070 11 VS return 15 3712/3715 (Black & White)
|
||||
4 VSYNC 6
|
||||
12 VSYNC 19
|
||||
5 HSYNC 7
|
||||
13 HSYNC 20
|
||||
6 High intensity 8
|
||||
14 High intensity 21
|
||||
7 Video 9
|
||||
15 Video 22
|
||||
8 GND 11
|
||||
|
||||
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 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)
|
||||
* Status Register 0x3ba 0x3da r CGA/MDA status reg (incompatible)
|
||||
* 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)
|
||||
{
|
||||
uint32_t *p = &bitmap.pix32(y);
|
||||
uint32_t *p = &bitmap.pix32(y);
|
||||
uint16_t chr_base = ra;
|
||||
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 )
|
||||
{
|
||||
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
|
||||
@ -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)
|
||||
{
|
||||
fg = 3;
|
||||
@ -1384,7 +1384,7 @@ MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
||||
|
||||
// Handle intense background if blinking is disabled
|
||||
if ((m_mode_control & MR1_BLINK) == 0 &&
|
||||
(attr & ATTR_BLINK) != 0 && bg == 2)
|
||||
(attr & ATTR_BLINK) != 0 && bg == 2)
|
||||
{
|
||||
bg = 3;
|
||||
}
|
||||
@ -1400,12 +1400,12 @@ MC6845_UPDATE_ROW(isa8_epc_mda_device::crtc_update_row)
|
||||
else
|
||||
{
|
||||
if ( (m_mode_control & MR1_BLINK) &&
|
||||
( attr & ATTR_BLINK ) && ( m_framecnt & 0x10 ) )
|
||||
( attr & ATTR_BLINK ) && ( m_framecnt & 0x10 ) )
|
||||
{
|
||||
data = 0x00;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
*p = (*m_pal)[( data & 0x80 ) ? fg : bg]; p++;
|
||||
*p = (*m_pal)[( data & 0x40 ) ? 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_WRITE8_MEMBER(io_write) override;
|
||||
|
||||
|
||||
/* Monitor */
|
||||
DECLARE_INPUT_CHANGED_MEMBER(monitor_changed);
|
||||
|
||||
|
@ -28,8 +28,8 @@ Y1 : 12,000 MHz crystal 2 pin
|
||||
R1 : 15K ohm resistor +-5%
|
||||
R2 : 390 ohm resistor +-5%
|
||||
|
||||
RP1 : 10K ohm Commoned (?) resistor network 2% SIP package (code used A103GA)
|
||||
RP2 : 220 ohm Commoned (?) resistor network 2% SIP package (code used B221GA)
|
||||
RP1 : 10K ohm Commoned (?) resistor network 2% SIP package (code used A103GA)
|
||||
RP2 : 220 ohm Commoned (?) resistor network 2% SIP package (code used B221GA)
|
||||
|
||||
|
||||
|
||||
|
@ -523,7 +523,7 @@ void m6801_cpu_device::serial_transmit()
|
||||
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);
|
||||
}
|
||||
|
@ -865,7 +865,7 @@ void m6805_mrom_device::internal_map(address_map &map)
|
||||
* 6805S3 0000-007f 0080-00ff 0100-0eff 0f00-0ff7 0ff8-0fff
|
||||
* 6805U2 0000-007f 0080-00ff 07c0-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
|
||||
* 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 dydx = DYDX_XY();
|
||||
// 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...
|
||||
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)
|
||||
{
|
||||
logerror("unknown DMA params are not zero!\n");
|
||||
logerror("unknown DMA params are not zero!\n");
|
||||
}
|
||||
*/
|
||||
|
||||
|
@ -54,9 +54,9 @@
|
||||
|
||||
#include "logmacro.h"
|
||||
|
||||
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
|
||||
#define LOGREGS(...) LOGMASKED(LOG_REGS, __VA_ARGS__)
|
||||
#define LOGCONF(...) LOGMASKED(LOG_CONF, __VA_ARGS__)
|
||||
#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__)
|
||||
#define LOGREGS(...) LOGMASKED(LOG_REGS, __VA_ARGS__)
|
||||
#define LOGCONF(...) LOGMASKED(LOG_CONF, __VA_ARGS__)
|
||||
|
||||
DEFINE_DEVICE_TYPE(MC6845, mc6845_device, "mc6845", "Motorola MC6845 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 */
|
||||
if (m_register_address_latch < 0x0e &&
|
||||
m_register_address_latch != 0x0a &&
|
||||
m_register_address_latch != 0x0b) LOGSETUP(" * %02x <= %3u [%02x] %s\n", m_register_address_latch,
|
||||
data, data, std::array<char const *, 16>
|
||||
m_register_address_latch != 0x0a &&
|
||||
m_register_address_latch != 0x0b) LOGSETUP(" * %02x <= %3u [%02x] %s\n", m_register_address_latch,
|
||||
data, data, std::array<char const *, 16>
|
||||
{{ "R0 - Horizontal Total", "R1 - Horizontal Displayed", "R2 - Horizontal Sync Position",
|
||||
"R3 - Sync Width", "R4 - Vertical Total", "R5 - Vertical Total Adjust",
|
||||
"R6 - Vertical Displayed", "R7 - Vertical Sync Position", "R8 - Interlace & Skew",
|
||||
"R9 - Maximum Raster Address", "R10 - Cursor Start Address", "R11 - Cursor End Address",
|
||||
"R12 - Start Address (H)", "R13 - Start Address (L)", "R14 - Cursor (H)",
|
||||
"R15 - Cursor (L)" }}[(m_register_address_latch & 0x0f)]);
|
||||
"R3 - Sync Width", "R4 - Vertical Total", "R5 - Vertical Total Adjust",
|
||||
"R6 - Vertical Displayed", "R7 - Vertical Sync Position", "R8 - Interlace & Skew",
|
||||
"R9 - Maximum Raster Address", "R10 - Cursor Start Address", "R11 - Cursor End Address",
|
||||
"R12 - Start Address (H)", "R13 - Start Address (L)", "R14 - Cursor (H)",
|
||||
"R15 - Cursor (L)" }}[(m_register_address_latch & 0x0f)]);
|
||||
|
||||
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 (tiley & 0x20) offset += screeny;
|
||||
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];
|
||||
|
||||
if (layer.tile_mode == SNES_COLOR_DEPTH_NONE) return;
|
||||
if (layer.tile_mode == SNES_COLOR_DEPTH_NONE) return;
|
||||
|
||||
#if SNES_LAYER_DEBUG
|
||||
if (m_debug_options.bg_disabled[layer_idx])
|
||||
return;
|
||||
if (m_debug_options.bg_disabled[layer_idx])
|
||||
return;
|
||||
#endif /* SNES_LAYER_DEBUG */
|
||||
|
||||
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_color = 0;
|
||||
|
||||
int x = 0 - (hscroll & 7);
|
||||
int x = 0 - (hscroll & 7);
|
||||
while (x < width)
|
||||
{
|
||||
uint32_t hoffset = x + hscroll;
|
||||
uint32_t hoffset = x + hscroll;
|
||||
uint32_t voffset = y + vscroll;
|
||||
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 + 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 (!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 (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])
|
||||
{
|
||||
@ -2303,8 +2303,8 @@ uint16_t snes_ppu_device::direct_color(uint16_t palette, uint16_t group)
|
||||
//group = -------- -----bgr
|
||||
//output = 0BBb00GG Gg0RRRr0
|
||||
return (palette << 7 & 0x6000) + (group << 10 & 0x1000)
|
||||
+ (palette << 4 & 0x0380) + (group << 5 & 0x0040)
|
||||
+ (palette << 2 & 0x001c) + (group << 1 & 0x0002);
|
||||
+ (palette << 4 & 0x0380) + (group << 5 & 0x0040)
|
||||
+ (palette << 2 & 0x001c) + (group << 1 & 0x0002);
|
||||
}
|
||||
|
||||
void snes_ppu_device::cache_background()
|
||||
@ -3108,4 +3108,4 @@ uint8_t snes_ppu_device::dbg_video( uint16_t curline )
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* SNES_LAYER_DEBUG */
|
||||
#endif /* SNES_LAYER_DEBUG */
|
||||
|
@ -326,4 +326,4 @@ private:
|
||||
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 old_id; // previously allocated id, if applicable
|
||||
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_height; // current height (VTOTAL)
|
||||
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
|
||||
texture_format m_texformat; // texture format
|
||||
render_texture * m_texture[2]; // 2x textures for the screen bitmap
|
||||
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_ind64 m_burnin; // burn-in bitmap
|
||||
u8 m_curbitmap; // current bitmap index
|
||||
|
@ -166,7 +166,7 @@ video_manager::video_manager(running_machine &machine)
|
||||
// extract snap resolution if present
|
||||
if (sscanf(machine.options().snap_size(), "%dx%d", &m_snap_width, &m_snap_height) != 2)
|
||||
m_snap_width = m_snap_height = 0;
|
||||
|
||||
|
||||
// if no screens, create a periodic timer to drive updates
|
||||
if (no_screens)
|
||||
{
|
||||
|
@ -281,7 +281,7 @@
|
||||
NET_REGISTER_DEV(TTL_74279_DIP, name)
|
||||
|
||||
#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, GND, GND) \
|
||||
NET_CONNECT(name, A, cA) \
|
||||
|
@ -325,7 +325,7 @@ namespace netlist
|
||||
|
||||
private:
|
||||
plib::ppreprocessor::defines_map_type m_defines;
|
||||
plib::psource_collection_t<> m_includes;
|
||||
plib::psource_collection_t<> m_includes;
|
||||
|
||||
setup_t &m_setup;
|
||||
log_type &m_log;
|
||||
|
@ -469,7 +469,7 @@ namespace plib
|
||||
for (index_type k = 0; k < base::size(); k++)
|
||||
m_ge_par[levGE[k]].push_back(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
|
||||
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];
|
||||
// loop over all columns k left of diag in row 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++)
|
||||
{
|
||||
const auto k(base::col_idx[i_k]);
|
||||
|
@ -391,9 +391,9 @@ namespace plib {
|
||||
using mutex_type = pspin_mutex<TS>;
|
||||
using lock_guard_type = std::lock_guard<mutex_type>;
|
||||
|
||||
mutex_type m_lock;
|
||||
mutex_type m_lock;
|
||||
PALIGNAS_CACHELINE()
|
||||
T * m_end;
|
||||
T * m_end;
|
||||
aligned_vector<T> m_list;
|
||||
|
||||
public:
|
||||
|
@ -327,8 +327,8 @@ void ppreprocessor::error(const pstring &err)
|
||||
#define CHECKTOK2(p_op, p_prio) \
|
||||
else if (tok == # p_op) \
|
||||
{ \
|
||||
if (!has_val) \
|
||||
{ error("parsing error!"); return 1;} \
|
||||
if (!has_val) \
|
||||
{ error("parsing error!"); return 1;} \
|
||||
if (prio < (p_prio)) \
|
||||
return val; \
|
||||
start++; \
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include <string>
|
||||
#include <type_traits>
|
||||
|
||||
namespace plib
|
||||
namespace plib
|
||||
{
|
||||
template<class T>
|
||||
struct string_info
|
||||
|
@ -76,7 +76,7 @@ private:
|
||||
struct riff_chunk_t
|
||||
{
|
||||
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'}};
|
||||
};
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
* 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
|
||||
* at output XU1.14 to contain more detail.
|
||||
*
|
||||
*
|
||||
* You can observe sounds at XU1.14 by doing
|
||||
*
|
||||
* NL_LOGS=XU1.14 ./mame64 kidniki
|
||||
@ -60,7 +60,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define J4 (1)
|
||||
#define J4 (1)
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Library section header START
|
||||
|
@ -24,16 +24,16 @@
|
||||
|
||||
TODO:
|
||||
- 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;
|
||||
- II & V board: Fix sound CPU crashes properly (nested NMIs)
|
||||
- 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?)
|
||||
- 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: 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;
|
||||
- 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(0x0e8000, 0x0e8001).nopr(); /* watchdog? */
|
||||
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(0x400000, 0x400fff).rw(m_palette, FUNC(alpha68k_palette_device::read), FUNC(alpha68k_palette_device::write));
|
||||
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(0x0e8000, 0x0e8001).nopr(); /* watchdog? */
|
||||
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, 0x3001ff).w(FUNC(alpha68k_III_state::alpha_microcontroller_w));
|
||||
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
|
||||
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));
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
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);
|
||||
m_screen->set_screen_update(FUNC(alpha68k_II_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
|
||||
// TODO: should really be same as snk68.cpp
|
||||
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)
|
||||
{
|
||||
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 */
|
||||
M68000(config, m_maincpu, 8000000); // TODO: verify me
|
||||
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( "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.5", 0x00000, 0x08000, BAD_DUMP CRC(667f33f1) SHA1(6d05603b49927f09c9bb34e787b003eceaaf7062) )
|
||||
ROM_END
|
||||
@ -1704,7 +1704,7 @@ ROM_START( goldmedlb )
|
||||
ROM_LOAD32_BYTE( "goldchr1.c44", 0x000002, 0x80000, CRC(55db41cd) SHA1(15fa192ea2b829dc6dc0cb88fc2c5e5a30af6c91) )
|
||||
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.5", 0x00000, 0x08000, BAD_DUMP CRC(667f33f1) SHA1(6d05603b49927f09c9bb34e787b003eceaaf7062) )
|
||||
// TODO: recover this!
|
||||
@ -2140,7 +2140,7 @@ GAME( 1988, goldmedl, 0, goldmedal, goldmedl, goldmedal_II_state, ini
|
||||
|
||||
// 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, 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
|
||||
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
|
||||
|
||||
derived from alpha68k.cpp
|
||||
|
||||
TODO:
|
||||
- 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
|
||||
derived from alpha68k.cpp
|
||||
|
||||
TODO:
|
||||
- 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
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
void paddlemania_state::main_map(address_map &map)
|
||||
{
|
||||
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_RESET_OVERRIDE(alpha68k_I_state,common)
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
|
||||
ym3812_device &ymsnd(YM3812(config, "ymsnd", 4000000));
|
||||
ymsnd.irq_handler().set_inputline(m_audiocpu, 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.b", 0x0100, 0x0100, CRC(b6df8dcb) SHA1(318ca20fab6608aa2956ec3bb82e8ae77c250d51) ) /* G */
|
||||
ROM_LOAD( "padlem.c", 0x0200, 0x0100, CRC(39ca9b86) SHA1(8b8d7aae85830e69366e86f8b6cccfb8140cd526) ) /* B */
|
||||
|
||||
|
||||
ROM_REGION( 0x800, "clut_proms", 0 )
|
||||
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 */
|
||||
|
@ -3,14 +3,14 @@
|
||||
/***************************************************************************
|
||||
|
||||
SNK/Alpha 68000 N based board games
|
||||
|
||||
derived from alpha68k.cpp
|
||||
|
||||
TODO:
|
||||
- Super Stingray MCU irq controls timer speed. The MCU has been
|
||||
derived from alpha68k.cpp
|
||||
|
||||
TODO:
|
||||
- Super Stingray MCU irq controls timer speed. The MCU has been
|
||||
hooked up but the clock is almost certainly wrong.
|
||||
- GFX region can eventually overflow in jongbou, and in general all three
|
||||
games can probably be run with the same gfx_layout structs
|
||||
- GFX region can eventually overflow in jongbou, and in general all three
|
||||
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 my = -(mx >> 8) & 0xff;
|
||||
mx &= 0xff;
|
||||
|
||||
|
||||
// TODO: not convinced by this
|
||||
if (m_is_super_stingray && mx > 0xf8)
|
||||
mx -= 0x100;
|
||||
@ -101,7 +101,7 @@ void alpha68k_N_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipr
|
||||
{
|
||||
u8 color, bank;
|
||||
u16 tile;
|
||||
|
||||
|
||||
bank = data >> 10 & 3;
|
||||
tile = data & 0x3ff;
|
||||
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);
|
||||
tile += (data >> 3 & 0x400);
|
||||
}
|
||||
|
||||
|
||||
// can't be 0xff in super stingray
|
||||
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_RESET_OVERRIDE(alpha68k_N_state,common)
|
||||
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
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);
|
||||
m_screen->set_screen_update(FUNC(alpha68k_N_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
|
||||
PALETTE(config, m_palette, FUNC(alpha68k_N_state::palette_init), 256 + 1, 256);
|
||||
|
||||
m_tile_transchar = tile_transchar;
|
||||
@ -947,7 +947,7 @@ ROM_START( jongbou )
|
||||
ROM_REGION( 0x200, "clut_proms", 0 )
|
||||
ROM_LOAD( "h.l9", 0x0100, 0x0100, CRC(e6e93b0b) SHA1(f64ff63699451910982a1a44c94ccd2c18fd389e) )
|
||||
ROM_LOAD( "l.l10", 0x0000, 0x0100, CRC(51676dac) SHA1(685d14f448501a63cc9fa063f65842caddad8f39) )
|
||||
|
||||
|
||||
ROM_REGION( 0x2000, "color_proms", 0 )
|
||||
ROM_LOAD( "p3.i15", 0x0000, 0x2000, CRC(8c09cd2a) SHA1(317764e0f5af29e78fd764bdf28579bf6be5630f) )
|
||||
ROM_END
|
||||
|
@ -48,7 +48,7 @@ TODO:
|
||||
|
||||
#define LOG_SERVO (1 << 0)
|
||||
#define LOG_SLAVE (1 << 1)
|
||||
#define LOG_ALL (LOG_SERVO | LOG_SLAVE)
|
||||
#define LOG_ALL (LOG_SERVO | LOG_SLAVE)
|
||||
|
||||
#define VERBOSE (LOG_ALL)
|
||||
#include "logmacro.h"
|
||||
@ -112,7 +112,7 @@ void cdi_state::cdi910_mem(address_map &map)
|
||||
// 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(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(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 & 0x04) m_hmotor_sensor1_ff = true;
|
||||
|
||||
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 & 0x04) && m_hmotor_pos > 0x00) m_hmotor_pos--;
|
||||
if ((m_motors_ctrl & 0x08) && m_hmotor_pos < 0xff) m_hmotor_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 & 0x04) && m_hmotor_pos > 0x00) m_hmotor_pos--;
|
||||
if ((m_motors_ctrl & 0x08) && m_hmotor_pos < 0xff) m_hmotor_pos++;
|
||||
}
|
||||
|
||||
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)
|
||||
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;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
/*
|
||||
|
||||
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_vblank_int("screen", FUNC(towns_state::towns_vsync_irq));
|
||||
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
||||
|
||||
|
||||
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(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_vblank_int("screen", FUNC(towns_state::towns_vsync_irq));
|
||||
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);
|
||||
|
||||
// 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 */
|
||||
|
||||
/* 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.
|
||||
|
||||
/* 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.
|
||||
|
||||
The ROM is physically contained in three 4 Mbit chips: two MB834200-20 (DIP40) and one MB834200-25 (QFP44) */
|
||||
ROM_START( fmtowns )
|
||||
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);
|
||||
LOG("%s: Main IRQ asserted\n",machine().describe_context());
|
||||
// m_main_irq_status = true;
|
||||
// m_main_irq_status = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_main_irq_status)
|
||||
{
|
||||
// m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||
// LOG("%s: Main IRQ cleared\n",machine().describe_context());
|
||||
// m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||
// LOG("%s: Main IRQ cleared\n",machine().describe_context());
|
||||
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(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(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(0x20, 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)
|
||||
{
|
||||
m_scroll_ctrl = data >> 5;
|
||||
|
||||
|
||||
flipscreen_w(space, 0, (data >> 3) & 1);
|
||||
|
||||
// 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 | Diamant | Unknown | Newer PCB with Philips REF34VA and additional Compumatic custom ICs |
|
||||
| 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
|
||||
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_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( 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)
|
||||
|
@ -382,13 +382,13 @@ void sidepckt_state::sidepckt(machine_config &config)
|
||||
|
||||
Ports to be corrected once MCU is dumped
|
||||
|
||||
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_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_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_in_cb<3>().set_ioport("COIN");
|
||||
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_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_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_in_cb<3>().set_ioport("COIN");
|
||||
*/
|
||||
|
||||
/* video hardware */
|
||||
|
@ -595,7 +595,7 @@ void snk68_state::pow(machine_config &config)
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pow);
|
||||
|
||||
|
||||
ALPHA68K_PALETTE(config, m_palette, 0);
|
||||
m_palette->set_entries(2048);
|
||||
|
||||
|
@ -441,11 +441,11 @@ ROM_START( spartanxtec )
|
||||
ROM_REGION( 0x18000, "unkprom", 0 ) // just linear increasing value
|
||||
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_REGION( 0x00228, "plds", 0 )
|
||||
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
|
||||
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
Super Dead Heat hardware
|
||||
|
||||
driver by Phil Bennett
|
||||
|
||||
|
||||
TODO:
|
||||
* 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)
|
||||
{
|
||||
gfx_element *gfx = m_gfxdecode->gfx(1);
|
||||
|
||||
|
||||
/*
|
||||
Sprite RAM format:
|
||||
|
||||
|
||||
0: .... .... .... .... = ?
|
||||
|
||||
|
||||
1: .... .... xxxx xxxx = Y position
|
||||
.... ..x. .... .... = Y position
|
||||
x... .... .... .... = 0 = 16x16, 1 = 16x32
|
||||
|
||||
|
||||
2: .... ..xx xxxx xxxx = Code
|
||||
..xx xx.. .... .... = Color
|
||||
.x.. .... .... .... = X flip
|
||||
x... .... .... .... = Y flip
|
||||
|
||||
|
||||
3: .... ..xx xxxx xxxx = X position
|
||||
*/
|
||||
|
||||
|
||||
for (int offs = (0x800 / 2) - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
int code = (m_spriteram[offs + 2] & 0x3ff) ^ 0x200;
|
||||
int color = (m_spriteram[offs + 2] >> 10) & 0x0f;
|
||||
|
||||
|
||||
int y = 256 - ((m_spriteram[offs + 1] & 0x0ff));
|
||||
int x = (m_spriteram[offs + 3] & 0x3ff);
|
||||
|
||||
|
||||
int flipx = BIT(m_spriteram[offs + 2], 14);
|
||||
int flipy = BIT(m_spriteram[offs + 2], 15);
|
||||
|
||||
|
||||
if (xo == 1)
|
||||
{
|
||||
{
|
||||
x -= 0x200;
|
||||
}
|
||||
else
|
||||
@ -136,10 +136,10 @@ void spdheat_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
|
||||
if (x & 0x200)
|
||||
x -= 0x400;
|
||||
}
|
||||
|
||||
|
||||
if (yo != BIT(m_spriteram[offs + 1], 9))
|
||||
continue;
|
||||
|
||||
|
||||
if ((m_spriteram[offs + 1] & 0x8000) == 0)
|
||||
{
|
||||
if (flipy)
|
||||
@ -353,105 +353,105 @@ WRITE8_MEMBER(spdheat_state::sub_nmi_w)
|
||||
*************************************/
|
||||
|
||||
/*
|
||||
|
||||
YM2203 IC62
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGA[3:0]
|
||||
xxxx .... PC010SA IC58 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC58 'BASS'
|
||||
xxxx .... PC010SA IC58 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC58 (PSGA)
|
||||
|
||||
|
||||
YM2203 IC61
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGB[3:0]
|
||||
xxxx .... PC010SA IC59 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC59 'BASS'
|
||||
xxxx .... PC010SA IC59 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC59 (PSGB)
|
||||
|
||||
|
||||
YM2149 IC57
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGC[3:0]
|
||||
xxxx .... PC010SA IC54 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC54 'BASS'
|
||||
xxxx .... PC010SA IC54 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC54 (PSGC)
|
||||
|
||||
|
||||
YM2149 IC56
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGD[3:0]
|
||||
xxxx .... PC010SA IC55 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC55 'BASS'
|
||||
xxxx .... PC010SA IC55 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC55 (PSGD)
|
||||
|
||||
|
||||
PGC[3:0], PGD[3:0] = FMB BAL1
|
||||
PGA[3:0], PGB[3:0] = FMB VR1
|
||||
|
||||
YM2203 IC62
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGA[3:0]
|
||||
xxxx .... PC010SA IC58 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC58 'BASS'
|
||||
xxxx .... PC010SA IC58 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC58 (PSGA)
|
||||
|
||||
|
||||
YM2203 IC61
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGB[3:0]
|
||||
xxxx .... PC010SA IC59 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC59 'BASS'
|
||||
xxxx .... PC010SA IC59 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC59 (PSGB)
|
||||
|
||||
|
||||
YM2149 IC57
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGC[3:0]
|
||||
xxxx .... PC010SA IC54 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC54 'BASS'
|
||||
xxxx .... PC010SA IC54 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC54 (PSGC)
|
||||
|
||||
|
||||
YM2149 IC56
|
||||
===========
|
||||
|
||||
PORT A
|
||||
.... xxxx PGD[3:0]
|
||||
xxxx .... PC010SA IC55 'VR'
|
||||
|
||||
PORT B
|
||||
.... xxxx PC010SA IC55 'BASS'
|
||||
xxxx .... PC010SA IC55 TREBL
|
||||
|
||||
PSG OUTPUT -> PC010SA IC55 (PSGD)
|
||||
|
||||
|
||||
PGC[3:0], PGD[3:0] = FMB BAL1
|
||||
PGA[3:0], PGB[3:0] = FMB VR1
|
||||
*/
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym1_port_a_w)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym1_port_b_w)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym2_port_a_w)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym2_port_b_w)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym3_port_a_w)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym3_port_b_w)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(spdheat_state::ym4_port_a_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( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) // see above
|
||||
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( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) // see above
|
||||
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);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &spdheat_state::sound_map);
|
||||
|
||||
|
||||
Z80(config, m_subcpu, SOUND_CLOCK);
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &spdheat_state::sub_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 */
|
||||
// TODO: there are multiple speakers
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
|
||||
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));
|
||||
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));
|
||||
@ -745,7 +745,7 @@ void spdheat_state::spdheat(machine_config &config)
|
||||
ym1.add_route(1, "mono", 0.3);
|
||||
ym1.add_route(2, "mono", 0.3);
|
||||
ym1.add_route(3, "mono", 0.3);
|
||||
|
||||
|
||||
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.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(2, "mono", 0.3);
|
||||
ym2.add_route(3, "mono", 0.3);
|
||||
|
||||
|
||||
ym2149_device &ym3(YM2149(config, "ym3", SOUND_CLOCK));
|
||||
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));
|
||||
@ -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_b_write_callback().set(FUNC(spdheat_state::ym4_port_b_w));
|
||||
ym4.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"));
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
@ -11,12 +11,12 @@
|
||||
JAKKS Spiderman 5-in-1 (original release)
|
||||
Conny TV Virtual Tennis
|
||||
|
||||
assumed:
|
||||
assumed:
|
||||
JAKKS EA Sports (NHL 95 + Madden 95) (US)
|
||||
JAKKS EA Sports (NHL 95 + Fifa 96) (US)
|
||||
JAKKS Bob the Builder
|
||||
Conny Ping Pong
|
||||
JAKKS Disney (original release)
|
||||
JAKKS EA Sports (NHL 95 + Fifa 96) (US)
|
||||
JAKKS Bob the Builder
|
||||
Conny Ping Pong
|
||||
JAKKS Disney (original release)
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -92,25 +92,25 @@ DEBUG TRICKS:
|
||||
#define DEBUG_PRIORITY (0)
|
||||
#define DEBUG_PRIORITY_INDEX (0) // 0-3
|
||||
|
||||
#define LOG_UNKNOWNS (1 << 0)
|
||||
#define LOG_DMA (1 << 1)
|
||||
#define LOG_SPRDMA (1 << 2)
|
||||
#define LOG_SPRITES (1 << 3)
|
||||
#define LOG_TILEMAP0 (1 << 4)
|
||||
#define LOG_TILEMAP1 (1 << 5)
|
||||
#define LOG_TILEMAP2 (1 << 6)
|
||||
#define LOG_ROZ (1 << 7)
|
||||
#define LOG_HFVIDEO (1 << 8)
|
||||
#define LOG_IRQS (1 << 9)
|
||||
#define LOG_SOUND (1 << 10)
|
||||
#define LOG_HFUNKNOWNS (1 << 11)
|
||||
#define LOG_68K_SOUND (1 << 12)
|
||||
#define LOG_CONTROLS (1 << 13)
|
||||
#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_DEFAULT (LOG_ALL & ~(LOG_HFVIDEO | LOG_HFUNKNOWNS))
|
||||
#define LOG_UNKNOWNS (1 << 0)
|
||||
#define LOG_DMA (1 << 1)
|
||||
#define LOG_SPRDMA (1 << 2)
|
||||
#define LOG_SPRITES (1 << 3)
|
||||
#define LOG_TILEMAP0 (1 << 4)
|
||||
#define LOG_TILEMAP1 (1 << 5)
|
||||
#define LOG_TILEMAP2 (1 << 6)
|
||||
#define LOG_ROZ (1 << 7)
|
||||
#define LOG_HFVIDEO (1 << 8)
|
||||
#define LOG_IRQS (1 << 9)
|
||||
#define LOG_SOUND (1 << 10)
|
||||
#define LOG_HFUNKNOWNS (1 << 11)
|
||||
#define LOG_68K_SOUND (1 << 12)
|
||||
#define LOG_CONTROLS (1 << 13)
|
||||
#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_DEFAULT (LOG_ALL & ~(LOG_HFVIDEO | LOG_HFUNKNOWNS))
|
||||
|
||||
#define VERBOSE (0)
|
||||
#define VERBOSE (0)
|
||||
#include "logmacro.h"
|
||||
|
||||
class supracan_state : public driver_device
|
||||
|
@ -7,21 +7,21 @@
|
||||
Hardware:
|
||||
- AMD N80C188-25
|
||||
- TERMTEK TKA-200
|
||||
- 128k + 32k RAM
|
||||
- 128k + 32k RAM
|
||||
- 256 KB flash memory
|
||||
|
||||
Features:
|
||||
- 31.5khz or 48.1khz horizontal
|
||||
- 70/72 hz vertical
|
||||
- 70/72 hz vertical
|
||||
- 16 background/foreground/border colors
|
||||
- 24x80/132, 25x80/132, 42x80/132, 43x80/132
|
||||
- Standard PC/AT keyboard
|
||||
- Standard PC/AT keyboard
|
||||
|
||||
Notes:
|
||||
- Identical to the Qume QVT-72 Plus?
|
||||
Notes:
|
||||
- Identical to the Qume QVT-72 Plus?
|
||||
|
||||
TODO:
|
||||
- Everything
|
||||
TODO:
|
||||
- Everything
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
@ -83,9 +83,9 @@ void tk635_state::io_map(address_map &map)
|
||||
map(0x04, 0x04).w(FUNC(tk635_state::voffset_lsb_w));
|
||||
map(0x05, 0x05).w(FUNC(tk635_state::voffset_msb_w));
|
||||
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(0x1b, 0x1b).ram(); // aux port
|
||||
// map(0x1b, 0x1b).ram(); // aux port
|
||||
map(0xf0, 0xf0).w(FUNC(tk635_state::unk_f0_w));
|
||||
}
|
||||
|
||||
|
@ -101,14 +101,14 @@
|
||||
Game seems unhappy with NVRAM, clears contents on each boot.
|
||||
jak_pooh:
|
||||
In the 'Light Tag' minigame (select the rock) the game usually softlocks when you find a friend (with or without DRC)
|
||||
jak_care:
|
||||
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.
|
||||
jak_care:
|
||||
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.
|
||||
jak_disf:
|
||||
Shows corrupt logo on first boot with no valid nvram (possibly hardware does too - verify if possible to invalidate EEPROM on device)
|
||||
lexizeus:
|
||||
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?)
|
||||
lexizeus:
|
||||
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?)
|
||||
|
||||
vii:
|
||||
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,
|
||||
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
|
||||
111111
|
||||
5432109876543210
|
||||
IOA ............111. (values go from . to 1 when inputs are moved, never 0 as in MAME!, core bug?)
|
||||
GAMEKEY E0
|
||||
IOB0
|
||||
IOC XXX.........X...
|
||||
SPRITES
|
||||
RAM OK 2800
|
||||
111111
|
||||
5432109876543210
|
||||
IOA ............111. (values go from . to 1 when inputs are moved, never 0 as in MAME!, core bug?)
|
||||
GAMEKEY E0
|
||||
IOB0
|
||||
IOC XXX.........X...
|
||||
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:
|
||||
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);
|
||||
m_maincpu->set_pal(true);
|
||||
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)
|
||||
@ -2556,11 +2556,11 @@ void spg2xx_game_state::taikeegr(machine_config &config)
|
||||
spg2xx_base(config);
|
||||
|
||||
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->portb_in().set_ioport("P2");
|
||||
// m_maincpu->portc_in().set_ioport("P3");
|
||||
// m_maincpu->portb_in().set_ioport("P2");
|
||||
// m_maincpu->portc_in().set_ioport("P3");
|
||||
|
||||
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)
|
||||
ROM_END
|
||||
|
||||
ROM_START( pvmil )
|
||||
ROM_START( pvmil )
|
||||
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_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 );
|
||||
src[i] = dat;
|
||||
}
|
||||
|
||||
|
||||
std::vector<u16> buffer(0x800000/2);
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
// 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;
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
optional_shared_ptr<u16> m_videoram;
|
||||
|
||||
|
||||
optional_ioport_array<7> m_in;
|
||||
optional_memory_bank m_audiobank;
|
||||
|
||||
@ -95,10 +95,10 @@ public:
|
||||
, m_sprites(*this, "sprites")
|
||||
, m_palette(*this, "palette")
|
||||
{}
|
||||
|
||||
|
||||
void alpha68k_II(machine_config &config);
|
||||
void btlfieldb(machine_config &config);
|
||||
|
||||
|
||||
void init_skysoldr();
|
||||
void init_timesold();
|
||||
void init_timesold1();
|
||||
@ -108,7 +108,7 @@ protected:
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
required_device<snk68_spr_device> m_sprites;
|
||||
required_device<alpha68k_palette_device> m_palette;
|
||||
|
||||
|
||||
void base_config(machine_config &config);
|
||||
DECLARE_VIDEO_START(alpha68k);
|
||||
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)
|
||||
: alpha68k_II_state(mconfig, type, tag)
|
||||
{}
|
||||
|
||||
|
||||
void init_goldmedl();
|
||||
void goldmedal(machine_config &config);
|
||||
};
|
||||
@ -165,7 +165,7 @@ public:
|
||||
alpha68k_III_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: alpha68k_II_state(mconfig, type, tag)
|
||||
{}
|
||||
|
||||
|
||||
void alpha68k_III(machine_config &config);
|
||||
protected:
|
||||
DECLARE_MACHINE_START(alpha68k_V);
|
||||
@ -181,7 +181,7 @@ public:
|
||||
goldmedal_III_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: alpha68k_III_state(mconfig, type, tag)
|
||||
{}
|
||||
|
||||
|
||||
void init_goldmedla();
|
||||
void goldmedal(machine_config &config);
|
||||
};
|
||||
@ -234,8 +234,8 @@ public:
|
||||
m_palette(*this, "palette"),
|
||||
m_color_proms(*this, "color_proms")
|
||||
{}
|
||||
|
||||
protected:
|
||||
|
||||
protected:
|
||||
void palette_init(palette_device &palette) const;
|
||||
|
||||
required_device<palette_device> m_palette;
|
||||
@ -259,10 +259,10 @@ protected:
|
||||
|
||||
void base_config(machine_config &config);
|
||||
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);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
|
||||
u16 kyros_alpha_trigger_r(offs_t offset);
|
||||
void sound_map(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)
|
||||
: alpha68k_N_state(mconfig, type, tag)
|
||||
{}
|
||||
|
||||
|
||||
void kyros(machine_config &config);
|
||||
void init_kyros();
|
||||
};
|
||||
@ -321,7 +321,7 @@ public:
|
||||
jongbou_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: alpha68k_N_state(mconfig, type, tag)
|
||||
{}
|
||||
|
||||
|
||||
void jongbou(machine_config &config);
|
||||
void init_jongbou();
|
||||
|
||||
@ -344,7 +344,7 @@ public:
|
||||
: alpha68k_prom_state(mconfig, type, tag)
|
||||
{}
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
void base_config(machine_config &config);
|
||||
void video_config(machine_config &config, int yshift);
|
||||
|
@ -142,7 +142,7 @@ class towns_state : public driver_device
|
||||
void townssj(machine_config &config);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(towns_vsync_irq);
|
||||
|
||||
|
||||
protected:
|
||||
uint16_t m_towns_machine_id; // default is 0x0101
|
||||
|
||||
@ -159,7 +159,7 @@ protected:
|
||||
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
|
||||
required_device_array<upd71071_device, 2> m_dma;
|
||||
optional_device<fmscsi_device> m_scsi;
|
||||
required_device_array<floppy_connector, 2> m_flop;
|
||||
|
@ -125,7 +125,7 @@ private:
|
||||
uint8_t m_packet_buffer[2];
|
||||
uint8_t m_packet_write_pos;
|
||||
bool m_packet_reset;
|
||||
|
||||
|
||||
u8 m_strnskil_slave_irq;
|
||||
};
|
||||
|
||||
|
@ -41,14 +41,14 @@ public:
|
||||
m_palette3(*this, "palette3"),
|
||||
m_dac(*this, "dac")
|
||||
{ }
|
||||
|
||||
|
||||
void spdheat(machine_config &config);
|
||||
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
@ -57,24 +57,24 @@ private:
|
||||
required_shared_ptr_array<uint16_t, 4> m_fg_ram;
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
tilemap_t *m_fg_tilemap[4];
|
||||
|
||||
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette0;
|
||||
required_device<palette_device> m_palette1;
|
||||
required_device<palette_device> m_palette2;
|
||||
required_device<palette_device> m_palette3;
|
||||
required_device<dac_byte_interface> m_dac;
|
||||
|
||||
|
||||
uint32_t m_sound_data[4];
|
||||
uint32_t m_sound_status;
|
||||
uint32_t m_sub_data;
|
||||
uint32_t m_sub_status;
|
||||
|
||||
|
||||
void main_map(address_map &map);
|
||||
void sub_map(address_map &map);
|
||||
void sub_io_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
|
||||
|
||||
DECLARE_READ8_MEMBER(sub_r);
|
||||
DECLARE_WRITE8_MEMBER(sub_dac_w);
|
||||
DECLARE_WRITE8_MEMBER(sub_nmi_w);
|
||||
@ -94,7 +94,7 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(ym3_port_b_w);
|
||||
DECLARE_WRITE8_MEMBER(ym4_port_a_w);
|
||||
DECLARE_WRITE8_MEMBER(ym4_port_b_w);
|
||||
|
||||
|
||||
template<int screen> DECLARE_WRITE16_MEMBER(text_w);
|
||||
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);
|
||||
|
@ -278,7 +278,7 @@ WRITE_LINE_MEMBER(eispc_keyboard_device::rst_line_w)
|
||||
}
|
||||
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->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
LOGRST("KBD: Keyboard mcu reset line is asserted\n");
|
||||
|
@ -2,26 +2,26 @@
|
||||
// copyright-holders:Angelo Salese
|
||||
/******************************************************************************
|
||||
|
||||
Alpha Denshi "NeoGeo" palette devices
|
||||
Alpha Denshi "NeoGeo" palette devices
|
||||
|
||||
Notes:
|
||||
- URL reference: https://wiki.neogeodev.org/index.php?title=Palettes
|
||||
Notes:
|
||||
- URL reference: https://wiki.neogeodev.org/index.php?title=Palettes
|
||||
|
||||
TODO:
|
||||
- Make mods to support NeoGeo HW (palette bank, shadows);
|
||||
- Are alpha68k.cpp/snk68.cpp with or without shadows?
|
||||
- Reference color, research exact consequences about this wiki claim:
|
||||
"It always has to be pure black ($8000)(*) otherwise monitors won't
|
||||
be happy and other colors won't be displayed correctly."
|
||||
(*) tested nam1975/skyadvnt, they actually setup $0000.
|
||||
Update: Gold Medalist actually setup $0fff when starter pistol is shot
|
||||
on dash events, according to a reference video it causes generally darker
|
||||
colors on playfield and a color overflow in the border area.
|
||||
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
|
||||
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
|
||||
flash (without palette clamp?).
|
||||
TODO:
|
||||
- Make mods to support NeoGeo HW (palette bank, shadows);
|
||||
- Are alpha68k.cpp/snk68.cpp with or without shadows?
|
||||
- Reference color, research exact consequences about this wiki claim:
|
||||
"It always has to be pure black ($8000)(*) otherwise monitors won't
|
||||
be happy and other colors won't be displayed correctly."
|
||||
(*) tested nam1975/skyadvnt, they actually setup $0000.
|
||||
Update: Gold Medalist actually setup $0fff when starter pistol is shot
|
||||
on dash events, according to a reference video it causes generally darker
|
||||
colors on playfield and a color overflow in the border area.
|
||||
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
|
||||
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
|
||||
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 g = ((pal_data >> 13) & 0x1) | ((pal_data >> 3) & 0x1e);
|
||||
int b = ((pal_data >> 12) & 0x1) | ((pal_data << 1) & 0x1e);
|
||||
|
||||
|
||||
r >>= shift;
|
||||
g >>= shift;
|
||||
b >>= shift;
|
||||
@ -159,7 +159,7 @@ WRITE16_MEMBER( alpha68k_palette_device::write )
|
||||
// TODO: actual behaviour, needs HW tests.
|
||||
bool is_sync_color = (pal_data & 0x7fff) == 0;
|
||||
int sync_color_shift = is_sync_color ? 0 : 2;
|
||||
|
||||
|
||||
for (int i=0; i<m_entries; i++)
|
||||
set_color_entry(i, m_paletteram[i], sync_color_shift);
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Angelo Salese
|
||||
/***************************************************************************
|
||||
|
||||
Alpha Denshi "NeoGeo" palette devices
|
||||
Alpha Denshi "NeoGeo" palette devices
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -44,7 +44,7 @@ protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
|
||||
virtual uint32_t palette_entries() const override { return m_entries; }
|
||||
private:
|
||||
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
|
||||
// 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:
|
||||
nmk16.cpp
|
||||
powerins.cpp
|
||||
used by:
|
||||
nmk16.cpp
|
||||
powerins.cpp
|
||||
|
||||
Sprite format (16 byte per each sprite):
|
||||
Sprite format (16 byte per each sprite):
|
||||
|
||||
Offset Bits Description
|
||||
fedcba98 76543210
|
||||
00 -------- -------s Visible
|
||||
02 ---x---- -------- Flip X (powerins)
|
||||
------x- -------- Flip Y (manybloc)
|
||||
-------x -------- Flip X (manybloc) or Code hi bits (powerins)
|
||||
-------- xxxx---- Number of tiles along Y, minus 1 (1-16)
|
||||
-------- ----xxxx Number of tiles along X, minus 1 (1-16)
|
||||
04 -------- -------- Unused
|
||||
06 xxxxxxxx xxxxxxxx Code (low 15 bit for powerins)
|
||||
08 ------xx xxxxxxxx X (10 bit for powerins, 9 bit for others)
|
||||
0a -------- -------- Unused
|
||||
0c ------xx xxxxxxxx Y (10 bit for powerins, 9 bit for others)
|
||||
0e -------- --xxxxxx Palette select (differ bits per game (4/5/6 bits))
|
||||
Offset Bits Description
|
||||
fedcba98 76543210
|
||||
00 -------- -------s Visible
|
||||
02 ---x---- -------- Flip X (powerins)
|
||||
------x- -------- Flip Y (manybloc)
|
||||
-------x -------- Flip X (manybloc) or Code hi bits (powerins)
|
||||
-------- xxxx---- Number of tiles along Y, minus 1 (1-16)
|
||||
-------- ----xxxx Number of tiles along X, minus 1 (1-16)
|
||||
04 -------- -------- Unused
|
||||
06 xxxxxxxx xxxxxxxx Code (low 15 bit for powerins)
|
||||
08 ------xx xxxxxxxx X (10 bit for powerins, 9 bit for others)
|
||||
0a -------- -------- Unused
|
||||
0c ------xx xxxxxxxx Y (10 bit for powerins, 9 bit for others)
|
||||
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()
|
||||
{
|
||||
LOG("dr0_r 0x%02x (%s)\n", m_dr0, machine().describe_context());
|
||||
|
||||
|
||||
return m_dr0;
|
||||
}
|
||||
|
||||
u8 sgi_gr1_device::dr1_r()
|
||||
{
|
||||
LOG("dr1_r 0x%02x (%s)\n", m_dr1, machine().describe_context());
|
||||
|
||||
|
||||
return m_dr1;
|
||||
}
|
||||
|
||||
u8 sgi_gr1_device::dr2_r()
|
||||
{
|
||||
LOG("dr2_r 0x%02x (%s)\n", m_dr2, machine().describe_context());
|
||||
|
||||
|
||||
return m_dr2;
|
||||
}
|
||||
|
||||
u8 sgi_gr1_device::dr3_r()
|
||||
{
|
||||
LOG("dr3_r 0x%02x (%s)\n", m_dr3, machine().describe_context());
|
||||
|
||||
|
||||
return m_dr3;
|
||||
}
|
||||
|
||||
u8 sgi_gr1_device::dr4_r()
|
||||
{
|
||||
LOG("dr4_r 0x%02x (%s)\n", m_dr4, machine().describe_context());
|
||||
|
||||
|
||||
return (m_dr4 | (m_ge->suspended() ? 0 : DR4_GESTALL)) & DR4_RM;
|
||||
}
|
||||
|
||||
void sgi_gr1_device::dr0_w(u8 data)
|
||||
{
|
||||
LOG("dr0_w 0x%02x (%s)\n", data, machine().describe_context());
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
LOG("dr3_w 0x%02x (%s)\n", data, machine().describe_context());
|
||||
|
||||
|
||||
m_dr3 = (m_dr3 & ~DR3_WM) | (data & DR3_WM);
|
||||
}
|
||||
|
||||
|
@ -2,9 +2,9 @@
|
||||
// copyright-holders:Bryan McPhail, Acho A. Tang, Nicola Salmoria
|
||||
/*
|
||||
* 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.
|
||||
* 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.
|
||||
*
|
||||
* 0x0000-0x1000
|
||||
@ -35,10 +35,10 @@
|
||||
* - player death animation has first frame with inverted horizontal halves;
|
||||
* - stage 1 priest desyncs with background;
|
||||
* - 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.
|
||||
* - 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;
|
||||
* - 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;
|
||||
my = -my;
|
||||
|
||||
|
||||
// TODO: alpha68k games all wants this hack, why?
|
||||
if (group == 1 && start_offset == 0x7c0)
|
||||
my++;
|
||||
|
@ -70,14 +70,14 @@
|
||||
---- ---- ---4 ---- Layer Disable
|
||||
---- ---- ---- 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!
|
||||
|
||||
***************************************************************************
|
||||
|
||||
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]; }
|
||||
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]; }
|
||||
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 set_flip(u32 attributes) { m_tmap->set_flip(attributes); }
|
||||
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;
|
||||
int64_t m_current_time;
|
||||
uint32_t m_screen_index;
|
||||
bool m_has_converter;
|
||||
bool m_has_converter;
|
||||
};
|
||||
|
||||
#endif // __DRAWBGFX_CHAIN__
|
||||
|
@ -144,10 +144,10 @@ private:
|
||||
std::vector<ui::menu_item> m_selection_sliders;
|
||||
std::vector<std::unique_ptr<slider_state>> m_core_sliders;
|
||||
std::vector<int32_t> m_current_chain;
|
||||
std::vector<bgfx_texture*> m_screen_textures;
|
||||
std::vector<bgfx_texture*> m_screen_palettes;
|
||||
std::vector<bgfx_texture*> m_screen_textures;
|
||||
std::vector<bgfx_texture*> m_screen_palettes;
|
||||
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;
|
||||
|
||||
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);
|
||||
|
||||
bgfx_texture_handle_provider* provider = chains().textures().provider(name);
|
||||
if (!provider)
|
||||
return;
|
||||
if (!provider)
|
||||
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)
|
||||
{
|
||||
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++)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_PALETTE16):
|
||||
copy_util::copyline_palette16(dst, src16, width, palette);
|
||||
src16 += rowpixels;
|
||||
break;
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_YUY16):
|
||||
copy_util::copyline_yuy16_to_argb(dst, src16, width, palette, 1);
|
||||
src16 += rowpixels;
|
||||
break;
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_ARGB32):
|
||||
copy_util::copyline_argb32(dst, src32, width, palette);
|
||||
src32 += rowpixels;
|
||||
break;
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_RGB32):
|
||||
copy_util::copyline_rgb32(dst, src32, width, palette);
|
||||
src32 += rowpixels;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
dst += width;
|
||||
switch (format)
|
||||
{
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_PALETTE16):
|
||||
copy_util::copyline_palette16(dst, src16, width, palette);
|
||||
src16 += rowpixels;
|
||||
break;
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_YUY16):
|
||||
copy_util::copyline_yuy16_to_argb(dst, src16, width, palette, 1);
|
||||
src16 += rowpixels;
|
||||
break;
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_ARGB32):
|
||||
copy_util::copyline_argb32(dst, src32, width, palette);
|
||||
src32 += rowpixels;
|
||||
break;
|
||||
case PRIMFLAG_TEXFORMAT(TEXFORMAT_RGB32):
|
||||
copy_util::copyline_rgb32(dst, src32, width, palette);
|
||||
src32 += rowpixels;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
dst += width;
|
||||
}
|
||||
return mem;*/
|
||||
}
|
||||
|
@ -227,7 +227,7 @@ struct ti990_fdr
|
||||
UINT32BE eom; /* end of medium record number */
|
||||
UINT32BE bkm; /* end of medium block number */
|
||||
UINT16BE ofm; /* end of medium offset / */
|
||||
/* prelog number for KIF */
|
||||
/* prelog number for KIF */
|
||||
UINT32BE fbq; /* free block queue head */
|
||||
UINT16BE btr; /* B-tree roots block # */
|
||||
UINT32BE ebq; /* empty block queue head */
|
||||
|
Loading…
Reference in New Issue
Block a user