Welcome, Guest. Please login or register.

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

Description:

0 Members and 23 Guests are viewing this topic.

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #14 from previous page: June 17, 2009, 02:31:39 PM »
Quote from: Hammer;511809
He basically implies, that today’s engineers are dumb and stupid. He didn't factor in the overall performance of the system. Refer to my posted PS3 RSX shader example in relation to instruction pairing.


And all of that is only considering the hardware side. The whole argument breaks down on the software level anyway - software these days is so much more complicated that you don't want to think about the hardware while writing it (to such an extent as is possible). You don't want to think about the endianness of your processor, the type of harddisk controller you are interfacing with, etc, etc.

You only want that level of control when absolutely needed and not as a basic requirement to write software. You don't want all that added headache when you are writing your enterprise-class ERP product or multi-gigabyte multimedia program (something like, say, World of Warcraft). This is the real reason API's are such a good thing and it's one that is being completely glossed over.

Quote

In terms of computation intensity, Geforce 9400 IGP kills Core 2 Quad using the same memory bus.


Indeed, though I will add that the average GPU is not in all situations a good CPU (even though you can run code on them). The reverse is, however, never true. Even a really fast CPU is still not going to beat a GPU at its tasks.

And it doesn't change anything about my statement, really (except maybe the bit about GPU access). If main RAM is too slow for your CPU that means your CPU is not going to be computation limited but IO limited instead. Let alone how many wait states you'd introduce by getting data of a stupendously slow thing like a harddisk or even worse, a USB mouse.

Lucky us programming evolved beyond polling until it's done in most cases and, wisely, this is only done these days when it can't be helped (or you have a bad programmer :P).
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #15 on: June 18, 2009, 04:23:48 PM »
Quote from: Wayne;512081
Don't get me wrong folks, I'm delusional that a thread on this site can still pull 1000+ responses in a short time.  I just wish it was all threads..  Then we might actually be able to say that the Amiga isn't dead after all..

:laughing:


Well, my Amiga's don't appear to be quite dead yet.

The platform?
There is that saying about horses....
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #16 on: June 19, 2009, 08:39:48 AM »
Quote from: Karlos;512204
Nobody wants to poll the joystick at 1kHz. Nobody anywhere in the entire world. Nobody, that is, except for you.

Let's just distil all this down to the basic facts here.

You have not given any evidence, anecdotal or otherwise to demonstrate that any commercial software ever written for the Amiga uses high resolution joyport polling to better capture the user's input.

The single, meaningful example of why polling the joystick at anything like the kHz range makes sense was given not by you, but by me. That example was the cassette tape interface for ZXAM which basically converts the incoming tape audio to a series of pulses on the joyport fire pin.

Your ability to record the joystick at a high rate in no way whatsoever demonstrates that River Raid (your chosen example) does so. Your sole evidence for this was that replaying events captured at a higher rate gave better, more predictable results. That does not tell you anything about the actual sample rate of the game itself. All it tells you is that you can better reconstruct the original joystick event stream by recording it at a higher rate. This is basic sampling theory: the reconstruction of any signal is better at higher sampling rates. It does not mean that the game is sampling at this rate. For instance, if I sample spectrum audio at 8kHz, replaying it back to the spectrum tends not to work very well. Recording and replaying at 22kHz works very well. We do not infer from this that the spectrum is reading data at 11kHz (the highest frequency you can hope to reconstruct at 22kHz). Far from it, it switches between 1-2 kHz using PWM encoding for bits.

The joystick example is the same. Even if River Raid samples the joystick once per frame only, you will be able to replay a recorded sequence of events more accurately if that recording is at a much higher sample rate than the game is using, simply because your recorded signal more closely resembles the original signal at higher rates and not because the game requires it.

So, you might very well be able to poll your joystick at a faster rate using CIA timing but I'm still waiting for an explanation as to what tangible advantage this gives with respect to human input for a joystick.


Well, I'm not sure about Amiga games -since I didn't seriously look into how their inner loops work- but I am sure about C64 and other 8 bit games.

On these machines the CPU is usually the limiting factor and most games just run one game loop per frame displayed. On the C64, since most interesting things are done through clever usage of interrupts, this effectively means a 50/60Hz polling rate for user input*.

