Adds 7MHz XTAL to xtal.h

Corrects clock speeds for the megasys1.c boards.

Yes... the games actually are _THAT_ slow!
This commit is contained in:
Brian Troha 2008-02-21 23:29:51 +00:00
parent 2e217896e8
commit a9d8713a91
2 changed files with 30 additions and 47 deletions

View File

@ -57,6 +57,7 @@ enum
XTAL_5MHz = 5000000, /* Mutant Night */
XTAL_6MHz = 6000000,
XTAL_6_144MHz = 6144000, /* Used on Alpha Denshi early 80's games sound board */
XTAL_7MHz = 7000000, /* Jaleco Mega System PCBs */
XTAL_7_15909MHz = 7159090, /* Blood Bros */
XTAL_7_3728MHz = 7372800,
XTAL_8MHz = 8000000, /* Extremely common, used on 100's of PCBs */
@ -64,7 +65,7 @@ enum
XTAL_10MHz = 10000000,
XTAL_10_595MHz = 10595000, /* Mad Alien */
XTAL_10_738635MHz = 10738635, /* TMS9918 family */
XTAL_11MHz = 11000000, /* Mario I8039 sound */
XTAL_11MHz = 11000000, /* Mario I8039 sound */
XTAL_11_0592MHz = 11059200, /* Lethal Justice */
XTAL_11_2MHz = 11200000, /* New York, New York */
XTAL_11_289MHz = 11289000, /* Vanguard */
@ -81,7 +82,7 @@ enum
XTAL_14_31818MHz = 14318180, /* Extremely common, used on 100's of PCBs */
XTAL_14_705882MHz = 14705882, /* Aleck64 */
XTAL_14_7456MHz = 14745600, /* Namco System 12 & System Super 22/23 for H8/3002 CPU */
XTAL_15MHz = 15000000, /* Sinclair QL */
XTAL_15MHz = 15000000, /* Sinclair QL */
XTAL_15_468MHz = 15468000, /* Bank Panic h/w, Sega G80 */
XTAL_16MHz = 16000000, /* Extremely common, used on 100's of PCBs */
XTAL_16_9344MHz = 16934400, /* Usually used to drive 90's Yamaha OPL/FM chips */
@ -132,8 +133,8 @@ enum
XTAL_66_6667MHz = 66666700, /* later Midway games */
XTAL_67_7376MHz = 67737600, /* PSX-based h/w, Sony ZN1-2-based */
XTAL_73_728MHz = 73728000, /* Ms. Pac-Man/Galaga 20th Anniversary */
XTAL_100MHz = 100000000, /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
XTAL_101_4912MHz = 101491200, /* PSX-based Namco System 10 */
XTAL_100MHz = 100000000, /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
XTAL_101_4912MHz = 101491200, /* PSX-based Namco System 10 */
/* Resonators (There are probably more. Almost always used for driving OKI sound chips) */
@ -141,7 +142,7 @@ enum
XTAL_400kHz = 400000, /* Used on Great Swordman h/w */
XTAL_455kHz = 455000, /* Used on Gladiator h/w */
XTAL_640kHz = 640000,
XTAL_1_056MHz = 1056000 /* used on Trio The Punch */
XTAL_1_056MHz = 1056000 /* used on Trio The Punch */
};

View File

