Cleanups and version bump.

This commit is contained in:
Aaron Giles 2009-08-21 01:52:51 +00:00
parent 2e64cfa8f3
commit ac3d58fad5
26 changed files with 292 additions and 291 deletions

View File

@ -278,8 +278,8 @@ const UINT8 lut_cycles_8085[256]={
/* special cases (partially taken care of elsewhere): /* special cases (partially taken care of elsewhere):
base c taken? not taken? base c taken? not taken?
M_RET 8080 5 +6(11) -0 (conditional) M_RET 8080 5 +6(11) -0 (conditional)
M_RET 8085 6 +6(12) -0 (conditional) M_RET 8085 6 +6(12) -0 (conditional)
M_JMP 8080 10 +0 -0 M_JMP 8080 10 +0 -0
M_JMP 8085 10 +0 -3(7) M_JMP 8085 10 +0 -3(7)
M_CALL 8080 11 +6(17) -0 M_CALL 8080 11 +6(17) -0
@ -530,7 +530,7 @@ static void check_for_interrupts(i8085_state *cpustate)
static void execute_one(i8085_state *cpustate, int opcode) static void execute_one(i8085_state *cpustate, int opcode)
{ {
cpustate->icount -= lut_cycles[opcode]; cpustate->icount -= lut_cycles[opcode];
switch (opcode) switch (opcode)
{ {
case 0x00: break; /* NOP */ case 0x00: break; /* NOP */
@ -600,7 +600,7 @@ static void execute_one(i8085_state *cpustate, int opcode)
case 0x22: cpustate->WZ.w.l = ARG16(cpustate); /* SHLD nnnn */ case 0x22: cpustate->WZ.w.l = ARG16(cpustate); /* SHLD nnnn */
WM(cpustate, cpustate->WZ.d, cpustate->HL.b.l); cpustate->WZ.w.l++; WM(cpustate, cpustate->WZ.d, cpustate->HL.b.l); cpustate->WZ.w.l++;
WM(cpustate, cpustate->WZ.d, cpustate->HL.b.h); WM(cpustate, cpustate->WZ.d, cpustate->HL.b.h);
break; break;
case 0x23: cpustate->HL.w.l++; /* INX H */ case 0x23: cpustate->HL.w.l++; /* INX H */
if (IS_8085(cpustate)) { if (cpustate->HL.w.l == 0x0000) cpustate->AF.b.l |= X5F; else cpustate->AF.b.l &= ~X5F; } if (IS_8085(cpustate)) { if (cpustate->HL.w.l == 0x0000) cpustate->AF.b.l |= X5F; else cpustate->AF.b.l &= ~X5F; }
break; break;
@ -990,7 +990,7 @@ static void init_tables (int type)
{ {
/* cycles */ /* cycles */
lut_cycles[i] = type?lut_cycles_8085[i]:lut_cycles_8080[i]; lut_cycles[i] = type?lut_cycles_8085[i]:lut_cycles_8080[i];
/* flags */ /* flags */
zs = 0; zs = 0;
if (i==0) zs |= ZF; if (i==0) zs |= ZF;

View File

@ -22,7 +22,7 @@ tms1200 | 1024 * 8 | 64 * 4 | 13 | 8 | 4 | tms1215
tms1270 | 1024 * 8 | 64 * 4 | 13 | 10 | 4 | tms1278 tms1270 | 1024 * 8 | 64 * 4 | 13 | 10 | 4 | tms1278
tms1300 | 2048 * 8 | 128 * 4 | 16 | 8 | 4 | tms1309 tms1300 | 2048 * 8 | 128 * 4 | 16 | 8 | 4 | tms1309
tms1370* | 2048 * 8 | 128 * 4 | | | | za0543 tms1370* | 2048 * 8 | 128 * 4 | | | | za0543
tms1400* | 4096 * 8 | 128 * 4 | | | | tms1400* | 4096 * 8 | 128 * 4 | | | |
tms1470* | 4096 * 8 | 128 * 4 | | | | tms1470 tms1470* | 4096 * 8 | 128 * 4 | | | | tms1470
tms1500* | 2048 * 13 | 64 * 20 | | | | tmc1501 tms1500* | 2048 * 13 | 64 * 20 | | | | tmc1501
tms1600* | 4096 * 8 | 128 * 4 | | | | tms1600* | 4096 * 8 | 128 * 4 | | | |

View File

@ -844,7 +844,7 @@ static DISCRETE_STEP( dst_rcdisc5)
{ {
if(diff > 0) if(diff > 0)
context->v_cap = u; context->v_cap = u;
node->output[0] = 0; node->output[0] = 0;
} }
} }

View File

@ -694,7 +694,7 @@ static DISCRETE_STEP(dst_bits_decode)
struct dst_bits_decode_context *context = (struct dst_bits_decode_context *)node->context; struct dst_bits_decode_context *context = (struct dst_bits_decode_context *)node->context;
int v = DST_BITS_DECODE__IN; int v = DST_BITS_DECODE__IN;
int i; int i;
if (context->last_val != v) if (context->last_val != v)
{ {
context->last_val = v; context->last_val = v;
@ -710,7 +710,7 @@ static DISCRETE_RESET(dst_bits_decode)
context->from = DST_BITS_DECODE__FROM; context->from = DST_BITS_DECODE__FROM;
context->count = DST_BITS_DECODE__TO - context->from + 1; context->count = DST_BITS_DECODE__TO - context->from + 1;
context->v_out = DST_BITS_DECODE__VOUT; context->v_out = DST_BITS_DECODE__VOUT;
DISCRETE_STEP_CALL(dst_bits_decode); DISCRETE_STEP_CALL(dst_bits_decode);
} }
/************************************************************************ /************************************************************************

View File

@ -436,24 +436,24 @@ static DISCRETE_STEP(dss_lfsr)
break; break;
} }
if (inc > 0) if (inc > 0)
{ {
noise_feed = (DSS_LFSR_NOISE__FEED ? 0x01 : 0x00); noise_feed = (DSS_LFSR_NOISE__FEED ? 0x01 : 0x00);
for (clock = 0; clock < inc; clock++) for (clock = 0; clock < inc; clock++)
{ {
/* Fetch the last feedback result */ /* Fetch the last feedback result */
fbresult = (context->lfsr_reg >> lfsr_desc->bitlength) & 0x01; fbresult = (context->lfsr_reg >> lfsr_desc->bitlength) & 0x01;
/* Stage 2 feedback combine fbresultNew with infeed bit */ /* Stage 2 feedback combine fbresultNew with infeed bit */
fbresult = dss_lfsr_function(disc_info, lfsr_desc->feedback_function1, fbresult, noise_feed, 0x01); fbresult = dss_lfsr_function(disc_info, lfsr_desc->feedback_function1, fbresult, noise_feed, 0x01);
/* Stage 3 first we setup where the bit is going to be shifted into */ /* Stage 3 first we setup where the bit is going to be shifted into */
fbresult = fbresult * lfsr_desc->feedback_function2_mask; fbresult = fbresult * lfsr_desc->feedback_function2_mask;
/* Then we left shift the register, */ /* Then we left shift the register, */
context->lfsr_reg = context->lfsr_reg << 1; context->lfsr_reg = context->lfsr_reg << 1;
/* Now move the fbresult into the shift register and mask it to the bitlength */ /* Now move the fbresult into the shift register and mask it to the bitlength */
context->lfsr_reg = dss_lfsr_function(disc_info, lfsr_desc->feedback_function2, fbresult, context->lfsr_reg, (1 << lfsr_desc->bitlength) - 1 ); context->lfsr_reg = dss_lfsr_function(disc_info, lfsr_desc->feedback_function2, fbresult, context->lfsr_reg, (1 << lfsr_desc->bitlength) - 1 );
/* Now get and store the new feedback result */ /* Now get and store the new feedback result */
/* Fetch the feedback bits */ /* Fetch the feedback bits */
fb0 = (context->lfsr_reg >> lfsr_desc->feedback_bitsel0) & 0x01; fb0 = (context->lfsr_reg >> lfsr_desc->feedback_bitsel0) & 0x01;
@ -461,7 +461,7 @@ static DISCRETE_STEP(dss_lfsr)
/* Now do the combo on them */ /* Now do the combo on them */
fbresult = dss_lfsr_function(disc_info, lfsr_desc->feedback_function0, fb0, fb1, 0x01); fbresult = dss_lfsr_function(disc_info, lfsr_desc->feedback_function0, fb0, fb1, 0x01);
context->lfsr_reg = dss_lfsr_function(disc_info, DISC_LFSR_REPLACE, context->lfsr_reg, fbresult << lfsr_desc->bitlength, (2 << lfsr_desc->bitlength) - 1); context->lfsr_reg = dss_lfsr_function(disc_info, DISC_LFSR_REPLACE, context->lfsr_reg, fbresult << lfsr_desc->bitlength, (2 << lfsr_desc->bitlength) - 1);
} }
/* Now select the output bit */ /* Now select the output bit */
if (context->out_is_f0) if (context->out_is_f0)
@ -476,11 +476,11 @@ static DISCRETE_STEP(dss_lfsr)
node->output[0] = node->output[0] ? DSS_LFSR_NOISE__AMP / 2 : -DSS_LFSR_NOISE__AMP / 2; node->output[0] = node->output[0] ? DSS_LFSR_NOISE__AMP / 2 : -DSS_LFSR_NOISE__AMP / 2;
/* Bias input as required */ /* Bias input as required */
node->output[0] = node->output[0] + DSS_LFSR_NOISE__BIAS; node->output[0] = node->output[0] + DSS_LFSR_NOISE__BIAS;
/* output the lfsr reg ?*/ /* output the lfsr reg ?*/
if (context->out_lfsr_reg) if (context->out_lfsr_reg)
node->output[1] = context->lfsr_reg; node->output[1] = context->lfsr_reg;
} }
if(!DSS_LFSR_NOISE__ENABLE) if(!DSS_LFSR_NOISE__ENABLE)
{ {

View File

@ -128,7 +128,7 @@ static const discrete_module module_list[] =
/* nop */ /* nop */
{ DSS_NOP ,"DSS_NOP" , 0 ,0 ,NULL ,NULL }, { DSS_NOP ,"DSS_NOP" , 0 ,0 ,NULL ,NULL },
/* from disc_inp.c */ /* from disc_inp.c */
{ DSS_ADJUSTMENT ,"DSS_ADJUSTMENT" , 1 ,sizeof(struct dss_adjustment_context) ,dss_adjustment_reset ,dss_adjustment_step }, { DSS_ADJUSTMENT ,"DSS_ADJUSTMENT" , 1 ,sizeof(struct dss_adjustment_context) ,dss_adjustment_reset ,dss_adjustment_step },
{ DSS_CONSTANT ,"DSS_CONSTANT" , 1 ,0 ,dss_constant_reset ,NULL }, { DSS_CONSTANT ,"DSS_CONSTANT" , 1 ,0 ,dss_constant_reset ,NULL },
@ -252,22 +252,22 @@ static node_description *discrete_find_node(const discrete_info *info, int node)
static int discrete_build_list(discrete_info *info, discrete_sound_block *intf, discrete_sound_block *out, int offset) static int discrete_build_list(discrete_info *info, discrete_sound_block *intf, discrete_sound_block *out, int offset)
{ {
int node_count = 0; int node_count = 0;
for (; intf[node_count].type != DSS_NULL; ) for (; intf[node_count].type != DSS_NULL; )
{ {
/* scan imported */ /* scan imported */
if (intf[node_count].type == DSO_IMPORT) if (intf[node_count].type == DSO_IMPORT)
{ {
offset = discrete_build_list(info, (discrete_sound_block *) intf[node_count].custom, out, offset); offset = discrete_build_list(info, (discrete_sound_block *) intf[node_count].custom, out, offset);
} }
else if (intf[node_count].type == DSO_REPLACE) else if (intf[node_count].type == DSO_REPLACE)
{ {
int i; int i;
node_count++; node_count++;
if (intf[node_count].type == DSS_NULL) if (intf[node_count].type == DSS_NULL)
fatalerror("discrete_build_list: DISCRETE_REPLACE at end of node_list"); fatalerror("discrete_build_list: DISCRETE_REPLACE at end of node_list");
for (i = 0; i < offset; i++) for (i = 0; i < offset; i++)
if (out[i].type != NODE_SPECIAL ) if (out[i].type != NODE_SPECIAL )
if (out[i].node == intf[node_count].node) if (out[i].node == intf[node_count].node)
@ -275,15 +275,15 @@ static int discrete_build_list(discrete_info *info, discrete_sound_block *intf,
out[i] = intf[node_count]; out[i] = intf[node_count];
break; break;
} }
if (i >= offset) if (i >= offset)
fatalerror("discrete_build_list: DISCRETE_REPLACE did not found node %d", NODE_INDEX(intf[node_count].node)); fatalerror("discrete_build_list: DISCRETE_REPLACE did not found node %d", NODE_INDEX(intf[node_count].node));
} }
else if (intf[node_count].type == DSO_DELETE) else if (intf[node_count].type == DSO_DELETE)
{ {
int i,p,deleted; int i,p,deleted;
p = 0; p = 0;
deleted = 0; deleted = 0;
for (i = 0; i < offset; i++) for (i = 0; i < offset; i++)
@ -332,7 +332,7 @@ static DEVICE_START( discrete )
info->sample_rate = device->machine->sample_rate; info->sample_rate = device->machine->sample_rate;
info->sample_time = 1.0 / info->sample_rate; info->sample_time = 1.0 / info->sample_rate;
info->neg_sample_time = - info->sample_time; info->neg_sample_time = - info->sample_time;
info->total_samples = 0; info->total_samples = 0;
/* create the logfile */ /* create the logfile */
@ -343,7 +343,7 @@ static DEVICE_START( discrete )
/* Build the final block list */ /* Build the final block list */
intf = auto_alloc_array_clear(device->machine, discrete_sound_block, DISCRETE_MAX_NODES); intf = auto_alloc_array_clear(device->machine, discrete_sound_block, DISCRETE_MAX_NODES);
discrete_build_list(info, intf_start, intf, 0); discrete_build_list(info, intf_start, intf, 0);
/* first pass through the nodes: sanity check, fill in the indexed_nodes, and make a total count */ /* first pass through the nodes: sanity check, fill in the indexed_nodes, and make a total count */
discrete_log(info, "discrete_start() - Doing node list sanity check"); discrete_log(info, "discrete_start() - Doing node list sanity check");
for (info->node_count = 0; intf[info->node_count].type != DSS_NULL; info->node_count++) for (info->node_count = 0; intf[info->node_count].type != DSS_NULL; info->node_count++)
@ -476,8 +476,8 @@ static DEVICE_RESET( discrete )
} }
} }
/* This was a try which unfortunately did not provide /* This was a try which unfortunately did not provide
* any improvement. Left here for reference * any improvement. Left here for reference
*/ */
#if 0 #if 0
INLINE void bigselect(const device_config *device, node_description *node) INLINE void bigselect(const device_config *device, node_description *node)
@ -591,7 +591,7 @@ static STREAM_UPDATE( discrete_stream_update )
if (node->module.step) if (node->module.step)
(*node->module.step)(info, node); (*node->module.step)(info, node);
//bigselect(info->device, node); //bigselect(info->device, node);
if (DISCRETE_PROFILING) if (DISCRETE_PROFILING)
node->run_time += osd_profiling_ticks(); node->run_time += osd_profiling_ticks();

View File

@ -1266,20 +1266,20 @@
* DISCRETE_BIT_DECODE(NODE_03,7,3,5) * DISCRETE_BIT_DECODE(NODE_03,7,3,5)
* *
* Node output is 0 * Node output is 0
* *
* if the range variant is used, you may access the bits (up to 8) * if the range variant is used, you may access the bits (up to 8)
* by using NODE_SUB, i.e. * by using NODE_SUB, i.e.
* *
* DISCRETE_BITS_DECODE(NODE_03,5,0,4,5) * DISCRETE_BITS_DECODE(NODE_03,5,0,4,5)
* *
* NODE_SUB(NODE_03, 0) = 5 * NODE_SUB(NODE_03, 0) = 5
* NODE_SUB(NODE_03, 1) = 0 * NODE_SUB(NODE_03, 1) = 0
* NODE_SUB(NODE_03, 2) = 5 * NODE_SUB(NODE_03, 2) = 5
* NODE_SUB(NODE_03, 3) = 0 * NODE_SUB(NODE_03, 3) = 0
* NODE_SUB(NODE_03, 4) = 0 * NODE_SUB(NODE_03, 4) = 0
* *
* EXAMPLES: galaxian, dkong, mario * EXAMPLES: galaxian, dkong, mario
* *
# *********************************************************************** # ***********************************************************************
* *
* DISCRETE_LOGIC_INVERT - Logic invertor * DISCRETE_LOGIC_INVERT - Logic invertor
@ -2477,7 +2477,7 @@
* DISCRETE_RCDISC3 - RC discharge network * DISCRETE_RCDISC3 - RC discharge network
* *
* FIXME: Diode direction (for bzone) * FIXME: Diode direction (for bzone)
* *
* .-----------------. * .-----------------.
* | | * | |
* ENAB -0------>| | * ENAB -0------>| |
@ -2605,7 +2605,7 @@
* | -----+----- | * | -----+----- |
* | |gnd | * | |gnd |
* '---------------------' * '---------------------'
* *
* Declaration syntax * Declaration syntax
* *
* DISCRETE_RCDISC5(name of node, * DISCRETE_RCDISC5(name of node,
@ -2621,7 +2621,7 @@
* When enabled by NODE_10, C discharges from 10v as indicated by RC * When enabled by NODE_10, C discharges from 10v as indicated by RC
* of 100R & 1uF. If not enabled, the capcitors keeps it load and may * of 100R & 1uF. If not enabled, the capcitors keeps it load and may
* still be charged through input1. The switch is assumed to be a CD4066, * still be charged through input1. The switch is assumed to be a CD4066,
* thus if not enabled the output will be drawn by R to GND since * thus if not enabled the output will be drawn by R to GND since
* the switch is in high impedance mode. * the switch is in high impedance mode.
* *
* EXAMPLES: see Spiders, Galaxian * EXAMPLES: see Spiders, Galaxian
@ -3663,7 +3663,7 @@ struct _discrete_info
int num_wavelogs; int num_wavelogs;
wav_file *disc_wav_file[DISCRETE_MAX_WAVELOGS]; wav_file *disc_wav_file[DISCRETE_MAX_WAVELOGS];
node_description *wavelog_node[DISCRETE_MAX_WAVELOGS]; node_description *wavelog_node[DISCRETE_MAX_WAVELOGS];
/* profiling */ /* profiling */
int total_samples; int total_samples;
}; };
@ -4153,8 +4153,8 @@ enum
/* Output Node -- this must be the last entry in this enum! */ /* Output Node -- this must be the last entry in this enum! */
DSO_OUTPUT, /* The final output node */ DSO_OUTPUT, /* The final output node */
/* Import another blocklist */ /* Import another blocklist */
DSO_IMPORT, /* import from another discrete block */ DSO_IMPORT, /* import from another discrete block */
DSO_REPLACE, /* replace next node */ DSO_REPLACE, /* replace next node */
DSO_DELETE, /* delete nodes */ DSO_DELETE, /* delete nodes */

View File

@ -14,7 +14,7 @@
** History: ** History:
** **
** 2006~2009 Eke-Eke (Genesis Plus GX): ** 2006~2009 Eke-Eke (Genesis Plus GX):
** Credits to Nemesis (@spritesmind.net), most of those fixes came from his tests on a Model 1 Sega Mega Drive ** Credits to Nemesis (@spritesmind.net), most of those fixes came from his tests on a Model 1 Sega Mega Drive
** More informations at http://gendev.spritesmind.net/forum/viewtopic.php?t=386 ** More informations at http://gendev.spritesmind.net/forum/viewtopic.php?t=386
** **
** - fixed LFO implementation (Spider-Man & Venom : Separation Anxiety intro,Warlock birds, Aladdin bug sound): ** - fixed LFO implementation (Spider-Man & Venom : Separation Anxiety intro,Warlock birds, Aladdin bug sound):
@ -24,7 +24,7 @@
** - improved internal timers emulation ** - improved internal timers emulation
** - fixed Attack Rate update in some specific case (Batman & Robin intro) ** - fixed Attack Rate update in some specific case (Batman & Robin intro)
** - fixed EG behavior when Attack Rate is maximal ** - fixed EG behavior when Attack Rate is maximal
** - fixed EG behavior when SL=0 (Mega Turrican tracks 03,09...) or/and Key ON occurs at minimal attenuation ** - fixed EG behavior when SL=0 (Mega Turrican tracks 03,09...) or/and Key ON occurs at minimal attenuation
** - added EG output immediate update on register writes ** - added EG output immediate update on register writes
** - fixed YM2612 initial values (after the reset) ** - fixed YM2612 initial values (after the reset)
** - implemented Detune overflow (Ariel, Comix Zone, Shaq Fu, Spiderman & many others) ** - implemented Detune overflow (Ariel, Comix Zone, Shaq Fu, Spiderman & many others)
@ -699,7 +699,7 @@ typedef struct
/* there are 2048 FNUMs that can be generated using FNUM/BLK registers /* there are 2048 FNUMs that can be generated using FNUM/BLK registers
but LFO works with one more bit of a precision so we really need 4096 elements */ but LFO works with one more bit of a precision so we really need 4096 elements */
UINT32 fn_table[4096]; /* fnumber->increment counter */ UINT32 fn_table[4096]; /* fnumber->increment counter */
UINT32 fn_max; /* maximal phase increment (used for phase overflow) */ UINT32 fn_max; /* maximal phase increment (used for phase overflow) */
@ -1952,7 +1952,7 @@ static void OPNSetPres(FM_OPN *OPN, int pres, int timer_prescaler, int SSGpres)
init_timetables( &OPN->ST, dt_tab ); init_timetables( &OPN->ST, dt_tab );
/* there are 2048 FNUMs that can be generated using FNUM/BLK registers /* there are 2048 FNUMs that can be generated using FNUM/BLK registers
but LFO works with one more bit of a precision so we really need 4096 elements */ but LFO works with one more bit of a precision so we really need 4096 elements */
for(i = 0; i < 4096; i++) for(i = 0; i < 4096; i++)
{ {
/* freq table for octave 7 */ /* freq table for octave 7 */
@ -2088,7 +2088,7 @@ static void OPNWriteReg(FM_OPN *OPN, int r, int v)
case 0x90: /* SSG-EG */ case 0x90: /* SSG-EG */
SLOT->ssg = v&0x0f; SLOT->ssg = v&0x0f;
/* recalculate EG output */ /* recalculate EG output */
if ((SLOT->ssg&0x08) && (SLOT->ssgn ^ (SLOT->ssg&0x04)) && (SLOT->state > EG_REL)) if ((SLOT->ssg&0x08) && (SLOT->ssgn ^ (SLOT->ssg&0x04)) && (SLOT->state > EG_REL))
SLOT->vol_out = ((UINT32)(0x200 - SLOT->volume) & MAX_ATT_INDEX) + SLOT->tl; SLOT->vol_out = ((UINT32)(0x200 - SLOT->volume) & MAX_ATT_INDEX) + SLOT->tl;

View File

@ -930,7 +930,7 @@ static DEVICE_START( tms5110 )
tms->M0_callback = speech_rom_read_bit; tms->M0_callback = speech_rom_read_bit;
tms->set_load_address = speech_rom_set_addr; tms->set_load_address = speech_rom_set_addr;
} }
register_for_save_states(tms); register_for_save_states(tms);
} }

View File

@ -1105,7 +1105,7 @@ static DEVICE_START( tms5220 )
/* initialize a stream */ /* initialize a stream */
tms->stream = stream_create(device, 0, 1, device->clock / 80, tms, tms5220_update); tms->stream = stream_create(device, 0, 1, device->clock / 80, tms, tms5220_update);
register_for_save_states(tms); register_for_save_states(tms);
} }

