Jump to content
IGNORED

FOOD FIGHT X - new game & disassy


Blue Azure

Recommended Posts

BAM!BAM!BAM!

BAM!

BAM! BLUE AZURE MONDAY BAM!

BAM!

BAM!BAM!BAM!BAM!

 

 

The FOOD FIGHT arcade game, available in cocktail and upright cabinets, was designed GCC in 1983 and followed quickly by the 7800 version. In the same era, GCC had designed a speed-up kit for Atari's arcade game MISSILE COMMAND and tried to copyright their version. Atari sued, and the case was settled out of court with GCC agreeing to port FOOD FIGHT to Atari platforms.

 

World records (compliments of wiki): The world record high score for [the arcade] Food Fight using the game's default settings is 103,103,100 points, set by Ken Okumura in January 1984. Under tournament settings, the world record is 1,234,100 points, set by Jon Dworkin in June 2001.

 

ARCADE GAME DEMO

http://vvv.youtube.c...h?v=3cF4LFVL7YQ

http://www.youtube.com/watch?v=3cF4LFVL7YQ

 

Now here's the long-awaited 7800 FOOD FIGHT disassembly. Although challenging to create, this one wasn't nearly as difficult as the ROBOTRON disassembly re-creation. It helped in FOOD FIGHT, of course, that $C000 is a direct mirror of $E000, and $D000 is a direct mirror of $F000. For those looking to enhance FOOD FIGHT gameplay with more ROM space available, you can completely zero-out $C000 and $D000 and the game will still operate 100%. This explains how the original game was 24K and the released game is 32K. Technically, it's still 24K. "Code BLUE" occurs at $837E-$850F, $8AC0-$8B5E, $95B1-$95DF, $9634-$964E, $9634-$964D. These are the blocks of code not found in the original source list. There are other lines of instructions that were not in the source list either, but we have everything $0000-$FFFF in this disassembly. So we did pretty well on this one, with most of the code fully-commented.

 

FOODFIGHT Disassembly4.rtf

 

In this game you are Charlie Chuck (CC), and Charlie chucks food at mean chefs chasing after you. It's hilarious! This game also sports a cool replay feature. It's called Instant Replay (IR) and occurs at level 5+. If you're looking to program a new 7800 game with Replay, check out this code. The replay call-up logic is routine RICONT00 at $8FD0, and the first instant replay is set up to occur at level 5 - this could be easily changed to level 0 by changing $8FF0 from $C9$04 to $C9$00. And it looks like the Replay is created in the SAVEAIR routine at $9084, although quite frankly I haven't spent adequate time to verify this is completely true. The code is all there, almost fully-commented so you can see for yourself.

 

DYING

Player death processing happens around $B965, routine HEROKILL. There's more to it than shown here, but this is the beginning…

 

HEROKILL:

B965--A9-06-----LDA #STATDIE

B967--85-7D-----STA STATUS

B969--20-1C-B7--JSR SCRAPALL

B96C--A5-BF-----LDA CXPOS ;USED BY "FOODMOVE" TO GO FOR CHUCK

B96E--85-F3-----STA GOALX

B970--A5-9F-----LDA CYPOS

B972--85-F4-----STA GOALY

B974--A5-78-----LDA CYCLECNT

B976--18--------CLC

B977--69-02-----ADC #02

B979--8D-43-23--STA CINFO ;ANIMATE TIMER

B97C--A9-46-----LDA #70

B97E--85-7B-----STA SYSCOUNT

B980--20-A0-B9--JSR MKDIE ;HANDLE DEATH STUFF

 

B983--A6-E0-----LDX CURRENT

B985--BD-78-26--LDA PL0LIVES,X

B988--C9-01-----CMP #01

B98A--F0-0A-----BEQ ZHKLASTS ;LAST DEATH THIS GAME

 

B98C--A9-01-----LDA #01

B98E--20-33-B7--JSR TUNIN

B991--A9-02-----LDA #02

B993--4C-33-B7--JMP TUNIN ;JSR followed by RTS

 

The quickest way to disable "death" in this game is to change $B965 from $A9$06$85 to $4C$BB$B9 to jump across the KILL procedure. Now, when you accidentally (or on purpose) touch a chef, it freezes all of the current chefs on the screen so you have time to go get food to kill them off. New chefs will continue to be hatched as you kill off the "frozen" chefs and come after you until you touch a chef again.

 

RACK TIMER (this determines how long a level lasts)

L8015:

B122--4A--------LSR A

B123--90-06-----BCC NOFINFO

