apply 1.21.3
This commit is contained in:
parent
b13c3c7289
commit
558de454a9
|
@ -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
|
|
@ -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; }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue