Skip to content

Commit fea97b3

Browse files
authored
Mark the Ensoniq SD-1/32 as working. (#14500)
* es5510.h, esqpump.h: Remove feature::SOUND from imperfect_features(). Empirically, the emulated VFX-family of keyboards sound exactly like the real ones - I've compared many sounds, and more than that, many demo songs and sequences played by the SD-1/32 sequencer. So to me, the es5510 processes, and the esq_5505_5510_pump feeds, the sound just as they should. Accordingly I think both should _not_ be marked as having imperfect sound. * Update machine flags for esq5505 devices. Specifically, the sd132 is working! It has working floppy and cartridge, runs the sequencer OS, plays the sounds it should, plays back sequences and songs and allows editing them, MIDI works - it's all there. For some strange reason, the 21-voice keyboards in the same family have timing issues, so marking those accordingly. * Mark the sd132 as the parent, and the sd1 (21-voice) as the clone. Per [the documentation](https://docs.mamedev.org/usingmame/commonissues.html#why-is-it-that-some-games-have-the-us-version-as-the-main-set-some-have-japanese-and-some-are-the-world), > Parent and clone sets are a convenience feature to help keep > different versions of the same system or software together. The > decision on which set to make the parent will always be somewhat > arbitrary, but we do have some guidelines: > > - Prefer latest release version > [ ... ] > - Prefer most complete version > [ ... ] The SD-1/32 is the most complete version of the VFX family, and definitely of the SD-1 variant of the family. Arguably, the VFX-SD and VFX could also be marked as clones, but there's a bigger difference in each one of those steps, so I've not made that particular arbitrary choice.
1 parent e004ded commit fea97b3

File tree

3 files changed

+10
-13
lines changed

3 files changed

+10
-13
lines changed

src/devices/cpu/es5510/es5510.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ class es5510_device : public cpu_device {
1717
// TODO : Not verified, Most of games are using 128KB DRAM.
1818
static constexpr uint32_t DRAM_SIZE = (1<<20);
1919
static constexpr uint32_t DRAM_MASK = (DRAM_SIZE-1);
20-
static constexpr feature_type imperfect_features() { return feature::SOUND; }
2120

2221
es5510_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
2322

src/devices/sound/esqpump.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
class esq_5505_5510_pump_device : public device_t, public device_sound_interface
1717
{
1818
public:
19-
static constexpr feature_type imperfect_features() { return feature::SOUND; }
20-
2119
esq_5505_5510_pump_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
2220

2321
template <typename T> void set_esp(T &&tag) { m_esp.set_tag(std::forward<T>(tag)); }

src/mame/ensoniq/esq5505.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,13 +1254,13 @@ void esq5505_state::init_denib()
12541254
} // Anonymous namespace
12551255

12561256

1257-
CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, init_eps, "Ensoniq", "EPS", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs)
1258-
CONS( 1989, vfx, 0, 0, vfx, vfx, esq5505_state, init_denib, "Ensoniq", "VFX", MACHINE_NOT_WORKING ) // 2x40 VFD
1259-
CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, init_denib, "Ensoniq", "VFX-SD", MACHINE_NOT_WORKING ) // 2x40 VFD
1260-
CONS( 1990, eps16p, eps, 0, eps, vfx, esq5505_state, init_eps, "Ensoniq", "EPS-16 Plus", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs)
1261-
CONS( 1990, sd1, 0, 0, sd1, vfx, esq5505_state, init_denib, "Ensoniq", "SD-1 (21 voice)", MACHINE_NOT_WORKING ) // 2x40 VFD
1262-
CONS( 1990, sq1, 0, 0, sq1, sq1, esq5505_state, init_sq1, "Ensoniq", "SQ-1", MACHINE_NOT_WORKING ) // 2x16 LCD
1263-
CONS( 1990, sqrack, sq1, 0, sq1, sq1, esq5505_state, init_sq1, "Ensoniq", "SQ-Rack", MACHINE_NOT_WORKING ) // 2x16 LCD
1264-
CONS( 1991, sq2, 0, 0, ks32, sq1, esq5505_state, init_sq1, "Ensoniq", "SQ-2", MACHINE_NOT_WORKING ) // 2x16 LCD
1265-
CONS( 1991, sd132, sd1, 0, sd132, vfx, esq5505_state, init_denib, "Ensoniq", "SD-1 (32 voice)", MACHINE_NOT_WORKING ) // 2x40 VFD
1266-
CONS( 1992, ks32, sq2, 0, ks32, sq1, esq5505_state, init_sq1, "Ensoniq", "KS-32", MACHINE_NOT_WORKING) // 2x16 LCD
1257+
CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, init_eps, "Ensoniq", "EPS", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs)
1258+
CONS( 1989, vfx, 0, 0, vfx, vfx, esq5505_state, init_denib, "Ensoniq", "VFX", MACHINE_IMPERFECT_TIMING ) // 2x40 VFD
1259+
CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, init_denib, "Ensoniq", "VFX-SD", MACHINE_IMPERFECT_TIMING ) // 2x40 VFD
1260+
CONS( 1990, eps16p, eps, 0, eps, vfx, esq5505_state, init_eps, "Ensoniq", "EPS-16 Plus", MACHINE_NOT_WORKING ) // custom VFD: one alphanumeric 22-char row, one graphics-capable row (alpha row can also do bar graphs)
1261+
CONS( 1990, sd1, sd132, 0, sd1, vfx, esq5505_state, init_denib, "Ensoniq", "SD-1 (21 voice)", MACHINE_IMPERFECT_TIMING ) // 2x40 VFD
1262+
CONS( 1990, sq1, 0, 0, sq1, sq1, esq5505_state, init_sq1, "Ensoniq", "SQ-1", MACHINE_NOT_WORKING ) // 2x16 LCD
1263+
CONS( 1990, sqrack, sq1, 0, sq1, sq1, esq5505_state, init_sq1, "Ensoniq", "SQ-Rack", MACHINE_NOT_WORKING ) // 2x16 LCD
1264+
CONS( 1991, sq2, 0, 0, ks32, sq1, esq5505_state, init_sq1, "Ensoniq", "SQ-2", MACHINE_NOT_WORKING ) // 2x16 LCD
1265+
CONS( 1991, sd132, 0, 0, sd132, vfx, esq5505_state, init_denib, "Ensoniq", "SD-1 (32 voice)", 0 ) // 2x40 VFD
1266+
CONS( 1992, ks32, sq2, 0, ks32, sq1, esq5505_state, init_sq1, "Ensoniq", "KS-32", MACHINE_NOT_WORKING) // 2x16 LCD

0 commit comments

Comments
 (0)