Skip to content

Commit a0eb654

Browse files
committed
update
# Conflicts: # android-project/app/src/main/AndroidManifest.xml # docs/source/conf.py # makefile
2 parents 8239213 + cdea363 commit a0eb654

28 files changed

Lines changed: 1208 additions & 190 deletions

makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
###########################################################################
88

9-
BARE_VERS := 0.286
9+
BARE_VERS := 0.287
1010
LONG_VERS := $(BARE_VERS).x
1111

1212
###########################################################################

scripts/src/machine.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4169,6 +4169,19 @@ if MACHINES["X2212"] then
41694169
}
41704170
end
41714171

4172+
---------------------------------------------------
4173+
--
4174+
--@src/devices/machine/x28.h,MACHINES["X28"] = true
4175+
---------------------------------------------------
4176+
4177+
if MACHINES["X28"] then
4178+
files {
4179+
MAME_DIR .. "src/devices/machine/x28.cpp",
4180+
MAME_DIR .. "src/devices/machine/x28.ipp",
4181+
MAME_DIR .. "src/devices/machine/x28.h",
4182+
}
4183+
end
4184+
41724185
---------------------------------------------------
41734186
--
41744187
--@src/devices/machine/x76f041.h,MACHINES["X76F041"] = true

src/devices/bus/pci/sis6326.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ ROM_START( sis6326pci )
5151
ROM_REGION32_LE( 0x10000, "bios", ROMREGION_ERASEFF )
5252
ROM_DEFAULT_BIOS("sis")
5353

54-
ROM_SYSTEM_BIOS( 0, "sis", "SiS6326 4MB 1.25" )
54+
// "12/07/1998-13:01:00" in BIOS header, assume in MM/DD/YYYY format
55+
ROM_SYSTEM_BIOS( 0, "sis", "SiS6326 4MB 1.25 (12-07-98)" )
5556
ROMX_LOAD( "sis6326_75mhz.vbi", 0x000000, 0x008000, CRC(1c74109d) SHA1(c9180a32e78481c9082ad5bc75082ef4b289ad76), ROM_BIOS(0) )
5657
ROM_SYSTEM_BIOS( 1, "3dpro", "3DPro 4MB EDO 1.06 (12-18-97)" )
5758
ROMX_LOAD( "3dpro4mbedo.bin", 0x000000, 0x010000, CRC(f04b374c) SHA1(6eb96f7517df6eb566c615c2ab9ec5567035b6a5), ROM_BIOS(1) )

src/devices/bus/pci/trident_4dwavedx.cpp

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ AC'97 v1.x (fixed 48 kHz)
88
99
TODO:
1010
- dxdiag: sound test don't playback on lower modes;
11-
- diablo: ambient BGM doesn't work, SFXs don't playback from time to time;
11+
- diablo: dungeon ambient BGM and townspeople speech doesn't work
12+
\- streaming LBA bank from .mpq is empty in both cases (?)
1213
- Missing features in Bank A (testable in dxdiag -> Music -> Trident PCI WaveTable MIDI);
1314
- Move DMA reading out of sound_stream_update;
1415
- Mix-in wave engine output to AC'97 input;
@@ -413,6 +414,29 @@ void t4dwave_pcm_device::device_reset()
413414
m_miscint = 0;
414415
m_aina = m_aintena = m_ainb = m_aintenb = 0;
415416
m_bankA_keyon = m_bankB_keyon = 0;
417+
418+
for (int i = 0; i < 64; i++)
419+
{
420+
m_channel[i].lba = 0;
421+
m_channel[i].cso = 0;
422+
m_channel[i].eso_cache = 0;
423+
std::fill(std::begin(m_channel[i].hso), std::end(m_channel[i].hso), 0);
424+
std::fill(std::begin(m_channel[i].eso), std::end(m_channel[i].eso), 0);
425+
m_channel[i].delta = 0;
426+
m_channel[i].gvsel_cache = 0;
427+
m_channel[i].gvsel = false;
428+
m_channel[i].pan_control = false;
429+
m_channel[i].pan_vol = 0;
430+
m_channel[i].vol = 0;
431+
m_channel[i].play_mode = 0;
432+
m_channel[i].loop_enable = 0;
433+
m_channel[i].ec_envelope = 0;
434+
m_channel[i].pci_buf = 0;
435+
436+
m_channel[i].ticks = 0;
437+
m_channel[i].sample_data = 0;
438+
m_channel[i].dma_fetch = false;
439+
}
416440
}
417441

