Jump to content
NRV

Pad 1.5 beta

Recommended Posts

Very nice. Is there any chance you could make it work with the CMI08 PC mouse adapter?

 

http://www.atariage....ouse-interface/

 

Allan

 

From a fast look at that thread, it seems that is mostly the same that doing the work for one paddle.. in that case it is possible (and can be tested in Altirra).

Maybe in version 1.8, but no promises :)

 

Edit:

Hmmmm.. but the manual says that you can put it "St-mouse" mode:

"when pushing the left and right button while the middle button is

pressed the interface is instructed to operate in ST mouse mode"

It should already work then.. or am I wrong?

Edited by NRV

Share this post


Link to post
Share on other sites

Edit:

Hmmmm.. but the manual says that you can put it "St-mouse" mode:

"when pushing the left and right button while the middle button is

pressed the interface is instructed to operate in ST mouse mode"

It should already work then.. or am I wrong?

It should just work, if the game supports the ST mouse (which it does).

Share this post


Link to post
Share on other sites

Very nice. Is there any chance you could make it work with the CMI08 PC mouse adapter?

 

http://www.atariage....ouse-interface/

 

Allan

 

From a fast look at that thread, it seems that is mostly the same that doing the work for one paddle.. in that case it is possible (and can be tested in Altirra).

Maybe in version 1.8, but no promises :)

 

Edit:

Hmmmm.. but the manual says that you can put it "St-mouse" mode:

"when pushing the left and right button while the middle button is

pressed the interface is instructed to operate in ST mouse mode"

It should already work then.. or am I wrong?

 

Thanks. I'll give it a shot.

 

And I just did and it works like a charm. Much better than the ST mouse.

 

Allan

Edited by Allan

Share this post


Link to post
Share on other sites

Nice!, is good to know that the code supports a better mouse then.

 

I know that there is a mouse speed parameter in Altirra, but I don't know exactly what it represents.. anyone have any info on that? Phaeron?

Share this post


Link to post
Share on other sites

Just ran the game for the first time, so will need to start playing first in order to give any impression.

 

But one thing: could you make a change that the game uses mouse in PORT 2? It's a common solution in most Atari programs using mouse. That joystick stays in port 1, but the mouse uses PORT2.

Share this post


Link to post
Share on other sites

But one thing: could you make a change that the game uses mouse in PORT 2? It's a common solution in most Atari programs using mouse. That joystick stays in port 1, but the mouse uses PORT2.

+1

Share this post


Link to post
Share on other sites

Great work NRV, looks like an Atari-ST game :thumbsup:

Great sound effect too & liking the metallic bricks :thumbsup:

 

You should consider posting this in the main A8 forum as people might have missed it :)

 

Here's my thoughts: [Played PAL version on 130XE&800XL]

  1. Definitely port default to 2nd joystick port or at least an option to select it.
  2. Easy is plenty easy enough but I think the Arcade mode is a touch too hard for most people - maybe slow it down a little. It's nice that you can keep the multi-balls going for a while but it's still a touch too difficult. The only reason to keep the game hard would be if there were only a few levels. How many are there? What happens at the end re difficulty/ending?
  3. I'd prefer fewer power-ups.
  4. I think power-ups should have small or better still no scoring value
  5. The bricks and doing the levels should be where the points are - the power-ups should not be the focus of the game - consistent scoring to reward game progress not just luck.
  6. I'd remove the skip level power-up unless the game has an end (like arcanoid where you are trying to reach this)
  7. I like that there is not a shooting power up and you have the mega ball :thumpsup:
  8. If you got really adventurous how about combining the power ups - especially the multi ball with hot ball or long bat would be :cool:

If anyone needs a mouse I bought one from www.st-freakz.co.uk via ebay a while ago. Works perfectly with this and the awesome KESoft's Brundles using the back of a regular foam mouse mat (needs a quick bit of shaving with a knife to fit 130XE's ports) ;-)

 

trbb

 

[yes - paddle controls would open this up to more players - might need some sensitvity adjustment settings re 130XE etc being shaky]

 

