summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2026-04-29 04:01:04 +1000
committer Vas Crabb <vas@vastheman.com>2026-04-29 04:01:04 +1000
commit3a2f91ce16b5dfa5852bcbb381cea6ef469a67aa (patch)
tree92c9658d39d941b34f8d94cdc2c8840932f87187
parent55f2882692b47100786625e410d16cd08c2cd8ed (diff)
itech/itech32.cpp: Added Blood Storm v2.16.
New working clones ------------------ Blood Storm (v2.16) [anonymous]
-rw-r--r--src/mame/itech/itech32.cpp39
-rw-r--r--src/mame/mame.lst1
-rw-r--r--src/mame/sony/smc777.cpp6
-rw-r--r--src/mame/sony/smc777_kbd.cpp10
4 files changed, 47 insertions, 9 deletions
diff --git a/src/mame/itech/itech32.cpp b/src/mame/itech/itech32.cpp
index 6979a5551be..a790f3e7033 100644
--- a/src/mame/itech/itech32.cpp
+++ b/src/mame/itech/itech32.cpp
@@ -2254,6 +2254,43 @@ ROM_START( bloodstm220 )
ROM_LOAD16_BYTE( "bssrom2.bin", 0x300000, 0x40000, CRC(8aee1e77) SHA1(f949fa89ee7d59f457ce89c72d461cecd0cface3) )
ROM_END
+ROM_START( bloodstm216 )
+ ROM_REGION16_BE( 0x80000, "maindata", 0 )
+ ROM_LOAD16_BYTE( "bld00_v21.u83", 0x00000, 0x40000, CRC(9b078fd9) SHA1(87c567b81e0c9979e256ff6b10f0b237ba3c9ad5) ) // Labeled BLD00 V2.1 (U83)
+ ROM_LOAD16_BYTE( "bld01_v21.u88", 0x00001, 0x40000, CRC(50b83434) SHA1(185d908ff1917c5dc79c42786d5ae8d9f5d894df) ) // Labeled BLD01 V2.1 (U88)
+
+ ROM_REGION( 0x28000, "soundcpu", 0 )
+ ROM_LOAD( "bldsnd_v10.u17", 0x10000, 0x18000, CRC(dddeedbb) SHA1(f8ea786836630fc44bba968845fd2cb42cd81592) ) // Labeled BLDSND V1.0 (U17)
+ ROM_CONTINUE( 0x08000, 0x08000 )
+
+ ROM_REGION( 0x880000, "grom", 0 )
+ ROM_LOAD32_BYTE( "bsgrom0.bin", 0x000000, 0x080000, CRC(4e10b8c1) SHA1(b80f7dbf32faa97829c735da6dc0ee424dc9ecec) )
+ ROM_LOAD32_BYTE( "bsgrom5.bin", 0x000001, 0x080000, CRC(6333b6ce) SHA1(53b884e09d198f8f53449bd011ba743c28b2c934) )
+ ROM_LOAD32_BYTE( "bsgrom10.bin", 0x000002, 0x080000, CRC(a972a65c) SHA1(7772c2e0aaa0b3183c6287125b95fd1cd0c3775a) )
+ ROM_LOAD32_BYTE( "bsgrom15.bin", 0x000003, 0x080000, CRC(9a8f54aa) SHA1(3a2f99c28324ba1fcfb652bdc596d94c90637b72) )
+ ROM_LOAD32_BYTE( "bsgrom1.bin", 0x200000, 0x080000, CRC(10abf660) SHA1(e5b28ee12972abbcd883d702f496feae62d19e07) )
+ ROM_LOAD32_BYTE( "bsgrom6.bin", 0x200001, 0x080000, CRC(06a260d5) SHA1(f506b799bbb5d4465a4ab564cfd276877b8a52e9) )
+ ROM_LOAD32_BYTE( "bsgrom11.bin", 0x200002, 0x080000, CRC(f2cab3c7) SHA1(eecb1f2f8a3f3b1663a51c343e28e1b2078da5f4) )
+ ROM_LOAD32_BYTE( "bsgrom16.bin", 0x200003, 0x080000, CRC(403aef7b) SHA1(0a2a61480cddd020bfbad01c6c328dfa6760bddd) )
+ ROM_LOAD32_BYTE( "bsgrom2.bin", 0x400000, 0x080000, CRC(488200b1) SHA1(ae25bb5e9a836ae362d88de4e392ff46ff93c636) )
+ ROM_LOAD32_BYTE( "bsgrom7.bin", 0x400001, 0x080000, CRC(5bb19727) SHA1(fd8aa73ff0606ac86f054794f6abc42f99b4f856) )
+ ROM_LOAD32_BYTE( "bsgrom12.bin", 0x400002, 0x080000, CRC(b10d674f) SHA1(f5c713480deac44b86173ca9ac3aeea8a4d2ac85) )
+ ROM_LOAD32_BYTE( "bsgrom17.bin", 0x400003, 0x080000, CRC(7119df7e) SHA1(67acb0525f21d5cd174528fb0fa72c7101deb5eb) )
+ ROM_LOAD32_BYTE( "bsgrom3.bin", 0x600000, 0x080000, CRC(2378792e) SHA1(8cf1040a86ce7b6be3f56d144d4a17b7a888a648) )
+ ROM_LOAD32_BYTE( "bsgrom8.bin", 0x600001, 0x080000, CRC(3640ca2e) SHA1(1fbc8306c7310ab23d40887c16f80e2dc3d730f8) )
+ ROM_LOAD32_BYTE( "bsgrom13.bin", 0x600002, 0x080000, CRC(bd4a071d) SHA1(f25483591659d7424a4c62d0093fa56e5d337bf3) )
+ ROM_LOAD32_BYTE( "bsgrom18.bin", 0x600003, 0x080000, CRC(12959bb8) SHA1(f74d407004ccbf461f749672e4e57a5f0b6b549f) )
+ ROM_FILL( 0x800000, 0x080000, 0xff )
+
+ ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE( "ensoniq.2m", 0x000000, 0x200000, CRC(9fdc4825) SHA1(71e5255c66d9010be7e6f27916b605441fc53839) ) // Ensoniq 2m 1350901601
+
+ ROM_REGION16_BE( 0x400000, "ensoniq.2", ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE( "bssrom0.bin", 0x000000, 0x80000, CRC(ee4570c8) SHA1(73dd292224bf182770b3cc2d90eb52b7d7b24378) )
+ ROM_LOAD16_BYTE( "bssrom1.bin", 0x100000, 0x80000, CRC(b0f32ec5) SHA1(666f904b31cdef12cbf1dbb43a7d3ff7c2903260) )
+ ROM_LOAD16_BYTE( "bssrom2.bin", 0x300000, 0x40000, CRC(8aee1e77) SHA1(f949fa89ee7d59f457ce89c72d461cecd0cface3) )
+ROM_END
+
ROM_START( bloodstm210 )
ROM_REGION16_BE( 0x80000, "maindata", 0 )
ROM_LOAD16_BYTE( "bld00_v21.u83", 0x00000, 0x40000, CRC(71215c8e) SHA1(ee0f94c3a2619d7e3cc1ba5e1888a97b0c75a3ae) ) // Labeled BLD00 V2.1 (U83)
@@ -5172,6 +5209,7 @@ GAME( 1993, hardyard10, hardyard, bloodstm, hardyard, itech32_state, init_har
GAME( 1994, bloodstm, 0, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v2.22)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, bloodstm221, bloodstm, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v2.21)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, bloodstm220, bloodstm, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v2.20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, bloodstm216, bloodstm, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v2.16)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, bloodstm210, bloodstm, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v2.10)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, bloodstm110, bloodstm, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v1.10)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, bloodstm104, bloodstm, bloodstm, bloodstm, itech32_state, init_bloodstm, ROT0, "Strata / Incredible Technologies", "Blood Storm (v1.04)", MACHINE_SUPPORTS_SAVE )
@@ -5301,4 +5339,3 @@ GAME( 2001, gtclasscs, gtclassc, sftm, s_ver, itech32_state, init_s_ver, R
GAME( 199?, shoottv, 0, shoottv, shoottv, shoottv_state, empty_init, ROT0, "Incredible Technologies", "Must Shoot TV (prototype)" , MACHINE_SUPPORTS_SAVE )
GAME( 1996, pubball, 0, pubball, pubball, itech32_state, init_pubball,ROT0, "Midway / Incredible Technologies", "Power Up Baseball (prototype)" , MACHINE_SUPPORTS_SAVE )
-
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 9d3c5be21a3..d06d4eead34 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -22695,6 +22695,7 @@ bloodstm
bloodstm104
bloodstm110
bloodstm210
+bloodstm216
bloodstm220
bloodstm221
drivedge
diff --git a/src/mame/sony/smc777.cpp b/src/mame/sony/smc777.cpp
index ee84369d7f5..07e38f6c85b 100644
--- a/src/mame/sony/smc777.cpp
+++ b/src/mame/sony/smc777.cpp
@@ -25,6 +25,8 @@ TODO:
#include "emu.h"
+#include "smc777_kbd.h"
+
#include "bus/msx/ctrl/ctrl.h"
#include "cpu/mcs48/mcs48.h"
#include "cpu/z80/z80.h"
@@ -37,8 +39,6 @@ TODO:
#include "sound/spkrdev.h"
#include "video/mc6845.h"
-#include "smc777_kbd.h"
-
#include "emupal.h"
#include "screen.h"
#include "softlist_dev.h"
@@ -903,7 +903,7 @@ void smc777_state::machine_reset()
// warm reset is special, ties with a physical back button
// (avoids bad bootstraps by resetting with our F3 key)
- m_warm_reset ++;
+ m_warm_reset++;
if (m_warm_reset >= 1)
m_warm_reset = 1;
diff --git a/src/mame/sony/smc777_kbd.cpp b/src/mame/sony/smc777_kbd.cpp
index 49ac41bb379..c38529b176e 100644
--- a/src/mame/sony/smc777_kbd.cpp
+++ b/src/mame/sony/smc777_kbd.cpp
@@ -396,12 +396,12 @@ void smc777_kbd_device::key_make(uint8_t row, uint8_t column)
m_status |= 5;
//printf("%d %d\n", row, column);
// take count of multipresses like this (testable in games like ldrun/cloderun)
- m_held_keys ++;
+ m_held_keys++;
}
void smc777_kbd_device::key_break(uint8_t row, uint8_t column)
{
- m_held_keys --;
+ m_held_keys--;
if (m_held_keys <= 0)
{
// clear code for safety
@@ -459,7 +459,7 @@ u8 smc777_kbd_device::data_r(offs_t offset)
u8 res = m_fkey_table[m_fkey_index][m_fkey_target];
if (!machine().side_effects_disabled())
{
- m_fkey_index ++;
+ m_fkey_index++;
if (m_fkey_index >= 3)
m_command = 0xff;
}
@@ -479,7 +479,7 @@ void smc777_kbd_device::data_w(offs_t offset, u8 data)
if (m_fkey_target == 0xf)
return;
m_fkey_table[m_fkey_index][m_fkey_target] = data;
- m_fkey_index ++;
+ m_fkey_index++;
if (m_fkey_index >= 3)
m_command = 0xff;
}
@@ -551,7 +551,7 @@ void smc777_kbd_device::control_w(offs_t offset, u8 data)
// clamp to natural table, otherwise mark it as invalid
// (is the MCU really handling f-keys starting from bit 1?)
if (m_fkey_target == std::clamp<u8>(m_fkey_target, 1, 6))
- m_fkey_target --;
+ m_fkey_target--;
else
m_fkey_target = 0xf;
break;