Haze, I think I had a bit of a misconception of these different types of buffering. I think I've got it now.
Mind if I break this down to a really basic conceptual level to make sure I understand?
Let's say there's a really tightly written arcade game with no buffering of any kind. At some time in between frames, the player presses the fire button. The very next frame is rendered to the screen (must be a CRT) with the character beginning a firing animation. Most real arcade games don't respond this quickly, but for the sake of argument we'll define this as zero frames of input lag. Any user input is apparent in the very next frame rendered on the screen; meaning no more than about 16.6ms after pressing the button, if the game's running at 60Hz.
Now let's say this exact game is emulated in MAME. At some time in between frames, the player presses the fire button. Due to the nature of emulation, this cannot be apparent as the very next frame is rendered on the screen. When the next frame is rendered on the screen, the character is not yet beginning the firing animation; the button press has just been detected in software. Then the frame with the character beginning the firing animation is rendered in software/VideoRAM/whatever in preparation for the next refresh, and it is rendered on the screen as the following frame. We'll define this as 1 frame of input lag. Any input is apparent in gameplay not upon the very next frame rendered on the screen, but one frame after that.
So, due to the nature of proper emulation, any game in MAME must always run 1 frame behind where the original game would be, or at game lag +1.
So, let's say that a normal arcade game runs at 2 frames of input lag. MAME should run at game lag +1, meaning 3 frames of input lag.
Do I have it so far?
As I said before, 1 frame of necessary lag is no problem, but are there cases where the game is running more than one frame behind the original game, and it could be improved?
For example if RSG runs at 4 frames of input lag, does that mean the original game ran at 3, or is more than 1 frame of lag coming from MAME due to the problems in emulating that hardware?
Are there cases with games running more than 1 frame behind on other hardware that would be easier to fix?