Floaty controls FAQ.
Floaty controls FAQ.
Many people complain about such a thing, and yet many od not notice. Is it real? If so, what is the cause?
It definitely is real, and there are three things that mess emulation players up.
1) Input lag. In a real arcade game, the inputs are ALWAYS mapped directly to a region of IO memory. clicking a switch directly twiddles a bit in memory. The game program simply polls this emory location once per vblank, and decides to act on it. This creates very tight control. Older games, like SPace Invaders, has very floaty control frm te getgo because they were early efforts.
Now we wish to emulate the arcade. You have to map external inputs to emulated I/O memory. This is not possible to do in real time.WIth keyboard input, you have a keydown event detected by the keyboard. The keyboard encoder encodes this, send it over the keyboard line, and the decoder on the motherboar dconverts this back into a keydown event, which is then recieved by the program, which is then checked to make sure it corresponds to one of the game's keys, and if so, it updates the emluated I/O meory. ANd tha'ts damn hard to do in less than one vblank.
USB joypads aren't much better. Again, we have two conversions to deal with, though it's easier to check a usb devices inputs and map them quicker. And if we are converting a controller with a usb converter, it's even worse. we have to translate the controller's protocol, which is often an encoding of it's own with modern consoles. Again, we lose one vblank or more here usually.
2) Emulation lag. This is worse on some emulators and platforms than others. it's simply the delay between when the PC recieves the input and the emulated memor map is updated. emulation deficiencies can increase that significantly, and that's probably what is happening with the Raizing games. ANother source is if the input handler is relying on hardwar einterrupts, and the interrupts aren't properly emulated, then that can throw things off. A frame here, a frame there, and we are running on ice skates
3) Timer imprecision. Since PC operating systems have this annoying habit of multi-tasking, and PC clocks are often unstable, and pc devices use interrupt request lines of their own, sometimes keyup/keydown events get delayed on their way from the keyboard decoderto the program because another interrupt is happening first. and this delay is not very consistent. This results in messing up your tap-dodges. you often won't move at all or will move too far.
Emulation is a wonderful thing, and for many game types the imprecision and lag dont' affects you too much once you adjust, but for modern shmups, it makes a difference. Play on a real PCB< or a good consoel port for a better experience.
Old consoles (atari 2600, etc) handled inputs the same way that arcades did. Newre ones (psx) need to use an encoded protcol to send more button events than they have wires to send them on. But with highly optimized hardware, the controller lag on a modern console is minimal, and since many arcade plaforms themselves have 1 frame of sprite lag, no one notices anything wrong with the ports control.
It definitely is real, and there are three things that mess emulation players up.
1) Input lag. In a real arcade game, the inputs are ALWAYS mapped directly to a region of IO memory. clicking a switch directly twiddles a bit in memory. The game program simply polls this emory location once per vblank, and decides to act on it. This creates very tight control. Older games, like SPace Invaders, has very floaty control frm te getgo because they were early efforts.
Now we wish to emulate the arcade. You have to map external inputs to emulated I/O memory. This is not possible to do in real time.WIth keyboard input, you have a keydown event detected by the keyboard. The keyboard encoder encodes this, send it over the keyboard line, and the decoder on the motherboar dconverts this back into a keydown event, which is then recieved by the program, which is then checked to make sure it corresponds to one of the game's keys, and if so, it updates the emluated I/O meory. ANd tha'ts damn hard to do in less than one vblank.
USB joypads aren't much better. Again, we have two conversions to deal with, though it's easier to check a usb devices inputs and map them quicker. And if we are converting a controller with a usb converter, it's even worse. we have to translate the controller's protocol, which is often an encoding of it's own with modern consoles. Again, we lose one vblank or more here usually.
2) Emulation lag. This is worse on some emulators and platforms than others. it's simply the delay between when the PC recieves the input and the emulated memor map is updated. emulation deficiencies can increase that significantly, and that's probably what is happening with the Raizing games. ANother source is if the input handler is relying on hardwar einterrupts, and the interrupts aren't properly emulated, then that can throw things off. A frame here, a frame there, and we are running on ice skates
3) Timer imprecision. Since PC operating systems have this annoying habit of multi-tasking, and PC clocks are often unstable, and pc devices use interrupt request lines of their own, sometimes keyup/keydown events get delayed on their way from the keyboard decoderto the program because another interrupt is happening first. and this delay is not very consistent. This results in messing up your tap-dodges. you often won't move at all or will move too far.
Emulation is a wonderful thing, and for many game types the imprecision and lag dont' affects you too much once you adjust, but for modern shmups, it makes a difference. Play on a real PCB< or a good consoel port for a better experience.
Old consoles (atari 2600, etc) handled inputs the same way that arcades did. Newre ones (psx) need to use an encoded protcol to send more button events than they have wires to send them on. But with highly optimized hardware, the controller lag on a modern console is minimal, and since many arcade plaforms themselves have 1 frame of sprite lag, no one notices anything wrong with the ports control.
Wait, what about just plain 'ol poor control algorithms that are either inefficiently coded or feature a delay that couldn't be removed without affecting other factors in movement (like acceleration and deceleration) or just the plain fact that the programmers didn't know how to code well?
After all, poor controls in the early 90's on 16-bit systems was solely due to a lack of good control-to-movement algorithms. That's why you have for example on the Genesis very responsive games like Aladdin and very sluggish games such as Normy's Beach Babe-o-Rama around the same time in the same genre.
However, some games like Castlevania retained stiffness to adhere to series traditions even though its sister series like Contra showed that fluid controls could already be achieved and used instead.
After all, poor controls in the early 90's on 16-bit systems was solely due to a lack of good control-to-movement algorithms. That's why you have for example on the Genesis very responsive games like Aladdin and very sluggish games such as Normy's Beach Babe-o-Rama around the same time in the same genre.
However, some games like Castlevania retained stiffness to adhere to series traditions even though its sister series like Contra showed that fluid controls could already be achieved and used instead.
Don't forget the Mario series!
SMB1's controls were a little stiff when it came to jumping. SMB2, SMB3, and SMW improved the controls greatly.
Also, try playing the Nes Zelda after playing the GBA or SNES Zeldas. Who'd knew the granddaddy of the series had such clunky control? (Due in fact that Link could only move in 4 directions)
SMB1's controls were a little stiff when it came to jumping. SMB2, SMB3, and SMW improved the controls greatly.
Also, try playing the Nes Zelda after playing the GBA or SNES Zeldas. Who'd knew the granddaddy of the series had such clunky control? (Due in fact that Link could only move in 4 directions)
Shmups: It's all about blowing stuff up!
-
dai jou bu
- Posts: 590
- Joined: Sat Apr 16, 2005 10:05 pm
- Location: Where hands connect
I get that lag sometimes. It really sucks when it happens while you're fighting the last boss in Ys Felghana where I expected my avatar to jump over the boss' flame attack but ends up running into them instead. Also happens sometimes when I'm playing a fighting game and I input some commands a little bit too "soon" for the PC to process, and my character ends up standing there for 1 second and I end up having to redirect my character's momentum somewhere else.
I've gotten used to it somewhat.
I've gotten used to it somewhat.
Way to be off topic, peoples. 
SUre, bad codign in games can cause lag. Spae invaders is a PRIME example here. it controlls very badly, and that's not the emulators fault, the real hardware is just as bad.
My point was that even when the real game is perfect (as is the case in most modern shmups) that the emulation process introduces many more problems that mess with the response time and precision.

