mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Bumped version to 0.122u2. Spacing cleanups.
This commit is contained in:
parent
460437f8d1
commit
0e20c80517
@ -318,8 +318,8 @@ static void check_irqs(void)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* external interrupts are level-sensitive on the '31 and can be
|
/* external interrupts are level-sensitive on the '31 and can be
|
||||||
configured as such on the '32; in that case, if the external
|
configured as such on the '32; in that case, if the external
|
||||||
signal is high, we need to update the value in IF accordingly */
|
signal is high, we need to update the value in IF accordingly */
|
||||||
if (!tms32031.is_32032 || (IREG(TMR_ST) & 0x4000) == 0)
|
if (!tms32031.is_32032 || (IREG(TMR_ST) & 0x4000) == 0)
|
||||||
IREG(TMR_IF) |= tms32031.irq_state & 0x0f;
|
IREG(TMR_IF) |= tms32031.irq_state & 0x0f;
|
||||||
|
|
||||||
@ -347,7 +347,7 @@ static void check_irqs(void)
|
|||||||
trap(whichtrap);
|
trap(whichtrap);
|
||||||
|
|
||||||
/* after auto-clearing the interrupt bit, we need to re-trigger
|
/* after auto-clearing the interrupt bit, we need to re-trigger
|
||||||
level-sensitive interrupts */
|
level-sensitive interrupts */
|
||||||
if (!tms32031.is_32032 || (IREG(TMR_ST) & 0x4000) == 0)
|
if (!tms32031.is_32032 || (IREG(TMR_ST) & 0x4000) == 0)
|
||||||
IREG(TMR_IF) |= tms32031.irq_state & 0x0f;
|
IREG(TMR_IF) |= tms32031.irq_state & 0x0f;
|
||||||
}
|
}
|
||||||
|
@ -2963,13 +2963,13 @@
|
|||||||
* vMod node or static value,
|
* vMod node or static value,
|
||||||
* vRng node or static value,
|
* vRng node or static value,
|
||||||
* C node or static value in Farads,
|
* C node or static value in Farads,
|
||||||
* Type of output static value)
|
* Type of output static value)
|
||||||
*
|
*
|
||||||
* Type of Output
|
* Type of Output
|
||||||
* DISC_LS624_OUT_ENERGY Energy - use for audio output
|
* DISC_LS624_OUT_ENERGY Energy - use for audio output
|
||||||
* DISC_LS624_OUT_LOGIC Logic ( 0 or 1)
|
* DISC_LS624_OUT_LOGIC Logic ( 0 or 1)
|
||||||
* DISC_LS624_OUT_COUNT_F Number of Falling edges
|
* DISC_LS624_OUT_COUNT_F Number of Falling edges
|
||||||
* DISC_LS624_OUT_COUNT_R Number of Rising edges
|
* DISC_LS624_OUT_COUNT_R Number of Rising edges
|
||||||
*
|
*
|
||||||
***********************************************************************
|
***********************************************************************
|
||||||
*
|
*
|
||||||
|
@ -1,57 +1,57 @@
|
|||||||
/**********************************************************************************************
|
/**********************************************************************************************
|
||||||
|
|
||||||
TMS5110 simulator (modified from TMS5220 by Jarek Burczynski)
|
TMS5110 simulator (modified from TMS5220 by Jarek Burczynski)
|
||||||
|
|
||||||
Written for MAME by Frank Palazzolo
|
Written for MAME by Frank Palazzolo
|
||||||
With help from Neill Corlett
|
With help from Neill Corlett
|
||||||
Additional tweaking by Aaron Giles
|
Additional tweaking by Aaron Giles
|
||||||
Various fixes by Lord Nightmare
|
Various fixes by Lord Nightmare
|
||||||
Additional enhancements by Couriersud
|
Additional enhancements by Couriersud
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
- implement CS
|
- implement CS
|
||||||
- implement missing commands
|
- implement missing commands
|
||||||
|
|
||||||
TMS5100:
|
TMS5100:
|
||||||
|
|
||||||
+-----------------+
|
+-----------------+
|
||||||
TST | 1 28 | CS
|
TST | 1 28 | CS
|
||||||
PDC | 2 27 | CTL8
|
PDC | 2 27 | CTL8
|
||||||
ROM CK | 3 26 | ADD8
|
ROM CK | 3 26 | ADD8
|
||||||
CPU CK | 4 25 | CTL1
|
CPU CK | 4 25 | CTL1
|
||||||
VDD | 5 24 | ADD1
|
VDD | 5 24 | ADD1
|
||||||
CR OSC | 6 23 | CTL2
|
CR OSC | 6 23 | CTL2
|
||||||
RC OSC | 7 22 | ADD2
|
RC OSC | 7 22 | ADD2
|
||||||
T11 | 8 21 | ADD4
|
T11 | 8 21 | ADD4
|
||||||
NC | 9 20 | CTL4
|
NC | 9 20 | CTL4
|
||||||
I/O | 10 19 | M1
|
I/O | 10 19 | M1
|
||||||
SPK1 | 11 18 | NC
|
SPK1 | 11 18 | NC
|
||||||
SPK2 | 12 17 | NC
|
SPK2 | 12 17 | NC
|
||||||
PROM OUT | 13 16 | NC
|
PROM OUT | 13 16 | NC
|
||||||
VSS | 14 15 | M0
|
VSS | 14 15 | M0
|
||||||
+-----------------+
|
+-----------------+
|
||||||
|
|
||||||
M58817
|
M58817
|
||||||
|
|
||||||
The following connections could be derived from radar scope schematics.
|
The following connections could be derived from radar scope schematics.
|
||||||
The M58817 is not 100% pin compatible to the 5100, but really close.
|
The M58817 is not 100% pin compatible to the 5100, but really close.
|
||||||
|
|
||||||
+-----------------+
|
+-----------------+
|
||||||
(NC) | 1 28 | CS
|
(NC) | 1 28 | CS
|
||||||
PDC | 2 27 | CTL8
|
PDC | 2 27 | CTL8
|
||||||
ROM CK | 3 26 | ADD8 (to 58819)
|
ROM CK | 3 26 | ADD8 (to 58819)
|
||||||
(NC) | 4 25 | CTL1
|
(NC) | 4 25 | CTL1
|
||||||
(VDD,-5) | 5 24 | ADD1 (to 58819)
|
(VDD,-5) | 5 24 | ADD1 (to 58819)
|
||||||
(GND) | 6 23 | CTL2
|
(GND) | 6 23 | CTL2
|
||||||
Xin | 7 22 | ADD2 (to 58819)
|
Xin | 7 22 | ADD2 (to 58819)
|
||||||
Xout | 8 21 | ADD4 (to 58819)
|
Xout | 8 21 | ADD4 (to 58819)
|
||||||
(NC) | 9 20 | CTL4
|
(NC) | 9 20 | CTL4
|
||||||
(VDD,-5) | 10 19 | Status back to CPU
|
(VDD,-5) | 10 19 | Status back to CPU
|
||||||
(NC) | 11 18 | C1 (to 58819)
|
(NC) | 11 18 | C1 (to 58819)
|
||||||
SPKR | 12 17 | (NC)
|
SPKR | 12 17 | (NC)
|
||||||
SPKR | 13 16 | C0 (to 58819)
|
SPKR | 13 16 | C0 (to 58819)
|
||||||
(NC) | 14 15 | (5V)
|
(NC) | 14 15 | (5V)
|
||||||
+-----------------+
|
+-----------------+
|
||||||
|
|
||||||
***********************************************************************************************/
|
***********************************************************************************************/
|
||||||
|
|
||||||
@ -263,7 +263,7 @@ void tms5110_reset_chip(void *chip)
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
tms5110_set_M0_callback -- set M0 callback for the TMS5110
|
tms5110_set_M0_callback -- set M0 callback for the TMS5110
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ void tms5110_set_M0_callback(void *chip, int (*func)(void))
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
tms5110_set_load_address -- set M0 callback for the TMS5110
|
tms5110_set_load_address -- set M0 callback for the TMS5110
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
@ -287,7 +287,7 @@ void tms5110_set_load_address(void *chip, void (*func)(int))
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
FIFO_data_write -- handle bit data write to the TMS5110 (as a result of toggling M0 pin)
|
FIFO_data_write -- handle bit data write to the TMS5110 (as a result of toggling M0 pin)
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
static void FIFO_data_write(struct tms5110 *tms, int data)
|
static void FIFO_data_write(struct tms5110 *tms, int data)
|
||||||
@ -310,7 +310,7 @@ static void FIFO_data_write(struct tms5110 *tms, int data)
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
extract_bits -- extract a specific number of bits from the FIFO
|
extract_bits -- extract a specific number of bits from the FIFO
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
@ -359,14 +359,14 @@ static void perform_dummy_read(struct tms5110 *tms)
|
|||||||
|
|
||||||
/**********************************************************************************************
|
/**********************************************************************************************
|
||||||
|
|
||||||
tms5110_status_read -- read status from the TMS5110
|
tms5110_status_read -- read status from the TMS5110
|
||||||
|
|
||||||
bit 0 = TS - Talk Status is active (high) when the VSP is processing speech data.
|
bit 0 = TS - Talk Status is active (high) when the VSP is processing speech data.
|
||||||
Talk Status goes active at the initiation of a SPEAK command.
|
Talk Status goes active at the initiation of a SPEAK command.
|
||||||
It goes inactive (low) when the stop code (Energy=1111) is processed, or
|
It goes inactive (low) when the stop code (Energy=1111) is processed, or
|
||||||
immediately(?????? not TMS5110) by a RESET command.
|
immediately(?????? not TMS5110) by a RESET command.
|
||||||
TMS5110 datasheets mention this is only available as a result of executing
|
TMS5110 datasheets mention this is only available as a result of executing
|
||||||
TEST TALK command.
|
TEST TALK command.
|
||||||
|
|
||||||
|
|
||||||
***********************************************************************************************/
|
***********************************************************************************************/
|
||||||
@ -383,7 +383,7 @@ int tms5110_status_read(void *chip)
|
|||||||
|
|
||||||
/**********************************************************************************************
|
/**********************************************************************************************
|
||||||
|
|
||||||
tms5110_ready_read -- returns the ready state of the TMS5110
|
tms5110_ready_read -- returns the ready state of the TMS5110
|
||||||
|
|
||||||
***********************************************************************************************/
|
***********************************************************************************************/
|
||||||
|
|
||||||
@ -397,7 +397,7 @@ int tms5110_ready_read(void *chip)
|
|||||||
|
|
||||||
/**********************************************************************************************
|
/**********************************************************************************************
|
||||||
|
|
||||||
tms5110_process -- fill the buffer with a specific number of samples
|
tms5110_process -- fill the buffer with a specific number of samples
|
||||||
|
|
||||||
***********************************************************************************************/
|
***********************************************************************************************/
|
||||||
|
|
||||||
@ -418,12 +418,12 @@ void tms5110_process(void *chip, INT16 *buffer, unsigned int size)
|
|||||||
|
|
||||||
/* a "dummy read" is mentioned in the tms5200 datasheet */
|
/* a "dummy read" is mentioned in the tms5200 datasheet */
|
||||||
/* The Bagman speech roms data are organized in such a way that
|
/* The Bagman speech roms data are organized in such a way that
|
||||||
** the bit at address 0 is NOT a speech data. The bit at address 1
|
** the bit at address 0 is NOT a speech data. The bit at address 1
|
||||||
** is the speech data. It seems that the tms5110 performs a dummy read
|
** is the speech data. It seems that the tms5110 performs a dummy read
|
||||||
** just before it executes a SPEAK command.
|
** just before it executes a SPEAK command.
|
||||||
** This has been moved to command logic ...
|
** This has been moved to command logic ...
|
||||||
** perform_dummy_read(tms);
|
** perform_dummy_read(tms);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* clear out the new frame parameters (it will become old frame just before the first call to parse_frame() ) */
|
/* clear out the new frame parameters (it will become old frame just before the first call to parse_frame() ) */
|
||||||
tms->new_energy = 0;
|
tms->new_energy = 0;
|
||||||
@ -486,9 +486,9 @@ void tms5110_process(void *chip, INT16 *buffer, unsigned int size)
|
|||||||
else if ((tms->old_energy == 0) && (tms->new_energy != 0)) /* was the old frame a zero-energy frame? */
|
else if ((tms->old_energy == 0) && (tms->new_energy != 0)) /* was the old frame a zero-energy frame? */
|
||||||
{
|
{
|
||||||
/* if so, and if the new frame is non-zero energy frame then the new parameters
|
/* if so, and if the new frame is non-zero energy frame then the new parameters
|
||||||
should become our current and target parameters immediately,
|
should become our current and target parameters immediately,
|
||||||
i.e. we should NOT interpolate them slowly in.
|
i.e. we should NOT interpolate them slowly in.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*logerror("processing non-zero energy frame after zero-energy frame\n");*/
|
/*logerror("processing non-zero energy frame after zero-energy frame\n");*/
|
||||||
tms->target_energy = tms->new_energy;
|
tms->target_energy = tms->new_energy;
|
||||||
@ -499,8 +499,8 @@ void tms5110_process(void *chip, INT16 *buffer, unsigned int size)
|
|||||||
else if ((tms->old_pitch == 0) && (tms->new_pitch != 0)) /* is this a change from unvoiced to voiced frame ? */
|
else if ((tms->old_pitch == 0) && (tms->new_pitch != 0)) /* is this a change from unvoiced to voiced frame ? */
|
||||||
{
|
{
|
||||||
/* if so, then the new parameters should become our current and target parameters immediately,
|
/* if so, then the new parameters should become our current and target parameters immediately,
|
||||||
i.e. we should NOT interpolate them slowly in.
|
i.e. we should NOT interpolate them slowly in.
|
||||||
*/
|
*/
|
||||||
/*if (DEBUG_5110) logerror("processing frame: UNVOICED->VOICED frame change\n");*/
|
/*if (DEBUG_5110) logerror("processing frame: UNVOICED->VOICED frame change\n");*/
|
||||||
tms->target_energy = tms->new_energy;
|
tms->target_energy = tms->new_energy;
|
||||||
tms->target_pitch = tms->current_pitch = tms->new_pitch;
|
tms->target_pitch = tms->current_pitch = tms->new_pitch;
|
||||||
@ -510,8 +510,8 @@ void tms5110_process(void *chip, INT16 *buffer, unsigned int size)
|
|||||||
else if ((tms->old_pitch != 0) && (tms->new_pitch == 0)) /* is this a change from voiced to unvoiced frame ? */
|
else if ((tms->old_pitch != 0) && (tms->new_pitch == 0)) /* is this a change from voiced to unvoiced frame ? */
|
||||||
{
|
{
|
||||||
/* if so, then the new parameters should become our current and target parameters immediately,
|
/* if so, then the new parameters should become our current and target parameters immediately,
|
||||||
i.e. we should NOT interpolate them slowly in.
|
i.e. we should NOT interpolate them slowly in.
|
||||||
*/
|
*/
|
||||||
/*if (DEBUG_5110) logerror("processing frame: VOICED->UNVOICED frame change\n");*/
|
/*if (DEBUG_5110) logerror("processing frame: VOICED->UNVOICED frame change\n");*/
|
||||||
tms->target_energy = tms->new_energy;
|
tms->target_energy = tms->new_energy;
|
||||||
tms->target_pitch = tms->current_pitch = tms->new_pitch;
|
tms->target_pitch = tms->current_pitch = tms->new_pitch;
|
||||||
@ -662,7 +662,7 @@ empty:
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
CTL_set -- set CTL pins named CTL1, CTL2, CTL4 and CTL8
|
CTL_set -- set CTL pins named CTL1, CTL2, CTL4 and CTL8
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
@ -674,7 +674,7 @@ void tms5110_CTL_set(void *chip, int data)
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
PDC_set -- set Processor Data Clock. Execute CTL_pins command on hi-lo transition.
|
PDC_set -- set Processor Data Clock. Execute CTL_pins command on hi-lo transition.
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
@ -740,7 +740,7 @@ void tms5110_PDC_set(void *chip, int data)
|
|||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
|
|
||||||
parse_frame -- parse a new frame's worth of data; returns 0 if not enough bits in buffer
|
parse_frame -- parse a new frame's worth of data; returns 0 if not enough bits in buffer
|
||||||
|
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* 4449233
|
* 4449233
|
||||||
*
|
*
|
||||||
* All patents give interpolation coefficients
|
* All patents give interpolation coefficients
|
||||||
* { 8, 8, 8, 4, 4, 2, 2, 1 }
|
* { 8, 8, 8, 4, 4, 2, 2, 1 }
|
||||||
* This sequence will not calculate the published
|
* This sequence will not calculate the published
|
||||||
* fractions:
|
* fractions:
|
||||||
* 1 8 0.125
|
* 1 8 0.125
|
||||||
|
@ -755,8 +755,8 @@ static DISCRETE_SOUND_START(dkongjr)
|
|||||||
DISCRETE_74LS624( NODE_14, 1, NODE_13, 0.98*DK_SUP_V, JR_C22, DISC_LS624_OUT_ENERGY)
|
DISCRETE_74LS624( NODE_14, 1, NODE_13, 0.98*DK_SUP_V, JR_C22, DISC_LS624_OUT_ENERGY)
|
||||||
DISCRETE_RCDISC_MODULATED(NODE_15, 1, NODE_12, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V)
|
DISCRETE_RCDISC_MODULATED(NODE_15, 1, NODE_12, NODE_14, 120, JR_R27, RES_K(0.001), JR_R28, JR_C28, DK_SUP_V)
|
||||||
/* The following circuit does not match 100%, however works.
|
/* The following circuit does not match 100%, however works.
|
||||||
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
||||||
*/
|
*/
|
||||||
DISCRETE_CRFILTER_VREF(NODE_16, 1, NODE_15, JR_R4, JR_C23, 2.5)
|
DISCRETE_CRFILTER_VREF(NODE_16, 1, NODE_15, JR_R4, JR_C23, 2.5)
|
||||||
DISCRETE_RCFILTER(DS_OUT_SOUND1, 1, NODE_16, JR_R19, JR_C21)
|
DISCRETE_RCFILTER(DS_OUT_SOUND1, 1, NODE_16, JR_R19, JR_C21)
|
||||||
|
|
||||||
@ -769,8 +769,8 @@ static DISCRETE_SOUND_START(dkongjr)
|
|||||||
DISCRETE_LS123_INV(NODE_25, DS_SOUND2_INV, JR_R17, JR_C27)
|
DISCRETE_LS123_INV(NODE_25, DS_SOUND2_INV, JR_R17, JR_C27)
|
||||||
DISCRETE_RCDISC_MODULATED(NODE_26, 1, NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V)
|
DISCRETE_RCDISC_MODULATED(NODE_26, 1, NODE_25, NODE_21, 120, JR_R24, RES_K(0.001), JR_R18, JR_C29, DK_SUP_V)
|
||||||
/* The following circuit does not match 100%, however works.
|
/* The following circuit does not match 100%, however works.
|
||||||
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
* To be exact, we need a C-R-C-R circuit, we actually do not have.
|
||||||
*/
|
*/
|
||||||
DISCRETE_CRFILTER_VREF(NODE_27, 1, NODE_26, JR_R6, JR_C30, 2.5)
|
DISCRETE_CRFILTER_VREF(NODE_27, 1, NODE_26, JR_R6, JR_C30, 2.5)
|
||||||
DISCRETE_RCFILTER(DS_OUT_SOUND2, 1, NODE_27, JR_R2, JR_C25)
|
DISCRETE_RCFILTER(DS_OUT_SOUND2, 1, NODE_27, JR_R2, JR_C25)
|
||||||
|
|
||||||
@ -839,8 +839,8 @@ static DISCRETE_SOUND_START(dkongjr)
|
|||||||
DISCRETE_MIXER5(NODE_288, 1, DS_OUT_SOUND9, DS_OUT_SOUND0, DS_OUT_SOUND2, DS_OUT_SOUND1, DS_OUT_DAC, &dkongjr_mixer_desc)
|
DISCRETE_MIXER5(NODE_288, 1, DS_OUT_SOUND9, DS_OUT_SOUND0, DS_OUT_SOUND2, DS_OUT_SOUND1, DS_OUT_DAC, &dkongjr_mixer_desc)
|
||||||
|
|
||||||
/* Amplifier: internal amplifier
|
/* Amplifier: internal amplifier
|
||||||
* Just a 1:n amplifier without filters - just the output filter
|
* Just a 1:n amplifier without filters - just the output filter
|
||||||
*/
|
*/
|
||||||
DISCRETE_CRFILTER(NODE_295,1,NODE_288, 1000, JR_C13)
|
DISCRETE_CRFILTER(NODE_295,1,NODE_288, 1000, JR_C13)
|
||||||
DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 10)
|
DISCRETE_OUTPUT(NODE_295, 32767.0/5.0 * 10)
|
||||||
|
|
||||||
@ -937,32 +937,32 @@ Addresses found at @0x510, cpu2
|
|||||||
18 C1 (5100: NC)
|
18 C1 (5100: NC)
|
||||||
3 CLK (5100: ROM-CK)
|
3 CLK (5100: ROM-CK)
|
||||||
|
|
||||||
For documentation purposes:
|
For documentation purposes:
|
||||||
|
|
||||||
Addresses
|
Addresses
|
||||||
{ 0x0000, 0x007a, 0x018b, 0x0320, 0x036c, 0x03c4, 0x041c, 0x0520, 0x063e }
|
{ 0x0000, 0x007a, 0x018b, 0x0320, 0x036c, 0x03c4, 0x041c, 0x0520, 0x063e }
|
||||||
and related samples interface
|
and related samples interface
|
||||||
|
|
||||||
static const char *const radarsc1_sample_names[] =
|
static const char *const radarsc1_sample_names[] =
|
||||||
{
|
{
|
||||||
"*radarsc1",
|
"*radarsc1",
|
||||||
"10.wav",
|
"10.wav",
|
||||||
"12.wav",
|
"12.wav",
|
||||||
"14.wav",
|
"14.wav",
|
||||||
"16.wav",
|
"16.wav",
|
||||||
"18.wav",
|
"18.wav",
|
||||||
"1A.wav",
|
"1A.wav",
|
||||||
"1C.wav",
|
"1C.wav",
|
||||||
"1E.wav",
|
"1E.wav",
|
||||||
"20.wav",
|
"20.wav",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct Samplesinterface radarsc1_samples_interface =
|
static const struct Samplesinterface radarsc1_samples_interface =
|
||||||
{
|
{
|
||||||
8,
|
8,
|
||||||
radarsc1_sample_names
|
radarsc1_sample_names
|
||||||
};
|
};
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1004,16 +1004,16 @@ static READ8_HANDLER( dkong_sh_t1_r )
|
|||||||
static WRITE8_HANDLER( dkong_voice_w )
|
static WRITE8_HANDLER( dkong_voice_w )
|
||||||
{
|
{
|
||||||
/* only provided for documentation purposes
|
/* only provided for documentation purposes
|
||||||
* not actually used
|
* not actually used
|
||||||
*/
|
*/
|
||||||
logerror("dkong_speech_w: 0x%02x\n", data);
|
logerror("dkong_speech_w: 0x%02x\n", data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static READ8_HANDLER( dkong_voice_status_r )
|
static READ8_HANDLER( dkong_voice_status_r )
|
||||||
{
|
{
|
||||||
/* only provided for documentation purposes
|
/* only provided for documentation purposes
|
||||||
* not actually used
|
* not actually used
|
||||||
*/
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,12 +59,12 @@ Done:
|
|||||||
|
|
||||||
Couriersud: 12/2007
|
Couriersud: 12/2007
|
||||||
|
|
||||||
- Cosmetic changes
|
- Cosmetic changes
|
||||||
- Fixed regression in radarscp sound
|
- Fixed regression in radarscp sound
|
||||||
- Added dipswitch locations to dkong3b
|
- Added dipswitch locations to dkong3b
|
||||||
- Added dkongjr discrete sound
|
- Added dkongjr discrete sound
|
||||||
- Proper interface Z80 - I8035 for dkongjr
|
- Proper interface Z80 - I8035 for dkongjr
|
||||||
- Changed discrete sound output factors
|
- Changed discrete sound output factors
|
||||||
- changed dkong/radarscp based games to use hardware-conformant I8035 memory maps
|
- changed dkong/radarscp based games to use hardware-conformant I8035 memory maps
|
||||||
- Added drakton clone drktnjr on dkongjr hardware
|
- Added drakton clone drktnjr on dkongjr hardware
|
||||||
- wrote M58817 sound driver and hooked it up
|
- wrote M58817 sound driver and hooked it up
|
||||||
|
@ -142,7 +142,7 @@ static WRITE32_HANDLER( cmos_protect_w )
|
|||||||
static READ32_HANDLER( timekeeper_r )
|
static READ32_HANDLER( timekeeper_r )
|
||||||
{
|
{
|
||||||
UINT8 result = timekeeper_0_r(offset);
|
UINT8 result = timekeeper_0_r(offset);
|
||||||
// logerror("%06X:cmos_time_r(%X) = %02X\n", activecpu_get_pc(), offset, result);
|
// logerror("%06X:cmos_time_r(%X) = %02X\n", activecpu_get_pc(), offset, result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ static WRITE32_HANDLER( timekeeper_w )
|
|||||||
{
|
{
|
||||||
if (!cmos_protected)
|
if (!cmos_protected)
|
||||||
{
|
{
|
||||||
// logerror("%06X:cmos_time_w(%X) = %02X\n", activecpu_get_pc(), offset, data);
|
// logerror("%06X:cmos_time_w(%X) = %02X\n", activecpu_get_pc(), offset, data);
|
||||||
timekeeper_0_w(offset, data);
|
timekeeper_0_w(offset, data);
|
||||||
}
|
}
|
||||||
cmos_protected = TRUE;
|
cmos_protected = TRUE;
|
||||||
|
@ -26,9 +26,9 @@
|
|||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
|
|
||||||
rjetus:
|
rjetus:
|
||||||
- If you get a blank screen on startup you need to press F2 and choose "Reset settings",
|
- If you get a blank screen on startup you need to press F2 and choose "Reset settings",
|
||||||
followed by "Exit". This will create a proper NVRAM
|
followed by "Exit". This will create a proper NVRAM
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Alpha blending. Screen shot on www.system16.com show that during attract mode
|
- Alpha blending. Screen shot on www.system16.com show that during attract mode
|
||||||
|
@ -1040,13 +1040,13 @@ static void zeus_draw_quad(const UINT32 *databuffer, UINT32 texoffs, int logit)
|
|||||||
poly_extra_data *extra;
|
poly_extra_data *extra;
|
||||||
poly_vertex clipvert[8];
|
poly_vertex clipvert[8];
|
||||||
poly_vertex vert[4];
|
poly_vertex vert[4];
|
||||||
// float uscale, vscale;
|
// float uscale, vscale;
|
||||||
float maxy, maxx;
|
float maxy, maxx;
|
||||||
// int val1, val2, texwshift;
|
// int val1, val2, texwshift;
|
||||||
int numverts;
|
int numverts;
|
||||||
int i;
|
int i;
|
||||||
// INT16 normal[3];
|
// INT16 normal[3];
|
||||||
// INT32 rotnormal[3];
|
// INT32 rotnormal[3];
|
||||||
int texmode = texoffs & 0xffff;
|
int texmode = texoffs & 0xffff;
|
||||||
|
|
||||||
if (logit)
|
if (logit)
|
||||||
@ -1065,43 +1065,43 @@ if (input_code_pressed(KEYCODE_Y) && (texoffs & 0xffff) == 0x0dd) return;
|
|||||||
callback = render_poly_8bit;
|
callback = render_poly_8bit;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
0 38800000
|
0 38800000
|
||||||
1 x2 | x1
|
1 x2 | x1
|
||||||
2 v1 | u1
|
2 v1 | u1
|
||||||
3 y2 | y1
|
3 y2 | y1
|
||||||
4 v2 | u2
|
4 v2 | u2
|
||||||
5 z2 | z1
|
5 z2 | z1
|
||||||
6 v3 | u3
|
6 v3 | u3
|
||||||
7 v4 | u4
|
7 v4 | u4
|
||||||
8 ???
|
8 ???
|
||||||
9 x4 | x3
|
9 x4 | x3
|
||||||
10 y4 | y3
|
10 y4 | y3
|
||||||
11 z4 | z3
|
11 z4 | z3
|
||||||
|
|
||||||
In memory:
|
In memory:
|
||||||
+0 = ???
|
+0 = ???
|
||||||
+1 = set via $05410000/value
|
+1 = set via $05410000/value
|
||||||
+2 = x1
|
+2 = x1
|
||||||
+3 = y1
|
+3 = y1
|
||||||
+4 = z1
|
+4 = z1
|
||||||
+5 = x2
|
+5 = x2
|
||||||
+6 = y2
|
+6 = y2
|
||||||
+7 = z2
|
+7 = z2
|
||||||
+8 = x3
|
+8 = x3
|
||||||
+9 = y3
|
+9 = y3
|
||||||
+10= z3
|
+10= z3
|
||||||
+11= x4
|
+11= x4
|
||||||
+12= y4
|
+12= y4
|
||||||
+13= z4
|
+13= z4
|
||||||
+14= uv1
|
+14= uv1
|
||||||
+15= uv2
|
+15= uv2
|
||||||
+16= uv3
|
+16= uv3
|
||||||
+17= uv4
|
+17= uv4
|
||||||
+18= set via $05200000/$05000000 | (value << 10) (uvoffset?)
|
+18= set via $05200000/$05000000 | (value << 10) (uvoffset?)
|
||||||
+19= ???
|
+19= ???
|
||||||
|
|
||||||
|
|
||||||
38810000 00000000 00C7|FF38 FF5E|FF5E 15400154 11400114 00000000 00000000 FF38|00C7 00A3|00A3 -- quad
|
38810000 00000000 00C7|FF38 FF5E|FF5E 15400154 11400114 00000000 00000000 FF38|00C7 00A3|00A3 -- quad
|
||||||
xxxx|xxxx yyyy|yyyy xxxx|xxxx yyyy|yyyy
|
xxxx|xxxx yyyy|yyyy xxxx|xxxx yyyy|yyyy
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1131,29 +1131,29 @@ In memory:
|
|||||||
vert[3].p[2] = (databuffer[5] >> 22) & 0xff;
|
vert[3].p[2] = (databuffer[5] >> 22) & 0xff;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
vert[0].x = (INT16)databuffer[1];
|
vert[0].x = (INT16)databuffer[1];
|
||||||
vert[0].y = (INT16)databuffer[3];
|
vert[0].y = (INT16)databuffer[3];
|
||||||
vert[0].p[0] = (INT16)databuffer[5];
|
vert[0].p[0] = (INT16)databuffer[5];
|
||||||
vert[0].p[1] = (UINT16)databuffer[2];
|
vert[0].p[1] = (UINT16)databuffer[2];
|
||||||
vert[0].p[2] = (UINT16)(databuffer[2] >> 16);
|
vert[0].p[2] = (UINT16)(databuffer[2] >> 16);
|
||||||
|
|
||||||
vert[1].x = (INT16)(databuffer[1] >> 16);
|
vert[1].x = (INT16)(databuffer[1] >> 16);
|
||||||
vert[1].y = (INT16)(databuffer[3] >> 16);
|
vert[1].y = (INT16)(databuffer[3] >> 16);
|
||||||
vert[1].p[0] = (INT16)(databuffer[5] >> 16);
|
vert[1].p[0] = (INT16)(databuffer[5] >> 16);
|
||||||
vert[1].p[1] = (UINT16)databuffer[4];
|
vert[1].p[1] = (UINT16)databuffer[4];
|
||||||
vert[1].p[2] = (UINT16)(databuffer[4] >> 16);
|
vert[1].p[2] = (UINT16)(databuffer[4] >> 16);
|
||||||
|
|
||||||
vert[2].x = (INT16)databuffer[9];
|
vert[2].x = (INT16)databuffer[9];
|
||||||
vert[2].y = (INT16)databuffer[10];
|
vert[2].y = (INT16)databuffer[10];
|
||||||
vert[2].p[0] = (INT16)databuffer[11];
|
vert[2].p[0] = (INT16)databuffer[11];
|
||||||
vert[2].p[1] = (UINT16)databuffer[6];
|
vert[2].p[1] = (UINT16)databuffer[6];
|
||||||
vert[2].p[2] = (UINT16)(databuffer[6] >> 16);
|
vert[2].p[2] = (UINT16)(databuffer[6] >> 16);
|
||||||
|
|
||||||
vert[3].x = (INT16)(databuffer[9] >> 16);
|
vert[3].x = (INT16)(databuffer[9] >> 16);
|
||||||
vert[3].y = (INT16)(databuffer[10] >> 16);
|
vert[3].y = (INT16)(databuffer[10] >> 16);
|
||||||
vert[3].p[0] = (INT16)(databuffer[11] >> 16);
|
vert[3].p[0] = (INT16)(databuffer[11] >> 16);
|
||||||
vert[3].p[1] = (UINT16)databuffer[7];
|
vert[3].p[1] = (UINT16)databuffer[7];
|
||||||
vert[3].p[2] = (UINT16)(databuffer[7] >> 16);
|
vert[3].p[2] = (UINT16)(databuffer[7] >> 16);
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
@ -1187,7 +1187,7 @@ vert[i].p[0] += zbase;
|
|||||||
// 412.0f here works for crusnexo
|
// 412.0f here works for crusnexo
|
||||||
float ooz = 512.0f / clipvert[i].p[0];
|
float ooz = 512.0f / clipvert[i].p[0];
|
||||||
|
|
||||||
// ooz *= 1.0f / (512.0f * 512.0f);
|
// ooz *= 1.0f / (512.0f * 512.0f);
|
||||||
|
|
||||||
clipvert[i].x *= ooz;
|
clipvert[i].x *= ooz;
|
||||||
clipvert[i].y *= ooz;
|
clipvert[i].y *= ooz;
|
||||||
@ -1271,11 +1271,11 @@ static void render_poly_8bit(void *dest, INT32 scanline, const poly_extent *exte
|
|||||||
INT32 curz = extent->param[0].start;
|
INT32 curz = extent->param[0].start;
|
||||||
INT32 curu = extent->param[1].start;
|
INT32 curu = extent->param[1].start;
|
||||||
INT32 curv = extent->param[2].start;
|
INT32 curv = extent->param[2].start;
|
||||||
// INT32 curi = extent->param[3].start;
|
// INT32 curi = extent->param[3].start;
|
||||||
INT32 dzdx = extent->param[0].dpdx;
|
INT32 dzdx = extent->param[0].dpdx;
|
||||||
INT32 dudx = extent->param[1].dpdx;
|
INT32 dudx = extent->param[1].dpdx;
|
||||||
INT32 dvdx = extent->param[2].dpdx;
|
INT32 dvdx = extent->param[2].dpdx;
|
||||||
// INT32 didx = extent->param[3].dpdx;
|
// INT32 didx = extent->param[3].dpdx;
|
||||||
const void *texbase = extra->texbase;
|
const void *texbase = extra->texbase;
|
||||||
const void *palbase = extra->palbase;
|
const void *palbase = extra->palbase;
|
||||||
UINT16 transcolor = extra->transcolor;
|
UINT16 transcolor = extra->transcolor;
|
||||||
@ -1317,7 +1317,7 @@ static void render_poly_8bit(void *dest, INT32 scanline, const poly_extent *exte
|
|||||||
curz += dzdx;
|
curz += dzdx;
|
||||||
curu += dudx;
|
curu += dudx;
|
||||||
curv += dvdx;
|
curv += dvdx;
|
||||||
// curi += didx;
|
// curi += didx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,4 +9,4 @@
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
const char build_version[] = "0.122u1 ("__DATE__")";
|
const char build_version[] = "0.122u2 ("__DATE__")";
|
||||||
|
Loading…
Reference in New Issue
Block a user