had another session today around 45K best I could do!

Please can you disable the reset trapping so it reboots (I ran PAD from mydos/mypicodosmenu) thanks :)

Edited by therealbountybob

Share this post


Link to post
Share on other sites

But one thing: could you make a change that the game uses mouse in PORT 2? It's a common solution in most Atari programs using mouse. That joystick stays in port 1, but the mouse uses PORT2.

+1

 

Here's my thoughts: [Played PAL version on 130XE&800XL]

  1. Definitely port default to 2nd joystick port or at least an option to select it.
  2. Easy is plenty easy enough but I think the Arcade mode is a touch too hard for most people - maybe slow it down a little. It's nice that you can keep the multi-balls going for a while but it's still a touch too difficult. The only reason to keep the game hard would be if there were only a few levels. How many are there? What happens at the end re difficulty/ending?
  3. I'd prefer fewer power-ups.
  4. I think power-ups should have small or better still no scoring value
  5. The bricks and doing the levels should be where the points are - the power-ups should not be the focus of the game - consistent scoring to reward game progress not just luck.
  6. I'd remove the skip level power-up unless the game has an end (like arcanoid where you are trying to reach this)
  7. I like that there is not a shooting power up and you have the mega ball :thumpsup:
  8. If you got really adventurous how about combining the power ups - especially the multi ball with hot ball or long bat would be :cool:

trbb

 

Please can you disable the reset trapping so it reboots (I ran PAD from mydos/mypicodosmenu) thanks :)

 

Hi!

 

I have already working the 2nd port option for the controllers (press "C" to choose the controller and port now). I also added a "casual" difficulty mode that is easier than "arcade" (the starting speed, the max speed and the "touching-the-top" speed are one step lower, and the time that it takes the ball to speed up is 40 seconds, instead of 20).

 

pad_v5.zip

 

The only problem with this version is that the high score is for both, casual and arcade. I'm going to fix this soon.

 

Right now there are 28 levels ordered in a "tree like" structure. You start from level 1a and you can choose to go to levels 2a or 2b (left or right exit at the end of the level). From 2a you can go to 3a or 3b. From 2b you can go to 3b or 3c. So, for the first level you have only one option, for the second 2, for the third 3 .. and for the seventh level you have 7 possible options. It's done like this so one play through doesn't take too much time and to give an "exploration" feeling to the game. Obviously there is probably only one branch that can give you the highest score and I tried to balance that with the difficulty of the branches. The game ends (you win and go back to the menu) when you complete the seventh level.

 

I want to add another game mode with almost the same levels, but organized in 14 or 15 levels in two branches (left and right, like with arkanoid 2). I will try to add also one simple enemy to this one.

 

About the powerups: many of the decisions about them are oriented to replicate the feeling of the arkanoid arcade games for now. I didn't wanted to introduce originals ideas yet, mostly because I didn't have much time to test them also, but I should say that the current system doesn't have a random element "that" big.. is true that the number of powerups generated can change a little between plays of the same level, but the principal factor of that is your play style, because the bricks that can generate powerups are fixed in every level (you can get this info for the Arkanoid 1 levels with a tool called ArkEdit) and the two most important rules for powerup generation are that: there is no powerup generated while there is another one falling and also when the multi ball is active.

 

post-11240-0-16907400-1326777234_thumb.png

 

So the gameplay right now, if you want a high score, is oriented to get all the possible powerups, what adds a big "risk / reward" factor.. that I like.

I like to think about the powerups as the "spice" of the levels, if not sometimes they are too plain and boring. I'm also pro a little random factor in some games, in between poker and chess I suppose :).

 

I added a rule to get a $5000 bonus score if passing the level without losing (I hope you read the scoring rules in the first post!). The "skip level" powerup can get you out of a difficult level and give you a bonus of $10000, but a real good player will try to advance that level till the end, without using the exits (what is very difficult), to score more points and get that $5000 bonus also.

 

Yeah, I also prefer the mega ball to the laser :) (is more in the "spirit" of these games).

 