View File

@ -10,7 +10,7 @@ Notes:
- There is currently no way to exactly reproduce the CD4066 switch control - There is currently no way to exactly reproduce the CD4066 switch control
mixing. This is changing impedance of the input resistor for e.g. mixing. This is changing impedance of the input resistor for e.g.
following filters to >> 10M Ohm. These resistors are static values in following filters to >> 10M Ohm. These resistors are static values in
the discrete core. the discrete core.
TODO: TODO:
@ -78,8 +78,8 @@ TODO:
* R34 is given twice on galaxian board and both times as 5.1k. On moon cresta * R34 is given twice on galaxian board and both times as 5.1k. On moon cresta
* it is only listed once and given as 15k. This is more in line with recordings * it is only listed once and given as 15k. This is more in line with recordings
*/ */
#define GAL_R34 RES_K(5.1) #define GAL_R34 RES_K(5.1)
#define MCRST_R34 RES_K(15) #define MCRST_R34 RES_K(15)
#define GAL_R35 RES_K(150) #define GAL_R35 RES_K(150)
#define GAL_R36 RES_K(22) #define GAL_R36 RES_K(22)
@ -292,10 +292,10 @@ static DISCRETE_SOUND_START(galaxian)
/************************************************/ /************************************************/
/* two cascaded LS164 which are reset to pitch latch value, /* two cascaded LS164 which are reset to pitch latch value,
* thus generating SOUND_CLOCK / (256 - pitch_clock) signal * thus generating SOUND_CLOCK / (256 - pitch_clock) signal
* *
* One possibility to implement this is * One possibility to implement this is
* DISCRETE_TRANSFORM3(NODE_130, SOUND_CLOCK, 256, GAL_INP_PITCH, "012-/") * DISCRETE_TRANSFORM3(NODE_130, SOUND_CLOCK, 256, GAL_INP_PITCH, "012-/")
* DISCRETE_COUNTER(NODE_132, 1, 0, NODE_130, 15, DISC_COUNT_UP, 0, DISC_CLK_IS_FREQ) * DISCRETE_COUNTER(NODE_132, 1, 0, NODE_130, 15, DISC_COUNT_UP, 0, DISC_CLK_IS_FREQ)
* but there is a native choice: * but there is a native choice:
*/ */
@ -320,7 +320,7 @@ static DISCRETE_SOUND_START(galaxian)
/* Not 100% correct - switching causes high impedance input for node_157 /* Not 100% correct - switching causes high impedance input for node_157
* this is not emulated */ * this is not emulated */
DISCRETE_RCDISC5(NODE_155, NODE_152, GAL_INP_HIT, (GAL_R35 + GAL_R36), GAL_C21) DISCRETE_RCDISC5(NODE_155, NODE_152, GAL_INP_HIT, (GAL_R35 + GAL_R36), GAL_C21)
DISCRETE_OP_AMP_FILTER(NODE_157, 1, NODE_155, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &galaxian_bandpass_desc) DISCRETE_OP_AMP_FILTER(NODE_157, 1, NODE_155, 0, DISC_OP_AMP_FILTER_IS_BAND_PASS_1M, &galaxian_bandpass_desc)
@ -358,7 +358,7 @@ DISCRETE_SOUND_END
static DISCRETE_SOUND_START(mooncrst) static DISCRETE_SOUND_START(mooncrst)
DISCRETE_IMPORT(galaxian) DISCRETE_IMPORT(galaxian)
/************************************************/ /************************************************/
/* Moon Cresta mixing stage */ /* Moon Cresta mixing stage */
/************************************************/ /************************************************/
@ -473,9 +473,9 @@ MACHINE_DRIVER_END
MACHINE_DRIVER_START( mooncrst_audio ) MACHINE_DRIVER_START( mooncrst_audio )
MDRV_SOUND_START(galaxian) MDRV_SOUND_START(galaxian)
MDRV_SOUND_ADD(GAL_AUDIO, DISCRETE, 0) MDRV_SOUND_ADD(GAL_AUDIO, DISCRETE, 0)
MDRV_SOUND_CONFIG_DISCRETE(mooncrst) MDRV_SOUND_CONFIG_DISCRETE(mooncrst)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END MACHINE_DRIVER_END

View File

