Welcome, Guest. Please login or register.

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

Description:

0 Members and 56 Guests are viewing this topic.

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #659 on: June 14, 2009, 07:33:33 AM »
Quote from: amigaksi;511065

I don't see the argument why you MUST have an API access only.  

Re-target capability.

Quote from: amigaksi;511065

And if hardware compatibility can help make things more efficient,

Less efficient when dealing complex abstract objects. In modern game programming, you have middleware vendors to accelerate development. API libraries like PhysX or Havok.

PhysX enabled game can be made to run on
1. CPU e.g. X86 or PPC
2. GPU (CUDA processor)
3. PPU (PhysX Processor Unit)
4. CELL

Your program is simplistic in nature.

Quote from: amigaksi;511065

 why not spend the time.  I/O has improved but not as much as processor speeds.

Depends on the I/O. Hypertransport is magnitude faster than Amiga's joystick port.
Building a clustered supercomputer based on Amiga’s joystick port would be a joke.

Quote from: amigaksi;511065

And I gave the example of palette changes which (if you go time them) you will find they are not that much faster than amiga changing palette.  This is just one example.

My CUDA GPU is faster than Amiga's changing palette capabilities i.e. the compute wavefront is larger. The purpose pixel shader is .... pixel processing.
« Last Edit: June 14, 2009, 08:22:58 AM by Hammer »
Amiga 1200 PiStorm32-Emu68-RPI 4B 4GB.
Ryzen 9 7900X, DDR5-6000 64 GB, RTX 4080 16 GB PC.
 

Offline smerf

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1666
    • Show only replies by smerf
Re: PC still playing Amiga catchup
« Reply #660 on: June 14, 2009, 07:35:12 AM »
Hi,

@Amigaski,


>>>
Quote from: amigaksi;511129
As I said before, I write something using OCS hardware registers and it will work on OCS, ECS, and AGA-- nothing to modify between the machines.  Incompatibilities were not caused by these hardware registers.

Sorry you are wrong the only way to get AGA to work was with the setpatch command that was put in your startup sequence.


>>>No, it works right now.  If people use hardware standards rather than APi standards, you have better computers to program.  You are in some fairyland because you don't even understand what is being discussed.

The only way to program the hardware was through the machine language where you could bang the hardware with machine code instructions. Not recommended by Commodore.

>When you state that the Amiga is superior to the PC, you are talking about now.

>>>Straw-man argument.  I stated that because of having hardware compatibility, Amiga will do better in certain real-time programs.

Sorry wrong again, if you can bang the Amiga hardware, you can certainly bang the PC hardware the same way, and since the new hardware is faster it will execute faster.

>No, you supplied data that showed nothing.

>>>Bullcrap.  Go re-read the data.

Excuse me if you are using joystick data, I had a PCI card where i could use an Amiga Joystick on it and it worked just as fast as the Amiga (new hardware wins again)

>You were actually given a suggestion by Karlos on how you could actually test just how sensitive the Amiga was thus proving one way or the other, with no room for doubt if your hypothesis was correct. You chose instead stuck to your flawed data.

>>>The data is REAL data as sampled from REAL joystick used in a REAL game on a REAL computer.  Go learn what a debounce switch is and analyze the data.  Your thinking is flawed.  I did do another test where I just press fire button and let go and there's no multiple hits registered in the recorder (just two states).

I believe you there, the PC joystick cards using variable resistors instead of switches was terrible, but my card which used the PCI slot for Amiga/Atari joysticks was just as fast if not faster than the Amiga.

>I think I understand the problem better then you do.

You think you do.

>...say well played to you, you're right the joystick is capable of responding to hits at X speed quicker then a USB based approach.

>>>That's not even the point.  Joystick on Amiga is faster even if you do one sample every 1/60 second.  And why are you narrowing to just USB; Gameport is also a valid joystick port for millions of PC owners.

OK I will agree with you on this one, the Amiga joystick was faster than most PC joystick cards but it was slower than the PCI card I had for Amiga/Atari joysticks, actually had to calibrate it to go slower so youn could see the cross hairs.LOL

