Welcome, Guest. Please login or register.

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

Description:

0 Members and 3 Guests are viewing this topic.

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« on: June 03, 2009, 11:05:32 PM »
Quote from: Karlos;509042
My dear fellow, do try to keep up :)

http://www.amiga.org/forums/showpost.php?p=508702&postcount=168

I actually posted the boot times of my machines, completely from cold, earlier in the thread. Sadly, the A1200 lost the race between the two of them. Live with it.

However, I'll happily agree with you all that Vista isn't quick to start, despite whittling away all the unwanted gubbins.

PS:

OS4 on the G4 800 was fastest of all of them ;)

I detect some competition. I will beat all of you. Here is a boot loader I wrote the other day, to load my custom OS for my pc:

Code: [Select]
; Description: dVMOS boot loader
; Author:      Brian Craig Miller
; Date:        2009-MAY-26
; Version:     4
; assembler:   fasm
#make_boot#

org 7c00h

secnum equ 5 ; number of sectors after sector one to load

sector1:
    cli ; disable interrupts
   
    ;setup temporary stack out of te way
    mov dx, 08000h
    mov ss,dx
    mov sp, 0ffffh
   
    ; make es point to paragraph 0
    push 0
    pop es
    sti ; enable interrupts
           
    ; setup registers for the copy routine      
    mov bx, 07e00h ; address of free memory
    mov cl, 2

loadkernel:
    call copysector
    add cl, 1     ; move to next sector
    add bx, 512   ; area to move next sector into
    cmp cl, secnum + 1
    jne loadkernel
   
runkernel:
    ; jump to our kernel
    push 07e0h ; cs
    push 00000 ; ip    
    retf      
   
copysector:
    pusha
    mov ah, 02h ; read sector
    mov al, 1   ; read one sector
    mov ch, 0   ; cylinder 0
    ;mov cl, 3   ; second sector            
    mov dh, 0   ; head 0
    mov dl, 0   ; drive 0
    int 13h     ; bios disk routines
    popa
    ret


 
db 510-($-sector1) dup (090h)   ;fill out restof sector with zeroes
dw 0AA55h ; sector signature bios needs to identify bootable sec

On my 1.6GHz p4, I can go from cold start to ganking 6 sectors of the floppy and running my "kernel" in 2 seconds flat. I could cut some time off by stuffing the whole thing in a boot rom on a network card. Hell, I could get a 1second boot if I just ditched the sparse bios routines and stuff my crap in the bios flash rom it's self.

Oh, and Amiga OS is bloated compared to my OS. Every *byte* accounted for. I have you all beat. :roflmao:
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #1 on: June 04, 2009, 03:28:20 PM »
Quote from: amigaksi;509155
But it's a requirement before you can run any application (barring Atari 2600 type cartridge boots).  Nobody boots the OS just for the sake of booting the OS.  On Amiga and PC, you can autoboot to any application; therefore, time taken to type LOAD "*",8,1 has to be added to boot-up time.

The criterion is to boot up to what you want to do with the system and that has to involve starting an application.

Talk about moving the goal post. :rolleyes:
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #2 on: June 04, 2009, 06:00:12 PM »
You can ask the windows kernel for the value of the game port and it'll return you that value before a stock amiga can stuff a number in one of it's cpu registers.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #3 on: June 04, 2009, 06:19:49 PM »
Quote from: amigaksi;509198
It happens by default with famous PC compilers. ck and 10+ button joysticks suck as well.  I rather have a one or two button joystick rather than complicate things for kids playing games with 10+ joysticks.  "Sorry you pressed Select instead of A".  "Sorry you pressed Start although it's labeled as Select."  "Sorry you pressed the right white button instead of left black one."  Now take this into context of a fast shoot-em up game.

