Jump to content

Recommended Posts

I started reading @Karl G's most excellent Minikernel Developers Guide and thought it would be fun to try and make a new one myself.  I also wrote a new bB game (Gunfire) that demonstrates it's use.  This is the final version of each, however I will address any problems found.  A ton of thanks to Karl G for his help, he really should be credited as a co-author as he provided me with so much help on this.  I couldn't have done this without him.  I'm making great progress on my general understanding of assembly language now thanks to him. :) 

 

There are already many different bB minikernels available so coming up with something completely new and different that would fit my novice skill level was a little difficult.  This one does provide similar functionality to what's already out there with a status bar and life counter.  The main difference with this one is that the status bar uses a full-width mirrored playfield, so the bar itself counts up from the middle to the outside of the screen, or counts down from the outside of the screen on both sides to the middle.  It is customizable by height and color.  The minikernel also offers the ability to add a custom lives counter with a sprite, which can be a statically defined sprite in your bB code just for the lives sprite, or it can re-use your already defined player0 sprite (allowing for the life counter sprite to be animated).  All of the options are described in the user's guide I'm attaching to this post.  Because it's yet another minikernel that offers a status bar and a life counter, I decided to name it YASB, or yet another status bar. :)

 

To use the minikernel, put “include yasb.asm” at the beginning of your code for a 4k project, and “inline yasb.asm” at the end of your code for a multibank project.  As of this writing it has only been tested with a 4k project.  I did test that putting the include statement at the end of the code in a 4k standard kernel project does work, however the recommendation is to put it at the beginning.

 

The Gunfire game is inspired by Hogan's alley.  It is a 4k game, and in order to squeeze in everything I needed I edited the default.inc file in the includes subdirectory and commented out pf_drawing.asm and pf_scrolling.asm as I was not using either one.  You'll have to do the same if you'd like to compile the game yourself.

 

 

Instructions for Gunfire:

  • Move your crosshair over the target you wish to shoot.
  • Shoot the frowning Targets (The bad guys).
  • Don't shoot the smiling Targets (The good guys).
  • If you shoot a smiling target you lose a life.
  • If you fail to shoot a bad guy before the timer runs out you lose a life.
  • You will score 100 points for shooting a bad guy.
  • Bonus points are awarded for how fast you shoot the bad guys (Extra 10 points per timer unit remaining).
  • Level up every 12 target changes and speed will increase each time.  
  • The game reaches it's maximum speed after 60 targets have been passed and you will not level up again.
  • If more than one bad guy appears, you only need to shoot one of them to pass the round.
  • There are no powerups or extra lives granted.

 

Gunfire_v0.6.bas Gunfire_v0.6.bin yasb.asm YASB User's Guide v1.1.pdf

 

This is the modified default.inc file I'm using to compile Gunfire.  By default it is located in the includes subdirectory in the standard batariBasic distribution.

 

This area was changed...

  ; below are collections of subroutines and functions
  ; if you have any more to add, put them immediately below this line.

  pf_drawing.asm
  pf_scrolling.asm
  std_routines.asm

...and I simply commented out (putting a semicolon in front of the entries) the pf_drawing.asm and pf_scrolling.asm lines.

  ; below are collections of subroutines and functions
  ; if you have any more to add, put them immediately below this line.

  ;pf_drawing.asm
  ;pf_scrolling.asm
  std_routines.asm

default.inc

  • Like 6
  • Thanks 1
Link to comment
https://forums.atariage.com/topic/375644-a-new-minikernel-and-a-new-game/
Share on other sites

I also tested this minikernel with the bB multisprite kernel.  Rather than write a new multisprite kernel game from scratch to test it, I modified a copy of acousticguitar's MissIt.  This new version uses the status bar to slowly count up to 162 seconds, at which time the game ends and you "win". :)

 

The timer of course moves very slowly, you won't see the first block on the timer yet at the very beginning of the game.  I didn't spend a whole lot of time on this one, it was really just to verify that it worked with the multisprite kernel.

 

Missit11.bas Missit11.bas.bin

  • Like 3
  • Thanks 2

ZeroPage Homebrew is playing Gunfire and the EXCLUSIVE WORLD PREMIERE of The Realm of Riesig from Atarius Maximus along with a LIVE INTERVIEW on TONIGHT's ZPH stream LIVE on Twitch! Hope you can join us!

 

Games:

 

 

  • Like 2
5 hours ago, ZilchSr said:

We are playing GUNFIRE in our AtariAge Atari 2600 High Score Club!

Cool! Thanks for including it.  I guess it wouldn't really be fair for me to participate. :)

  • Thanks 1
2 hours ago, Atarius Maximus said:

Cool! Thanks for including it.  I guess it wouldn't really be fair for me to participate. :)

It would ABSOLUTELY be fair if you participated. As a matter of fact, if you DID participate, I would set up another bonus ... A "BEAT THE CREATOR" bonus, and you whatever score(s) you got. That will incentivize the players to keep playing!

 

 

  • Like 1
6 hours ago, ZilchSr said:

It would ABSOLUTELY be fair if you participated. As a matter of fact, if you DID participate, I would set up another bonus ... A "BEAT THE CREATOR" bonus, and you whatever score(s) you got. That will incentivize the players to keep playing!

I haven't participated before but I can throw my hat in the ring for this one.  I really thought I'd be better at my own game, so far my best is 18,790 which isn't even up to your +10 bonus level of 20k.  I'm going to keep trying to do better and I'll post up my scores on the high score thread when I'm done trying.  :)

  • Like 1
7 hours ago, Atarius Maximus said:

I haven't participated before but I can throw my hat in the ring for this one.  I really thought I'd be better at my own game, so far my best is 18,790 which isn't even up to your +10 bonus level of 20k.  I'm going to keep trying to do better and I'll post up my scores on the high score thread when I'm done trying.  :)

That would be AWESOME!!! and we are absolutely thrilled to have you participate!!!

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...