>...that and repeat. Lies was perhaps the wrong choice of word, wilful ignorance would probably be a better fit.

You're in ignorance.


HI,

@Amigaski,

Sorry to tear you up like this, but the PC did have all kinds of special stuff made for it that was comparable or faster than the Amiga.

smerf
I have no idea what your talking about, so here is a doggy with a small pancake on his head.

MorphOS is a MAC done a little better
 

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #661 on: June 14, 2009, 07:35:33 AM »
Quote from: amigaksi;511068
I was making the point that certain applications go directly to hardware yet don't effect the multitasking OS.  They return and OS is still stable as it was.  Even the examples of audio playback in Compute! magazines are directly writing to hardware registers rather than making APi calls.

You haven't answered Protracker 1 vs Octamed 4 vs Deluxe Music  2.0 interactions.

On modern GPU and using NVIDIA's Cg shaders

const static float3x3 m = float3x3(
    0.2209, 0.3390, 0.4184,
    0.1138, 0.6780, 0.7319,
    0.0102, 0.1130, 0.2969);

inline float4 PS3_LogLuv_Encode(in float3 rgb)
{
    float4 res; // float4(Ue, Ve, LeHigh, LeLow)
    float3 Xp_Y_XYZp = mul(rgb,m);
    Xp_Y_XYZp = max(Xp_Y_XYZp, float3(1e-6, 1e-6, 1e-6));
    res.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;
    float Le = 2 * log2(Xp_Y_XYZp.y) + 128;
    res.z = Le / 256;
    res.w = frac(Le);
    return res;
}
Running this code through NVShaderPerf gives 5 cycles for 9 instructions. When inserted at the end of a longer shader where there is plenty of room for instruction pairing, the total overhead for the LogLuv conversion will be less than this, perhaps around 3 cycles.

This code snippet is use to enable HDR and hardware AA on PS3. The other exercise is to do the conversion from LogLuv back to RGB.

This type of optimisation works on Geforce 7. I like PS3 devs for taking care of Geforce 7 and other DirectX9c class GPUs.

If you have any modern GPU enquires, one should visit Beyond3D's forums i.e. you have professional game developers lurking in that particular forums.

On Amiga, without OpenGL shaders it's difficult to test shader code snippets from PS3 and XNA forums.
« Last Edit: June 14, 2009, 12:40:13 PM by Hammer »
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 #662 on: June 14, 2009, 08:52:48 AM »
Quote from: amigaksi;511129

>...say well played to you, you're right the joystick is capable of responding to hits at X speed quicker then a USB based approach.

That's not even the point.  Joystick on Amiga is faster even if you do one sample every 1/60 second.  

Vista's default USB mouse poll rate is 125Hz or 1/125 per second. There are hacks to increase this default rate to 1000hz. My Logitech gaming mouse uses its own drivers.

USB2.0 can support external graphics card and sound card (e.g. external X-Fi).

http://winstars.manufacturer.globalsources.com/si/6008814464080/pdtl/USB-video/1014405597/USB-Graphics-Card-Adapter.htm

"A fast usb host can achieve 40 MBytes/sec. The theorical 60 MB/sec cannot be achieved, because of the margin taken between the sof's (125 us), so if a packet cannot take place before the sof, the packet will be rescheduled after the next sof. On top of that, all the USB transactions are handled by software on the PC. For instance, a USB host on a PCI bus will send or receive the data via the PCI bus; the stack will prepare the next data in memory and receive interrupt from the host."

Quote from: amigaksi;511129

And why are you narrowing to just USB; Gameport is also a valid joystick port for millions of PC owners.