@ -95,9 +95,9 @@
* Battery backed up RAM * Battery backed up RAM
Input Nº | Pin | Colours | Ground Input N? | Pin N? | Colours | Ground
---------+--------+---------+--------------------------------------------------------------- ---------+--------+---------+---------------------------------------------------------------
00 | 1A | Brn-Wht | Universal Hopper Early / AWP hopper switch 1 (£1) / Y2K Hop 1. 00 | 1A | Brn-Wht | Universal Hopper Early / AWP hopper switch 1 (?1) / Y2K Hop 1.
01 | 2A | Red-Wht | Universal Hopper Late / AWP hopper switch 2 (20p) / Y2K Hop 2. 01 | 2A | Red-Wht | Universal Hopper Late / AWP hopper switch 2 (20p) / Y2K Hop 2.
02 | 3A | Org-Wht | CC46 Coin / C435 Accept 1. 02 | 3A | Org-Wht | CC46 Coin / C435 Accept 1.
03 | 4A | Yel-Wht | CC46 Error / C435 Accept 2. 03 | 4A | Yel-Wht | CC46 Error / C435 Accept 2.
@ -123,9 +123,9 @@
23 | 34A | Pnk-Brn | 23 | 34A | Pnk-Brn |
Output Nº | Pin | Colours | Description Output N? | Pin N? | Colours | Description
----------+--------+---------+--------------------------------------------------------------- ----------+--------+---------+---------------------------------------------------------------
00 | 4B | Brn-Blu | Universal Hopper Drive / AWP hopper drive 1 (£1) / Y2K Hop 1. 00 | 4B | Brn-Blu | Universal Hopper Drive / AWP hopper drive 1 (?1) / Y2K Hop 1.
01 | 5B | Red-Blu | Candle 1. 01 | 5B | Red-Blu | Candle 1.
02 | 6B | Org-Blu | Candle 2. 02 | 6B | Org-Blu | Candle 2.
03 | 7B | Yel-Blu | Cancel Button Lamp. 03 | 7B | Yel-Blu | Cancel Button Lamp.
@ -268,7 +268,7 @@ static PALETTE_INIT( coinmvga )
//static WRITE8_HANDLER( debug_w ) //static WRITE8_HANDLER( debug_w )
//{ //{
// popmessage("written : %02X", data); // popmessage("written : %02X", data);
//} //}
static WRITE16_HANDLER( ramdac_bg_w ) static WRITE16_HANDLER( ramdac_bg_w )
@ -337,7 +337,7 @@ static WRITE16_HANDLER( ramdac_fg_w )
/* /*
static READ16_HANDLER( test_r ) static READ16_HANDLER( test_r )
{ {
return mame_rand(space->machine); return mame_rand(space->machine);
}*/ }*/
/************************* /*************************
@ -348,11 +348,11 @@ static ADDRESS_MAP_START( coinmvga_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("maincpu", 0) //maybe not AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("maincpu", 0) //maybe not
// AM_RANGE(0x0a0000, 0x0fffff) AM_RAM // AM_RANGE(0x0a0000, 0x0fffff) AM_RAM
// AM_RANGE(0x100000, 0x1fffff) AM_RAM //colorama // AM_RANGE(0x100000, 0x1fffff) AM_RAM //colorama
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_BASE(&vram) AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_BASE(&vram)
// AM_RANGE(0x40746e, 0x40746f) AM_READ(test_r) AM_WRITENOP //touch screen related, colorama // AM_RANGE(0x40746e, 0x40746f) AM_READ(test_r) AM_WRITENOP //touch screen related, colorama
// AM_RANGE(0x403afa, 0x403afb) AM_READ(test_r) AM_WRITENOP //touch screen related, cmrltv75 // AM_RANGE(0x403afa, 0x403afb) AM_READ(test_r) AM_WRITENOP //touch screen related, cmrltv75
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_RANGE(0x400000, 0x40ffff) AM_RAM
AM_RANGE(0x600000, 0x600001) AM_WRITE(ramdac_bg_w) AM_RANGE(0x600000, 0x600001) AM_WRITE(ramdac_bg_w)
@ -367,28 +367,28 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( coinmvga_io_map, ADDRESS_SPACE_IO, 8 ) static ADDRESS_MAP_START( coinmvga_io_map, ADDRESS_SPACE_IO, 8 )
/* Digital I/O ports (ports 4-B are valid on 16-bit H8/3xx) */ /* Digital I/O ports (ports 4-B are valid on 16-bit H8/3xx) */
// AM_RANGE(H8_PORT_4, H8_PORT_4) // AM_RANGE(H8_PORT_4, H8_PORT_4)
// AM_RANGE(H8_PORT_5, H8_PORT_5) // AM_RANGE(H8_PORT_5, H8_PORT_5)
// AM_RANGE(H8_PORT_6, H8_PORT_6) // AM_RANGE(H8_PORT_6, H8_PORT_6)
// AM_RANGE(H8_PORT_7, H8_PORT_7) <---- 0006 RW colorama // AM_RANGE(H8_PORT_7, H8_PORT_7) <---- 0006 RW colorama
// AM_RANGE(H8_PORT_8, H8_PORT_8) // AM_RANGE(H8_PORT_8, H8_PORT_8)
// AM_RANGE(H8_PORT_9, H8_PORT_9) // AM_RANGE(H8_PORT_9, H8_PORT_9)
// AM_RANGE(H8_PORT_A, H8_PORT_A) // AM_RANGE(H8_PORT_A, H8_PORT_A)
// AM_RANGE(H8_PORT_B, H8_PORT_B) // AM_RANGE(H8_PORT_B, H8_PORT_B)
/* Analog Inputs */ /* Analog Inputs */
// AM_RANGE(H8_ADC_0_H, H8_ADC_0_L) // AM_RANGE(H8_ADC_0_H, H8_ADC_0_L)
// AM_RANGE(H8_ADC_1_H, H8_ADC_1_L) // AM_RANGE(H8_ADC_1_H, H8_ADC_1_L)
// AM_RANGE(H8_ADC_2_H, H8_ADC_2_L) // AM_RANGE(H8_ADC_2_H, H8_ADC_2_L)
// AM_RANGE(H8_ADC_3_H, H8_ADC_3_L) // AM_RANGE(H8_ADC_3_H, H8_ADC_3_L)
/* Serial ports */ /* Serial ports */
// AM_RANGE(H8_SERIAL_0, H8_SERIAL_0) // AM_RANGE(H8_SERIAL_0, H8_SERIAL_0)
// AM_RANGE(H8_SERIAL_1, H8_SERIAL_1) // AM_RANGE(H8_SERIAL_1, H8_SERIAL_1)
ADDRESS_MAP_END ADDRESS_MAP_END
/* unknown writes (cmrltv75): /* unknown writes (cmrltv75):
CPU 'main' (PC=00000218): unmapped program memory word write to 00FFFFF2 = 001E & 00FF CPU 'main' (PC=00000218): unmapped program memory word write to 00FFFFF2 = 001E & 00FF
CPU 'main' (PC=0000021C): unmapped program memory word write to 00FFFFEC = E800 & FF00 CPU 'main' (PC=0000021C): unmapped program memory word write to 00FFFFEC = E800 & FF00
@ -403,7 +403,7 @@ CPU 'main' (PC=00000330): unmapped program memory word read from 0040FBEE & FFFF
CPU 'main' (PC=00000330): unmapped program memory word read from 0040FBF0 & FFFF CPU 'main' (PC=00000330): unmapped program memory word read from 0040FBF0 & FFFF
** unknown writes (colorama): ** unknown writes (colorama):
CPU 'main' (PC=00000218): unmapped program memory word write to 00FFFFF2 = 001E & 00FF CPU 'main' (PC=00000218): unmapped program memory word write to 00FFFFF2 = 001E & 00FF
@ -660,7 +660,7 @@ static MACHINE_DRIVER_START( coinmvga )
MDRV_CPU_IO_MAP(coinmvga_io_map) MDRV_CPU_IO_MAP(coinmvga_io_map)
MDRV_CPU_VBLANK_INT("screen", vblank_irq) /* wrong, fix me */ MDRV_CPU_VBLANK_INT("screen", vblank_irq) /* wrong, fix me */
// MDRV_NVRAM_HANDLER(generic_0fill) // MDRV_NVRAM_HANDLER(generic_0fill)
/* video hardware */ /* video hardware */
MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -2789,7 +2789,7 @@ static MACHINE_DRIVER_START( cps1_10MHz )
MDRV_SOUND_ROUTE(1, "mono", 0.35) MDRV_SOUND_ROUTE(1, "mono", 0.35)
/* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
MDRV_SOUND_ADD("oki", OKIM6295, XTAL_16MHz/4/4) MDRV_SOUND_ADD("oki", OKIM6295, XTAL_16MHz/4/4)
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // pin 7 can be changed by the game code, see f006 on z80 MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // pin 7 can be changed by the game code, see f006 on z80
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_DRIVER_END MACHINE_DRIVER_END

View File

@ -1859,7 +1859,7 @@ static MACHINE_DRIVER_START( mooncrst )
/* alternate memory map */ /* alternate memory map */
MDRV_CPU_MODIFY("maincpu") MDRV_CPU_MODIFY("maincpu")
MDRV_CPU_PROGRAM_MAP(mooncrst_map) MDRV_CPU_PROGRAM_MAP(mooncrst_map)
MDRV_IMPORT_FROM(mooncrst_audio) MDRV_IMPORT_FROM(mooncrst_audio)
MACHINE_DRIVER_END MACHINE_DRIVER_END

View File

@ -1220,7 +1220,7 @@ ROM_START( wownfant)
ROM_LOAD( "ep-4001 42750001 u4.bin", 0x00000, 0x80000, CRC(06dc889e) SHA1(726561ff01bbde43669293a6ff7ee22b048b4118) ) // almost the same as fantasia2, just some changes to the sample references in the header ROM_LOAD( "ep-4001 42750001 u4.bin", 0x00000, 0x80000, CRC(06dc889e) SHA1(726561ff01bbde43669293a6ff7ee22b048b4118) ) // almost the same as fantasia2, just some changes to the sample references in the header
ROM_RELOAD( 0x40000, 0x80000 ) ROM_RELOAD( 0x40000, 0x80000 )
ROM_LOAD( "ep-4001 42750001 u1.bin", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) ) ROM_LOAD( "ep-4001 42750001 u1.bin", 0xc0000, 0x80000, CRC(864167c2) SHA1(c454b26b6dea993e6bd64546f92beef05e46d7d7) )
ROM_END ROM_END
ROM_START( galhustl ) ROM_START( galhustl )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */

View File

@ -695,7 +695,7 @@ ROM_END
/********************************************************* /*********************************************************
Crazy Monkey Crazy Monkey
Roms 1-4 were changed after the 070315 update. Roms 1-4 were changed after the 070315 update.
The official list of hashes shows the 070315 updated roms. The official list of hashes shows the 070315 updated roms.
**********************************************************/ **********************************************************/
@ -870,7 +870,7 @@ ROM_END
/********************************************************* /*********************************************************
Fruit Cocktail Fruit Cocktail
All the roms were changed after the 070305 update. All the roms were changed after the 070305 update.
The official list of hashes shows the 070305 updated roms. The official list of hashes shows the 070305 updated roms.
**********************************************************/ **********************************************************/
@ -1045,7 +1045,7 @@ ROM_END
/********************************************************* /*********************************************************
Lucky Haunter Lucky Haunter
Roms 1-4 were changed after the 070402 update. Roms 1-4 were changed after the 070402 update.
The official list of hashes shows the 070402 updated roms. The official list of hashes shows the 070402 updated roms.
**********************************************************/ **********************************************************/
@ -1190,7 +1190,7 @@ ROM_END
/********************************************************* /*********************************************************
Garage Garage
Roms 1-4 were changed after the 070213 update. Roms 1-4 were changed after the 070213 update.
The official list of hashes shows the 070213 updated roms. The official list of hashes shows the 070213 updated roms.
**********************************************************/ **********************************************************/
@ -1305,7 +1305,7 @@ ROM_END
/********************************************************* /*********************************************************
Rock Clibmer Rock Clibmer
Roms 1-4 were changed after the 070322 update. Roms 1-4 were changed after the 070322 update.
The official list of hashes shows the 070322 updated roms. The official list of hashes shows the 070322 updated roms.
**********************************************************/ **********************************************************/
@ -1424,7 +1424,7 @@ ROM_END
/********************************************************* /*********************************************************
Resident Resident
Roms 1-4 were changed after the 070222 update. Roms 1-4 were changed after the 070222 update.
The official list of hashes shows the 070222 updated roms. The official list of hashes shows the 070222 updated roms.
**********************************************************/ **********************************************************/
@ -1479,7 +1479,7 @@ ROM_END
/********************************************************* /*********************************************************
Roll Fruit Roll Fruit
Roms 4-8 were changed after the 080327 update. Roms 4-8 were changed after the 080327 update.
The official list of hashes shows both set of roms. The official list of hashes shows both set of roms.
**********************************************************/ **********************************************************/
@ -1505,7 +1505,7 @@ ROM_START( rollfr_2 ) // 040318
ROM_REGION( 0x40000, "maincpu", 0 ) // z80 code, banked ROM_REGION( 0x40000, "maincpu", 0 ) // z80 code, banked
ROM_LOAD( "rf5-040318.rom", 0x00000, 0x40000, CRC(d8efd395) SHA1(71edd1541df400fef97abacabb10d882ace4c8b0) ) ROM_LOAD( "rf5-040318.rom", 0x00000, 0x40000, CRC(d8efd395) SHA1(71edd1541df400fef97abacabb10d882ace4c8b0) )
ROM_REGION( 0x400000, "gfx", 0 ) ROM_REGION( 0x400000, "gfx", 0 )
ROM_LOAD( "1", 0x000000, 0x80000, CRC(caeb1fc3) SHA1(14b9f99f892849faecb3327e572dc134e1065463) ) ROM_LOAD( "1", 0x000000, 0x80000, CRC(caeb1fc3) SHA1(14b9f99f892849faecb3327e572dc134e1065463) )
ROM_LOAD( "2", 0x100000, 0x80000, CRC(f017c200) SHA1(a247bbbd1c4ca99978dcc705bd62590815a891f2) ) ROM_LOAD( "2", 0x100000, 0x80000, CRC(f017c200) SHA1(a247bbbd1c4ca99978dcc705bd62590815a891f2) )
ROM_LOAD( "3", 0x200000, 0x80000, CRC(a2d6df11) SHA1(c2553136252aebe3b3ce0b5c33e740d0e27fb7b2) ) ROM_LOAD( "3", 0x200000, 0x80000, CRC(a2d6df11) SHA1(c2553136252aebe3b3ce0b5c33e740d0e27fb7b2) )
@ -1585,7 +1585,7 @@ ROM_START( island2a ) // 060529
ROM_END ROM_END
/********************************************************* /*********************************************************
Pirate Pirate
**********************************************************/ **********************************************************/
#if ALL_REVISIONS #if ALL_REVISIONS
@ -1623,7 +1623,7 @@ ROM_END
/********************************************************* /*********************************************************
Keks Keks
Roms 1-4 were changed after the 070119 update. Roms 1-4 were changed after the 070119 update.
The official list of hashes shows the 070119 updated roms. The official list of hashes shows the 070119 updated roms.
**********************************************************/ **********************************************************/

View File

