Welcome, Guest. Please login or register.

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

Description:

0 Members and 21 Guests are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: PC still playing Amiga catchup
« Reply #434 on: June 06, 2009, 03:40:31 PM »
I'd prefer to see a controlled experiment of the type I suggested earlier. I'm even thinking to try it myself :)
int p; // A
 

Offline smerf

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1666
    • Show only replies by smerf
Re: PC still playing Amiga catchup
« Reply #435 on: June 06, 2009, 03:50:29 PM »
Hi,

@Juan_fine,

Yes I am very disappointed with the PC joystick port, (by the way where is it located on the PC's I have spun my computer around several times and I can't locate it, but also I can't ever remember using a joystick on the PC and I play all the latest games, like far cry, far cry II, Doom3, fallout 3, Quake IV, crysis, and a lot of the old ones like half life the original, half life 2, Castle Wolfenstein, call of duty/2/3/4/??? or what ever ones I buy my son it is on here I just haven't got around to playing them, interesting.

Well anyhow seeing that having a joystick on your computer is very important by this forum, I have decided to take one of my old Amiga 500's that died, and remove the joystick port and circuitry for my PC, after all I put a lot of time and money in my new game rig and I want the best joystick port made.

I suggest that you do the same, remove the port from an old fried Amiga that you have been carrying for parts, and put it in your PC, I know it can be made to work somehow.

As far as the PC playing catchup to the Amiga, hey the PC can out do the Amiga in just about all major areas, like graphics, sound, games, media, and multi tasking. The things I still find irratating, are OS install time and reboots during installation, BOOT UP TIME, and untimely updates by microsucks, ever been in the middle of a game and you are finally beating the on slaught of the N. Korean troops in crysis, and you are saying yeah I got those &%$#%%$#@# beat and then your screen goes blank, a blue screen comes up with the sentence on it that reads your computer will reboot in 6 seconds to install updates and then you think back and say so thats why the game seemed slower today and then it hits you NO, NO, NO, I have to do that part all over again.

On the sleep mode, hey there are so many types of PC's and laptops, everyone is different, I may have disabled that mode in my computer when I first built it, etc. etc. etc. I mean I could dabble for hours one end in my BIOS, I have a motherboard book that is about an inch and a half thick on the things you could do with it, but there is one thing I am sure I can depent on with a PC:

1. They crash at least 3 times a night while playing fallout 3.
2. They do updates a the most inconvenient time, I turned auto off.
3. Every time I call that American company called microsucks, I get some person in India and you know they talk funny and probably say the same thing about me but you know I have them beat in being rude, yeah the old smerf still has it when he needs it.
4. You basically have to run micro soft if you want to play the newest games, it seems that the software compainies are just atuned to micro shaft. Hey software companies you ever hear of LINUX, if you started making games for LINUX I bet micro shaft would fall flat on its face, BECAUSE WE ALL HATE MICRO SHAFT and the only reason we use it is to play your stupid games, maybe we should all endorse micro shark an quit buying your stupid games for micro $$jerk.

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 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 #436 on: June 06, 2009, 03:54:39 PM »
Quote from: Linde;509588
And that's a problem totally non-existent on the Amiga...

...

Yes.

>So you're trying to tell me that decompressing an image and writing it to the frame buffer is faster than directly writing an uncompressed image directly to the buffer. That might be true if you are typing the data down by hand from paper.

You can time it yourself.  If you move uncompressed frame to video area vs. decompress one to video area (as in anim format), the uncompressed frames can't achieve the speed of the decompression.

>Yes, I can agree with that. But that doesn't mean that all "ocs software" is compatible with any Amiga. There is more to it than the chip set, as I pointed out. I think you understand this as well as I do, but you are playing a fool to be able to dismiss my argument.

Hold it right there.  The argument is ability to access hardware registers directly to produce tighter code and for better response time (as in real-time events).  OCS software being incompatible has NOTHING to do with the hardware registers so those hardware registers can be used.  Processor speeds changing and ROM versions changing don't involve hardware registers.

>Yes you can, if you know the exact hardware configuration.

No, we're talking about making the software work in general on PCs across the board-- that's why we're even talking about OCS/ECS/AGA compatibility.

>Yes, because the concept of kernel mode drivers exists in every operating system available for the PC...

At hardware level programming, the PCs are the same but nowadays you HAVE to go through APIs for much of the hardware.

>Data existing is not in itself an indicator that it is important to the end user. As pointed out, the sub-ms state changes are results of switch bouncing. Just because there are millions of magazines in the world doesn't mean that I am missing out stuff that is important to me by not reading them all.

You fell for that speculation that it's a result of switch-bouncing; nonetheless, I wasn't talking about sub-ms.  I answered this in another message.

>Not in a computer game, when the screen redraw is sometimes the only feedback you get.  

User can cause motion via joystick that is faster than refresh rate; he does not have to depend on feedback from display to make moves on the joystick.

>No, it's not bullcrap. YOU HAVE YET TO SHOW ME A GAME THAT USES AND BENEFITS FROM 1 kHz JOYSTICK SAMPLING. That's still true, as it has been since I first pointed it out. As far as I know, there are VERY few games in the River Raid era where even the game logic (all the moving, AI decisions, counting of score etc) operates faster than the screen update.

It's better to understand the LOGIC that millisecond state changes are there and not result of noise.  Also, try to understand that noise is also considered input to machine.

>If you'd ever used joysticks for other things than measuring the time between state changes, you'd know that the values that the joysticks are precise enough, and no, while they are not usually exact they give you more precise control over direction than four on/off switches. You'd also know that in most games that utilize the analog sticks, the walking/turning speed/direction correlates exactly enough to the input.

I know that most games don't need analog sticks and it's a waste of time in reading such sticks for PCs since they end up using some threshold to make them act like digital joysticks do.

>If digital sticks with one button were superior for controllability, their market wouldn't have died out in the early 90s.

That's speculation.  They still exist and are being marketed.  You can market "garbage" and sell more of it than something valuable and more useful.  Marketing has NOTHING to do with the product being superior/inferior.

>No, that was not what I was claiming. I said that developers are trying to move further away from hardware, which is why there are abstractions like drivers and APIs. If you think that the average software developer has as much use of accessing the hardware as before you are wrong.

I am saying it's more optimal to have both available.  APIs and hardware access, but PCs are now getting more and more restricted to APIs so Amiga wins in this catagory.

>The Amiga can read four analog values at the same time and digitally convert them without hardware modification? The PC doesn't need any additional hardware besides what's in the joystick.

That wasn't the point.  We were talking about timing things exactly not joysticks here.

>No of course, why would you want to teach them anything? Your kids are none like the kids I know. Either way your story is very anecdotal and not enough to support your argument. The truth is that most kids these days handle and enjoy far more advanced games and joy pads.

It doesn't have to be kids.  I tried out some of the XBOX/playstation crap (sticks and games).  You try a few of them and you quickly find out, you can't tell which button is used for what.  And even worse, some of the games play by themselves as if they were demos.  I played this baseball game-- very good graphics but couldn't figure out what I had to do in the game-- it just kept playing itself.  So it's not just eenie meenie minie moe for the buttons.

>And you think that mp3 vs uncompressed audio is completely analogous to 100 Hz vs 1000 Hz?

Actual that's an example where a person can't tell the different although there is a difference.  A better example is 44Khz sampling vs. 32Khz sampling of audio.  A few frequencies may get added in the higher rate which hardly anyone notices.
--------
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 #437 on: June 06, 2009, 04:08:39 PM »
Quote from: stefcep2;509596
@GadgetMaster
You really live in alternate reality don't you?  Ignorance is bliss, so they say, and your life must be perfectly blissful.  You make such lengthy posts, and yet have ABSOLUTELY NOTHING TO SAY. However there is no point having a discussion with retarded clam, so I'll spare you the intellectual challenge of stringing two coherent words together and leave you blissfully ignorant.

Bless you ! :)
 