I can make little adjusts and organize some special game modes if people want it, but I don't want to dedicate too much time to this project for now, because of another "priorities". That's why I don't want to implement combining powerups right now, but it can give you very interesting options, I agree :) (Arkanoid Returns does something like that... also Blasterball 3 did that well, but maybe the recomendation comes from too near :D).

 

Regards.

 

(About the reset trapping.. should investigate a little, I'm not doing it on purpose, but I normally deactivate the OS and use all of page zero).

(Going to look at paddle support also).

Share this post


Link to post
Share on other sites

:cool: this is a really excellent game, It's nice when you catch a slow then a multi-ball. I like the choice of levels feature.

 

Will be playing v5 tonight :)

Share this post


Link to post
Share on other sites

After loading the game arcade is selected by default. Pressing D swaps between easy and casual, but arcade option gets gone completely.

Edited by Jacques

Share this post


Link to post
Share on other sites

Paddle is the natural controller for such games.

 

Yep, I agree, the only problem that I remember from using the pads in the 2600 (with super breakout, video Olympics, etc) was the constant jitter. Just for that I prefer a little the mouse.

In Castle Crisis I used a little hysteresis. If the paddle moves in the direction of the previous movement, then the new position is accepted, but if the paddle starts moving the other way, it needs a difference of 2 or 3 before the position will change and the "current direction" is changed. This keeps the controlled object from being able to wiggle back and forth.

 

If the pots are in good shape the paddles work pretty well but the pots get dirty with age and non-use. In Atari's arcade machines, the pots are much more reliable because they are wired in voltage mode rather than current mode.

Share this post


Link to post
Share on other sites

After loading the game arcade is selected by default. Pressing D swaps between easy and casual, but arcade option gets gone completely.

 

Ooooops.. casual is there two times.. don't change arcade if you want to play that for now :)

 

In Castle Crisis I used a little hysteresis. If the paddle moves in the direction of the previous movement, then the new position is accepted, but if the paddle starts moving the other way, it needs a difference of 2 or 3 before the position will change and the "current direction" is changed. This keeps the controlled object from being able to wiggle back and forth.

 

Ok, thanks.

Do you know if is useful to sample the paddles many times in a frame and average the results?

I would like to know how many times can the value change in a frame.. but probably in the editor the behavior is different.

Share this post


Link to post
Share on other sites

Paddle is the natural controller for such games.

 

Yep, I agree, the only problem that I remember from using the pads in the 2600 (with super breakout, video Olympics, etc) was the constant jitter. Just for that I prefer a little the mouse.

In Castle Crisis I used a little hysteresis. If the paddle moves in the direction of the previous movement, then the new position is accepted, but if the paddle starts moving the other way, it needs a difference of 2 or 3 before the position will change and the "current direction" is changed. This keeps the controlled object from being able to wiggle back and forth.

 

If the pots are in good shape the paddles work pretty well but the pots get dirty with age and non-use. In Atari's arcade machines, the pots are much more reliable because they are wired in voltage mode rather than current mode.

I tried to write some "de-jitter" code for a project I am working on. It works, but has a bug. The paddle doesn't jitter, but occasionally the end of range checking is off by one pixel. Never did get it debugged, I should re-visit that.

Share this post


Link to post
Share on other sites

Ok, thanks.

Do you know if is useful to sample the paddles many times in a frame and average the results?

I would like to know how many times can the value change in a frame.. but probably in the editor the behavior is different.

 

Well, you have to wait quite a while after POTGO before the results are ready so this isn't really an option (I don't think I've ever messed with fast pot scanning, though). You just have to leave it up the user to get good paddles. Turning them end to end a few dozen times can greatly improve their accuracy, and there are pot cleaning sprays.

Share this post


Link to post
Share on other sites

Castle Crisis input code:

 

;Warlords XL Inputs code...
;2003 Bryan Edewaard
;Uses aux temps0,1

inputs

#IFDEF showdli
lda #$58		;Light Purple
sta COLBK
#ENDIF