@ -1877,7 +1877,7 @@ static INPUT_PORTS_START( spacwalk )
/* 8 pin DIP Switch on location C2 on PCB A084-90700-D640 */ /* 8 pin DIP Switch on location C2 on PCB A084-90700-D640 */
/* PCB picture also shows a 2nd DIP Switch on location B2, supposedly for language selection, /* PCB picture also shows a 2nd DIP Switch on location B2, supposedly for language selection,
but ROM contents suggests it's not connected (no different languages or unmapped reads) */ but ROM contents suggests it's not connected (no different languages or unmapped reads) */
PORT_START("IN2") PORT_START("IN2")
PORT_DIPNAME( 0x03, 0x01, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("C2:1,2") PORT_DIPNAME( 0x03, 0x01, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("C2:1,2")
PORT_DIPSETTING( 0x03, "40 seconds + 20 extended" ) PORT_CONDITION("IN2", 0x30, PORTCOND_NOTEQUALS, 0x00) // 45 + 20 for 2 players PORT_DIPSETTING( 0x03, "40 seconds + 20 extended" ) PORT_CONDITION("IN2", 0x30, PORTCOND_NOTEQUALS, 0x00) // 45 + 20 for 2 players

View File

@ -145,9 +145,9 @@
* *
* Namco Super System 22 Hardware Overview (last updated 26th April 2009 at 4:11pm) * Namco Super System 22 Hardware Overview (last updated 26th April 2009 at 4:11pm)
* --------------------------------------- * ---------------------------------------
* *
* Note! This document will be updated from time to time when more dumps are available. * Note! This document will be updated from time to time when more dumps are available.
* *
* This document covers all the known Namco Super System 22 games, including.... * This document covers all the known Namco Super System 22 games, including....
* Air Combat 22 (C) Namco, 1995 * Air Combat 22 (C) Namco, 1995
* Alpine Racer 1 (C) Namco, 1995 * Alpine Racer 1 (C) Namco, 1995
@ -160,14 +160,14 @@
* Prop Cycle (C) Namco, 1996 * Prop Cycle (C) Namco, 1996
* Time Crisis (C) Namco, 1995 * Time Crisis (C) Namco, 1995
* Tokyo Wars (C) Namco, 1996 * Tokyo Wars (C) Namco, 1996
* *
* * - denotes not available. If you can help with the remaining undumped SS22 game other other revisions of the * * - denotes not available. If you can help with the remaining undumped SS22 game other other revisions of the
* dumped games, please contact http://guru.mameworld.info/ * dumped games, please contact http://guru.mameworld.info/
* *
* The Namco Super System 22 System comprises 4 PCB's plugged into a motherboard. The motherboard contains only * The Namco Super System 22 System comprises 4 PCB's plugged into a motherboard. The motherboard contains only
* some slots and connectors. The 4 PCB's are housed in a metal box with a large fan on the side. The fan mostly cools * some slots and connectors. The 4 PCB's are housed in a metal box with a large fan on the side. The fan mostly cools
* the video board as these are known to run hot and commonly fail, especially now the system is 10 years+ old. * the video board as these are known to run hot and commonly fail, especially now the system is 10 years+ old.
* *
* CPU PCB - There are four known revisions of this PCB. Three of them have an extra connector for an * CPU PCB - There are four known revisions of this PCB. Three of them have an extra connector for an
* auxillary PCB. One of the others doesn't have that connector but is are otherwise identical. * auxillary PCB. One of the others doesn't have that connector but is are otherwise identical.
* All PCBs can be swapped to any game and it will work. However, ALL required IC's must be swapped. * All PCBs can be swapped to any game and it will work. However, ALL required IC's must be swapped.
@ -191,7 +191,7 @@
* The differences are very minor, just the amount of connectors on the PCB. The Mother PCB is swappable to * The differences are very minor, just the amount of connectors on the PCB. The Mother PCB is swappable to
* any game as long as the required connectors for that game are present on the PCB. (all dumped games tested * any game as long as the required connectors for that game are present on the PCB. (all dumped games tested
* and worked fine using any MOTHER PCB) * and worked fine using any MOTHER PCB)
* *
* Each game has a 2 or 3 digit letter code assigned to it. Then a number 1 or 2, Then a Rev. A/B/C/D which denotes the * Each game has a 2 or 3 digit letter code assigned to it. Then a number 1 or 2, Then a Rev. A/B/C/D which denotes the
* software revision. * software revision.
* The 1 denotes a Japanese version. 2 denotes a World version. So far there are no other numbers used other than 1 or 2. * The 1 denotes a Japanese version. 2 denotes a World version. So far there are no other numbers used other than 1 or 2.
@ -199,18 +199,18 @@
* There is one exception so far. The World version of Alpine Racer 2, which uses a World version DATA ROM, and also one * There is one exception so far. The World version of Alpine Racer 2, which uses a World version DATA ROM, and also one
* of the WAVE ROMs is a World version, but one Japanese WAVE ROM is also used. * of the WAVE ROMs is a World version, but one Japanese WAVE ROM is also used.
* See the CPU PCB, Program ROM Daughterboard and MROM PCB texts below for more details on ROM usage. * See the CPU PCB, Program ROM Daughterboard and MROM PCB texts below for more details on ROM usage.
* *
* CPU PCB * CPU PCB
* ------- * -------
* 1st Revision * 1st Revision
* SYSTEM SUPER22 CPU PCB 8646960102 (8646970102) * SYSTEM SUPER22 CPU PCB 8646960102 (8646970102)
* *
* 2nd Revision * 2nd Revision
* SYSTEM SUPER22 CPU(B) PCB 8646962600 (8646972600) * SYSTEM SUPER22 CPU(B) PCB 8646962600 (8646972600)
* *
* 3rd Revision * 3rd Revision
* SYSTEM SUPER22 CPU(B) PCB 8646962600 (8646972601) <-- very minor? * SYSTEM SUPER22 CPU(B) PCB 8646962600 (8646972601) <-- very minor?
* *
* 4th Revision * 4th Revision
* SYSTEM SUPER22 CPU(B) PCB 8646962601 (8646972601) <-- very minor? * SYSTEM SUPER22 CPU(B) PCB 8646962601 (8646972601) <-- very minor?
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
@ -244,7 +244,7 @@
* | WAVEB.1L LC78815M LC78815M | * | WAVEB.1L LC78815M LC78815M |
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
* (logic chips omitted from the PCB layout) * (logic chips omitted from the PCB layout)
* *
* Notes: * Notes:
* J6 : Custom Namco connector for plug-in program ROM PCB * J6 : Custom Namco connector for plug-in program ROM PCB
* J11 : Custom Namco connector for optional plug-in WAVE ROM PCB (holds some SOP44 MASKROMs) * J11 : Custom Namco connector for optional plug-in WAVE ROM PCB (holds some SOP44 MASKROMs)
@ -292,7 +292,7 @@
* Prop Cycle = C428 * Prop Cycle = C428
* Time Crisis = C419 * Time Crisis = C419
* Tokyo Wars = C424 * Tokyo Wars = C424
* *
* *1 : Unpopulated position for PAL16V8 (PLCC20) * *1 : Unpopulated position for PAL16V8 (PLCC20)
* *2 : Unpopulated position for Fujitsu MB86601 (QFP100) * *2 : Unpopulated position for Fujitsu MB86601 (QFP100)
* *3 : Unpopulated position for 32MHz OSC * *3 : Unpopulated position for 32MHz OSC
@ -310,7 +310,7 @@
* Prop Cycle 'PR1 DATA' * Prop Cycle 'PR1 DATA'
* Time Crisis 'TS1 DATA' * Time Crisis 'TS1 DATA'
* Tokyo Wars 'TW1 DATA' * Tokyo Wars 'TW1 DATA'
* *
* WAVEA.2L \ * WAVEA.2L \
* WAVEB.1L / : 16M/32M WAVE MASKROMs. If 32MBit DIP42, they're programmed in BYTE mode (DIP42/SOP44) * WAVEB.1L / : 16M/32M WAVE MASKROMs. If 32MBit DIP42, they're programmed in BYTE mode (DIP42/SOP44)
* Game Wave A Wave B Type * Game Wave A Wave B Type
@ -326,8 +326,8 @@
* Prop Cycle 'PR1 WAVE A', 'PR1 WAVE B' , both DIP42 32M MASKROM * Prop Cycle 'PR1 WAVE A', 'PR1 WAVE B' , both DIP42 32M MASKROM
* Time Crisis 'TS1 WAVE A', 'TS1 WAVE B' , WAVE A DIP42 32M MASKROM, WAVE B DIP42 16M MASKROM * Time Crisis 'TS1 WAVE A', 'TS1 WAVE B' , WAVE A DIP42 32M MASKROM, WAVE B DIP42 16M MASKROM
* Tokyo Wars 'TW1 WAVE A', , DIP42 32M MASKROM * Tokyo Wars 'TW1 WAVE A', , DIP42 32M MASKROM
* *
* *
* PROGRAM ROM Daughterboard PCB * PROGRAM ROM Daughterboard PCB
* ----------------------------- * -----------------------------
* This PCB holds the main program ROMs. There is a small sticker on each PCB stating the game code and software revision. * This PCB holds the main program ROMs. There is a small sticker on each PCB stating the game code and software revision.
@ -335,7 +335,7 @@
* There are 4 known types of program daughterboards used on SS22 games (so far). The most common is the first type. * There are 4 known types of program daughterboards used on SS22 games (so far). The most common is the first type.
* The PCB is very small (approx 2" x 3") containing one custom connector and some FlashROMs, and a PAL (in some cases). * The PCB is very small (approx 2" x 3") containing one custom connector and some FlashROMs, and a PAL (in some cases).
* The ones that contain a PAL are approx 3" x 3". * The ones that contain a PAL are approx 3" x 3".
* *
* Type 1 * Type 1
* SYSTEM SUPER22 MPM(F) PCB 8646961600 (8646971600) * SYSTEM SUPER22 MPM(F) PCB 8646961600 (8646971600)
* |-------------------------| * |-------------------------|
@ -349,7 +349,7 @@
* |-------------------------| * |-------------------------|
* Notes: * Notes:
* ROMx: Intel E28F008SA 8MBit FlashROM (x4, TSOP40) * ROMx: Intel E28F008SA 8MBit FlashROM (x4, TSOP40)
* *
* This PCB is used on: * This PCB is used on:
* Game Software revision * Game Software revision
* ------------------------------- * -------------------------------
@ -362,7 +362,7 @@
* Prop Cycle 'PR2 Ver.A' * Prop Cycle 'PR2 Ver.A'
* Time Crisis 'TS2 Ver.B' * Time Crisis 'TS2 Ver.B'
* Tokyo Wars 'TW2 Ver.A' * Tokyo Wars 'TW2 Ver.A'
* *
* Type 2 * Type 2
* SYSTEM SUPER22 MPM(F16) PCB 8646962500 (8646972500) * SYSTEM SUPER22 MPM(F16) PCB 8646962500 (8646972500)
* |-------------------------| * |-------------------------|
@ -377,13 +377,13 @@
* |-------------------------| * |-------------------------|
* Notes: * Notes:
* ROMx: Intel E28F016SA 16MBit FlashROMs (x2, TSOP56) * ROMx: Intel E28F016SA 16MBit FlashROMs (x2, TSOP56)
* *
* This PCB is used on: * This PCB is used on:
* Game Software revision * Game Software revision
* ------------------------------- * -------------------------------
* Time Crisis 'TS2 Ver.A' * Time Crisis 'TS2 Ver.A'
* Dirt Dash 'DT2 Ver.A' * Dirt Dash 'DT2 Ver.A'
* *
* Type 3 * Type 3
* SYSTEM SUPER22 MPM(F16X4) PCB 8646962901 (8646972901) * SYSTEM SUPER22 MPM(F16X4) PCB 8646962901 (8646972901)
* |-------------------------| * |-------------------------|
@ -401,12 +401,12 @@
* Notes: * Notes:
* ICx* : Intel E28F016SA 16MBit FlashROMs (x4, TSOP56) * ICx* : Intel E28F016SA 16MBit FlashROMs (x4, TSOP56)
* SS22P1B: PALCE16V8H (PLCC20, labelled 'SS22P1B') * SS22P1B: PALCE16V8H (PLCC20, labelled 'SS22P1B')
* *
* This PCB is used on: * This PCB is used on:
* Game Software revision * Game Software revision
* ------------------------------- * -------------------------------
* Alpine Racer 2 'ARS2 Ver.B' * Alpine Racer 2 'ARS2 Ver.B'
* *
* Type 4 * Type 4
* SYSTEM SUPER22 MPM(F16X4F) PCB 8646963500 (8646973500) * SYSTEM SUPER22 MPM(F16X4F) PCB 8646963500 (8646973500)
* SYSTEM SUPER22 MPM(F16X4F) PCB 8646963501 (8646973501) <-- very minor? * SYSTEM SUPER22 MPM(F16X4F) PCB 8646963501 (8646973501) <-- very minor?
@ -432,14 +432,14 @@
* That pin traces to pin 6 (OUTPUT Y) of a 74F08 at 15F on the CPU board * That pin traces to pin 6 (OUTPUT Y) of a 74F08 at 15F on the CPU board
* Pins 4 (INPUT A) & 5 (INPUT B) of the 74F08 at 15F trace to Namco custom * Pins 4 (INPUT A) & 5 (INPUT B) of the 74F08 at 15F trace to Namco custom
* IC C383 pins 53 (A INPUT) & 52 (B INPUT) * IC C383 pins 53 (A INPUT) & 52 (B INPUT)
* *
* This PCB is used on: * This PCB is used on:
* Game Software revision * Game Software revision
* -------------------------------- * --------------------------------
* Alpine Surfer 'AF2 Ver.A' note: with PAL modification and using 8646963500 PCB * Alpine Surfer 'AF2 Ver.A' note: with PAL modification and using 8646963500 PCB
* Alpine Racer 2 'ARS2 Ver.A' note: without PAL modification and using 8646963501 PCB * Alpine Racer 2 'ARS2 Ver.A' note: without PAL modification and using 8646963501 PCB
* *
* *
* Auxillary PCB (connector JC410 on the CPU PCB is used only for Time Crisis) * Auxillary PCB (connector JC410 on the CPU PCB is used only for Time Crisis)
* ------------- * -------------
* V159 GUN POINT PCB 244790102 (2447970102) * V159 GUN POINT PCB 244790102 (2447970102)
@ -466,8 +466,8 @@
* J1 : Connector joining Gun PCB to a connector on the metal box (which joins to the gun interface PCB in the * J1 : Connector joining Gun PCB to a connector on the metal box (which joins to the gun interface PCB in the
* cab which supplies 24V for the solenoid in the guns) * cab which supplies 24V for the solenoid in the guns)
* J2 : Connector joining to the CPU PCB (to JC410) * J2 : Connector joining to the CPU PCB (to JC410)
* *
* *
* DSP PCB * DSP PCB
* ------- * -------
* SYSTEM SUPER22 DSP PCB 8646960302 (8646970302) * SYSTEM SUPER22 DSP PCB 8646960302 (8646970302)
@ -502,7 +502,7 @@
* | |-----| |---------| | * | |-----| |---------| |
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
* (logic chips omitted from the PCB layout) * (logic chips omitted from the PCB layout)
* *
* Notes: * Notes:
* JD3 : Custom Namco connector joining this PCB to the MROM PCB with a special flat cable known as a * JD3 : Custom Namco connector joining this PCB to the MROM PCB with a special flat cable known as a
* 'DHD harness' * 'DHD harness'
@ -524,8 +524,8 @@
* SS22D4B : PALCE 16V8H (PLCC20, labelled 'SS22D4B') * SS22D4B : PALCE 16V8H (PLCC20, labelled 'SS22D4B')
* SS22D5 : PALCE 16V8H (PLCC20, labelled 'SS22D5') * SS22D5 : PALCE 16V8H (PLCC20, labelled 'SS22D5')
* LEDS : 8 red LEDs flash (in various pretty patterns) when the DSP PCB is active. * LEDS : 8 red LEDs flash (in various pretty patterns) when the DSP PCB is active.
* *
* *
* ROM PCB (type 1) * ROM PCB (type 1)
* ------- * -------
* SYSTEM SUPER22 MROM PCB 8646960400 (8646970400) * SYSTEM SUPER22 MROM PCB 8646960400 (8646970400)
@ -560,11 +560,11 @@
* | SCG6.1L SCG6.1F | * | SCG6.1L SCG6.1F |
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
* (logic chips omitted from the PCB layout) * (logic chips omitted from the PCB layout)
* *
* Notes: * Notes:
* Namco SS22 MROM PCBs have 2 identical sets of CG*, SCG* and CCR-L/CCR-H ROMs on the PCB. * Namco SS22 MROM PCBs have 2 identical sets of CG*, SCG* and CCR-L/CCR-H ROMs on the PCB.
* The Japanese region code '1' is appended to all game codes on all MROMs. * The Japanese region code '1' is appended to all game codes on all MROMs.
* *
* JR3, JR4 : Custom Namco connector joining this PCB to the VIDEO & DSP PCBs with a special flat cable known * JR3, JR4 : Custom Namco connector joining this PCB to the VIDEO & DSP PCBs with a special flat cable known
* as a 'DHD harness' * as a 'DHD harness'
* SS22M1 : PALCE 16V8H (PLCC20, labelled 'SS22M1') * SS22M1 : PALCE 16V8H (PLCC20, labelled 'SS22M1')
@ -576,7 +576,7 @@
* JP7, JP8, JP9: Jumpers to configure SCG* ROMs. Hardwired to '16M' on the PCB. Alt. setting '32M' * JP7, JP8, JP9: Jumpers to configure SCG* ROMs. Hardwired to '16M' on the PCB. Alt. setting '32M'
* JP10, JP11, JP12: Jumpers to configure SCG* ROMs. Hardwired to '16M' on the PCB. Alt. setting '32M' * JP10, JP11, JP12: Jumpers to configure SCG* ROMs. Hardwired to '16M' on the PCB. Alt. setting '32M'
* JP13 : Jumper to configure PTR* ROMs. Hardwired to '4M' on the PCB. Alt. setting '8M' * JP13 : Jumper to configure PTR* ROMs. Hardwired to '4M' on the PCB. Alt. setting '8M'
* *
* Game ROMs populated * Game ROMs populated
* --------------------------------------------------------- * ---------------------------------------------------------
* Air Combat 22 ACS1CCRH.5B, ACS1CCRH.1D 4M SOP32 * Air Combat 22 ACS1CCRH.5B, ACS1CCRH.1D 4M SOP32
@ -603,7 +603,7 @@
* ACS1PTRL1.16K " * ACS1PTRL1.16K "
* ACS1PTRL2.15K " * ACS1PTRL2.15K "
* ACS1PTRL3.14K " * ACS1PTRL3.14K "
* *
* Alpine Racer 1 AR1CCRH.5B, AR1CCRH.1D 4M SOP32 * Alpine Racer 1 AR1CCRH.5B, AR1CCRH.1D 4M SOP32
* AR1CCRL.7B, AR1CCRL.3D 16M SOP44 * AR1CCRL.7B, AR1CCRL.3D 16M SOP44
* AR1CG0.12B, AR1CG0.8D " * AR1CG0.12B, AR1CG0.8D "
@ -628,7 +628,7 @@
* AR1PTRL1.16K " * AR1PTRL1.16K "
* AR1PTRL2.15K " * AR1PTRL2.15K "
* AR1PTRL3.14K " * AR1PTRL3.14K "
* *
* Alpine Racer 2 ARS1CCRH.5B, ARS1CCRH.1D 4M SOP32 * Alpine Racer 2 ARS1CCRH.5B, ARS1CCRH.1D 4M SOP32
* ARS1CCRL.7B, ARS1CCRL.3D 16M SOP44 * ARS1CCRL.7B, ARS1CCRL.3D 16M SOP44
* ARS1CG0.12B, ARS1CG0.8D " * ARS1CG0.12B, ARS1CG0.8D "
@ -650,7 +650,7 @@
* ARS1PTRL1.16K " * ARS1PTRL1.16K "
* ARS1PTRL2.15K " * ARS1PTRL2.15K "
* ARS1PTRL3.14K " * ARS1PTRL3.14K "
* *
* Alpine Surfer AF1CCRH.5B, AF1CCRH.1D 4M SOP32 * Alpine Surfer AF1CCRH.5B, AF1CCRH.1D 4M SOP32
* AF1CCRL.7B, AF1CCRL.3D 16M SOP44 * AF1CCRL.7B, AF1CCRL.3D 16M SOP44
* AF1CG0.12B, AF1CG0.8D " * AF1CG0.12B, AF1CG0.8D "
@ -665,7 +665,7 @@
* AF1PTRM1.16J " * AF1PTRM1.16J "
* AF1PTRL0.18K " * AF1PTRL0.18K "
* AF1PTRL1.16K " * AF1PTRL1.16K "
* *
* Aqua Jet AJ1CCRH.5B, AJ1CCRH.1D 4M SOP32 * Aqua Jet AJ1CCRH.5B, AJ1CCRH.1D 4M SOP32
* AJ1CCRL.7B, AJ1CCRL.3D 16M SOP44 * AJ1CCRL.7B, AJ1CCRL.3D 16M SOP44
* AJ1CG0.12B, AJ1CG0.8D " * AJ1CG0.12B, AJ1CG0.8D "
@ -691,7 +691,7 @@
* AJ1PTRL1.16K " * AJ1PTRL1.16K "
* AJ1PTRL2.15K " * AJ1PTRL2.15K "
* AJ1PTRL3.14K " * AJ1PTRL3.14K "
* *
* Cyber Cycles CB1CCRH.5B, CB1CCRH.1D 4M SOP32 * Cyber Cycles CB1CCRH.5B, CB1CCRH.1D 4M SOP32
* CB1CCRL.7B, CB1CCRL.3D 16M SOP44 * CB1CCRL.7B, CB1CCRL.3D 16M SOP44
* CB1CG0.12B, CB1CG0.8D " * CB1CG0.12B, CB1CG0.8D "
@ -715,7 +715,7 @@
* CB1PTRL1.16K " * CB1PTRL1.16K "
* CB1PTRL2.15K " * CB1PTRL2.15K "
* CB1PTRL3.14K " * CB1PTRL3.14K "
* *
* Dirt Dash DT1CCRH.5B, DT1CCRH.1D 4M SOP32 * Dirt Dash DT1CCRH.5B, DT1CCRH.1D 4M SOP32
* DT1CCRL.7B, DT1CCRL.3D 16M SOP44 * DT1CCRL.7B, DT1CCRL.3D 16M SOP44
* DT1CG0.12B, DT1CG0.8D " * DT1CG0.12B, DT1CG0.8D "
@ -740,7 +740,7 @@
* DT1PTRL1.16K " * DT1PTRL1.16K "
* DT1PTRL2.15K " * DT1PTRL2.15K "
* DT1PTRL3.14K " * DT1PTRL3.14K "
* *
* Prop Cycle PR1CCRH.5B, PR1CCRH.1D 4M SOP32 * Prop Cycle PR1CCRH.5B, PR1CCRH.1D 4M SOP32
* PR1CCRL.7B, PR1CCRL.3D 16M SOP44 * PR1CCRL.7B, PR1CCRL.3D 16M SOP44
* PR1CG0.12B, PR1CG0.8D " * PR1CG0.12B, PR1CG0.8D "
@ -762,7 +762,7 @@
* PR1PTRL0.18K " * PR1PTRL0.18K "
* PR1PTRL1.16K " * PR1PTRL1.16K "
* PR1PTRL2.15K " * PR1PTRL2.15K "
* *
* Time Crisis TS1CCRH.5B, TS1CCRH.1D 4M SOP32 * Time Crisis TS1CCRH.5B, TS1CCRH.1D 4M SOP32
* TS1CCRL.7B, TS1CCRL.3D 16M SOP44 * TS1CCRL.7B, TS1CCRL.3D 16M SOP44
* TS1CG0.12B, TS1CG0.8D " * TS1CG0.12B, TS1CG0.8D "
@ -788,7 +788,7 @@
* TS1PTRL0.18K " * TS1PTRL0.18K "
* TS1PTRL1.16K " * TS1PTRL1.16K "
* TS1PTRL2.15K " * TS1PTRL2.15K "
* *
* Tokyo Wars TW1CCRH.5B, TW1CCRH.1D 4M SOP32 * Tokyo Wars TW1CCRH.5B, TW1CCRH.1D 4M SOP32
* TW1CCRL.7B, TW1CCRL.3D 16M SOP44 * TW1CCRL.7B, TW1CCRL.3D 16M SOP44
* TW1CG0.12B, TW1CG0.8D " * TW1CG0.12B, TW1CG0.8D "
@ -815,8 +815,8 @@
* TW1PTRL1.16K " * TW1PTRL1.16K "
* TW1PTRL2.15K " * TW1PTRL2.15K "
* TW1PTRL3.14K " * TW1PTRL3.14K "
* *
* *
* ROM PCB (type 2) * ROM PCB (type 2)
* ------- * -------
* SS22DS FLASH PCB 8650961300 (8650971300) * SS22DS FLASH PCB 8650961300 (8650971300)
@ -851,10 +851,10 @@
* | SS22DSF2 F1L F1M F1J F1E | * | SS22DSF2 F1L F1M F1J F1E |
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
* (logic chips omitted from the PCB layout) * (logic chips omitted from the PCB layout)
* *
* Notes: * Notes:
* Namco SS22 FLASH PCBs have 2 identical sets of CG*, SCG* and CCR-L/CCR-H ROMs on the PCB. * Namco SS22 FLASH PCBs have 2 identical sets of CG*, SCG* and CCR-L/CCR-H ROMs on the PCB.
* *
* JR3, JR4 : Custom Namco connector joining this PCB to the VIDEO & DSP PCBs with a special flat cable known * JR3, JR4 : Custom Namco connector joining this PCB to the VIDEO & DSP PCBs with a special flat cable known
* as a 'DHD harness' * as a 'DHD harness'
* EPMXXXX : Altera EPM??? (PLCC84, unknown chip model, possibly EPM7064, sticker on top of it blocking ID markings) * EPMXXXX : Altera EPM??? (PLCC84, unknown chip model, possibly EPM7064, sticker on top of it blocking ID markings)
@ -863,30 +863,30 @@
* SS22DSF3 : EPM7032 (x2, PLCC44, labelled 'SS22DSF3') * SS22DSF3 : EPM7032 (x2, PLCC44, labelled 'SS22DSF3')
* SS22DSF2 : EPM7032 (x2, PLCC44, labelled 'SS22DSF2') * SS22DSF2 : EPM7032 (x2, PLCC44, labelled 'SS22DSF2')
* HM628128 : Hitachi HM628128 128k x8 SRAM (TSOP32) * HM628128 : Hitachi HM628128 128k x8 SRAM (TSOP32)
* *
* Game ROMs populated (All Intel E28F016SA TSOP56 16M FlashROMs) * Game ROMs populated (All Intel E28F016SA TSOP56 16M FlashROMs)
* ----------------------------------------------------------------- * -----------------------------------------------------------------
* Armidillo Racing F1E, F1J, F2E, F2J - CCRL/CCRH ROMs * Armidillo Racing F1E, F1J, F2E, F2J - CCRL/CCRH ROMs
* *
* F4E, F4J, F5E, F5J, F6E, F6J, \ * F4E, F4J, F5E, F5J, F6E, F6J, \
* F7E, F7J, F8E, F8J, F9E, F9J, \ CGx ROMs * F7E, F7J, F8E, F8J, F9E, F9J, \ CGx ROMs
* F11E, F11J, F12E, F12J / * F11E, F11J, F12E, F12J /
* *
* F1L, F1M, F3L, F3M, F5L, F5M, \ * F1L, F1M, F3L, F3M, F5L, F5M, \
* F7L, F7M / SCGx ROMs * F7L, F7M / SCGx ROMs
* *
* F9L, F11L, F12L, F13L, \ * F9L, F11L, F12L, F13L, \
* F12M, F13M / PTR ROMs * F12M, F13M / PTR ROMs
* *
* *
* VIDEO PCB * VIDEO PCB
* --------- * ---------
* 1st Revision * 1st Revision
* SYSTEM SUPER22 VIDEO 8646960204 (8646970204) * SYSTEM SUPER22 VIDEO 8646960204 (8646970204)
* *
* 2nd Revision * 2nd Revision
* SYSTEM SUPER22 VIDEO(B) 8646961200 (8646971200) * SYSTEM SUPER22 VIDEO(B) 8646961200 (8646971200)
* *
* 3rd Revision (PCB layout shown below) * 3rd Revision (PCB layout shown below)
* SYSTEM SUPER22 VIDEO(C) 8646962700 (8646972700) * SYSTEM SUPER22 VIDEO(C) 8646962700 (8646972700)
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
@ -920,7 +920,7 @@
* | |---------| |---------| N341256 CXD1178Q | * | |---------| |---------| N341256 CXD1178Q |
* |--------------------------------------------------------------| * |--------------------------------------------------------------|
* (logic chips omitted from the PCB layout) * (logic chips omitted from the PCB layout)
* *
* Notes: * Notes:
* JV3 : Custom Namco connector joining this PCB to the MROM PCB with a special flat cable known * JV3 : Custom Namco connector joining this PCB to the MROM PCB with a special flat cable known
* as a 'DHD harness' * as a 'DHD harness'
@ -949,16 +949,16 @@
* video faults on Namco Super System 22 PCBs. * video faults on Namco Super System 22 PCBs.
* (Second reason for video faults is generally attributed * (Second reason for video faults is generally attributed
* to failure of RAM on this PCB and/or the DSP PCB) * to failure of RAM on this PCB and/or the DSP PCB)
* *
* *
* Motherboard PCB * Motherboard PCB
* --------------- * ---------------
* 1st Revision * 1st Revision
* SYSTEM SUPER22 MOTHER PCB 8646960602 (8646970602) * SYSTEM SUPER22 MOTHER PCB 8646960602 (8646970602)
* *
* 2nd Revision * 2nd Revision
* SYSTEM SUPER22 MOTHER(B) PCB (number not known) * SYSTEM SUPER22 MOTHER(B) PCB (number not known)
* *
* 3rd Revision * 3rd Revision
* SYSTEM SUPER22 MOTHER(C) PCB 8646960602 (8646970602) * SYSTEM SUPER22 MOTHER(C) PCB 8646960602 (8646970602)
* |------------------------------------------------------------------| * |------------------------------------------------------------------|
@ -981,12 +981,12 @@
* Notes: * Notes:
* IC1 : LB1233 (DIP8) * IC1 : LB1233 (DIP8)
* IC2, IC3: LB1235 (DIP8) * IC2, IC3: LB1235 (DIP8)
* *
* JC1, JC2: Connectors to plug in CPU PCB * JC1, JC2: Connectors to plug in CPU PCB
* JD1, JD2: Connectors to plug in DSP PCB * JD1, JD2: Connectors to plug in DSP PCB
* JR1 : Connector to plug in MROM PCB * JR1 : Connector to plug in MROM PCB
* JV1, JV2: Connectors to plug in VIDEO PCB * JV1, JV2: Connectors to plug in VIDEO PCB
* *
* J1 : 9 pin power input socket Pin Use * J1 : 9 pin power input socket Pin Use
* ----------- * -----------
* 1 +5V * 1 +5V
@ -998,7 +998,7 @@
* 7 Ground * 7 Ground
* 8 NC * 8 NC
* 9 +12V * 9 +12V
* *
* J2 : 9 pin link connector Pin Use * J2 : 9 pin link connector Pin Use
* -------------- * --------------
* 1 Ring In+ * 1 Ring In+
@ -1010,7 +1010,7 @@
* 7 /TXD (NC) * 7 /TXD (NC)
* 8 GND (NC) * 8 GND (NC)
* 9 +5V (NC) * 9 +5V (NC)
* *
* J3 : 9 pin socket Pin Use * J3 : 9 pin socket Pin Use
* ------------------- * -------------------
* 1 Service Credit * 1 Service Credit
@ -1022,7 +1022,7 @@
* 7 Ground * 7 Ground
* 8 Coin Sw * 8 Coin Sw
* 9 NC * 9 NC
* *
* J4 : 8 pin connector Pin Use * J4 : 8 pin connector Pin Use
* ------------------------------------- * -------------------------------------
* 1 Start * 1 Start
@ -1033,7 +1033,7 @@
* 6 NC * 6 NC
* 7 Ground * 7 Ground
* 8 Ground * 8 Ground
* *
* J5 : 15 pin socket Pin Use * J5 : 15 pin socket Pin Use
* --------------- * ---------------
* 1 Relay1 * 1 Relay1
@ -1051,7 +1051,7 @@
* 13 +12V * 13 +12V
* 14 +5V * 14 +5V
* 15 NC * 15 NC
* *
* J6 : 12 pin audio output connector Pin Use * J6 : 12 pin audio output connector Pin Use
* ---------- * ----------
* 1 SPKL+ * 1 SPKL+
@ -1066,7 +1066,7 @@
* 10 NC * 10 NC
* 11 NC * 11 NC
* 12 NC * 12 NC
* *
* J7 : 12 pin analog controls socket Pin Use * J7 : 12 pin analog controls socket Pin Use
* --------------------------- * ---------------------------
* 1 +5V * 1 +5V
@ -1081,9 +1081,9 @@
* 10 NC * 10 NC
* 11 NC * 11 NC
* 12 NC * 12 NC
* *
* J8 : 10 pin connector (not used?) * J8 : 10 pin connector (not used?)
* *
* J9 : 6 pin video output socket Pin Use * J9 : 6 pin video output socket Pin Use
* --------- * ---------
* 1 Red * 1 Red
@ -1092,10 +1092,10 @@
* 4 Composite Sync (VSync 15kHz interlaced) * 4 Composite Sync (VSync 15kHz interlaced)
* 5 Ground * 5 Ground
* 6 NC * 6 NC
* *
* J10: 16 pin flat cable connector (only populated on Mother(C) PCB, use not known) * J10: 16 pin flat cable connector (only populated on Mother(C) PCB, use not known)
* *
* *
* AMP PCB * AMP PCB
* ------- * -------
* SYSTEM SUPER22 AMP(4) PCB 8647960100 (8647970100) (sticker 'AMP(2) PCB 8647961100') * SYSTEM SUPER22 AMP(4) PCB 8647960100 (8647970100) (sticker 'AMP(2) PCB 8647961100')
@ -1110,14 +1110,14 @@
* 1 +12V * 1 +12V
* 2 Ground * 2 Ground
* 3 NC * 3 NC
* *
* J2 : 4 pin dual speaker output socket Pin Use * J2 : 4 pin dual speaker output socket Pin Use
* --------- * ---------
* 1 SP1+ * 1 SP1+
* 2 SP1- * 2 SP1-
* 3 SP2+ * 3 SP2+
* 4 SP2- * 4 SP2-
* *
* J3 : 8 pin sound data input connector from Mother PCB J6 Pin Use * J3 : 8 pin sound data input connector from Mother PCB J6 Pin Use
* ---------- * ----------
* 1 SPKL+ * 1 SPKL+
@ -1128,7 +1128,7 @@
* 6 NC * 6 NC
* 7 NC * 7 NC
* 8 NC * 8 NC
* *
* *1 : Unpopulated position for a 2nd LA4705 Power Amp * *1 : Unpopulated position for a 2nd LA4705 Power Amp
* *2 : J4 - Unpopulated position for another 4 pin dual speaker output socket * *2 : J4 - Unpopulated position for another 4 pin dual speaker output socket
* J5 : 2 pin connector used for sound mute Pin Use * J5 : 2 pin connector used for sound mute Pin Use
@ -4659,9 +4659,9 @@ ROM_START( dirtdash )
ROM_LOAD( "dt1scg1.10f", 0x200000, 0x200000, CRC(f9ac8111) SHA1(814074ae8cc81c6c1201d764a84dd95fe914f19c) ) ROM_LOAD( "dt1scg1.10f", 0x200000, 0x200000, CRC(f9ac8111) SHA1(814074ae8cc81c6c1201d764a84dd95fe914f19c) )
ROM_REGION( 0x200000*8, "textile", 0) /* 16x16x8bpp texture tiles */ ROM_REGION( 0x200000*8, "textile", 0) /* 16x16x8bpp texture tiles */
ROM_LOAD( "dt1cg0.8d", 0x000000, 0x200000, CRC(10ab95e0) SHA1(ffde1f00ac3e82a36fbcfa060c6b97c92dfcfc8b) ) ROM_LOAD( "dt1cg0.8d", 0x000000, 0x200000, CRC(10ab95e0) SHA1(ffde1f00ac3e82a36fbcfa060c6b97c92dfcfc8b) )
ROM_LOAD( "dt1cg1.10d", 0x200000, 0x200000, CRC(d9f1ba53) SHA1(5a1095b726c55001cc1d4c695adc38097e6a0201) ) ROM_LOAD( "dt1cg1.10d", 0x200000, 0x200000, CRC(d9f1ba53) SHA1(5a1095b726c55001cc1d4c695adc38097e6a0201) )
ROM_LOAD( "dt1cg2.12d", 0x400000, 0x200000, CRC(bd8b1e0b) SHA1(fcd94e33a0cbd17c9308cb8952e3c618ab56f9fc) ) ROM_LOAD( "dt1cg2.12d", 0x400000, 0x200000, CRC(bd8b1e0b) SHA1(fcd94e33a0cbd17c9308cb8952e3c618ab56f9fc) )
ROM_LOAD( "dt1cg3.13d", 0x600000, 0x200000, CRC(ba960663) SHA1(e98149bc4652ea7933ac47d760a6f7e6489f15e2) ) ROM_LOAD( "dt1cg3.13d", 0x600000, 0x200000, CRC(ba960663) SHA1(e98149bc4652ea7933ac47d760a6f7e6489f15e2) )
ROM_LOAD( "dt1cg4.14d", 0x800000, 0x200000, CRC(424b9652) SHA1(fa8865110db03559740c4e633e123d1a009782c4) ) ROM_LOAD( "dt1cg4.14d", 0x800000, 0x200000, CRC(424b9652) SHA1(fa8865110db03559740c4e633e123d1a009782c4) )
ROM_LOAD( "dt1cg5.16d", 0xa00000, 0x200000, CRC(29516626) SHA1(1f12c5dc3975b88dc60d87d0409bf311837e9fa4) ) ROM_LOAD( "dt1cg5.16d", 0xa00000, 0x200000, CRC(29516626) SHA1(1f12c5dc3975b88dc60d87d0409bf311837e9fa4) )
@ -4669,8 +4669,8 @@ ROM_START( dirtdash )
ROM_LOAD( "dt1cg7.19d", 0xe00000, 0x200000, CRC(2ca19153) SHA1(c82403c8b40bf85daedf610b1bc7bfea9dfc6206) ) ROM_LOAD( "dt1cg7.19d", 0xe00000, 0x200000, CRC(2ca19153) SHA1(c82403c8b40bf85daedf610b1bc7bfea9dfc6206) )
ROM_REGION16_LE( 0x280000, "textilemap", 0 ) /* texture tilemap */ ROM_REGION16_LE( 0x280000, "textilemap", 0 ) /* texture tilemap */
ROM_LOAD( "dt1ccrl.3d", 0x000000, 0x200000, CRC(e536b313) SHA1(7357da993d2bb3fcc8c1c2feb53689ad368cd80a) ) ROM_LOAD( "dt1ccrl.3d", 0x000000, 0x200000, CRC(e536b313) SHA1(7357da993d2bb3fcc8c1c2feb53689ad368cd80a) )
ROM_LOAD( "dt1ccrh.1d", 0x200000, 0x080000, CRC(af257064) SHA1(0da561d9f8824618c00209ccef6146e9f3ad72bb) ) ROM_LOAD( "dt1ccrh.1d", 0x200000, 0x080000, CRC(af257064) SHA1(0da561d9f8824618c00209ccef6146e9f3ad72bb) )
ROM_REGION( 0x600000, "pointrom", 0 ) /* 3d model data */ ROM_REGION( 0x600000, "pointrom", 0 ) /* 3d model data */
ROM_LOAD( "dt1ptrl0.18k", 0x000000, 0x080000, CRC(4e0cac3a) SHA1(c2778e9e93be2de729c6f118caf62ac9f48efbb0) ) ROM_LOAD( "dt1ptrl0.18k", 0x000000, 0x080000, CRC(4e0cac3a) SHA1(c2778e9e93be2de729c6f118caf62ac9f48efbb0) )
@ -5777,7 +5777,7 @@ GAME( 1995, airco22b, 0, namcos22s, airco22, airco22, ROT0, "Namco", "A
GAME( 1995, alpinerd, 0, namcos22s, alpiner, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.D)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, alpinerd, 0, namcos22s, alpiner, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.D)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS )
GAME( 1995, alpinerc, alpinerd, namcos22s, alpiner, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.C)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, alpinerc, alpinerd, namcos22s, alpiner, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.C)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS )
GAME( 1995, cybrcycc, 0, namcos22s, cybrcycc, cybrcyc, ROT0, "Namco", "Cyber Cycles (Rev. CB2 Ver.C)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, cybrcycc, 0, namcos22s, cybrcycc, cybrcyc, ROT0, "Namco", "Cyber Cycles (Rev. CB2 Ver.C)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS )
GAME( 1995, dirtdash, 0, namcos22s, aquajet, dirtdash, ROT0, "Namco", "Dirt Dash (Rev. DT2)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING ) GAME( 1995, dirtdash, 0, namcos22s, aquajet, dirtdash, ROT0, "Namco", "Dirt Dash (Rev. DT2)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING )
GAME( 1995, timecris, 0, namcos22s, timecris, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.B)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, timecris, 0, namcos22s, timecris, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.B)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS )
GAME( 1995, timecrisa,timecris, namcos22s, timecris, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.A)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS ) GAME( 1995, timecrisa,timecris, namcos22s, timecris, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.A)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS )
GAME( 1996, alpinr2b, 0, namcos22s, alpiner, alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.B)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS ) GAME( 1996, alpinr2b, 0, namcos22s, alpiner, alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.B)" , GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS )

View File

@ -2416,14 +2416,14 @@ ROM_START( samsho2 ) /* MVS AND AES VERSION */
ROM_END ROM_END
// This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo
ROM_START( samsho2k ) ROM_START( samsho2k )
ROM_REGION( 0x200000, "maincpu", 0 ) ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) ) ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) )
ROM_CONTINUE( 0x000000, 0x100000 ) ROM_CONTINUE( 0x000000, 0x100000 )
// the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program) // the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program)
ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) ) ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) )
ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway! ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway!
NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) ) NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) )
NEO_BIOS_AUDIO_128K( "063-m1.bin", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) NEO_BIOS_AUDIO_128K( "063-m1.bin", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )

View File

@ -493,7 +493,7 @@ struct SNES_PPU_STRUCT /* once all the regs are saved in this structure, it woul
UINT8 bg3_priority_bit; UINT8 bg3_priority_bit;
UINT8 direct_color; UINT8 direct_color;
UINT8 ppu_last_scroll; /* as per Anomie's doc and Theme Park, all scroll regs shares (but mode 7 ones) the same UINT8 ppu_last_scroll; /* as per Anomie's doc and Theme Park, all scroll regs shares (but mode 7 ones) the same
'previous' scroll value */ 'previous' scroll value */
UINT8 mode7_last_scroll; /* as per Anomie's doc mode 7 scroll regs use a different value, shared with mode 7 matrix! */ UINT8 mode7_last_scroll; /* as per Anomie's doc mode 7 scroll regs use a different value, shared with mode 7 matrix! */
UINT8 main_bg_enabled[5]; // these would probably better fit the layer struct, but it would make worse the code in snes_update_mode_X() UINT8 main_bg_enabled[5]; // these would probably better fit the layer struct, but it would make worse the code in snes_update_mode_X()