Offline persia

  • Hero Member
  • *****
  • Join Date: Sep 2006
  • Posts: 3753
    • Show only replies by persia
Re: PC still playing Amiga catchup
« Reply #438 on: June 06, 2009, 04:48:29 PM »
Karlos,

Yep, you've got it, the Amiga reminds me of a much simpler time, I can just fire up a game and suddenly it's 1989 again and I'm in the wild old days, it's nostalgia, and in a way I get the same feeling from my iPhone.  But as far as dong serious video, image or music editing, well, I wouldn't dream of using my iPhone or Amiga, all though the iPhone, no, scratch that thought...

I live in the present, I don't have time for the Amigas frequent trips to the guru, lack of software, and seriously low powered hardware when I have work to do.
[SIGPIC][/SIGPIC]

What we\'re witnessing is the sad, lonely crowing of that last, doomed cock.
 

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 #439 on: June 06, 2009, 04:50:37 PM »
Quote from: the_leander;509559
You haven't shown that your own code is accurate yet either. But regardless, even if by some miracle it is I do have a question:

How is it in any way an advantage when both the Amigas and PC-USB based control systems are far quicker then human reaction times?


If it's a miracle, it has already happened.  If you look at it logically:
(1) move a joystick from one diagonal to another and you can expect quite a few states it goes through; (2) move a joystick quickly up to down or left to right and it has to go through a state where nothing is pressed for extremely short time; (3) as already mentioned, pressing fire and moving joystick are independent so those states can have any small time amount in between.  (4) Even if you consider some noise in the data, it can ALSO get sampled in by the game and it would take it just as good as real data.  Human reaction times may be slower, but the game should play exactly according to joystick movement so taking into account more of the state changes means a more accurate reading.

I don't know which code you are referring to being accurate.  That dump of the data was using this code:

/* DUMPREC.C: Dumps joystick .REC file (c) 2009 KSI */

#include
#include
#include

#include

#include "types.h"

int main(int argc,char *argv[])
{
   FILE *f, *df;
   unsigned currstate,newstate,i,j;
   unsigned long dtL,dtH;
   char scratch[128];
   double ProcessorSpeed,cnvrt;

   if (argc<2)
   {
Syntax:
     printf("Syntax: DUMPJOY infile.REC outfile.txt\n");
     printf("Dumps joystick recordings done with MPDOS SuperPro.\n");
     printf("If you don't specify outfile, infile.txt will be outputted.\n");
     return 0;
   }

   f = fopen(argv[1],"rb");
   if (!f) goto Syntax;

   i = strlen(argv[1]);
   if ((argv[1][i-4]=='.')&&(argv[1][i-3]=='r')&&(argv[1][i-2]=='e')&&
      (argv[1][i-1]=='c'))
   {
     argv[1][i-3]='t';
     argv[1][i-2]='x';
     argv[1][i-1]='t';
   }
   if (argc==3) df = fopen(argv[2],"wb");
    else df = fopen(argv[1],"wb");  //default output file
   fread(&dtH,4,1,f);
   currstate = dtH&0xFF;  //current joystick state
   fread(&dtL,4,1,f);
   ProcessorSpeed = (double)dtL/32768.0;  //accurate to 838ns (max)
   printf("Recorded on processor running at %lf MHz\r\n",ProcessorSpeed);
   for (i=0; i<65535; i++)
   {
     j=fread(&dtH,4,1,f);
     if (j==0) goto ItsEOF;
     fread(&dtL,4,1,f);
     newstate = dtH&0xFF;
     cnvrt = (double)dtL/(ProcessorSpeed*1000.0);
     sprintf(scratch,"%d %lf ms\r\n",currstate,cnvrt);
     currstate = newstate;
     printf("%s",scratch);
     j = strlen(scratch);
     fwrite (scratch, j, 1, df);
   }
ItsEOF:
   fclose(df);
   fclose(f);
   return 0;
}
--------
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 #440 on: June 06, 2009, 05:00:58 PM »
Quote from: the_leander;509546
If there is variance of clock speed (even by a fraction of a second) between two otherwise identicle systems using the same cycle, both cycles will still be identicle, but the timing will be different. This is demonstrable for anyone who owns more then one Amiga, even of the same model.

You're mixing up your definitions again, I personally think deliberately here.


The NTSC/PAL crystals are by spec given a fixed frequency.  Now even if they deviate by one billionth or something, it's within the tolerance of the TVs and they are still considered to be at the same frequency.  You don't say my TV runs faster than yours.  Amigas use the same timing as NTSC/PAL crystals.  So I can say that CIA interrupts, Audio Interrupts, Copper lists, etc. all run at the same frequency across the board for OCS/ECS/AGA.
--------
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 #441 on: June 06, 2009, 05:06:39 PM »
Quote from: Karlos;509550
That's why I pointed out timing specifically "in units of time", rather than "in cycles" However, our friend here has been throwing around statements like "558ns with no +/- bullcrap", which is why I felt the need to clarify.

eg:



Absolutely no way can you say you can claim "558ns accuracy" when the clock signal itself is subject to variance.
...

