-
Posts
90 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Posts posted by The Maxx
-
-
Thanks.
I couldn't find a cable to try that last night, but I discovered one today (attached to an old wireless receiver) and re-flashing it did the trick.
Now if I could only figure out why my games crash on the Harmony Cartridge, but not in Stella. :/
- 1
-
-
Is there someone I can contact to get my cartridge repaired? ;o;
-
It would be nice to name bits to describe what they do. For example:
dim onGround = a{0} dim jump = a{1} dim gravity = b if onGround && !jump && joy0fire then onGround=0 : jump=1 : gravity=-12
// edit //
http://atariage.com/forums/topic/146335-cycles-used-by-bb-operations/?p=2092258
-
Mmmkay.
So, I have some code that works in an emulator, but crashes on real hardware. It is a simple calculation to decide which stage to load when the player passes specific coordinates in the play area:
; scroll | change screen if player0x<16 then player0x=136 : xPos=136 : scrollFlag{0}=1 if player0x>136 then player0x=16 : xPos=16 : scrollFlag{1}=1 if player0y>200 then player0y=160 : scrollFlag{2}=1 if player0y>160 && player0y<200 then player0y=0 : scrollFlag{3}=1 ; scrollFlag{0} left, {1} right, {2} up, {3} down temp1=stage/4 : temp2=temp1*4 : temp3=stage-temp2 if !scrollFlag{0} then goto skipLeft if temp3>0 then stage=stage-1 else stage=stage+3 skipLeft if !scrollFlag{1} then goto skipRight if temp3<3 then stage=stage+1 else stage=stage-3 skipRight if !scrollFlag{2} then goto skipUp if stage>3 then stage=stage-4 else stage=stage+12 skipUp if !scrollFlag{3} then goto skipDown if stage<12 then stage=stage+4 else stage=stage-12 skipDown if scrollFlag{0} || scrollFlag{1} then goto loadStage bank4 if scrollFlag{2} || scrollFlag{3} then goto loadStage bank4 stageLoaded
the "loadStage" routine simply directs the program to load a new playfield and then jumps back. (I'll only include one pf here to conserve space...
if stage<>0 then goto skip0 playfield: ................................ ................................ .............XXX................ .............X.X................ .............X.X................ .............X.X................ .............X.X................ .............X.X................ .............XXX................ ................................ ................................ end ; Other playfield data with nearly identical event code here. ; Now that the stage is loaded, turn the stageLoaded scrollFlag on and jump back to the game scrollFlag{0}=0 : scrollFlag{1}=0 : scrollFlag{2}=0 : scrollFlag{3}=0 : goto stageLoaded bank3
K, so (queso?) loading a new playfield works fine when the player moves up, right, or down. If the player moves to the left, the program crashes. Any ideas?
-
I sent SeaGtGruff a message already, but I'll repost it here to see if you guys can help.
http://atariage.com/forums/topic/171024-quick-yes-or-no-question-on-variable-arrays/?p=2116346
I think a read/write array would be beneficial to keep track of collectibles in my platformer.
My problem is, I don't really understand the read/write part.
So, I dimmed the array in bank1:dim arrayW=$F000 dim arrayR=$F080
then within the game loop (bank3), i have the player pick up an item:
if player0x>player1x-4 && player0x<player1x+12 && player0y>player1y-4 && player0y<player1y+12 then player1x=227 : player1y=227 : arrayW[0]=1
To change screens, I jump to another bank to load the stage data:
player1x=240 : player1y=240 arrayR[0]=arrayW[0] if stage<>0 then goto skip0 if arrayR[0]=0 then player1x=32 : player1y=128 skip0 goto stageLoaded bank3
So if it isn't obvious, I only want to place player1 on the screen if it hasn't yet been collected.
I am (obviously) doing something wrong. I don't understand how you write to one address, and read that value from another... if you cannot write to the address you are reading from... am I making sense?
- 1
-
Aha! Now, this is something that I'm pretty sure I understand. I've been wondering how to use tables and it appears that it is easier than I thought... kind of like a 1d (read only?) array... that can be used with multiple objects.
Thanks!!! Now, I just need to put it to use.
-
Thank you! I almost understand this. It will be good to have here when things start coming together in my feeble brain.
-
Okay, so... sometimes I do things the long and tedious way. Then I go back and tidy things up when I can see a broader picture of where the patterns are. However... I started putting together a 32 direction subpixel movement and found that, even though the pattern is obvious, I am unable to multiply the floats the way that seems most obvious in order to shrink the code down to something less ridiculous (bB hangs).
This is what I got... it works fine, but it's BLOOAATED. Ha! Thanks in advance if there is anyone who could give me some advice:
my variables are set like:
dim xVel = a.b
dim yVel = c.dI have tried creating my own "temp variables" to do the multiplication ahead, but that failed as well
dim temp2 = e.f ; etc
if direction=0 && joy0up then xVel=xVel+0.032 if direction=1 && joy0up then xVel=xVel+0.028 : yVel=yVel-0.004 if direction=2 && joy0up then xVel=xVel+0.024 : yVel=yVel-0.008 if direction=3 && joy0up then xVel=xVel+0.020 : yVel=yVel-0.012 if direction=4 && joy0up then xVel=xVel+0.016 : yVel=yVel-0.016 if direction=5 && joy0up then xVel=xVel+0.012 : yVel=yVel-0.020 if direction=6 && joy0up then xVel=xVel+0.008 : yVel=yVel-0.024 if direction=7 && joy0up then xVel=xVel+0.004 : yVel=yVel-0.028 if direction=8 && joy0up then yVel=yVel-0.032 if direction=9 && joy0up then xVel=xVel-0.004 : yVel=yVel-0.028 if direction=10 && joy0up then xVel=xVel-0.008 : yVel=yVel-0.024 if direction=11 && joy0up then xVel=xVel-0.012 : yVel=yVel-0.020 if direction=12 && joy0up then xVel=xVel-0.016 : yVel-yVel-0.016 if direction=13 && joy0up then xVel=xVel-0.020 : yVel=yVel-0.012 if direction=14 && joy0up then xVel=xVel-0.024 : yVel=yVel-0.008 if direction=15 && joy0up then xVel=xVel-0.028 : yVel=yVel-0.004 if direction=16 && joy0up then xVel=xVel-0.032 if direction=17 && joy0up then xVel=xVel-0.028 : yVel=yVel+0.004 if direction=18 && joy0up then xVel=xVel-0.024 : yVel=yVel+0.008 if direction=19 && joy0up then xVel=xVel-0.020 : yVel=yVel+0.012 if direction=20 && joy0up then xVel=xVel-0.016 : yVel=yVel+0.016 if direction=21 && joy0up then xVel=xVel-0.012 : yVel=yVel+0.020 if direction=22 && joy0up then xVel=xVel-0.008 : yVel=yVel+0.024 if direction=23 && joy0up then xVel=xVel-0.004 : yVel=yVel+0.028 if direction=24 && joy0up then yVel=yVel+0.032 if direction=25 && joy0up then xVel=xVel+0.004 : yVel=yVel+0.028 if direction=26 && joy0up then xVel=xVel+0.008 : yVel=yVel+0.024 if direction=27 && joy0up then xVel=xVel+0.012 : yVel=yVel+0.020 if direction=28 && joy0up then xVel=xVel+0.016 : yVel=yVel+0.016 if direction=29 && joy0up then xVel=xVel+0.020 : yVel=yVel+0.012 if direction=30 && joy0up then xVel=xVel+0.024 : yVel=yVel+0.008 if direction=31 && joy0up then xVel=xVel+0.028 : yVel=yVel+0.004
-
-
Wow, that's way over my head. It's good information to have for later when I understand this stuff more. Thanks!
Is there a simple example of a routine that passed a pointer from a variable? I have looked around on the interwebz, but I don't really get the pointer stuff yet.
-
It all looks like Galaga ships to me!
-
There must be a way to do it without entering a data set for each color change. I think I'm going to continue on with my game in monochrome and hope that an answer comes. If not, I may just end up hardcoding the colors for each change, but that seems like a waste of space and I can't imagine the transition would look nearly as cool.
Whoah, your avatar just changed color and I thought I was hallucinating. Hahah!
-
Thanks, RT! You're a swell guy, you know? I'm really digging the quick and friendly support!
k, so (queso?)... I have a new question:
I have a small program that cycles through colors:
dim changeColor = a.b ; cycling color variables start player0x = 16 : player0y = 20 ; set player position player0: %01111110 %11100111 %11000011 %10000001 %11111111 %11011011 %11011011 %01111110 end main changeColor = changeColor + 0.66 ; cycle through COLUP0 = changeColor ; change player color drawscreen ; drawscreen goto main
^ That works with the default bB kernel, but if I try to use similar code to change the colors of a sprite in the DPC+ kernel, it changes it to a pale yellow color and doesn't cycle:
dim changeColor = a.b ; cycling color variables start player0x = 16 : player0y = 20 ; set player position player0color: changeColor changeColor changeColor changeColor changeColor changeColor changeColor changeColor end player0: %01111110 %11100111 %11000011 %10000001 %11111111 %11011011 %11011011 %01111110 end main changeColor = changeColor + 0.66 ; cycle through drawscreen goto main
I'm probably trying to do something majorly dumb. Hah!
-
Can you toggle a bit on and off by adding to it? For example...
toenail= toenail+1
if toenail= 25 then toejam{0} = toejam{0}+1 : toenail=0
-
The colors look a little funny on my Atari, but that might be because I'm playing on a squished tiny little 8 inch screen.
<edit>
I tore open my Atari and adjusted the potentiometers. The picture is better, but not exactly as nice as I'd hoped. What can I expect though, this machine is as old as I am... my colors aren't so pretty either.
- 1
-
Thanks!
I ended up solving the problem with a subroutine.
-
Is there a good example of a simple function? I'm sure that the one on RT's page is good, but I can't figure out how to add arguments or make it useful...
-
<edit>
Screen rolling due to unstable fps...
Simplified some code and, although it ate up more ROM, the problem is alleviated.
-
<edit>
In an effort to keep this thread about programming in batari Basic, I have moved all Mine Dig stuff here:
-
The top row should be free of any mines, so if there is a mine below the ladder, just move to the left or right. I should have mentioned this before.
-
Thanks!
-
I thought I might try the titlescreen kernel. I made a crappy little titlescreen and then started through the .pdf guide, but my Visual bB doesn't seem to have the options listed in the manual : "Title Kernal 96x1", "Title Kernal 48x1", "Title Kernel 48x2", etc.
Here is my version of visual bB compared to the one in the TSKernel manual.
-
Cool program! I looked at it once before, but I couldn't make heads or tails of it then. Now that I've played around in bB, I can see what it's illustrating. Thanks!
from Harmony to dissonance
in Harmony Cartridge
Posted · Edited by The Maxx
They are games I am working on. I can't figure out what I am doing wrong. I will post three ROMs here. Each are VERY early in development, but I can't see the point in continuing development if they are unplayable on real hardware. :/
I haven't stripped the skating game back to see if I can isolate the bug, but the other two are pretty bare and I still haven't a clue.
skate d.bin
pseudopods d.bin
TEST3.bin
They all work well enough in Stella. On my Harmony, the skate game crashes after a second or two. Pseudopods, i believe, crashes while you are rotating your ship. TEST3 crashes when scrolling to the next screen on your left.
I don't know if it is crappy code and maybe Stella is very forgiving...? Maybe my Harmony is not completely compatible. It is an earlier model, I believe. I got it back before I dropped out of the scene for awhile. Has something changed with the newer Harmony cartridges?