View File

@ -405,7 +405,7 @@ Blocks marked ** are decrypted and verified
** Block 11 Found Base 0136 - Inline Encryption (size 13) - Mode? 00 Unknown 3f Key (unused?) 53 Length 00fe ** Block 11 Found Base 0136 - Inline Encryption (size 13) - Mode? 00 Unknown 3f Key (unused?) 53 Length 00fe
** Block 12 Found Base 024d - Mode? 02 Unknown 38 Key 00 Length 0050 | just a shift ** Block 12 Found Base 024d - Mode? 02 Unknown 38 Key 00 Length 0050 | just a shift
** Block 13 Found Base 02a3 - Mode? 02 Unknown 6f Key bc Length 09e0 | shift 2 places - (test mode code / data!) ** Block 13 Found Base 02a3 - Mode? 02 Unknown 6f Key bc Length 09e0 | shift 2 places - (test mode code / data!)
** Block 14 Found Base 0c89 - Mode? 03 Unknown 01 Key 31 Length 1880 | just a table ** Block 14 Found Base 0c89 - Mode? 03 Unknown 01 Key 31 Length 1880 | just a table
** Block 15 Found Base 250f - Mode? 02 Unknown 3f Key 24 Length 03b8 | shift 3 places + table, contains GAME OVER, CONTINUE ** Block 15 Found Base 250f - Mode? 02 Unknown 3f Key 24 Length 03b8 | shift 3 places + table, contains GAME OVER, CONTINUE
** Block 16 Found Base 28cd - Mode? 01 Unknown 03 Key 80 Length 018a ** Block 16 Found Base 28cd - Mode? 01 Unknown 03 Key 80 Length 018a
** Block 17 Found Base 2a5d - Mode? 01 Unknown 1f Key 15 Length 018a ** Block 17 Found Base 2a5d - Mode? 01 Unknown 1f Key 15 Length 018a
@ -477,28 +477,28 @@ static UINT8 calc3_key04[64] = {
0x4e,0x7b,0x0e,0x87,0x79,0x3c,0xd1,0x8f,0x8b,0xa4,0x5a,0x61,0x68,0xac,0x87,0x6b, 0x4e,0x7b,0x0e,0x87,0x79,0x3c,0xd1,0x8f,0x8b,0xa4,0x5a,0x61,0x68,0xac,0x87,0x6b,
0xc4,0xc4,0x98,0x36,0xb3,0x75,0x16,0x33,0xf2,0x45,0x84,0xb8,0xf2,0xdb,0xc7,0x46, 0xc4,0xc4,0x98,0x36,0xb3,0x75,0x16,0x33,0xf2,0x45,0x84,0xb8,0xf2,0xdb,0xc7,0x46,
}; };
static UINT8 calc3_key19[64] = { static UINT8 calc3_key19[64] = {
0x30,0x72,0xe0,0xca,0xa4,0xe5,0x41,0x44,0xd4,0xfe,0xe6,0x82,0x3e,0x85,0x18,0x30, 0x30,0x72,0xe0,0xca,0xa4,0xe5,0x41,0x44,0xd4,0xfe,0xe6,0x82,0x3e,0x85,0x18,0x30,
0x50,0x17,0x9f,0x77,0xf8,0xcb,0xb0,0xc4,0xed,0x16,0x96,0xca,0xba,0xec,0x22,0xca, 0x50,0x17,0x9f,0x77,0xf8,0xcb,0xb0,0xc4,0xed,0x16,0x96,0xca,0xba,0xec,0x22,0xca,
0x8f,0x28,0xd3,0x12,0xc6,0x2e,0xc4,0xc3,0x36,0xcf,0x59,0xd8,0x3a,0x6c,0xa7,0x64, 0x8f,0x28,0xd3,0x12,0xc6,0x2e,0xc4,0xc3,0x36,0xcf,0x59,0xd8,0x3a,0x6c,0xa7,0x64,
0x7f,0x5f,0xa6,0x1b,0x90,0x96,0x19,0x14,0x22,0x81,0x38,0xcd,0x20,0x2f,0x22,0x70, 0x7f,0x5f,0xa6,0x1b,0x90,0x96,0x19,0x14,0x22,0x81,0x38,0xcd,0x20,0x2f,0x22,0x70,
}; };
static UINT8 calc3_key24[64] = { static UINT8 calc3_key24[64] = {
0x75,0x49,0x7a,0xd6,0x84,0xbd,0x70,0xbe,0x10,0x19,0x6c,0xb2,0xa9,0x5f,0x6b,0x78, 0x75,0x49,0x7a,0xd6,0x84,0xbd,0x70,0xbe,0x10,0x19,0x6c,0xb2,0xa9,0x5f,0x6b,0x78,
0x14,0x29,0x2a,0x15,0xd0,0x4a,0x10,0x93,0x69,0xb2,0xdf,0x02,0x7f,0x92,0x19,0xbd, 0x14,0x29,0x2a,0x15,0xd0,0x4a,0x10,0x93,0x69,0xb2,0xdf,0x02,0x7f,0x92,0x19,0xbd,
0x95,0xc1,0x32,0xee,0x99,0x5e,0x7a,0x55,0x37,0xb7,0xc8,0x45,0xdc,0x6a,0xe6,0xef, 0x95,0xc1,0x32,0xee,0x99,0x5e,0x7a,0x55,0x37,0xb7,0xc8,0x45,0xdc,0x6a,0xe6,0xef,
0x8b,0xca,0xbe,0xe2,0x63,0x85,0x49,0xd3,0xeb,0x83,0x32,0x9a,0x23,0x11,0x4c,0x7e, 0x8b,0xca,0xbe,0xe2,0x63,0x85,0x49,0xd3,0xeb,0x83,0x32,0x9a,0x23,0x11,0x4c,0x7e,
}; };
static UINT8 calc3_key31[64] = { static UINT8 calc3_key31[64] = {
0x02,0x21,0x0f,0xf2,0x98,0xc6,0xa7,0x51,0xbd,0x50,0xe6,0xc6,0x8d,0x15,0xb4,0xc5, 0x02,0x21,0x0f,0xf2,0x98,0xc6,0xa7,0x51,0xbd,0x50,0xe6,0xc6,0x8d,0x15,0xb4,0xc5,
0x18,0x99,0x78,0x45,0xeb,0xe4,0x09,0xfa,0x5c,0xa4,0x51,0x4f,0x98,0x02,0xc0,0x24, 0x18,0x99,0x78,0x45,0xeb,0xe4,0x09,0xfa,0x5c,0xa4,0x51,0x4f,0x98,0x02,0xc0,0x24,
0x6d,0x44,0x77,0x4b,0xd7,0x26,0x2f,0xc3,0x4c,0xf8,0xee,0xb1,0xc7,0x76,0x68,0x22, 0x6d,0x44,0x77,0x4b,0xd7,0x26,0x2f,0xc3,0x4c,0xf8,0xee,0xb1,0xc7,0x76,0x68,0x22,
0x94,0x6a,0x35,0x82,0xe0,0x02,0xb7,0xda,0xff,0xf2,0xc7,0xcc,0x7b,0x48,0x25,0x4f, 0x94,0x6a,0x35,0x82,0xe0,0x02,0xb7,0xda,0xff,0xf2,0xc7,0xcc,0x7b,0x48,0x25,0x4f,
}; };
static UINT8 calc3_key39[64] = { static UINT8 calc3_key39[64] = {
0x7d,0xf8,0x54,0xc5,0x74,0xf6,0x54,0x1d,0x40,0xe1,0x71,0xc2,0xdd,0x03,0x72,0xdf, 0x7d,0xf8,0x54,0xc5,0x74,0xf6,0x54,0x1d,0x40,0xe1,0x71,0xc2,0xdd,0x03,0x72,0xdf,
0x3b,0x77,0xa1,0x1c,0xc7,0xd6,0xb1,0x67,0xb7,0x13,0x6f,0xf4,0x18,0xa4,0x2a,0x82, 0x3b,0x77,0xa1,0x1c,0xc7,0xd6,0xb1,0x67,0xb7,0x13,0x6f,0xf4,0x18,0xa4,0x2a,0x82,
@ -526,7 +526,7 @@ static UINT8 calc3_keybc[64] = {
0xd5,0xf9,0x42,0x57,0x7a,0xf8,0x30,0x2e,0xea,0x49,0xe5,0xd5,0x34,0x6a,0xcd,0x5b, 0xd5,0xf9,0x42,0x57,0x7a,0xf8,0x30,0x2e,0xea,0x49,0xe5,0xd5,0x34,0x6a,0xcd,0x5b,
0xfa,0x8e,0x71,0x32,0xfa,0x42,0x69,0xec,0x5d,0x50,0x02,0x42,0xc2,0xe4,0xae,0x5a, 0xfa,0x8e,0x71,0x32,0xfa,0x42,0x69,0xec,0x5d,0x50,0x02,0x42,0xc2,0xe4,0xae,0x5a,
}; };
// global so we can use them in the filename when we save out the data (debug..) // global so we can use them in the filename when we save out the data (debug..)
static UINT8 calc3_decryption_key_byte; static UINT8 calc3_decryption_key_byte;
static UINT8 calc3_unknown; static UINT8 calc3_unknown;
@ -546,7 +546,7 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
int isbrap = ( !strcmp(machine->gamedrv->name,"brapboysj") || !strcmp(machine->gamedrv->name,"brapboys")); int isbrap = ( !strcmp(machine->gamedrv->name,"brapboysj") || !strcmp(machine->gamedrv->name,"brapboys"));
numregions = rom[offset+0]; numregions = rom[offset+0];
if (tabnum > numregions) if (tabnum > numregions)
{ {
printf("CALC3 error, requested table > num tables!\n"); printf("CALC3 error, requested table > num tables!\n");
@ -642,7 +642,7 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
0x00, 0x08, 0x4E, 0x75, 0xFF, 0xFF, 0x00, 0x3F, 0xE8, 0xC0, 0x42, 0x00, 0x00, 0x08, 0x4E, 0x75, 0xFF, 0xFF, 0x00, 0x3F, 0xE8, 0xC0, 0x42, 0x00,
0x03, 0xC0, 0x00, 0x00, 0x57, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x03, 0x03 0x03, 0xC0, 0x00, 0x00, 0x57, 0x00, 0x7E, 0x00, 0xFC, 0x00, 0x03, 0x03
}; };
if ( ((i / 19)&1)==0) if ( ((i / 19)&1)==0)
{ {
if (((i%inline_table_size)&1)==1) if (((i%inline_table_size)&1)==1)
@ -651,7 +651,7 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
dat = rom[offset+i]; dat = rom[offset+i];
//printf("%02x, ",inlinet); //printf("%02x, ",inlinet);
dat -= inlinet; dat -= inlinet;
dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5); dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5);
if (dat != rawData[i]) printf("ERROR %d x %02x %02x\n", (i / 19)&1, dat, rawData[i]); if (dat != rawData[i]) printf("ERROR %d x %02x %02x\n", (i / 19)&1, dat, rawData[i]);
} }
@ -663,11 +663,11 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
dat -= inlinet; dat -= inlinet;
dat -= extra[(i%inline_table_size)>>1]; dat -= extra[(i%inline_table_size)>>1];
dat = BITSWAP8(dat, 2,1,0,7,6,5,4,3); dat = BITSWAP8(dat, 2,1,0,7,6,5,4,3);
if (dat != rawData[i]) printf("ERROR %d y %02x %02x\n", (i / 19)&1, dat, rawData[i]); if (dat != rawData[i]) printf("ERROR %d y %02x %02x\n", (i / 19)&1, dat, rawData[i]);
//dat = rawData[i]; //dat = rawData[i];
} }
} }
else else
@ -677,22 +677,22 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
UINT8 inlinet = rom[inline_table_base + (i%inline_table_size)]; UINT8 inlinet = rom[inline_table_base + (i%inline_table_size)];
dat = rom[offset+i]; dat = rom[offset+i];
dat -= inlinet; dat -= inlinet;
dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5); dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5);
if (dat != rawData[i]) printf("ERROR %d x %02x %02x\n", (i / 19)&1, dat, rawData[i]); if (dat != rawData[i]) printf("ERROR %d x %02x %02x\n", (i / 19)&1, dat, rawData[i]);
} }
else else
{ {
// shhould probably use the inline table somehow? // shhould probably use the inline table somehow?
UINT8 extra[] = { 0x2f, 0x04, 0xd1, 0x69, 0xad, 0xeb, 0x10, 0x95,0xb0 };; UINT8 extra[] = { 0x2f, 0x04, 0xd1, 0x69, 0xad, 0xeb, 0x10, 0x95,0xb0 };;
dat = rom[offset+i]; dat = rom[offset+i];
dat -= extra[(i%inline_table_size)>>1]; dat -= extra[(i%inline_table_size)>>1];
dat = BITSWAP8(dat, 2,1,0,7,6,5,4,3); dat = BITSWAP8(dat, 2,1,0,7,6,5,4,3);
if (dat != rawData[i]) printf("ERROR %d y %02x %02x\n", (i / 19)&1, dat, rawData[i]); if (dat != rawData[i]) printf("ERROR %d y %02x %02x\n", (i / 19)&1, dat, rawData[i]);
} }
} }
} }
else if (tabnum==0x40) // fjbuster / shogun warriors japanese character select (what enables this extra?) else if (tabnum==0x40) // fjbuster / shogun warriors japanese character select (what enables this extra?)
@ -701,7 +701,7 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
dat = rom[offset+i]; dat = rom[offset+i];
//printf("%02x, ",inlinet); //printf("%02x, ",inlinet);
dat -= inlinet; dat -= inlinet;
// note the original, table is an odd number of words, so we can't just check if i is odd / even because the additional overlay // note the original, table is an odd number of words, so we can't just check if i is odd / even because the additional overlay
// is relative to the start of the original table, and has a size of 0x11 (17) bytes which loop. // is relative to the start of the original table, and has a size of 0x11 (17) bytes which loop.
if (((i%inline_table_size)&1)==0) if (((i%inline_table_size)&1)==0)
@ -733,10 +733,10 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
if (calc3_decryption_key_byte == 0x17) key = calc3_key17; if (calc3_decryption_key_byte == 0x17) key = calc3_key17;
if (calc3_decryption_key_byte == 0x19) key = calc3_key19; if (calc3_decryption_key_byte == 0x19) key = calc3_key19;
if (calc3_decryption_key_byte == 0x24) key = calc3_key24; if (calc3_decryption_key_byte == 0x24) key = calc3_key24;
if (calc3_decryption_key_byte == 0x31) key = calc3_key31; if (calc3_decryption_key_byte == 0x31) key = calc3_key31;
if (calc3_decryption_key_byte == 0x39) key = calc3_key39; if (calc3_decryption_key_byte == 0x39) key = calc3_key39;
if (calc3_decryption_key_byte == 0x80) key = calc3_key80; if (calc3_decryption_key_byte == 0x80) key = calc3_key80;
if (calc3_decryption_key_byte == 0x89) key = calc3_key89; if (calc3_decryption_key_byte == 0x89) key = calc3_key89;
if (calc3_decryption_key_byte == 0xbc) key = calc3_keybc; if (calc3_decryption_key_byte == 0xbc) key = calc3_keybc;
@ -748,15 +748,15 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
if (tabnum==0x12 && isbrap) if (tabnum==0x12 && isbrap)
{ {
dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5); dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5);
} }
else if (tabnum==0x13 && isbrap) else if (tabnum==0x13 && isbrap)
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
if ((i&1)==0) dat = BITSWAP8(dat, 5,4,3,2,1,0,7,6); if ((i&1)==0) dat = BITSWAP8(dat, 5,4,3,2,1,0,7,6);
else dat = BITSWAP8(dat, 1,0,7,6,5,4,3,2); else dat = BITSWAP8(dat, 1,0,7,6,5,4,3,2);
} }
else if (tabnum==0x14 && isbrap) else if (tabnum==0x14 && isbrap)
{ {
@ -765,11 +765,11 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
else if (tabnum==0x15 && isbrap) else if (tabnum==0x15 && isbrap)
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
if ((i&1)==0) dat = BITSWAP8(dat, 2,1,0,7,6,5,4,3); if ((i&1)==0) dat = BITSWAP8(dat, 2,1,0,7,6,5,4,3);
else dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5); else dat = BITSWAP8(dat, 4,3,2,1,0,7,6,5);
//error 264 35 36 (typo, ignore) //error 264 35 36 (typo, ignore)
} }
else if (tabnum==0x16 && isbrap) else if (tabnum==0x16 && isbrap)
{ {
@ -777,14 +777,14 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
// error 1 02 should be 00 (the usual) // error 1 02 should be 00 (the usual)
} }
else if (tabnum==0x17 && isbrap) else if (tabnum==0x17 && isbrap)
{ {
// note we've seen this key (0x15) before, but again, here we have to add sometimes.. obviously a bit to control this.. // note we've seen this key (0x15) before, but again, here we have to add sometimes.. obviously a bit to control this..
if ((i&1)==0) dat += key[i&0x3f]; if ((i&1)==0) dat += key[i&0x3f];
else dat -= key[i&0x3f]; else dat -= key[i&0x3f];
if ((i&1)==0) dat = BITSWAP8(dat, 0,7,6,5,4,3,2,1); if ((i&1)==0) dat = BITSWAP8(dat, 0,7,6,5,4,3,2,1);
else dat = BITSWAP8(dat, 6,5,4,3,2,1,0,7); else dat = BITSWAP8(dat, 6,5,4,3,2,1,0,7);
//error 1 02 should be 00 (the usual) //error 1 02 should be 00 (the usual)
//error 390 02 should be 00 (typo, ignore) //error 390 02 should be 00 (typo, ignore)
//error 391 c6 should be 2c (typo, ignore) //error 391 c6 should be 2c (typo, ignore)
@ -792,70 +792,70 @@ int calc3_decompress_table(running_machine* machine, int tabnum, UINT8* dstram,
//error 393 60 should be 36 (typo, ignore) //error 393 60 should be 36 (typo, ignore)
} }
else if (tabnum==0x19 && isbrap) else if (tabnum==0x19 && isbrap)
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
// first 2 bytes were 00 in the returned data.. // first 2 bytes were 00 in the returned data..
//if (i==1) dat=0x00; //if (i==1) dat=0x00;
} }
else if (tabnum==0x1f && isbrap) else if (tabnum==0x1f && isbrap)
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
if ((i&1)==0) dat = BITSWAP8(dat, 0,7,6,5,4,3,2,1); if ((i&1)==0) dat = BITSWAP8(dat, 0,7,6,5,4,3,2,1);
else dat = BITSWAP8(dat, 6,5,4,3,2,1,0,7); else dat = BITSWAP8(dat, 6,5,4,3,2,1,0,7);
} }
else if (tabnum==0x22 && isbrap) else if (tabnum==0x22 && isbrap)
{ {
#if 0 #if 0
{ {
UINT8 test; UINT8 test;
UINT8 xxx; UINT8 xxx;
if ((i&1)==1) xxx = BITSWAP8(rawData[i], 0,7,6,5,4,3,2,1); if ((i&1)==1) xxx = BITSWAP8(rawData[i], 0,7,6,5,4,3,2,1);
else xxx = BITSWAP8(rawData[i], 6,5,4,3,2,1,0,7); else xxx = BITSWAP8(rawData[i], 6,5,4,3,2,1,0,7);
test= dat-xxx; test= dat-xxx;
printf("%02x,%02x,%02x ",dat, rawData[i], test); printf("%02x,%02x,%02x ",dat, rawData[i], test);
if ((i%0x40)==0x3f) if ((i%0x40)==0x3f)
printf("\n"); printf("\n");
//if (dat!=rawData[i]) printf("error %d %02x should be %02x\n",i, dat, rawData[i]); //if (dat!=rawData[i]) printf("error %d %02x should be %02x\n",i, dat, rawData[i]);
} }
#endif #endif
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
if ((i&1)==0) dat = BITSWAP8(dat, 0,7,6,5,4,3,2,1); if ((i&1)==0) dat = BITSWAP8(dat, 0,7,6,5,4,3,2,1);
else dat = BITSWAP8(dat, 6,5,4,3,2,1,0,7); else dat = BITSWAP8(dat, 6,5,4,3,2,1,0,7);
// first 2 bytes were 00 in the returned data.. // first 2 bytes were 00 in the returned data..
//if (i==1) dat=0x00; //if (i==1) dat=0x00;
} }
} }
else if (tabnum==0x23 && isbrap) else if (tabnum==0x23 && isbrap)
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
// error 1 18 should be 00 (usual byte 1 'issue) // error 1 18 should be 00 (usual byte 1 'issue)
// error 384 98 should be 38 (typo, ignore) // error 384 98 should be 38 (typo, ignore)
} }
else if (tabnum==0x80 && !isbrap) // shogwarr table 80 (irq code) else if (tabnum==0x80 && !isbrap) // shogwarr table 80 (irq code)
{ {
if ((i&1)==0) if ((i&1)==0)
{ {
dat -= key[i&0x3f]; dat -= key[i&0x3f];
dat = BITSWAP8(dat,2,1,0,7,6,5,4,3); dat = BITSWAP8(dat,2,1,0,7,6,5,4,3);
} }
else else
{ {
// note + , not - (!!) // note + , not - (!!)
dat += key[i&0x3f]; dat += key[i&0x3f];
dat = BITSWAP8(dat,4,3,2,1,0,7,6,5); dat = BITSWAP8(dat,4,3,2,1,0,7,6,5);
} }
} }
else if (tabnum==0x41 && !isbrap) // shogwarr table 41 -- note fjbuster uses table 40, which looks like (almost) the same data but with better encryption... else if (tabnum==0x41 && !isbrap) // shogwarr table 41 -- note fjbuster uses table 40, which looks like (almost) the same data but with better encryption...
{ {
@ -1014,7 +1014,7 @@ static void calc3_mcu_run(running_machine *machine)
calc3_writeaddress = (kaneko16_mcu_ram[(0>>1) + 6] << 16) | calc3_writeaddress = (kaneko16_mcu_ram[(0>>1) + 6] << 16) |
(kaneko16_mcu_ram[(0>>1) + 7]); (kaneko16_mcu_ram[(0>>1) + 7]);
printf("Calc 3 Init Command - %04x DSW addr\n", calc3_dsw_addr); printf("Calc 3 Init Command - %04x DSW addr\n", calc3_dsw_addr);
printf("Calc 3 Init Command - %04x Eeprom Address\n", calc3_eeprom_addr); printf("Calc 3 Init Command - %04x Eeprom Address\n", calc3_eeprom_addr);
printf("Calc 3 Init Command - %04x Future Commands Base\n", calc3_mcu_command_offset); printf("Calc 3 Init Command - %04x Future Commands Base\n", calc3_mcu_command_offset);
printf("Calc 3 Init Command - %04x Poll / Busy Address\n", calc3_poll_addr); printf("Calc 3 Init Command - %04x Poll / Busy Address\n", calc3_poll_addr);
@ -1094,9 +1094,9 @@ static void calc3_mcu_run(running_machine *machine)
kaneko16_mcu_ram[(commandaddr>>1)+0] = (calc3_writeaddress>>16)&0xffff; kaneko16_mcu_ram[(commandaddr>>1)+0] = (calc3_writeaddress>>16)&0xffff;
kaneko16_mcu_ram[(commandaddr>>1)+1] = (calc3_writeaddress&0xffff); kaneko16_mcu_ram[(commandaddr>>1)+1] = (calc3_writeaddress&0xffff);
calc3_writeaddress += length; calc3_writeaddress += length;
} }
else else
{ {
calc3_decompress_table(machine, commandtabl, (UINT8*)kaneko16_calc3_fakeram, fakeoffs&0xfffff); calc3_decompress_table(machine, commandtabl, (UINT8*)kaneko16_calc3_fakeram, fakeoffs&0xfffff);

View File

@ -593,7 +593,7 @@ WRITE64_DEVICE_HANDLER( naomibd_w )
case 0x1fffc: // decryption key case 0x1fffc: // decryption key
v->prot_key = data; v->prot_key = data;
// printf("Protection: set up read @ %x, key %x (PIO %x DMA %x) [%s]\n", v->prot_offset, v->prot_key, v->rom_offset, v->dma_offset, cpuexec_describe_context(device->machine)); // printf("Protection: set up read @ %x, key %x (PIO %x DMA %x) [%s]\n", v->prot_offset, v->prot_key, v->rom_offset, v->dma_offset, cpuexec_describe_context(device->machine));
// translate address if necessary // translate address if necessary
if (v->prot_translate != NULL) if (v->prot_translate != NULL)
@ -1030,7 +1030,7 @@ DEVICE_GET_INFO( naomibd )
case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = sizeof(naomibd_config); break; case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = sizeof(naomibd_config); break;
case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break; case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break;
case DEVINFO_INT_DMAOFFSET: case DEVINFO_INT_DMAOFFSET:
// printf("DMA source %x, flags %x\n", get_safe_token(device)->dma_offset, get_safe_token(device)->dma_offset_flags); // printf("DMA source %x, flags %x\n", get_safe_token(device)->dma_offset, get_safe_token(device)->dma_offset_flags);
// if the flag is cleared that lets the protection chip go, // if the flag is cleared that lets the protection chip go,
// we need to handle this specially. // we need to handle this specially.
@ -1041,7 +1041,7 @@ DEVICE_GET_INFO( naomibd )
info->i = 0x9000000; info->i = 0x9000000;
break; break;
} }
else if (!strcmp(device->machine->gamedrv->name, "mvsc2")) else if (!strcmp(device->machine->gamedrv->name, "mvsc2"))
{ {
switch (get_safe_token(device)->dma_offset) switch (get_safe_token(device)->dma_offset)
{ {

View File

@ -72,7 +72,7 @@ static void snes_latch_counters(running_machine *machine)
snes_ppu.beam.latch_vert = video_screen_get_vpos(machine->primary_screen); snes_ppu.beam.latch_vert = video_screen_get_vpos(machine->primary_screen);
snes_ppu.beam.latch_horz = snes_ppu.beam.current_horz; snes_ppu.beam.latch_horz = snes_ppu.beam.current_horz;
snes_ram[STAT78] |= 0x40; // indicate we latched snes_ram[STAT78] |= 0x40; // indicate we latched
// read_ophct = read_opvct = 0; // clear read flags - 2009-08: I think we must clear these when STAT78 is read... // read_ophct = read_opvct = 0; // clear read flags - 2009-08: I think we must clear these when STAT78 is read...
// printf("latched @ H %d V %d\n", snes_ppu.beam.latch_horz, snes_ppu.beam.latch_vert); // printf("latched @ H %d V %d\n", snes_ppu.beam.latch_horz, snes_ppu.beam.latch_vert);
} }
@ -372,12 +372,12 @@ READ8_HANDLER( snes_r_io )
return snes_ppu.ppu1_open_bus; return snes_ppu.ppu1_open_bus;
// According to BSNES, these should return snes_open_bus_r! // According to BSNES, these should return snes_open_bus_r!
// case OAMADDL: // case OAMADDL:
// case OAMADDH: // case OAMADDH:
// case VMADDH: // case VMADDH:
// case CGADD: // case CGADD:
// case CGDATA: // case CGDATA:
// return snes_ram[offset]; // return snes_ram[offset];
case MPYL: /* Multiplication result (low) */ case MPYL: /* Multiplication result (low) */
{ {
/* Perform 16bit * 8bit multiply */ /* Perform 16bit * 8bit multiply */
@ -577,7 +577,7 @@ READ8_HANDLER( snes_r_io )
joypad[1].oldrol&=0xf; joypad[1].oldrol&=0xf;
if( !(joypad[1].oldrol % 17) ) if( !(joypad[1].oldrol % 17) )
value = 0x1; value = 0x1;
//value |= 0x1c; // bits 4, 3, and 2 are always set //value |= 0x1c; // bits 4, 3, and 2 are always set
return value | 0x1c | (snes_open_bus_r(space,0) & 0xe0); //correct? return value | 0x1c | (snes_open_bus_r(space,0) & 0xe0); //correct?
} }
case HTIMEL: case HTIMEL:
@ -666,7 +666,7 @@ READ8_HANDLER( snes_r_io )
} }
/* Unsupported reads returns open bus */ /* Unsupported reads returns open bus */
// printf("%02x %02x\n",offset,snes_open_bus_r(space,0)); // printf("%02x %02x\n",offset,snes_open_bus_r(space,0));
return snes_open_bus_r(space,0); return snes_open_bus_r(space,0);
} }
@ -681,7 +681,7 @@ WRITE8_HANDLER( snes_w_io )
// APU is mirrored from 2140 to 217f // APU is mirrored from 2140 to 217f
if (offset >= APU00 && offset < WMDATA) if (offset >= APU00 && offset < WMDATA)
{ {
// printf("816: %02x to APU @ %d\n", data, offset&3); // printf("816: %02x to APU @ %d\n", data, offset&3);
spc_port_in[offset & 0x3] = data; spc_port_in[offset & 0x3] = data;
cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(20)); cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(20));
return; return;
@ -2193,7 +2193,7 @@ void snes_gdma( const address_space *space, UINT8 channels )
if( !length ) if( !length )
length = 0x10000; /* 0x0000 really means 0x10000 */ length = 0x10000; /* 0x0000 really means 0x10000 */
// printf( "GDMA-Ch %d: len: %X, abus: %X, bbus: %X, incr: %d, dir: %s, type: %d\n", i, length, abus, bbus, increment, snes_ram[SNES_DMA_BASE + dma] & 0x80 ? "PPU->CPU" : "CPU->PPU", snes_ram[SNES_DMA_BASE + dma] & 0x7 ); // printf( "GDMA-Ch %d: len: %X, abus: %X, bbus: %X, incr: %d, dir: %s, type: %d\n", i, length, abus, bbus, increment, snes_ram[SNES_DMA_BASE + dma] & 0x80 ? "PPU->CPU" : "CPU->PPU", snes_ram[SNES_DMA_BASE + dma] & 0x7 );
#ifdef SNES_DBG_GDMA #ifdef SNES_DBG_GDMA
mame_printf_debug( "GDMA-Ch %d: len: %X, abus: %X, bbus: %X, incr: %d, dir: %s, type: %d\n", i, length, abus, bbus, increment, snes_ram[SNES_DMA_BASE + dma] & 0x80 ? "PPU->CPU" : "CPU->PPU", snes_ram[SNES_DMA_BASE + dma] & 0x7 ); mame_printf_debug( "GDMA-Ch %d: len: %X, abus: %X, bbus: %X, incr: %d, dir: %s, type: %d\n", i, length, abus, bbus, increment, snes_ram[SNES_DMA_BASE + dma] & 0x80 ? "PPU->CPU" : "CPU->PPU", snes_ram[SNES_DMA_BASE + dma] & 0x7 );

