apply 1.21.3

This commit is contained in:
zeromus 2020-04-06 02:22:08 -04:00
parent b13c3c7289
commit 558de454a9
8 changed files with 34 additions and 16 deletions

View File

@ -180,4 +180,17 @@
[OK] endian / many updates, probably for performance
[OK] psx/irq : tidy
[OK] psx/gpu : tidy
[OK] tests: add some gcc tests, and tests for various cpu archs
[OK] tests: add some gcc tests, and tests for various cpu archs
0.9.48 -> 1.21.3
[OK] psx/cdc : add static asserts (useless: change how variables are saved)
[NO] psx/cpu : change how variables are saved
[NO] psx/frontio : change how variables are saved
[OK] psx/gpu : odd fix to lightgun coords, maybe pointless; change how variables are saved; optimization to GetTexel
[OK] psx/gte : add static asserts (useless: change how variables are saved)
[NO] psx/input/* : variable saving, and change to input device setup
[NO] psx/input/mouse : input buffer format changed? must be due to input device changes in 1.x update
[OK] psx/input/multitap : MDAP ? weird
[ON] psx/mdec : MDAP? (ignored: variable saving)
[NO] psx/psx : frontend memcard error handling, changes from strncasecmp to MDFN_strazicmp and etc; change to ReadSector API?
[NO] psx/spu : ignored: variable saving

View File

@ -8,3 +8,6 @@
EW_EXPORT int os_test();
#include <type_traits>
template<typename T> typename std::remove_all_extents<T>::type* MDAP(T* v) { return (typename std::remove_all_extents<T>::type*)v; }

View File

@ -620,6 +620,7 @@ struct XA_Subheader
uint8 submode_dup;
uint8 coding_dup;
});
static_assert(sizeof(XA_Subheader) == 8, "XA_Subheader wrong size!");
EW_PACKED(
struct XA_SoundGroup
@ -627,6 +628,7 @@ struct XA_SoundGroup
uint8 params[16];
uint8 samples[112];
});
static_assert(sizeof(XA_SoundGroup) == 128, "XA_SoundGroup wrong size!");
#define XA_SUBMODE_EOF 0x80
#define XA_SUBMODE_REALTIME 0x40

View File

@ -170,10 +170,10 @@ void PS_GPU_FillVideoParams(MDFNGI* gi)
//
// For Justifier and Guncon.
//
gi->mouse_scale_x = (float)gi->lcm_width / gi->nominal_width;
gi->mouse_offs_x = (float)(2800 - gi->lcm_width) / 2;
gi->mouse_scale_y = 1.0;
gi->mouse_scale_x = (float)gi->lcm_width;
gi->mouse_offs_x = (float)(2800 - gi->lcm_width) / 2;
gi->mouse_scale_y = gi->nominal_height;
gi->mouse_offs_y = LineVisFirst;
}

View File

@ -287,10 +287,7 @@ static INLINE uint16 GetTexel(uint32 u_arg, uint32 v_arg)
// We'll be conservative and just go with 4 for now, until we can run some tests with triangles too.
//
DrawTimeAvail -= 4;
c->Data[0] = (&GPURAM[0][0])[gro &~ 0x3];
c->Data[1] = (&GPURAM[0][1])[gro &~ 0x3];
c->Data[2] = (&GPURAM[0][2])[gro &~ 0x3];
c->Data[3] = (&GPURAM[0][3])[gro &~ 0x3];
memcpy(c->Data, (uint16*)GPURAM + (gro &~ 0x3), 4 * sizeof(uint16));
c->Tag = (gro &~ 0x3);
}

View File

@ -59,6 +59,9 @@ struct gtematrix
int16 MX[3][3];
int16 dummy;
});
#ifndef PSXDEV_GTE_TESTING
static_assert(sizeof(gtematrix) == 20, "gtematrix wrong size!");
#endif
typedef struct
{

View File

@ -355,7 +355,7 @@ bool InputDevice_Multitap::Clock(bool TxD, int32 &dsr_pulse_delay)
fm_buffer[i][byte_counter - 0x03] &= (pad_devices[i]->Clock((sb[i][byte_counter - 0x03] >> bit_counter) & 1, tmp_pulse_delay[0][i]) << bit_counter) | (~(1U << bit_counter));
}
}
ret &= ((&fm_buffer[0][0])[byte_counter - 0x03] >> bit_counter) & 1;
ret &= (MDAP(fm_buffer)[byte_counter - 0x03] >> bit_counter) & 1;
}
}
else // to if(full_mode)

View File

@ -573,12 +573,12 @@ static INLINE void WriteImageData(uint16 V, int32* eat_cycles)
switch(DecodeWB)
{
case 0: IDCT(Coeff, &block_cr[0][0]); break;
case 1: IDCT(Coeff, &block_cb[0][0]); break;
case 2: IDCT(Coeff, &block_y[0][0]); break;
case 3: IDCT(Coeff, &block_y[0][0]); break;
case 4: IDCT(Coeff, &block_y[0][0]); break;
case 5: IDCT(Coeff, &block_y[0][0]); break;
case 0: IDCT(Coeff, MDAP(block_cr)); break;
case 1: IDCT(Coeff, MDAP(block_cb)); break;
case 2: IDCT(Coeff, MDAP(block_y)); break;
case 3: IDCT(Coeff, MDAP(block_y)); break;
case 4: IDCT(Coeff, MDAP(block_y)); break;
case 5: IDCT(Coeff, MDAP(block_y)); break;
}
// Timing in the PS1 MDEC is complex due to (apparent) pipelining, but the average when decoding a large number of blocks is