Jump to content
atari2600land

Intellivision Celery

Recommended Posts

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.

post-9475-0-01112500-1471396612_thumb.gif

 

  • Like 5

Share this post


Link to post
Share on other sites

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?

 

celery20160817.zip

post-9475-0-33962800-1471458490_thumb.gif

Share this post


Link to post
Share on other sites

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 * 20 + (CELERYX -  /  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 * 20 + (CELERYX -  /  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 * 20 + (CELERYX - 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 * 20 + (CELERYX - 8 +  /  AND $0FF8
        IF #card = 274 * 8 OR #card = 278 * 8 THEN CELERYX=CELERYX+8: DIR=5
    END IF
    
    
    
    wait    
    
   

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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.intellivision.us/index.php?title=Cart.mac

 

intvnut have a very descriptive port how Mattel style bankswitching works, http://atariage.com/forums/topic/254097-intybasic-support-for-rom-region-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

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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


Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

  • Like 3

Share this post


Link to post
Share on other sites

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

  • Like 1

Share this post


Link to post
Share on other sites

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.

 

post-9475-0-63025300-1471828976_thumb.gif

post-9475-0-81850600-1471829014_thumb.gif

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

 

Check the generated cfg file to see how everything fits.

Share this post


Link to post
Share on other sites

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

Edited by atari2600land
  • Like 1

Share this post


Link to post
Share on other sites

I improved the music and made a few other changes.

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

 

post-9475-0-90142500-1471915134.png

  • Like 1

Share this post


Link to post
Share on other sites

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 :)

  • Like 1

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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