mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
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:
parent
2e217896e8
commit
a9d8713a91
@ -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 */
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user