summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/mame/drivers/comebaby.c
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/mame/drivers/comebaby.c')
-rw-r--r--trunk/src/mame/drivers/comebaby.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/trunk/src/mame/drivers/comebaby.c b/trunk/src/mame/drivers/comebaby.c
new file mode 100644
index 00000000000..2cdd75de9ca
--- /dev/null
+++ b/trunk/src/mame/drivers/comebaby.c
@@ -0,0 +1,118 @@
+/* Come On Baby
+ (c) 2000 ExPotato Co. Ltd (Excellent Potato)
+
+ There also appears to be a sequel which may be running on the same hardware
+ Come On Baby - Ballympic Heroes! (c) 2001
+
+ This is a Korean PC based board running Windows. The game runs fully from
+ the hard disk making these things rather fragile and prone to damage.
+
+ Very little is known about the actual PC at this time, and the driver is
+ just a skeleton placeholder for the CHD dump of the hard disk.
+
+ The donor PC looks like a standard Windows98 setup.
+ The only exceptions I see are that there's a game logo.sys/logo.bmp in the
+ root directory to hide the Windows98 startup screen, and a shortcut to
+ the game in the startup programs.
+ Also of interest, Windows98 was installed from a setup folder on the HD.
+ To me this hints that there may have been some expectation of the disk
+ being plugged into random hardware.
+
+ The game is pretty much standard PC game running on Windows98 PC.
+ It uses DirectSound and the Microsoft MCI interfaces and Glide for video.
+ The PC that the game was dumped from has Sound Blaster and Ensoniq drivers,
+ but it works fine with some other sound configurations.
+ The donor PC has a 3dfxvoodoo3 driver installation directory, but it works
+ fine with a Voodoo4 4500.
+
+ The game itself has some protection, it expects a file C:\\WINDOWS\win386p.swp of 84 bytes
+ to have the hard disk volume serial number in ascii number (not hex) format at offset 4.
+
+ The game appears to use parallel port (0x378,0x379)for I/O.
+ The direct port access means it won't run on XP
+ For the controls, it writes a device select to 0x378, and reads the device value from 0x379.
+ There is some other output, maybe lights?
+ --------------------------------------------
+ |SELECT|RETURN |
+ |--------------------------------------------|
+ | 0x8 | self test/protection, return 5 |
+ | 0x0 | P1 4 way joystick |
+ | | ----x--- right |
+ | | -----x-- left |
+ | | ------x- down |
+ | | -------x up |
+ | 0x1 | P1 buttons |
+ | | -----x-- C+D (is also start button) |
+ | | ------x- B |
+ | | -------x A |
+ | 0x2 | P2 joystick (as P1) |
+ | 0x3 | P2 buttons (as P1) |
+ | 0x4 | Coin/Service |
+ | | -----x-- Coin |
+ | | ------x- Coin |
+ | | -------x Test |
+ --------------------------------------------
+
+ Easy enough to fix a broken game if you have the controls to plug into it.
+*/
+
+#include "emu.h"
+#include "cpu/i386/i386.h"
+
+
+class comebaby_state : public driver_device
+{
+public:
+ comebaby_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag) { }
+
+};
+
+
+static VIDEO_START(comebaby)
+{
+}
+
+static SCREEN_UPDATE(comebaby)
+{
+ return 0;
+}
+
+static ADDRESS_MAP_START( comebaby_map, AS_PROGRAM, 32 )
+ AM_RANGE(0x00000000, 0x0001ffff) AM_ROM
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( comebaby )
+INPUT_PORTS_END
+
+
+static MACHINE_CONFIG_START( comebaby, comebaby_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", PENTIUM, 2000000000) /* Probably a Pentium .. ?? Mhz*/
+ MCFG_CPU_PROGRAM_MAP(comebaby_map)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
+ MCFG_SCREEN_UPDATE(comebaby)
+
+ MCFG_PALETTE_LENGTH(0x100)
+
+ MCFG_VIDEO_START(comebaby)
+MACHINE_CONFIG_END
+
+
+ROM_START(comebaby)
+ ROM_REGION32_LE(0x20000, "maincpu", 0) /* motherboard bios */
+ ROM_LOAD("comeonbaby.pcbios", 0x000000, 0x10000, NO_DUMP )
+
+ DISK_REGION( "disks" )
+ DISK_IMAGE( "comebaby", 0, SHA1(ea57919319c0b6a1d4abd7822cff028855bf082f) )
+ROM_END
+
+
+GAME( 2000, comebaby, 0, comebaby, comebaby, 0, ROT0, "ExPotato", "Come On Baby", GAME_NOT_WORKING|GAME_NO_SOUND )