You are making an absurd claim.  PC timers also claim a certain accuracy and their crystals are subject to same conditions as Amiga timers.  And that has NOTHING to do with latency.  Latency is the hardware deviating by a few cycles from the exact point when the event was supposed to occur.

>Furthermore, the clock speed is slightly different between NTSC and PAL Amigas. For example, in a base A1200, the CPU is driven from the same clock as the rest of the native hardware and the stated clock speeds are 14.32 MHz for NTSC and 14.18 MHz for PAL.

Just answered that for someone else:

The NTSC/PAL crystals are by spec given a fixed frequency.  Now even if they deviate by one billionth or something, it's within the tolerance of the TVs and they are still considered to be at the same frequency.  You don't say my TV runs faster than yours.  Amigas use the same timing as NTSC/PAL crystals.  So I can say that CIA interrupts, Audio Interrupts, Copper lists, etc. all run at the same frequency across the board for OCS/ECS/AGA.


T = 1/F that's how you get 558ns.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: PC still playing Amiga catchup
« Reply #442 on: June 06, 2009, 05:12:12 PM »
I know how to convert period to frequency, thanks. The point is that you are being very loose with your terminology.

No crystal timer is guaranteed to allow you to time something to exactly 556ns, no two amigas run at exactly the same speed, which is what your earleir posts were claming. No two PC's do either. They all operate within a certain tolerance

If you had stated your case in bus cycles, rather than nanoseconds, I wouldn't have pointed this out. As it goes, I was being deliberately pedantic in this regard so that you could appreciate how some of the pedantry in your argument sounded to the rest of us.
int p; // A
 

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 #443 on: June 06, 2009, 05:22:08 PM »
Quote from: Karlos;509625
I know how to convert period to frequency, thanks. The point is that you are being very loose with your terminology.

No crystal timer is guaranteed to allow you to time something to exactly 556ns, no two amigas run at exactly the same speed, which is what your earleir posts were claming. No two PC's do either. They all operate within a certain tolerance

If you had stated your case in bus cycles, rather than nanoseconds, I wouldn't have pointed this out. As it goes, I was being deliberately pedantic in this regard so that you could appreciate how some of the pedantry in your argument sounded to the rest of us.


They also say the meter always isn't the same size.  I consider all these rubbish arguments.  They also claim PIT (8253) original timer runs at 1.19318Mhz which comes out to 838ns and has been used to update time in a PC.  So take your rubbish elsewhere.  You have to go by the spec.  There's also ways to make sure frequency is fixed using PLLs or other such mechanisms.  I still claim it's 558ns accurate.  I have no reason to claim it isn't.  All Amiga audio interrupts, cia interrupts, copper lists run at the same speed (NTSC).
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline meega

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 952
    • Show only replies by meega
Re: PC still playing Amiga catchup
« Reply #444 on: June 06, 2009, 05:26:30 PM »
Quote from: amigaksi;509621
You are making an absurd claim.  PC timers also claim a certain accuracy and their crystals are subject to same conditions as Amiga timers.  And that has NOTHING to do with latency.  Latency is the hardware deviating by a few cycles from the exact point when the event was supposed to occur.


Are you sure?
:)
 

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 #445 on: June 06, 2009, 05:30:26 PM »
Quote from: Karlos;509573
... I'd expect code that reads from the joyport register address once per frame and whatever value was there at that particular instant is taken at face value by the application.




Can you elaborate on that?

Look, here's a real experiment that can be attempted and repeated:

Why not try sending completely synthetic 1ms wide pulses once a second for the fire button and seeing how the game responds. If it fires every second then you know the sampling must be high enough (or at least has some clever latching). If, OTOH, it fires only very sporadically, it isn't likely to be sampling at a high rate.

By widening the pulse until you get your 1 fire event per second being registered systematically in your application you will get a better appraisal of what the sampling period is likely to be. It will at least be in the right order of magnitude.


I would only be able to test that with games that allow you to fire more than once before the previous missile reaches its target or goes out of bounds.  But anyone can easily right an application that reads the joystick port and moves a sprite around within a few machine cycles and he doesn't have to wait for any VBI.  Joystick port is digital and can be read anytime unlike the potentiometers.
--------
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 #446 on: June 06, 2009, 05:32:20 PM »
Quote from: meega;509628
Are you sure?