On machines without raster interrupt such as the Spectrum it's more tricky to accurately say, but the average Spectrum game is quite lucky if it actually reaches a 60Hz update cycle for it's graphics. And since these games also update input once a frame at best you get a roughly 20-60Hz polling rate for user input*.

Now, like I said, I'm less sure about this on the Amiga. But I'm willing to state that most games on it will still follow the same model: update (most) everything once a frame, leading to a 50Hz/60Hz joystick polling frequency.


On a sidenote, the average human adolescent has a reaction time of about 215 milliseconds (http://en.wikipedia.org/wiki/Reaction_time), this drops with age. This translates to a reaction time of slightly over 10 frames (at 50Hz).

*) The assumption here being that the designer did not deliberately slow down reading user input. Though I've not seen this myself I'm pretty certain that a game updating its screen at 25Hz can get away with sampling the joystick at 25Hz without people noticing this much if at all.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #17 on: June 20, 2009, 10:36:25 AM »
Quote from: amigaksi;512348
Problem is more about getting all states of joysticks regardless of what a human's reaction time is.


This one line does not negate my post somehow you know. If you have a point regarding what I wrote, please make it instead of writing something that only adresses a single line of text in there and totally ignores the rest.

And another thing:

For a joystick port, the only 'problem' facing programmer is to read out the joystick fast enough a human can't notice you did so. The old 8 bit computers where slow, but the programmers of the time managed to fix this 'problem' by reading the state of the joystick at between 20-60Hz. This was more than plenty for people, it looked as if the ship/ninja-dude/thing-on-a-spring/whatever reacted directly instead of with a delay (exceptions here being due to slow animations, not slow joystick reading).

This means that polling a joystick at a rate of 20ms or faster is quite ok. You don't actually need it to be any faster and I'm 100% certain that programmers (being I know how they think as I a) am one and b) observed the works of the 8-bit crowds) only do what is needed and no more: they poll the joystick state once every frame. Not two times, not ten times. And definitely not at 1 KHz, which would be an utter waste of resources.

Now, had you written this about mice you actually may have had a point. But then, we do have PC mice that track at 1KHz. Notice that these mice are USB based and no one seems to have lag issues with them.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #18 on: June 20, 2009, 10:39:54 AM »
Quote from: alexatkin;512403
And THIS is what happens with modern hardware when you force developers to "bang on the hardware" vs developer friendly, API driven devkits. (not that the PS3 does not have APIs, but it requires the developer to do the work to get the 7 SPEs doing anything useful whereas the 360 does not)

http://www.joystiq.com/2009/06/17/ghostbusters-on-ps3-lags-behind-360-version-developer-explains/


To be fair, the PS3 also has a weaker GPU and a worse memory scheme than the Xbox 360. I see these to be more of a problem. Especially since Sony does have tools available to get you to use the SPU's relatively well even if you don't know how to (API's even :P).
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #19 on: June 20, 2009, 12:04:22 PM »
Quote from: Hammer;512452
Retail space wouldn’t indicate market size.



Reference 1 http://www.strategyinformer.com/news/3766/pc-largest-single-platform-for-gaming-revenue-is-about-11-billion

The PC is the largest single platform for games with annual worldwide revenue of about $11 billion. This is more than any of the console and portable systems from Sony, Microsoft and Nintendo.

• In emerging markets such as Asia and Eastern Europe the PC has become the de facto platform of choice for games as console systems have not had major penetration in most countries.

• Even in North America and Western Europe the PC is the leading single platform for games with over $6 billion in combined revenue from those markets.

• Broadband penetration has been a key driver of growth and revenue growth for PC games, and is directly tied to growth in broadband penetration.

• The three biggest trends in 2008 were 1) the growth of online digital distribution via services like Valve’s Steam; 2) the growth of free games with a virtual item purchase model and 3) the growing presence of game cards at major retailers like 7-Eleven.

• Top PC games regularly generate over $50 million at retail revenue but can generate substantially more in subscription and/or add-on revenue.

• Massively Multiplayer Online Games (MMOGs) are the leading products for both revenue and profits. Several Asian MMOGs are generating over $100 million in annual revenue after 5+ years on the market. World of Warcraft is generating over $1 billion in annual revenue. The Lich King expansion to World of Warcraft outsold its predecessor. In 2008, two major new subscription MMOGs (Warhammer Online and Age of Conan) sold over 1 million units at retail.

