Jump to content
IGNORED

Brix (Odyssey 2)


atari2600land

Recommended Posts

Apparently I already made a game called Brix, but this is a totally different design game. I've worked on a game similar to this with batari Basic, but this is for the Odyssey2.

This will have some elements of the arcade game with the same name made by Cinematronics

http://www.arcade-museum.com/game_detail.php?game_id=7219 - KLOV entry on "Brix"

Here are a few screens as well as an early binary file for use with O2EM, or if you're lucky enough to own a C7050 cart, that too.

post-9475-0-12948700-1376283197_thumb.png

brix.bin

Link to comment
Share on other sites

It's a "hole" new way of playing your Magnavox Odyssey 2!

Santa says "Hole-hole-hole!" about the new Christmas game called "Holes."

 

It's the day before Christmas Eve and Santa has lost his reindeer again. They escaped their stables and made it across Santa's magic swimming pool. Since it's Winter, lucky for you, there are ice chunks floating in it. These are helpful for Santa to cross his pool, because he doesn't know how to swim. Also, the left and right sides of his pool are deadly. If you manage to make it there, you'll die, along with getting in the water.

 

I hope to have this finished by December 25.

post-9475-0-80368000-1376378582_thumb.png

post-9475-0-42522400-1376378595_thumb.png

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

Small update. I plan to have this finished by December 25...2014. After breaking a new version, it took me a very long time to rebuild it (at least a half-day of continuous work.) And I think I'll rename it Nice Ice. Because ice is nice, letting Santa Claus skip on it so he doesn't drown in his swimming pool because he can't swim. Yes, the elf will have a new sprite. The stick figure is just temporary. Help designing it would be cool (maximum 8x8 pixels, one color). So anyway, there's a lot of work left, so I doubt I can get it finished by this Christmas.

post-9475-0-01325000-1386851917_thumb.png

  • Like 1
Link to comment
Share on other sites

Last major update before Christmas. I added collision detection so the game is somewhat what I had envisioned when I first began working on it. Please report any bugs or whatever you find odd or if you have any suggestions, tell me those as well. I want this game to be as good as possible.

Grab the latest ROM here: http://www.atari2600land.com/niceice/

Link to comment
Share on other sites

I don't really know what kind of technical limitations you're working with on the Odyssey2, so I don't know if my suggestions are do-able or not.

 

Anyway, after watching the gameplay video, I think there's a little too much waiting in the game. What I would suggest is to have more ice blocks, and make them a little more random in placement.

Perhaps per row, you could have 1 regular ice block and one unstable ice block. The unstable ice block could act like the diving turtles in Frogger, so you'd never be sure that you'd want to jump onto it or not.

 

Or, you could add a randomly appearing temporary helper (like a whale, perhaps), who occasionally pops up for a few seconds before disappearing.

 

Of course, if you add some stuff to make it easier, you may also need to add an additional enemy/obstacle to re-balance the difficulty. Such as: the elf sometimes drops bombs on the ice.

 

The game looks like it's still a little early, so I'm not sure what direction you're planning to go with it. Feel free to use or ignore these suggestions.

Link to comment
Share on other sites

The Odyssey 2 has 12 "characters" (preset sprites) and 4 sprites to work with. I'm using 7 characters (the ice blocks) and all 4 sprites.

sprite 0 - santa's yellow part

sprite 1 - santa's red part

sprite 2 - reindeer

sprite 3 - elf

Another thing is that the characters can't overlap each other, so I can't have, say, a little man character act as an elf on an ice block.

One thing I do want to do is as the game progresses, have the ice blocks move faster, but I don't know if I have enough room to do this and still make it a 2k game (I don't know how to bankswitch yet.)

Link to comment
Share on other sites

Hi Chris - Just taking a break from work and I wanted to comment. I know you want to keep the game at 2K. Adding all these features is probably going to make it be a 4K game.

Time is in your side - since this will be released Christmas 2014 you can learn how to do the bankswitching I am sure.

 

But if not, how about this: can you make the ice pond a little bigger? Instead of 7 ice blocks, maybe 10? That would make Santa have to successfully land on 10 ice blocks,

rescue the reindeer, and then land on 10 ice blocks back to safety.

 

The other thought is that there is not enough scoring. Maybe a point could be awarded for every ice block? 100 points when a reindeer is back to safety.

 