#IFDEF tracking
ldx #$84
stx test
#ENDIF

lda gamemode		;Not during pause
cmp #07
beq inputs2

lda humans
and gameon		;No human inputs if no game
asl a
asl a
asl a
asl a
sta atemp1

;Update the Paddle Values
ldx #$03		;Read 4 Pots

potloop
asl atemp1
bcs potcont

lda padtmp,x		;If a computer player, padtmp is AI player
bpl potplus

cmp #$B0		;Clip negative values to B0 or higher
bcs potsave
lda #$B0
bne potsave

potplus
cmp #$51		;Clip positive values to 50 or less
bcc potsave
lda #$50

potsave
sta shldpos0,x

jmp nextpot

potcont

lda POT0,x


;Adjust for a Paddle offset value (adjust where the active
;portion of the paddle is).

sec
sbc #POFFSET		;Subtract an offset value (26 or less)

;Did this generate a less-than-zero result?

bcs potskip1		;No, no adjustment needed
lda #00			;Yes, <0 becomes 0
bcc potskip2		;skip the next test

;Did this generate a greater than 160 result?

potskip1
cmp #161		;In range?
bcc potskip2		;Yes, skip down
lda #160		;No, adjust to 160	
clc			;We got here because Carry was set

potskip2	
sta atemp0		;Save the final value

;Take the new value and modify it to +1 if the momentum is forward

adc paddir0,x		;Get "resistance" direction (0 or 1)

;Now subtract the old value

sec
sbc padtmp,x		;Subtact the old value