As of 2008, laptop PCs has overtaken the desktop PC in annual unit sales. It would be difficult to find legacy game port on these laptops. Most laptops include an ExpressCard I/O port i.e. external PCI-Express X1 port.
« Last Edit: June 14, 2009, 09:20:24 AM by Hammer »
Amiga 1200 PiStorm32-Emu68-RPI 4B 4GB.
Ryzen 9 7900X, DDR5-6000 64 GB, RTX 4080 16 GB PC.
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: PC still playing Amiga catchup
« Reply #663 on: June 14, 2009, 09:30:07 AM »
Even on desktops you'd be hard pressed to find a gameport, most PCs sold within the last 3 or 4 years have simply had a bank of USB ports, with only a select few retaining the odd legacy port.
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

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 #664 on: June 14, 2009, 10:37:10 AM »
Quote from: the_leander;511130
On a fixed platform be it one that's discontinued (Amiga) or an embedded or industrial controller, having those sorts of options is great and depending on the hardware again, hitting the hardware might be your only way of acomplishing something.

...

Some cases hardware access is the only way, but in some cases you have both options (API or hardware access) and hardware access is superior method.

>There are, just for (m)ATX boards 23 different variations. That's even before we look at the offerings from AMD. 23...

Even when vendors make VGA cards using VGA standard (which required hardware level compatibility), you had several ATI card variations-- some faster than others but they maintained hardware compatibility not API level compatibility.
--------
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 #665 on: June 14, 2009, 10:46:12 AM »
Quote from: the_leander;511132
I believe this was already responded to as to why you were wrong then too.

...

No, OCS registers are compatible with AGA.  Give link where it was responded.  I have so many OCS applications (going directly to hardware) that run fine on AGA.  Applications relying on processor timing or using different ROM APIs may have problems.

>Without being able to show that the Amiga can distinguish and react to your output, your data is meaningless.

>Not disputing that the data isn't real, just that it's meaningless unless you can show that the computer can react to the input at those speeds.

It's as simple as writing an application to read joystick and move a sprite around and this sort of loop is present in many programs.  The loop runs as fast as machine allows it.

>That is not a sentence.

It has a subject and predicate; therefore, it's a sentence.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: PC still playing Amiga catchup
« Reply #666 on: June 14, 2009, 11:09:39 AM »
Quote from: amigaksi;511163
Some cases hardware access is the only way, but in some cases you have both options (API or hardware access) and hardware access is superior method.


For the love of... And by the time you have full support for all of those motherboards in the example given, even with the specs, you're three or more years down the line and not even one line of code toward building a game or application that takes advantage of that "superior" speed. And after that you still have the minefield that is graphics and soundcards ahead of you... In the mean time, your competators, using API's are rolling in the cash made from their hardwork, you know, actually having produced and sold their applications, using todays hardware, not having had to worry about such things.

Things move too fast in the PC landscape for anything other then programs such as demos to be considered as viable candidates.

Quote from: amigaksi;511163

Even when vendors make VGA cards using VGA standard (which required hardware level compatibility), you had several ATI card variations-- some faster than others but they maintained hardware compatibility not API level compatibility.


LOL WUT? If you code for DirectX6, you can be pretty damn sure that that code will still run on DirectX10. Same for OpenGL. VGA support is fine if you only want the bare basics, the moment you make one step beyond those basics your workload increases exponentially.

I remember when I was heavily into BeOS and was talking to the Nvidia driver developer, to access things we take for granted, such as hardware acceleration, required huge amounts of code even for the small selection of cards that BeOS supported, and thats without any 3D effects being thrown into the mix. Simply getting the card to initialise changed from card to card, with some venders adding extra supprises on top of that. Just to get to the stage where the Geforce2MX through to the 6600 took around 5 years. And by that time the 6600 had been out for 2. Even then, after all that, some card models lacked things like overlay support.
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

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 #667 on: June 14, 2009, 11:14:44 AM »
Quote from: smerf;511146
Hi,

@Amigaski,
...
Sorry to tear you up like this, but the PC did have all kinds of special stuff made for it that was comparable or faster than the Amiga.

smerf


