rdp: much better support for writes to hidden bits with 8-bit frame buffers; basic emulation of the VI nearest-neighbor filtering glitch.
rdp: improved writes to 8-bit frame buffers; minimal support for reading what the CPU and RSP wrote to hidden bits on our first access to them (it’s enough to keep the two games known to depend on this happy while removing the hack of initializing hidden bits to a fixed value); don’t update memory RGB when image_read_en is clear (apparently this behavior requires elements of cycle accuracy, my previous code was only very occasionally correct here).
Indiana Jones: small bug at intro
rdp: the alpha value that goes to alpha compare in two-cycle mode comes from the 1st alpha combiner cycle of the next pixel, is modified by the next pixel's coverage value, is unaffected by chroma keying and is dithered by the current pixel's dithering value; "shade alpha" in the 2nd blender cycle comes from the next pixel, yet it is also dithered by the current pixel's dithering value; reversed the two-cycle mode behavior of span-final pixels with respect to LOD, alpha compare and convert_on...
rdp: fixed the interaction between "field scissoring" and RDP-side dithering; avoid reading texels from the TMEM when they're not needed (convert && !bilerp).
Are you certain? This video claimed to have been recorded off a real N64 shows the same corruption on the right: https://www.youtube.com/watch?v=MEQBXn8_Nrc Note how the corrupted area only appears as the camera moves to the last newspaper article.
rdp: corrected alpha decoding in less popular texture formats when en_tlut is off, this includes a newly discovered nybble exchange hardware bug in YUV-32; emulated a hardware bug in the RDP's chroma keying where an addition operation outputs wrong sums with the probability of one in 16; revamped if/else hierarchy in triangular filtering to get rid of one (very predictable) branch instruction on the hottest code path; converted the most useless function pointers back to (very predictable) bra...
rdp: emulated the influence of texture coordinate fractions on yuv2rgb conversion; fixed and optimized mid_texel specific triangular filtering calculations; tiny cleanups.