Jump to content
IGNORED

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
Link to comment
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    
    
   
Link to comment
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)

Link to comment
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
Link to comment
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.

Link to comment
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


Link to comment
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.

Link to comment
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
Link to comment
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.

Link to comment
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
Link to comment
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.
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...