Looks like you got your "quote" "/quote"s mixed up, but I'll address your points: (1) Yeah, you can build a custom joystick interface for your PC that's faster than Amigas-- but what's standard out there-- gameport and USB port based joysticks are inferior.  Nor are PCs headed toward that direction of building PCI digital joystick cards nor parallel port based joystick interfaces.  (2) Regarding going directly to hardware on PCs-- that's still a fantasy since modern PC hardware is NOT compatible on the hardware level.  It's only compatible on API level.  And that's the guts of my current argument-- if PC had hardware compatibility instead of API compatibility, it would allow for better more efficient software.  Only legacy ports are giving you that option currently.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: PC still playing Amiga catchup
« Reply #668 on: June 14, 2009, 11:17:42 AM »
Quote from: amigaksi;511164


>Not disputing that the data isn't real, just that it's meaningless unless you can show that the computer can react to the input at those speeds.

It's as simple as writing an application to read joystick and move a sprite around and this sort of loop is present in many programs.  The loop runs as fast as machine allows it.


I'm fairly certain that was more or less along the lines of what Karlos suggested... How many pages ago?

>That is not a sentence.

Quote from: amigaksi;511164

It has a subject and predicate; therefore, it's a sentence.


You cannot use the word ignorance as you did. It is gramatically incorrect and as such is invalid. It is not a sentence.
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

Offline the_leander

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 3448
    • Show only replies by the_leander
    • http://www.extropia.co.uk/theleander/
Re: PC still playing Amiga catchup
« Reply #669 on: June 14, 2009, 11:23:57 AM »
Quote from: amigaksi;511168

(2) Regarding going directly to hardware on PCs-- that's still a fantasy since modern PC hardware is NOT compatible on the hardware level.


Correct, and that is all to the good.

Quote from: amigaksi;511168
It's only compatible on API level.  And that's the guts of my current argument-- if PC had hardware compatibility instead of API compatibility, it would allow for better more efficient software.  Only legacy ports are giving you that option currently.


No, what it would usher in would be a whole new round of I/O, IRQ and DMA conflicts as different programs fought for control of hardware, oblivious to one another. As well as very painfully kludged hardware.
Blessed Be,
Alan Fisher - the_leander

[SIGPIC]http://www.extropia.co.uk/theleander/[/SIGPIC]
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show only replies by koaftder
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #670 on: June 14, 2009, 11:49:40 AM »
Quote

 Originally Posted by koaftder  View Post
To amigaksi:

Would you agree with the statement, "The smaller the number of instructions to complete a task, the faster that procedure will run" ?
Quote from: amigaksi;511118
With caching and misalignment causing delays, you can have some larger piece of code execute faster than a smaller piece of code.  Also depends on what the instructions are.  One IN on PC is much slower than 100 MOVs if processor is like 1Ghz.


You are thinking too hard about this question. I guess I should have framed the question better. Assume a Von Neumann machine with an extremely orthogonal instruction set, each instruction executing within a single machine cycle and no port I/O, all hardware interfaces mapped within a linear 32bit address space.

It's a question regarding software design which should lead to some more interesting conversation regarding hardware design and the symbiotic relationship between the two.
 

Offline Hammer

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1996
  • Country: 00
    • Show only replies by Hammer
Re: PC still playing Amiga catchup
« Reply #671 on: June 14, 2009, 12:14:59 PM »
Quote from: amigaksi;511168

Looks like you got your "quote" "/quote"s mixed up, but I'll address your points: (1) Yeah, you can build a custom joystick interface for your PC that's faster than Amigas-- but what's standard out there-- gameport and USB port based joysticks are inferior.
.

USB multifunction modules that provides 1 MHz sampling speed .
http://www.iotech.com/products/pdaq3s.htm

USB modules that provides 2 MHz sampling speed.
http://www.accessmylibrary.com/coms2/summary_0286-15005752_ITM

"High Speed" USB has 125 usec to 4 sec maximum latency with bInterval 125 usec.
"Full Speed" USB has 1 msec to 255 msec maximum latency with bInterval 1 msec.

Most USB devices today are developed using a microcontroller, the microcontroller can be used to
queue up the data  and make it available to the host in larger transfers, thereby decreasing the number
of transfers and increasing the size of each transfer and increasing efficiency.