;Carry is clear if the old value was bigger (we're going backwards)
;Move the result to Y so we can use A

tay			;Copy of the result in Y
lda #0			;Clear A
rol a			;A = 1 if new value is larger, 0 if not (Clears Carry!)

;A contains the new "paddir"
;Now see if the change is outside of the filter zone

cpy #2			;Subtraction result greater than 3?
bcc nextpot		;No, ignore this change

;Okay, this change is valid. Save A as "paddir" and
;save the new POT value

sta paddir0,x

lda atemp0
sta padtmp,x

lda #$50
sec
sbc atemp0
sta shldpos0,x


nextpot
dex
bpl potloop		;Do all 4
sta POTGO		;Restart Pots!


#IFDEF debug
lda #$00		;Black
sta COLBK
#ENDIF


inputs2

;Now check other inputs

;Read & Debounce the Fire buttons
lda PORTA
and #$CC		;Keep paddle fire buttons
tax

and oldporta		;Anything that was low before, stays low
lsr a
lsr a
sta buttons
lsr a
lsr a
ora buttons
and #$0F
sta buttons

stx oldporta

;Read & Debounce the Console keys
lda CONSOL
and #$07		;Low 3 only
sta atemp0

lda contmp1
and contmp2		;Debounce.. Will stay low if either of last 2 are low
eor #$07		;Set non-pressed buttons low
ora atemp0		;Only new presses stay low	
	
asl a			;Prepare for key bit
sta console		;Save it

lda contmp1		;Set up vars for next time
sta contmp2

lda atemp0
sta contmp1


;Read & Debounce the SPACE bar
sec
lda oldkey
and #$40		;New key?
beq in_keyskip		;No new keys	

lda KBCODE
and #$3F		;Remove CTRL/SHIFT
sta atemp0		;keep it for later
eor oldkey		;Do these keys match?
and #$3F
bne in_keyskip		;No.. exit

;New key, and the same as the current key

lda oldkey
and #$BF		;Clear the "New key" bit
sta oldkey
clc			;Set the "read key" bit

in_keyskip
ror console		;Console top bit means "read key"

;Do keyboard reads for next time
lda SKSTAT
and #$04
bne in_nokey

;A key is pressed
lda oldkey
and #$40
ora atemp0		;Get the new keycode
ora #$80		;Mark that a key is pressed

ldx oldkey		;Was it low before?	
bmi in_keycont		;Yes, save this state and exit

;New keypress
ora #$40		;Set b6 (meaning new key)
jmp in_keycont

;No press
in_nokey
lda oldkey		;Remove "key pressed" bit
and #$7F

in_keycont	
sta oldkey

rts

  • Like 1

Share this post


Link to post
Share on other sites

I deleted the 5200 references above, because I forgot I ended up with a completely different input routine on the 5200. When I first wrote this, I assumed a 2-port 5200 was the same as a 4-port with 2 sticks permanently unplugged. I later found out that some features of the first 2 controllers appear if you read the missing ports 3 and 4 because Atari removed the port decoding logic from the keypad scanning circuit as well. This caused me to produce a run of defective CC5200 carts which detected 2 players (1+3 or 2+4) on a 2-port 5200 when a button was pressed. No wonder all of Atari's cartridges make you specify the number of players in advance.

 

I'm not sure if this is useful, but here it is:

 

;Warlords 5200 Inputs code...
;2003 Bryan Edewaard
;Uses aux temps0,1

inputs

#IFDEF showdli
lda #$58		;Light Purple
sta COLBK
#ENDIF

#IFDEF tracking
ldx #$84
stx test
#ENDIF

lda gamemode		;Not during pause
cmp #07
bne in_cont
jmp inputs2

in_cont

lda TRIG2		;Is button 3 pressed?
;	and TRIG3		;Cannot use port 4 - It's connected to port 2!! &@%#!!!

;Make copies of the H-inputs (so they're consecutive)
ldx POT0
stx atemp4
ldx POT2
stx atemp5

;4-port pots
ldx POT4
stx atemp6
cpx #228
rol a			;bring into A (C is set if no reading)

ldx POT6
stx atemp7
cpx #228
rol a			;bring into A (C is set if no reading)

;Store the V-inputs for detection purposes
ldx POT1
stx vpot0
ldx POT3
stx vpot1

;4-port pots
ldx POT5
stx vpot2
cpx #228
rol a			;bring into A (C is set if no reading)

ldx POT7
stx vpot3
cpx #228
rol a			;bring into A (C is set if no reading)

;Check for 4-port console
cmp #$1F		;Check for 4-port pot or TRIG activity
beq in_portskip		;None, skip

;Set 4-port mode
lda #$03
sta portmask

in_portskip

lda humans
and gameon		;No human inputs if no game
asl a
asl a
asl a
asl a
sta atemp1

;1st set all positions to enemy positions (humans inputs will overwrite these)
ldx #3

in_enloop
lda bitmask,x
and humans		;Is this a human quadrant?
bne in_ennext

lda enemypos,x		;enemypos is AI player
bpl potplus

cmp #$B0		;Clip negative values to B0 or higher
bcs potsave
lda #$B0
bne potsave

potplus
cmp #$51		;Clip positive values to 50 or less
bcc potsave
lda #$50

potsave
sta shldpos0,x
in_ennext
dex
bpl in_enloop

;Update the Paddle Values
ldx #$03		;Read 4 Pots

potloop
lda newquad,x
bpl potcont		;Continue if a player

jmp nextpot		;Not a player input (yet)

potcont
sta atemp2		;Destination quadrant

lda atemp4,x
clc
adc #10
sta atemp0		;10-238

;Take the new value and modify it to +1 if the momentum is forward

adc paddir0,x		;Get "resistance" direction (0 or 1)

;Now subtract the old value

sec
sbc padtmp,x		;Subtact the old value

;Carry is clear if the old value was bigger (we're going backwards)
;Move the result to Y so we can use A

tay			;Copy of the result in Y
lda #0			;Clear A
rol a			;A = 1 if new value is larger, 0 if not (Clears Carry!)

;A contains the new "paddir"
;Now see if the change is outside of the filter zone

cpy #2			;Subtraction result greater than 3?
bcs in_dopot
jmp nextpot		;No, ignore this change
in_dopot
;Okay, this change is valid. Save A as "paddir" and
;save the new POT value

sta paddir0,x

lda atemp0
sta padtmp,x

lda atemp4,x
sta atemp0

;Input processing

lda inp_mode,x
bpl in_padmode		;If we haven't picked a mode, then paddle
asl a
beq in_padmode		;If we have and it's 0, then paddle

;Joystick mode
;Change range to 0-255
lda atemp0
cmp #228
bcc in_jran1
lda #227
sta atemp0		;Limit to 227
in_jran1
lsr a
lsr a
lsr a			;0-28
clc
adc atemp0		;0-255 range on sticks
sta atemp0

;Do a MID update every once in a while
in_jnocarry
cpx readport		;Only re-center one joystick each time
bne in_joy2		;Skip down
lda hmin,x
cmp atemp0
bcc in_joymax	
lda atemp0
sta hmin,x		;New min
in_joymax
lda hmax,x
cmp atemp0
bcs in_joymid
lda atemp0
sta hmax,x		;New max
in_joymid
lda hmin,x
lsr a
sta atemp1
lda hmax,x
lsr a
adc atemp1		;New center value

cmp #82			;Not less than 80
bcs in_joymidsk1
lda #82
in_joymidsk1

cmp #174		;Not more than 176
bcc in_joymidsk2
lda #173
in_joymidsk2
sec
sbc #80			;Difference between center and our value
sta hcenter,x		;Offset correction.

;Continue with joystick stuff
in_joy2
lda atemp0		;Get position
sec
sbc hcenter,x		;Re-center
bcs in_joyrange1	;No borrow, then skip
lda #$00
in_joyrange1
cmp #161
bcc in_joyrange2
lda #160
in_joyrange2
sta atemp0

lda atemp2
and #$FE		;Is it in Q0 or Q1?
bne in_final		;No skip

sec
lda #160
sbc atemp0		;Invert range
sta atemp0		;Save it
jmp in_final

in_padmode
;PADDLE
lda #228
sec
sbc atemp0
lsr a			;228/2
sta atemp0
lsr a			;228/4
clc
adc atemp0		;Add

cmp #161
bcc in_padrange
lda #160
in_padrange
sta atemp0

in_final

lda #$50
sec
sbc atemp0

ldy atemp2
sta shldpos0,y		;Save the value


nextpot
;Do joystick detection
lda inp_mode,x			;Has this one been set (locked)?
bmi in_vnochange		;Already done
cpx readport			;Only do one per pass
bne in_vnochange		;Not this one

asl a
sec
sbc vpot,x			;Subtract the original value
clc
adc #5

in_vcompare
cmp #10
bcc in_vnochange
;We moved in the V direction!
lda #$81
sta inp_mode,x		;Joy mode!

lda #$79
ldy ga_togpos,x		;Get screen position
sta $0600,y		;Put the letter on the screen

lda #16
sta ltimer,x		;Set an erase timer

in_vnochange	

dex
bmi in_potsdone		;Do all 4
jmp potloop

in_potsdone
sta POTGO		;Restart Pots!


#IFDEF debug
lda #$00		;Black
sta COLBK
#ENDIF

;This handles all POKEY key inputs
;Start with top buttons

inputs2
ldx readport
inx
txa
and #$03
sta readport
tax

and portmask		;Added for 2-port mode
cmp readport
beq in2_cont

;2 port mode for controllers 3&4

lda bitmask,x		;Raise top-button for this controller
ora topbuttons
sta topbuttons

lda #$FF
sta console
jmp in_nokey2

in2_cont
ldy #$03
cpy gamemode		;Game in play?
bcs in_nogame		;Before a game, we do not re-arrange buttons

lda newquad,x		;What Quadrant does it belong to?
bmi inputs3		;If none, then ignore presses
tax			;X = quadrant	

in_nogame

;Read the top (shift) buttons

lda SKSTAT
and #$08		;Top Button?
bne in_notop
lda bitmask,x		;Get a bit in the correct position
eor #$FF
and topbuttons		;Clear the correct bit
sta topbuttons
jmp inputs3
in_notop
lda bitmask,x		;Raise or lower a top-button each time
ora topbuttons
sta topbuttons

;Now read the lower (triggers) buttons
inputs3

lda #$0F		;Start with buttons up
ldy portmask		;#3
in3_lp	

ldx TRIG0,y
bne in3_next		;Reject if not pressed...&
ldx newquad,y
bpl in3_skip		;Skip down if assigned
eor bitmask,y
jmp in3_next

in3_skip
eor bitmask,x		;Flip the correct bit
in3_next
dey
bpl in3_lp


;Combine with top buttons
in3cont

and topbuttons
tax
and oldbuttons		;Anything that was low before, stays low

sta buttons		;buttons is low for any top or bottom button.

stx oldbuttons

;Read the keypad
;Done for all inputs - always.
;Not reassigned

lda KBCODE
lsr a			;Remove low bit
and #$0F		;5200 codes only
tax			;Index
ldy in_codes,x		;Get an adjusted code
ldx readport

in_nokey
lda #$FF
sta console

lda IRQST
and #$40
bne in_nokey2

lda #$03
cmp gamemode		;Game in play?
bcs in_nogame2		;Before a game, we read all controllers

lda newquad,x		;Does this controller have a quadrant?
bmi in_nokey2		;No, throw any presses away

in_nogame2	
tya			;This will set flags
bmi in_nokey2		;Exit if no key pressed

cmp oldkeya,x		;Get the previous value
;	beq in_nokey2		;If its the same, then wait till next time
beq in3_end

sty oldkey		;Save the value
lda #$FF

cpy #$0C		;Start?
bne in_skip1
eor #$01

in_skip1
cpy #$0B		;Select (#)
bne in_skip2
eor #$02

in_skip2
cpy #$0E		;Reset (*)
bne in_skip3

;Force a reset
lda #$00
sta NMIEN		;Stop NMI's
sta DMACTL
jmp su_normal		;Reset

in_skip3

sta console

lda console
and #$7F
sta console

tya
sta oldkeya,x		;Save it for next comparison

jmp in3_end

in_nokey2

lda #$FF
sta oldkeya,x		;Save it for next comparison


;Set up for next cycle's reads
in3_end
inx
txa
ora #$0C
sta CONSOL

sta SKREST
ldx #$00
lda #$40
stx IRQEN
sta IRQEN
stx IRQEN
sta IRQEN

rts

;Scan codes
;Keep only 7,9,1,3,*,#,Reset,Pause,Start
in_codes
.db	$FF,$0B,$09,$0A,$0E,$01,$09,$00,$0D,$09,$09,$09,$0C,$03,$09,$02	

Share this post


Link to post
Share on other sites

Ok, thanks.

Do you know if is useful to sample the paddles many times in a frame and average the results?

I would like to know how many times can the value change in a frame.. but probably in the editor the behavior is different.

 

Well, you have to wait quite a while after POTGO before the results are ready so this isn't really an option (I don't think I've ever messed with fast pot scanning, though). You just have to leave it up the user to get good paddles. Turning them end to end a few dozen times can greatly improve their accuracy, and there are pot cleaning sprays.

I think we established that the jittery issue is not with the paddles but with the 130XE (and other XEs?) ports (something hardwarey!) - I have sets that work fine on 800 & XL but not the XEs - I was thinking that some sort of sensitivity adjustment option might help to negate this :)

 

NRV - small bug when you change the difficulty level you cannot select arcade!

casual plays well, got a bit futher. Still not sure about penalising players scoring for using the D multi ball as this is the most skillfull part ;)

Some indication of your score beating the high would be nice in game (maybe a sound)?

You could add a sound as you leave/complete a screen (as your sound effects are so good) :)

