Cleanups and version bump.

This commit is contained in:
Aaron Giles 2009-08-13 05:56:25 +00:00
parent 55480e3ce9
commit e3f1f454f8
36 changed files with 519 additions and 519 deletions

View File

@ -142,10 +142,10 @@ static int8 apu_square(nesapu_state *info, square_t *chan)
int8 output; int8 output;
/* reg0: 0-3=volume, 4=envelope, 5=hold, 6-7=duty cycle /* reg0: 0-3=volume, 4=envelope, 5=hold, 6-7=duty cycle
** reg1: 0-2=sweep shifts, 3=sweep inc/dec, 4-6=sweep length, 7=sweep on ** reg1: 0-2=sweep shifts, 3=sweep inc/dec, 4-6=sweep length, 7=sweep on
** reg2: 8 bits of freq ** reg2: 8 bits of freq
** reg3: 0-2=high freq, 7-4=vbl length counter ** reg3: 0-2=high freq, 7-4=vbl length counter
*/ */
if (FALSE == chan->enabled) if (FALSE == chan->enabled)
return 0; return 0;
@ -215,9 +215,9 @@ static int8 apu_triangle(nesapu_state *info, triangle_t *chan)
int freq; int freq;
int8 output; int8 output;
/* reg0: 7=holdnote, 6-0=linear length counter /* reg0: 7=holdnote, 6-0=linear length counter
** reg2: low 8 bits of frequency ** reg2: low 8 bits of frequency
** reg3: 7-3=length counter, 2-0=high 3 bits of frequency ** reg3: 7-3=length counter, 2-0=high 3 bits of frequency
*/ */
if (FALSE == chan->enabled) if (FALSE == chan->enabled)
return 0; return 0;
@ -275,9 +275,9 @@ static int8 apu_noise(nesapu_state *info, noise_t *chan)
uint8 output; uint8 output;
/* reg0: 0-3=volume, 4=envelope, 5=hold /* reg0: 0-3=volume, 4=envelope, 5=hold
** reg2: 7=small(93 byte) sample,3-0=freq lookup ** reg2: 7=small(93 byte) sample,3-0=freq lookup
** reg3: 7-4=vbl length counter ** reg3: 7-4=vbl length counter
*/ */
if (FALSE == chan->enabled) if (FALSE == chan->enabled)
return 0; return 0;
@ -352,10 +352,10 @@ static int8 apu_dpcm(nesapu_state *info, dpcm_t *chan)
int freq, bit_pos; int freq, bit_pos;
/* reg0: 7=irq gen, 6=looping, 3-0=pointer to clock table /* reg0: 7=irq gen, 6=looping, 3-0=pointer to clock table
** reg1: output dc level, 7 bits unsigned ** reg1: output dc level, 7 bits unsigned
** reg2: 8 bits of 64-byte aligned address offset : $C000 + (value * 64) ** reg2: 8 bits of 64-byte aligned address offset : $C000 + (value * 64)
** reg3: length, (value * 16) + 1 ** reg3: length, (value * 16) + 1
*/ */
if (chan->enabled) if (chan->enabled)
{ {
@ -394,10 +394,10 @@ static int8 apu_dpcm(nesapu_state *info, dpcm_t *chan)
} }
if (chan->cur_byte & (1 << bit_pos)) if (chan->cur_byte & (1 << bit_pos))
// chan->regs[1]++; // chan->regs[1]++;
chan->vol+=2; /* FIXED * DPCM channel only uses the upper 6 bits of the DAC */ chan->vol+=2; /* FIXED * DPCM channel only uses the upper 6 bits of the DAC */
else else
// chan->regs[1]--; // chan->regs[1]--;
chan->vol-=2; chan->vol-=2;
} }
} }
@ -473,19 +473,19 @@ INLINE void apu_regwrite(nesapu_state *info,int address, uint8 value)
info->APU.tri.regs[3] = value; info->APU.tri.regs[3] = value;
/* this is somewhat of a hack. there is some latency on the Real /* this is somewhat of a hack. there is some latency on the Real
** Thing between when trireg0 is written to and when the linear ** Thing between when trireg0 is written to and when the linear
** length counter actually begins its countdown. we want to prevent ** length counter actually begins its countdown. we want to prevent
** the case where the program writes to the freq regs first, then ** the case where the program writes to the freq regs first, then
** to reg 0, and the counter accidentally starts running because of ** to reg 0, and the counter accidentally starts running because of
** the sound queue's timestamp processing. ** the sound queue's timestamp processing.
** **
** set to a few NES sample -- should be sufficient ** set to a few NES sample -- should be sufficient
** **
** 3 * (1789772.727 / 44100) = ~122 cycles, just around one scanline ** 3 * (1789772.727 / 44100) = ~122 cycles, just around one scanline
** **
** should be plenty of time for the 6502 code to do a couple of table ** should be plenty of time for the 6502 code to do a couple of table
** dereferences and load up the other triregs ** dereferences and load up the other triregs
*/ */
/* used to be 3, but now we run the clock faster, so base it on samples/sync */ /* used to be 3, but now we run the clock faster, so base it on samples/sync */
info->APU.tri.write_latency = (info->samps_per_sync + 239) / 240; info->APU.tri.write_latency = (info->samps_per_sync + 239) / 240;

View File

