Jump to content

Photo

Drive! (WIP) (Formerly "Jet!")

homebrew drive! assembly asm assembler

17 replies to this topic

#1 Lumi OFFLINE  

Lumi

    Star Raider

  • 82 posts

Posted Wed Mar 2, 2016 10:10 PM

Hello!

 

Based on user input, I took my game, Jet!, and turned it into a new game: Drive! I decided to make this a new topic to avoid confusion.

 

screen.png

 

Story:

 

In this game, you are an explorer from the year 2050. Much of the world's rainforests have been logged, leading to the discovery of a large temple constructed by ancient civilizations eons ago. You are among the first to be allowed to explore it.

 

The entrance to this temple is across a long stone bridge, which you have chosen to drive across. Inside the temple you find a golden idol on a stone pedestal. Although you are supposed to leave everything you find, your greed gets the better of you and you remove the idol from where it has sat for thousands of years.

Suddenly, the ground begins to shake. Bricks fall from the ceiling. Maybe this wasn't such a good idea! You run outside just as the entrance caves in. As you get in your car and drive away, you realize that the bridge's supports have dislodged and it's all collapsing behind you! There's no time to think - just drive!

 

This is a 4K, single player paddle game, made entirely in assembly, in which you must move your car left and right to dodge obstacles as you drive down the bridge. As you drive, you will encounter treasures (dots on the ground). When you collect a treasure, you will gain 1500 points and it will be added to your collection (the gold dots on the left side of the status bar). You can have up to five treasures in your collection at a time. You can press the paddle's trigger to "burn" a treasure, which gives you the energy to jump a short distance. Any treasures you have when your game ends will grant you an extra 1000 points. The game is won upon reaching 99999 points.

 

In addition, certain treasures will grant you extra powers:

- Red: Gives you an extra life (the pink dots on the right side of the status bar). You can have up to 4 lives at a time.

- Green: Makes you invincible for a few seconds.

- Purple: Allows you to jump as much as you want for a few seconds with no penalties.

 

Oh yeah, and if you press the paddle trigger when you have no treasures in your collection, you can honk the horn. So there's that.

 

At certain points, the game will speed up. The game will stop generating obstacles for a few seconds, and the speed-up will occur while there are no obstacles on the screen.

 

Finally, the difficulty switches toggle certain functions:

- The left difficulty switch will make obstacles farther apart (B) or closer together (A).

- The right difficulty switch turns moving platforms off (B) or on (A).

Set both to A for the ultimate experience! (Note: Stella sets both to B by default.)

 

 

I'm very interested to see what everyone thinks of the new direction this game has taken! :)

 

=== UPDATE: v1.1 ===

What's new:

- Introducing speed freak mode! Press the game select switch on the title screen to access this. This makes the game run at hyper speed, so good luck! Combine with both difficulty switches on A for a real challenge!

- Better sound and colours for both NTSC and PAL.

- Purple powerup has been changed to blue to make it more distinct.

- Each treasure in your collection now adds 1500 points instead of 1000 when your game ends.

- A few bug fixes.

 

=== UPDATE: v1.2 ===

What's new:

- Full SaveKey/AtariVox support! It will save two different high scores depending on which difficulty you have selected on the title screen. Press the game select and game reset switches together to delete your high scores.

- You can now switch difficulty modes without going back to the title screen. Simply press the game select switch at any point.

- Jerky scrolling is finally fixed.

- Treasures now have defined graphics:

coin.png Gold coin: Takes the place of the gold treasure (no powerup other than the default).

necklace.png Necklace: Takes the place of the red treasure (adds an extra life).

jar.png Jar: Takes the place of the green treasure (makes you invincible for a few seconds).

statuette.png Statuette: Takes the place of the purple/blue treasure (allows you to jump with no penalty for a few seconds).

- You accumulate points faster when you have below 50000 points, meaning it takes about half as long to reach full speed.

- Other graphical improvements.

 

=== UPDATE: v1.3  ===

- Fixed a few bugs.

- Now has a standard PAL version.

 

=== UPDATE: v1.4  ===

- PAL version should work perfectly.

- Updates to Speed Freak mode.

Attached Files


Edited by Lumi, Wed Apr 13, 2016 12:16 AM.


#2 chavert OFFLINE  

chavert

    Moonsweeper

  • 387 posts
  • Location:将棋の土地

Posted Fri Mar 4, 2016 12:13 PM

pleasant this game. :)

 

133075drive.jpg



