Jump to content

Photo

ORB


37 replies to this topic

#1 winkdot OFFLINE  

winkdot

    Chopper Commander

  • 143 posts

Posted Sat May 9, 2015 7:31 PM

ORB
 
The planet Orb can be a dangerous place full of mystery. The Alliance has lost many ships while trying to explore the planet. Too many to count. 
 
It will be your mission to rescue downed pilots and return them to the Mothership.
 
Get to know your ship:
 
At the start of the game your ship will appear in a safe area of the planet.
Your ship is only large enough to hold three pilots. You only have one ship complete your mission. Your ship has a strong shield that can sustain 8 hits before it will be destroyed. The shield is indicated by the bar on the bottom right of the screen. Most enemies will take one shield unit away as you are hit.
The exception is the Orb with will take two shield points away. 
Your ship is equiped with "lazor cannons" They can shoot left and right.
Terrain hits WILL (in latest release) damage your ships shield units. 
 
The Mothership:
 
After you have saved three pilots the mothership will decend on the safe landing area. Because of expensive fuel used by the mothership it will not decend unless you have three pilots aboard your ship ready for rescue.
Your ship must dock with the mothership to transfer the rescued pilots.
At that time all of your ships shield power will be restored full. You will
also get 100 points for any remaining shield units.
You will get 1000 points for each pilot returned to the mothership.
 
Enemies:
 
The Orb - The orb will be aggresive and try to ram your ship. If hit you will
lose two shield points and one rescued pilot will be removed from your ship.
Destory the Orb as soon as possible.
 
Meteors - Meteors can not be shot and must be ovoided. If they hit your ship
you will lose 1 shield unit.
 
Falling Craft - The purpose of these has not been discovered. They can not be destroyed by your cannons and must be avoided.  
 
Planet Patrol - Look to defend the planet. These enemies can be shot. One of these, if hit will drop a shield unit. Collect it to gain one shield unit.
 
Other items of interest:
 
There are places where you can descend deeper into the planet. As the game progresses you must go down in order to rescue pilots as they will no longer appear on the top levels.
 
Pilots appear on the surface based upon the level of the game, which is based upon how many pilots you have rescued.. They appear as follows:
0-9 pilots rescued - appear on surface 1
12-18 pilots rescued - appear on surface 2 (none will appear on surface 1 at this point)
Up to 27 pilots rescued - appear on surface 3 (none will appear on surface 1 or 2 at this point)
 
Control:
 
At the title screen press the fire button to start. The fire button also starts a new game at the game over screen.
 
Joystick controls the ship in eight directions.
 
Joystick left or right plus the fire button fires your lazor cannons.
 
Only rescued pilots and shield units remaining will provide points.
 
One special ship will, at times drop a shield unit when destroyed.
 
Better scores can be achieved when the game is controlled using a joystick (for me anyway).
 
Created using batari and the DCP+ kernel. 
Hope you enjoy and as always comments are welcome.
 
Orb 0.7 contains the code that fixes the nasty corrupt sound/graphics error. Thanks to ZackAttack for providing
the ASM code to reset the stack in order to prevents the stack overflow that was causing this error.
Thanks also to Random Terrain for also being on top of this issue.

Orb 1.0 - Quite a few speedups. i had not looked at this code in a while. Wish I had put more comments in it :) - Pending bugs this is likely the final release.
 
Screens
 
orb-0.6.bas_5.png
 
 
Attached File  orb-0.6.bin   32KB   172 downloads
Attached File  orb-0.7.bin   32KB   201 downloads
Attached File  orb-0.8.bin   32KB   129 downloads
Attached File  orb-0.9.bin   32KB   244 downloads
 

Attached Files


Edited by winkdot, Sat Dec 1, 2018 10:37 AM.


#2 Mountain King OFFLINE  

Mountain King

    Dragonstomper

  • 685 posts
  • Location:Philadelphia, PA

Posted Sun May 10, 2015 8:11 AM

Wow! I love the game play, concept and level progression. You have outdone yourself. You might want to tighten up your code though. You're over on your scanline count. It looks fine on Stella, but it will probably roll or flicker on real hardware. Otherwise, great job!



