Jump to content

Photo

Intellivision Celery


122 replies to this topic

#1 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Tue Aug 16, 2016 7:17 PM

This game will be like Chip's Challenge for the Lynx, only replace Chip with the Celery and replace the chips with, well, I haven't thought of it yet. And there will be enemies as well. Since IntyColor no longer gives out warnings about using three colors in an 8x8 square, I had to spend about an hour or so perfecting it until the title screen didn't go wacko and display odd stuff. This is all I have so far.

celerytitle.gif

 



#2 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Wed Aug 17, 2016 12:28 PM

I am working on level 1 and am already failing. The problem is sometimes the celery gets trapped in the walls (see pic), but most of the time he doesn't. I need a better wall collision code. Anyone have one?

 

Attached Thumbnails

  • shot0000.gif

Attached Files



#3 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,637 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Thu Aug 18, 2016 3:27 PM

I made a pass over the collision logic, remove the 4 collision detection after the WAIT in the main loop, and replace the controller movement with this:

 

    IF dir=0 AND CONT1.UP THEN
        #card = #backtab((CELERYY - 8 - 8) / 8 * 20 + (CELERYX - 8) / 8) AND $0FF8
        IF #card = 274 * 8 OR #card = 278 * 8 THEN CELERYY=CELERYY-8: DIR=5
    END IF
    IF dir=0 AND CONT1.DOWN THEN
        #card = #backtab((CELERYY - 8 + 8) / 8 * 20 + (CELERYX - 8) / 8) AND $0FF8
        IF #card = 274 * 8 OR #card = 278 * 8 THEN CELERYY=CELERYY+8: DIR=5
    END IF
    IF dir=0 AND CONT1.LEFT THEN
        #card = #backtab((CELERYY - 8) / 8 * 20 + (CELERYX - 8 - 8) / 8) AND $0FF8
        IF #card = 274 * 8 OR #card = 278 * 8 THEN CELERYX=CELERYX-8: DIR=5
    END IF
    IF dir=0 AND CONT1.RIGHT THEN
        #card = #backtab((CELERYY - 8) / 8 * 20 + (CELERYX - 8 + 8) / 8) AND $0FF8
        IF #card = 274 * 8 OR #card = 278 * 8 THEN CELERYX=CELERYX+8: DIR=5
    END IF
    
    
    
    wait    
    
   


#4 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Thu Aug 18, 2016 5:03 PM

Thank you a whole bunch! I knew there had to be some way to do what I wanted it to do, but didn't know it. This is excellent! The game is back on!

Attached Files



#5 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Fri Aug 19, 2016 11:39 AM

Added sfx, music, and a new level. Pretty soon, I'm going to need an example of bankswitching!

Attached Files



#6 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,637 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Fri Aug 19, 2016 11:46 AM

Added sfx, music, and a new level. Pretty soon, I'm going to need an example of bankswitching!

 

If you're going to release a .bin file it's better to zip it together with the .cfg file (it contains useful info for emulators), or otherwise release the .rom file (contains both files)



#7 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Fri Aug 19, 2016 11:59 AM

OK, here is a zip file.

Attached Files



#8 Kiwi ONLINE  

Kiwi

    Stargunner

  • 1,345 posts

Posted Fri Aug 19, 2016 12:51 PM

It's not really bankswitching.  It is assigning data to a segment.  IntyBASIC automatically map the boot up data to $5000.  You can insert

asm org $d000 in your code.  Any code after that will be assigned to $d000 segment.  And asm org $f000 is the last segment if you want to make a 16 KiloWord game.  All of that is accessible by the CPU. It can see $0000-$FFFF 16-bit format like Atari 2600 can only see $0000-$0FFF in 8-bit format. It'll show that the ROM is 32 KB when all the segment is completely filled.   You can make a 42 Kiloword(84KB) game by following the cart.mac format. 

 

http://wiki.intelliv...?title=Cart.mac

 

intvnut have a very descriptive port how Mattel style bankswitching works, http://atariage.com/...egion-swapping/

 

I haven't tried it yet.  I will refer to this once I need to use bankswitching or in a mood to experiment.

 

And for the game itself, I played it and like the idea of it.  I watched all the Celery Show that you made for the 2600 and liked them. 

 

Keep working on Celery :thumbsup:


Edited by Kiwi, Fri Aug 19, 2016 1:06 PM.


#9 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Fri Aug 19, 2016 1:59 PM