• Digital distribution, free-to-play models and retail game cards are well-established in Asia, but just starting to emerge in North America and Europe.



Reference 2 http://au.gamespot.com/news/6210424.html?tag=latestheadlines;title;5

• According to the PCGA's 2008 Horizon's Report, PC gaming software saw global revenues reach $12.7 billion in 2008, a year-over-year rise of $1.9 billion, or nearly 18 percent. Overall, the study found that the PC software and hardware market stood at $68 billion in 2008.



Reference 3 http://www.edge-online.com/news/ea-pc-becoming-worlds-largest-games-platform

• "Electronic Arts chief financial officer Eric Brown has said that “the online part of our business is growing as much as 60% year over year" and that the PC is rapidly becoming the largest gaming platform in the world."


This is quite interesting to read. Especially since financial reports of these companies suggest that the PC is trailing the consoles. Case in point, let's look at EA:

Total PC: 430
Total Consoles : 1,799
Total mobility (DS, PSP, etc): 572
The Xbox 360 alone makes EA more money ($589 million) than the PC ;)
(All in millions of $, from page 103 of their financial statement for 2008, http://investors.ea.com/annuals.cfm)

The same story is found for most of the bigger publishers.

BTW, I'm not saying the the PC market isn't bigger (even though that report you referred to is being sneaky in including online revenue on the PC side and not doing so for the consoles - even though Xbox live, PSN etc make quite a lot of money). But it's also much more crowded and so harder to make money in for bigger parties.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #20 on: June 20, 2009, 12:07:26 PM »
Quote from: Hammer;512453
http://www.tomsguide.com/us/sony-playstation-ps3-developers-hirai,news-3346.html

"Sony says PS3 Intentionally Hard for Developers"

"We don't provide the 'easy to program for' console that [developers] want, because 'easy to program for' means that anybody will be able to take advantage of pretty much what the hardware can do, so then the question is what do you do for the rest of the nine-and-a-half years?" explained Hirai.


I suppose that EDGE was just a joke then and they don't actually use OpenGL after all?

You are taking PR talk from the CEO and pretending it's fact. This is not wise ;)
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #21 on: June 20, 2009, 12:19:33 PM »
Quote from: Hammer;512459
The key part of PC gaming’s growth is in Asia.


Which doesn't change that the PC gaming alliance is not actually making more money than the 'combined console consortium' (the PDF itself says the PC market is about 30% of the whole), despite having many more manufacturers, a bigger market presence and having a growing market (Asia) behind them.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #22 on: June 20, 2009, 12:21:59 PM »
Quote from: Hammer;512460
Refer to RSX's LibCGM.



http://www.crunchgear.com/2009/06/10/valve-wont-develop-for-ps3-because-its-too-hard/

"Valve won’t develop for PS3 because it’s too hard".




http://news.softpedia.com/news/It-039-s-Very-Hard-To-Program-on-the-PlayStation-3-Says-Wheelman-Dev-107298.shtml

"We've heard Square Enix and Capcom, two local Japanese companies, complain about the problems they encountered when creating something for Sony's console, as opposed to the Xbox 360, which handles much better, and which, in Capcom's case, was the key to the Western market, in which Microsoft's console is more popular due to its lower price tag.

Recently, the executive producer for Wheelman, Shaun Himmerick, talked about the challenges the game he supervised encountered when it was brought to the PS3 from the Xbox 360 and PC platforms. He put it quite bluntly though, and stated that developing for the Japanese console was a real pain and you really needed to know what you were doing."


http://www.businessinsider.com/game-developer-rips-ps3-as-difficult-to-work-with-2009-2
But Midway Games (MWY) veteran Shaun Himmerick is less sanguine. In an interview with ThisXboxLife.com, Shaun says coding for the PS3 is "a huge pain in the ass.""


I didn't say it wasn't hard to program. I said that Sony is trying to make it better and that they are using standard API's.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #23 on: June 20, 2009, 12:59:40 PM »
Quote from: amigaksi;512461
Because the rest of your message was already dealt with before.  Don't get that much time to look-up references back in the same thread given size of thread.  You may be confusing games polling analog joysticks during only VBIs or such but joystick ports are read any time without requiring any interrupts or VBIs.  There are many programs on 8-bit (on Atari) that just have a main loop that reads the joystick and sets appropriate graphical elements or flags.  From the BASIC source codes I have on Amiga, they also don't use any VBIs to read joystick ports.


I did not say they used a VBI interrupt to read the joystick port. I said they polled it once per main loop. And I also stated that this main loop will run once per frame.

Anyway, C64 games do it exactly as I describe and no one ever commented about C64 games being less accurate to control than Atari 8 bit ones. Ever. On top of that I seriously doubt that 8 bit Atari games have a main loop that runs faster than once a frame.

Furthermore.... Amiga basic programs!?
Sigh. Amiga basic is dead slow. You are not seriously telling me you think these games update their main loop more than once per frame?

Quote

>For a joystick port, the only 'problem' facing programmer is to read out the joystick fast enough a human can't notice you did so. The old 8 bit computers where slow, but the programmers of the time managed to fix this 'problem' by reading the state of the joystick at between 20-60Hz. This was more than plenty for people, it looked as if the ship/ninja-dude/thing-on-a-spring/whatever reacted directly instead of with a delay (exceptions here being due to slow animations, not slow joystick reading).

The argument given before was that you can sample audio at lower rate like 11Khz and it may appear the same as 22Khz but there is a difference of accuracy of some frequency components.  And the other example given before was that of MP3 audio which distorts certain samples to get higher lossy compression ratios but sounds basically same as linear audio.  You can't prove just by looks-- you have to take into account whether reading at those higher rates ACTUALLY improves accuracy of input.


This is not relevant, because the games don't actually do it. And no one seems to notice.

Quote

>This means that polling a joystick at a rate of 20ms or faster is quite ok. You don't actually need it to be any faster and I'm 100% certain that programmers (being I know how they think as I a) am one and b) observed the works of the 8-bit crowds) only do what is needed and no more: they poll the joystick state once every frame. Not two times, not ten times. And definitely not at 1 KHz, which would be an utter waste of resources.

