Merge tag 'mame0220' into mainline-master

MAME 0.220
This commit is contained in:
Vas Crabb 2020-04-06 03:52:34 +10:00
commit c3da4c5b4b
12 changed files with 86 additions and 299 deletions

View file

@ -4,8 +4,8 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mamedev.mame"
android:versionCode="219"
android:versionName="0.219"
android:versionCode="220"
android:versionName="0.220"
android:installLocation="auto">
<!-- OpenGL ES 2.0 -->

View file

@ -681,7 +681,7 @@ V.Smile Smartbook Smartidges (need a Smartbook touch tablet connected to a regul
<!-- No inputs -->
<software name="redhoodf" cloneof="redhoodg" supported="no">
<description>Les adventures du Petit Chaperon Rouge (France)</description>
<description>Les aventures du Petit Chaperon Rouge (France)</description>
<year>200?</year>
<publisher>VTech</publisher>
<info name="serial" value="80-092025(FR)" />
@ -2361,7 +2361,7 @@ V.Smile Smartbook Smartidges (need a Smartbook touch tablet connected to a regul
<!-- UNSP: illegal ALU optype 07 at 2a0001 -->
<software name="mickymagf" cloneof="mickymag" supported="no">
<description>Disney Mickey - Meickey à la Recherche De Pluto (France)</description>
<description>Disney Mickey - Mickey à la Recherche De Pluto (France)</description>
<year>2005</year>
<publisher>VTech</publisher>
<info name="serial" value="80-092085(FR)" />

View file

@ -1704,14 +1704,14 @@ endif
ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
@echo '#define BARE_BUILD_VERSION "0.219"' > $@
@echo '#define BARE_BUILD_VERSION "0.220"' > $@
@echo 'extern const char bare_build_version[];' >> $@
@echo 'extern const char build_version[];' >> $@
@echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@
@echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@
else
$(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
@echo #define BARE_BUILD_VERSION "0.219" > $@
@echo #define BARE_BUILD_VERSION "0.220" > $@
@echo extern const char bare_build_version[]; >> $@
@echo extern const char build_version[]; >> $@
@echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@

View file

@ -739,15 +739,15 @@ void intelfsh_device::write_full(uint32_t address, uint32_t data)
logerror("Invalid flash mode byte %x\n", data & 0xff);
else
{
m_status = 0x80;
m_flash_mode = FM_READSTATUS;
m_status = 0x80;
m_flash_mode = FM_READSTATUS;
}
break;
case 0x20: // block erase
if (m_type == FLASH_SST_49LF020)
logerror("Unknown flash mode byte %x\n", data & 0xff);
else
m_flash_mode = FM_CLEARPART1;
m_flash_mode = FM_CLEARPART1;
break;
case 0x60: // set master lock
m_flash_mode = FM_SETMASTER;
@ -923,7 +923,7 @@ void intelfsh_device::write_full(uint32_t address, uint32_t data)
memset(&m_data[0x3C000], 0xff, 0x04000);
}
else
memset(&m_data[0], 0xff, m_size);
memset(&m_data[0], 0xff, m_size);
m_status = 1 << 3;
m_flash_mode = FM_ERASEAMD4;

View file

@ -10,12 +10,11 @@
#include "sunplus_gcm394.h"
#define LOG_GCM394_SPI (1U << 4)
#define LOG_GCM394_IO (1U << 3)
#define LOG_GCM394_SYSDMA (1U << 2)
#define LOG_GCM394 (1U << 1)
#define LOG_GCM394_UNMAPPED (1U << 0)
#define LOG_GCM394_SPI (1U << 5)
#define LOG_GCM394_IO (1U << 4)
#define LOG_GCM394_SYSDMA (1U << 3)
#define LOG_GCM394 (1U << 2)
#define LOG_GCM394_UNMAPPED (1U << 1)
#define VERBOSE (LOG_GCM394 | LOG_GCM394_UNMAPPED | LOG_GCM394_SYSDMA)
#include "logmacro.h"
@ -124,7 +123,7 @@ READ16_MEMBER(sunplus_gcm394_base_device::system_dma_status_r)
// bit 0 = channel 0 ready
// bit 1 = channel 1 ready
return 0x00FF;
return 0x00ff;
}
void sunplus_gcm394_base_device::trigger_systemm_dma(address_space &space, int channel)

View file

@ -3,8 +3,8 @@
// Samsung KS0164 wavetable chip
#ifndef DEVICES_SOUND_KS0164_H
#define DEVICES_SOUND_KS0164_H
#ifndef MAME_SOUND_KS0164_H
#define MAME_SOUND_KS0164_H
#pragma once

View file

@ -7,10 +7,9 @@
#include "emu.h"
#include "video/ppu2c0x_sh6578.h"
#define LOG_PPU_EXTRA (1U << 0)
#define LOG_PPU_EXTRA (1U << 1)
//#define VERBOSE (LOG_PPU_EXTRA)
#define VERBOSE (0)
#include "logmacro.h"

View file

@ -20,8 +20,8 @@
#include "machine/bankdev.h"
#include "machine/timer.h"
#define LOG_DMA (1U << 1)
#define LOG_PPU (1U << 0)
#define LOG_DMA (1U << 2)
#define LOG_PPU (1U << 1)
//#define VERBOSE (LOG_PPU)
#define VERBOSE (0)

View file

@ -1873,5 +1873,3 @@ void generalplus_gpspispi_game_state::init_spi()
CONS(200?, bkrankp, 0, 0, generalplus_gpspispi_bkrankp, gcm394, generalplus_gpspispi_bkrankp_game_state , init_spi, "Bandai", "Karaoke Ranking Party (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)

View file

@ -313,12 +313,12 @@ void xavix2_state::gpu1_trigger_w(u8 data)
void xavix2_state::gpu_update(u16 count, u16 adr)
{
int *list = new int[count];
std::unique_ptr<int []> list(new int[count]);
for(u32 i=0; i != count; i++) {
u64 command = m_maincpu->space(AS_PROGRAM).read_qword(adr + 8*i);
list[i] = (command & 0x1fe00000) | i;
}
std::sort(list, list + count, std::greater<int>());
std::sort(list.get(), list.get() + count, std::greater<int>());
for(u32 i=0; i != count; i++) {
u64 command = m_maincpu->space(AS_PROGRAM).read_qword(adr + 8*(list[i] & 0xffff));
logerror("gpu %02d: %016x x=%03x y=%03x ?=%02x ?=%x s=%02x w=%02x h=%02x c=%04x %s\n",
@ -370,7 +370,6 @@ void xavix2_state::gpu_update(u16 count, u16 adr)
}
}
}
delete[] list;
}
void xavix2_state::gpu_descsize_w(u16 data)

View file

@ -315,17 +315,18 @@ public:
m_bank8000(*this, "bank8000"),
m_gfxdecode(*this, "gfxdecode"),
m_tileram(*this, "williams2_tile"),
m_gain({0.8f, 0.73f, 0.81f}),
m_offset({-0.27f, 0.0f, -0.22f})
m_gain({ 0.8f, 0.73f, 0.81f }),
m_offset({ -0.27f, 0.0f, -0.22f })
{ }
void williams2_base(machine_config &config);
INPUT_CHANGED_MEMBER(rgb_gain)
{
if (param < 3)
m_gain[param] = (float) newval / 100.0f;
m_gain[param] = float(newval) / 100.0f;
else
m_offset[param-3] = (float) newval / 100.0f - 1.0f;
m_offset[param - 3] = (float(newval) / 100.0f) - 1.0f;
rebuild_palette();
}

View file

@ -273,6 +273,7 @@ uint32_t blaster_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
return 0;
}
uint32_t williams2_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
rgb_t pens[16];
@ -304,6 +305,7 @@ uint32_t williams2_state::screen_update(screen_device &screen, bitmap_rgb32 &bit
return 0;
}
uint32_t mysticm_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
rgb_t pens[16];
@ -337,6 +339,8 @@ uint32_t mysticm_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
return 0;
}
/*************************************
*
* Williams palette I/O
@ -368,6 +372,7 @@ void williams_state::palette_init(palette_device &palette) const
}
}
rgb_t williams2_state::calc_col(uint16_t lo, uint16_t hi)
{
/*
@ -390,289 +395,69 @@ rgb_t williams2_state::calc_col(uint16_t lo, uint16_t hi)
static const float frgb[256] =
{
0.001889f,
0.002456f,
0.003196f,
0.004384f,
0.005272f,
0.007672f,
0.011345f,
0.017759f,
0.018643f,
0.03103f,
0.051912f,
0.087251f,
0.1256f,
0.204967f,
0.331644f,
0.529628f,
0.002524f,
0.003306f,
0.004371f,
0.006072f,
0.007386f,
0.010812f,
0.016096f,
0.02509f,
0.02687f,
0.043747f,
0.070899f,
0.114042f,
0.159992f,
0.250108f,
0.391104f,
0.607433f,
0.003522f,
0.004666f,
0.006254f,
0.008766f,
0.010795f,
0.015856f,
0.023585f,
0.036228f,
0.039487f,
0.062206f,
0.096916f,
0.148811f,
0.20338f,
0.305447f,
0.462741f,
0.700199f,
0.004941f,
0.006607f,
0.00895f,
0.012619f,
0.015683f,
0.022944f,
0.033832f,
0.050765f,
0.056018f,
0.085033f,
0.127452f,
0.187886f,
0.25112f,
0.364998f,
0.53879f,
0.797876f,
0.006857f,
0.009233f,
0.012592f,
0.017771f,
0.022172f,
0.03212f,
0.046615f,
0.06811f,
0.075696f,
0.110906f,
0.160678f,
0.229149f,
0.300735f,
0.42593f,
0.61584f,
0.896241f,
0.010113f,
0.01368f,
0.018726f,
0.02625f,
0.032735f,
0.046462f,
0.065809f,
0.092996f,
0.103803f,
0.146292f,
0.204648f,
0.282479f,
0.364084f,
0.502781f,
0.712244f,
1.018759f,
0.015744f,
0.021251f,
0.028944f,
0.039945f,
0.049446f,
0.068127f,
0.093445f,
0.127285f,
0.14231f,
0.193004f,
0.261153f,
0.349656f,
0.443068f,
0.597642f,
0.830444f,
1.168267f,
0.024223f,
0.032378f,
0.043467f,
0.058612f,
0.071646f,
0.09563f,
0.127147f,
0.167588f,
0.187237f,
0.246001f,
0.32398f,
0.423282f,
0.528958f,
0.699986f,
0.957283f,
1.328146f,
0.03429f,
0.045182f,
0.059626f,
0.078588f,
0.094882f,
0.123449f,
0.160233f,
0.206173f,
0.230031f,
0.295596f,
0.382005f,
0.490617f,
0.607092f,
0.792615f,
1.071663f,
1.471949f,
0.053106f,
0.068185f,
0.087712f,
0.112105f,
0.132967f,
0.167685f,
0.211656f,
0.265082f,
0.295044f,
0.369837f,
0.467993f,
0.58972f,
0.721623f,
0.927771f,
1.23799f,
1.680648f,
0.083576f,
0.103924f,
0.129726f,
0.160516f,
0.186838f,
0.228722f,
0.281144f,
0.343382f,
0.381103f,
0.46708f,
0.5795f,
0.717377f,
0.86859f,
1.100548f,
1.449999f,
1.946101f,
0.124032f,
0.149904f,
0.182177f,
0.219335f,
0.251408f,
0.300484f,
0.361692f,
0.433113f,
0.479348f,
0.577076f,
0.704911f,
0.860274f,
1.032601f,
1.292736f,
1.685276f,
2.240223f,
0.175706f,
0.207011f,
0.245689f,
0.289706f,
0.327912f,
0.384501f,
0.455038f,
0.536297f,
0.592068f,
0.702442f,
0.847309f,
1.021943f,
1.217772f,
1.509243f,
1.949852f,
2.570528f,
0.24927f,
0.287025f,
0.333877f,
0.385984f,
0.431717f,
0.497443f,
0.579727f,
0.673464f,
0.741572f,
0.868017f,
1.034559f,
1.234123f,
1.460333f,
1.79207f,
2.295118f,
3.001228f,
0.357357f,
0.403448f,
0.460931f,
0.52375f,
0.579557f,
0.656404f,
0.754715f,
0.865436f,
0.950203f,
1.097887f,
1.293872f,
1.527752f,
1.795589f,
2.182008f,
2.770169f,
3.593798f,
0.494255f,
0.549094f,
0.61884f,
0.693823f,
0.760527f,
0.851544f,
0.968276f,
1.098965f,
1.203912f,
1.377026f,
1.608183f,
1.882244f,
2.200036f,
2.652345f,
3.342626f,
4.215708f,
0.001889f, 0.002456f, 0.003196f, 0.004384f, 0.005272f, 0.007672f, 0.011345f, 0.017759f,
0.018643f, 0.03103f, 0.051912f, 0.087251f, 0.1256f, 0.204967f, 0.331644f, 0.529628f,
0.002524f, 0.003306f, 0.004371f, 0.006072f, 0.007386f, 0.010812f, 0.016096f, 0.02509f,
0.02687f, 0.043747f, 0.070899f, 0.114042f, 0.159992f, 0.250108f, 0.391104f, 0.607433f,
0.003522f, 0.004666f, 0.006254f, 0.008766f, 0.010795f, 0.015856f, 0.023585f, 0.036228f,
0.039487f, 0.062206f, 0.096916f, 0.148811f, 0.20338f, 0.305447f, 0.462741f, 0.700199f,
0.004941f, 0.006607f, 0.00895f, 0.012619f, 0.015683f, 0.022944f, 0.033832f, 0.050765f,
0.056018f, 0.085033f, 0.127452f, 0.187886f, 0.25112f, 0.364998f, 0.53879f, 0.797876f,
0.006857f, 0.009233f, 0.012592f, 0.017771f, 0.022172f, 0.03212f, 0.046615f, 0.06811f,
0.075696f, 0.110906f, 0.160678f, 0.229149f, 0.300735f, 0.42593f, 0.61584f, 0.896241f,
0.010113f, 0.01368f, 0.018726f, 0.02625f, 0.032735f, 0.046462f, 0.065809f, 0.092996f,
0.103803f, 0.146292f, 0.204648f, 0.282479f, 0.364084f, 0.502781f, 0.712244f, 1.018759f,
0.015744f, 0.021251f, 0.028944f, 0.039945f, 0.049446f, 0.068127f, 0.093445f, 0.127285f,
0.14231f, 0.193004f, 0.261153f, 0.349656f, 0.443068f, 0.597642f, 0.830444f, 1.168267f,
0.024223f, 0.032378f, 0.043467f, 0.058612f, 0.071646f, 0.09563f, 0.127147f, 0.167588f,
0.187237f, 0.246001f, 0.32398f, 0.423282f, 0.528958f, 0.699986f, 0.957283f, 1.328146f,
0.03429f, 0.045182f, 0.059626f, 0.078588f, 0.094882f, 0.123449f, 0.160233f, 0.206173f,
0.230031f, 0.295596f, 0.382005f, 0.490617f, 0.607092f, 0.792615f, 1.071663f, 1.471949f,
0.053106f, 0.068185f, 0.087712f, 0.112105f, 0.132967f, 0.167685f, 0.211656f, 0.265082f,
0.295044f, 0.369837f, 0.467993f, 0.58972f, 0.721623f, 0.927771f, 1.23799f, 1.680648f,
0.083576f, 0.103924f, 0.129726f, 0.160516f, 0.186838f, 0.228722f, 0.281144f, 0.343382f,
0.381103f, 0.46708f, 0.5795f, 0.717377f, 0.86859f, 1.100548f, 1.449999f, 1.946101f,
0.124032f, 0.149904f, 0.182177f, 0.219335f, 0.251408f, 0.300484f, 0.361692f, 0.433113f,
0.479348f, 0.577076f, 0.704911f, 0.860274f, 1.032601f, 1.292736f, 1.685276f, 2.240223f,
0.175706f, 0.207011f, 0.245689f, 0.289706f, 0.327912f, 0.384501f, 0.455038f, 0.536297f,
0.592068f, 0.702442f, 0.847309f, 1.021943f, 1.217772f, 1.509243f, 1.949852f, 2.570528f,
0.24927f, 0.287025f, 0.333877f, 0.385984f, 0.431717f, 0.497443f, 0.579727f, 0.673464f,
0.741572f, 0.868017f, 1.034559f, 1.234123f, 1.460333f, 1.79207f, 2.295118f, 3.001228f,
0.357357f, 0.403448f, 0.460931f, 0.52375f, 0.579557f, 0.656404f, 0.754715f, 0.865436f,
0.950203f, 1.097887f, 1.293872f, 1.527752f, 1.795589f, 2.182008f, 2.770169f, 3.593798f,
0.494255f, 0.549094f, 0.61884f, 0.693823f, 0.760527f, 0.851544f, 0.968276f, 1.098965f,
1.203912f, 1.377026f, 1.608183f, 1.882244f, 2.200036f, 2.652345f, 3.342626f, 4.215708f
};
uint16_t i, ur, ug, ub;
float r, g, b;
/* update the palette entry */
// update the palette entry
i = (hi >> 4) & 15;
ub = (hi >> 0) & 15;
ug = (lo >> 4) & 15;
ur = (lo >> 0) & 15;
const uint16_t i = (hi >> 4) & 15;
const uint16_t ub = (hi >> 0) & 15;
const uint16_t ug = (lo >> 4) & 15;
const uint16_t ur = (lo >> 0) & 15;
// normalize
r = frgb[i * 16 + ur] / 4.22f;
g = frgb[i * 16 + ug] / 4.22f;
b = frgb[i * 16 + ub] / 4.22f;
float r = frgb[i * 16 + ur] / 4.22f;
float g = frgb[i * 16 + ug] / 4.22f;
float b = frgb[i * 16 + ub] / 4.22f;
// cut off
r = std::max(r + m_offset[0], 0.0f);
g = std::max(g + m_offset[1], 0.0f);
b = std::max(b + m_offset[2], 0.0f);
// drive
r = std::min(r * m_gain[0] / 0.25f, 1.0f);
g = std::min(g * m_gain[1] / 0.25f, 1.0f);
b = std::min(b * m_gain[2] / 0.25f, 1.0f);
return rgb_t((int) (r * 255), (int) (g * 255), (int) (b * 255));
return rgb_t(int(r * 255), int(g * 255), int(b * 255));
}
void williams2_state::paletteram_w(offs_t offset, u8 data)
{
uint16_t entry_lo, entry_hi;
@ -689,12 +474,14 @@ void williams2_state::paletteram_w(offs_t offset, u8 data)
m_palette->set_pen_color(offset / 2, calc_col(entry_lo, entry_hi));
}
void williams2_state::rebuild_palette()
{
for (offs_t i=0; i<2048; i++)
paletteram_w(i, m_paletteram[i]);
}
void williams2_state::fg_select_w(u8 data)
{
m_fg_color = data & 0x3f;
@ -716,12 +503,14 @@ u8 williams_state::video_counter_r()
return 0xfc;
}
u8 williams2_state::video_counter_r()
{
return m_screen->vpos() & 0xff;
}
/*************************************
*
* Tilemap handling
@ -740,6 +529,7 @@ TILE_GET_INFO_MEMBER(williams2_state::get_tile_info)
tileinfo.set(0, data & mask, color, (data & ~mask) ? TILE_FLIPX : 0);
}
int mysticm_state::color_decode(uint8_t base_col, int sig_J1, int y)
{
int v = y << 6;
@ -775,6 +565,7 @@ int mysticm_state::color_decode(uint8_t base_col, int sig_J1, int y)
return (base_col & 0x3e) | color;
}
TILE_GET_INFO_MEMBER(mysticm_state::get_tile_info)
{
int color = color_decode(m_bg_color, 0, (tile_index << 4) & 0xff);