#3 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Sun May 10, 2015 8:59 AM

Wow! I love the game play, concept and level progression. You have outdone yourself. You might want to tighten up your code though. You're over on your scanline count. It looks fine on Stella, but it will probably roll or flicker on real hardware. Otherwise, great job!

 

Thanks much, glad you like it Mountain King! 

 

On the scanline count, how can I identify where this is happening at? Am I over a lot? 



#4 Mountain King OFFLINE  

Mountain King

    Dragonstomper

  • 685 posts
  • Location:Philadelphia, PA

Posted Sun May 10, 2015 9:20 AM

If you're running Stella the easiest way to check is pressing ALT+L.  Your scanline count and FPS will be in the top left corner. NTSC should not exceed 262. There are other ways to check. 

 

https://www.google.c...XCNSBplQB5EoglA

 

 

 

Attached Thumbnails

  • orb scanline.png


#5 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,797 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Sun May 10, 2015 10:13 AM

On the scanline count, how can I identify where this is happening at? Am I over a lot?


Related links:

atariage.com/forums/topic/181081-keeping-track-of-the-scanline-count-with-stella/

 

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



#6 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Tue May 12, 2015 9:16 AM

 

Thanks for all the info MK and RT. I have posted version 0.4 that runs at a solid 262 scanlines.



#7 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Fri May 15, 2015 2:40 PM

Just posted 0.5 of ORB (see first post).

 

Quite a few bug fixes in this release. 

 

I found a very strange bug that had to do with playfield hits. If the players ship died hitting the playfield over and over, all sounds became extremely slow. All player graphics were also incorrect. I hunted and hunted for a way to fix this but was unable to. The graphics and sound was so messed up, 
believe I've ran into some sort of DCP+ kernel issue. I ended up removing playfield hits and everything seems fine now. If anyone knows anything about this, let me know. I was hitting player0 with the playfield.




 



#8 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,797 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Fri May 15, 2015 3:14 PM

Just posted 0.5 of ORB (see first post).
 
Quite a few bug fixes in this release. 
 
I found a very strange bug that had to do with playfield hits. If the players ship died hitting the playfield over and over, all sounds became extremely slow. All player graphics were also incorrect. I hunted and hunted for a way to fix this but was unable to. The graphics and sound was so messed up, 
believe I've ran into some sort of DCP+ kernel issue. I ended up removing playfield hits and everything seems fine now. If anyone knows anything about this, let me know. I was hitting player0 with the playfield.


Can you recreate the problem using the program below?

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



#9 Arenafoot OFFLINE  

Arenafoot

    Stargunner

  • 1,237 posts
  • videogamestores.net
  • Location:Watson, LA

Posted Fri May 15, 2015 7:06 PM

really good game....got up to 9000, once I read the instructions in the first post



#10 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Sat May 16, 2015 10:58 AM

Can you recreate the problem using the program below?

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

Thanks RT. Nice program you have there. 

I was not able to recreate the issue using your program. If you wish to see it, try out the 0.4 version of orb and bump you ship into the playfield until it dies. After that the sound loops are unusually long, and the player graphics are no longer correct. After reviewing my code I don't see how that would even be possible (been wrong before tho).



#11 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Thu May 21, 2015 4:09 PM

Posted Orb - 0.6

 

Changes:

When returning pilots to the mothership, 100 points are gained for each unit of shield you have and full shields are restored.

Some play balance changes.

Some bug fixes.

Graphic updates.

 

Special Thanks to Killad517 for tons of play testing on this. He's always excited when I give him a new build. You rock Sir!



#12 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Thu May 21, 2015 4:15 PM

Oh the very weird sound and graphic issue (almost like sound and graphic pointers are messed up), can still occur. I can't reproduce it by playing a specific way or doing a specific action. It does seem to appear if you play multiple games and do poorly. I have made sure all variables are cleared completely at the start of a new game but the issue will still crop up. Currently I still think this is some unholy undiscovered problem with the DCP+ kernel as I have never seen this before. Could be wrong, but it's extremely odd.



#13 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,797 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Thu May 21, 2015 11:03 PM

A person was recently having a problem because the game restarted without popping a gosub:

 