To limit the power ball you could make this continually increase in speed - that way the player would catch another bonus to end it if it got too fast!

Share this post


Link to post
Share on other sites

Thanks for the code Bryan.

For now I just implemented the straightforward method (just using POT0..3 and POTGO).

 

I think we established that the jittery issue is not with the paddles but with the 130XE (and other XEs?) ports (something hardwarey!) - I have sets that work fine on 800 & XL but not the XEs - I was thinking that some sort of sensitivity adjustment option might help to negate this :)

 

NRV - small bug when you change the difficulty level you cannot select arcade!

casual plays well, got a bit futher. Still not sure about penalising players scoring for using the D multi ball as this is the most skillfull part ;)

Some indication of your score beating the high would be nice in game (maybe a sound)?

You could add a sound as you leave/complete a screen (as your sound effects are so good) :)

To limit the power ball you could make this continually increase in speed - that way the player would catch another bonus to end it if it got too fast!

 

Here, version 1.81:

 

pad_v6.zip

 

Changelog:

 

- first extra ball is at $20000 and then after every $100000

- added a small ball speed up when catching the "mega ball" powerup

- when pressing RESET we do a cold start now

- fixed: unable to select "arcade" after changing the difficulty

- fixed: giving unwanted score when opening the exits at the end of a level

