Jump to content

The Maxx

New Members
  • Content Count

  • Joined

  • Last visited

Everything posted by The Maxx

  1. 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?
  2. 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. :/
  3. I think a power surge fried the cart. I didn't take this pic (I'm too lazy), but you'll get the idea:
  4. Is there someone I can contact to get my cartridge repaired? ;o;
  5. 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
  6. 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?
  7. 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?
  8. 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.
  9. Thank you! I almost understand this. It will be good to have here when things start coming together in my feeble brain.
  10. 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.d I 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
  11. 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.
  12. It all looks like Galaga ships to me!
  13. 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!
  14. 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!
  15. 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
  16. 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.
  17. Thanks! I ended up solving the problem with a subroutine.
  18. 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...
  19. <edit> Screen rolling due to unstable fps... Simplified some code and, although it ate up more ROM, the problem is alleviated.
  20. <edit> In an effort to keep this thread about programming in batari Basic, I have moved all Mine Dig stuff here: http://atariage.com/forums/topic/260288-mine-dig/
  21. 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.
  22. 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.
  23. 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!
  • Create New...