If you do not want to worry about making the ice blocks go faster in higher levels, then maybe you could change the game to be a race against the clock and

see how fast the reindeer can rescued. That would be a cool contest, too! So instead of having the 4 digit score, you would have a timer that would increment

in minutes, and seconds... once the reindeer is brought to safety, the game would be over and the time would be displayed. I think this would allow you to

keep the game at 2K.

 

Just an idea that came to mind...

 

 

Tim

Link to comment
Share on other sites

I like the suggestions so far.

I think I'll work on trying to make the pond bigger and adding some more points on ice blocks. One of the things I'm worried about making this a timed game is that part of the game is chance, where the elf lands. So how about this:

1 point for each block you land on

25 points for each reindeer rescued

But if I do this, I'd have to make the game remember how far up (or down) you've gotten, otherwise one could just keep moving up and down rapidly to increase the score. So how about:

25 points for getting to the reindeer

25 points for bringing him to the other side

The 25 is for Christmas being on December 25.

Link to comment
Share on other sites

For reference, here are the Odyssey2's predefined characters: cs1.jpg

 

One thing I just thought of: It seems as though the Odyssey2 can display multiple copies of the same character per row. Why not use this to your advantage, and instead of making the ice blocks be moveable characters, do the opposite: Make the water out of multiple copies of the 2F solid block, and have the ice blocks be empty spaces? That way, you could combine a predefined character with an ice block.

Link to comment
Share on other sites

Well, that's how many it's designed to handle, but in at least one game it approaches 30.

 

 

I've disassembled it but I'm not familiar enough with o2 programming to even begin to figure out what they did. I assume it's similar to what people did on the C64, disabling the built-in kernel routines and writing their own to trick the VDC into thinking a new frame has started on each line and draw more stuff, racing the beam Atari-style. But I can't even get dasm or o2em to build on my new laptop, so I can't really experiment.

Link to comment
Share on other sites

Changed the scoring system. 25 points for getting on the reindeer and 25 for safely bringing him down.

I have 1,974 bytes used out of a total of 2,048, so hopefully I can try and make the ice blocks faster. It's odd how the Odyssey 2 works. If you jump to another part of a code using jnz or jz, it needs to be in the same chunk of code that you're jumping to. It divides code into chunks every 256 bytes. This is particularly annoying because I then might have to make something like:

 

mov r0,#001h
movx a,@r0
xrl a,#017h    ; check if a=17
jz code_2
 
jmp code_4
 
code_2
jmp code_3
 
code_4
;rest of code

 

The Odyssey 2 doesn't care whether you use the jmp function as much, you can jmp to anywhere in the program, not its little chunk things. Argh.

I couldn't resist the temptation to work on this Christmas night, so I made it to 11:30pm without working on it! (Close, but no cigar.)

niceice12.bin

Link to comment
Share on other sites

It's odd how the Odyssey 2 works. If you jump to another part of a code using jnz or jz, it needs to be in the same chunk of code that you're jumping to. It divides code into chunks every 256 bytes.

 

That's how the 65xx series of CPUs works too (on the Atari 2600, C64, NES etc.) Those 256-byte chunks are called "pages" and are due to the 8-bit register size. On the 65xx it's beq and bne (branch if equal to 0/branch if not equal to 0) instead of jz and jnz (jump if zero/jump if not zero), but either way, the branching operations only work on the same page because (even if the assembler you're using hides it from you) the address you're giving the instruction is only 8 bits wide, while jmp can take a 16-bit address for access to basically all of RAM (it gets more complicated when you use bank-switching schemes, but that's basically how it works).

 

I think it's just the nature of coding against bare metal. Modern CPUs have the same instructions (x86 assemblers call them jz/jnz and ARM and MIPS ones have bne/beq if I remember right) but since the CPUs are dealing with more than 8 bits at a time, there are versions of those opcodes that let you jump further away. Most modern coders never even see them, since they're writing in compiled languages, not assembly language.

 

(Edit: But even now, assembly language programmers have to be careful of how they branch, and the tricks they use are still the same as what you have to do, as illustrated here:

 

http://faydoc.tripod.com/cpu/jnz.htm

 

toward the bottom, the bit with JNZ BEYOND)

Edited by raindog
Link to comment
Share on other sites

  • 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...