B125--CE-1E-26--DEC FINFO ;Cone timer (32 seconds)

 

Change $B125 from $CE$1E$26 to $EA$EA$EA to disable the Cone Timer. This allows you to stay at the current level as long as you want. The cone drips and drips and drips and always remains a full cone. This is the kind of ice cream cone I really like. Kids will really love this game now.

 

NUMBER OF LIVES

The maximum number of spare lives displayed is 5, and the ORIGINAL game starts with 3 total lives.

B2CE--E8--------INX ;Player Start with Three lives

B2CF--8E-78-26--STX PL0LIVES ;Store Player 1 lives

B2D2--8E-79-26--STX PL1LIVES ;Store Player 2 lives

 

The NEW game starts with 6 total lives, with 5 spare lives displayed. The game looks better this way.

B2CE--A2-06-----LDX #$06 ;Player Start with Six lives

B2D0--8E-78-26--STX PL0LIVES ;Store Player 1 lives

B2D2--EA-EA-----NOP,NOP ;No op (there is no Player 2)

 

The modifications shown here are Kwik Hax, just to have something to play. This game is now invincible so you can play it forever. Now that we have a complete disassembly, there's so much more that can be done at a later date.

 

NEWSFLASH: However, through extended gameplay last night I see there's a glitch that randomly resets the game to level 1. Not sure what's happening, so obviously there's more to this game than I had realized. This condition is repeatable both on the emulator and the 7800 machine. When the game has more than 6 lives it appears to be glitching.

 

TO FIX THE GLITCH…

 

8EF6--FE-78-26--INC PL0LIVES,X

8EF9--E6-EC-----INC PLLIVES

 

B078--FE-78-26--INC PL0LIVES,X

B07B--E6-EC-----INC PLLIVES

 

Change all bytes above to $EA (no ops) to disable incrementing lives.

 

HERE'S WHAT LEVEL 101 LOOKS LIKE…

post-34769-0-98949500-1363644231_thumb.jpg

HERE'S WHAT 11 MILLION POINTS LOOKS LIKE… (MAX ACHIEVABLE LEVEL = 125)

post-34769-0-75533200-1363644268_thumb.jpg

 

To achieve 10 million points it takes about an hour. I MADE IT.

To achieve 12 million points takes about 400 levels of play. I DIDN'T MAKE IT.

WHAT HAPPENS AT 100 MILLION POINTS? (HINT: It takes about 10 hours to find out, or hack the game to start with 99,000,000 points and it takes about 6 minutes).

 

NOTE: THESE FILES HAVE $C000 AND $D000 ZEROED-OUT TO ALLOW FOR FUTURE GAME EXPANSION.

 

Now you can enjoy the watermelon food fest (for as long as you want) at levels 5,15,25,..., and watch the action go crazy at level 17+. Other than the mods to make this game invincible, the game is the original stock code...

 

AVAILABLE ONLY HERE AT ATARIAGE.COM.

 

NTSC FOOD FIGHT X binary

FOODFIGHT_X_6F28.bin

NTSC FOOD FIGHT X emulator

FoodFight_X_32K.a78

 

THE CHANGES ABOVE ARE AT THE SAME ADDRESSES ON PAL, MAKING LIFE SIMPLE.

 

PAL FOOD FIGHT X binary

FOODFIGHT_X_PAL_8736.bin

PAL FOOD FIGHT X emulator

FOODFIGHT_X_PAL_48K.a78

 

 

NEXT UP>

 

ASTEROIDS 3D disassembly is complete. Not released, sample game not ready. Invincibility algorithm is complicated.

 

DIG DUG disassembly is complete. Not released, sample game not ready. Rock-dropping invincibility algorithm is not quite working right. But the rest does and this will be a blast of a game once completed. Every kid will want to play this one.

 

JOUST disassembly is complete, albeit fully-uncommented due to the lack of possession of the original source list. Not released, sample game not ready. Looking to find the collision detection. The NUMLIVES decrement has been found, so it can be disabled and you can play a single game forever.

 

This rounds-up the original ten ATARI 7800 games I was looking to disassemble.

Link to comment
Share on other sites

  • 3 years later...

It appears the "NTSC FOOD FIGHTER X emulator" file posted is incorrect. Note the file size difference between the header and header-less NTSC files. Additionally, the aforementioned *.a78 file does not run under MAME at all.

 

The attached is the corrected "NTSC FOOD FIGHT X emulator" file. It works perfectly under MAME.

 

FOODFIGHT_X_6F28_(fixed).a78

 

 

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