Yep, just read the HPET spec which deviates by 2 clocks + or - from where actual tick count finishes.  Just run some copper color change in the middle of the screen (horizontally and vertically) and reply back when it changes position.
--------
Use PC peripherals with your amiga: http://www.mpdos.com
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: PC still playing Amiga catchup
« Reply #447 on: June 06, 2009, 05:42:18 PM »
Quote from: amigaksi;509627
I still claim it's 558ns accurate.

You can claim it all you like, but that doesn't make it true. It's approximately 558ns. An accurate figure, determined by a high precision scope might record 555, 559. I totally agree with you that it doesn't matter in system since the circuitry will all be running at whatever speed the clock gives, but the claim it is accurate to 558ns is not true at all. You have to quote a margin of error for any real measurement.


Quote
All Amiga audio interrupts, cia interrupts, copper lists run at the same speed (NTSC).

They run in the same number of hardware cycles. As the hardware cycle durations are subject to the timing variances of the oscillator, from system to system they do not run at the same frequency and therefore not a the same speed.

Again, this is deliberate pedantry, but it is true that amiga chipset hardware does not run at exactly the same speed everywhere. It only runs with the same cycle pattern everywhere.

For example, some years ago, Redrumloa was experimenting with underclocking the main oscillator on the motherboard as he observied it was giving a speed up as based on common amiga benchmarking programs where the native chipset wasn't being used for video etc.

I was intrigued by his suggestion and a bit sceptical too, so I wrote some software to try and verify his observation. It turned out that all of the original benchmark programs were using EClock to time operations. So, as the system was downclocked, the benchmarks went up entirely as a result. The benchmark code was still running at the same speed but the clock timing it was simply running slower. I was able to test this assertion by using the PowerPC to measure a delay generated using the timer.device and observe that the actual delay generated was getting longer in tandem with the lowering clock speed.

Cycle for cycle, Reds underclocked system was still running the same pattern as any other, but it certainly would not have been accurate to 556 ns.
« Last Edit: June 06, 2009, 05:57:20 PM by Karlos »
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: PC still playing Amiga catchup
« Reply #448 on: June 06, 2009, 05:51:29 PM »
Quote from: amigaksi;509629
I would only be able to test that with games that allow you to fire more than once before the previous missile reaches its target or goes out of bounds.  But anyone can easily right an application that reads the joystick port and moves a sprite around within a few machine cycles and he doesn't have to wait for any VBI.

The 1 second periodicity was only an example. You could trigger it every 10 seconds. What matters is whether the game responds to the 1ms wide pulse whenever it is issued. If it doesn't then the game simply isn't sampling at a rate that guarantees a sample is read within a 1ms window - ie it isn't sampling at 1kHz. By gradually increasing your pulse width to the point where you get a consistent response (eg 9 in 10 pulses trigger the action) then you know you are in the right approximate resolution of the application's sample rate.

As for the rest, they could but that still does not demonstrate that any particular game title samples this quickly. You need to actually test with real applications that were written, not software you write purely to demonstrate that it is possible.

Quote
Joystick port is digital and can be read anytime unlike the potentiometers.

PS, see my other crazy idea to allow 1kHz sampling an analogue joystick. In case you can't find it, a quick recap:

Use the X/Y potentiometers to adjust the left/right volume of a simple hardware oscillator running at several kHz that is sampled by the soundcard at 44.1 kHz. Calculate the RMS power for frames of 441 samples (one frame for left and one frame for right) and look up the RMS value in a suitable calibration table to determine X and Y position.

Et voila, 1kHz sampling of analogue joystick and done using the soundcard just like the good old days :lol:
« Last Edit: June 06, 2009, 06:32:06 PM by Karlos »
int p; // A
 

Offline warpdesign

  • Sr. Member
  • ****
  • Join Date: Feb 2008
  • Posts: 256
    • Show only replies by warpdesign
    • http://www.warpdesign.fr
Re: PC still playing Amiga catchup
« Reply #449 from previous page: June 07, 2009, 11:24:55 AM »
Quote

The people who don't understand the argument are stupid. Doing a MOVE.W $DFF00A,D0 is superior to polling an analog joystick (period) via port 201h or via USB.

It certainly is. The point is: who cares ?

If this was a real problem I'm sure someone would have adressed this issue on PC hardware. But it seems everyone is living with it. Not to mention no one ever used it or mentionned it on the Amiga either.

So what's the point ?
« Last Edit: June 07, 2009, 11:35:22 AM by warpdesign »