atariage.com/forums/topic/236282-sword-of-iffrit/?p=3232694

 

Have you also double checked your bank jumps? Are the correct banks being used? Are you using return otherbank when you should be using return thisbank or the reverse of that?



#14 AtariLeaf OFFLINE  

AtariLeaf

    Epic Godlike Canadian

  • 11,096 posts
  • Location:Ontario Canada

Posted Sat May 23, 2015 5:23 AM

I'll try to check it out today. Looks great :)



#15 Arenafoot OFFLINE  

Arenafoot

    Stargunner

  • 1,237 posts
  • videogamestores.net
  • Location:Watson, LA

Posted Sat May 23, 2015 9:53 AM

This title is getting a lot of posts on facebook.....all of a sudden.........



#16 Arenafoot OFFLINE  

Arenafoot

    Stargunner

  • 1,237 posts
  • videogamestores.net
  • Location:Watson, LA

Posted Sun May 24, 2015 2:12 PM

Just posted 0.5 of ORB (see first post).

 

Quite a few bug fixes in this release. 

 

While playing v 0.6 I've notice that the game freezes for a moment when the ship runs into the terrain/green mountains at the below of the screen. It happens if you miss picking up the man with the ship. Is this normal or a bug?



#17 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Sun May 24, 2015 3:22 PM

While playing v 0.6 I've notice that the game freezes for a moment when the ship runs into the terrain/green mountains at the below of the screen. It happens if you miss picking up the man with the ship. Is this normal or a bug?

 

Hey Arenafoot. If you hit the green terrain, there will be a hit sound and your ship is knocked back a tiny bit, but no damage is done to your shields. Is this what you mean, or is it something else? I also think there is a place on the first level when you can go down to the next level, while coming back up, if your not to the right enough it will hit the terrain coming into the next screen. 



#18 ZackAttack OFFLINE  

ZackAttack

    Dragonstomper

  • 755 posts
  • Location:Orlando, FL US

Posted Sun May 24, 2015 8:15 PM

Oh the very weird sound and graphic issue (almost like sound and graphic pointers are messed up), can still occur. I can't reproduce it by playing a specific way or doing a specific action. It does seem to appear if you play multiple games and do poorly. I have made sure all variables are cleared completely at the start of a new game but the issue will still crop up. Currently I still think this is some unholy undiscovered problem with the DCP+ kernel as I have never seen this before. Could be wrong, but it's extremely odd.

 
 

A person was recently having a problem because the game restarted without popping a gosub:
 
atariage.com/forums/topic/236282-sword-of-iffrit/?p=3232694
 
Have you also double checked your bank jumps? Are the correct banks being used? Are you using return otherbank when you should be using return thisbank or the reverse of that?


I think RT is correct about the gosub. If you look at the stack pointer register (SP) inside the debugger you will see that it decrements by 2 each game. Eventually the stack overflows into memory that is being used by the game/kernel and causes lots of bad stuff to happen. The symptoms are so varied because of the random way the memory is corrupted. You can test whether or not this issues has been resolved by simply watching the value of SP after the second game is started. If SP is decreasing by 2 each game the issue has not been resolved. If you provided the source code I would be happy to debug this issue and post the steps that I took so that it can serve as a learning experience for all of us. If you do not wish to share the source with everyone, you may send it to me via PM and I will limit my results to only showing the few lines of code that are relevant.

Hit ~ to toggle between running mode and debug mode. Once in debug mode the value of SP is displayed on the top right. Here is a screenshot from stella showing how SP has been reduced to $F3 after several games were played. At this point I started to see some really interesting behavior.

Stack Overflow.png

#19 Arenafoot OFFLINE  

Arenafoot

    Stargunner

  • 1,237 posts
  • videogamestores.net
  • Location:Watson, LA

Posted Sun May 24, 2015 9:02 PM

 

Hey Arenafoot. If you hit the green terrain, there will be a hit sound and your ship is knocked back a tiny bit, but no damage is done to your shields. Is this what you mean, or is it something else? I also think there is a place on the first level when you can go down to the next level, while coming back up, if your not to the right enough it will hit the terrain coming into the next screen. 

Yeah that is what I was talking about