Depending on many factors the host processor may not be able to transfer the interrupt data at
the requested interval. OS design, driver design, application software, CPU speed, and bus
bandwidth may all limit the host’s ability to meet the obligation to poll for interrupt transfer data
within the required interval.

The hardware is capable. It's up to the customer to select the right software solution i.e.
1. RTOS QNX, eCos.  
2. Adding RT modules for Windows XP Embedded e.g. Venturcom RTX, INtime.
3. Switch MS Windows edition i.e. Windows CE .NET. Refer to http://www.windowsfordevices.com/articles/AT2137345992.html

Quote from: amigaksi;511168

  Nor are PCs headed toward that direction of building PCI digital joystick cards
.

There's Catweasel IV. It's too bad it's not in ExpressCard format.

Quote from: amigaksi;511168

 nor parallel port based joystick interfaces.  (2) Regarding going directly to hardware on PCs-- that's still a fantasy since modern PC hardware is NOT compatible on the hardware level.  It's only compatible on API level.  And that's the guts of my current argument-- if PC had hardware compatibility instead of API compatibility, it would allow for better more efficient software.  Only legacy ports are giving you that option currently.

I don’t know why you are addicted to this joystick thing?

What market are you targeting?
« Last Edit: June 14, 2009, 12:37:49 PM by Hammer »
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 #672 on: June 14, 2009, 12:28:46 PM »
Don't forget Max Headroom was done on Amiga. If you can remember that.
:laughing:
Does being first count for anything nowadays?
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 #673 on: June 14, 2009, 12:32:10 PM »
Quote from: Hammer;511147
You haven't answered Protracker 1 vs Octomed 4 vs Deluxe Music  2.0 interactions.

On modern GPU and using NVIDIA's Cg shaders

const static float3x3 m = float3x3(
    0.2209, 0.3390, 0.4184,
    0.1138, 0.6780, 0.7319,
    0.0102, 0.1130, 0.2969);

inline float4 PS3_LogLuv_Encode(in float3 rgb)
{
    float4 res; // float4(Ue, Ve, LeHigh, LeLow)
    float3 Xp_Y_XYZp = mul(rgb,m);
    Xp_Y_XYZp = max(Xp_Y_XYZp, float3(1e-6, 1e-6, 1e-6));
    res.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;
    float Le = 2 * log2(Xp_Y_XYZp.y) + 128;
    res.z = Le / 256;
    res.w = frac(Le);
    return res;
}
Running this code through NVShaderPerf gives 5 cycles for 9 instructions. When inserted at the end of a longer shader where there is plenty of room for instruction pairing, the total overhead for the LogLuv conversion will be less than this, perhaps around 3 cycles.

This code snippet is use to enable HDR and hardware AA on PS3. The other exercise is to do the conversion from LogLuv back to RGB.

This type of optimisation works on Geforce 7. I like PS3 devs for taking care of Geforce 7 and other DirectX9c class GPUs.

If you have any modern GPU enquires, one should visit Beyond3D's forums i.e. you have professional game developers lurking in that particular forums.

On Amiga, without OpenGL shaders it's difficult to test shader code snippets from PS3 and XNA forums.


Now how does above relate to palette setting using a Windows APi call?
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show only replies by koaftder
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #674 from previous page: June 14, 2009, 12:33:37 PM »
Quote from: amigaksi;511118
With caching and misalignment causing delays, you can have some larger piece of code execute faster than a smaller piece of code.  Also depends on what the instructions are.  One IN on PC is much slower than 100 MOVs if processor is like 1Ghz.


Quote from: Fanscale;511181
Don't forget Max Headroom was done on Amiga. If you can remember that.
:laughing:
Does being first count for anything nowadays?


It's a little known fact, but the stuttering was an unintended feature. The Amiga crashed so much they had to hire an assistant to "poll" the reset switch 5 times a second to keep it going. It wasn't a big deal because the Amiga booted so fast and besides, people liked the effect.