- added paddle controllers from 1 to 4 (select with "C" option)

- added "Paddle angle" option: 50% or 100% (use half or full rotation to move)

- modified high score logic, so when you select easy, casual or arcade you see the score and level info for that difficulty only

- added "highlight" effect for all hard bricks at the start of a level

 

About the jitter issue, I suppose is both ways, maybe a problem with the 130xe, but also a problem (in time) with the paddles. I wait for any report about that, for people that play with real hardware.

I tested the paddles using the mouse with Altirra and I use the 100% rotation option, because the other is too fast for me, but maybe in real hardware is not like that.

 

The multiball not giving powerups for now is to clone the rule in Arkanoid 1, but also because I'm using all the players for the 3 balls :). I'm still thinking about what to do ingame when passing the high score.

 

In the next days I just want to add some "things" to the tittle screen and that new game mode that I was talking, and let this rest for some time :).

 

Regards!

  • Like 1

Share this post


Link to post
Share on other sites

Played I mean "tested" on 130XE and 800XL - looking very good. Even with jitteriest paddles (same on both computers!) it plays really well - the 100% (1/2 turn) was ok and and 50% (1/4 turn) was better, perhaps even less than 50% would work too?! The game is much more playable with paddles than mouse and this will allow more people to play the game. :thumpbsup:

 

