diff options
author | 2023-04-07 16:37:49 +1000 | |
---|---|---|
committer | 2023-04-07 16:37:49 +1000 | |
commit | 47d726ce154c94daa94bf2a06be5a28bb91767e4 (patch) | |
tree | ea1f8e4cba863cc99f980df98a2f3c6ecbed3ed1 | |
parent | 9ea08b2ae5af25bab29a11447c8ff0d80e86fb11 (diff) |
Files for 11.tag24511
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(®ion_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 |