#20 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Mon May 25, 2015 10:57 AM

 
 

I think RT is correct about the gosub. If you look at the stack pointer register (SP) inside the debugger you will see that it decrements by 2 each game. Eventually the stack overflows into memory that is being used by the game/kernel and causes lots of bad stuff to happen. The symptoms are so varied because of the random way the memory is corrupted. You can test whether or not this issues has been resolved by simply watching the value of SP after the second game is started. If SP is decreasing by 2 each game the issue has not been resolved. If you provided the source code I would be happy to debug this issue and post the steps that I took so that it can serve as a learning experience for all of us. If you do not wish to share the source with everyone, you may send it to me via PM and I will limit my results to only showing the few lines of code that are relevant.

Hit ~ to toggle between running mode and debug mode. Once in debug mode the value of SP is displayed on the top right. Here is a screenshot from stella showing how SP has been reduced to $F3 after several games were played. At this point I started to see some really interesting behavior.

attachicon.gifStack Overflow.png

 

I think you and RT are on the issue with it. Stepping into the wrong areas of memory could cause all sorts of stuff. I will PM you the code to take a look and apologize in advance for the coding :)  There are lots and lots of gosub in this fella. Thanks for the offer to look at it.



#21 ZackAttack OFFLINE  

ZackAttack

    Dragonstomper

  • 755 posts
  • Location:Orlando, FL US

Posted Mon May 25, 2015 2:41 PM

Dividing the problem into many small sub-routines is a good thing. The problem here is that you have inadvertently created a recursive function. main->...->gameover->gameset->main->..keeps repeating. The best way to avoid this is at the architectural level. You can have a single main loop via a goto. Inside that main loop you can check a state variable and act accordingly. The the gameover routine would update the state variable instead of jumping straight to the new game itself.

Since you've already written so much code and it would difficult to modify the overall architecture at this point, I have developed a simple work around that will allow you to reset the stack when gameset is called. This prevents the stack overflow and should resolve the weird issues you've been seeing.

Simply add this assembly code to the beginning of the gameset routine:
asm
STX $FF
LDX #$FF
TXS
LDX $FF
end

Edited by ZackAttack, Mon May 25, 2015 2:42 PM.


#22 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Mon May 25, 2015 6:04 PM

Dividing the problem into many small sub-routines is a good thing. The problem here is that you have inadvertently created a recursive function. main->...->gameover->gameset->main->..keeps repeating. The best way to avoid this is at the architectural level. You can have a single main loop via a goto. Inside that main loop you can check a state variable and act accordingly. The the gameover routine would update the state variable instead of jumping straight to the new game itself.

Since you've already written so much code and it would difficult to modify the overall architecture at this point, I have developed a simple work around that will allow you to reset the stack when gameset is called. This prevents the stack overflow and should resolve the weird issues you've been seeing.

Simply add this assembly code to the beginning of the gameset routine:
asm
STX $FF
LDX #$FF
TXS
LDX $FF
end

Thanks much ZackAttack!!! Really appreciate this.

Put it in and testing. So far I have not seen the issue reoccur but will continue to test a bit more before I post it.

 



#23 ZackAttack OFFLINE  

ZackAttack

    Dragonstomper

  • 755 posts
  • Location:Orlando, FL US

Posted Mon May 25, 2015 8:21 PM

Sure thing. I didn't post more details about the actual debugging because I didn't find a good way to leverage stella for this one. In the end I just reviewed the code and monitored the SP using the method I mentioned above.

#24 winkdot OFFLINE  

winkdot

    Chopper Commander

  • Topic Starter
  • 143 posts

Posted Wed May 27, 2015 4:37 PM

Posted Orb 0.7.

 

Orb 0.7 contains the code that fixes the nasty corrupt sound/graphics error. Thanks to ZackAttack for providing
the ASM code to reset the stack in order to prevents the stack overflow that was causing this error.
​Thanks also to Random Terrain for also being on top of this issue. Mighty fine folks!



#25 TrekMD OFFLINE  

TrekMD

    River Patroller

  • 3,768 posts
  • Location:Coral Gables, FL

Posted Sun May 31, 2015 11:50 AM

Very nice! 






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users