@ -102,14 +102,6 @@ RAM RW 0f0000-0f3fff 0e0000-0effff? <
bootleg version of rodlandj has one instruction patched out to do exactly
the same thing that we are doing (ignoring the 6295 status).
- Iganinju doesn't work properly: I have to patch lev3 irq and it severely
slows down at times. Strangely, it gets *better* by lowering the main CPU
clock from 12 to 7 MHz.
This is likely an interrupt timing issue: changing the order in
interrupt_A() from 3 2 1 to 1 2 3 makes it work reasonably well for a very
short while.
( Fixed by Kale 21 May 2002 )
- VERY bad sprite lag in iganinju and plusalph and generally others.
Is this a sprites buffer issue ?
@ -118,6 +110,12 @@ RAM RW 0f0000-0f3fff 0e0000-0effff? <
***************************************************************************/
#define SYS_A_CPU_CLOCK (XTAL_12MHz / 2) /* clock for main 68000 */
#define SYS_B_CPU_CLOCK XTAL_8MHz /* clock for main 68000 */
#define SYS_C_CPU_CLOCK (XTAL_24MHz / 2) /* clock for main 68000 */
#define SOUND_CPU_CLOCK XTAL_7MHz /* clock for sound 68000 */
#define OKI4_SOUND_CLOCK XTAL_4MHz
#include "driver.h"
#include "deprecat.h"
#include "megasys1.h"
@ -197,18 +195,6 @@ static INTERRUPT_GEN( interrupt_A )
}
}
static INTERRUPT_GEN( interrupt_A_iganinju )
{
switch ( cpu_getiloops() )
{
case 0: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break;
case 1: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break;
// case 2: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break;
}
}
static ADDRESS_MAP_START( readmem_A, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
@ -648,11 +634,11 @@ static const struct YM2151interface ym2151_interface =
static MACHINE_DRIVER_START( system_A )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", M68000, 12000000)
MDRV_CPU_ADD_TAG("main", M68000, SYS_A_CPU_CLOCK) /* 6MHz verified */
MDRV_CPU_PROGRAM_MAP(readmem_A,writemem_A)
MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_A)
MDRV_CPU_ADD_TAG("sound", M68000, 7000000)
MDRV_CPU_ADD_TAG("sound", M68000, SOUND_CPU_CLOCK) /* 7MHz verified */
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(sound_readmem_A,sound_writemem_A)
@ -678,30 +664,22 @@ static MACHINE_DRIVER_START( system_A )
/* sound hardware */
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
MDRV_SOUND_ADD(YM2151, 7000000/2)
MDRV_SOUND_ADD(YM2151, SOUND_CPU_CLOCK/2) /* 3.5MHz verified */
MDRV_SOUND_CONFIG(ym2151_interface)
MDRV_SOUND_ROUTE(0, "left", 0.80)
MDRV_SOUND_ROUTE(1, "right", 0.80)
MDRV_SOUND_ADD_TAG("OKI1",OKIM6295, 4000000)
MDRV_SOUND_ADD_TAG("OKI1",OKIM6295, OKI4_SOUND_CLOCK) /* 4MHz verified */
MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
MDRV_SOUND_ADD_TAG("OKI2",OKIM6295, 4000000)
MDRV_SOUND_ADD_TAG("OKI2",OKIM6295, OKI4_SOUND_CLOCK) /* 4MHz verified */
MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( system_A_iganinju )
/* basic machine hardware */
MDRV_IMPORT_FROM(system_A)
MDRV_CPU_MODIFY("main")
MDRV_CPU_VBLANK_INT(interrupt_A_iganinju,INTERRUPT_NUM_A)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( system_A_hachoo )
MDRV_IMPORT_FROM(system_A)
MDRV_MACHINE_RESET(megasys1_hachoo)
@ -711,6 +689,8 @@ static MACHINE_DRIVER_START( system_B )
/* basic machine hardware */
MDRV_IMPORT_FROM(system_A)
MDRV_CPU_REPLACE("main", M68000, SYS_B_CPU_CLOCK) /* 8MHz */
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(readmem_B,writemem_B)
MDRV_CPU_VBLANK_INT(interrupt_B,INTERRUPT_NUM_B)
@ -723,14 +703,13 @@ static MACHINE_DRIVER_START( system_B_hayaosi1 )
/* basic machine hardware */
MDRV_IMPORT_FROM(system_B)
MDRV_CPU_REPLACE("main", M68000, 8000000)
MDRV_SOUND_REPLACE("OKI1",OKIM6295, 2000000)
MDRV_SOUND_REPLACE("OKI1",OKIM6295, 2000000) /* correct speed, but unknown OSC + divider combo */
MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
MDRV_SOUND_REPLACE("OKI2",OKIM6295, 2000000)
MDRV_SOUND_REPLACE("OKI2",OKIM6295, 2000000) /* correct speed, but unknown OSC + divider combo */
MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
@ -741,6 +720,7 @@ static MACHINE_DRIVER_START( system_C )
/* basic machine hardware */
MDRV_IMPORT_FROM(system_A)
MDRV_CPU_REPLACE("main", M68000, SYS_C_CPU_CLOCK) /* 12MHz */
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(readmem_C,writemem_C)
MDRV_CPU_VBLANK_INT(interrupt_C,INTERRUPT_NUM_C)
@ -764,7 +744,7 @@ KLOV entry for peekaboo: Jaleco board no. PB-92127A. Main CPU: Motorola 68000P10
static MACHINE_DRIVER_START( system_D )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 10000000) /* ? */
MDRV_CPU_ADD(M68000, 8000000) /* 8MHz?? */
MDRV_CPU_PROGRAM_MAP(readmem_D,writemem_D)
MDRV_CPU_VBLANK_INT(interrupt_D,INTERRUPT_NUM_D)
@ -825,12 +805,12 @@ static const struct YM2203interface ym2203_interface =
static MACHINE_DRIVER_START( system_Z )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 6000000) /* ??? */
MDRV_CPU_ADD(M68000, SYS_A_CPU_CLOCK) /* 6MHz (12MHz / 2) */
MDRV_CPU_PROGRAM_MAP(readmem_A,writemem_A)
MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_A)
MDRV_CPU_ADD(Z80, 3000000)
/* audio CPU */ /* ??? */
MDRV_CPU_ADD(Z80, 3000000) /* OSC 12MHz divided by 4 ??? */
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(sound_readmem_z80,sound_writemem_z80)
MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
@ -3960,8 +3940,10 @@ GAME( 1988, p47j, p47, system_A, p47, 0, ROT0, "
GAME( 1988, kickoff, 0, system_A, kickoff, 0, ROT0, "Jaleco", "Kick Off (Japan)", 0 )
GAME( 1988, tshingen, 0, system_A, tshingen, phantasm, ROT0, "Jaleco", "Takeda Shingen (Japan, Japanese)", 0 )
GAME( 1988, tshingna, tshingen, system_A, tshingen, phantasm, ROT0, "Jaleco", "Shingen Samurai-Fighter (Japan, English)", 0 )
GAME( 1988, kazan, 0, system_A_iganinju, kazan, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", 0 )
GAME( 1988, iganinju, kazan, system_A_iganinju, kazan, iganinju, ROT0, "Jaleco", "Iga Ninjyutsuden (Japan)", 0 )
GAME( 1988, kazan, 0, system_A, kazan, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", 0 )
GAME( 1988, iganinju, kazan, system_A, kazan, iganinju, ROT0, "Jaleco", "Iga Ninjyutsuden (Japan)", 0 )
//GAME( 1988, kazan, 0, system_A_iganinju, kazan, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", 0 )
//GAME( 1988, iganinju, kazan, system_A_iganinju, kazan, iganinju, ROT0, "Jaleco", "Iga Ninjyutsuden (Japan)", 0 )
GAME( 1989, astyanax, 0, system_A, astyanax, astyanax, ROT0, "Jaleco", "The Astyanax", 0 )
GAME( 1989, lordofk, astyanax, system_A, astyanax, astyanax, ROT0, "Jaleco", "The Lord of King (Japan)", 0 )
GAME( 1989, hachoo, 0, system_A_hachoo, hachoo, hachoo, ROT0, "Jaleco", "Hachoo!", 0 )