Last year I ran a Paddles Games round in the HSC playing about half of the paddles games so this will make a perfect headliner game if we do the same again this season :)

 

This screen is a bit of a pain - as you can't get more power ups easily - the game would be improved if the gold bricks disappeared after a *lot* of hits ;)

post-19705-0-71429300-1327361290.jpg

Share this post


Link to post
Share on other sites

Played I mean "tested" on 130XE and 800XL - looking very good. Even with jitteriest paddles (same on both computers!) it plays really well - the 100% (1/2 turn) was ok and and 50% (1/4 turn) was better, perhaps even less than 50% would work too?!

 

Is good to know that they work well.

Wow, for me 50% was already too fast :). But I tested it only in the emulator. The problem is that with 50% there is already a 1:1 relationship between the paddle values and the pixels moved in the screen, so to go faster I must jump over some pixels. The thing that I can try is adding some acceleration, like with the mouse, configurable in the options.

 

This screen is a bit of a pain - as you can't get more power ups easily - the game would be improved if the gold bricks disappeared after a *lot* of hits ;)

post-19705-0-71429300-1327361290.jpg

 

I agree, that one is a pain, also in the arcade :). I don't want to change the rule that much, but I can do a special version of that level, a little easier. So if you see another levels that are too frustrating just send me the pictures (I normally avoid that screen :)).

 

Regards.

Share this post


Link to post
Share on other sites

...

Wow, for me 50% was already too fast :). But I tested it only in the emulator. The problem is that with 50% there is already a 1:1 relationship between the paddle values and the pixels moved in the screen, so to go faster I must jump over some pixels. The thing that I can try is adding some acceleration, like with the mouse, configurable in the options.

 

It's fine as it is but if it's not much more work you could try adding an option for less and maybe add a 75% too !

I'm guessing this runs on XL/XE only?

Share this post


Link to post
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...