View File

@ -9517,28 +9517,28 @@ Other Sun games
/* Igrosoft */ /* Igrosoft */
/* Multifish */ /* Multifish */
//DRIVER( mfish ) /* (c) 2002 */ //DRIVER( mfish ) /* (c) 2002 */
//DRIVER( mfish_2 ) /* (c) 2002 */ //DRIVER( mfish_2 ) /* (c) 2002 */
DRIVER( mfish_3 ) /* (c) 2002 */ DRIVER( mfish_3 ) /* (c) 2002 */
DRIVER( mfish_3a ) /* (c) 2002 */ DRIVER( mfish_3a ) /* (c) 2002 */
//DRIVER( mfish_4 ) /* (c) 2002 */ //DRIVER( mfish_4 ) /* (c) 2002 */
//DRIVER( mfish_5 ) /* (c) 2002 */ //DRIVER( mfish_5 ) /* (c) 2002 */
//DRIVER( mfish_6 ) /* (c) 2002 */ //DRIVER( mfish_6 ) /* (c) 2002 */
//DRIVER( mfish_7 ) /* (c) 2002 */ //DRIVER( mfish_7 ) /* (c) 2002 */
//DRIVER( mfish_8 ) /* (c) 2002 */ //DRIVER( mfish_8 ) /* (c) 2002 */
//DRIVER( mfish_9 ) /* (c) 2002 */ //DRIVER( mfish_9 ) /* (c) 2002 */
//DRIVER( mfish_10 ) /* (c) 2002 */ //DRIVER( mfish_10 ) /* (c) 2002 */
//DRIVER( mfish_11 ) /* (c) 2002 */ //DRIVER( mfish_11 ) /* (c) 2002 */
DRIVER( mfish_12 ) /* (c) 2002 */ DRIVER( mfish_12 ) /* (c) 2002 */
DRIVER( mfish_12a ) /* (c) 2002 */ DRIVER( mfish_12a ) /* (c) 2002 */
//DRIVER( mfish_13 ) /* (c) 2002 */ //DRIVER( mfish_13 ) /* (c) 2002 */
/* Crazy Monkey */ /* Crazy Monkey */
//DRIVER( crzmon ) /* (c) 2003 */ //DRIVER( crzmon ) /* (c) 2003 */
//DRIVER( crzmon_2 ) /* (c) 2003 */ //DRIVER( crzmon_2 ) /* (c) 2003 */
//DRIVER( crzmon_3 ) /* (c) 2003 */ //DRIVER( crzmon_3 ) /* (c) 2003 */
//DRIVER( crzmon_4 ) /* (c) 2003 */ //DRIVER( crzmon_4 ) /* (c) 2003 */
//DRIVER( crzmon_5 ) /* (c) 2003 */ //DRIVER( crzmon_5 ) /* (c) 2003 */
//DRIVER( crzmon_6 ) //DRIVER( crzmon_6 )
DRIVER( crzmon_7 ) /* (c) 2003 */ DRIVER( crzmon_7 ) /* (c) 2003 */
DRIVER( crzmon_7a ) /* (c) 2003 */ DRIVER( crzmon_7a ) /* (c) 2003 */
@ -9547,11 +9547,11 @@ Other Sun games
DRIVER( crzmon_8a ) /* (c) 2003 */ DRIVER( crzmon_8a ) /* (c) 2003 */
/* Fruit Cocktail */ /* Fruit Cocktail */
//DRIVER( fcockt ) /* (c) 2003 */ //DRIVER( fcockt ) /* (c) 2003 */
//DRIVER( fcockt_2 ) /* (c) 2003 */ //DRIVER( fcockt_2 ) /* (c) 2003 */
//DRIVER( fcockt_3 ) /* (c) 2003 */ //DRIVER( fcockt_3 ) /* (c) 2003 */
//DRIVER( fcockt_4 ) /* (c) 2003 */ //DRIVER( fcockt_4 ) /* (c) 2003 */
//DRIVER( fcockt_5 ) /* (c) 2003 */ //DRIVER( fcockt_5 ) /* (c) 2003 */
DRIVER( fcockt_6 ) /* (c) 2003 */ DRIVER( fcockt_6 ) /* (c) 2003 */
DRIVER( fcockt_6a ) /* (c) 2003 */ DRIVER( fcockt_6a ) /* (c) 2003 */
DRIVER( fcockt_6b ) /* (c) 2003 */ DRIVER( fcockt_6b ) /* (c) 2003 */
@ -9560,32 +9560,32 @@ Other Sun games
DRIVER( fcockt_8 ) /* (c) 2003 */ DRIVER( fcockt_8 ) /* (c) 2003 */
/* Lucky Haunter */ /* Lucky Haunter */
//DRIVER( lhaunt ) /* (c) 2003 */ //DRIVER( lhaunt ) /* (c) 2003 */
//DRIVER( lhaunt_2 ) /* (c) 2003 */ //DRIVER( lhaunt_2 ) /* (c) 2003 */
//DRIVER( lhaunt_3 ) /* (c) 2003 */ //DRIVER( lhaunt_3 ) /* (c) 2003 */
DRIVER( lhaunt_4 ) /* (c) 2003 */ DRIVER( lhaunt_4 ) /* (c) 2003 */
DRIVER( lhaunt_4a ) /* (c) 2003 */ DRIVER( lhaunt_4a ) /* (c) 2003 */
DRIVER( lhaunt_5 ) /* (c) 2003 */ DRIVER( lhaunt_5 ) /* (c) 2003 */
DRIVER( lhaunt_5a ) /* (c) 2003 */ DRIVER( lhaunt_5a ) /* (c) 2003 */
DRIVER( lhaunt_6 ) /* (c) 2003 */ DRIVER( lhaunt_6 ) /* (c) 2003 */
DRIVER( lhaunt_6a ) /* (c) 2003 */ DRIVER( lhaunt_6a ) /* (c) 2003 */
/* Rollfruit */ /* Rollfruit */
//DRIVER( rollfr ) /* (c) 2003 */ //DRIVER( rollfr ) /* (c) 2003 */
DRIVER( rollfr_2 ) /* (c) 2003 */ DRIVER( rollfr_2 ) /* (c) 2003 */
/* Garage */ /* Garage */
//DRIVER( garage ) /* (c) 2004 */ //DRIVER( garage ) /* (c) 2004 */
//DRIVER( garage_2 ) /* (c) 2004 */ //DRIVER( garage_2 ) /* (c) 2004 */
//DRIVER( garage_3 ) /* (c) 2004 */ //DRIVER( garage_3 ) /* (c) 2004 */
DRIVER( garage_4 ) /* (c) 2004 */ DRIVER( garage_4 ) /* (c) 2004 */
DRIVER( garage_4a ) /* (c) 2004 */ DRIVER( garage_4a ) /* (c) 2004 */
DRIVER( garage_5 ) /* (c) 2004 */ DRIVER( garage_5 ) /* (c) 2004 */
DRIVER( garage_5a ) /* (c) 2004 */ DRIVER( garage_5a ) /* (c) 2004 */
/* Rock Climber */ /* Rock Climber */
//DRIVER( rclimb ) /* (c) 2004 */ //DRIVER( rclimb ) /* (c) 2004 */
//DRIVER( rclimb_2 ) /* (c) 2004 */ //DRIVER( rclimb_2 ) /* (c) 2004 */
DRIVER( rclimb_3 ) /* (c) 2004 */ DRIVER( rclimb_3 ) /* (c) 2004 */
DRIVER( rclimb_3a ) /* (c) 2004 */ DRIVER( rclimb_3a ) /* (c) 2004 */
DRIVER( rclimb_3b ) /* (c) 2004 */ DRIVER( rclimb_3b ) /* (c) 2004 */
@ -9595,17 +9595,18 @@ Other Sun games
DRIVER( sweetla ) /* (c) 2004 */ DRIVER( sweetla ) /* (c) 2004 */
/* Resident */ /* Resident */
//DRIVER( resdnt ) /* (c) 2004 */ //DRIVER( resdnt ) /* (c) 2004 */
DRIVER( resdnt_2 ) /* (c) 2004 */ DRIVER( resdnt_2 ) /* (c) 2004 */
DRIVER( resdnt_2a ) /* (c) 2004 */ DRIVER( resdnt_2a ) /* (c) 2004 */
/* Island */ /* Island */
DRIVER( island ) /* (c) 2005 */ DRIVER( island ) /* (c) 2005 */
DRIVER( islanda ) /* (c) 2005 */ DRIVER( islanda ) /* (c) 2005 */
/* Pirate */ /* Pirate */
//DRIVER( pirate ) /* (c) 2005 */ //DRIVER( pirate ) /* (c) 2005 */
DRIVER( pirate_1 ) /* (c) 2005 */ DRIVER( pirate_1 ) /* (c) 2005 */
//DRIVER( pirate_2 )/* (c) 2005 */
/* Island 2 */ /* Island 2 */
DRIVER( island2 ) /* (c) 2006 */ DRIVER( island2 ) /* (c) 2006 */