SUre, bad codign in games can cause lag. Spae invaders is a PRIME example here. it controlls very badly, and that's not the emulators fault, the real hardware is just as bad.
My point was that even when the real game is perfect (as is the case in most modern shmups) that the emulation process introduces many more problems that mess with the response time and precision.
In general, the DC stick just doesn't feel as responsive as the Happ stick, despite the fact I use the Happ stick in emulation and the DC stick only on the DC. Obviously, I could provide a better argument if I were comparing a Happ competition stick on a PC with a Happ competition stick in a cab, but unfortunately I don't have that option.
Of course. But would you be asking then? Everything you mentioned is already undisputed fact from the creators of the emulators themselves...zaphod wrote: My point was that even when the real game is perfect (as is the case in most modern shmups) that the emulation process introduces many more problems that mess with the response time and precision.
You'd be suprized at the number of people who say things like
"the lag is correct to the arcade, because the orignal hardware has 1 frame of sprite lag!"
I understand what's really going on, and am simply trying to put it into terms others can understand.
I am in no way bagging on the emualtors. I'm just explaining why they seem so lifelesss compared to the real thing on occasion.
A faq isn't me asking a question, it's me answering a frequently asked one. hence the "Floaty Controls Faq"
"the lag is correct to the arcade, because the orignal hardware has 1 frame of sprite lag!"
I understand what's really going on, and am simply trying to put it into terms others can understand.
I am in no way bagging on the emualtors. I'm just explaining why they seem so lifelesss compared to the real thing on occasion.
A faq isn't me asking a question, it's me answering a frequently asked one. hence the "Floaty Controls Faq"

-
Ex_Mosquito
- Posts: 590
- Joined: Tue Jan 25, 2005 11:17 pm
- Location: United Kingdom, Newport S.Wales
i ALWAYS thought there was lagg in emulators but people were always saying there wasnt, glad i wasnt going mad. Thats why i never use usb converters, i'd prefer to hack a pad. Worst example of emu lagg i've found is on Air Gallet on finalburn pro on the xbox, omg its SOOO laggy totally unplayable.
My Arcade 1-Credit Replays
http://www.youtube.com/user/exmosquito
http://www.youtube.com/user/exmosquito