|
| 1 | +// license:GPL_2.0 |
| 2 | +// copyright-holders:Robbbert |
| 3 | +#include "../mame/snk/neogeocd.cpp" |
| 4 | + |
| 5 | +namespace { |
| 6 | + |
| 7 | +class ngcd_hb : public ngcd_state |
| 8 | +{ |
| 9 | +public: |
| 10 | + ngcd_hb(const machine_config &mconfig, device_type type, const char *tag) |
| 11 | + : ngcd_state(mconfig, type, tag) |
| 12 | + , m_cdrom(*this, "cdrom") |
| 13 | + { } |
| 14 | + |
| 15 | + void neocd_hb(machine_config &config); |
| 16 | + |
| 17 | +private: |
| 18 | + required_device<cdrom_image_device> m_cdrom; |
| 19 | +}; |
| 20 | + |
| 21 | + |
| 22 | +void ngcd_hb::neocd_hb(machine_config &config) |
| 23 | +{ |
| 24 | + neogeo_base(config); |
| 25 | + neogeo_stereo(config); |
| 26 | + |
| 27 | + m_maincpu->set_addrmap(AS_PROGRAM, &ngcd_hb::neocd_main_map); |
| 28 | + m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &ngcd_hb::neocd_vector_map); |
| 29 | + |
| 30 | + m_audiocpu->set_addrmap(AS_PROGRAM, &ngcd_hb::neocd_audio_map); |
| 31 | + m_audiocpu->set_addrmap(AS_IO, &ngcd_hb::neocd_audio_io_map); |
| 32 | + |
| 33 | + m_screen->set_screen_update(FUNC(ngcd_hb::screen_update)); |
| 34 | + |
| 35 | + // temporary until things are cleaned up |
| 36 | + LC89510_TEMP(config, m_tempcdc); // cd controller |
| 37 | + m_tempcdc->set_cdrom_tag("cdrom"); |
| 38 | + m_tempcdc->set_is_neoCD(true); |
| 39 | + m_tempcdc->set_type1_interrupt_callback(FUNC(ngcd_hb::interrupt_callback_type1)); |
| 40 | + m_tempcdc->set_type2_interrupt_callback(FUNC(ngcd_hb::interrupt_callback_type2)); |
| 41 | + m_tempcdc->set_type3_interrupt_callback(FUNC(ngcd_hb::interrupt_callback_type3)); |
| 42 | + |
| 43 | + NVRAM(config, "saveram", nvram_device::DEFAULT_ALL_0); |
| 44 | + |
| 45 | + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_controls, "joy", false); |
| 46 | + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_controls, "joy", false); |
| 47 | + |
| 48 | + CDROM(config, m_cdrom).set_interface("cdrom"); |
| 49 | + m_cdrom->add_region("cdrom"); |
| 50 | + |
| 51 | + m_ym->set_addrmap(0, &ngcd_hb::neocd_ym_map); |
| 52 | +} |
| 53 | + |
| 54 | + |
| 55 | +#define NEOCDZ_BIOS \ |
| 56 | + ROM_REGION16_BE( 0x80000, "mainbios", 0 ) \ |
| 57 | + ROM_SYSTEM_BIOS( 0, "official", "Official BIOS" ) \ |
| 58 | + ROMX_LOAD("neocd.bin", 0x00000, 0x80000, CRC(df9de490) SHA1(7bb26d1e5d1e930515219cb18bcde5b7b23e2eda), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(0)) \ |
| 59 | + ROM_SYSTEM_BIOS( 1, "unibios32", "Universe BIOS (Hack, Ver. 3.2)" ) \ |
| 60 | + ROMX_LOAD("uni-bioscd32.rom", 0x00000, 0x80000, CRC(0ffb3127) SHA1(5158b728e62b391fb69493743dcf7abbc62abc82), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(1)) \ |
| 61 | + ROM_SYSTEM_BIOS( 2, "unibios33", "Universe BIOS (Hack, Ver. 3.3)" ) \ |
| 62 | + ROMX_LOAD("uni-bioscd33.rom", 0x00000, 0x80000, CRC(ff3abc59) SHA1(5142f205912869b673a71480c5828b1eaed782a8), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(2)) \ |
| 63 | + ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) \ |
| 64 | + ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) |
| 65 | + |
| 66 | +ROM_START( cd_blueandr ) |
| 67 | + NEOCDZ_BIOS |
| 68 | + DISK_REGION( "cdrom" ) |
| 69 | + DISK_IMAGE_READONLY( "blueandr", 0, SHA1(1e3ea5255c8df92dfdebe060b9a72d8d3fd140dd) ) |
| 70 | +ROM_END |
| 71 | + |
| 72 | +ROM_START( cd_galx ) |
| 73 | + NEOCDZ_BIOS |
| 74 | + DISK_REGION( "cdrom" ) |
| 75 | + DISK_IMAGE_READONLY( "galaxian", 0, SHA1(00edb916464653c14dba6920d2b96867dbb486d1) ) |
| 76 | +ROM_END |
| 77 | + |
| 78 | +ROM_START( cd_galx2 ) |
| 79 | + NEOCDZ_BIOS |
| 80 | + DISK_REGION( "cdrom" ) |
| 81 | + DISK_IMAGE_READONLY( "galaxian2", 0, SHA1(ecaf39c082393ab3274661c7b2386067cf297c01) ) |
| 82 | +ROM_END |
| 83 | + |
| 84 | +ROM_START( cd_midnight ) |
| 85 | + NEOCDZ_BIOS |
| 86 | + DISK_REGION( "cdrom" ) |
| 87 | + DISK_IMAGE_READONLY( "midnight", 0, SHA1(209a3717709d82a5e4fdab30457e0e1894bc24e6) ) |
| 88 | +ROM_END |
| 89 | + |
| 90 | +ROM_START( cd_pong ) |
| 91 | + NEOCDZ_BIOS |
| 92 | + DISK_REGION( "cdrom" ) |
| 93 | + DISK_IMAGE_READONLY( "pong", 0, SHA1(5f2a993bce41f18e6562e0c113cc08fd7bc8060f) ) |
| 94 | +ROM_END |
| 95 | + |
| 96 | +ROM_START( cd_rickdx ) |
| 97 | + NEOCDZ_BIOS |
| 98 | + DISK_REGION( "cdrom" ) |
| 99 | + DISK_IMAGE_READONLY( "rickdx", 0, SHA1(e55a576b7bfabe1b71aff8f0febd8a4963d3104f) ) |
| 100 | +ROM_END |
| 101 | + |
| 102 | +ROM_START( cd_ssrpg ) |
| 103 | + NEOCDZ_BIOS |
| 104 | + DISK_REGION( "cdrom" ) |
| 105 | + DISK_IMAGE_READONLY( "ssrpg", 0, SHA1(2bc6a30d305c52e9189efe9840d34370ed260300) ) |
| 106 | +ROM_END |
| 107 | + |
| 108 | +} // anonymous namespace |
| 109 | + |
| 110 | +GAME( 2026, cd_blueandr, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "Kaiju Wasp", "Blue and Red Fight the Robots v1.7 (CD)", MACHINE_SUPPORTS_SAVE ) |
| 111 | +GAME( 2023, cd_galx, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "tcdev", "Galaxians (CD)", MACHINE_SUPPORTS_SAVE ) |
| 112 | +GAME( 2023, cd_galx2, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "tcdev", "Galaxians 2 (CD)", MACHINE_SUPPORTS_SAVE ) |
| 113 | +GAME( 2026, cd_midnight, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "Z-team", "Midnight Wanderers (CD)", MACHINE_SUPPORTS_SAVE ) |
| 114 | +GAME( 2023, cd_pong, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "unk", "Pong (CD)", MACHINE_SUPPORTS_SAVE ) |
| 115 | +GAME( 2026, cd_rickdx, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "Z-team", "Rick Dangerous DX (CD)", MACHINE_SUPPORTS_SAVE ) |
| 116 | +GAME( 2016, cd_ssrpg, neocdz, neocd_hb, neocd, ngcd_hb, init_neocdz, ROT0, "Apocalypse", "Samurai Spirits RPG (English) (CD)", MACHINE_SUPPORTS_SAVE ) |
| 117 | + |
| 118 | + |
0 commit comments