Thanks for the info, Kiwi. I've added a new level, level 3. I tried to make it harder than the first two.

Attached Thumbnails

  • shot0005.gif

Attached Files



#10 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Fri Aug 19, 2016 5:33 PM

I think I fixed a bug pertaining to death and made the levels look better. I made a website for the game which you can view to get the latest binary files. You can look at it here: http://www.atari2600...com/celeryintv/

 

Attached Thumbnails

  • level3.gif


#11 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • 9,790 posts
  • Triple-Stripe Mo' Bro
  • Location:NC, USA

Posted Sat Aug 20, 2016 6:15 AM

 
If you're going to release a .bin file it's better to zip it together with the .cfg file (it contains useful info for emulators), or otherwise release the .rom file (contains both files)


A note on this, the ROM format is the newer one intended to replace the BIN+CFG format. It combines both files.

As far as I know, all emulators (with the exception of the very early ones used by Intellivision Productions, Inc.) support the newer ROM format, so there shouldn't be any reason to distribute BIN+CFG files for home-brews any more.

By default, the assembler generates both formats, but you can tell it in a command-line option to only generate ROM. This is what the IntyBASIC SDK build tools do.

Happy coding!

dZ.

#12 timdu OFFLINE  

timdu

    Moonsweeper

  • 461 posts
  • Location:Massachusetts

Posted Sat Aug 20, 2016 6:24 AM

I downloaded CELERY for Intellivision and have been playing it with the jzINTV emulator this morning. Very nice!

 

I have some small suggestions:

 

1. I like the musical tune that plays at the intro screen. Could this be an option to play the tune while you are playing the game, sort of in the background?

    ( so the player could turn it on or off if they wanted to )  I like the tune... it is growing on me.

     I also like the little ditty that plays when you complete a level.

 

2. On level one (yellow), there are 2 peas to save. Can you make it so that on level one, there is one pea to save... on level 2 there are 2 peas to save,

    on level 3 there are 3 peas to save, on level 4 there are 4 peas to save, etc. I think that would be cool.

 

3. I have only gotten to level 3 in my testing so far. Level one's room (yellow) looks good, level two's room (blue) looks good,

      but level three's room (orange) blends in too much with the vegetarians  ( since they are orange) 

      Maybe it may be a good idea to avoid using this color and use different colors from the 16 in the Intellivision's color pallete.

 

 

Keep up the good work! 

 

 

Tim



#13 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Sat Aug 20, 2016 9:23 AM

 

I downloaded CELERY for Intellivision and have been playing it with the jzINTV emulator this morning. Very nice!

 

I have some small suggestions:

 

1. I like the musical tune that plays at the intro screen. Could this be an option to play the tune while you are playing the game, sort of in the background?

    ( so the player could turn it on or off if they wanted to )  I like the tune... it is growing on me.

     I also like the little ditty that plays when you complete a level.

 

2. On level one (yellow), there are 2 peas to save. Can you make it so that on level one, there is one pea to save... on level 2 there are 2 peas to save,

    on level 3 there are 3 peas to save, on level 4 there are 4 peas to save, etc. I think that would be cool.

 

3. I have only gotten to level 3 in my testing so far. Level one's room (yellow) looks good, level two's room (blue) looks good,

      but level three's room (orange) blends in too much with the vegetarians  ( since they are orange) 

      Maybe it may be a good idea to avoid using this color and use different colors from the 16 in the Intellivision's color pallete.

 

 

Keep up the good work! 

 

 

Tim

 

1. I think the tune is too short to have repeated while playing the game, so that is why it's not playing.

2. The peas are actually sprites, and the maximum number of sprites I can have on screen is 8, so, no, this is not an option.

3. I'm not sure, but I think I only have the first 8 colors to choose from, not all 16.



#14 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,637 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Sat Aug 20, 2016 9:37 AM

If your background color is one from 0-7 you could invert pixels and use the foreground color as background ;)

#15 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Sat Aug 20, 2016 3:24 PM

If we're supposed to be making .rom files, then the manual should be updated to tell us how to make them. Right now all it tells is how to make .bin files. That's why I have been making .bin files, because I don't know how to make .rom files.



#16 Kiwi ONLINE  

Kiwi

    Stargunner

  • 1,345 posts

Posted Sat Aug 20, 2016 11:26 PM

There's a utility that came with jzintv emulator called, "bin2rom.exe". It is located in the bin folder. You can drag the .bin file on to the bin2rom.exe icon and it'll generate the ROM file from the .bin and .cfg it find. 


