Welcome, Guest. Please login or register.

Author Topic: PC still playing Amiga catchup  (Read 219558 times)

Description:

0 Members and 63 Guests are viewing this topic.

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #809 from previous page: June 16, 2009, 01:36:38 PM »
Quote from: Trev;511445
No, I'm in the relevancy camp. No human can trigger a joystick input at 1 kHz, and no mainstream Amiga-compatible display has a refresh rate of 1 kHz. It's really a question of whether or not both an Amiga and a "PC" can sample, process, and respond to an input event in a timeframe that matters to both the application and the end user. In short, they both can.

Limiting the criteria under which either an Amiga or a "PC" can be said to be "still playing ... catchup" is a sad, sad way to win a debate in general terms. NTSC Amigas are faster than PAL Amigas, but that won't stop anyone from arguing over which is "better" in terms of end user experience. Change of subject: PAL Amiga still playing NTSC Amiga catchup?

My one thousandth post should have been more interesting.


It's still relevant though that joysticks are faster on Amiga since you use up less CPU time even if you read them 60Hz.  As for palette modes, I bet it's faster even on modern hardware to set up a paletted mode for editing cartoons, line-art, cad/cam, schematics, and other things that rely on exact coloring and do not want shading which would bloat the file size unnecessarily.  Paletted pictures would compress a lot more losslessly than saving them as 32-bit image files and would be far less data to deal with when editing them.  So in that case, swapping palette indices is a useful feature.  

If you want to argue PAL Amiga playing NTSC catchup-- you have to compare with timers.  Timers are suppose to work at exact rates.  And in that scenario, the Copper method of doing cycle-exact transactions w/ZERO latency is the ideal method of doing it.  Not only is it ZERO latency w/558ns accuracy, but there's not INTERRUPT overhead involved.  No stacks to save current processor conditions and return from interrupt.  Here Amiga wins as well.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline DonnyEMU

  • Hero Member
  • *****
  • Join Date: Sep 2002
  • Posts: 650
    • Show only replies by DonnyEMU
    • http://blog.donburnett.com
Re: PC still playing Amiga catchup
« Reply #810 on: June 16, 2009, 01:37:31 PM »
Simply put when the Amiga is running a CPU that is capable of decoding a 1080p Blu-Ray DVD and doing something else at the same time, then I'll believe that it's as fast as a pc or faster. legacy bus and ports which are designed to handle specific speeds and timer resolutions don't tell the tale, neither does the Front Side Bus  or North Bridge or Southbridge specs on a particular unit. Most SATA controllers today don't live up to the transfer speeds (even at burst rates) that are in their "general specification" due to other hardware factors.

Wait until we see wireless USB.. That will no doubt be an interesting discussion here. I can't belive we are having a timing resolution discussion here outside of the 1980s.. as they say "Only Amiga Makes it Possible!!"
======================================
Don Burnett Developer
http://blog.donburnett.com
don@donburnett.com
======================================
 

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #811 on: June 16, 2009, 01:38:41 PM »
Quote from: amigaksi;511564

Compatibility is a MAJOR thing to have.  CPUs weren't trying to keep up with GPUs as their target wasn't just pure math performance.  But they did maintain backward compatibility on hardware level.  

Erm, modern X86 CPUs includes micro-code translation engines i.e. on-chip firmware (look up tables) based decoders.

Quote from: amigaksi;511564

And I bet hardly anyone would upgrade to a new PC if it WASN'T backward compatible.  

Unlike the GPU, the CPU is the host for control code. The application of hit-the-metal vs abstraction are dependent on needs.
Amiga 1200 PiStorm32-Emu68-RPI 4B 4GB.
Ryzen 9 7900X, DDR5-6000 64 GB, RTX 4080 16 GB PC.
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: PC still playing Amiga catchup
« Reply #812 on: June 16, 2009, 01:43:03 PM »
amigaksi,

You're having a John Rambo moment: "The war is over, John. Let those people go in peace."
Go Go Gadget Signature!
 

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #813 on: June 16, 2009, 01:47:04 PM »
Quote from: Trev;511472
How is the registry an abomination? I'm not looking for a debate; I'm just curious as to why you think it is.

A simplified abstraction of the registry is the tooltype, but rather than store named values in a shortcut (which is just an instance of the IShellLink object persisted to disk), they're stored in a centralized database.

The registry is more flexible than an initialization file, and if necessary, the two can be used hand-in-hand through mapping and redirection, assuming standard Windows APIs--GetPrivateProfileString(), SetPrivateProfileString(), et al--are used by the target application. In a multi-user system, you can work wonders with the registry at the data level that just aren't possible with initialization files. (You can get quite crafty with initialization files, but at some point, you end up with a database-like series of overlays, i.e. the registry.)

