Bumped version to 0.122u2. Spacing cleanups.

This commit is contained in:
Aaron Giles 2007-12-31 02:22:13 +00:00
parent 460437f8d1
commit 0e20c80517
20 changed files with 319 additions and 319 deletions

View File

@ -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;
} }

View File

@ -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
* *
*********************************************************************** ***********************************************************************
* *

View File

@ -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
******************************************************************************************/ ******************************************************************************************/

View File

@ -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

View File

@ -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;
} }

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;
} }
} }

View File

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