I don't know how the colors from a real N64 compare to the colors from the emulator.
Unfortunately, I only found a low quality YouTube video for DOTA's video. I downloaded it in Mp4 format.
VLC's frame extraction tool apparently wasn't working on Mp4s.
My Windows 10 had some strange Read-Only folder bug which wouldn't let me gain write access. It took me a while to fix this as most solutions didn't work.
I wrote a Java program to take 300 fullscreen screengrabs while I played the video in fullscreen in VLC. Hopefully this captured every frame available, but maybe there are missing frames uncaptured.
I looked up edge detection algorithms. There is Canny's and Sobel's. Sobel's looked to give better results, so I went with that one.
The original results returned black images with white edges. I found an inversion algorithm to return white images with black edges.
I produced the inverted edges images for the 300 frames I screenshotted.
I don't know if it would be wiser to compare colors from the original video, to colors from the outputted screenshot from the emulator, or if it would be wiser to compare the colors of the edges from the original video and the outputted screenshot from the emulator.
My hope in creating the black-and-white edge images would be to make it easier to write an algorithm to compare a frame from the original video with an outputted frame from the emulator.
Going one frame at a time, we need to store the set of inputs which yield a match of the edges for that frame, given the input sequence up to that frame.
Also, thoughts about running a genetic algorithm keep popping into my mind. Rather than just fuzz-testing with random inputs, or inputs that match the images or image of the edges, I'm thinking we give a fitness value to how close the images match, and a gigantic boost to the fitness value if the upwarp occurs. That is, between the frames where Mario is on the lower platform to when he is on the higher platform, if those inputs can yield a match, then we have a winner. I guess if we have a winner we don't need to assign a fitness value and evolve the inputs any more, because we would already have a faithful replication of the glitch.
Anyway, I'm just trying to think of ways of fuzz testing this more intelligently than random inputs. My ideas have been around simplifying the frame comparisons, and also using genetic algorithms to evolve the inputs more intelligently toward finding the solution.
Because I posted this video without the hanging ceiling:
https://www.youtube.com/watch?v=VV1dzNzRYkU I am inclined to think this is a replicable glitch, even though I know that video was taken of a ROM hack.
I would post all the inverted edge pics somewhere, but all 300 of them come out to around 180mb.
Here is a frame to show the kind of results I got. I think the effect of a disappearing coin (after Mario touched it) is visible in it near the platform.
https://i.ibb.co/f2gThDn/frame099.png
If I had a higher quality original video than the one downloaded from YouTube, I would expect the edges to come out crisper.