It's given someone knows high level language and assembly, he can produce more efficient and faster code in assembly since he can better deal with misalignment, registerizing variables, use the flags optimally, etc.
In a perfect world, where programmers are immaculate and hardware documentation is written by God himself. In the real world programmers have a hard time dealing with pointers in C and buffer overruns by 1 are common place. It gets even worse when folks start writing stuff in assembler, especially on processors with complicated opcodes and general purpose registers that aren't really general purpose.
>Second, I can read the value from two analog sticks and two analog flippers more than once per frame, I can do it as fast as the HID spec allows, and there can be a lot more analog controls on the device than that! Not so on the Amiga, only can do this once per frame. So much for the superior Amiga joy port.
No, now you are comparing another aspect of the Amiga joystick port-- the ability to deal with analog signals as well. Games pick the better interface-- the digital one. On PC even you are forced to use the analog joystick since that's the standard. And even in the analog case, Amiga reads the POTs with one MOVE-- the hardware is doing the sampling for you. I have never even seen an analog joystick on Amiga-- just paddles in some rare applications.
I'm just writing about the Amiga joystick port you've labeled as "superior". You don't get to dismiss reading potentiometers with said port just because it makes you mad it's so dang slow at doing that operation. Lots of games take in pot values. You're just gonna have to live with that.
>With the Amiga Joy port, I get one 1980's era standard boring as hell joystick. Just one per port. Imagine playing Gears of War or Crysis with such a joystick. Might as well sit on the damn thing. On the PC I can have a dozen gaming devices. Mice, keyboards, steering wheels, foot pedals, yokes, game pads, classic style joys, harddrives, video output devices, video input devices, audio output devices, audio input devices, and the list goes on and on. All on one bus. With the Amiga joy port, I get.... a joystick... an old crappy joystick whose metal contact switches tie directly to I/O pins on some bizarre custom chip that's capable of recording the full glory of raw signal bounce. Oh how superior!
Wrong. PC's gameport doesn't give you those options. USB bus gives you ability to have faster buffer transfers but Amiga uses a different port for buffer-based transfers. Digital joysticks are and were the norm for Ataris/Amigas/C64/Vic-20/Sega/STs/etc. whereas PCs were using the inferior analog joysticks. So the Amiga's joystick port is optimized for digital joysticks. Analog joysticks are crappy so only computer that used them were PCs which were NOT into gaming.
I wasn't refering to the damn db15 legacy PC game port that hasn't been screwed into the side of a case in the past 10 years. The bit about connecting harddrives , sound cards and multiple game pads should have been your clue that I was talking about USB.
>USB HID devices output perfect state information to the computer...
That's a speculative remark. Whatever you read from joystick port you can end up reading from USB HID device.
No it's not. You'll never read signal noise from a USB gaming device. Try it.
>All this being said, the Amiga joystick port is just another para interface hanging off a custom chip.
Aren't all ports some sort of interface hanging off a chip-- keyboard port on PC is hanging off some 8042 or compatible.
The 8042 *is* the ps/2 keyboard/mouse controller on the PC. The Amiga joystick port hangs off the Denise chip. A chip that handles video timings and sprite crap, and also apparently, the joystick interface. That's a hack, it probably wasn't even originally designed to be joystick interface.
>It is unusual in that you can fetch information from it rather quickly. One thing amigaski hasn't done in his argument is actually show real code that reads the joystick port as fast as he claims. He has a product which emulates joystick devices for the amiga by bit banging the para port on the pc, but notice he hasn't claimed there are games which are unusable using his hardware emulation product, which by it's very nature has to use the supposedly inferior db15 standard legacy joystick port or a keyboard for it's input.
I can also read digital joystick data and feed it to Amiga/Ataris not just analog joysticks. And the fact that I have gone through all these timings is why I am so certain the analog joysticks are slower and inferior to digital joysticks and on top of that the interface for reading even analog values on Amiga is superior (due to less CPU useage). By the way, the simulation of joysticks is only one part-- the same interface also simulates mice for various machines, disk drives, digitized paddles, etc.
It's not a big deal to write code to read joysticks as fast as I claim.
Of course reading the pots are slow, it's slow ass legacy hardware, on both the amiga side and PC side. It's been a long time since I've read the data from a db15 legacy pc joy port. Perhaps 15 years ago. Not that it matters, but how fast can you read a pot on a legacy PC joy port? Maybe getting a good reading from an old, cheap ass ADC is stupid slow. It's not on modern devices, the kind that plug into the USB port. The issue isn't that the device is slow, or that analog controls are crap, its that the hardware reading them is crap, and old.
>The only devices that i'm aware of that actually use the limits of the Amiga joyport are audio digitizers that tie in to that port. I wouldn't be surprised if others on here know of additional devices that can use the capability of this interface. There are two words that accurately describe the Amiga Joystick/Mouse port: weird and suboptimal.
Amazing that you labeled it "mouse port" but did not mention that Mouse is one of the devices that port handles. And you can send pulses through the joystick port for mouse every few microseconds (not milliseconds). Joystick port also handles Light Pens, Paddles, Dongle-stuff, and also lets you control pins for input or output for controlling custom devices although there's a parallel port for doing that as well.
[/quote]
Yea, sure, you can do all that with one port, but only one device on each port. Also, when was the last time you saw a light pen? Never saw one on the amiga, must have been mid 80's I ever saw one, and that was on some computer I can't recall, but it did have floppy disks the size of dinner plates.
On the PC, the legacy ports aren't used, they're often not even present. Nobody wants a slow port that can only have one device attached to it.
This whole argument that you have is based on two things: One is that you're comparing the Amiga joy port to a legacy db15 PC joy port that nobody uses anymore. That's ridiculous. The other is that you insist that polling the piss out of an analog stick whos mechanical switches tie directly onto the pins of the denise chip is of any value. I assure you it's not. All you're picking up is gobs of signal bounce. It's the farthest thing you could ever get from superior that one can imagine.
If you're gonna make a rational set of arguments, at least compare the Amiga joy port to an actual interface the PC uses, namely, USB. Anything else is dishonest and a waste of time.