Subject: Re: [stella] trick to using select switch as a toggle? From: Rob <kudla@xxxxxxxxx> Date: Sun, 31 Aug 2003 00:00:22 -0400 |
On Saturday 30 August 2003 18:05, KirkIsrael@xxxxxxxxxxxxx wrote: > screen values are restored. I do a tight loop until > the select button is released, to prevent multiple counting > of the select, but that didn't work. I'd been wrestling with the same problem lately. I haven't actually written the code to fix it, but here's the theory I came up with while driving home one night this week :P (I guess I'll write my theory in assembler here and work it into what you posted, but no guarantees it'll build... I don't even have dasm on the same machine as my mail client at the moment.) This costs a byte (actually 4 bits, so I guess I'll stick your playercount flag in a 5th) of RAM. Suppose that byte is called SwitchFlags. The effect I'm envisioning is that if you hold down the select key, the number of players gets toggled about twice a second (more useful for games with more than 2 options accessible by select) but the display of the title screen isn't otherwise disturbed. (Holding down the reset button should result in the first frame of your game being displayed till you let go, but unless you start some annoying music on the first frame like Parker Bros. Frogger I think this is okay ;) ) TitleStart ; if we've jumped here, we don't want to switch the player ; mode... Kirk, I actually don't get what this is here for JMP DoneSwitchingPlayerCount ; if we jump HERE, we want to deal with the switches... HandleSwitches LDA SWCHB AND #%00000001 ;is game start down? BEQ CheckSelect ; if not, try select JMP MainGameStart CheckSelect LDA SWCHB AND #%00000010 ;is game select down? BNE SelectIsDown LDA #%11110000 ; if not, clear keybounce timer ORA SwitchFlags STA SwitchFlags JMP DoneSwitchingPlayerCount SelectIsDown LDA SwitchFlags AND #%00001111 ; check keybounce timer BEQ TogglePlayerCount ; if not waiting, toggle the player count DEC SwitchFlags ; otherwise, tick the clock and wait some more JMP DoneSwitchingPlayerCount TogglePlayerCount LDA SwitchFlags EOR #%00010000 ; toggle player count bit ORA #%00001111 ; reset keybounce timer STA SwitchFlags ; and save.... DoneSwitchingPlayerCount (VBLANK code continues....) Rob ---------------------------------------------------------------------------------------------- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[stella] trick to using select swit, KirkIsrael | Thread | Re: [stella] trick to using select , KirkIsrael |
Re: [stella] trick to using select , KirkIsrael | Date | Re: [stella] trick to using select , KirkIsrael |
Month |