#3 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,936 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Fri Mar 4, 2016 12:34 PM

I like it. icon_thumbsup.gif

 

BTW: For more attention, tagging with "Assembler" or so might help.


Edited by Thomas Jentzsch, Fri Mar 4, 2016 12:35 PM.


#4 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Fri Mar 4, 2016 2:14 PM

I'm happy you both like my hard work! And thank you for the advice, Thomas  :)

 

Also, if you find any bugs please report them. I tried hard to debug this but I wouldn't be surprised if a few slipped by.



#5 walaber OFFLINE  

walaber

    Chopper Commander

  • 159 posts

Posted Fri Mar 4, 2016 5:03 PM

Very fun!  I like the theme change to a car, and the main sprite looks nice.  Paddle controls feel nice.  I like the addition of the risk/reward "jump" mechanic.  The sounds are really nice too.  What else are you planning for this game, or is it mostly done?



#6 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Fri Mar 4, 2016 6:25 PM

Very fun!  I like the theme change to a car, and the main sprite looks nice.  Paddle controls feel nice.  I like the addition of the risk/reward "jump" mechanic.  The sounds are really nice too.  What else are you planning for this game, or is it mostly done?

Thank you!

 

I feel like it's mostly done at this point, unless anyone can think of anything I should add (provided it can fit in the little chunk of free space in the ROM). I may release v1.1 in a few days to improve some colours and sounds, maybe add a hidden hard mode, but other than that there's not much I can think of.



#7 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Sat Mar 5, 2016 2:51 PM

Sorry for the double post, but v1.1 is out! See the first post for details.

 

Well, I can't really think of anything else to add. Unless anyone has ideas or bug reports, that may be the final version.



#8 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,936 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Sat Mar 5, 2016 4:20 PM

Patience you must have, my young Padawan. icon_smile.gif

 

 

I think I am partially repeating some suggestions from Jet! here:

  1. The scrolling after 10,000 points is still jerky, after multiple 1 line scrolls follow multiple 2 lines scrolls.
  2. The difficulty increases too slow, especially in the beginning its more a game of patience than a challenge. Every 5000 points would be better.
  3. At the final death, the game ends too abrupt. Maybe show the usual death car blinking, but stop movement.
  4. It would be nice if the power ups would be recognizable.
  5. If you have ROM space (~150 bytes), you should try to support the SaveKey.
  6. You cannot change the difficulty, because the game doesn't return to the title screen.
  7. I think the shading of the car, while looking nice, reduces contrast a bit too much at the import front and back. Maybe reverse the shading, front and back bottom brighter, center darker.

Edited by Thomas Jentzsch, Sat Mar 5, 2016 4:26 PM.


#9 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Sat Mar 5, 2016 6:22 PM

Good suggestions! I should be able to do some of them easily. Just a few things...

 

The scrolling after 10,000 points is still jerky, after multiple 1 line scrolls follow multiple 2 lines scrolls.

The difficulty increases too slow, especially in the beginning its more a game of patience than a challenge. Every 5000 points would be better.

Hmm. I thought I solved the first problem but it's back for some reason... Maybe I should go back to the original way of gaining points, it would solve both of these issues at once.

 

 

It would be nice if the power ups would be recognizable.

I've struggled endlessly trying to make them more distinct from the dark background - It's hard because the Atari's bright colours are so desaturated. I thought I had struck an acceptable balance this time, but maybe I'm just used to them being a little tough to distinguish.

 

I wonder, if I flickered them between a dark and light colour, would that help make them more distinctive? I'll try it, it's the only solution I can think of.

 

 

If you have ROM space (~150 bytes), you should try to support the SaveKey.

I had a lot of trouble with this. A few months ago I spent a number of days researching how it works, but found very little of use. Apparently I have to use Richard Hutchinson's website to reserve a space in the static allocation area, but his website has been down for a while now. There also doesn't seem to be any example code showing its use in a real program. I don't like guessing how hardware is supposed to work, especially when people's save data is on the line. I'm sorry if this seems stubborn, but trying to piece together all these scraps of information is a real struggle.

 

Edit: does this car look any better? I'm trying to make it so no parts contrast with the background, but again, there's the saturation issue.

photo.png


Edited by Lumi, Sat Mar 5, 2016 8:01 PM.


#10 RevEng ONLINE  

RevEng

    Bit Player

  • 5,105 posts
  • Location:bottom of the stack

Posted Sat Mar 5, 2016 9:42 PM

