No bug yet. But I'll concord a test ROM and beat that emulator to a pulp. Nah, just kidding. Regarding the flicker filter, what I do is implement an event system so that the draw opcode would actually just draw to a video RAM buffer. The draw opcode will also flag any collision to a separate flag, which contains both the start position of the sprite being drawn and the position of the collision, and then push the flag into an array. When a timer event occurs (mine counts 60 times per second), I'll fire an event to a pre-drawing routine. The pre-drawing routine will then look ahead in the buffer and see if a draw operation will occur within the time frame of the next timer event (since there is a set number of opcodes executed per time frame, this is easy). Now check if there is an erase operation flag, then check if there is a drawing routine in the time frame. If there is no drawing routine, raise the erase flag if it's not already raised, raise an intentional-flicker flag if the erase flag was raised. If there is a drawing routine, send a draw event if there is no erase flag, or if there is an intentional-flicker flag. Otherwise, clear all flags and flush the collision flag array. The drawing routine will then evaluate the collision flags and determine if it's an erase operation (start position of sprite is the same as the position of the collision), or just a normal collision detection (start position of sprite doesn't match the position of the collision). If there is an erase operation and the intentional-flicker flag was raised, render it. After this, clear all flags and flush the collision array. Then the rest is just render the video RAM buffer to the screen buffer. What is the collision array for? It's so that I don't render the entire screen all the time. I'll just read in the positions in the collision flags, compare it with existing sprite buffer and draw the pre-rendered sprite instead of re-rendering it. The positions will be used for motion-interpolation (ooh) so that instead of erasing and drawing the same sprite again, I'll just move it in the scene. Smoothly... (it's also actually used to compensate for the lag caused by the delayed rendering of some frames since obviously, this method doesn't render everything exactly when it occurs) That's how I'm doing flicker filter and motion-interpolation now. It's been perfect so far. There is practically no such thing as flicker anymore, and some games behave as if they were built in Flash. I'm only having problems with some drawing performance issues... But when those are sorted, I'll release the next version.