mirror of
https://github.com/holub/mame
synced 2025-07-01 08:18:59 +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_5MHz = 5000000, /* Mutant Night */
|
||||||
XTAL_6MHz = 6000000,
|
XTAL_6MHz = 6000000,
|
||||||
XTAL_6_144MHz = 6144000, /* Used on Alpha Denshi early 80's games sound board */
|
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_15909MHz = 7159090, /* Blood Bros */
|
||||||
XTAL_7_3728MHz = 7372800,
|
XTAL_7_3728MHz = 7372800,
|
||||||
XTAL_8MHz = 8000000, /* Extremely common, used on 100's of PCBs */
|
XTAL_8MHz = 8000000, /* Extremely common, used on 100's of PCBs */
|
||||||
@ -64,7 +65,7 @@ enum
|
|||||||
XTAL_10MHz = 10000000,
|
XTAL_10MHz = 10000000,
|
||||||
XTAL_10_595MHz = 10595000, /* Mad Alien */
|
XTAL_10_595MHz = 10595000, /* Mad Alien */
|
||||||
XTAL_10_738635MHz = 10738635, /* TMS9918 family */
|
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_0592MHz = 11059200, /* Lethal Justice */
|
||||||
XTAL_11_2MHz = 11200000, /* New York, New York */
|
XTAL_11_2MHz = 11200000, /* New York, New York */
|
||||||
XTAL_11_289MHz = 11289000, /* Vanguard */
|
XTAL_11_289MHz = 11289000, /* Vanguard */
|
||||||
@ -81,7 +82,7 @@ enum
|
|||||||
XTAL_14_31818MHz = 14318180, /* Extremely common, used on 100's of PCBs */
|
XTAL_14_31818MHz = 14318180, /* Extremely common, used on 100's of PCBs */
|
||||||
XTAL_14_705882MHz = 14705882, /* Aleck64 */
|
XTAL_14_705882MHz = 14705882, /* Aleck64 */
|
||||||
XTAL_14_7456MHz = 14745600, /* Namco System 12 & System Super 22/23 for H8/3002 CPU */
|
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_15_468MHz = 15468000, /* Bank Panic h/w, Sega G80 */
|
||||||
XTAL_16MHz = 16000000, /* Extremely common, used on 100's of PCBs */
|
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 */
|
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_66_6667MHz = 66666700, /* later Midway games */
|
||||||
XTAL_67_7376MHz = 67737600, /* PSX-based h/w, Sony ZN1-2-based */
|
XTAL_67_7376MHz = 67737600, /* PSX-based h/w, Sony ZN1-2-based */
|
||||||
XTAL_73_728MHz = 73728000, /* Ms. Pac-Man/Galaga 20th Anniversary */
|
XTAL_73_728MHz = 73728000, /* Ms. Pac-Man/Galaga 20th Anniversary */
|
||||||
XTAL_100MHz = 100000000, /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
|
XTAL_100MHz = 100000000, /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
|
||||||
XTAL_101_4912MHz = 101491200, /* PSX-based Namco System 10 */
|
XTAL_101_4912MHz = 101491200, /* PSX-based Namco System 10 */
|
||||||
|
|
||||||
/* Resonators (There are probably more. Almost always used for driving OKI sound chips) */
|
/* 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_400kHz = 400000, /* Used on Great Swordman h/w */
|
||||||
XTAL_455kHz = 455000, /* Used on Gladiator h/w */
|
XTAL_455kHz = 455000, /* Used on Gladiator h/w */
|
||||||
XTAL_640kHz = 640000,
|
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
|
bootleg version of rodlandj has one instruction patched out to do exactly
|
||||||
the same thing that we are doing (ignoring the 6295 status).
|
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.
|
- VERY bad sprite lag in iganinju and plusalph and generally others.
|
||||||
Is this a sprites buffer issue ?
|
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 "driver.h"
|
||||||
#include "deprecat.h"
|
#include "deprecat.h"
|
||||||
#include "megasys1.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 )
|
static ADDRESS_MAP_START( readmem_A, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
|
ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
|
||||||
@ -648,11 +634,11 @@ static const struct YM2151interface ym2151_interface =
|
|||||||
static MACHINE_DRIVER_START( system_A )
|
static MACHINE_DRIVER_START( system_A )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* 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_PROGRAM_MAP(readmem_A,writemem_A)
|
||||||
MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_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 */
|
/* audio CPU */
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem_A,sound_writemem_A)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem_A,sound_writemem_A)
|
||||||
|
|
||||||
@ -678,30 +664,22 @@ static MACHINE_DRIVER_START( system_A )
|
|||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
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_CONFIG(ym2151_interface)
|
||||||
MDRV_SOUND_ROUTE(0, "left", 0.80)
|
MDRV_SOUND_ROUTE(0, "left", 0.80)
|
||||||
MDRV_SOUND_ROUTE(1, "right", 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_CONFIG(okim6295_interface_region_1_pin7high)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 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_CONFIG(okim6295_interface_region_2_pin7high)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
|
||||||
MACHINE_DRIVER_END
|
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 )
|
static MACHINE_DRIVER_START( system_A_hachoo )
|
||||||
MDRV_IMPORT_FROM(system_A)
|
MDRV_IMPORT_FROM(system_A)
|
||||||
MDRV_MACHINE_RESET(megasys1_hachoo)
|
MDRV_MACHINE_RESET(megasys1_hachoo)
|
||||||
@ -711,6 +689,8 @@ static MACHINE_DRIVER_START( system_B )
|
|||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_IMPORT_FROM(system_A)
|
MDRV_IMPORT_FROM(system_A)
|
||||||
|
|
||||||
|
MDRV_CPU_REPLACE("main", M68000, SYS_B_CPU_CLOCK) /* 8MHz */
|
||||||
MDRV_CPU_MODIFY("main")
|
MDRV_CPU_MODIFY("main")
|
||||||
MDRV_CPU_PROGRAM_MAP(readmem_B,writemem_B)
|
MDRV_CPU_PROGRAM_MAP(readmem_B,writemem_B)
|
||||||
MDRV_CPU_VBLANK_INT(interrupt_B,INTERRUPT_NUM_B)
|
MDRV_CPU_VBLANK_INT(interrupt_B,INTERRUPT_NUM_B)
|
||||||
@ -723,14 +703,13 @@ static MACHINE_DRIVER_START( system_B_hayaosi1 )
|
|||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_IMPORT_FROM(system_B)
|
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_CONFIG(okim6295_interface_region_1_pin7high)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 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_CONFIG(okim6295_interface_region_2_pin7high)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30)
|
||||||
@ -741,6 +720,7 @@ static MACHINE_DRIVER_START( system_C )
|
|||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_IMPORT_FROM(system_A)
|
MDRV_IMPORT_FROM(system_A)
|
||||||
|
MDRV_CPU_REPLACE("main", M68000, SYS_C_CPU_CLOCK) /* 12MHz */
|
||||||
MDRV_CPU_MODIFY("main")
|
MDRV_CPU_MODIFY("main")
|
||||||
MDRV_CPU_PROGRAM_MAP(readmem_C,writemem_C)
|
MDRV_CPU_PROGRAM_MAP(readmem_C,writemem_C)
|
||||||
MDRV_CPU_VBLANK_INT(interrupt_C,INTERRUPT_NUM_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 )
|
static MACHINE_DRIVER_START( system_D )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD(M68000, 10000000) /* ? */
|
MDRV_CPU_ADD(M68000, 8000000) /* 8MHz?? */
|
||||||
MDRV_CPU_PROGRAM_MAP(readmem_D,writemem_D)
|
MDRV_CPU_PROGRAM_MAP(readmem_D,writemem_D)
|
||||||
MDRV_CPU_VBLANK_INT(interrupt_D,INTERRUPT_NUM_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 )
|
static MACHINE_DRIVER_START( system_Z )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* 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_PROGRAM_MAP(readmem_A,writemem_A)
|
||||||
MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_A)
|
MDRV_CPU_VBLANK_INT(interrupt_A,INTERRUPT_NUM_A)
|
||||||
|
|
||||||
MDRV_CPU_ADD(Z80, 3000000)
|
MDRV_CPU_ADD(Z80, 3000000) /* OSC 12MHz divided by 4 ??? */
|
||||||
/* audio CPU */ /* ??? */
|
/* audio CPU */
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem_z80,sound_writemem_z80)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem_z80,sound_writemem_z80)
|
||||||
MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
|
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, 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, 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, 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, kazan, 0, system_A, 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, 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, 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, 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 )
|
GAME( 1989, hachoo, 0, system_A_hachoo, hachoo, hachoo, ROT0, "Jaleco", "Hachoo!", 0 )
|
||||||
|
Loading…
Reference in New Issue
Block a user