Jump to content
IGNORED

Paddle Movement?


Cybearg

Recommended Posts

I found this lovely thread, which answers many of my questions about the paddle.

 

However, there are still a few questions left unanswered:

 

1. What is the "idle" state of a paddle? That is, what is its resting position? Apparently its values can be 0 - 76, but which value does it rest at?

 

2. What happens when one twists the knob the other direction? Paddles, if I'm not mistaken, can be twisted both directions, so what happens if one twists it the other way? Does the value decrease from its "center" position towards 0 then, upon hitting 0, it returns to 76?

 

3. How are paddles meant to react? Does turning it clockwise typically denote moving something right in a game, or does turning counterclockwise denote right?

Link to comment
Share on other sites

There is no resting position for a paddle, because it doesn't auto center. It's resting position is any position between 0 and 80.

 

0 is twisted completely in one direction, while 80 is twisted completely in the other direction. Paddles can't spin past a certain position. Unless you're using a driving controller. The driving controller is a digital device, and uses gray code to send to the atari, if it's being turned. These will not work like paddles, they only sense turning clockwise or counter clockwise.

 

Games usually consider clockwise movement to go from left to right and counter clock from right to left. However I think most games simply assign a specific position, to each of the 80 positions.

Link to comment
Share on other sites

I forgot about the post that you linked to. I just adapted it for the bB page:

 

www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#paddlereading

 

You'll probably need to refresh the page to see the changes. See if that's OK or if it needs more added to it.

Link to comment
Share on other sites

That seems good to me. Could you also do one for the driving paddle? I've been struggling to get it to work, even after looking at the examples like zombie chase.

 

Have you found a good post about it yet? I can search too, but if you find one before I do, post a link and I'll adapt it.

Link to comment
Share on other sites

temp1 = SWCHA / 4 & $C
temp1 = temp1 | last
last = temp1 / 4
if ptbl[temp1] & nomove then goto no_move
if ptbl[temp1] & left then carpos=carpos-1 else carpos=carpos+1
gamebits{0}=1

const nomove = 1
const right = 0
const left = 2

data ptbl
nomove, right, left, nomove
left, nomove, nomove, right
right, nomove, nomove, left
nomove, left, right, nomove
end

no_move

;)

 

(untested, it compiles. I transposed temp1 and last)

 

edit: goofed the table fixed now I hope

Edited by bogax
Link to comment
Share on other sites

temp1 = SWCHA / 4 & $C
temp1 = temp1 | last
last = temp1 / 4
if ptbl[temp1] & nomove then goto no_move
if ptbl[temp1] & left then carpos=carpos-1 else carpos=carpos+1
gamebits{0}=1

const nomove = 1
const right = 0
const left = 2

data ptbl
nomove, right, nomove, left
left, nomove, right, nomove
right, nomove, left, nomove
nomove, left, nomove, right
end

no_move

;)

 

(untested, it compiles. I transposed temp1 and last)

 

I get the same thing I got from the zombie chase code: it spins uncontrollably and doesn't stop.

 


const nomove = 1
const turnright = 0
const turnleft = 2

data ptbl
nomove, turnright, nomove, turnleft
turnleft, nomove, turnright, nomove
turnright, nomove, turnleft, nomove
nomove, turnleft, nomove, turnright
end

temp1 = SWCHA / 4 & $C
temp1 = temp1 | last
last = temp1 / 4
if ptbl[temp1] & nomove then goto no_move
if ptbl[temp1] & turnleft then goto left else goto right

Link to comment
Share on other sites

Maybe creating a new thread about the driving controllers would spark more interest and the various AtariAge members with big brains could come up with a small working example program and also post some text that I could put on the bB page.

Link to comment
Share on other sites

I see I goofed it up when I transposed them

 

temp1 = SWCHA / 4 & $C
temp1 = temp1 | last
last = temp1 / 4
if ptbl[temp1] & nomove then goto no_move
if ptbl[temp1] & left then carpos=carpos-1 else carpos=carpos+1
gamebits{0}=1

const nomove = 1
const right = 0
const left = 2

data ptbl
nomove, right, left, nomove
left, nomove, nomove, right
right, nomove, nomove, left
nomove, left, right, nomove
end

no_move

 

but that just makes it the same as the zombie chase

code

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...