Granted, the hierarchical nature of the registry often leads to unnecessary complexity, but when used properly, the registry is a valuable tool.


It's useful until it becomes corrupt and renders the entire system unbootable. And of course, you have to deal with applications that write stuff to it and never remove it (bloating it) and spyware/viruses screwing with it. Continuously reading/writing same file means higher probability of failure of system than reading/writing different files.  I have seen several systems that wouldn't go into Windows because of registry corruptions.  I suppose you can get "lucky" if the back-up didn't get corrupted as well.  However, it would still affect start-up/shut-down times since you could corrupt the registry if you just turn off the machine and restoring it would increase start-up time.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline GadgetMaster

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2177
    • Show only replies by GadgetMaster
Re: PC still playing Amiga catchup
« Reply #814 on: June 16, 2009, 01:49:46 PM »
Quote from: Fanscale;511577
amigaksi,

You're having a John Rambo moment: "The war is over, John. Let those people go in peace."


:roflmao:
 

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #815 on: June 16, 2009, 02:03:30 PM »
Quote from: amigaksi;511579

It's useful until it becomes corrupt and renders the entire system unbootable. And of course, you have to deal with applications that write stuff to it and never remove it (bloating it) and spyware/viruses screwing with it.
.

I still recall Saddam Virus from mag cover CD on my classic Amiga 500.

Quote from: amigaksi;511579

 Continuously reading/writing same file means higher probability of failure of system than reading/writing different files.  I have seen several systems that wouldn't go into Windows because of registry corruptions.  I suppose you can get "lucky" if the back-up didn't get corrupted as well.  However, it would still affect start-up/shut-down times since you could corrupt the registry if you just turn off the machine and restoring it would increase start-up time.

This an OS issue. Run AROS X86.
Amiga 1200 PiStorm32-Emu68-RPI 4B 4GB.
Ryzen 9 7900X, DDR5-6000 64 GB, RTX 4080 16 GB PC.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show only replies by Roondar
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #816 on: June 16, 2009, 02:18:40 PM »
Quote from: amigaksi;511557
I wasn't referring to the old serial port-- but USB HID being a serial protocol.  The I/O instructions aren't running at 3Ghz.  In fact, I have experimented a lot with I/O to parallel ports and other I/O instructions and some old machines running at 100Mhz...400Mhz have faster parallel ports than machines running at 1Ghz and above.  Take for example a Toshiba Tecra 8000 at 300Mhz-- it's parallel port gets 1 megabytes/second easily (going direct to hardware of course).  Now take a Thinkpad A31 (1.6Ghz) and it's parallel port gets only 700Kilobytes/second (going direct to hardware w/o bullcrap APis).

So a MOVE.W on Amiga OCS takes a few microseconds consistently.  Using a serial protocol involves a lot more I/O instructions which aren't that much faster as processor speeds are.


All of which still does not change that, despite a slower to react bit of port hardware that the PC will spend less actual time running the code to poll said port, even with the API overhead.

Or in simpler terms: the PC can do more other stuff while waiting for the IO device to be ready than the Amiga can. Which is to say that even though it uses API's to access hardware, thanks to being really, really, really fast it still is faster than the Amiga to execute the relevant code (i.e. poll the hardware).

