+Allan Posted December 29, 2011 Share Posted December 29, 2011 (edited) Very nice. Is there any chance you could make it work with the CMI08 PC mouse adapter? http://www.atariage.com/forums/topic/134949-advance-orders-for-cmi08-ps2-mouse-interface/ Allan Edited December 29, 2011 by Allan Quote Link to comment Share on other sites More sharing options...
NRV Posted December 29, 2011 Author Share Posted December 29, 2011 (edited) 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 December 29, 2011 by NRV Quote Link to comment Share on other sites More sharing options...
+Stephen Posted December 29, 2011 Share Posted December 29, 2011 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). Quote Link to comment Share on other sites More sharing options...
+Allan Posted December 29, 2011 Share Posted December 29, 2011 (edited) 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 December 29, 2011 by Allan Quote Link to comment Share on other sites More sharing options...
NRV Posted December 29, 2011 Author Share Posted December 29, 2011 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? Quote Link to comment Share on other sites More sharing options...
w1k Posted January 12, 2012 Share Posted January 12, 2012 something new in development? Quote Link to comment Share on other sites More sharing options...
Irgendwer Posted January 12, 2012 Share Posted January 12, 2012 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. This should help: http://www.atariage.com/forums/topic/169554-untangle-minimal/page__p__2100486#entry2100486 Quote Link to comment Share on other sites More sharing options...
NRV Posted January 12, 2012 Author Share Posted January 12, 2012 something new in development? Not for now.. This should help: http://www.atariage....86#entry2100486 Thanks, I didn't remember that.. if someone request paddle controls I'm going to give it a try. Quote Link to comment Share on other sites More sharing options...
Jacques Posted January 13, 2012 Share Posted January 13, 2012 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. Quote Link to comment Share on other sites More sharing options...
+Philsan Posted January 14, 2012 Share Posted January 14, 2012 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 Quote Link to comment Share on other sites More sharing options...
+therealbountybob Posted January 15, 2012 Share Posted January 15, 2012 (edited) Great work NRV, looks like an Atari-ST game Great sound effect too & liking the metallic bricks 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] Definitely port default to 2nd joystick port or at least an option to select it. 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? I'd prefer fewer power-ups. I think power-ups should have small or better still no scoring value 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. I'd remove the skip level power-up unless the game has an end (like arcanoid where you are trying to reach this) I like that there is not a shooting power up and you have the mega ball :thumpsup: If you got really adventurous how about combining the power ups - especially the multi ball with hot ball or long bat would be 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 January 18, 2012 by therealbountybob Quote Link to comment Share on other sites More sharing options...
NRV Posted January 17, 2012 Author Share Posted January 17, 2012 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] Definitely port default to 2nd joystick port or at least an option to select it. 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? I'd prefer fewer power-ups. I think power-ups should have small or better still no scoring value 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. I'd remove the skip level power-up unless the game has an end (like arcanoid where you are trying to reach this) I like that there is not a shooting power up and you have the mega ball :thumpsup: If you got really adventurous how about combining the power ups - especially the multi ball with hot ball or long bat would be 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. 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 ). 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). Quote Link to comment Share on other sites More sharing options...
+therealbountybob Posted January 17, 2012 Share Posted January 17, 2012 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 Quote Link to comment Share on other sites More sharing options...
Jacques Posted January 17, 2012 Share Posted January 17, 2012 (edited) After loading the game arcade is selected by default. Pressing D swaps between easy and casual, but arcade option gets gone completely. Edited January 17, 2012 by Jacques Quote Link to comment Share on other sites More sharing options...
Bryan Posted January 18, 2012 Share Posted January 18, 2012 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. Quote Link to comment Share on other sites More sharing options...
NRV Posted January 18, 2012 Author Share Posted January 18, 2012 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. Quote Link to comment Share on other sites More sharing options...
+Stephen Posted January 18, 2012 Share Posted January 18, 2012 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. Quote Link to comment Share on other sites More sharing options...
Bryan Posted January 18, 2012 Share Posted January 18, 2012 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. Quote Link to comment Share on other sites More sharing options...
Bryan Posted January 18, 2012 Share Posted January 18, 2012 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 1 Quote Link to comment Share on other sites More sharing options...
Bryan Posted January 18, 2012 Share Posted January 18, 2012 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 Quote Link to comment Share on other sites More sharing options...
+therealbountybob Posted January 18, 2012 Share Posted January 18, 2012 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! Quote Link to comment Share on other sites More sharing options...
NRV Posted January 20, 2012 Author Share Posted January 20, 2012 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! 1 Quote Link to comment Share on other sites More sharing options...
+therealbountybob Posted January 23, 2012 Share Posted January 23, 2012 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 Quote Link to comment Share on other sites More sharing options...
NRV Posted January 24, 2012 Author Share Posted January 24, 2012 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 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. Quote Link to comment Share on other sites More sharing options...
+therealbountybob Posted January 24, 2012 Share Posted January 24, 2012 ... 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? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.