summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/release/build/buildall.bat8
-rw-r--r--docs/release/makefile4
-rw-r--r--docs/release/scripts/src/machine.lua2
-rw-r--r--docs/release/src/hbmame/drivers/dkong.cpp33
-rw-r--r--docs/release/src/hbmame/drivers/galaxian.cpp104
-rw-r--r--docs/release/src/hbmame/drivers/maketrax.cpp135
-rw-r--r--docs/release/src/hbmame/drivers/mhavoc_hb.cpp23
-rw-r--r--docs/release/src/hbmame/drivers/mspacman.cpp21
-rw-r--r--docs/release/src/hbmame/drivers/neogeo.cpp721
-rw-r--r--docs/release/src/hbmame/drivers/neogeo1.cpp6
-rw-r--r--docs/release/src/hbmame/drivers/neogeo_noslot.cpp20
-rw-r--r--docs/release/src/hbmame/drivers/neogeohb.cpp91
-rw-r--r--docs/release/src/hbmame/hbmame.lst11
-rw-r--r--docs/release/src/hbmame/includes/mhavoc_hb.h3
-rw-r--r--docs/release/src/hbmame/includes/neogeo.h6
-rw-r--r--docs/release/src/hbmame/machine/mhavoc_hb.cpp7
-rw-r--r--docs/release/src/hbmame/video/neogeo_spr.cpp6
-rw-r--r--docs/release/src/hbmame/video/neogeo_spr.h2
-rw-r--r--docs/release/src/version.cpp2
-rw-r--r--src/hbmame/hbmame.lst1
20 files changed, 746 insertions, 460 deletions
diff --git a/docs/release/build/buildall.bat b/docs/release/build/buildall.bat
index 1d15e180c98..7760b4e3eb3 100644
--- a/docs/release/build/buildall.bat
+++ b/docs/release/build/buildall.bat
@@ -7,11 +7,9 @@ rem echo 1. HBMAME - CLEAN, update MAKEFILE, update VERSION.CPP
rem echo.
echo 2. ARCADE - CLEAN, update MAKEFILE, update WINUI.H
echo.
-rem echo 3. MESSUI - CLEAN, update MAKEFILE, update VERSION.CPP
+echo 3. MAMEUI - CLEAN, update MAKEFILE, update VERSION.CPP
rem echo.
-rem echo 4. MAMEUI - CLEAN, update MAKEFILE, update VERSION.CPP
-rem echo.
-echo 5. When this is all done, then
+echo 4. When this is all done, then
pause
goto arcade
@@ -47,7 +45,7 @@ copy /Y src\mame\arcade.bak src\mame\arcade.flt
copy /Y arcade64.exe arcade.exe
if not exist arcade64.exe goto end
-goto end
+goto mameui
:messui
cd\mess
diff --git a/docs/release/makefile b/docs/release/makefile
index 80ebcc08831..3927b63cd82 100644
--- a/docs/release/makefile
+++ b/docs/release/makefile
@@ -1546,7 +1546,7 @@ endif
ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
- @echo '#define BARE_BUILD_VERSION "0.245.10"' > $@
+ @echo '#define BARE_BUILD_VERSION "0.245.11"' > $@
@echo '#define BARE_VCS_REVISION "$(NEW_GIT_VERSION)"' >> $@
@echo 'extern const char bare_build_version[];' >> $@
@echo 'extern const char bare_vcs_revision[];' >> $@
@@ -1556,7 +1556,7 @@ $(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
@echo 'const char build_version[] = BARE_BUILD_VERSION " (" BARE_VCS_REVISION ")";' >> $@
else
$(GENDIR)/version.cpp: makefile $(GENDIR)/git_desc | $(GEN_FOLDERS)
- @echo #define BARE_BUILD_VERSION "0.245.10" > $@
+ @echo #define BARE_BUILD_VERSION "0.245.11" > $@
@echo #define BARE_VCS_REVISION "$(NEW_GIT_VERSION)" >> $@
@echo extern const char bare_build_version[]; >> $@
@echo extern const char bare_vcs_revision[]; >> $@
diff --git a/docs/release/scripts/src/machine.lua b/docs/release/scripts/src/machine.lua
index 62199b0c620..8a2f7f1ab91 100644
--- a/docs/release/scripts/src/machine.lua
+++ b/docs/release/scripts/src/machine.lua
@@ -69,7 +69,7 @@ files {
-- MAME_DIR .. "src/devices/imagedev/picture.h",
-- MAME_DIR .. "src/devices/imagedev/printer.cpp",
-- MAME_DIR .. "src/devices/imagedev/printer.h",
--- MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
+ MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
-- MAME_DIR .. "src/devices/imagedev/snapquik.h",
-- MAME_DIR .. "src/devices/imagedev/wafadrive.cpp",
-- MAME_DIR .. "src/devices/imagedev/wafadrive.h",
diff --git a/docs/release/src/hbmame/drivers/dkong.cpp b/docs/release/src/hbmame/drivers/dkong.cpp
index e619dfdc0c3..39d51b83e05 100644
--- a/docs/release/src/hbmame/drivers/dkong.cpp
+++ b/docs/release/src/hbmame/drivers/dkong.cpp
@@ -937,7 +937,7 @@ ROM_START( dkspkyte )
ROM_LOAD( "v-5e.sp", 0x0200, 0x0100, CRC(c70b6f9b) SHA1(e9f465de5e990478e96be1501cb8c5fc16b3c86e) )
ROM_END
-ROM_START( dktrainer )
+ROM_START( dktrain )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dkt.5et", 0x0000, 0x1000, CRC(7ed5a945) SHA1(27ea2b9ca8e03a660943b043a2880c95a4f92de8) )
ROM_LOAD( "dkt.5ct", 0x1000, 0x1000, CRC(98e2caa8) SHA1(5289f2268bac39bd04da8b9b94e25e55e4ea8e04) )
@@ -965,6 +965,34 @@ ROM_START( dktrainer )
ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
ROM_END
+ROM_START( dktrain2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dkt2.5et", 0x0000, 0x1000, CRC(c7dc68c4) SHA1(5cc76f41e09132143620230ed9f63cc7621203c9) )
+ ROM_LOAD( "dkt2.5ct", 0x1000, 0x1000, CRC(1a7c2bb8) SHA1(e6b6d17331e3fc74d83285b74563955f8e97ee66) )
+ ROM_LOAD( "dkt2.5bt", 0x2000, 0x1000, CRC(dc4cbd2f) SHA1(eaf87adb9252b6bbdceaee9f7c5e791e939cc25f) )
+ ROM_LOAD( "dkt2.5at", 0x3000, 0x1000, CRC(36e333d2) SHA1(207f51d7ef53e7c6d9db2b7cb7a2ded49ffa2db5) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
ROM_START( dkpace )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "dkp.5et", 0x0000, 0x1000, CRC(e05563d5) SHA1(db17bf866e223a5b57e3fdd23f79f1f8ca67f697) )
@@ -2141,7 +2169,8 @@ GAME( 2007, dkongp, dkong, dkong2b, dkong, dkong_state, empty_init, ROT
GAME( 2013, dkong2m, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "hack", "Donkey Kong (2 marios)", MACHINE_SUPPORTS_SAVE )
GAME( 2015, dkrainbow, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "John Kowalski", "Rainbow Donkey Kong", MACHINE_SUPPORTS_SAVE )
GAME( 2015, dkrdemo, dkong, dkong2b, dkrdemo, dkong_state, empty_init, ROT270, "John Kowalski", "Donkey Kong Remix demo 1.8", MACHINE_SUPPORTS_SAVE )
-GAME( 2016, dktrainer, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "John Kowalski", "Donkey Kong Trainer 1.01", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, dktrain, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "John Kowalski", "Donkey Kong Trainer 1.01", MACHINE_SUPPORTS_SAVE )
+GAME( 2022, dktrain2, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "John Kowalski", "Donkey Kong Trainer 1.01 (bugfix)", MACHINE_SUPPORTS_SAVE )
GAME( 2016, dkpace, dkong, dkong2b, dkong, dkong_state, empty_init, ROT270, "John Kowalski", "Donkey Kong Pace", MACHINE_SUPPORTS_SAVE )
GAME( 2017, dkchrmx, dkong, dk_braze, dkongx, dkong_state, init_dkongx, ROT270, "John Kowalski", "Donkey Kong Christmas Remix", MACHINE_SUPPORTS_SAVE )
GAME( 2018, dkspkyrmx, dkong, dk_braze, dkongx, dkong_state, init_dkongx, ROT270, "John Kowalski", "Donkey Kong Spooky Remix", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/galaxian.cpp b/docs/release/src/hbmame/drivers/galaxian.cpp
index 3060e08f5c2..283161c22b9 100644
--- a/docs/release/src/hbmame/drivers/galaxian.cpp
+++ b/docs/release/src/hbmame/drivers/galaxian.cpp
@@ -881,6 +881,29 @@ ROM_START( multigameb )
// ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
ROM_END
+// ROM_LOAD( "multi-prom.6e", 0x000000, 0x010000, CRC(5760a4f5) SHA1(539f56cae010488f0c6e4ff8de43e7dfe9b34375) )
+// ROM_LOAD( "multi-sndz80.bin", 0x000000, 0x010000, CRC(25865125) SHA1(5bbbc6f5a0ad6c6b86dea7893e4e18195c37192e) )
+ROM_START( scramblemk )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD( "multi.main", 0x00000, 0x80000, CRC(26e8a444) SHA1(abf3b69076e9318f10c487a3bbe530fb74ee8290) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multi.gfx1", 0x00000, 0x10000, CRC(7d420a14) SHA1(e603c3cf8fd88fa09017269d4f9ce8d027e20eaf) )
+ ROM_LOAD( "multi.gfx2", 0x10000, 0x10000, CRC(a5e17a10) SHA1(9208a74f1b46c31c6d95e2b2fad325258f2301b7) )
+
+ ROM_REGION( 0x400, "proms", 0 )
+ ROM_LOAD( "multi.col", 0x000000, 0x00400, CRC(5b2feb51) SHA1(413fd60057cf3fcf6ad86463b2b814a4471d4882) )
+ ROM_IGNORE(0x400)
+// ROM_LOAD( "bigcol.bin", 0x000400, 0x10000, CRC(19f54955) SHA1(45f4361a1136ecb5e5297708bfe0a577812eab29) )
+
+// ROM_REGION( 0x1000, "gfx1", 0 )
+// ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) )
+// ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) )
+
+// ROM_REGION( 0x0020, "proms", 0 )
+// ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
class multib_state : public videight_state
{
public:
@@ -956,3 +979,84 @@ void multib_state::multib(machine_config &config)
GAME( 2022, multigameb, galnamco, multib, warofbug, multib_state, init_multib, ROT90, "Macro", "MultigameB", MACHINE_SUPPORTS_SAVE )
+class smk_state : public videight_state
+{
+public:
+ smk_state(const machine_config &mconfig, device_type type, const char *tag)
+ : videight_state(mconfig, type, tag)
+ , m_rombank(*this, "rombank")
+ {
+ }
+
+ void smk(machine_config &config);
+ void init_smk();
+
+private:
+ //void multib_rombank_w(offs_t offset, uint8_t data);
+ //void multib_gfxbank_w(offs_t offset, uint8_t data);
+ void smk_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x, uint8_t y);
+ void smk_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void mem_map(address_map &map);
+
+ required_memory_bank m_rombank;
+};
+
+void smk_state::init_smk()
+{
+ m_rombank->configure_entries(0, 16, memregion("maincpu")->base(), 0x8000);
+ m_rombank->set_entry(0);
+
+ /* video extensions */
+ common_init(nullptr, nullptr, nullptr, nullptr);
+ m_extend_tile_info_ptr = extend_tile_info_delegate(&smk_state::videight_extend_tile_info, this);
+ m_extend_sprite_info_ptr = extend_sprite_info_delegate(&smk_state::videight_extend_sprite_info, this);
+}
+
+static GFXDECODE_START(gfx_smk)
+ GFXDECODE_SCALE("gfx1", 0x0000, galaxian_charlayout, 0, 32*32, GALAXIAN_XSCALE,1)
+ GFXDECODE_SCALE("gfx1", 0x0000, galaxian_spritelayout, 0, 32*32, GALAXIAN_XSCALE,1)
+GFXDECODE_END
+
+void smk_state::mem_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000,0x3fff).bankr(m_rombank);
+ map(0x4000,0x4fff).ram();
+ map(0x5000,0x53ff).mirror(0x400).ram().w(FUNC(smk_state::galaxian_videoram_w)).share("videoram");
+ map(0x5800,0x58ff).mirror(0x700).ram().w(FUNC(smk_state::galaxian_objram_w)).share("spriteram");
+ map(0x6000,0x6000).portr("IN0");
+ map(0x6800,0x6800).portr("IN1");
+ map(0x7000,0x7000).portr("IN2");
+ map(0x7800,0x7fff).r("watchdog",FUNC(watchdog_timer_device::reset_r));
+ map(0x6000,0x6002).w(FUNC(smk_state::videight_gfxbank_w));
+ map(0x6003,0x6003).w(FUNC(smk_state::coin_count_0_w));
+ map(0x6004,0x6007).w("cust",FUNC(galaxian_sound_device::lfo_freq_w));
+ map(0x6800,0x6807).w("cust",FUNC(galaxian_sound_device::sound_w));
+ map(0x6808,0x68ff).nopw();
+ map(0x7001,0x7001).w(FUNC(smk_state::irq_enable_w));
+ map(0x7002,0x7005).w(FUNC(smk_state::videight_rombank_w));
+ map(0x7006,0x7006).w(FUNC(smk_state::galaxian_flip_screen_x_w));
+ map(0x7007,0x7007).w(FUNC(smk_state::galaxian_flip_screen_y_w));
+ map(0x7008,0x7008).nopw(); /* bit 4 of rombank select - always 0 */
+ map(0x7800,0x7800).w("cust",FUNC(galaxian_sound_device::pitch_w));
+ map(0x7a00,0x7a00).nopw(); // unknown 0 and 1
+ map(0x7c00,0x7c00).nopw(); // unknown random numbers
+ map(0x7e00,0x7e00).nopw(); // unknown
+ map(0x3600,0x3600).nopw(); // unknown
+ map(0x8000,0xffff).rom();
+}
+
+void smk_state::smk(machine_config &config)
+{
+ galaxian(config);
+
+ // basic machine hardware
+ m_maincpu->set_addrmap(AS_PROGRAM, &smk_state::mem_map);
+
+ /* video hardware */
+ m_gfxdecode->set_info(gfx_smk);
+ m_palette->set_entries(32 * 32);
+}
+
+GAME( 2022, scramblemk, 0, smk, warofbug, smk_state, init_smk, ROT90, "<unknown>", "Scramble MultiKit", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/maketrax.cpp b/docs/release/src/hbmame/drivers/maketrax.cpp
index 81671874d0e..028c3420f84 100644
--- a/docs/release/src/hbmame/drivers/maketrax.cpp
+++ b/docs/release/src/hbmame/drivers/maketrax.cpp
@@ -1031,3 +1031,138 @@ ROM_END
GAME( 1999, theglobpb, 0, pacman, theglobp, puckman_state, empty_init, ROT90, "chaneman", "Super Glob (English conversion of sprglbpg)", MACHINE_SUPPORTS_SAVE )
+
+
+static INPUT_PORTS_START( ponpoko )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ /* The 2nd player controls are used even in upright mode */
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x01, "10000" )
+ PORT_DIPSETTING( 0x02, "30000" )
+ PORT_DIPSETTING( 0x03, "50000" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, "0" )
+ PORT_DIPSETTING( 0x04, "1" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x0c, "3" )
+ PORT_DIPNAME( 0x30, 0x20, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x30, "5" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x0f, 0x01, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x04, "A 3/1 B 3/1" )
+ PORT_DIPSETTING( 0x0e, "A 3/1 B 1/2" )
+ PORT_DIPSETTING( 0x0f, "A 3/1 B 1/4" )
+ PORT_DIPSETTING( 0x02, "A 2/1 B 2/1" )
+ PORT_DIPSETTING( 0x0d, "A 2/1 B 1/1" )
+ PORT_DIPSETTING( 0x07, "A 2/1 B 1/3" )
+ PORT_DIPSETTING( 0x0b, "A 2/1 B 1/5" )
+ PORT_DIPSETTING( 0x0c, "A 2/1 B 1/6" )
+ PORT_DIPSETTING( 0x01, "A 1/1 B 1/1" )
+ PORT_DIPSETTING( 0x06, "A 1/1 B 4/5" )
+ PORT_DIPSETTING( 0x05, "A 1/1 B 2/3" )
+ PORT_DIPSETTING( 0x0a, "A 1/1 B 1/3" )
+ PORT_DIPSETTING( 0x08, "A 1/1 B 1/5" )
+ PORT_DIPSETTING( 0x09, "A 1/1 B 1/6" )
+ PORT_DIPSETTING( 0x03, "A 1/2 B 1/2" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) /* Most likely unused */
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) /* Most likely unused */
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) /* Most likely unused */
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+void puckman_state::init_ponpoko()
+{
+ /* The gfx data is swapped wrt the other Pac-Man hardware games. */
+ /* Here we revert it to the usual format. */
+
+ int i, j;
+ uint8_t *RAM, temp;
+ int length = memregion("gfx1")->bytes()/2;
+
+ /* Characters */
+ RAM = memregion("gfx1")->base();
+ for (i = 0;i < length;i += 0x10)
+ {
+ for (j = 0; j < 8; j++)
+ {
+ temp = RAM[i+j+0x08];
+ RAM[i+j+0x08] = RAM[i+j+0x00];
+ RAM[i+j+0x00] = temp;
+ }
+ }
+
+ /* Sprites */
+ RAM = memregion("gfx1")->base()+length;
+ for (i = 0;i < length;i += 0x20)
+ {
+ for (j = 0; j < 8; j++)
+ {
+ temp = RAM[i+j+0x18];
+ RAM[i+j+0x18] = RAM[i+j+0x10];
+ RAM[i+j+0x10] = RAM[i+j+0x08];
+ RAM[i+j+0x08] = RAM[i+j+0x00];
+ RAM[i+j+0x00] = temp;
+ }
+ }
+}
+
+ROM_START( chuckie )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "chuckie.1", 0x0000, 0x1000, CRC(f2ba04fd) SHA1(30fd7256ac1706db94dfd0f7e7518b36197f4a32) )
+ ROM_LOAD( "chuckie.2", 0x1000, 0x1000, CRC(161510d3) SHA1(ad77509495a03466554f2388a9651a6183c16066) )
+ ROM_LOAD( "chuckie.3", 0x2000, 0x1000, CRC(5c594671) SHA1(598aa268b45a04e4dafbf7271278b06271b31e50) )
+ ROM_LOAD( "chuckie.4", 0x3000, 0x1000, CRC(25d4fc4f) SHA1(42f8424a8059248bb57e054e3bd129e995b94622) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "chuckie.9", 0x0000, 0x1000, CRC(7394bd6d) SHA1(0a4973636d1366872b1ce1e77772d6fef604922f) )
+ ROM_LOAD( "chuckie.10", 0x1000, 0x1000, CRC(0024afe1) SHA1(bd6ad919a9e116d08b030cd55597900bae6fd7e3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "chuckie.7f", 0x0000, 0x0020, CRC(f2f2cbfb) SHA1(b00207e379809168c0420d4d2ce5ee49a46e1bd7) )
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+GAME( 2023, chuckie, 0, woodpek, ponpoko, puckman_state, init_ponpoko, ROT0, "Arlasoft", "Chuckie Egg", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/mhavoc_hb.cpp b/docs/release/src/hbmame/drivers/mhavoc_hb.cpp
index 64123cbb99f..b90316c6bb6 100644
--- a/docs/release/src/hbmame/drivers/mhavoc_hb.cpp
+++ b/docs/release/src/hbmame/drivers/mhavoc_hb.cpp
@@ -206,7 +206,8 @@ static INPUT_PORTS_START( mhavoc )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(mhavoc_hbmame, gamma_rcvd_r)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Diag Step/Coin C") PORT_CODE(KEYCODE_F1)
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(mhavoc_hbmame, coin_service_r)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(mhavoc_hbmame, coin_cabinet_l)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(mhavoc_hbmame, coin_service_r)
PORT_START("IN1") /* gamma */
/* Bits 7-2 = input switches */
@@ -304,7 +305,8 @@ static INPUT_PORTS_START( mhavocpe_inputs )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(mhavoc_hbmame, gamma_rcvd_r)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Diag Step/Coin C") PORT_CODE(KEYCODE_F1)
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(mhavoc_hbmame, coin_service_r)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(mhavoc_hbmame, coin_cabinet_l)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(mhavoc_hbmame, coin_service_r)
PORT_START("IN1") /* gamma */
/* Bits 7-2 = input switches */
@@ -325,7 +327,9 @@ static INPUT_PORTS_START( mhavocpe_inputs )
PORT_START("LETA1")
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_COCKTAIL PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
- // DIP SWITCHES ARE UNUSED IN PE, SETTINGS CHANGED IN SELF TEST
+ // DIP SWITCHES ARE UNUSED IN PE, SETTINGS CHANGED IN SELF TEST, STILL DEFINE A CABINET PIN SWITCH THO
+ PORT_START("CABINET")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_START("COIN") /* dummy for player_1 = 0 on alpha */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) /* Left Coin Switch */
@@ -334,6 +338,7 @@ static INPUT_PORTS_START( mhavocpe_inputs )
PORT_START("SERVICE") /* dummy for player_1 = 1 on alpha */
PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
PORT_SERVICE( 0x02, IP_ACTIVE_LOW )
+
INPUT_PORTS_END
/*************************************
@@ -725,7 +730,7 @@ ROM_START( mhavocpe )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "mhpex089.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
+ ROM_LOAD( "mhpe100.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
ROM_END
ROM_START( mhavocpe_lpc )
@@ -770,7 +775,7 @@ ROM_START( mhavocpede )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "mhpex089.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
+ ROM_LOAD( "mhpe100.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
ROM_END
ROM_START( mhavocpefr )
@@ -794,7 +799,7 @@ ROM_START( mhavocpefr )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "mhpex089.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
+ ROM_LOAD( "mhpe100.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
ROM_END
ROM_START( mhavocpete )
@@ -818,7 +823,7 @@ ROM_START( mhavocpete )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "mhpex089.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
+ ROM_LOAD( "mhpe100.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
ROM_END
ROM_START( mhavocpedete )
@@ -842,7 +847,7 @@ ROM_START( mhavocpedete )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "mhpex089.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
+ ROM_LOAD( "mhpe100.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
ROM_END
ROM_START( mhavocpefrte )
@@ -866,7 +871,7 @@ ROM_START( mhavocpefrte )
ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
ROM_REGION( 0x40000, "oki", 0 )
- ROM_LOAD( "mhpex089.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
+ ROM_LOAD( "mhpe100.x1", 0x000000, 0x040000, CRC(c18cdcfb) SHA1(8b09f5539c90161a237ed3c74f1cf5a0864e04d4) )
ROM_END
//BETA BUILDS
diff --git a/docs/release/src/hbmame/drivers/mspacman.cpp b/docs/release/src/hbmame/drivers/mspacman.cpp
index a196e80fa1d..b2910282c0e 100644
--- a/docs/release/src/hbmame/drivers/mspacman.cpp
+++ b/docs/release/src/hbmame/drivers/mspacman.cpp
@@ -2621,6 +2621,26 @@ ROM_START( ms2600a )
PACMAN_PROMS
ROM_END
+ROM_START( pacjrz80 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacjrz80.1", 0x0000, 0x1000, CRC(8e190242) SHA1(3c6e540153c16f347993d78202a4a3e18dc5959b) )
+ ROM_LOAD( "pacjrz80.2", 0x1000, 0x1000, CRC(cdd466b5) SHA1(40d626adb177936143edfb91e5692ace30d564d7) )
+ ROM_LOAD( "pacjrz80.3", 0x2000, 0x1000, CRC(2b9cbba9) SHA1(578dba7faa2b960cde98f6a29534767cdb08ea1b) )
+ ROM_LOAD( "pacjrz80.4", 0x3000, 0x1000, CRC(c9010e06) SHA1(d9adb93323afacada3f691a83f00db8634ff4f33) )
+ ROM_LOAD( "pacjrz80.5", 0x8000, 0x1000, CRC(0c4c5d36) SHA1(064581261d308a27be296687d46ae998a0940a02) )
+ ROM_LOAD( "pacjrz80.6", 0x9000, 0x1000, CRC(064b1545) SHA1(1faf68504d9a28c9354ce6d6a2960904e34e3bf4) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjrz80.5e", 0x0000, 0x1000, CRC(235981d7) SHA1(fcbaf52c3c927db3f3e6d1754011b2904250cb82) )
+ ROM_LOAD( "pacjrz80.5f", 0x1000, 0x1000, CRC(a822eb36) SHA1(1b947db8da41fcb05fe0a04e203e06579e2800dd) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "pacjrz80.7f", 0x0000, 0x0020, CRC(b4da2d20) SHA1(798754da11341a21eafcffe55eba0861f04a4074) )
+ ROM_LOAD( "pacjrz80.4a", 0x0020, 0x0100, CRC(2b7d3ac6) SHA1(9529a6d8c5d299919230ee40bdf00aba8f85c2b9) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
/*************************************
*
@@ -2797,6 +2817,7 @@ GAME( 2018, mspacmadp, mspacman, woodpek, mspacman, puckman_state, empty_init
GAME( 2018, mspacatttur, mspacman, woodpek, mspacman, puckman_state, empty_init, ROT90, "MamePlus", "Ms. Pac Attack Plus Turbo", MACHINE_SUPPORTS_SAVE )
GAME( 2018, mspacii2, mspacman, woodpek, mspacman, puckman_state, empty_init, ROT90, "MamePlus", "Ms. Pacman (Pink Plus)", MACHINE_SUPPORTS_SAVE )
GAME( 2018, ms2600a, mspacman, woodpek, mspacman, puckman_state, empty_init, ROT90, "MamePlus", "Ms. Pacman (Atari look)", MACHINE_SUPPORTS_SAVE )
+GAME( 2022, pacjrz80, mspacman, woodpek, mspacman, puckman_state, empty_init, ROT90, "Pookin", "Pac-Jr on Pacman Hardware", MACHINE_SUPPORTS_SAVE )
#if 0
diff --git a/docs/release/src/hbmame/drivers/neogeo.cpp b/docs/release/src/hbmame/drivers/neogeo.cpp
index d7fd5a6c3c8..287a938a37f 100644
--- a/docs/release/src/hbmame/drivers/neogeo.cpp
+++ b/docs/release/src/hbmame/drivers/neogeo.cpp
@@ -5,283 +5,6 @@
Neo-Geo hardware
- Credits:
- * This driver was made possible by the research done by
- Charles MacDonald. For a detailed description of the Neo-Geo
- hardware, please visit his page at:
- http://cgfm2.emuviews.com/txt/mvstech.txt
- * Presented to you by the Shin Emu Keikaku team.
- * The following people have all spent probably far
- too much time on this:
- AVDB
- Bryan McPhail
- Fuzz
- Ernesto Corvi
- Andrew Prime
- Zsolt Vasvari
-
-
- Known driver issues/to-do's:
- ============================
-
- * Fatal Fury 3 crashes during the ending - this doesn't occur if
- the language is set to Japanese, maybe the English endings
- are incomplete / buggy?
- * Graphical Glitches caused by incorrect timing?
- - Some raster effects are imperfect (off by a couple of lines)
- * Multi-cart support not implemented - the MVS can take up to
- 6 cartridges depending on the board being used
- * 68000 waitstates on ROM region access, determined by jumpers on cart
- (garou train stage 3 background bug is probably related to this)
-
-
- Confirmed non-bugs:
-
- * Bad zooming in the Kof2003 bootlegs - this is what happens
- if you try and use the normal bios with a pcb set, it
- looks like the bootleggers didn't care.
- * Glitches at the edges of the screen - the real hardware
- can display 320x224 but most of the games seem designed
- to work with a width of 304, some less.
- * Distorted jumping sound in Nightmare in the Dark
- * Ninja Combat sometimes glitches
-
-
-*****************************************************************************
-
- The Neo-Geo Multi Video System (MVS), is an arcade system board, being
- the first product in the Neo-Geo family, designed by Alpha Denshi(ADK)
- and released in 1990 by SNK. It was known to the coin-op industry, and
- offered arcade operators the ability to put up to 6 different arcade
- titles into a single cabinet, a key economic consideration for operators
- with limited floorspace (games for the Neo-Geo are cartridge based and are
- easily exchangeable). It comes in many different cabinets but basically
- consists of an add on board that can be linked to a standard Jamma system.
- The system was discontinued in 2004.
- Source (modified): http://en.wikipedia.org/wiki/Neo_Geo
-
-
- MVS motherboards were produced in 1 / 2 / 4 and 6 Slot versions.
-
- Known motherboards:
- ===================
-
- 1 Slot:
- NEO-MVH MV1
- NEO-MVH MV1-1
- NEO-MVH MV1A
- . NEO-MVH MV1A CHX ??
- NEO-MVH MV1B (1996.1.19)
- . NEO-MVH MV1B CHX (1996.1.19) ??
- NEO-MVH MV1B1 (1998.6.17)
- NEO-MVH MV1C (1999.4.30)
- NEO-MVH MV1F
- NEO-MVH MV1FS
- NEO-MVH MV1FT
- NEO-MVH MV1FZ
- NEO-MVH MV1FZS
-
- 2 Slot:
- NEO-MVH MV2
- NEO-MVH MV2F
- NEO-MVH MV2F-01
-
- 4 Slot:
- NEO-MVH MV4
- NEO-MVH MV4F
- NEO-MVH MV4FS
- NEO-MVH MV4FT
- NEO-MVH MV4FT2
-
- 6 Slot:
- NEO-MVH MV6
- NEO-MVH MV6F
-
-
- Neo-Geo Motherboard (info - courtesy of Guru):
-
- NEO-MVH MV1
- |---------------------------------------------------------------------|
- | 4558 |
- | HC04 HC32 |
- | SP-S2.SP1 NEO-E0 000-L0.L0 LS244 AS04 |
- | YM2610 |
- | 4558 |
- | 4558 5814 HC259 SFIX.SFIX |
- | NEO-I0 |
- | HA13001 YM3016 5814 |
- --| |
- | 4558 |
- --| SM1.SM1 LS32 |
- | |
- | LSPC-A0 PRO-C0 LS244 |
- | |
- |J 68000 |
- |A |
- |M |
- |M NEO-ZMC2 |
- |A |
- | LS273 NEO-G0 58256 58256 Z80A |
- | 58256 58256 58256 58256 6116 |
- | LS273 5864 |
- --| LS05 5864 PRO-B0 |
- | |
- --| LS06 HC32 D4990A NEO-F0 24.000MHz |
- | DSW1 BATT3.6V 32.768kHz NEO-D0 |
- | 2003 2003 |
- |---------------------------------------------------------------------|
-
-
-*****************************************************************************
-
- Neo-Geo game PCB infos:
- =======================
-
- The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
-
- Each cartridge consists of two PCBs: CHA and PROG.
- .CHA PCB contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
- .PROG PCB contains sample data ('V' - rom) and program code ('P' - rom).
-
- On most PCBs various custom/protection chips can also be found:
- (Custom chip detail information (modified) from: http://wiki.neogeodev.org)
-
- CHA:
- . NEO-273 (C and S-ROM address latch)
- . NEO-CMC 90G06CF7042 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching)
- . NEO-CMC 90G06CF7050 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / M-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching)
- . NEO-ZMC (Z80 memory controller)
- . NEO-ZMC2 (Z80 memory controller / Tile serializer)
- . PRO-CT0 (C-ROM serializer and multiplexer?; used on early AES-CHA boards)
- . SNK-9201 (C-ROM serializer and multiplexer?; used on early AES-CHA boards)
-
- PROG:
- . 0103 (QFP144) (Only found on Metal Slug X NEO-MVS PROGEOP board; function unknown)
- . ALTERA (EPM7128SQC100-15) (P-ROM protection chip used for KOF98 NEO-MVS PROGSF1 board and Metal Slug X NEO-MVS PROGEOP board)
- . NEO-COMA (Microcontroller; used for MULTI PLAY MODE, boards and sets see below)
- . NEO-PCM2 (SNK 1999) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching)
- . NEO-PCM2 (PLAYMORE 2002) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching)
- . NEO-PVC (P-ROM decryption and bankswitching) / RAM
- . NEO-SMA (P-ROM decryption and bankswitching / RNG / Storage of 256kb game data)
- . PCM (ADPCM bus latches / V-ROM multiplexer)
- . PRO-CT0 (On PROG board used for P-ROM protection -> Fatal Fury 2)
- . SNK-9201 (On PROG board used for P-ROM protection -> Fatal Fury 2)
-
-
-
- Known PCBs:
- ============
-
- MVS CHA:
- -- SNK --
- . NEO-MVS CHA-32
- . NEO-MVS CHA-8M
- . NEO-MVS CHA42G
- . NEO-MVS CHA42G-1
- . NEO-MVS CHA 42G-2
- . NEO-MVS CHA 42G-3
- . NEO-MVS CHA42G-3B
- . NEO-MVS CHA256
- . NEO-MVS CHA256B
- . NEO-MVS CHA512Y
- . NEO-MVS CHAFIO (1999.6.14) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050
- . MVS CHAFIO REV1.0 (KOF-2001)
- . NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
- -- SNKPLAYMORE --
- . NEO-MVS CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
-
- -- SNK development boards --
- . NEO-MVS CHAMC2
-
- MVS PROG:
- -- SNK --
- . NEO-MVS PROG-NAM
- . NEO-MVS PROG-HERO
- . NEO-MVS PROG-EP
- . NEO-MVS PROG-8MB
- . NEO-MVS PROGEP8M
- . NEO-MVS PROG8M42
- . NEO-MVS PROG16
- . NEO-MVS PROG42G
- . NEO-MVS PROG42G-COM
- . NEO-MVS PROG42G-1
- . NEO-MVS PROG-G2
- . NEO-MVS PROG 4096
- . NEO-MVS PROG 4096 B
- . NEO-MVS PROGGSC
- . NEO-MVS PROGSM
- . NEO-MVS PROGSS3
- . NEO-MVS PROGTOP
- . NEO-MVS PROGSF1 (1998.6.17)
- . NEO-MVS PROGSF1E (1998.6.18)
- . NEO-MVS PROGEOP (1999.2.2)
- . NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
- . NEO-MVS PROGBK1 (1994)
- . NEO-MVS PROGBK1 (2001)
- . NEO-MVS PROGBK2 (2000.3.21) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
- . MVS PROGBK2 REV1.0 (KOF-2001)
- . NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
- -- SNKPLAYMORE --
- . NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
- . NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
- . NEO-MVS PROGBK3S (2003.10.1)
- . NEO-MVS PROGBK2S (2003.10.18)
-
- -- SNK development boards --
- . NEO-MVS PROGMC2
-
-
- AES CHA:
- -- SNK --
- . NEO-AEG CHA-32
- . NEO-AEG CHA-8M
- . NEO-AEG CHA42G
- . NEO-AEG CHA42G-1
- . NEO-AEG CHA42G-2B
- . NEO-AEG CHA42G-3
- . NEO-AEG CHA42G-4
- . NEO-AEG CHA256
- . NEO-AEG CHA256 B
- . NEO-AEG CHA256[B]
- . NEO-AEG CHA256BY
- . NEO-AEG CHA256RY
- . NEO-AEG CHA512Y
- . NEO-AEG CHAFIO (1999.8.10) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050
- -- SNKPLAYMORE --
- . NEO-AEG CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
-
- AES PROG:
- -- SNK --
- . NEO-AEG PROG-NAM
- . NEO-AEG PROG-HERO
- . NEO-AEG PROG-4A
- . NEO-AEG PROG-4B
- . NEO-AEG PROG 8M42
- . NEO-AEG PROG B
- . NEO-AEG PROG16
- . NEO-AEG PROG42G
- . NEO-AEG PROG42G-COM
- . NEO-AEG PROG42G-1
- . NEO-AEG PROG-G2
- . NEO-AEG PROG4096 B
- . NEO-AEG PROGGS
- . NEO-AEG PROGTOP2
- . NEO-AEG PROGTOP2Y
- . NEO-AEG PROGEOP (1999.4.2)
- . NEO-AEG PROGLBA (1999.7.6)
- . NEO-AEG PROGRK
- . NEO-AEG PROGRKB
- . NEO-AEG PROGBK1Y
- . NEO-AEG PROGBK1F
- -- PLAYMORE --
- . NEO-AEG PROGBK2 (2002.4.1) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
- -- SNKPLAYMORE --
- . NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
- . NEO-AEG PROGBK3S (2003.10.6)
- . NEO-AEG PROGBK2S (2003.10.16)
-
-
-
Cartridge colours:
==================
@@ -302,113 +25,6 @@
The above listed only covers SNK / PLAYMORE / SNKPLAYMORE PCBs. There also exists a
wide range of 'bootleg' PCBs.
-
- Unofficial pcb's from NG:DEV.TEAM:
-
- MVS CHA:
- GIGA CHAR Board 1.0 Rev. A
- GIGA CHAR Board 1.5 Rev. 0
- GIGA CHAR Board 1.5 Rev. C
-
- MVS PROG:
- GIGA PROG Board 1.0 Rev. B
- GIGA PROG Board 1.5 Rev. A
- GIGA PROG Board 1.5 Rev. C
-
-
- Unofficial pcb's from NEOBITZ:
-
- MVS CHA:
- CHARBITZ1 2013.12.01
-
- MVS PROG:
- PROGBITZ1 2013.12.01
-
-
- Neo-Geo game PCB infos by Johnboy
-
-
-
- MVS cart pinout:
- ================
-
- Kindly submitted by Apollo69 (apollo69@columbus.rr.com)
- =================================================================
- CTRG1 CTRG2
- =================================================================
- GND = 01A | 01B = GND GND = 01A | 01B = GND
- GND = 02A | 02B = GND GND = 02A | 02B = GND
- P0 = 03A | 03B = P1 GND = 03A | 03B = GND
- P2 = 04A | 04B = P3 GND = 04A | 04B = GND
- P4 = 05A | 05B = P5 D0 = 05A | 05B = A1
- P6 = 06A | 06B = P7 D1 = 06A | 06B = A2
- P8 = 07A | 07B = P9 D2 = 07A | 07B = A3
- P10 = 08A | 08B = P11 D3 = 08A | 08B = A4
- P12 = 09A | 09B = P13 D4 = 09A | 09B = A5
- P14 = 10A | 10B = P15 D5 = 10A | 10B = A6
- P16 = 11A | 11B = P17 D6 = 11A | 11B = A7
- P18 = 12A | 12B = P19 D7 = 12A | 12B = A8
- P20 = 13A | 13B = P21 D8 = 13A | 13B = A9
- P22 = 14A | 14B = P23 D9 = 14A | 14B = A10
- PCK1B = 15A | 15B = 24M D10 = 15A | 15B = A11
- PCK2B = 16A | 16B = 12M D11 = 16A | 16B = A12
- 2H1 = 17A | 17B = 8M D12 = 17A | 17B = A13
- CA4 = 18A | 18B = RESET D13 = 18A | 18B = A14
- CR0 = 19A | 19B = CR1 D14 = 19A | 19B = A15
- CR2 = 20A | 20B = CR3 D15 = 20A | 20B = A16
- CR4 = 21A | 21B = CR5 R/W = 21A | 21B = A17
- CR6 = 22A | 22B = CR7 AS = 22A | 22B = A18
- CR8 = 23A | 23B = CR9 ROMOEU = 23A | 23B = A19
- CR10 = 24A | 24B = CR11 ROMOEL = 24A | 24B = 68KCLKB
- CR12 = 25A | 25B = CR13 PORTOEU = 25A | 25B = ROMWAIT
- CR14 = 26A | 26B = CR15 PORTOEL = 26A | 26B = PWAIT0
- CR16 = 27A | 27B = CR17 PORTWEU = 27A | 27B = PWAIT1
- CR18 = 28A | 28B = CR19 PORTWEL = 28A | 28B = PDTACT
- VCC = 29A | 29B = VCC VCC = 29A | 29B = VCC
- VCC = 30A | 30B = VCC VCC = 30A | 30B = VCC
- VCC = 31A | 31B = VCC VCC = 31A | 31B = VCC
- VCC = 32A | 32B = VCC VCC = 32A | 32B = VCC
- CR20 = 33A | 33B = CR21 PORTADRS = 33A | 33B = 4MB
- CR22 = 34A | 34B = CR23 NC = 34A | 34B = ROMOE
- CR24 = 35A | 35B = CR25 NC = 35A | 35B = RESET
- CR26 = 36A | 36B = CR27 NC = 36A | 36B = NC
- CR28 = 37A | 37B = CR29 NC = 37A | 37B = NC
- CR30 = 38A | 38B = CR31 NC = 38A | 38B = NC
- NC = 39A | 39B = FIX00 NC = 39A | 39B = NC
- NC = 40A | 40B = FIX01 NC = 40A | 40B = NC
- NC = 41A | 41B = FIX02 NC = 41A | 41B = SDPAD0
- SYSTEMB = 42A | 42B = FIX03 SYSTEMB = 42A | 42B = SDPAD1
- SDA0 = 43A | 43B = FIX04 SDPA8 = 43A | 43B = SDPAD2
- SDA1 = 44A | 44B = FIX05 SDPA9 = 44A | 44B = SDPAD3
- SDA2 = 45A | 45B = FIX06 SDPA10 = 45A | 45B = SDPAD4
- SDA3 = 46A | 46B = FIX07 SDPA11 = 46A | 46B = SDPAD5
- SDA4 = 47A | 47B = SDRD0 SDPMPX = 47A | 47B = SDPAD6
- SDA5 = 48A | 48B = SDRD1 SDPOE = 48A | 48B = SDPAD7
- SDA6 = 49A | 49B = SDROM SDRA8 = 49A | 49B = SDRA00
- SDA7 = 50A | 50B = SDMRD SDRA9 = 50A | 50B = SDRA01
- SDA8 = 51A | 51B = SDDO SDRA20 = 51A | 51B = SDRA02
- SDA9 = 52A | 52B = SDD1 SDRA21 = 52A | 52B = SDRA03
- SDA10 = 53A | 53B = SDD2 SDRA22 = 53A | 53B = SDRA04
- SDA11 = 54A | 54B = SDD3 SDRA23 = 54A | 54B = SDRA05
- SDA12 = 55A | 55B = SDD4 SDRMPX = 55A | 55B = SDRA06
- SDA13 = 56A | 56B = SDD5 SDROE = 56A | 56B = SDRA07
- SDA14 = 57A | 57B = SDD6 GND = 57A | 57B = GND
- SDA15 = 58A | 58B = SDD7 GND = 58A | 58B = GND
- GND = 59A | 59B = GND GND = 59A | 59B = GND
- GND = 60A | 60B = GND GND = 60A | 60B = GND
-
- CTRG1 (CHA) = Contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom)
- CTRG2 (PROG) = Contains sample data ('V' - rom) and program code ('P' - rom)
-
- NOTE: On CTRG2-B, The "A" lines start at "A1". If you trace this on an
- actual cart, you will see that this is actually "A0" (A0 - A18).
-
- These are from a very hard to read copy of the schematics, so
- I hope that I got the pin names correct.
-
- Apollo69 10/19/99
-
-
*****************************************************************************
Watchdog:
@@ -454,6 +70,8 @@
****************************************************************************/
#include "includes/neogeo.h"
+#include "unzip.h"
+#include "softlist_dev.h"
#include "neogeo.lh"
@@ -1007,6 +625,8 @@ void neogeo_state::init_neogeo()
// install controllers
m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16smo_delegate(*this, FUNC(neogeo_state::in0_r)));
m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16smo_delegate(*this, FUNC(neogeo_state::in1_r)));
+ m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes());
+ m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios);
}
@@ -1066,8 +686,8 @@ void neogeo_state::machine_start()
machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), this));
m_sprgen->set_screen(m_screen);
- m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes());
- m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios);
+// m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes());
+// m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios);
}
@@ -1472,6 +1092,29 @@ void neogeo_state::no_watchdog(machine_config &config)
subdevice<watchdog_timer_device>("watchdog")->set_time(attotime::from_seconds(0.0));
}
+void neogeo_state::ngneo(machine_config &config)
+{
+ mvs(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &neogeo_state::main_map_noslot);
+
+ // quickload
+ quickload_image_device &quickload(QUICKLOAD(config, "quickload", "neo", attotime::from_seconds(1)));
+ quickload.set_load_callback(FUNC(neogeo_state::neo_q_cb));
+ quickload.set_interface("neo_quik");
+ SOFTWARE_LIST(config, "quik_list").set_original("neo_quik");
+}
+
+void neogeo_state::ngmvs(machine_config &config)
+{
+ mvs(config);
+ m_maincpu->set_addrmap(AS_PROGRAM, &neogeo_state::main_map_noslot);
+
+ // quickload
+ quickload_image_device &quickload(QUICKLOAD(config, "quickload", "7z", attotime::from_seconds(1)));
+ quickload.set_load_callback(FUNC(neogeo_state::mvs_q_cb));
+ quickload.set_interface("mvs_quik");
+ //SOFTWARE_LIST(config, "quik_list").set_original("mvs_quik"); // not working
+}
void neogeo_state::gsc_map(address_map &map)
{
@@ -2205,10 +1848,6 @@ void neogeo_state::init_kf2k3upl()
}
-
-
-
-
/*********************************************** non-carts */
void neogeo_state::install_banked_bios()
@@ -2291,6 +1930,254 @@ void neogeo_state::init_cmc42sfix()
}
+QUICKLOAD_LOAD_MEMBER(neogeo_state::neo_q_cb)
+{
+ if (image.length() < 0x60000)
+ {
+ image.seterror(image_error::INVALIDIMAGE, "File too short");
+ printf("File too short\n");
+ image.message("File too short");
+ return image_init_result::FAIL;
+ }
+
+ // check header
+ u8 header[0x1000];
+ image.fread( &header, 0x1000);
+
+ if ((header[0] == 'N') && (header[1] == 'E') && (header[2] == 'O'))
+ {
+ }
+ else
+ {
+ image.seterror(image_error::INVALIDIMAGE, "NEO header missing");
+ printf("NEO header missing\n");
+ image.message("NEO header missing");
+ return image_init_result::FAIL;
+ }
+
+ // Get file sizes
+ u32 psize = header[4] + header[5]*0x100 + header[6]*0x10000 + header[7]*0x1000000;
+ u32 ssize = header[8] + header[9]*0x100 + header[10]*0x10000 + header[11]*0x1000000;
+ u32 msize = header[12] + header[13]*0x100 + header[14]*0x10000 + header[15]*0x1000000;
+ u32 vsize = header[16] + header[17]*0x100 + header[18]*0x10000 + header[19]*0x1000000;
+ u32 v2size = header[20] + header[21]*0x100 + header[22]*0x10000 + header[23]*0x1000000;
+ u32 csize = header[24] + header[25]*0x100 + header[26]*0x10000 + header[27]*0x1000000;
+
+ // Make sure file is big enough
+ u64 total = 0x1000 + psize + ssize + msize + vsize + v2size + csize;
+ if (total > image.length())
+ {
+ image.seterror(image_error::INVALIDIMAGE, "File is corrupt");
+ printf("File is corrupt.\n");
+ image.message("File is corrupt");
+ return image_init_result::FAIL;
+ }
+
+ // Make sure regions are big enough
+ if (psize > cpuregion_size)
+ {
+ image.seterror(image_error::INVALIDIMAGE, "CPU region in NEO file is larger than supported");
+ printf("CPU size requested (%08X) is greater than available (%08X)\n",psize,cpuregion_size);
+ image.message("CPU region in NEO file is larger than supported");
+ return image_init_result::FAIL;
+ }
+
+ if (ssize > fix_region_size)
+ {
+ image.seterror(image_error::INVALIDIMAGE, "FIX region in NEO file is larger than supported");
+ printf("FIX size requested (%08X) is greater than available (%08X)\n",ssize,fix_region_size);
+ image.message("FIX region in NEO file is larger than supported");
+ return image_init_result::FAIL;
+ }
+
+ if (vsize > ym_region_size)
+ {
+ image.seterror(image_error::INVALIDIMAGE, "ADPCMA region in NEO file is larger than supported");
+ printf("ADPCMA size requested (%08X) is greater than available (%08X)\n",vsize,ym_region_size);
+ image.message("ADPCMA region in NEO file is larger than supported");
+ return image_init_result::FAIL;
+ }
+
+ u32 ym2_region_size = memregion("ymsnd:adpcmb")->bytes();
+ if ((v2size > ym2_region_size) || (ym_region_size > ym2_region_size))
+ {
+ image.seterror(image_error::INVALIDIMAGE, "ADPCMB region in NEO file is larger than supported");
+ printf("ADPCMB size requested (%08X) is greater than available (%08X)\n",v2size,ym2_region_size);
+ image.message("ADPCMB region in NEO file is larger than supported");
+ return image_init_result::FAIL;
+ }
+
+ if (msize > (audio_region_size - 0x10000))
+ {
+ image.seterror(image_error::INVALIDIMAGE, "AUDIO region in NEO file is larger than supported");
+ printf("AUDIO region (%08X) in NEO file is larger than supported\n",msize);
+ image.message("AUDIO region in NEO file is larger than supported");
+ return image_init_result::FAIL;
+ }
+
+ if (csize > spr_region_size)
+ {
+ image.seterror(image_error::INVALIDIMAGE, "SPR region in NEO file is larger than supported");
+ printf("SPR size requested (%08X) is greater than available (%08X)\n",csize,spr_region_size);
+ image.message("SPR region in NEO file is larger than supported");
+ return image_init_result::FAIL;
+ }
+
+ // copy the data from the NEO file to the regions
+ printf("psize=%X\n",psize);fflush(stdout);
+ if (psize)
+ image.fread(&cpuregion[0],psize);
+
+ printf("ssize=%X\n",ssize);fflush(stdout);
+ if (ssize)
+ image.fread(&fix_region[0],ssize);
+
+ printf("msize=%X\n",msize);fflush(stdout);
+ if (msize)
+ {
+ image.fread(&audiocpu_region[0x10000],msize);
+ std::copy(&audiocpu_region[0x10000], &audiocpu_region[0x1ffff], &audiocpu_region[0]);
+ }
+
+ printf("vsize=%X\n",vsize);fflush(stdout);
+ if (vsize)
+ {
+ image.fread(&ym_region[0],vsize);
+ std::copy(&ym_region[0], &ym_region[vsize-1], &memregion("ymsnd:adpcmb")->base()[0]); // fix totc,rotd
+ }
+
+ printf("v2size=%X\n",v2size);fflush(stdout);
+ if (v2size)
+ image.fread(&memregion("ymsnd:adpcmb")->base()[0],v2size);
+
+ printf("csize=%X\n",csize);fflush(stdout);
+ if (csize)
+ image.fread(&spr_region[0],csize);
+
+ // Prepare the system
+ printf("Ready to start\n");fflush(stdout);
+ init_neogeo();
+ m_sprgen->set_sprite_region(m_region_sprites->base(), csize); // fix wh2
+ m_sprgen->set_fixed_regions(m_region_fixed->base(), ssize, m_region_fixedbios);
+ m_sprgen->optimize_sprite_data(); // fix sprites
+
+ // Fix the 512k text with horrible game-specific stuff
+ if (ssize > 0x20000)
+ {
+ u16 game = cpuregion[0x109] * 256 + cpuregion[0x108];
+ // identify kof2000, matrim, svc, kof2003
+ if ((game == 0x257) || (game == 0x266) || (game == 0x269) || (game == 0x271))
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ else
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ }
+
+ m_audiocpu->reset();
+ machine_reset();
+
+ return image_init_result::PASS;
+}
+
+std::error_condition neogeo_state::mvs_open7z(std::string zip_name, std::string filename, uint8_t *region_name, u32 region_size, u32 *file_size)
+{
+ util::archive_file::ptr zip;
+ std::error_condition ziperr{};
+
+ // look into 7z file
+ ziperr = util::archive_file::open_7z(zip_name, zip);
+
+ if (!ziperr)
+ {
+ int found = zip->search(filename, false);
+
+ if (found >= 0)
+ {
+ ziperr = zip->decompress(&region_name[0], region_size);
+
+ if (!ziperr)
+ *file_size = zip->current_uncompressed_length();
+ }
+
+ zip.reset();
+ }
+
+ return ziperr;
+}
+
+QUICKLOAD_LOAD_MEMBER(neogeo_state::mvs_q_cb)
+{
+ u32 psize = 0, ssize = 0, msize = 0, vsize = 0, csize = 0, fsize = 0;
+ std::string fname = "prom", sstr = ".7z", zipname = image.filename();
+ std::error_condition filerr = std::errc::no_such_file_or_directory;
+ // assuming that first .7z is the only occurence
+ std::size_t found = zipname.find(sstr);
+ if (found != std::string::npos)
+ {
+ zipname.erase(found+3);
+ //printf("%s\n",zipname.c_str());fflush(stdout);
+
+ // The protected sets also have "prom1", but we don't support it.
+ filerr = mvs_open7z(zipname, fname, &cpuregion[0], cpuregion_size, &psize);
+ }
+ if (filerr)
+ {
+ image.seterror(image_error::INVALIDIMAGE, "File is missing or unusable");
+ printf("File is missing or unusable\n");
+ image.message("File is missing or unusable");
+ return image_init_result::FAIL;
+ }
+
+ fname = "srom";
+ filerr = mvs_open7z(zipname, fname, &fix_region[0], fix_region_size, &ssize);
+
+ fname = "m1rom";
+ filerr = mvs_open7z(zipname, fname, &audiocpu_region[0x10000], audio_region_size - 0x10000, &msize);
+ if (msize)
+ std::copy(&audiocpu_region[0x10000], &audiocpu_region[0x1ffff], &audiocpu_region[0]);
+
+ fname = "vroma0";
+ filerr = mvs_open7z(zipname, fname, &ym_region[0], ym_region_size, &vsize);
+ if (vsize)
+ std::copy(&ym_region[0], &ym_region[ym_region_size-1], &memregion("ymsnd:adpcmb")->base()[0]);
+ // Assume that the ADPCMB rom would be called "vromb0", but no current sets use it.
+
+ fname = "crom0";
+ filerr = mvs_open7z(zipname, fname, &spr_region[0], spr_region_size, &csize);
+ if (csize)
+ for (u32 i = 0; i < csize; i+=4)
+ std::swap(spr_region[i+1], spr_region[i+2]);
+
+ init_neogeo();
+ m_sprgen->set_sprite_region(m_region_sprites->base(), csize);
+ m_sprgen->set_fixed_regions(m_region_fixed->base(), ssize, m_region_fixedbios);
+ m_sprgen->optimize_sprite_data();
+
+ // Fix the 512k text with horrible game-specific stuff
+ if (ssize > 0x20000)
+ {
+ u16 game = cpuregion[0x109] * 256 + cpuregion[0x108];
+ // identify kof2000, matrim, svc, kof2003
+ if ((game == 0x257) || (game == 0x266) || (game == 0x269) || (game == 0x271))
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ else
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ }
+
+ // This file is optionally included, perhaps to signify how to handle protection?
+ // The contents are an ascii number, so for now just print it out.
+ fname = "fpga";
+ unsigned char buffer[8] = {};
+ filerr = mvs_open7z(zipname, fname, &buffer[0], 4, &fsize);
+ if (fsize)
+ printf("FPGA code = %s\n",buffer);
+
+ m_audiocpu->reset();
+ machine_reset();
+
+ return image_init_result::PASS;
+}
+
+
/* dummy entry for the dummy bios driver */
ROM_START( neogeo )
NEOGEO_BIOS
@@ -2313,7 +2200,59 @@ ROM_START( neogeo )
ROM_REGION( 0x100000, "sprites", ROMREGION_ERASEFF )
ROM_END
+ROM_START( ngneo )
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x900000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x90000, "audiocpu", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x80000, "fixed", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION( 0x1000000, "ymsnd:adpcma", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd:adpcmb", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x4000000, "sprites", ROMREGION_ERASEFF )
+ROM_END
+
+ROM_START( ngmvs )
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x900000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x90000, "audiocpu", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x80000, "fixed", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION( 0x1000000, "ymsnd:adpcma", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd:adpcmb", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x4000000, "sprites", ROMREGION_ERASEFF )
+ROM_END
+
/* YEAR NAME PARENT MACHINE INPUT CLASS INIT */
-GAME( 1990, neogeo, 0, mvs, neogeo_6slot, neogeo_state, init_neogeo, ROT0, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, neogeo, 0, mvs, neogeo_6slot, neogeo_state, init_neogeo, ROT0, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ngneo, neogeo, ngneo, neogeo, neogeo_state, empty_init, ROT0, "SNK", "Neo-Geo .neo support", 0 )
+GAME( 1990, ngmvs, neogeo, ngmvs, neogeo, neogeo_state, empty_init, ROT0, "SNK", "Neo-Geo MultiMVS support", 0 )
diff --git a/docs/release/src/hbmame/drivers/neogeo1.cpp b/docs/release/src/hbmame/drivers/neogeo1.cpp
index 778b2161e1a..6e7a52dedbf 100644
--- a/docs/release/src/hbmame/drivers/neogeo1.cpp
+++ b/docs/release/src/hbmame/drivers/neogeo1.cpp
@@ -2732,9 +2732,9 @@ ROM_START( tpgolfcd )
ROM_END
-ROM_START( trallycd ) // title screen is corrupt
+ROM_START( trallycd ) // Rally Chase
ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "038.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) )
+ ROM_LOAD16_WORD_SWAP( "038cd.p1", 0x000000, 0x080000, CRC(430c531b) SHA1(731348fbbb320506918abdc8f12fb86a52287cdb) )
ROM_LOAD16_WORD_SWAP( "038cd.p2", 0x080000, 0x080000, CRC(9facb7fb) SHA1(96b4edbdddbd9ba642d0d046b33349c95559badd) )
NEO_SFIX_128K( "038cd.s1", CRC(81022312) SHA1(bdb8ae4cd43f196f1b185a48e25980565226bb71) )
@@ -3088,7 +3088,7 @@ GAME( 1990, superspycd, superspy, neogeo_noslot, neogeo, neogeo_state, init_n
GAME( 1994, tophuntrpx, tophuntr, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Xyahzhs", "Top Hunter (Plus Max)", MACHINE_SUPPORTS_SAVE )
GAME( 2007, tpgolfcd, tpgolf, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "CD_conv", "Top Player's Golf (CD conversion)", MACHINE_SUPPORTS_SAVE )
-GAME( 1991, trallycd, trally, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "CD_conv", "Thrash Rally (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, trallycd, trally, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "CD_conv", "Rally Chase (CD conversion)", MACHINE_SUPPORTS_SAVE )
GAME( 1996, twinsprih, twinspri, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Yumeji", "Twinkle Star Sprites (Enable Hidden Characters)", MACHINE_SUPPORTS_SAVE )
GAME( 2004, viewpoinf, viewpoin, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Shyma.X", "Viewpoint (French Traduction, 2004-07-29)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/neogeo_noslot.cpp b/docs/release/src/hbmame/drivers/neogeo_noslot.cpp
index ea7a3b6f3f2..b984e7743ee 100644
--- a/docs/release/src/hbmame/drivers/neogeo_noslot.cpp
+++ b/docs/release/src/hbmame/drivers/neogeo_noslot.cpp
@@ -51,7 +51,7 @@
MULTI PLAY MODE:
================
- The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Trash Rally).
+ The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Thrash Rally).
This allows you to 'link' 4 games (MVS) / 2 games (AES) using in game 'Multi-Play' option. To establish
a link between the carts you have to connect the carts to each other by a communicator cable. The communicatior
cable is a regular headphone cable with stereo pin jack. It has been reported that you can also 'link' MVS <-> AES.
@@ -6427,7 +6427,7 @@ ROM_END
NSBP V1.0U
PROGRAM CART REVISION 2.0 COPYRIGHT VEKTORLOGIC (C) 2004 / GRAPHICS CART REVISION 1.2 COPYRIGHT VEKTORLOGIC (C) 2004
****************************************/
-
+#if 0
// this doesn't boot, protection like kof98?
// you can force it to boot with a simple debugger trick, but then it resets when starting a game
ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */
@@ -6451,7 +6451,21 @@ ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */
ROM_LOAD16_BYTE( "338.c1", 0x000000, 0x200000, CRC(44791317) SHA1(9e773eb9aae5ee767213bd17348ff8a312e9cb16) )
ROM_LOAD16_BYTE( "338.c2", 0x000001, 0x200000, CRC(a3a1c0df) SHA1(3b1e5be673f7cbb04199a805b0e0de93dad8cb8c) )
ROM_END
+#endif
+ROM_START( sbpf )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "338f.p1", 0x000000, 0x040000, CRC(1aa8f9e2) SHA1(98ecb3020c45b4833ccec7fc98e33c2d1a31f45e) )
+
+ NEO_SFIX_128K( "338f.s1", CRC(7e1cdb26) SHA1(a2479ef13f9571ca90305cfc6acd5c0bff83f92f) )
+
+ NEO_BIOS_AUDIO_512K( "338.m1", CRC(7b1f86f7) SHA1(15b6af7f9fbd0f1f6a1ecd912200ca8d0af2da2a) )
+ ROM_REGION( 0x800000, "ymsnd:adpcma", 0 )
+ ROM_LOAD( "338f.v1", 0x000000, 0x800000, CRC(7ae9fbdb) SHA1(53d25c4f0a33392490fc74c2fa5329a31b246fde) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD( "338f.c1", 0x000000, 0x200000, CRC(72a26879) SHA1(1b78d6698a67aa9252ec16206c7ea7ae02a7c069) )
+ROM_END
/*************************************
*
@@ -8218,7 +8232,7 @@ GAME( 2001, vlinero, vliner, neogeo_noctrl, vliner, neogeo_state, init_
GAME( 2000, diggerma, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Kyle Hodgetts", "Digger Man (proto)", MACHINE_SUPPORTS_SAVE )
/* Vektorlogic */
-GAME( 2004, sbp, neogeo, neogeo_noslot, neogeo, neogeo_state, init_sbp, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING )
+GAME( 2004, sbpf, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Vektorlogic", "Super Bubble Pop (fixed)", MACHINE_SUPPORTS_SAVE )
/* NG:DEV.TEAM */
GAME( 2005, lasthope, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game
diff --git a/docs/release/src/hbmame/drivers/neogeohb.cpp b/docs/release/src/hbmame/drivers/neogeohb.cpp
index 6940f7f321a..5ae438cfde6 100644
--- a/docs/release/src/hbmame/drivers/neogeohb.cpp
+++ b/docs/release/src/hbmame/drivers/neogeohb.cpp
@@ -192,6 +192,7 @@ NUM GAME YEAR COMPANY TITLE
496 1234 2020 OzzyOuzo Neo Black Tiger
497 0993 2021 iq132 Cabal (Neo-Geo port)
498 0052 2021 Kako Eimon Abyssal Infants
+499 2048 2021 Nicole Branagan Neo 2048
@@ -317,11 +318,18 @@ YEAR COMPANY TITLE
2018 Blastar Neo No Panepon 2 Sunnyland Edition (CD) (video on youtube)
2018 NeoHomeBrew (aka M.Priewe) Pseudo 3D Racing Game Engine Demo (video on youtube)
2019 Hine62/SAOH (aka Steven Hine) Neo Geo Space Invaders (video on youtube)
-2022 Tigerskunk Inviyya / Hyperblaster (video on youtube)
+2020 Chips on Steroids Galaxy Guns (demo on youtube)
+2022 Tigerskunk Inviyya II / Hyperblaster (video on youtube)
2022 Frogbull Neo Mania (video on youtube)
2022 Geezer Games / Raster Wizards Alien Warhead (demos on youtube) (https://www.facebook.com/RasterWizards)
2023 Kimera Gamesoft Operation Killmeister (www.kimera.gs)
2023 Cote Gamers/LudoScience Yo-Yo Shuriken (NGCD) (cotegamers.com) (demo on youtube)
+2023 Neo Byte Force Cyborg Force (https://ozzyouzo.itch.io/cyborg-force) (trailer on youtube)
+2023 Bitmap Bureau Final Vendetta (there's talk of a NeoGeo release, but...?)
+2023 NeoHomeBrew Flippers Demo (on youtube)
+2023 NeoHomeBrew Pinball Game Playfield Demo (on youtube)
+2023 NeoHomeBrew Bouncing Ball Demo (on youtube)
+
*********************************************************************************************************/
@@ -911,28 +919,20 @@ ROM_START( 19yy ) // sound fixed by elrayzeur, 2022-10-20
ROM_END
// 335 : Cake Fighter
-// This uses a .neo file: 0x1000 bytes for header, then p rom (word_swap), then remainder is normal
-ROM_START( cakefght )
+ROM_START( cakefght ) // v1.0
ROM_REGION( 0x200000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "335.neo", 0x000000, 0x001000, CRC(d2afe82e) SHA1(03c52787a449ea3964238293e4d5d77f4211488e) ) // skip header
- ROM_CONTINUE(0x000000, 0x200000)
- ROM_IGNORE(0x1040000)
+ ROM_LOAD16_WORD_SWAP( "335.p1", 0x000000, 0x200000, CRC(717afa0f) SHA1(b0e0556b9c996e29c16fcb3416d763d454b8e8ab) )
- ROM_REGION(0x1241000, "asis", 0)
- ROM_LOAD("335.neo", 0x000000, 0x001000, CRC(d2afe82e) SHA1(03c52787a449ea3964238293e4d5d77f4211488e) )
- ROM_CONTINUE(0x000000, 0x1240000)
-
- NEO_SFIX_MT(0x20000)
- ROM_COPY("asis", 0x200000, 0x00000, 0x20000) // srctag, srcoffs, dstoffs, length
+ NEO_SFIX_128K( "335.s1", CRC(10037303) SHA1(7a31d747a3f3828f5b41c793a2bbbbefcd24d276) )
- NEO_BIOS_AUDIO_128K( "410.m1", CRC(a5821c9c) SHA1(81779f12bbb012bf910c484725779e03b07e44ec) ) // dummy, gets overwritten
- ROM_COPY("asis", 0x220000, 0x00000, 0x20000)
+ NEO_BIOS_AUDIO_128K( "224.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) )
ROM_REGION( 0x600000, "ymsnd:adpcma", 0 )
- ROM_COPY("asis", 0x240000, 0x00000, 0x600000)
+ ROM_LOAD( "335.v1", 0x000000, 0x400000, CRC(3eb19769) SHA1(5fe4e4de25e354406ebb30d5a964dd3b80f161f0) )
+ ROM_LOAD( "224.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) )
ROM_REGION( 0xa00000, "sprites", 0 )
- ROM_COPY("asis", 0x840000, 0x00000, 0xa00000)
+ ROM_LOAD( "335.c1", 0x000000, 0xa00000, CRC(8cd7c899) SHA1(c471466634e42c8df8dd343bbe9058e12c88e785) )
ROM_END
// You need to press Fire / Button A to get attract mode for a little while
@@ -951,10 +951,10 @@ ROM_START( cakefght1 ) // v1.1
ROM_LOAD( "224.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) )
ROM_REGION( 0xa00000, "sprites", 0 )
- ROM_LOAD16_BYTE( "335.c1", 0x000000, 0x400000, CRC(5c56060d) SHA1(c1c42c50cbaff5f3adf5b2e471ae1c9275fa8eb8) )
- ROM_LOAD16_BYTE( "335.c2", 0x000001, 0x400000, CRC(b51249d0) SHA1(f62b1bf432ce24a28630ce1c82bcbbeaffc15b5c) )
- ROM_LOAD16_BYTE( "335.c3", 0x800000, 0x100000, CRC(9f634b11) SHA1(7081a0864919db38d5f34818dcac73f1e5a5c2a4) )
- ROM_LOAD16_BYTE( "335.c4", 0x800001, 0x100000, CRC(1a120e61) SHA1(8a0233e1f61ab3195d9aaec98ccc7d39634795b0) )
+ ROM_LOAD16_BYTE( "335a.c1", 0x000000, 0x400000, CRC(5c56060d) SHA1(c1c42c50cbaff5f3adf5b2e471ae1c9275fa8eb8) )
+ ROM_LOAD16_BYTE( "335a.c2", 0x000001, 0x400000, CRC(b51249d0) SHA1(f62b1bf432ce24a28630ce1c82bcbbeaffc15b5c) )
+ ROM_LOAD16_BYTE( "335a.c3", 0x800000, 0x100000, CRC(9f634b11) SHA1(7081a0864919db38d5f34818dcac73f1e5a5c2a4) )
+ ROM_LOAD16_BYTE( "335a.c4", 0x800001, 0x100000, CRC(1a120e61) SHA1(8a0233e1f61ab3195d9aaec98ccc7d39634795b0) )
ROM_END
@@ -1422,7 +1422,7 @@ ROM_START( looptrsp )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "434.p1", 0x000000, 0x080000, CRC(894bb290) SHA1(f33ed9fe75ca7b5a6da00fe5bff76e26cba85e08) )
- NEO_SFIX_128K( "434.s1", CRC(70e70448) SHA1(40461af534afcba341d2f14b755d6de353fe7afd) )
+ NEO_SFIX_128K( "433.s1", CRC(70e70448) SHA1(40461af534afcba341d2f14b755d6de353fe7afd) )
NEO_BIOS_AUDIO_128K( "434.m1", CRC(249bba11) SHA1(e8248ff9bc391b1163746c256b137928a9d81fe0) )
@@ -1443,7 +1443,7 @@ ROM_START( neopang )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "436.p1", 0x000000, 0x080000, CRC(dc5922ee) SHA1(08804fa9894b7e84375300acbdec8ea6829575d0) )
- NEO_SFIX_64K( "435.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) )
+ NEO_SFIX_64K( "436.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) )
NEO_BIOS_AUDIO_128K( "202.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
@@ -1652,7 +1652,6 @@ ROM_END
// 492 : Project Neon Caravan Edition Prealpha 0.4.19 (c) 2019
// Bugs: Insert Coin (first time) causes reboot
// First time: Use video option to rotate 90CCW
-// This uses a .neo file: 0x1000 bytes for header, then p rom (word_swap), then remainder is normal
ROM_START( caravan )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "492.p1", 0x000000, 0x80000, CRC(f45cac3a) SHA1(21e283f5fa41d10f0c2bf1f9848bb8f10ea51ad5) )
@@ -1833,6 +1832,29 @@ ROM_START( abyssal1 )
ROM_END
+// 499: Neo 2048 by Nicole Branagan (Nicole Express)
+// Bugs: No in-game sound. Going by the original rom names there's supposed to be a logo, but it never shows.
+ROM_START( neo2048 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "499.p1", 0x000000, 0x000bde, CRC(a1039bdb) SHA1(4cbeaaa1e7834d007e8cdbcb5e7bb2ac1cbdbf93) )
+
+ NEO_SFIX_128K( "499.s1", CRC(d1e4c798) SHA1(b0ce4b6097558b837e9fe991b66ea0ee18f53ed5) )
+
+ NEO_BIOS_AUDIO_64K( "499.m1", CRC(6e363bd2) SHA1(9005b6b34caa5405c290775b79c7cd644ce2881f) )
+
+ ROM_REGION( 0x10000, "ymsnd:adpcma", 0 )
+ ROM_LOAD( "499.v1", 0x000000, 0x00e200, CRC(dba56bf0) SHA1(0bcee505e10300108b967c0475caa92ed36e6a2b) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ // Logo roms
+ ROM_LOAD16_BYTE( "499.c1", 0x000000, 0x100000, CRC(479543cf) SHA1(772690c872632320133a799aa41f6e68a8d07a4c) )
+ ROM_LOAD16_BYTE( "499.c2", 0x000001, 0x100000, CRC(1f6431d5) SHA1(7c90d6ec9df9e6223a066c338b7a7886071370cf) )
+ // Sprites - yes, these overwrite part of the above roms
+ ROM_LOAD16_BYTE( "499.c3", 0x100000, 0x000c00, CRC(ef3e848e) SHA1(7a85764ead7a1a48b52479d760e6013ba018e9b4) )
+ ROM_LOAD16_BYTE( "499.c4", 0x100001, 0x000c00, CRC(933b4e8f) SHA1(8cad7038bfd696ba8288d2d1292a3271087e2ec7) )
+ROM_END
+
+
// 600 : 240p Test Suite by Artemio Urbina
// No sound
ROM_START( 240ptest )
@@ -1929,28 +1951,20 @@ ROM_END
// 609 : Xmas/NewYear2017 demo by Blastar (c) 2016
-// This uses a .neo file: 0x1000 bytes for header, then p rom (word_swap), then remainder is normal
ROM_START( xmas2017 )
ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_WORD_SWAP( "609.neo", 0x000000, 0x001000, CRC(3f62f2db) SHA1(81e3694604d8645af33afaac51d53f6798c73ec4) ) // skip header
- ROM_CONTINUE(0x000000, 0x4000)
- ROM_IGNORE(0x069000)
-
- ROM_REGION(0x120000, "asis", 0)
- ROM_LOAD("609.neo", 0x000000, 0x001000, CRC(3f62f2db) SHA1(81e3694604d8645af33afaac51d53f6798c73ec4) )
- ROM_CONTINUE(0x000000, 0x06d000)
+ ROM_LOAD16_WORD_SWAP( "609.p1", 0x000000, 0x004000, CRC(fde7cb36) SHA1(d85ef72dc33e18a7bfebf61ce5bd3d315a1399e6) )
NEO_SFIX_MT(0x10000)
- ROM_COPY("asis", 0x4000, 0x00000, 0x10000) // srctag, srcoffs, dstoffs, length
+ ROM_LOAD( "609.s1", 0x000000, 0x008000, CRC(750b643c) SHA1(fb4cac813ba5ab9eb93b1b6391b73b6e3ed0e0a6) )
- NEO_BIOS_AUDIO_128K( "410.m1", CRC(a5821c9c) SHA1(81779f12bbb012bf910c484725779e03b07e44ec) ) // dummy, gets overwritten
- ROM_COPY("asis", 0xc000, 0x00000, 0x10000)
+ NEO_BIOS_AUDIO_64K( "609.m1", CRC(7f4c51e6) SHA1(9d3e4e2a57b7bd38c05398c569baa2b8f7ae5296) )
ROM_REGION( 0x40000, "ymsnd:adpcma", 0 )
- ROM_COPY("asis", 0xd000, 0x00000, 0x40000)
+ ROM_LOAD( "609.v1", 0x00000, 0x40000, CRC(aa5dc85c) SHA1(b07372624110833c292fd2e66332be23b535d8b7) )
- ROM_REGION( 0x80000, "sprites", 0 )
- ROM_COPY("asis", 0x4d000, 0x00000, 0x20000)
+ ROM_REGION( 0x20000, "sprites", 0 )
+ ROM_LOAD( "609.c1", 0x00000, 0x20000, CRC(18cde781) SHA1(2b28f3ee7a332532a20694436167cf19f33a2753) )
ROM_END
@@ -2462,7 +2476,7 @@ ROM_START( neoromjb )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "635.p1", 0x000000, 0x080000, CRC(fc301f3d) SHA1(e7e02963167a612e29e14cfaa53a8eb441961885) )
- NEO_SFIX_64K( "435.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) ) // same rom is in Neo Pang
+ NEO_SFIX_64K( "436.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) ) // same rom is in Neo Pang
NEO_BIOS_AUDIO_128K( "635.m1", CRC(60bf52f5) SHA1(86fcb7693ce0c3ee97f3fd2715d3bcb575511cd7) )
@@ -3316,6 +3330,7 @@ GAME( 2005, ltorb, neogeo, neogeo_noslot, neogeo, neogeo_state, init
GAME( 2009, knacki, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Furrtek", "KnackiBalls", MACHINE_SUPPORTS_SAVE )
GAME( 2021, ndo_a_td, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Blastar", "Neo Driftout Tech Demo", MACHINE_SUPPORTS_SAVE )
GAME( 2004, neo2500, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Blastar", "Neo 2500 Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2021, neo2048, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Nicole Branagan", "Neo 2048", MACHINE_SUPPORTS_SAVE )
GAME( 2012, neo3d, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Oxygene", "Neo 3D Demo", MACHINE_SUPPORTS_SAVE )
GAME( 2004, neocstlv, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "BarfHappy", "Neo Castlevania Demo", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
GAME( 2003, neodemo, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Charles Doty", "Demo - NeoGeo", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst
index 6e8c92074fc..ddd349a7045 100644
--- a/docs/release/src/hbmame/hbmame.lst
+++ b/docs/release/src/hbmame/hbmame.lst
@@ -1694,7 +1694,8 @@ dkrdemo
dkchrmx // Sock Master - Christmas Remix 2017
dkchrte
dkspkyrmx // Sock Master - Spooky Remix Halloween Tournament 2018
-dktrainer
+dktrain
+dktrain2
dkpace
nadkong //
dkcbarrel // Paul Goes
@@ -1874,6 +1875,7 @@ fourplay
videight /* 8in1 multigame */
wbeast /* Bootleg of War-of-Bug */
//multigameb // skeleton
+//scramblemk // skeleton
@source:gauntlet.cpp
gaunt2 //parent
@@ -4191,6 +4193,7 @@ absurd /* HB - scott - nonworking alpha ver 3 */
alienres // HB
alienresp // HB nw
bace /* HB - Widel Games */
+chuckie
crashh /* HB - PacMAME Hacks */
deathstar // HB
deathstar2 // HB
@@ -5763,6 +5766,7 @@ mspacmadp
mspacatttur
mspacii2
ms2600a
+pacjrz80
/* Pacman hardware games (hires hacks) */
mschampx
mspacmnx
@@ -5835,6 +5839,8 @@ spcloneo // v0.7.2.2
@source:neogeo.cpp
// These are the parents of our hacks
neogeo
+ngneo // .neo support
+ngmvs // multimvs support
2020bb // 030
3countb // 043
alpham2 // 007
@@ -5959,7 +5965,6 @@ samsho4 // 222
samsho5 // 270
samsh5sp // 272
savagere // 059
-//sbp // 338 not working
sdodgeb // 208
sengoku // 017
sengoku2 // 040
@@ -6051,6 +6056,7 @@ looptris
looptrsp
ltorb
ndo_a_td
+neo2048
neo2500 /* Blastar */
neo3d // Oxygene
neocstlv // BarfHappy
@@ -6097,6 +6103,7 @@ poknightfr
rci /* Robocop intro */
samantha
santabll
+sbpf
seafight
shaman16
//shaman17
diff --git a/docs/release/src/hbmame/includes/mhavoc_hb.h b/docs/release/src/hbmame/includes/mhavoc_hb.h
index 96bf7fea865..9ab0c49db28 100644
--- a/docs/release/src/hbmame/includes/mhavoc_hb.h
+++ b/docs/release/src/hbmame/includes/mhavoc_hb.h
@@ -44,6 +44,7 @@ public:
m_oki(*this, "oki"),
m_lamps(*this, "lamp%u", 0U),
m_coin(*this, "COIN"),
+ m_cabinet(*this, "CABINET"),
m_service(*this, "SERVICE")
{ }
@@ -52,6 +53,7 @@ public:
void mhavocpe_adpcm(machine_config &config); //HBMAME
DECLARE_CUSTOM_INPUT_MEMBER(coin_service_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(coin_cabinet_l);
DECLARE_READ_LINE_MEMBER(gamma_rcvd_r);
DECLARE_READ_LINE_MEMBER(gamma_xmtd_r);
DECLARE_READ_LINE_MEMBER(gamma_tirdy_r);
@@ -106,6 +108,7 @@ private:
optional_device<okim6295_device> m_oki;
output_finder<2> m_lamps;
optional_ioport m_coin;
+ optional_ioport m_cabinet;
optional_ioport m_service;
uint8_t m_alpha_data = 0U;
diff --git a/docs/release/src/hbmame/includes/neogeo.h b/docs/release/src/hbmame/includes/neogeo.h
index b4525cbc6cc..5dabb423f8a 100644
--- a/docs/release/src/hbmame/includes/neogeo.h
+++ b/docs/release/src/hbmame/includes/neogeo.h
@@ -17,6 +17,7 @@
#include "machine/ng_memcard.h"
#include "machine/gen_latch.h"
#include "video/neogeo_spr.h"
+#include "imagedev/snapquik.h"
#include "bus/neogeo/prot.h"
#include "bus/neogeo/banked_cart.h"
#include "bus/neogeo_ctrl/ctrl.h"
@@ -98,6 +99,8 @@ public:
void neogeo_mj(machine_config &config);
void neogeo_noctrl(machine_config &config);
void neogeo_noslot(machine_config &config);
+ void ngmvs(machine_config &config);
+ void ngneo(machine_config &config);
void no_watchdog(machine_config &config);
void gsc(machine_config &config);
@@ -211,6 +214,7 @@ public:
private:
+ std::error_condition mvs_open7z(std::string zip_name, std::string filename, uint8_t *region_name, u32 region_size, u32 *file_size);
void io_control_w(offs_t offset, u8 data);
u16 memcard_r(offs_t offset);
void memcard_w(offs_t offset, u16 data, u16 mem_mask = ~0);
@@ -232,6 +236,8 @@ private:
TIMER_CALLBACK_MEMBER(display_position_interrupt_callback);
TIMER_CALLBACK_MEMBER(display_position_vblank_callback);
TIMER_CALLBACK_MEMBER(vblank_interrupt_callback);
+ DECLARE_QUICKLOAD_LOAD_MEMBER(mvs_q_cb);
+ DECLARE_QUICKLOAD_LOAD_MEMBER(neo_q_cb);
u32 screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
diff --git a/docs/release/src/hbmame/machine/mhavoc_hb.cpp b/docs/release/src/hbmame/machine/mhavoc_hb.cpp
index 85aee4a9d85..8f488c1b977 100644
--- a/docs/release/src/hbmame/machine/mhavoc_hb.cpp
+++ b/docs/release/src/hbmame/machine/mhavoc_hb.cpp
@@ -206,7 +206,12 @@ void mhavoc_hbmame::mhavoc_rom_banksel_w(uint8_t data)
CUSTOM_INPUT_MEMBER(mhavoc_hbmame::coin_service_r)
{
- return (m_player_1 ? m_service : m_coin)->read() & 0x03;
+ return (m_player_1 ? m_service : m_coin)->read() & 0x01;
+}
+
+CUSTOM_INPUT_MEMBER(mhavoc_hbmame::coin_cabinet_l)
+{
+ return (m_player_1 ? (m_cabinet->read()) : (m_coin->read() >> 1));
}
READ_LINE_MEMBER(mhavoc_hbmame::gamma_rcvd_r)
diff --git a/docs/release/src/hbmame/video/neogeo_spr.cpp b/docs/release/src/hbmame/video/neogeo_spr.cpp
index 06da344019d..23898f53aad 100644
--- a/docs/release/src/hbmame/video/neogeo_spr.cpp
+++ b/docs/release/src/hbmame/video/neogeo_spr.cpp
@@ -170,6 +170,9 @@ void neosprite_device::neogeo_set_fixed_layer_source( uint8_t data )
void neosprite_device::draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline )
{
+ if (m_region_fixed_size == 0)
+ return;
+
uint8_t* gfx_base = m_fixed_layer_source ? m_region_fixed : m_region_fixedbios->base();
uint32_t addr_mask = ( m_fixed_layer_source ? m_region_fixed_size : m_region_fixedbios->bytes() ) - 1;
uint16_t *video_data = &m_videoram_drawsource[0x7000 | (scanline >> 3)];
@@ -292,6 +295,9 @@ inline bool neosprite_device::sprite_on_scanline(int scanline, int y, int rows)
void neosprite_device::draw_sprites( bitmap_rgb32 &bitmap, int scanline )
{
+ if (m_region_sprites_size == 0)
+ return;
+
uint16_t *sprite_list;
int max_sprite_index = 0, x = 0, y = 0, zoom_x = 0, zoom_y = 0, rows = 0;
diff --git a/docs/release/src/hbmame/video/neogeo_spr.h b/docs/release/src/hbmame/video/neogeo_spr.h
index 22ebae74f9e..fcc613acc7b 100644
--- a/docs/release/src/hbmame/video/neogeo_spr.h
+++ b/docs/release/src/hbmame/video/neogeo_spr.h
@@ -38,6 +38,7 @@ public:
void draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline );
void draw_sprites( bitmap_rgb32 &bitmap, int scanline );
void neogeo_set_fixed_layer_source( uint8_t data );
+ virtual void optimize_sprite_data();
private:
virtual void draw_fixed_layer_2pixels(uint32_t*&pixel_addr, int offset, uint8_t* gfx_base, const pen_t* char_pens);
@@ -47,7 +48,6 @@ private:
void parse_sprites( int scanline );
void create_sprite_line_timer( );
void start_sprite_line_timer( );
- virtual void optimize_sprite_data();
virtual void draw_pixel(int romaddr, uint32_t* dst, const pen_t *line_pens);
std::unique_ptr<uint16_t[]> m_videoram{};
diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp
index d12590bc5bb..7e3be75fc6a 100644
--- a/docs/release/src/version.cpp
+++ b/docs/release/src/version.cpp
@@ -8,7 +8,7 @@
***************************************************************************/
-#define BARE_BUILD_VERSION "0.245.10"
+#define BARE_BUILD_VERSION "0.245.11"
extern const char bare_build_version[];
extern const char build_version[];
diff --git a/src/hbmame/hbmame.lst b/src/hbmame/hbmame.lst
index ddd349a7045..ff0306af172 100644
--- a/src/hbmame/hbmame.lst
+++ b/src/hbmame/hbmame.lst
@@ -6265,7 +6265,6 @@ sonicwi3px
spinmasth
spinmastpx
ssidekicd
-stakwindev
strhoopcd
superspycd
tophuntrpx