View File

@ -418,8 +418,8 @@ INLINE void snes_update_line( UINT8 screen, UINT8 color_depth, UINT8 hires, UINT
/* scrolling */ /* scrolling */
UINT32 basevmap; UINT32 basevmap;
UINT16 vscroll, hscroll, vtilescroll; UINT16 vscroll, hscroll, vtilescroll;
// UINT16 offset_per_tile_valid; // UINT16 offset_per_tile_valid;
// UINT8 offset_per_tile_mode; // UINT8 offset_per_tile_mode;
UINT8 vshift, hshift, tile_size; UINT8 vshift, hshift, tile_size;
/* variables depending on color_depth */ /* variables depending on color_depth */
UINT8 color_shift = 0; UINT8 color_shift = 0;
@ -508,7 +508,7 @@ INLINE void snes_update_line( UINT8 screen, UINT8 color_depth, UINT8 hires, UINT
wrap_around_x = 0; /* Make sure we don't do this again */ wrap_around_x = 0; /* Make sure we don't do this again */
} }
//if (tmap > 0x10000) //if (tmap > 0x10000)
// tmap %= 0x10000; // tmap %= 0x10000;
vflip = snes_vram[tmap + ii + 1] & 0x80; vflip = snes_vram[tmap + ii + 1] & 0x80;
hflip = snes_vram[tmap + ii + 1] & 0x40; hflip = snes_vram[tmap + ii + 1] & 0x40;

View File

@ -10,4 +10,4 @@
***************************************************************************/ ***************************************************************************/
extern const char build_version[]; extern const char build_version[];
const char build_version[] = "0.133u2 ("__DATE__")"; const char build_version[] = "0.133u3 ("__DATE__")";