Jump to content

ultima

Members
  • Content Count

    235
  • Joined

  • Last visited

Posts posted by ultima


  1. hmm not sure if anyone on here could help but i've found a nasty bug in the game that I can't figure out. if you beat the game around 4 times in a row the players lifebar changes color then on beating the next game the lifebar starts cycling colors as the player moves eventually crashing the game after reaching the winning condition. Any help would be greatly appreciated!

     

    Here's the source (sorry the comments are not up to par)

     


  2. Update**

    Latest version is in 1st post

    added back screens removed from the first version

    added another weapon option in the difficulty switches

    fixed a few small bugs like the death screech ;)

    and rearranged the code layout

    oh and after re-reading the viking myths I renamed the game to fit closer to a real viking theme

     

    in the next update I'll be working on random placement of objects and enemies

    • Like 1

  3. thanks I went with the multiplication and the byte saver

    if joy0left then _Bit3_Flip_p0 = %00000000 : _Bit2_Flip_p1 = %00000000
    if joy0right then _Bit3_Flip_p0 = %00000100 : _Bit2_Flip_p1 = %00000100

    works like a charm and saved a couple bytes too


  4. sorry I will simplify the question. Is addition faster than multiplication?

     

    example:

    (moosegizzards * 2) is the same as (moosegizzards + moosegizzards)

     

    so I am figuring that in 6502 asm that one of these statements will compile a smaller faster solution.

     

     


  5. I was on RT's site looking at the sprite flipping example and got a question about this

       dim _Bit2_Flip_p1 = a
       dim _Bit3_Flip_p0 = a
    
       player0:
       %01111110
       %11111111
       %00011111
       %00000111
       %00011111
       %11111111
       %01111110
    end
    
       player1:
       %10101010
       %11111111
       %10000011
       %10101011
       %11111111
       %10010011
       %11011011
       %10010011
       %01111110
    end
    
       COLUBK = 0
    
       player0x = 68 : player1x = player0x + 20
    
       player0y = 55 : player1y = 55
    
    
    
    __Main_Loop
    
       COLUP0 = $1E : COLUP1 = $AE
    
       if joy0left then _Bit3_Flip_p0{3} = 0 : _Bit2_Flip_p1{2} = 0
       if joy0right then _Bit3_Flip_p0{3} = 1 : _Bit2_Flip_p1{2} = 1
    
    
       rem  ````````````````````````````````````````````````````````````````
       rem  `  Note from SpiceWare:
       rem  `
       rem  `  REFPx registers ignore everything except the value in bit 3.
       rem  `
       REFP0 = _Bit3_Flip_p0
    
    
       rem  ````````````````````````````````````````````````````````````````
       rem  `  Note from SpiceWare:
       rem  `
       rem  `  Multiplying by 2 will shift all bits to the left one
       rem  `  position, so what was in bit 2 ends up in bit 3.
       rem  `
       REFP1 = _Bit2_Flip_p1 * 2
    
    
       drawscreen
    
    
       goto __Main_Loop
    

    this section:

       rem  ````````````````````````````````````````````````````````````````
       rem  `  Note from SpiceWare:
       rem  `
       rem  `  Multiplying by 2 will shift all bits to the left one
       rem  `  position, so what was in bit 2 ends up in bit 3.
       rem  `
       REFP1 = _Bit2_Flip_p1 * 2

    is using multiplication so my question is would it have any impact on the number of cycles by just adding _Bit2_Flip_p1 to itself? I modified it and compiled it and found it still takes the same amount of bytes and produces the same result via:

    REFP1 = _Bit2_Flip_p1 + _Bit2_Flip_p1
    
    

    I also found that by changing this it also produces the same effect and uses 7 bytes less

       if  joy0left then _Bit3_Flip_p0 = %00000000 : _Bit2_Flip_p1 = %00000000
       if joy0right then _Bit3_Flip_p0 = %00000100 : _Bit2_Flip_p1 = %00000100
       rem  `  REFPx registers ignore everything except the value in bit 3.
       REFP0 = _Bit3_Flip_p0 + _Bit3_Flip_p0
       rem  `  Multiplying by 2 will shift all bits to the left one
       rem  `  position, so what was in bit 2 ends up in bit 3.
       REFP1 = _Bit2_Flip_p1 + _Bit2_Flip_p1
    

    although I am not sure if it saves anything on cycle counting


  6. I like this game. I collected all the pieces and almost made it back to the ol' A-frame, but got hit by a giant spider (I called it a spider!?)! I've played it few times now. I like the Zelda-like screens and the search and find aspects of the game. Good stuff!

    Thanks Papa in fact it is a giant spider! The other enemy is only known as "the thing from the forest"

     

    If you want to get rid of the sticky walls, this might help:

     

    randomterrain.com/atari-2600-memories-batari-basic-commands.html#sprite_collision_example

    Wow that code is rather math heavy for collision I'll see if i can break it down into caveman code lol

     

    ** got this working thanks you can rub all over the walls now!! unfortunately a side effect was the size went -84 bytes of code left so I ripped out some screens and it worked great


  7. 8-27-18 Rev 2 Last Build

    NTSC
    The Sword Of SURTR.bin

     

    Loki the god of mischief has stolen the sword of the fire giant Surtr

    and hidden it away!! Take control of Haldor and find the lost blade then
    seek a way into Valhalla to bring it to Odin himself...
    Will you journey through the ice caverns of the Dwarves? Or seek out the
    Mysterious Old Man up in the mountains? Or command your Dragon ship through
    a deadly Maelstrom in search of unsung treasures? The choice is yours!!
    Press the fire button to begin a new game and use your weapon. Simply walk
    over items to pick them up, most have a visible effect on the player. Search
    the world carefully, secret entrances long hidden may contain wondrous
    treasures or deadly creatures.

     

    A viking action/adventure for the Atari VCS and Flashback Portable.

    Seek the Sword of Surtr and bring it to Valhalla. Beware of Vikings,

    wolves, ravens and traps. Seek powerful artifacts to aid you in your quest.

    Use with Joystick controller.
    Console switches used:
    -Reset starts new game from Titlescreen
    -Left Difficulty
    A-Player has only 1 life
    B-Player has infinite continues and retains inventory items.
    post-36052-0-16696700-1534548072_thumb.png
    post-36052-0-90596400-1534547305.png
    post-36052-0-23456800-1534540814_thumb.png
    post-36052-0-94305200-1527613703.jpgpost-36052-0-64548200-1527613770.jpg

    • Like 20

  8. Would this help?

     dim fire = a
     c{1}=0
     c{2}=0
     player1x = 50 : player1y = 50
     player0x = 70 : player0y = 50
     e=60
     fire = 0
    loop
       COLUBK = $00 : COLUP1= $5A : COLUP0= $0A
     if joy0up then player0y = player0y - 1
     if joy0down then player0y = player0y + 1
     if joy0left then player0x = player0x - 1              
     if joy0right then player0x = player0x + 1
     if player0x > player1x then fire = 1 : c=%00000010
     if  player0x < player1x then fire = 1 : c=%00000001
     if fire = 1 && c{0} then missile1x = player1x - e : missile1y = player1y - 1
     if fire = 1 && c{1} then missile1x = player1x + 1 + e : missile1y = player1y - 1
     if e>60 then e=0 : fire = 0 : missile1x = 0 : missile1y = 0
     e=e+1
     player1:
     %00000000
     %00000000
     %00000000
     %00111100
     %01111110
     %00000000
     %01111110
     %00011000
    end
     player0:
     %11100000
    end
     drawscreen
     goto loop 

    spaceship code.bas.bin


  9. The part where your checking the f variable could be done as a subroutine then you could also remove each player graphic out as a sub called by the sub check on f. It should free up the cpu from reading all the player graphics and instead call one check on f and send it to the appropriate frame then return back in the loop..


  10. I'd like to know more about how you plan on depicting the Colossi battles. That's the heart of the game, in my opinion.

    I'm not sure how I'll do that without testing several possibilities but I think first off it will require a Genesis controller or dual joysticks (Raiders of the Lost Arc style) for actions selection. It will require at the least a gravity engine with some inertia attacks by the colossi. My biggest concern atm is how to code the light rays from the ancient sword to "find" the colossi, and how Dormin will convey info to the Wander...in bB


  11. I remember reading this thread but the one I was trying to recall had mentioned theloon's example (or demo) that the player moved around rooms and the playfield had 3 interchangeable pieces top, center, and bottom maybe his WIP Rogue engine I think.

×
×
  • Create New...