Edited by Kiwi, Sat Aug 20, 2016 11:27 PM.


#17 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,637 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Sun Aug 21, 2016 7:55 AM

Just invoke the as1600 assembler with no extension for the output file and it will generate bin+cfg and rom files at same time.

#18 carlsson OFFLINE  

carlsson

    River Patroller

  • 4,245 posts
  • Location:Västerås, Sweden

Posted Sun Aug 21, 2016 9:48 AM

Cool to know! Up until a few minutes ago, I thought that BIN and ROM were equal files. Now I know they're not.



#19 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Sun Aug 21, 2016 7:23 PM

OK, thanks for letting me know. I will be making .rom files starting now. I worked on the game a little today, just graphic improvements or changes.

 

Attached Thumbnails

  • shot0012.gif
  • shot0011.gif


#20 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Mon Aug 22, 2016 2:44 PM

I have a question about the extra space ($D000-$DFFF).

Would I have to set a whole new engine up in this area, or can I use $D000-$DFFF just to store mazes and easily call them up when I need to? Say, only go to $D000 to get new maze data and then go back to my original engine.

I worked a little bit on the game, I added a new maze. I altered level 5, the game starts here so you don't have to play through the whole game just to see what I changed. The game now has 6 mazes, yet is 12.5k. So you can see why I would need extra room for new mazes.



#21 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,637 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Mon Aug 22, 2016 3:27 PM

Yes. Just put ASM ORG $D000 in a line and start putting maps there.

Check the generated cfg file to see how everything fits.

#22 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Mon Aug 22, 2016 4:26 PM

EDIT: Never mind, I experimented with the $D000 code and I got it working.


Edited by atari2600land, Mon Aug 22, 2016 4:33 PM.


#23 atari2600land OFFLINE  

atari2600land

    In the name of lvoe.

  • Topic Starter
  • 10,529 posts
  • Shwam.
  • Location:Salem, Oregon

Posted Mon Aug 22, 2016 7:18 PM

I improved the music and made a few other changes.

I also made a mockup of an end label. What do you think?

 

Attached Thumbnails

  • celeryintvendlabel.png


#24 cmart604 OFFLINE  

cmart604

    Quadrunner

  • 11,054 posts
  • Location:Vancouver

Posted Mon Aug 22, 2016 11:25 PM

I like the idea of the dual green label, but I'm wondering if "50 FT CELERY" might look better given how small the space is on the carts. My $0.02 :)

#25 intvnut ONLINE  

intvnut

    River Patroller

  • 2,752 posts
  • Location:@R6 (top of stack)

Posted Tue Aug 23, 2016 12:48 AM

A note on this, the ROM format is the newer one intended to replace the BIN+CFG format. It combines both files.

 

Yes and no.  The .ROM format is the Intellicart / CC3 format.  For games with a straightforward memory map, it's sufficient.  It has several technical limitations:

  • No support for Mattel-style page flipping.  Games like World Series Major League Baseball, for example, cannot be represented in .ROM format without modifying the game to use Intellicart bankswitching.
  • 2K word address map granularity, with 256-word "fine-address" boundaries within each 2K word span.
  • Hard limit at 64K words.
  • No support for patching via '[macro]' statements
  • No support for config variables, such as 'voice = 1' to instruct emulators to turn on Intellivoice.

On the plus side, .ROM does specify a memory map and basic memory permission information (read/write/bankswitch/narrow); it's limited to the 2K granularity though.  It also has some basic CRC checking built in, to detect corrupted files.

 

At one point, jzIntv switched to only supporting .ROM format.  Even AS1600 only really supported .ROM at one point, and only generated .BIN via a "rom2bin" conversion internally, effectively.  That limited the assembler output to what was representable as .ROM, including the address map granularity. 

 

Eventually, I added BIN+CFG back to jzIntv because it's ultimately more flexible, and I needed it in order to support playing all games.  WSMLB, Go For the Gold, etc.  (That was many, many years ago now; pre-2006, at least.)  Also, there's cases (admittedly baroque) where you want to be able to assemble stuff with finer granularity than .ROM offered.  And, the assembler now supports Mattel-style page flipping, which raises the maximum theoretic ROM size to something like 768K words.

 

All that said, for most users, .ROM saves a lot of hassles.  It's a reasonable default, especially in the context of IntyBASIC SDK.  You can always switch to .BIN+CFG later if/when your needs change.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users