diff --git a/hash/arb.xml b/hash/arb.xml
index 8baf18687b3..7441470af7b 100644
--- a/hash/arb.xml
+++ b/hash/arb.xml
@@ -22,6 +22,21 @@ license:CC0
+
+ Avelan
+ 198?
+ AVE Micro Systems
+
+
+
+
+
+
+
+
+
+
+
Grand Master Series 4.0
1984
diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp
index 5d2273d959d..7fb17a2a34d 100644
--- a/src/mame/drivers/ave_arb.cpp
+++ b/src/mame/drivers/ave_arb.cpp
@@ -23,7 +23,7 @@ Known chess modules (*denotes not dumped yet):
- Grand Master Series 4.0
Other games:
-- *Avelan (checkers)
+- Avelan (checkers)
Newer modules included button label stickers for OPTIONS, Verify, Take Back, Clear.
@@ -33,7 +33,7 @@ running at 16MHz.
TODO:
- verify gms40 module memory layout
-- need to add checkers pieces and custom initial position when Avelan gets dumped
+- gms40 and avelan rom labels
******************************************************************************/
@@ -100,6 +100,10 @@ private:
void main_map(address_map &map);
void v2_map(address_map &map);
+ // sensorboard
+ void init_board(int state);
+ bool m_altboard = false;
+
// cartridge
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
u8 cartridge_r(offs_t offset);
@@ -144,6 +148,22 @@ void arb_state::update_reset()
I/O
******************************************************************************/
+// sensorboard
+
+void arb_state::init_board(int state)
+{
+ // different board setup for checkers
+ if (m_altboard)
+ for (int i = 0; i < 12; i++)
+ {
+ m_board->write_piece((i % 4) * 2 + ((i / 4) & 1), i / 4, 13); // white
+ m_board->write_piece((i % 4) * 2 + (~(i / 4) & 1), i / 4 + 5, 14); // black
+ }
+ else
+ m_board->preset_chess(state);
+}
+
+
// cartridge
DEVICE_IMAGE_LOAD_MEMBER(arb_state::cart_load)
@@ -158,6 +178,8 @@ DEVICE_IMAGE_LOAD_MEMBER(arb_state::cart_load)
if (image.get_feature("ram"))
m_maincpu->space(AS_PROGRAM).install_ram(0x0800, 0x0fff, 0x1000, m_extram);
+ m_altboard = bool(image.get_feature("altboard"));
+
return image_init_result::PASS;
}
@@ -279,7 +301,8 @@ void arb_state::v2(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS);
- m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
+ m_board->init_cb().set(FUNC(arb_state::init_board));
+ m_board->set_spawnpoints(12+2); // +2 checkers pieces
m_board->set_delay(attotime::from_msec(100));
/* video hardware */
diff --git a/src/mame/drivers/mephisto_modular.cpp b/src/mame/drivers/mephisto_modular.cpp
index f789c92b489..5fbdb7d45fd 100644
--- a/src/mame/drivers/mephisto_modular.cpp
+++ b/src/mame/drivers/mephisto_modular.cpp
@@ -421,7 +421,7 @@ void mmodular_state::alm16(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MEPHISTO_SENSORS_BOARD(config, m_board);
- subdevice("board:board")->set_spawnpoints(12+2); // 2 jokers
+ subdevice("board:board")->set_spawnpoints(12+2); // +2 jokers
subdevice("board:board")->spawn_cb().set(FUNC(mmodular_state::spawn_cb));
subdevice("board:board")->set_nvram_enable(true);
diff --git a/src/mame/drivers/n8080.cpp b/src/mame/drivers/n8080.cpp
index c2a85a28150..b1c4af96929 100644
--- a/src/mame/drivers/n8080.cpp
+++ b/src/mame/drivers/n8080.cpp
@@ -13,8 +13,12 @@
Space Fever was initially produced with B&W video hardware. It was later sold
(maybe upgraded too) featuring color graphics, known as "Color Space Fever".
The other Space Fever hardware games were only sold with color graphics, but
-in theory it should still be possible to run them on the older hardware.
-For example, doing a ROM swap on the older Space Fever.
+they run fine on the older B&W video hardware. For example, doing a ROM swap
+on the older Space Fever.
+
+TODO:
+- spacefev sound pitch for laser fire and enemy explosion is wrong, see:
+ https://www.youtube.com/watch?v=mGMUPNqlyuw
----------------------------------------------------------------------------
diff --git a/src/mame/layout/ave_arb.lay b/src/mame/layout/ave_arb.lay
index b47777f432b..9e5932947ac 100644
--- a/src/mame/layout/ave_arb.lay
+++ b/src/mame/layout/ave_arb.lay
@@ -112,12 +112,12 @@ license:CC0
-
-
-
-
-
-
+
+
+
+
+
+
@@ -152,6 +152,8 @@ license:CC0
+
+
@@ -166,20 +168,47 @@ license:CC0
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -349,10 +378,10 @@ license:CC0
-
+
-
+
@@ -368,64 +397,70 @@ license:CC0
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -438,10 +473,9 @@ license:CC0
-
-
-
+
+
@@ -460,8 +494,7 @@ license:CC0
-
-
+
@@ -470,12 +503,12 @@ license:CC0
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/mame/layout/fidel_dsc.lay b/src/mame/layout/fidel_dsc.lay
index 12f80735c69..b971b307438 100644
--- a/src/mame/layout/fidel_dsc.lay
+++ b/src/mame/layout/fidel_dsc.lay
@@ -302,12 +302,29 @@ license:CC0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -315,40 +332,91 @@ license:CC0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -542,8 +610,7 @@ license:CC0
-
-
+
@@ -572,8 +639,7 @@ license:CC0
-
-
+
diff --git a/src/mame/layout/mephisto_alm32.lay b/src/mame/layout/mephisto_alm32.lay
index fe82c2b9431..45e4e4c9b00 100644
--- a/src/mame/layout/mephisto_alm32.lay
+++ b/src/mame/layout/mephisto_alm32.lay
@@ -343,15 +343,6 @@ license:CC0
-
-
-
-
-
-
-
-
-
@@ -361,6 +352,15 @@ license:CC0
+
+
+
+
+
+
+
+
+