@ -6,10 +6,10 @@
driven by one or more output bits driven by one or more output bits
Original author: (unsigned) Original author: (unsigned)
Filtering: Anders Hallström Filtering: Anders Hallstr?m
****************************************************************************/ ****************************************************************************/
/* Discussion of oversampling and anti-alias filtering: (Anders Hallström) /* Discussion of oversampling and anti-alias filtering: (Anders Hallstr?m)
* *
* This driver is for machines that directly control * This driver is for machines that directly control
* one or more simple digital-to-analog converters (DAC) * one or more simple digital-to-analog converters (DAC)
@ -94,9 +94,9 @@ struct _speaker_state
int level; int level;
/* The volume of a composed sample grows incrementally each time the speaker is over-sampled. /* The volume of a composed sample grows incrementally each time the speaker is over-sampled.
* That is in effect a basic average filter. * That is in effect a basic average filter.
* Another filter can and will be applied to the array of composed samples. * Another filter can and will be applied to the array of composed samples.
*/ */
double composed_volume[FILTER_LENGTH]; /* integrator(s) */ double composed_volume[FILTER_LENGTH]; /* integrator(s) */
int composed_sample_index; /* array index for composed_volume */ int composed_sample_index; /* array index for composed_volume */
attoseconds_t channel_sample_period; /* in as */ attoseconds_t channel_sample_period; /* in as */
@ -159,25 +159,25 @@ static DEVICE_START( speaker )
sp->next_interm_sample_time = attotime_add_attoseconds(sp->channel_last_sample_time, sp->interm_sample_period); sp->next_interm_sample_time = attotime_add_attoseconds(sp->channel_last_sample_time, sp->interm_sample_period);
sp->interm_sample_index = 0; sp->interm_sample_index = 0;
/* Note: To avoid time drift due to floating point inaccuracies, /* Note: To avoid time drift due to floating point inaccuracies,
* it is good if the speaker time synchronizes itself with the stream timing regularly. * it is good if the speaker time synchronizes itself with the stream timing regularly.
*/ */
/* Compute filter kernel; */ /* Compute filter kernel; */
/* (Done for each device though the data is shared... /* (Done for each device though the data is shared...
* No problem really, but should be done as part of system init if I knew how) * No problem really, but should be done as part of system init if I knew how)
*/ */
#if 1 #if 1
/* This is an approximated sinc (a perfect sinc makes an ideal low-pass filter). /* This is an approximated sinc (a perfect sinc makes an ideal low-pass filter).
* FILTER_STEP determines the cutoff frequency, * FILTER_STEP determines the cutoff frequency,
* which should be below the Nyquist freq, i.e. half the sample rate. * which should be below the Nyquist freq, i.e. half the sample rate.
* Smaller step => kernel extends in time domain => lower cutoff freq * Smaller step => kernel extends in time domain => lower cutoff freq
* In this case, with sinc, filter step PI corresponds to the Nyq. freq. * In this case, with sinc, filter step PI corresponds to the Nyq. freq.
* Since we do not get a perfect filter => must lower the cutoff freq some more. * Since we do not get a perfect filter => must lower the cutoff freq some more.
* For example, step PI/(2*RATE_MULTIPLIER) corresponds to cutoff freq = sample rate / 4; * For example, step PI/(2*RATE_MULTIPLIER) corresponds to cutoff freq = sample rate / 4;
* With -samplerate 48000, cutoff freq is ca 12kHz while the Nyq. freq is 24kHz. * With -samplerate 48000, cutoff freq is ca 12kHz while the Nyq. freq is 24kHz.
* With -samplerate 96000, cutoff freq is ca 24kHz while the Nyq. freq is 48kHz. * With -samplerate 96000, cutoff freq is ca 24kHz while the Nyq. freq is 48kHz.
* For a steeper, more efficient filter, increase FILTER_LENGTH at the expense of CPU usage. * For a steeper, more efficient filter, increase FILTER_LENGTH at the expense of CPU usage.
*/ */
#define FILTER_STEP (M_PI / 2 / RATE_MULTIPLIER) #define FILTER_STEP (M_PI / 2 / RATE_MULTIPLIER)
/* Distribute symmetrically on x axis; center has x=0 if length is odd */ /* Distribute symmetrically on x axis; center has x=0 if length is odd */
for (i = 0, x = (0.5 - FILTER_LENGTH / 2.) * FILTER_STEP; for (i = 0, x = (0.5 - FILTER_LENGTH / 2.) * FILTER_STEP;
@ -191,9 +191,9 @@ static DEVICE_START( speaker )
} }
#else #else
/* Trivial average filter with poor frequency cutoff properties; /* Trivial average filter with poor frequency cutoff properties;
* First zero (frequency where amplification=0) = sample rate / filter length * First zero (frequency where amplification=0) = sample rate / filter length
* Cutoff frequency approx <= first zero / 2 * Cutoff frequency approx <= first zero / 2
*/ */
for (i = 0, i < FILTER_LENGTH; i++) for (i = 0, i < FILTER_LENGTH; i++)
ampl[i] = 1; ampl[i] = 1;
#endif #endif
@ -219,9 +219,9 @@ static STREAM_UPDATE( speaker_sound_update )
sampled_time = attotime_mul(sampled_time, samples); sampled_time = attotime_mul(sampled_time, samples);
/* Note: since the stream is in the process of being updated, /* Note: since the stream is in the process of being updated,
* stream_get_time() will return the time before the update! (MAME 0.130) * stream_get_time() will return the time before the update! (MAME 0.130)
* Avoid using it here in order to avoid a subtle dependence on the stream implementation. * Avoid using it here in order to avoid a subtle dependence on the stream implementation.
*/ */
} }
if (samples-- > 0) if (samples-- > 0)
@ -277,16 +277,16 @@ void speaker_level_w(const device_config *device, int new_level)
return; return;
} }
/* Reaching here means such time has passed since last stream update /* Reaching here means such time has passed since last stream update
* that we can add at least one complete sample to the stream. * that we can add at least one complete sample to the stream.
* The details have to be handled by speaker_sound_update() * The details have to be handled by speaker_sound_update()
*/ */
/* Force streams.c to update sound until this point in time now */ /* Force streams.c to update sound until this point in time now */
stream_update(sp->channel); stream_update(sp->channel);
/* This is redundant because time update has to be done within speaker_sound_update() anyway, /* This is redundant because time update has to be done within speaker_sound_update() anyway,
* however this ensures synchronization between the speaker and stream timing: * however this ensures synchronization between the speaker and stream timing:
*/ */
sp->channel_last_sample_time = stream_get_time(sp->channel); sp->channel_last_sample_time = stream_get_time(sp->channel);
sp->channel_next_sample_time = attotime_add_attoseconds(sp->channel_last_sample_time, sp->channel_sample_period); sp->channel_next_sample_time = attotime_add_attoseconds(sp->channel_last_sample_time, sp->channel_sample_period);
sp->next_interm_sample_time = attotime_add_attoseconds(sp->channel_last_sample_time, sp->interm_sample_period); sp->next_interm_sample_time = attotime_add_attoseconds(sp->channel_last_sample_time, sp->interm_sample_period);
@ -316,9 +316,9 @@ static void update_interm_samples(speaker_state *sp, attotime time, int volume)
init_next_interm_sample(sp); init_next_interm_sample(sp);
} }
/* Depending on status above: /* Depending on status above:
* a) Add latest fraction to unfinished composed sample * a) Add latest fraction to unfinished composed sample
* b) The overshooting fraction of time will start a new composed sample * b) The overshooting fraction of time will start a new composed sample
*/ */
fraction = make_fraction(time, sp->last_update_time, sp->interm_sample_period_secfrac); fraction = make_fraction(time, sp->last_update_time, sp->interm_sample_period_secfrac);
sp->composed_volume[sp->composed_sample_index] += volume * fraction; sp->composed_volume[sp->composed_sample_index] += volume * fraction;
sp->last_update_time = time; sp->last_update_time = time;

View File

@ -592,7 +592,7 @@ MACHINE_DRIVER_END
#define GAL_INP_FS2 NODE_21 /* FS2 9L Q1 */ #define GAL_INP_FS2 NODE_21 /* FS2 9L Q1 */
#define GAL_INP_FS3 NODE_22 /* FS3 9L Q2 */ #define GAL_INP_FS3 NODE_22 /* FS3 9L Q2 */
#define GAL_INP_HIT NODE_23 /* HIT 9L Q3 */ #define GAL_INP_HIT NODE_23 /* HIT 9L Q3 */
//#define GAL_9L_Q4 NODE_24 //#define GAL_9L_Q4 NODE_24
#define GAL_INP_FIRE NODE_25 /* FIRE 9L Q5 */ #define GAL_INP_FIRE NODE_25 /* FIRE 9L Q5 */
#define GAL_INP_VOL1 NODE_26 /* VOL1 9L Q6 */ #define GAL_INP_VOL1 NODE_26 /* VOL1 9L Q6 */
#define GAL_INP_VOL2 NODE_27 /* VOL2 9L Q7 */ #define GAL_INP_VOL2 NODE_27 /* VOL2 9L Q7 */
@ -900,7 +900,7 @@ static TIMER_CALLBACK( pitch_callback )
if (pitch_l < 255) if (pitch_l < 255)
{ {
/* performance tweak: The counter is always running, but /* performance tweak: The counter is always running, but
* most of the time with a very (unaudible) frequency */ * most of the time with a very (unaudible) frequency */
discrete_sound_w(device, GAL_INP_PITCH_HIGH, pitch_h ); discrete_sound_w(device, GAL_INP_PITCH_HIGH, pitch_h );
timer_adjust_oneshot(pitch_timer, ATTOTIME_IN_HZ(SOUND_CLOCK / (256 - pitch_l)), 0); timer_adjust_oneshot(pitch_timer, ATTOTIME_IN_HZ(SOUND_CLOCK / (256 - pitch_l)), 0);
} }

View File