That it needs to wait longer for the hardware to be ready is irrelevant because this discussion is not about the speed of a parrallel port controller (which is the primary cause newer PC's have slower ports) but about the overhead incurred by the API's and drivers driving said controller.
 

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #817 on: June 16, 2009, 02:28:40 PM »
Quote from: the_leander;511556
You have not provided one shred of evidence to back that assertion up.

It's been bugging me for days as to why I've had this sense of deja vu...
...

I did give method on Amiga: $DFF186/$DFF19E for indices 3 and 15.  You save your shadowed registers from RAM to these locations.  As for API method, there's only standard API for setting logical palettes not physical palette entries.

I know you can insult people at a higher rate than USB 2.0 but that won't help you win the argument.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #818 on: June 16, 2009, 02:35:28 PM »
Quote from: Hammer;511568
Still faster than all Amiga hardware.


Complied shader programs are programs. CPU is fast enough to feed the GpGPU e.g. Fold@Home GPU2 client.


It depends on the I/O port.  Also different motherboards I have timed give different results for same I/O ports.  If you went directly to hardware on PC in standard VGA mode, you can set palette indices faster but the point was making an API do it since nowadays video modes are nonstandard assuming you even have a paletted mode.  CPU is fast enough to feed the GPU but what is the overhead as compared to doing a few MOVE.W on Amiga.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #819 on: June 16, 2009, 02:40:50 PM »
Quote from: jkirk;511571
then you are not reading too well.
the ability to retarget a command IS the advantage. there is no feasable way to have easy to program direct hardware programming that all chips support and still advance at a reasonable rate.

this is what happens in current systems today.

Hardware>driver(translator)>directX(or other standard api)>program

when new hardware comes out all that needs to be made is a driver to translate to the api. this is the strength of the system. yes there is some sacrifice in speed but even with this sacrifice you don't lose much.

you can't have your cake and eat it too.


I have read it will-- just the simple palette index problem should tell you how inefficient it is to go through APIs vs. doing it via hardware.  

Not everything needs to be retargetted.  It's better to have both API and hardware level compatibility so if you want to retarget go through the API.  Why force people to accept retargetability even if they don't need it and force them to use less efficient means.

There's not just sacrifice in speed though.  You also have restrictions on what API allows you to do with the hardware.  Many Amiga games wouldn't be possible if they only relied on API calls.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #820 on: June 16, 2009, 02:51:19 PM »
Quote from: amigaksi;511591

It depends on the I/O port.  Also different motherboards I have timed give different results for same I/O ports.  If you went directly to hardware on PC in standard VGA mode, you can set palette indices faster but the point was making an API do it since nowadays video modes are nonstandard assuming you even have a paletted mode.  CPU is fast enough to feed the GPU but what is the overhead as compared to doing a few MOVE.W on Amiga.

As the RSX pixel shader example shows, you have factor in instruction pairing i.e. parallelism.
Amiga 1200 PiStorm32-Emu68-RPI 4B 4GB.
Ryzen 9 7900X, DDR5-6000 64 GB, RTX 4080 16 GB PC.
 

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #821 on: June 16, 2009, 03:03:17 PM »
Quote from: amigaksi;511592

I have read it will-- just the simple palette index problem should tell you how inefficient it is to go through APIs vs. doing it via hardware.  

Not everything needs to be retargetted.  It's better to have both API and hardware level compatibility so if you want to retarget go through the API.  Why force people to accept retargetability even if they don't need it and force them to use less efficient means.

 With GPUs, parallelism and maximum math unit counts are the priories.

Quote from: amigaksi;511592

There's not just sacrifice in speed though.  You also have restrictions on what API allows you to do with the hardware.

The thin libCGM didn't solve RSX's design flaw.

Quote from: amigaksi;511592

 Many Amiga games wouldn't be possible if they only relied on API calls.

Amiga's API is primitive.
Amiga 1200 PiStorm32-Emu68-RPI 4B 4GB.
Ryzen 9 7900X, DDR5-6000 64 GB, RTX 4080 16 GB PC.
 

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #822 on: June 16, 2009, 03:05:40 PM »
Quote from: koaftder;511446
in c#
Code: [Select]
joystickDevice.Poll();

This is faster for a number of reasons. First of all, I didn't have to write the entire application in assembly language. So what if you can read the joystick with one mov instruction? Reading a joystick ain't hard no matter what the language and API you have to deal with. What's hard is all of the other parts of the game you have to write, especially the graphics. I don't know about you, but I don't like writing graphics code in asm. Some of the crappiest, most inefficient code I've ever seen was written in assembly language. The whole mantra of "code written in assembly is the fastest there is" is an exaggeration beyond belief.
...

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.

>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.

>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.

>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.

>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.  

>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.

>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.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline amigaksi

  • Hero Member
  • *****
  • Join Date: Dec 2006
  • Posts: 827
    • Show only replies by amigaksi
    • http://www.krishnasoft.com
Re: PC still playing Amiga catchup
« Reply #823 on: June 16, 2009, 03:20:22 PM »
Quote from: Hammer;511574
Erm, modern X86 CPUs includes micro-code translation engines i.e. on-chip firmware (look up tables) based decoders.


Unlike the GPU, the CPU is the host for control code. The application of hit-the-metal vs abstraction are dependent on needs.


However, they are maintaining compatibility, they are USING UP SILICON.  And I really don't think it's a big deal to add some silicon to maintain backward compatibility.  The actual silicon uses up only a small amount of the ICs space anyway so if they made the IC a millimeter bigger, it's no big deal given how miniaturized the fabrication process has become.

Since CPU is the host for control code, it has to spend time doing I/O to tell GPU to swap palette indices (assuming majority of GPUs out there even support paletted mode).
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline ElPolloDiablTopic starter

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: PC still playing Amiga catchup
« Reply #824 on: June 16, 2009, 03:41:19 PM »
Look here:

http://www.youtube.com/watch?v=HiIr2oJZ0l4

amigaksi vs PC users
Go Go Gadget Signature!