So, basically sub ms joystick polling is mad important to you, but more than two buttons drives you up the wall. LOL, this gets better and better. Please continue.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #4 on: June 04, 2009, 06:22:40 PM »
Out of curiosity, does anybody know enough about hid game controllers to comment on if it's possible to get events from it with less than 1 ms between events? I know USB latency *round* trip is like 5 ms.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #5 on: June 05, 2009, 12:32:08 AM »
Denise chip handles digital joystick. 3.57MHz 290ns time period. Documentation shows 16bit value for each joy port state. Is there an internal latch? Documentation i've read says something to the effect of data shifted into this 16bit register one bit at a time on leading edge of clock. Then wouldn't it mean that it takes 2.3us to update the status of a joyports state? Paula handling analog joystick reads ADC once per video frame. Any hardware gurus out there know if i got this right?
« Last Edit: June 05, 2009, 12:37:27 AM by koaftder »
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #6 on: June 05, 2009, 12:54:09 AM »
Quote from: bloodline;509278
You have never programmed an Amiga then... AGA was not that compatible with OCS/ECS... the chipset even contained a compatibility mode that could be switched on during the early boot sequence to degrade the chipset features to the older spec.


I have tried to follow your weird Joystick argument... I can't think of a single game that I or anyone else has ever written on the Amiga that checked the Joystick status more than once a frame... if it did then any related animation would be jumpy, since there would missing frames...

You can read any register on any system as fast as the busses will allow... but if you can read the port faster than you need to, and you do read it faster than you need to, you are just wasting bandwidth.... with the Amiga there is precious little bandwidth, wasting it all trying to read the joystick one thousand times a second would just steal the bus time away from the audio and gfx circuits that do need to read memory and registers that quickly.
If you want to sample something at a stupidly high rate there are plenty of available options on the PC... I use an FA-101 Firewire box to sample 10 channels of 32bits at 192Khz... that can be processed in realtime... that sort of pisses on your weird little 1khz joystick port...

spec sheet says 6 24bit channels in at 192KHz.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #7 on: June 05, 2009, 01:00:35 AM »
Quote from: bloodline;509287
you're quite right, it's only 96khz with 10 channels :lol:

I'm afraid our friend is going to have to conclude that because of this, the Amiga blows your pc and it's fancy firewire bus out of the water.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #8 on: June 05, 2009, 10:39:57 PM »
Quote from: Karlos;509434
Thought experiment:

Suppose you took an analogue joystick and used the X/Y potentiometers to control an independent left/right output volume from a oscillator (generating a note at let say several kHz)  then fed that into your basic sound card and sampled this signal at 44.1kHz. You could then calculate the RMS intensity of each channel in frames of 441 sample chunks and use that (suitably calibrated) to represent the original X and Y potentials. 441 samples at 16-bit precision would be ample data to get a decent value for the RMS intensity of a simple tone in the kHz range.

That should be pretty damn close to 1kHz sampling of your joystick position ;)


Make sure to use single copper crystal wires, coated in platinum.

I wonder if amigaksi has ever seen what a button press looks like with an oscilloscope, or has ever had to deal with debouching. Years ago, when I first started playing around with microcontrollers, I had a simple little project I threw together, one of my first. Toggle an LED based on the state change from a pin. I'd press the button and it would randomally decide whether or not it was gonna stay lit. That drove me up the wall but I learned something. Contact switches are full of noise and ring like hell. Polling the crap out of a contact switch or tying one to an interrupt line is a waste of time. You take a sample and you move on. Even if a person could press a button 1,000 times a second, the noise floor would make it impossible to ascertain what really happened. This is one of the many reasons why people typically sample the joystick once per frame. You're not likely to have a legitimate state change in under 50ms. Sampling at higher rates just means you're picking up noise.

*edit* lol, you guys beat me to it!
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #9 on: June 05, 2009, 11:34:23 PM »
Quote from: Fanscale;509449
"Reaction time from visual stimulus is actially in the 200ms range"

I wouldn't use wiki as an authorative source on everything.

Look at Tennis, Cricket and Baseball or Clay pigeons even. Or how about snipers?

