Jump to content
atari2600land

Larry the Lemon (was: Black Friday!)

Recommended Posts

I finally got this stupid thing working after spending all of last night on it and no success. I tried again today and after a few hours I finally got the thing up and working.

Inspired by one of the status updates, this is a game about a guy going shopping. When the game is complete, presents will appear and your job is to get to them and not run into the enemy (which I haven't decided what it is quite yet. I think another shopper would be too confusing.) I doubt I can fit this in 2k, so it will probably be 4k when it's done. Right now, though, you control the shopper with the joystick. The movement is like Pac-Man, which I don't know why it took so long to do!

 

bf1.bas.bin

bf1.bas

Edited by atari2600land

Share this post


Link to post
Share on other sites

I was able to make it 2k, with an enemy that follows you. I did however have to modify default.inc in order to fit it in. Press fire to start a new game. Any suggestions? I have 0 bytes left, but I may rearrange the code if someone comes up with one.

bf4.bas.bin

bf4.bas

Share this post


Link to post
Share on other sites

Because I barely fit it in 2k.

 

I tried the game on my Harmony cart. There's the sound of semi-quiet, but notable static. I tried another quiet game on the same cart but there wasn't any. I tried putting in a game with a quiet title screen (Mario bros.) and it was quiet, too, so it's just my game. What can be causing this?

Share this post


Link to post
Share on other sites

I wonder if fixing this might change anything:

 

  player1color:
  $f2
  $f2
  6
  6
  6
  $c6
  $c6
  $2a
  $2a
  $22
end

Share this post


Link to post
Share on other sites

If you remove "set romsize 2k" does that change anything? If that doesn't work, try only removing no_blank_lines. If that doesn't work, see if anything changes by only removing player1colors and fixing it so the game will work without it. If none of that works, do you think your modification of default.inc could have screwed up anything?

Share this post


Link to post
Share on other sites

I tried everything. The only thing I changed was I put a semicolon after pfscrolling.asm. That's all I did in the default.inc file. I removed the semicolon and had the normal default.inc file and it still has a static-y noise. Do you have a Harmony cart? Can you put my program on it and see what happens?

Share this post


Link to post
Share on other sites

I tried everything. The only thing I changed was I put a semicolon after pfscrolling.asm. That's all I did in the default.inc file. I removed the semicolon and had the normal default.inc file and it still has a static-y noise. Do you have a Harmony cart? Can you put my program on it and see what happens?

The way mine is hooked up, everything has static and looks like crap.

Share this post


Link to post
Share on other sites

I found out what was the problem. Apparently it didn't like the background color being $EE. So I changed it to $0E and now it doesn't have the sound any more.

 

That's something to remember. I wonder if background color causing a static sound should be mentioned on the bB page?

Share this post


Link to post
Share on other sites

 

That's something to remember. I wonder if background color causing a static sound should be mentioned on the bB page?

Well, the first thing to do is have someone with a Harmony cart besides me and you to test it out.

 

Anyway, while the game WORKED, it wasn't very fun to play. So I changed some stuff around to make Larry the Lemon.

Your job as Larry is to get rid of the black peas. Every black pea you touch gets you a point. But beware of Barry the Banana, who is a friend of the peas and wants to protect them. If Larry runs into Barry, precious time is deducted from the clock. Yes, this is a timed game, but I don't know how many seconds you get initially. I do know that x (timer variable) starts out at 0 and is added to every 4th frame and the game ends once x reaches 60. Hopefully this will be fun to PLAY as well as work.

bf7.bas.bin

bf7.bas

Share this post


Link to post
Share on other sites

"In the Black Forest, Larry was assigned by the king of Germany to get rid of the black ants that have been chewing on the black trees, turning them into black tree stumps. But the evil Barry banana, friend to all ant-kind, wasn't too happy with Larry trying to get rid of the ants, so he was sent by the ants to try and stop Larry. Your job is to see how many ants you can get rid of before the world ends."

 

So anyway, I made the timer visible. It ends at 20. And I made the background green. I want to have a cool-looking banana sprite for Barry the banana. Here's how it looks now:

 

post-9475-0-14653400-1385966929_thumb.png

bf8.bas.bin

bf8.bas

Share this post


Link to post
Share on other sites

Made Barry the Banana try to get after you more. In order to do this though, I had to change the playfield color back to 0 in order to fit it in 2k.

There's a number of things you could do to lose a few bytes

get rid of unneeded gotos for one

looks like there's redundant stuff you could put in functions or subroutines too

Share this post


Link to post
Share on other sites

this is untested
so take it with a grain of salt
(I can't get your code to assemble
completely, lots of unresolved
symbols, you must be using a different
version of something)

here I tried to remove the redundancy
in the movement code by parameterizing it
and putting it in a subroutine

bf13_mod.bas

I may very well have goofed something
but maybe it will give you some ideas

Edited by bogax

Share this post


Link to post
Share on other sites

In the original code, if a player hit a wall, he didn't stop, but he kept on moving in the direction he was going. Is there any way to change this? I wonder if it involves this part of code:

 

ud
   scol = (player0x[pn] - 17) / 4
   srow = (offset[dir] + player0y[pn]) / 8
   if pfread(scol, srow) then ud_0
   scol = scol + 1
   if pfread(scol, srow) then ud_0
   scol = (scol * 4) + 13
   if player0x[pn] = scol then skip_ud_0
ud_0
   dir = 0
skip_ud_0
   player0y[pn] = player0y[pn] + mov[dir]    
   return

Share this post


Link to post
Share on other sites

The way I read your code if you start
it moving (in some direction) it continues
to do the same until you change it, so that's
what I meant to do
(since I can't test it I can't be sure if
it's working. Is it working? :) )

I'm not sure what you want it to do

In the movement code dir (direction)
get's set to zero in the event of a collision
with the play field (zero is no movement)

If eg you wanted the player movement to stop
when there's a collision with the playfield
you could set f = dir when the subroutine returns

Share this post


Link to post
Share on other sites

I wanted the player to keep moving in the direction it was previously going if there was a collision with the playfield, like Pac-Man.

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