The question is not what you can get away with but what is more accurate.  It's not a waste if you have that time available; if processor is idle-- mine as well let the main loop run as fast as possible.


8 Bit CPU's did not have the time available. They ran their game loops once a frame.

Humans cannot react much faster than 200 or so ms. This means any input polling above twice that rate (100 ms) is not needed because this will perfectly reproduce the original input (per http://en.wikipedia.org/wiki/Sampling_theorem). Polling at 50Hz is polling at 20ms, which is ten times the desired frequency, meaning you beat the Nyquist–Shannon sampling theorem by a factor of five allready.

So, 50Hz polling will get you a perfect reproduction of what a human can input*. Which means sampling joystick input at 1Khz is an utter waste of resources.

*) Note that this is only true for digital joysticks. Analog input devices are another matter.
Quote

>Now, had you written this about mice you actually may have had a point. But then, we do have PC mice that track at 1KHz. Notice that these mice are USB based and no one seems to have lag issues with them.

If you examine technical description of 8-bit machines, you will find that even C64/Ataris had a FAST polling mode for their potentiometer readings-- fast pot scan which scanned in the potentiometers within 2 TV scanlines which translates to 15.75Khz/2 polling capability.  So whatever the purpose, it was there in the hardware.


And how many 8 bit machines had enough CPU power and memory to both read at that rate and actually do something with the results?

What really happened is that they read the results at a set frequency and interpolate the result based on the prior reading. Now, I did not do much with paddles and the like, but I'm willing to bet I already know at what frequency games such as breakout/arkanoid are sampling the analog input.
 

Offline Roondar

  • Full Member
  • ***
  • Join Date: Apr 2004
  • Posts: 109
    • Show all replies
    • http://www.powerprograms.nl/
Re: PC still playing Amiga catchup
« Reply #24 on: June 20, 2009, 01:13:19 PM »
Quote from: Hammer;512483
From this PDF, http://www.pcgamingalliance.org/imwp/download.asp?ContentID=15559

"The PC is the largest single platform for games with annual worldwide revenue of about $11 billion. This is more than any of the console and portable systems from Sony, Microsoft and Nintendo."

My comments come from the same PDF. The console market as a whole is much bigger than the PC one.