summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author ajrhacker <ajrhacker@users.noreply.github.com>2018-07-31 13:51:36 -0400
committer GitHub <noreply@github.com>2018-07-31 13:51:36 -0400
commit3a5518125cdc1b9903ae9dd543f34f56857fa7eb (patch)
treed47f28c68168de6db05afffcf8dd8e4698374d95
parent4c0c840f96030685216ad1ff072fba8dd4f3eeb6 (diff)
parent68a9117e51b8524a22c7fe56ef3390353340386d (diff)
Merge pull request #3808 from DavidHaywood/310718
new machines marked as WORKING
-rw-r--r--src/mame/drivers/cedar_magnet.cpp66
-rw-r--r--src/mame/mame.lst3
2 files changed, 59 insertions, 10 deletions
diff --git a/src/mame/drivers/cedar_magnet.cpp b/src/mame/drivers/cedar_magnet.cpp
index 7223111e9f4..f2b6f81a13f 100644
--- a/src/mame/drivers/cedar_magnet.cpp
+++ b/src/mame/drivers/cedar_magnet.cpp
@@ -4,7 +4,7 @@
/*
todo:
- - fix sound emulation
+ - fix sound emulation (speed needs verifying + sample playback)
- fix sprite communication / banking
* bit "output bit 0x02 %d (IC21)" at 0x42 might be important
* mag_exzi currently requires a gross hack to stop the sprite CPU crashing on startup
@@ -25,8 +25,9 @@
- layer enables on War Mission? (transitions from title screen etc.)
notes:
- - 2 player mode can be enabled in service mode for War Mission, it is disabled by default
- (settings are stored on the disk)
+ - high scores will be defaulted if the data in the table is corrupt, the games give no
+ option to do this otherwise. A backup copy of the score table is kept, so you also
+ have to enter and exit service mode.
*/
@@ -865,16 +866,54 @@ ROM_START( mag_xain )
ROM_LOAD( "xain.img", 0x00000, 0xf0000, CRC(5647849f) SHA1(edd2f3f6359424583bf526bf4601476dc849e617) )
ROM_END
+
+/*
+ Data after 0xd56b0 would not read consistently, however the game only appears to use the first 24 tracks (up to 0x48fff)
+ as it loads once on startup, not during gameplay, and all tracks before that gave consistent reads. There is data after this
+ point but it is likely leftovers from another game / whatever was on the disk before, so for our purposes this should be fine.
+
+ Some bullets do seem to spawn from locations where there are no enemies, but I think this is just annoying game design.
+*/
ROM_START( mag_war )
BIOS_ROM
- /* Data after 0xd56b0 would not read consistently, however the game only appears to use the first 24 tracks (up to 0x48fff)
- as it loads once on startup, not during gameplay, and all tracks before that gave consistent reads. There is data after this
- point but it is likely leftovers from another game / whatever was on the disk before, so for our purposes this should be fine.
- Some bullets do seem to spawn from locations where there are no enemies, but I think this is just annoying game design.
- */
ROM_REGION( 0x100000, "flop:disk", ROMREGION_ERASE00 )
- ROM_LOAD( "war mission wm 4_6_87.img", 0x00000, 0xf0000, CRC(e6b35710) SHA1(e24f9adde09e4eacbfb58e359a2df263748fc7de) )
+ ROM_LOAD( "war mission wm 4_6_87.img", 0x00000, 0xf0000, CRC(7c813520) SHA1(2ba5999709a52302aa367fb46199b331421a0d56) )
+ROM_END
+
+/*
+ Data read 100% consistently with multiple drives
+*/
+ROM_START( mag_wara )
+ BIOS_ROM
+
+ ROM_REGION( 0x100000, "flop:disk", ROMREGION_ERASE00 )
+ ROM_LOAD( "war mission wm 9_4_87.img", 0x00000, 0xf0000, CRC(6296ea6f) SHA1(c0aaf51362bfa3362ef39c3fb1e1c848b73fd780) )
+ROM_END
+
+/*
+ Data read 100% consistently with multiple drives
+*/
+ROM_START( mag_burn )
+ BIOS_ROM
+
+ ROM_REGION( 0x100000, "flop:disk", ROMREGION_ERASE00 ) //
+ ROM_LOAD( "theburningcavern 31_3_87.img", 0x00000, 0xf0000, CRC(c95911f8) SHA1(eda3bdbbcc3e00a7da83253209e832855c2968b1) )
+ROM_END
+
+/*
+ Data read 100% consistently with non-original drive (usually gives worse results)
+ later tracks showed differences with original drive on each read (around 0xeef80 onwards, doesn't seem to be game data)
+
+ weirdly there's was a single byte in an earlier track that read consistently, but in a different way for each drive
+ 0x2480e: 9d (non-original) vs 1d (original drive)
+ 1d seems to be correct as the same data is also elsewhere on the disc
+*/
+ROM_START( mag_day )
+ BIOS_ROM
+
+ ROM_REGION( 0x100000, "flop:disk", ROMREGION_ERASE00 )
+ ROM_LOAD( "adayinspace 31_3_87.img", 0x00000, 0xf0000, CRC(bc65302d) SHA1(6ace68a0b5f7a07a8f5c318c5359011074e7f2ec) )
ROM_END
/*
@@ -934,7 +973,14 @@ void cedar_magnet_state::kludge_protection()
GAME( 1987, cedmag, 0, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT0, "EFO SA / Cedar", "Magnet System", MACHINE_IS_BIOS_ROOT )
GAME( 1987, mag_time, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT90, "EFO SA / Cedar", "Time Scanner (TS 2.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Sega
+
GAME( 1987, mag_exzi, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT0, "EFO SA / Cedar", "Exzisus (EX 1.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Taito
+
GAME( 1987, mag_xain, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT0, "EFO SA / Cedar", "Xain'd Sleena (SC 3.0, Magnet System)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // original game was by Technos
-GAME( 1987, mag_war, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT90, "EFO SA / Cedar", "War Mission (WM 4/6/87)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1987, mag_war, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT90, "EFO SA / Cedar", "War Mission (WM 04/06/87)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // date in program
+GAME( 1987, mag_wara, mag_war,cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT90, "EFO SA / Cedar", "War Mission (WM 09/04/87)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // the '9' was handwritten over a printed letter on disk label, date not in program
+
+GAME( 1987, mag_burn, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT0, "EFO SA / Cedar", "The Burning Cavern (31/03/87)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // date on label
+
+GAME( 1987, mag_day, cedmag, cedar_magnet, cedar_magnet, cedar_magnet_state, empty_init, ROT90, "EFO SA / Cedar", "A Day In Space (31/03/87)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // date on label
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 4b0a8260777..408dfa7856e 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -9576,6 +9576,9 @@ mag_time
mag_exzi
mag_xain
mag_war
+mag_wara
+mag_burn
+mag_day
@source:centiped.cpp
bullsdrt // (c) 1985 Shinkai