Jump to content

Coolcrab

Members
  • Content Count

    427
  • Joined

  • Last visited

Posts posted by Coolcrab


  1.  

     

    I recommend using the 16-bit random number generator for better results. It requires that you set aside one of your variables, though. E.g.:

     dim rand16 = z 

    I have an empty variable ® but it just gives errors when I say dim rand16 = r Should it be at the top or something?


  2. When I downloaded and compiled, I see this:


          3387 bytes of ROM space left in bank 1
          87 bytes of ROM space left in bank 2


    I am using bB.1.1d.reveng41 and VbB 568.

    But does it work for you?

     

    A bankswitched binary has code at the end of each bank to deal with bankswitching. A 4k ROM doesn't have this code.

     

    [edit - nevermind. I see you've split the kernel and code. I'll have a deeper look.]

     

    [edit 2 - looked deeper. see comments below]

     

    The .bas as provided does split off some code to bank 1 and bank 2. So really the question is, why does a 4k binary use 4080 bytes, and the same code in a 8k format use 4710 bytes?

     

    64 bytes of that is the bankswitch code. (32 per bank) Another 12 bytes is lost to the hotspot.

     

    Each of the pf* commands is doing a bankswitch "gosub", which takes 25 bytes of rom instead of 3 bytes for the non-banked version. (You'll be adding similar overhead when you start using banked gosubs)

     

    There are are fair number of pf* commands, so I think that probably accounts for most of it.

    Aha so that costs more because it goes to the drawing in a different bank? In a way it shouldn't matter much as long as the game compiles, as I could hide more stuff in Bank 2. But do you have any clue why it doesn't run after compilatukn? Should I not break up the main loop? If so does that mean that this game can't be larger than 4k?


  3. I get this, but that might be a mac vs win thing. If you run the game does it work for you?

     

    Compilation completed at 8/30/2018 9:32:48 PM

    view output file:///C:/Users/Alex/Downloads/bin
    Post compilation files deleted
    [8/30/2018 10:17:55 PM] saving C:\Users\Alex\Downloads\MonkeyKing0.16.bas succeeded.
    Compile started at 8/30/2018 10:17:55 PM
    Compiling C:\Users\Alex\Downloads\MonkeyKing0.16.bas
    2600 Basic compilation completed.
    3387 bytes of ROM space left in bank 1
    87 bytes of ROM space left in bank 2
    Compilation completed at 8/30/2018 10:17:56 PM
    view output file:///C:/Users/Alex/Downloads/bin
    Post compilation files deleted

     


  4. I am trying to understand how bank switching works. I found RT's tutorial and example but I can't seem to be able to apply it to my own game.

    http://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#bankswitching

     

    As far as I understand: the first bank should become larger if you set it to 8k, but for me it becomes smaller. I have 8b left in 4k mode and -200 in 8k mode.

    This is when I put bank 2 right before the score minikernel at the very bottom. If I put bank 2 before the main loop then it doesn't fit in bank2 and if I split the main loop between the two banks then I get errors or garbled graphics.

     

    People don't seem to have such troubles with this so maybe its the minikernels? If anyone has any idea of how this works then it would be great if they could take a look. At the moment I mainly want more space for the AI but I might want to add a title screen kernel later.

    MonkeyKing0.16.bas.bin

    MonkeyKing0.16.bas

    score_graphics.asm

    playerscores.asm


  5. The RNG on the coconuts seems a bit too random at the start of a new game. Sometimes I'll go 30 seconds or a minute before I see a coconut. Then there are the games that start with an instant coconut to the face, followed immediately by two more coconuts.

     

    This is shaping up to be a fun game. The power-ups seem to work well.

     

    --edit-- ...except for the slowdown. It occurs too often, and allows you to slow the game to the point where you could go for a snack and come back without being in danger of hitting a branch.

     

    I think that has to do with the 2600 RNG. The coconut has a 25% chance of falling and otherwise spawns right below the screen and tries again. I might lower the chance a bit to make it less annoying, but I fear that they will always cluster a bit due to how the RNG works.

     

    I'm glad that you like the power-ups. Note that they are not random. You need 2 dots for the 2nd power-up and 3 for the 3rd, etc. I might change it to become random but that removes a bit of the strategy.

    Maybe I'll put it in as an option.

     

    I plan on adding at least 4k and a menu with game options, so that should allow for more game types.

    • Like 1

  6. Updated game to have a simple AI and added a keep going option that allows the remaining player to keep playing after the other died.

    left switch to go from 1p to 2p and right switch to toggle the keep going mode.

    • Like 2

  7. the "must purchase box" is what keeps me from buying most of the new homebrew releases. While the boxes are very cool, I have no space to store them and I don't want to pay a lot of extra money for something I'm going to have to either throw away, which seems disrespectful to the work that went into it, or put in a box in storage and never see again.

     

    boxeless versions would see many more purchases from me

     

    I agree. My collection is all cart only and I don't really need boxes. :P (The box of Astronomer is the exception, because I made the game)

    • Like 1

  8. I am trying to save the highscore in my game and for some reason it refuses. I am not sure why this is happening, but I suspect that it has to do with the fact that I use score instead of _sc1, _Sc2, _sc3 or the temp variables.

     

    When the game is over I send the code to a goto that compares the score to the HS (0 in the beginning) and save it if its higher.

       temp1 = score
       temp2 = score+1
       temp3 = score+2
      
    
       if temp1 > _a then goto __New_High_Score
       if temp1 < _a then goto __Skip_High_Score
    
       if temp2 > _b then goto __New_High_Score
       if temp2 < _b then goto __Skip_High_Score
    
       if temp3 > _c then goto __New_High_Score
       if temp3 < _c then goto __Skip_High_Score
       goto __Skip_High_Score
    
    __New_High_Score
    
       _a = temp1 : _b = temp2 : _c = temp3
    
    
    __Skip_High_Score
    

    _a,_b,_c are all set to 0 at the beginning of the game and are not touched outside of this operation.

     

    Then I try to flip back and forth between the current score and the old one by reusing a variable that doesn't get triggered during pause/Game over

    __scorehs
     if !_startgame then goto __main
     ;reuse invisible var to flip HS back & forth
     _invisible0 = _invisible0 + 1
     if _invisible0 > 200 then _invisible0 = 0
     
       temp4 = score
       temp5 = score+1
       temp6 = score+2
    
     if _invisible0 < 100  then scorecolor = $44 
     if _invisible0 = 100  then _rand1=temp4 : _invisible1=temp5 : _speed=temp6 : temp4 = _a : temp5 = _b : temp6 = _c
     if _invisible0 > 100 && _invisible0 < 199  then scorecolor = $66
     if _invisible0 = 200 then temp4 = _rand1 : temp5 = _invisible1 : temp6 = _speed
    
     return
    

    It seems to work because the color of the score flips back and forth, but both scores are always the current number and all past HS's are gone.

     

    Could anyone take a look at what is going wrong?

    MonkeyKing0.13.bas

    score_graphics.asm

    playerscores.asm


  9. Has anyone heard of these new refurbished ataris?

    I would be tempted to buy one of this is real, but I can't find any information on these things apart from the listing. Does anyone have one and could they review?

     

    https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.de%2Fulk%2Fitm%2F253812838018

     

     

    Edit: found homepage

    http://0711spiele.de/konsolen/atari-2600-junior-black-edition-mit-hdmipausen-und-stereo-umbau/

    • Like 1

  10. New update, game now has icons for powerups! Are they clear to people?

     

    qOz3SDj.png

    1) Slows down time for both monkeys. (Scrolling slows down)

    2) Removes all branches on your screen on your side

    3) Heals your head. (Gives a life.)

    4) Makes opponent invisible. (So he can't see where he's going?)

    5) Ads a branch to enemies tree at height of player on the left for Player 0 and on the right for player 1.

    Download: http://atariage.com/forums/topic/274433-beta-monkey-king-formerly-climb-the-tree/


  11. New update, game now has sprites for powerups

     

    qOz3SDj.png

    1) Slows down time for both monkeys. (Scrolling slows down)

    2) Removes all branches on your screen on your side

    3) Heals your head. (Gives a life.)

    4) Makes opponent invisible. (So he can't see where he's going?)

    5) Ads a branch to enemies tree at height of player on the left for Player 0 and on the right for player 1.

    • Like 2

  12. Ah I missed that endif! Thanks for that.

     

    I also noticed that the order of the characters matters in the ASM file, is that a feature?

     

    So if you do

     const fontcharSPACE=1
     const fontcharBACK=1
     const fontcharCROSS=1
    

    while BACK is before SPACE in the asm then $a will be BACK and $b will be SPACE.

     

    Just wanted to put it down for future generations, as this took me some time to figure out.


  13. The special characters get put into the hex digit positions starting with $a, in the order that they're defined in score_graphics.asm.

     

    The following example puts a "©1983" with a space after it in the score. Be sure to add in the spaces that the AA forum eats from the margin, or download the bas at the end of the post...

     

    const fontstyle=ALARMCLOCK
     const fontcharSPACE=1
     const fontcharCOPYRIGHT=1
    
     dim sc0=score
     dim sc1=score+1
     dim sc2=score+2
    
     rem we update the score bytes individually...
     sc0=$b1
     sc1=$98
     sc2=$3a
    
     scorecolor=$0f
    
    gameloop
    
     drawscreen
     goto gameloop
    attachicon.giffont.bas.bin attachicon.giffont.bas

     

    I tried this out but for some reason it only works for up to 2 new characters. once I add a 3rd one it just refuses to compile.

    It should be possible get up to 6 new characters right?

    font.bas

    score_graphics.asm


  14. I am wondering how possible it would be to make a Inversus like game. So a shooter where one player can only move in PF (black) and one only on BG(white). They can shoot in 4 directions and of a black bullet turns white field into black and vice versa.

     

    Most of this can be made in Bb but I would also need a third type of field that does not change color and blocks both players. Maybe the ball can be flickered?

    Are there easy kernels for yars revenge like 'neutral zone' pixels?

     

    A more square PFpixel would also be nice. Can that be done in asm? Because then maybe I have to start looking at that.

     

    https://www.inversusgame.com

×
×
  • Create New...