@ -129,19 +129,19 @@ static READ32_HANDLER( pxa255_i2s_r )
static WRITE32_HANDLER( pxa255_i2s_w ) static WRITE32_HANDLER( pxa255_i2s_w )
{ {
/* /*
if(!audio_dump) if(!audio_dump)
{ {
int count = 0; int count = 0;
char filename[256]; char filename[256];
do do
{ {
sprintf(filename, "39in1_%04d.raw", count++); sprintf(filename, "39in1_%04d.raw", count++);
audio_dump = fopen(filename, "rb"); audio_dump = fopen(filename, "rb");
}while(audio_dump != NULL); }while(audio_dump != NULL);
count--; count--;
sprintf(filename, "39in1_%04d.raw", count); sprintf(filename, "39in1_%04d.raw", count);
audio_dump = fopen(filename, "wb"); audio_dump = fopen(filename, "wb");
}*/ }*/
switch(PXA255_I2S_BASE_ADDR | (offset << 2)) switch(PXA255_I2S_BASE_ADDR | (offset << 2))
{ {
case PXA255_SACR0: case PXA255_SACR0:
@ -183,9 +183,9 @@ static WRITE32_HANDLER( pxa255_i2s_w )
verboselog( space->machine, 4, "pxa255_i2s_w: Serial Audio Data Register: %08x & %08x\n", data, mem_mask ); verboselog( space->machine, 4, "pxa255_i2s_w: Serial Audio Data Register: %08x & %08x\n", data, mem_mask );
i2s_regs.sadr = data; i2s_regs.sadr = data;
/*if(audio_dump) /*if(audio_dump)
{ {
fwrite(&data, 4, 1, audio_dump); fwrite(&data, 4, 1, audio_dump);
}*/ }*/
break; break;
default: default:
verboselog( space->machine, 0, "pxa255_i2s_w: Unknown address: %08x = %08x & %08x\n", PXA255_I2S_BASE_ADDR | (offset << 2), data, mem_mask); verboselog( space->machine, 0, "pxa255_i2s_w: Unknown address: %08x = %08x & %08x\n", PXA255_I2S_BASE_ADDR | (offset << 2), data, mem_mask);
@ -1274,7 +1274,7 @@ static UINT32 seed, magic;
static UINT32 state = 0; static UINT32 state = 0;
static READ32_HANDLER( cpld_r ) static READ32_HANDLER( cpld_r )
{ {
// if (cpu_get_pc(space->cpu) != 0xe3af4) printf("CPLD read @ %x (PC %x state %d)\n", offset, cpu_get_pc(space->cpu), state); // if (cpu_get_pc(space->cpu) != 0xe3af4) printf("CPLD read @ %x (PC %x state %d)\n", offset, cpu_get_pc(space->cpu), state);
if (cpu_get_pc(space->cpu) == 0x3f04) if (cpu_get_pc(space->cpu) == 0x3f04)
{ {

View File

@ -1218,15 +1218,15 @@ static ADDRESS_MAP_START( mooncrst_map_base, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0") AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0")
AM_RANGE(0xa000, 0xa002) AM_MIRROR(0x07f8) AM_WRITE(galaxian_gfxbank_w) AM_RANGE(0xa000, 0xa002) AM_MIRROR(0x07f8) AM_WRITE(galaxian_gfxbank_w)
AM_RANGE(0xa003, 0xa003) AM_MIRROR(0x07f8) AM_WRITE(coin_count_0_w) AM_RANGE(0xa003, 0xa003) AM_MIRROR(0x07f8) AM_WRITE(coin_count_0_w)
// AM_RANGE(0xa004, 0xa007) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_lfo_freq_w) // AM_RANGE(0xa004, 0xa007) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_lfo_freq_w)
AM_RANGE(0xa800, 0xa800) AM_MIRROR(0x07ff) AM_READ_PORT("IN1") AM_RANGE(0xa800, 0xa800) AM_MIRROR(0x07ff) AM_READ_PORT("IN1")
// AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_sound_w) // AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_DEVWRITE(GAL_AUDIO, galaxian_sound_w)
AM_RANGE(0xb000, 0xb000) AM_MIRROR(0x07ff) AM_READ_PORT("IN2") AM_RANGE(0xb000, 0xb000) AM_MIRROR(0x07ff) AM_READ_PORT("IN2")
AM_RANGE(0xb000, 0xb000) AM_MIRROR(0x07f8) AM_WRITE(irq_enable_w) AM_RANGE(0xb000, 0xb000) AM_MIRROR(0x07f8) AM_WRITE(irq_enable_w)
AM_RANGE(0xb004, 0xb004) AM_MIRROR(0x07f8) AM_WRITE(galaxian_stars_enable_w) AM_RANGE(0xb004, 0xb004) AM_MIRROR(0x07f8) AM_WRITE(galaxian_stars_enable_w)
AM_RANGE(0xb006, 0xb006) AM_MIRROR(0x07f8) AM_WRITE(galaxian_flip_screen_x_w) AM_RANGE(0xb006, 0xb006) AM_MIRROR(0x07f8) AM_WRITE(galaxian_flip_screen_x_w)
AM_RANGE(0xb007, 0xb007) AM_MIRROR(0x07f8) AM_WRITE(galaxian_flip_screen_y_w) AM_RANGE(0xb007, 0xb007) AM_MIRROR(0x07f8) AM_WRITE(galaxian_flip_screen_y_w)
// AM_RANGE(0xb800, 0xb800) AM_MIRROR(0x07ff) AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w) // AM_RANGE(0xb800, 0xb800) AM_MIRROR(0x07ff) AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w)
AM_RANGE(0xb800, 0xb800) AM_MIRROR(0x07ff) AM_READ(watchdog_reset_r) AM_RANGE(0xb800, 0xb800) AM_MIRROR(0x07ff) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END ADDRESS_MAP_END

View File

@ -185,38 +185,38 @@ ROM usage - CRC (from ROM test
Game Sega Part No. ROM Type Byte Word Game Sega Part No. ROM Type Byte Word
-------------------------------------------------------------- --------------------------------------------------------------
Star Wars Racer Arcade Star Wars Racer Arcade
MPR-23086.IC37 64M SOP44 MASKROM 7993 8E18 MPR-23086.IC37 64M SOP44 MASKROM 7993 8E18
MPR-23087.IC38 " 4D44 D239 MPR-23087.IC38 " 4D44 D239
MPR-23088.IC39 " 4135 BEAB MPR-23088.IC39 " 4135 BEAB
MPR-23089.IC40 " F0C8 04E2 MPR-23089.IC40 " F0C8 04E2
MPR-23090.IC41 " 9532 4C1C MPR-23090.IC41 " 9532 4C1C
MPR-23091.IC42 " 925D 02FB MPR-23091.IC42 " 925D 02FB
MPR-23092.IC43 " 0809 7050 MPR-23092.IC43 " 0809 7050
MPR-23093.IC44 " 72BC 9311 MPR-23093.IC44 " 72BC 9311
MPR-23094.IC45 " DE84 9D8A MPR-23094.IC45 " DE84 9D8A
MPR-23095.IC46 " 7A5C E7FC MPR-23095.IC46 " 7A5C E7FC
MPR-23096.IC47 " 6806 1392 MPR-23096.IC47 " 6806 1392
MPR-23097.IC48 " EDF1 7BD1 MPR-23097.IC48 " EDF1 7BD1
MPR-23098.IC49 " B82D E114 MPR-23098.IC49 " B82D E114
MPR-23099.IC50 " 5792 E5E5 MPR-23099.IC50 " 5792 E5E5
MPR-23100.IC51 " 3AF3 A97C MPR-23100.IC51 " 3AF3 A97C
MPR-23101.IC52 " A8CC 721D MPR-23101.IC52 " A8CC 721D
MPR-23102.IC53 " CED7 D3CF MPR-23102.IC53 " CED7 D3CF
MPR-23103.IC54 " 6B67 FC76 MPR-23103.IC54 " 6B67 FC76
MPR-23104.IC55 " 586C 6954 MPR-23104.IC55 " 586C 6954
MPR-23105.IC56 " 13A0 DB38 MPR-23105.IC56 " 13A0 DB38
MPR-23106.IC57 " 4F03 42BF MPR-23106.IC57 " 4F03 42BF
MPR-23107.IC58 " 8EA6 ADB6 MPR-23107.IC58 " 8EA6 ADB6
MPR-23108.IC59 " 8645 FC30 MPR-23108.IC59 " 8645 FC30
MPR-23109.IC60 " 3847 CA6B MPR-23109.IC60 " 3847 CA6B
MPR-23110.IC61 " 4140 01C4 MPR-23110.IC61 " 4140 01C4
MPR-23111.IC62 " EBE6 8085 MPR-23111.IC62 " EBE6 8085
MPR-23112.IC63 " B68B 7467 MPR-23112.IC63 " B68B 7467
MPR-23113.IC64 " 4715 4787 MPR-23113.IC64 " 4715 4787
MPR-23114.IC65 " 3CD6 144A MPR-23114.IC65 " 3CD6 144A
MPR-23115.IC66 " E5D3 BA35 MPR-23115.IC66 " E5D3 BA35
MPR-23116.IC67 " E668 08ED MPR-23116.IC67 " E668 08ED
MPR-23117.IC68 " 1FE8 C4A1 MPR-23117.IC68 " 1FE8 C4A1
EPR-23174.IC29 27C322 EPROM 3B2E EPR-23174.IC29 27C322 EPROM 3B2E
EPR-23175.IC30 " F377 EPR-23175.IC30 " F377

View File

@ -890,7 +890,7 @@ static MACHINE_DRIVER_START( prosport )
MDRV_CPU_PROGRAM_MAP(liberate_sound_map) MDRV_CPU_PROGRAM_MAP(liberate_sound_map)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse,16*60) /* ??? */ MDRV_CPU_PERIODIC_INT(nmi_line_pulse,16*60) /* ??? */
// MDRV_QUANTUM_TIME(HZ(12000)) // MDRV_QUANTUM_TIME(HZ(12000))
/* video hardware */ /* video hardware */
MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_ADD("screen", RASTER)

View File

@ -736,10 +736,10 @@ ROM_START( looping )
ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */ ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */
/* /*
ROM_LOAD( "cop.bin", 0x0000, 0x0400, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0 ROM_LOAD( "cop.bin", 0x0000, 0x0400, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
*/ */
ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times and shifted ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times and shifted
ROM_CONTINUE( 0x0000, 0x00c2) ROM_CONTINUE( 0x0000, 0x00c2)
@ -773,10 +773,10 @@ ROM_START( loopinga )
ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */ ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */
/* /*
ROM_LOAD( "cop.bin", 0x0000, 0x0400, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0 ROM_LOAD( "cop.bin", 0x0000, 0x0400, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
*/ */
ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times and shifted ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times and shifted
ROM_CONTINUE( 0x0000, 0x00c2) ROM_CONTINUE( 0x0000, 0x00c2)
@ -809,10 +809,10 @@ ROM_START( skybump )
ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */ ROM_REGION( 0x1000, "mcu", 0 ) /* COP420 microcontroller code */
/* /*
ROM_LOAD( "cop.bin", 0x0000, 0x0400, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0 ROM_LOAD( "cop.bin", 0x0000, 0x0400, BAD_DUMP CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times, and starting PC is not 0
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
ROM_CONTINUE( 0x0000, 0x0400) ROM_CONTINUE( 0x0000, 0x0400)
*/ */
ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times and shifted ROM_LOAD( "cop.bin", 0x00c2, 0x033e, CRC(bbfd26d5) SHA1(5f78b32b6e7c003841ef5b635084db2cdfebf0e1) ) // overdumped 4 times and shifted
ROM_CONTINUE( 0x0000, 0x00c2) ROM_CONTINUE( 0x0000, 0x00c2)

View File

@ -629,107 +629,107 @@ Notes:
ROM_START( spacefev ) ROM_START( spacefev )
ROM_REGION( 0x8000, "maincpu", 0 ) ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD( "f1-ro-.bin", 0x0000, 0x0400, CRC(35f295bd) SHA1(34d1df25fcdea598ca1191cecc2125e6f63dbce3) ) // "F1" ROM_LOAD( "f1-ro-.bin", 0x0000, 0x0400, CRC(35f295bd) SHA1(34d1df25fcdea598ca1191cecc2125e6f63dbce3) ) // "F1??"
ROM_LOAD( "f2-ro-.bin", 0x0400, 0x0400, CRC(0c633f4c) SHA1(a551ddbf21670fb1f000404b92da87a97f7ba157) ) // "F2" ROM_LOAD( "f2-ro-.bin", 0x0400, 0x0400, CRC(0c633f4c) SHA1(a551ddbf21670fb1f000404b92da87a97f7ba157) ) // "F2??"
ROM_LOAD( "g1-ro-.bin", 0x0800, 0x0400, CRC(f3d851cb) SHA1(535c52a56e54a064aa3d1c48a129f714234a1007) ) // "G1" ROM_LOAD( "g1-ro-.bin", 0x0800, 0x0400, CRC(f3d851cb) SHA1(535c52a56e54a064aa3d1c48a129f714234a1007) ) // "G1??"
ROM_LOAD( "g2-ro-.bin", 0x0c00, 0x0400, CRC(1faef63a) SHA1(68e1bfc45587bfb1ee2eb477b60efd4f69dffd2c) ) // "G2" ROM_LOAD( "g2-ro-.bin", 0x0c00, 0x0400, CRC(1faef63a) SHA1(68e1bfc45587bfb1ee2eb477b60efd4f69dffd2c) ) // "G2??"
ROM_LOAD( "h1-ro-.bin", 0x1000, 0x0400, CRC(b365389d) SHA1(e681f2c5e37cc07912915ef74184ff9336309de3) ) // "H1" ROM_LOAD( "h1-ro-.bin", 0x1000, 0x0400, CRC(b365389d) SHA1(e681f2c5e37cc07912915ef74184ff9336309de3) ) // "H1??"
ROM_LOAD( "h2-ro-.bin", 0x1400, 0x0400, CRC(a163e800) SHA1(e8817f3e17f099a0dc66213d2d3d3fdeb117b10e) ) // "H2" ROM_LOAD( "h2-ro-.bin", 0x1400, 0x0400, CRC(a163e800) SHA1(e8817f3e17f099a0dc66213d2d3d3fdeb117b10e) ) // "H2??"
ROM_LOAD( "i1-ro-p.bin", 0x1800, 0x0400, CRC(756b5582) SHA1(b7f3d218b7f4267ce6128624306396bcacb9b44e) ) // "I1P" ROM_LOAD( "i1-ro-p.bin", 0x1800, 0x0400, CRC(756b5582) SHA1(b7f3d218b7f4267ce6128624306396bcacb9b44e) ) // "I1??P"
ROM_REGION( 0x0400, "audiocpu", 0 ) ROM_REGION( 0x0400, "audiocpu", 0 )
ROM_LOAD( "ss3.ic2", 0x0000, 0x0400, CRC(95c2c1ee) SHA1(42a3a382fc7d2782052372d71f6d0e8a153e74d0) ) ROM_LOAD( "ss3.ic2", 0x0000, 0x0400, CRC(95c2c1ee) SHA1(42a3a382fc7d2782052372d71f6d0e8a153e74d0) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5" ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5?C"
ROM_END ROM_END
ROM_START( spacefevo ) ROM_START( spacefevo )
ROM_REGION( 0x8000, "maincpu", 0 ) ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD( "f1-ro-.bin", 0x0000, 0x0400, CRC(35f295bd) SHA1(34d1df25fcdea598ca1191cecc2125e6f63dbce3) ) // "F1" ROM_LOAD( "f1-ro-.bin", 0x0000, 0x0400, CRC(35f295bd) SHA1(34d1df25fcdea598ca1191cecc2125e6f63dbce3) ) // "F1??"
ROM_LOAD( "f2-ro-.bin", 0x0400, 0x0400, CRC(0c633f4c) SHA1(a551ddbf21670fb1f000404b92da87a97f7ba157) ) // "F2" ROM_LOAD( "f2-ro-.bin", 0x0400, 0x0400, CRC(0c633f4c) SHA1(a551ddbf21670fb1f000404b92da87a97f7ba157) ) // "F2??"
ROM_LOAD( "g1-ro-.bin", 0x0800, 0x0400, CRC(f3d851cb) SHA1(535c52a56e54a064aa3d1c48a129f714234a1007) ) // "G1" ROM_LOAD( "g1-ro-.bin", 0x0800, 0x0400, CRC(f3d851cb) SHA1(535c52a56e54a064aa3d1c48a129f714234a1007) ) // "G1??"
ROM_LOAD( "g2-ro-.bin", 0x0c00, 0x0400, CRC(1faef63a) SHA1(68e1bfc45587bfb1ee2eb477b60efd4f69dffd2c) ) // "G2" ROM_LOAD( "g2-ro-.bin", 0x0c00, 0x0400, CRC(1faef63a) SHA1(68e1bfc45587bfb1ee2eb477b60efd4f69dffd2c) ) // "G2??"
ROM_LOAD( "h1-ro-.bin", 0x1000, 0x0400, CRC(b365389d) SHA1(e681f2c5e37cc07912915ef74184ff9336309de3) ) // "H1" ROM_LOAD( "h1-ro-.bin", 0x1000, 0x0400, CRC(b365389d) SHA1(e681f2c5e37cc07912915ef74184ff9336309de3) ) // "H1??"
ROM_LOAD( "h2-ro-.bin", 0x1400, 0x0400, CRC(a163e800) SHA1(e8817f3e17f099a0dc66213d2d3d3fdeb117b10e) ) // "H2" ROM_LOAD( "h2-ro-.bin", 0x1400, 0x0400, CRC(a163e800) SHA1(e8817f3e17f099a0dc66213d2d3d3fdeb117b10e) ) // "H2??"
ROM_LOAD( "i1-ro-.bin", 0x1800, 0x0400, CRC(00027be2) SHA1(551a779a2e5a6455b7a348d246731c094e0ec709) ) // "I1" ROM_LOAD( "i1-ro-.bin", 0x1800, 0x0400, CRC(00027be2) SHA1(551a779a2e5a6455b7a348d246731c094e0ec709) ) // "I1??"
ROM_REGION( 0x0400, "audiocpu", 0 ) ROM_REGION( 0x0400, "audiocpu", 0 )
ROM_LOAD( "ss3.ic2", 0x0000, 0x0400, CRC(95c2c1ee) SHA1(42a3a382fc7d2782052372d71f6d0e8a153e74d0) ) ROM_LOAD( "ss3.ic2", 0x0000, 0x0400, CRC(95c2c1ee) SHA1(42a3a382fc7d2782052372d71f6d0e8a153e74d0) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5" ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5?C"
ROM_END ROM_END
ROM_START( spacefevo2 ) ROM_START( spacefevo2 )
ROM_REGION( 0x8000, "maincpu", 0 ) ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD( "f1-i-.bin", 0x0000, 0x0400, CRC(7fa305e8) SHA1(cda9fc9c76f57800de25ddf65f69fef19fd28481) ) // "F1" ROM_LOAD( "f1-i-.bin", 0x0000, 0x0400, CRC(7fa305e8) SHA1(cda9fc9c76f57800de25ddf65f69fef19fd28481) ) // "F1?C"
ROM_LOAD( "f2-i-.bin", 0x0400, 0x0400, CRC(7c1429aa) SHA1(8d8e0a4fc09fb1ecbfb86c67c20000ef30ab3fac) ) // "F2" ROM_LOAD( "f2-i-.bin", 0x0400, 0x0400, CRC(7c1429aa) SHA1(8d8e0a4fc09fb1ecbfb86c67c20000ef30ab3fac) ) // "F2?C"
ROM_LOAD( "g1-i-.bin", 0x0800, 0x0400, CRC(75f6efc1) SHA1(286bc75e35e8ad6277e9db7377e90731b9c2ec97) ) // "G1" ROM_LOAD( "g1-i-.bin", 0x0800, 0x0400, CRC(75f6efc1) SHA1(286bc75e35e8ad6277e9db7377e90731b9c2ec97) ) // "G1?C"
ROM_LOAD( "g2-i-.bin", 0x0c00, 0x0400, CRC(fb6bcf4a) SHA1(3edea04d67c2f3b1a6a73adadea83ddda0be3842) ) // "G2" ROM_LOAD( "g2-i-.bin", 0x0c00, 0x0400, CRC(fb6bcf4a) SHA1(3edea04d67c2f3b1a6a73adadea83ddda0be3842) ) // "G2?C"
ROM_LOAD( "h1-i-.bin", 0x1000, 0x0400, CRC(3beef037) SHA1(4bcc157e7d721b3a9e16e7a2efa807303d4be8ac) ) // "H1" ROM_LOAD( "h1-i-.bin", 0x1000, 0x0400, CRC(3beef037) SHA1(4bcc157e7d721b3a9e16e7a2efa807303d4be8ac) ) // "H1?C"
ROM_LOAD( "h2-i-.bin", 0x1400, 0x0400, CRC(bddbc94f) SHA1(f90cbc3cd0f695cbb9ae03b608f4bf5a4a000c64) ) // "H2" ROM_LOAD( "h2-i-.bin", 0x1400, 0x0400, CRC(bddbc94f) SHA1(f90cbc3cd0f695cbb9ae03b608f4bf5a4a000c64) ) // "H2?C"
ROM_LOAD( "i1-i-.bin", 0x1800, 0x0400, CRC(437786c5) SHA1(2ccdb0d48dbbfe47ae82e970ca37970602405cf6) ) // "I1" ROM_LOAD( "i1-i-.bin", 0x1800, 0x0400, CRC(437786c5) SHA1(2ccdb0d48dbbfe47ae82e970ca37970602405cf6) ) // "I1?C"
ROM_REGION( 0x0400, "audiocpu", 0 ) ROM_REGION( 0x0400, "audiocpu", 0 )
ROM_LOAD( "ss3.ic2", 0x0000, 0x0400, CRC(95c2c1ee) SHA1(42a3a382fc7d2782052372d71f6d0e8a153e74d0) ) ROM_LOAD( "ss3.ic2", 0x0000, 0x0400, CRC(95c2c1ee) SHA1(42a3a382fc7d2782052372d71f6d0e8a153e74d0) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5" ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5?C"
ROM_END ROM_END
ROM_START( highsplt ) ROM_START( highsplt )
ROM_REGION( 0x8000, "maincpu", 0 ) ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD( "f1-ha-.bin", 0x0000, 0x0400, CRC(b8887351) SHA1(ccd49937f1cbd7a157b3715474ccc3e8fdcea2b2) ) // "F1" ROM_LOAD( "f1-ha-.bin", 0x0000, 0x0400, CRC(b8887351) SHA1(ccd49937f1cbd7a157b3715474ccc3e8fdcea2b2) ) // "F1?n"
ROM_LOAD( "f2-ha-.bin", 0x0400, 0x0400, CRC(cda933a7) SHA1(a0447c8c98e24674081c9bf4b1ef07dc186c6e2b) ) // "F2" ROM_LOAD( "f2-ha-.bin", 0x0400, 0x0400, CRC(cda933a7) SHA1(a0447c8c98e24674081c9bf4b1ef07dc186c6e2b) ) // "F2?n"
ROM_LOAD( "g1-ha-.bin", 0x0800, 0x0400, CRC(de17578a) SHA1(d9d5dbf38331f212d2a566c60756a788e169104d) ) // "G1" ROM_LOAD( "g1-ha-.bin", 0x0800, 0x0400, CRC(de17578a) SHA1(d9d5dbf38331f212d2a566c60756a788e169104d) ) // "G1?n"
ROM_LOAD( "g2-ha-.bin", 0x0c00, 0x0400, CRC(f1a90948) SHA1(850f27b42ca12bcba4aa95a1ad3e66206fa63554) ) // "G2" ROM_LOAD( "g2-ha-.bin", 0x0c00, 0x0400, CRC(f1a90948) SHA1(850f27b42ca12bcba4aa95a1ad3e66206fa63554) ) // "G2?n"
ROM_LOAD( "hs.h1", 0x1000, 0x0400, CRC(eefb4273) SHA1(853a62976a406516f10ac68dc2859399b8b7aae8) ) ROM_LOAD( "hs.h1", 0x1000, 0x0400, CRC(eefb4273) SHA1(853a62976a406516f10ac68dc2859399b8b7aae8) )
ROM_LOAD( "h2-ha-.bin", 0x1400, 0x0400, CRC(e91703e8) SHA1(f58606b0c7d945e94c3fccc7ebe17ca25675e6a0) ) // "H2" ROM_LOAD( "h2-ha-.bin", 0x1400, 0x0400, CRC(e91703e8) SHA1(f58606b0c7d945e94c3fccc7ebe17ca25675e6a0) ) // "H2?n"
ROM_LOAD( "hs.i1", 0x1800, 0x0400, CRC(41e18df9) SHA1(2212c836313775e7c507a875672c0b3635825e02) ) ROM_LOAD( "hs.i1", 0x1800, 0x0400, CRC(41e18df9) SHA1(2212c836313775e7c507a875672c0b3635825e02) )
ROM_LOAD( "i2-ha-.bin", 0x1c00, 0x0400, CRC(eff9f82d) SHA1(5004e52dfa652ceefca9ed4210c0fa8f0591dc08) ) // "I2" ROM_LOAD( "i2-ha-.bin", 0x1c00, 0x0400, CRC(eff9f82d) SHA1(5004e52dfa652ceefca9ed4210c0fa8f0591dc08) ) // "I2?n"
ROM_REGION( 0x0400, "audiocpu", 0 ) ROM_REGION( 0x0400, "audiocpu", 0 )
ROM_LOAD( "ss4.bin", 0x0000, 0x0400, CRC(939e01d4) SHA1(7c9ccd24e5da03831cd0aa821da17e3b81cd8381) ) ROM_LOAD( "ss4.bin", 0x0000, 0x0400, CRC(939e01d4) SHA1(7c9ccd24e5da03831cd0aa821da17e3b81cd8381) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5" ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5?C"
ROM_END ROM_END
ROM_START( highsplta ) ROM_START( highsplta )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "f1-ha-.bin", 0x0000, 0x0400, CRC(b8887351) SHA1(ccd49937f1cbd7a157b3715474ccc3e8fdcea2b2) ) // "F1" ROM_LOAD( "f1-ha-.bin", 0x0000, 0x0400, CRC(b8887351) SHA1(ccd49937f1cbd7a157b3715474ccc3e8fdcea2b2) ) // "F1?n"
ROM_LOAD( "f2-ha-.bin", 0x0400, 0x0400, CRC(cda933a7) SHA1(a0447c8c98e24674081c9bf4b1ef07dc186c6e2b) ) // "F2" ROM_LOAD( "f2-ha-.bin", 0x0400, 0x0400, CRC(cda933a7) SHA1(a0447c8c98e24674081c9bf4b1ef07dc186c6e2b) ) // "F2?n"
ROM_LOAD( "g1-ha-.bin", 0x0800, 0x0400, CRC(de17578a) SHA1(d9d5dbf38331f212d2a566c60756a788e169104d) ) // "G1" ROM_LOAD( "g1-ha-.bin", 0x0800, 0x0400, CRC(de17578a) SHA1(d9d5dbf38331f212d2a566c60756a788e169104d) ) // "G1?n"
ROM_LOAD( "g2-ha-.bin", 0x0c00, 0x0400, CRC(f1a90948) SHA1(850f27b42ca12bcba4aa95a1ad3e66206fa63554) ) // "G2" ROM_LOAD( "g2-ha-.bin", 0x0c00, 0x0400, CRC(f1a90948) SHA1(850f27b42ca12bcba4aa95a1ad3e66206fa63554) ) // "G2?n"
ROM_LOAD( "h1-ha-.bin", 0x1000, 0x0400, CRC(b0505da3) SHA1(f7b1f3a6dd06ff0cdeb6b13c948b7a262592514a) ) // "H1" ROM_LOAD( "h1-ha-.bin", 0x1000, 0x0400, CRC(b0505da3) SHA1(f7b1f3a6dd06ff0cdeb6b13c948b7a262592514a) ) // "H1?n"
ROM_LOAD( "h2-ha-.bin", 0x1400, 0x0400, CRC(e91703e8) SHA1(f58606b0c7d945e94c3fccc7ebe17ca25675e6a0) ) // "H2" ROM_LOAD( "h2-ha-.bin", 0x1400, 0x0400, CRC(e91703e8) SHA1(f58606b0c7d945e94c3fccc7ebe17ca25675e6a0) ) // "H2?n"
ROM_LOAD( "i1-ha-.bin", 0x1800, 0x0400, CRC(aa36b25d) SHA1(28f555aab27b206a8c6f550b6caa938cece6e204) ) // "I1" ROM_LOAD( "i1-ha-.bin", 0x1800, 0x0400, CRC(aa36b25d) SHA1(28f555aab27b206a8c6f550b6caa938cece6e204) ) // "I1?n"
ROM_LOAD( "i2-ha-.bin", 0x1c00, 0x0400, CRC(eff9f82d) SHA1(5004e52dfa652ceefca9ed4210c0fa8f0591dc08) ) // "I2" ROM_LOAD( "i2-ha-.bin", 0x1c00, 0x0400, CRC(eff9f82d) SHA1(5004e52dfa652ceefca9ed4210c0fa8f0591dc08) ) // "I2?n"
ROM_REGION( 0x0400, "audiocpu", 0 ) ROM_REGION( 0x0400, "audiocpu", 0 )
ROM_LOAD( "ss4.bin", 0x0000, 0x0400, CRC(939e01d4) SHA1(7c9ccd24e5da03831cd0aa821da17e3b81cd8381) ) ROM_LOAD( "ss4.bin", 0x0000, 0x0400, CRC(939e01d4) SHA1(7c9ccd24e5da03831cd0aa821da17e3b81cd8381) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5" ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5?C"
ROM_END ROM_END
ROM_START( highspltb ) ROM_START( highspltb )
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "f1-ha-.bin", 0x0000, 0x0400, CRC(b8887351) SHA1(ccd49937f1cbd7a157b3715474ccc3e8fdcea2b2) ) // "F1" ROM_LOAD( "f1-ha-.bin", 0x0000, 0x0400, CRC(b8887351) SHA1(ccd49937f1cbd7a157b3715474ccc3e8fdcea2b2) ) // "F1?n"
ROM_LOAD( "f2-ha-.bin", 0x0400, 0x0400, CRC(cda933a7) SHA1(a0447c8c98e24674081c9bf4b1ef07dc186c6e2b) ) // "F2" ROM_LOAD( "f2-ha-.bin", 0x0400, 0x0400, CRC(cda933a7) SHA1(a0447c8c98e24674081c9bf4b1ef07dc186c6e2b) ) // "F2?n"
ROM_LOAD( "g1-ha-.bin", 0x0800, 0x0400, CRC(de17578a) SHA1(d9d5dbf38331f212d2a566c60756a788e169104d) ) // "G1" ROM_LOAD( "g1-ha-.bin", 0x0800, 0x0400, CRC(de17578a) SHA1(d9d5dbf38331f212d2a566c60756a788e169104d) ) // "G1?n"
ROM_LOAD( "g2-ha-.bin", 0x0c00, 0x0400, CRC(f1a90948) SHA1(850f27b42ca12bcba4aa95a1ad3e66206fa63554) ) // "G2" ROM_LOAD( "g2-ha-.bin", 0x0c00, 0x0400, CRC(f1a90948) SHA1(850f27b42ca12bcba4aa95a1ad3e66206fa63554) ) // "G2?n"
ROM_LOAD( "h1-ha-.bin", 0x1000, 0x0400, CRC(b0505da3) SHA1(f7b1f3a6dd06ff0cdeb6b13c948b7a262592514a) ) // "H1" ROM_LOAD( "h1-ha-.bin", 0x1000, 0x0400, CRC(b0505da3) SHA1(f7b1f3a6dd06ff0cdeb6b13c948b7a262592514a) ) // "H1?n"
ROM_LOAD( "h2-ha-.bin", 0x1400, 0x0400, CRC(e91703e8) SHA1(f58606b0c7d945e94c3fccc7ebe17ca25675e6a0) ) // "H2" ROM_LOAD( "h2-ha-.bin", 0x1400, 0x0400, CRC(e91703e8) SHA1(f58606b0c7d945e94c3fccc7ebe17ca25675e6a0) ) // "H2?n"
ROM_LOAD( "i1-ha-.bin", 0x1800, 0x0400, CRC(aa36b25d) SHA1(28f555aab27b206a8c6f550b6caa938cece6e204) ) // "I1" ROM_LOAD( "i1-ha-.bin", 0x1800, 0x0400, CRC(aa36b25d) SHA1(28f555aab27b206a8c6f550b6caa938cece6e204) ) // "I1?n"
ROM_LOAD( "i2-ha-.bin", 0x1c00, 0x0400, CRC(eff9f82d) SHA1(5004e52dfa652ceefca9ed4210c0fa8f0591dc08) ) // "I2" ROM_LOAD( "i2-ha-.bin", 0x1c00, 0x0400, CRC(eff9f82d) SHA1(5004e52dfa652ceefca9ed4210c0fa8f0591dc08) ) // "I2?n"
ROM_REGION( 0x0400, "audiocpu", 0 ) ROM_REGION( 0x0400, "audiocpu", 0 )
ROM_LOAD( "ss4.ic2", 0x0000, 0x0400, CRC(ce95dc5f) SHA1(20f7b8c565c408439dcfae240b7d1aa42c29651b) ) ROM_LOAD( "ss4.ic2", 0x0000, 0x0400, CRC(ce95dc5f) SHA1(20f7b8c565c408439dcfae240b7d1aa42c29651b) )
ROM_REGION( 0x0020, "proms", 0 ) ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5" ROM_LOAD( "f5-i-.bin", 0x0000, 0x0020, CRC(c5914ec1) SHA1(198875fcab36d09c8726bb21e2fdff9882f6721a) ) // "F5?C"
ROM_END ROM_END
ROM_START( spacelnc ) ROM_START( spacelnc )

View File

@ -244,9 +244,9 @@ ROM_END
Dump was made using custom adaptor, hence it is marked as bad dump. Dump was made using custom adaptor, hence it is marked as bad dump.
The real machine has following roms: The real machine has following roms:
0000...07FFh - ROM1 (D41) 0000...07FFh - ROM1 (D41)
0800...0FFFh - ROM2 (D42) 0800...0FFFh - ROM2 (D42)
1000...17FFh - ROM3 (D43) 1000...17FFh - ROM3 (D43)
*/ */
ROM_START( phpython ) ROM_START( phpython )
ROM_REGION( 0x20000, "maincpu", 0 ) ROM_REGION( 0x20000, "maincpu", 0 )

View File

@ -10,32 +10,32 @@ OSC. : 3.579545MHz 18432.00KHz
Main processors are a pair of 68000 CPUs Main processors are a pair of 68000 CPUs
Sounds are generated by a Z80, a Yamaha 2151 and 3012, a Konami custom IC and a uPD7759C Sounds are generated by a Z80, a Yamaha 2151 and 3012, a Konami custom IC and a uPD7759C
Dark Adventure / Devil World / Majuu no Ohkoku Dark Adventure / Devil World / Majuu no Ohkoku
Vulcan Venture / Gradius II Vulcan Venture / Gradius II
Cuebrick Cuebrick
MIA (Japan) MIA (Japan)
Final Round / Hard Puncher (Japan) Final Round / Hard Puncher (Japan)
68000 Memory Map for Konami Twin System 68000 Memory Map for Konami Twin System
CPUA CPUB CPUA CPUB
0x000000..0x03ffff ROM 0x000000..0x03ffff 0x000000..0x03ffff ROM 0x000000..0x03ffff
0x040000..0x043fff communication RAM 0x040000..0x043fff (shared) 0x040000..0x043fff communication RAM 0x040000..0x043fff (shared)
0x060000..0x063fff work RAM 0x060000..0x063fff 0x060000..0x063fff work RAM 0x060000..0x063fff
0x080000..0x080fff palette 0x080000..0x080fff palette
0x080000..0x09ffff ROM (extra tile data) 0x080000..0x09ffff ROM (extra tile data)
0x0a0000..0x0a0001 IRQ control 0x0a0000..0x0a0001 0x0a0000..0x0a0001 IRQ control 0x0a0000..0x0a0001
0x0a0008..0x0a0009 sound command 0x0a0008..0x0a0009 sound command
0x0a0010..0xa00011 watchdog 0x0a0010..0xa00011 watchdog
0x0c0000..0x0c0001 screenflip 0x0c0000..0x0c0001 screenflip
0x0c0002..0x0c000f scroll registers 0x0c0002..0x0c000f scroll registers
0x100000..0x103fff FIXRAM (text layer) 0x100000..0x103fff FIXRAM (text layer)
0x120000..0x123fff VIDRAM (tilemaps) 0x480000..0x483fff (shared) 0x120000..0x123fff VIDRAM (tilemaps) 0x480000..0x483fff (shared)
0x140000..0x143fff OBJRAM (sprites) 0x400000..0x403fff (shared) 0x140000..0x143fff OBJRAM (sprites) 0x400000..0x403fff (shared)
ZIP RAM (tiles) 0x500000..0x53ffff ZIP RAM (tiles) 0x500000..0x53ffff
gfx ROM (banked) 0x600000..0x77ffff gfx ROM (banked) 0x600000..0x77ffff
sprite gfx RAM 0x780000..0x79ffff sprite gfx RAM 0x780000..0x79ffff
Known Issues: Known Issues:
- repeated uPD7759C samples in fround, disconnecting reset helps but doesn't fix it - repeated uPD7759C samples in fround, disconnecting reset helps but doesn't fix it
@ -115,13 +115,13 @@ static WRITE16_HANDLER( sound_command_w )
static WRITE16_HANDLER( twin16_CPUA_register_w ) static WRITE16_HANDLER( twin16_CPUA_register_w )
{ {
/* /*
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
X sprite processing disable X sprite processing disable
X IRQ5 enable (CPUA) X IRQ5 enable (CPUA)
X 0->1 trigger IRQ6 on CPUB X 0->1 trigger IRQ6 on CPUB
X 0->1 trigger IRQ on sound CPU X 0->1 trigger IRQ on sound CPU
x x x coin counters x x x coin counters
*/ */
UINT16 old = twin16_CPUA_register; UINT16 old = twin16_CPUA_register;
COMBINE_DATA(&twin16_CPUA_register); COMBINE_DATA(&twin16_CPUA_register);
if (twin16_CPUA_register != old) if (twin16_CPUA_register != old)
@ -144,11 +144,11 @@ static WRITE16_HANDLER( twin16_CPUA_register_w )
static WRITE16_HANDLER( twin16_CPUB_register_w ) static WRITE16_HANDLER( twin16_CPUB_register_w )
{ {
/* /*
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
X gfx bank select X gfx bank select
X IRQ5 enable X IRQ5 enable
X 0->1 trigger IRQ6 on CPUA X 0->1 trigger IRQ6 on CPUA
*/ */
UINT16 old = twin16_CPUB_register; UINT16 old = twin16_CPUB_register;
COMBINE_DATA(&twin16_CPUB_register); COMBINE_DATA(&twin16_CPUB_register);
if( twin16_CPUB_register!=old ) if( twin16_CPUB_register!=old )
@ -161,10 +161,10 @@ static WRITE16_HANDLER( twin16_CPUB_register_w )
static WRITE16_HANDLER( fround_CPU_register_w ) static WRITE16_HANDLER( fround_CPU_register_w )
{ {
/* /*
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
X 0->1 trigger IRQ on sound CPU X 0->1 trigger IRQ on sound CPU
x x coin counters x x coin counters
*/ */
UINT16 old = twin16_CPUA_register; UINT16 old = twin16_CPUA_register;
COMBINE_DATA(&twin16_CPUA_register); COMBINE_DATA(&twin16_CPUA_register);
if (twin16_CPUA_register != old) if (twin16_CPUA_register != old)
@ -240,7 +240,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READWRITE(COMRAM_r, COMRAM_w) AM_RANGE(0x040000, 0x043fff) AM_READWRITE(COMRAM_r, COMRAM_w)
// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj // AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
AM_RANGE(0x060000, 0x063fff) AM_RAM AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(twin16_paletteram_word_w) AM_BASE(&paletteram16) AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(twin16_paletteram_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x081000, 0x081fff) AM_WRITENOP AM_RANGE(0x081000, 0x081fff) AM_WRITENOP
@ -253,7 +253,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(twin16_video_register_w) AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(twin16_video_register_w)
AM_RANGE(0x0c000e, 0x0c000f) AM_READ(twin16_sprite_status_r) AM_RANGE(0x0c000e, 0x0c000f) AM_READ(twin16_sprite_status_r)
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE(&twin16_text_ram) AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(twin16_text_ram_w) AM_BASE(&twin16_text_ram)
// AM_RANGE(0x104000, 0x105fff) AM_NOP // miaj // AM_RANGE(0x104000, 0x105fff) AM_NOP // miaj
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&videoram16) AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&videoram16)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE(1) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE(1) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -261,7 +261,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 16 ) static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_READWRITE(COMRAM_r, COMRAM_w) AM_RANGE(0x040000, 0x043fff) AM_READWRITE(COMRAM_r, COMRAM_w)
// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj // AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
AM_RANGE(0x060000, 0x063fff) AM_RAM AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x09ffff) AM_READ(extra_rom_r) AM_RANGE(0x080000, 0x09ffff) AM_READ(extra_rom_r)
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUB_register_w) AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUB_register_w)

View File

@ -1851,11 +1851,11 @@ MACHINE_DRIVER_END
/******************************************************************************/ /******************************************************************************/
/* correct label format. revision number is stamped(red), other letters are printed(black) /* correct label format. revision number is stamped(red), other letters are printed(black)
game code in line 1, ROM position in line 2 game code in line 1, ROM position in line 2
i.e. i.e.
MDS-DH3 MDS-DH3
1B or 6B e 1B or 6B e
*/ */

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

@ -950,7 +950,7 @@ WRITE64_HANDLER( dc_g1_ctrl_w )
mame_printf_verbose("G1CTRL: unsupported transfer\n"); mame_printf_verbose("G1CTRL: unsupported transfer\n");
return; return;
} }
// printf("ROM board DMA to %x (PC %x)\n", g1bus_regs[SB_GDSTAR], cpu_get_pc(space->cpu)); // printf("ROM board DMA to %x (PC %x)\n", g1bus_regs[SB_GDSTAR], cpu_get_pc(space->cpu));
ROM = (UINT8 *)devtag_get_info_ptr(space->machine, "rom_board", DEVINFO_PTR_MEMORY); ROM = (UINT8 *)devtag_get_info_ptr(space->machine, "rom_board", DEVINFO_PTR_MEMORY);
dmaoffset = (UINT32)devtag_get_info_int(space->machine, "rom_board", DEVINFO_INT_DMAOFFSET); dmaoffset = (UINT32)devtag_get_info_int(space->machine, "rom_board", DEVINFO_INT_DMAOFFSET);
ddtdata.destination=g1bus_regs[SB_GDSTAR]; // destination address ddtdata.destination=g1bus_regs[SB_GDSTAR]; // destination address

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);
} }
@ -359,12 +359,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 */
@ -560,7 +560,7 @@ READ8_HANDLER( snes_r_io )
value = ((joypad[1].low | (joypad[1].high << 8) | 0x10000) >> (15 - (joypad[1].oldrol++ % 16))) & 0x1; value = ((joypad[1].low | (joypad[1].high << 8) | 0x10000) >> (15 - (joypad[1].oldrol++ % 16))) & 0x1;
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:
@ -649,7 +649,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);
} }

View File

@ -9475,8 +9475,8 @@ Other Sun games
DRIVER( moneymacv1 )/* (c) 200? Amcoe */ DRIVER( moneymacv1 )/* (c) 200? Amcoe */
DRIVER( moneymacd2 )/* (c) 200? Amcoe */ DRIVER( moneymacd2 )/* (c) 200? Amcoe */
DRIVER( moneymacv2 )/* (c) 200? Amcoe */ DRIVER( moneymacv2 )/* (c) 200? Amcoe */
//DRIVER( atworld ) /* (c) 2007 Amcoe - Around The World (year listed on Amcoe web site) */ //DRIVER( atworld ) /* (c) 2007 Amcoe - Around The World (year listed on Amcoe web site) */
//DRIVER( atworldd1 ) /* (c) 2007 Amcoe (year listed on Amcoe web site) */ //DRIVER( atworldd1 ) /* (c) 2007 Amcoe (year listed on Amcoe web site) */
DRIVER( chsuper3 ) /* unknown */ DRIVER( chsuper3 ) /* unknown */

View File

@ -83,10 +83,10 @@ static TILE_GET_INFO( prosport_get_back_tile_info )
int tile; int tile;
/* /*
robiza notes: robiza notes:
- flip y (handled with a +0x10 tile banking) depends only by position of the tile in the screen - flip y (handled with a +0x10 tile banking) depends only by position of the tile in the screen
- bits 0-3 are not used by gfx hardware; the value is the color of the pixel in the map (golf) - bits 0-3 are not used by gfx hardware; the value is the color of the pixel in the map (golf)
*/ */
tile = (prosport_bg_vram[tile_index] & 0xf0)>>4; tile = (prosport_bg_vram[tile_index] & 0xf0)>>4;

View File

@ -404,8 +404,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;
@ -491,7 +491,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) //<- causes corrupt tiles in places, needed? //if (tmap > 0x10000) //<- causes corrupt tiles in places, needed?
// 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