The SaveKey is a clone of the AtariVox EEPROM hardware, so usage is covered under the AtariVox docs. Check out the EEPROM/i2c communication section of the manual.

Al now officially manages the allocations. You can start off by using the EEPROM scratch location, and ask him for an official location when you're ready.

Another alternative is to use the new self-serve location, though you'll need a little bit more code to do that.

Attached Files



#11 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,936 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Sun Mar 6, 2016 3:29 AM

I've struggled endlessly trying to make them more distinct from the dark background - It's hard because the Atari's bright colours are so desaturated. I thought I had struck an acceptable balance this time, but maybe I'm just used to them being a little tough to distinguish.

Why aren't you using different sprite graphics?
 

I had a lot of trouble with this. A few months ago I spent a number of days researching how it works, but found very little of use

Did you ask around at AtariAge? That's why we are here!. icon_smile.gif

Anyway, I prepare a new thread SaveKey for Dummies!. I hope that answers all your and future questions.

 

The new car contrasts better, IMO.


Edited by Thomas Jentzsch, Sun Mar 6, 2016 3:30 AM.


#12 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Sun Mar 6, 2016 8:39 AM

Why aren't you using different sprite graphics?

Mostly, it's a matter of saving time in the kernel. I'll try to optimize it more, but if all else fails I might have to sacrifice some graphical detail in the car or background.

 

Anyway, I prepare a new thread SaveKey for Dummies!. I hope that answers all your and future questions.

I said it in that thread, but this amazing! Thank you for doing this!  :)


Edited by Lumi, Sun Mar 6, 2016 8:39 AM.


#13 Albert OFFLINE  

Albert

    Quadrunner

  • 35,184 posts

Posted Sun Mar 6, 2016 3:01 PM

Al now officially manages the allocations. You can start off by using the EEPROM scratch location, and ask him for an official location when you're ready.


http://atariage.com/...x_mem_list.html

:)

#14 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,936 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Sun Mar 6, 2016 3:08 PM

Al, do you know in detail what the first location ("System Settings (TV mode)") is used for?

Some settings could be shared between carts (e.g. PAL/NTSC).

#15 RevEng ONLINE  

RevEng

    Bit Player

  • 5,105 posts
  • Location:bottom of the stack

Posted Sun Mar 6, 2016 7:38 PM

Its described in the "Systems Settings Page" section of the AtariVox doc by Alex Herbert...
 

System Settings Page
The first EEPROM page is reserved for the System Settings which is currently just the 8 byte
ASCII signature ATARIVOX followed by the TV Mode byte.
Bit 7 of the TV Mode byte = 0 for PAL, 1 for NTSC. Bit 6 = 0 for 60Hz, 1 for 50Hz.
See syspage.inc for code to read/write the TV Mode.


At this time I believe Man Goes Down is the only game supporting this.

#16 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Tue Mar 8, 2016 10:34 AM

OK, everyone! Version 1.2 is live! See the first post for details.

 

I did have to sacrifice some features to get the treasure graphics working, but maybe you won't notice. (Unfortunately it's not totally stable, and the treasures have some issues with vertical placement, especially noticeable on the first speed. It's just a result of cramming way too much into the kernel.)

 

As a result of adding the SaveKey features I'm pretty much out of usable space, so there's not a lot more I can do with this. (Also, if someone with an actual SaveKey/AtariVox could verify that it's working on the real hardware, that would be great. I don't see why it wouldn't, I'm just scared like that.)

 

By the way, everybody, thank you for being patient and dealing with my incompetence. I have less than a year of experience with 6502 and the Atari, so this has been a real learning experience. :)


Edited by Lumi, Tue Mar 8, 2016 10:57 AM.


#17 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,936 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Tue Mar 8, 2016 11:05 AM

Looks good!

I suggest that you post a thread in the main Atari 2600 forum. That will give you attention and feedback from more non-developers.

#18 Lumi OFFLINE  

Lumi

    Star Raider

  • Topic Starter
  • 82 posts

Posted Thu Mar 10, 2016 3:40 PM

Looks good!

I suggest that you post a thread in the main Atari 2600 forum. That will give you attention and feedback from more non-developers.

I've done this!

 

Also, I have updated the game one more time. I also now have a speed-adjusted (except for the sound effects) PAL50 version working.


Edited by Lumi, Sat Mar 12, 2016 4:00 PM.






Also tagged with one or more of these keywords: homebrew, drive!, assembly, asm, assembler

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users