They're describing a specific thing here. Mainly, waiting for a visual cue and making some kind of movement, and 200ms is about  right, according to everything I've read over the years. People can move faster, of course, but within limits, but not hanging on a stimulus event. Typing or walking up a flight of stairs for example. In games, it's easy to get trained to the point where you just automatically hit the right sequence of interface buttons to go through a level without even thinking. But how fast can you click a button or move a stick?

Try this: http://www.urban75.com/Mag/java7.html

Best I can do is 6 clicks a second. 166ms per click.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #10 on: June 06, 2009, 09:48:45 AM »
Quote from: amigaksi;509492
He was lying (concocting things to confuse people) and you were biased enough to fall for it without any evidence.

No, he's not lying. He took at look at the data and came to the same conclusion that I did, he just managed to drop his post a few minutes before I got done with mine. I actually dumped your table into excel and did some analysis.

To begin with, you didn't disclose how you got this information. You didn't tell us what the other bits are for either. The first issue alone makes your data worthless. Another, more important issue is that you have no idea how often the software polls the port and you stated as such.

Your data shows state changes on the joy port with a time interval of 0.01 milliseconds. This is physically impossible for a human and mechanical switches are unable to guarantee a clean state at this frequency.  It's classic undebounced garbage signal noise. I see that you've slammed folks about one thing or another about the chipset, yet you seem to know nothing about basic hardware issues. For all your hemming and hawing about cycle count this and sync that on ancient hardware, you fail to unserstand how a contact switch works.

« Last Edit: June 06, 2009, 10:08:54 AM by koaftder »
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #11 on: June 06, 2009, 10:31:33 AM »
Quote from: kolla;509518
0.01 millisecond? Or 0.01 second?

The data the guy posted and is defending has sub millisecond entries. He's arguing that 10 microsecond state changes on the joy port are important for playing games.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #12 on: June 09, 2009, 01:33:20 AM »


Amiga; "cats up"
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #13 on: June 09, 2009, 12:18:58 PM »
20 Years from now, when terabytes of non volatile memory are standard and video displays beam 3d images directly into your eyeballs, we're still gonna be arguing about joystick ports and boot up times.



I like PCs, I like Macs, got some SGI hardware, som DEC hardware, I use Windows, Linux, NetBSD, OS X, AROS, and Amgia OS 1.3. I love it all but smoking the dust from a ground up Denise chip is just bad for your health.
 

Offline koaftder

  • Hero Member
  • *****
  • Join Date: Apr 2004
  • Posts: 2116
    • Show all replies
    • http://koft.net
Re: PC still playing Amiga catchup
« Reply #14 on: June 09, 2009, 09:54:01 PM »
Quote from: DonnyEMU;510250
It's obvious that people who are responding here about "Games for Windows" here have never done any real DirectX, Managed DirectX, Or XNA Game Studio programming at all and they are just talking out of their proverbial hats.. If you want to talk about support for more than just game controllers and want to add Windows Live and Xbox live including multiplayer over network (IP), and voice and instant messaging  and headset communication, not to mention the upcoming facial recognition and other technologies..

I suggest you visit the following URLs:

http://www.gamesforwindows.com/en-US/AboutGFW/Pages/DirectX10.aspx

http://creators.xna.com/en-US/

I don't think about programming a pots unit anymore, please that's done all for me in a standardized kind of way.. I think more about creating a game for the PC and deploying it on the X-box 360 and Zune (all of which cross port via the free XNA game studio 3.0).. And if you look at creators.xna.com there are all sorts of nice 3d and 2d multi-scroller games with (some are free), or I can program my own and sell it directly on X-box live and they are as good as any Amiga game I had back in the day..

Check out catalog.xna.com and get back with me about this discussion..


How often do you read from the controller class in XNA (; I bet it's once per render loop.

Done a little bit XNA stuff on the 360 myself. It's a pretty nice environment.