@ -130,9 +130,9 @@ WRITE16_HANDLER( twin16_video_register_w )
* 2 | -------xxxxxxxxx | xpos * 2 | -------xxxxxxxxx | xpos
* -----+------------------+ * -----+------------------+
* 3 | x--------------- | enable * 3 | x--------------- | enable
* 3 | -x-------------- | priority ? * 3 | -x-------------- | priority ?
* 3 | -----x---------- | no shadow ? * 3 | -----x---------- | no shadow ?
* 3 | ------x--------- | yflip ? * 3 | ------x--------- | yflip ?
* 3 | -------x-------- | xflip * 3 | -------x-------- | xflip
* 3 | --------xx------ | height * 3 | --------xx------ | height
* 3 | ----------xx---- | width * 3 | ----------xx---- | width
@ -183,29 +183,29 @@ void twin16_spriteram_process( running_machine *machine )
UINT32 ypos = (0x10000*source[6])|source[7]; UINT32 ypos = (0x10000*source[6])|source[7];
/* notes on uncertain attributes: /* notes on uncertain attributes:
shadows: pen $F only (like other Konami hw), used in devilw, fround, shadows: pen $F only (like other Konami hw), used in devilw, fround,
miaj? (shadows are solid in tmnt hw version), miaj? (shadows are solid in tmnt hw version),
gradius2? (ship exhaust) gradius2? (ship exhaust)
sprite-background priority: in devilw, most sprites look best at high priority, sprite-background priority: in devilw, most sprites look best at high priority,
in gradius2, most sprites look best at low priority. exceptions: in gradius2, most sprites look best at low priority. exceptions:
- devilw prologue: sprites behind crowd (maybe more, haven't completed the game) - devilw prologue: sprites behind crowd (maybe more, haven't completed the game)
- gradius2 intro showing earlier games: sprites above layers - gradius2 intro showing earlier games: sprites above layers
currently using (priority&0x200), broken: currently using (priority&0x200), broken:
- devilw prologue: sprites should be behind crowd - devilw prologue: sprites should be behind crowd
- gradius2 level 7: bosses should be behind portal (ok except brain boss and mouth boss) - gradius2 level 7: bosses should be behind portal (ok except brain boss and mouth boss)
- gradius2 ending: sun should be behind planet - gradius2 ending: sun should be behind planet
does TWIN16_PLANE_ORDER affect it? does TWIN16_PLANE_ORDER affect it?
more? more?
devilw monster dens exploding monochrome, players fading to white in prologue, and trees in devilw monster dens exploding monochrome, players fading to white in prologue, and trees in
the 1st level shrinking with a solid green color look odd, maybe alpha blended? the 1st level shrinking with a solid green color look odd, maybe alpha blended?
fround, hpuncher, miaj, cuebrickj, don't use the preprocessor. all sprites are expected fround, hpuncher, miaj, cuebrickj, don't use the preprocessor. all sprites are expected
to be high priority, and shadows are enabled to be high priority, and shadows are enabled
*/ */
UINT16 attributes = 0x8000| // enabled UINT16 attributes = 0x8000| // enabled
(source[2]&0x03ff)| // scale,size,color (source[2]&0x03ff)| // scale,size,color
(source[2]&0x4000)>>4| // no-shadow? (gradius2 level 7 boss sets this bit and appears to expect pen $F to be solid) (source[2]&0x4000)>>4| // no-shadow? (gradius2 level 7 boss sets this bit and appears to expect pen $F to be solid)
@ -421,10 +421,10 @@ static void draw_layer( running_machine *machine, bitmap_t *bitmap, int opaque )
{ {
int code = source[i]; int code = source[i];
/* fedcba9876543210 /* fedcba9876543210
xxx------------- color xxx------------- color
---xx----------- tile bank ---xx----------- tile bank
-----xxxxxxxxxxx tile number -----xxxxxxxxxxx tile number
*/ */
const UINT16 *gfx_data = gfx_base + (code&0x7ff)*16 + bank_table[(code>>11)&0x3]*0x8000; const UINT16 *gfx_data = gfx_base + (code&0x7ff)*16 + bank_table[(code>>11)&0x3]*0x8000;
int color = (code>>13); int color = (code>>13);
int pal_base = 16*(0x20+color+8*palette); int pal_base = 16*(0x20+color+8*palette);
@ -477,11 +477,11 @@ static TILE_GET_INFO( get_text_tile_info )
const UINT16 *source = twin16_text_ram; const UINT16 *source = twin16_text_ram;
int attr = source[tile_index]; int attr = source[tile_index];
/* fedcba9876543210 /* fedcba9876543210
-x-------------- yflip -x-------------- yflip
--x------------- xflip --x------------- xflip
---xxxx--------- color ---xxxx--------- color
-------xxxxxxxxx tile number -------xxxxxxxxx tile number
*/ */
int code = attr & 0x1ff; int code = attr & 0x1ff;
int color = (attr >> 9) & 0x0f; int color = (attr >> 9) & 0x0f;
int flags=0; int flags=0;
@ -538,8 +538,8 @@ VIDEO_EOF( twin16 )
need_process_spriteram = 1; need_process_spriteram = 1;
/* if the sprite preprocessor is used, sprite ram is copied to an external buffer first, /* if the sprite preprocessor is used, sprite ram is copied to an external buffer first,
as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably
more to it than that */ more to it than that */
memcpy(&buffered_spriteram16[0x1800],twin16_sprite_buffer,0x800*sizeof(UINT16)); memcpy(&buffered_spriteram16[0x1800],twin16_sprite_buffer,0x800*sizeof(UINT16));
memcpy(twin16_sprite_buffer,&spriteram16[0x1800],0x800*sizeof(UINT16)); memcpy(twin16_sprite_buffer,&spriteram16[0x1800],0x800*sizeof(UINT16));
} }

View File

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