summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/bionicc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bionicc.cpp')
-rw-r--r--src/mame/drivers/bionicc.cpp39
1 files changed, 31 insertions, 8 deletions
diff --git a/src/mame/drivers/bionicc.cpp b/src/mame/drivers/bionicc.cpp
index c36ebafe9ce..0f13fb4e4e3 100644
--- a/src/mame/drivers/bionicc.cpp
+++ b/src/mame/drivers/bionicc.cpp
@@ -11,14 +11,37 @@
Graphics ROM board: 86612-B-2
Program ROM board: 86612-C-2
- Main CPU: 68000CP10
- Sound CPU: Z80A
- MCU: Intel C8751H-88
+ Main CPU: 68000CP10 @ 24MHz / 2 = 12MHz
+ Sound CPU: Z80A @ 14.31818 / 4 = 3.579545MHz
+ MCU: Intel C8751H-88 @ 24MHz / 4 = 6MHz
Sound Chip: YM2151 & YM3012
OSC: 24.000 MHz (on the 86612-B-2 PCB)
Custom: CAPCOM DL-010D-103 (on the 86612-B-2 PCB)
-
+ Horizontal scan rate: 15.606kHz
+ Vertical scan rate: 60.024Hz
+
+ pixel clock: 6.000MHz, 166ns per pixel
+
+ htotal: 64.076us, 386 pixels
+ hsync: 5.312us, 32 pixels
+ back porch + sync: 15.106us, 91 pixels
+ active video: 42.662us, 257 pixels (it looks like the first pixel is repeated)
+ front porch: 6.308us, 38 pixels
+
+ vtotal: 16.660ms, 260 lines
+ vsync: 256.304us, 4 lines
+ back porch + sync: 1.282ms, 20 lines
+ active video: 14.353ms, 224 lines
+ front porch: 1.025ms, 16 lines
+
+ Clocks verified on 86612-A-2 and 86612-B-2 boards, serial no. 39646
+ ("Bionic Commando", US region) by scope measurement at clock pins.
+ Timings verified at SYNC pin and BLUE pin (jamma edge),
+ using an Agilent DSO9404A scope and two N2873A 500MHz probes
+
+ Note: Protection MCU is labelled "TS" without a number and without a coloured
+ stripe. Maybe its code is not region dependant.
Note: Euro rom labels (IE: "TSE") had a blue stripe, while those labeled
as USA (TSU) had an red stripe on the sticker. The intermixing
of TSE and TSU roms in the parent set is correct and verified.
@@ -349,6 +372,8 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bionicc_state, bionicc_scanline, "screen", 0, 1)
+ /* Protection MCU Intel C8751H-88 runs at 24MHz / 4 = 6MHz */
+
MCFG_CPU_ADD("audiocpu", Z80, XTAL_14_31818MHz / 4) /* EXO3 C,B=GND, A=5V ==> Divisor 2^2 */
MCFG_CPU_PROGRAM_MAP(sound_map)
/* FIXME: interrupt timing
@@ -360,10 +385,8 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
+ /* FIXME: should be 257 visible horizontal pixels, first visible pixel should be repeated, back porch/front porch should be separated */
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz / 4, 386, 0, 256, 260, 0, 224)
MCFG_SCREEN_UPDATE_DRIVER(bionicc_state, screen_update_bionicc)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_SCREEN_PALETTE("palette")