418442
// START_A & STOP_A
@@ -838,7 +862,6 @@ void t4dwave_pcm_device::sound_stream_update(sound_stream &stream)
838862
}
839863
if (channel.cso >= channel.eso[play_mode])
840864
{
841-
channel.cso = 0;
842865
// ENDLP_IE
843866
if (BIT(m_global_control, 12))
844867
{
@@ -854,8 +877,15 @@ void t4dwave_pcm_device::sound_stream_update(sound_stream &stream)
854877
m_bankB_keyon &= ~(1 << chB);
855878
else
856879
m_bankA_keyon &= ~(1 << ch);
880+
// TODO: not entirely correct
881+
// diablo: really wants CSO granularity being different depending on play mode
882+
channel.cso = 0xffff;
857883
continue;
858884
}
885+
else
886+
{
887+
channel.cso = 0;
888+
}
859889
}
860890
}
861891
}

src/devices/machine/vt82c598mvp.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,9 @@ void vt82c598mvp_host_device::map_extra(
452452
// 01 SMI DRAM always mapped (overlays VGA)
453453
// 10 <reserved>
454454
// 11 SMI DRAM on SMM
455-
if ((smi_mapping == 3 && m_smiact == 0) || smi_mapping == 1)
455+
// HACK: function is for '691, that actually uses code/data separation for SMI DRAM
456+
// (never setup shadow RAM control[2] bits 0-1)
457+
if ((smi_mapping == smi_bank() && m_smiact == 0) || smi_mapping == 1)
456458
{
457459
memory_space->install_ram (0x000a0000, 0x000bffff, &m_ram[0x000a0000/4]);
458460
}

src/devices/machine/vt82c598mvp.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class vt82c598mvp_host_device : public pci_host_device
4242
required_device<cpu_device> m_host_cpu;
4343
std::vector<uint32_t> m_ram;
4444

45+
virtual u8 smi_bank() const { return 3; }
46+
4547
private:
4648
virtual uint8_t capptr_r() override;
4749

@@ -107,6 +109,8 @@ class vt82c691_host_device : public vt82c598mvp_host_device
107109

108110
virtual void config_map(address_map &map) override ATTR_COLD;
109111

112+
virtual u8 smi_bank() const override { return 0; }
113+
110114
private:
111115
u8 m_bios_scratch[8];
112116
};

src/devices/machine/x28.cpp

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// license:BSD-3-Clause
2+
// copyright-holders:Christian Brunschen
3+
/***************************************************************************
4+
Xicor X28 EEPROMs
5+
***************************************************************************/
6+
7+
#include "emu.h"
8+
#include "x28.h"
9+
10+
// device type definitions
11+
DEFINE_DEVICE_TYPE(X28C64, x28c64_device, "x28c64", "X28C64 8Kx8 EEPROM")
12+
DEFINE_DEVICE_TYPE(X28C256, x28c256_device, "x28c256", "X28C256 32Kx8 EEPROM")
13+
DEFINE_DEVICE_TYPE(X28HC256, x28hc256_device, "x28hc256", "X28HC256 32Kx8 EEPROM")
14+
DEFINE_DEVICE_TYPE(X28C512, x28c512_device, "x28c512", "X28C512 64Kx8 EEPROM")
15+
DEFINE_DEVICE_TYPE(X28C010, x28c010_device, "x28c010", "X28C010 128Kx8 EEPROM")
16+
DEFINE_DEVICE_TYPE(XM28C020, xm28c020_device, "xm28c020", "XM28C020 256Kx8 EEPROM")
17+
DEFINE_DEVICE_TYPE(XM28C040, xm28c040_device, "xm28c040", "XM28C040 512Kx8 EEPROM")
18+
DEFINE_DEVICE_TYPE(X28F256, x28f256_device, "x28f256", "X28F256 Fast 8Kx8 EEPROM")
19+
20+
x28c64_device::x28c64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
21+
: x28_device(mconfig, X28C64, tag, owner, clock)
22+
{
23+
}
24+
25+
x28c256_device::x28c256_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
26+
: x28_device(mconfig, X28C256, tag, owner, clock)
27+
{
28+
}
29+
30+
x28hc256_device::x28hc256_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
31+
: x28_device(mconfig, X28HC256, tag, owner, clock)
32+
{
33+
}
34+
35+
x28c512_device::x28c512_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
36+
: x28_device(mconfig, X28C512, tag, owner, clock)
37+
{
38+
}
39+
40+
x28c010_device::x28c010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
41+
: x28_device(mconfig, X28C010, tag, owner, clock)
42+
{
43+
}
44+
45+
xm28c020_device::xm28c020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
46+
: x28_device(mconfig, XM28C020, tag, owner, clock)
47+
{
48+
}
49+
50+
xm28c040_device::xm28c040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
51+
: x28_device(mconfig, XM28C040, tag, owner, clock)
52+
{
53+
}
54+
55+
x28f256_device::x28f256_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
56+
: x28_device(mconfig, X28F256, tag, owner, clock)
57+
{
58+
}

0 commit comments

Comments
 (0)