Jump to content
IGNORED

Maids + Elevators = 2600 Homebrew


vdub_bobby

Recommended Posts

Yeah, that's a good point. Why can't you ride the elevators? Maybe they are supposed to be broken?

 

Anyway, maybe one use for the button would be to call an elevator. If you can't ride the elevators, this could make an elevator stop at the floor where you pushed the button and wait there for a while so you can more easily run past it at the next floor up. Maybe you could only call one elevator at a time and you couldn't call another until the previous one started moving again.

Edited by batari
Link to comment
Share on other sites

This is shaping up nicely. :)

 

Just brainstorming here: If the maid theme doesn't pan out, you could always change the player to a bellhop/bellboy.

 

Luggage could be scattered between the elevators that you have to gather on your way to the top floor.

post-2955-1173140126_thumb.jpg

Link to comment
Share on other sites

Why do the elevators have to be a deadly thing?

post-7623-1173153745_thumb.jpg

Use those elevators!

Make it a part of the strategy;

I would simply make one of the elevators periodicaly alternate colors and if the maid touches one, instead of losing a life, the elevator would teleport her to the same colored floor as the elevator's color was the moment she touched it (either intentional or accidently) or if it where a white one, back down one level.

This can set the player back or put 'em forward in the game.

Expert players will be able to move ahead quickly to harder levels.

I think the Maid should have a time limit set for each level where she loses a life for not finishing in time.

That gives it enough urgency.

 

Also, there need not be stairs on every floor. Their can be floor patterns that can require riding an elevator or going down the stairs to reach certain areas to escape. It would be alot better esspecially for 2 players if the maid can exit off the sides where there's no staircase and reappear (wrap around) at the opposite side of the same floor.

 

Lastly, it would be fun to make the 2nd player a mouse. There's a classic pair for you! Perhaps give them attributes where the mouse can zip along quickly but can only use stairs and can't ride elevators but loses a life for touching any of them. And the Maid being not as quick but loses a life anytime if the mouse touches her!

 

You can even have a single power up item that alternates between a broom and a piece of cheese.

If the maid gets the broom she can chase the mouse and eliminate it or if she grab the chesse instead, she'll turn into a mouse while the mouse turns into a maid! and the exact opposite effect results if the mouse grabs the broom/cheese as well.

 

Heh, this could just as well be an entirely different game idea altogether:

The Maid, the Mouse and the Elevators.

Let the chase begin!

 

Guess I could still dream! :D

Link to comment
Share on other sites

  • 3 weeks later...

New binary! With music!

 

ElevRep20070320.bin

post-6060-1174495371_thumb.pngpost-6060-1174495380_thumb.png

 

Changes:

-added gameplay music

-added building-complete music

-changed status display

 

Known issues:

-scanline count is inconsistent

-2nd channel of music sometimes starts slightly before 1st channel

 

To do:

-add death music/SFX

-polish/finish other music

-add animation(s)

-two-player mode?

-AVox/SaveKey support?

-Other bells and whistles

 

Notes: for space reasons, I had to cut some of the gameplay tune; I'm hoping to add that back in if I can clear up some room.

 

Also: espire8, I like your maid animation, but it is more "run" than I think I want, could you modify it so it is more of a walk? And can you post the individual frames of your maid animation? I can't split that animated .gif up myself.

 

And if someone can come up with a good status line I would be very appreciative: it needs to show the number of extra maids (single digit) as well as the timer (two digits). And it needs to be one line.

 

EDIT: Here's the source: ElevRepSource20070320.zip

I'd appreciate any and all extra eyes to help me look for optimization areas, both for ROM and RAM. :)

Edited by vdub_bobby
Link to comment
Share on other sites

Also: espire8, I like your maid animation, but it is more "run" than I think I want, could you modify it so it is more of a walk? And can you post the individual frames of your maid animation? I can't split that animated .gif up myself.

 

 

Here's a freeware utility that I find useful. Amongst other things, it can break out animated gifs into a series of files. It also can do simple animation editing.

http://www.gdgsoft.com/anituner/

 

What you want to do is load the gif and export as AniTuner Disassembly (.atd)

 

post-4397-1174497107.png

post-4397-1174497127.png

post-4397-1174497138.png

Link to comment
Share on other sites

Saving bytes.

 

Not going to save you a lot but

 

ElevatorIsInUseMoveIt
lda #0
sta Temp
lda ElevVel,X
and #%00111000
lsr
lsr
lsr
tay
clc
lda AddTable,Y
adc Temp
sta Temp
iny
tya
 ;lda ElevVel,X
 ;and #%00011000
 ;lsr
 ;lsr
 ;lsr
 ;clc
 ;adc #1
and #%00000011
sta Temp+1		;index into which of four bytes

Edited by djmips
Link to comment
Share on other sites

Saving bytes. First of all, I would dispense with the ElevatorSpeedTable altoghether and use your velocity byte to generate the ratio directly. But even using the table you can save 64 bytes (minus extra code) by observing that it is symmetric.

 

Here is some rough code that isn't tested. I've removed the zero column in the table and you would need to add that as a special case in the code to handle zero velocity.

 

ElevatorIsInUseMoveIt
lda #0
sta Temp
lda ElevVel,X
and #%00111000
lsr
lsr
lsr
tay
clc
lda AddTable,Y
adc Temp
sta Temp

lda #0
sta Temp+2
sta Temp+3

iny
tya

and #%00000011

and #%10
beq .normal
   
eor #3				;maps 2,3 onto 1,0 (flipped)
			tay
 
lda  #$FF
sta  Temp+3	;need to invert bits from table

lda #08
sta Temp+2		; offset into symmetrical byte mask table

			tya

.normal
sta Temp+1		;index into which of two bytes

lda FrameCounter
and #31
asl
asl

ora Temp+1		;index into table
adc Temp+2
tay
lda ElevatorSpeedTable,Y
eor Temp+3
sta Temp+1		;save byte, now find which bit
lda ElevVel,X
and #7
tay
lda Temp+1
and SpeedMaskTable1,Y ; use inverted mask for symmetry
beq NoAdditionalAdd
lda Temp
clc
adc #1
sta Temp
  
NoAdditionalAdd



SpeedMaskTable
.byte $80,$40,$20,$10,$08,$04,$02,$01

.byte $01,$02,$04,$08,$10,$20,$40,$80


ElevatorSpeedTable
.byte %11111111,%11111111
.byte %00000000,%00000000
.byte %00000000,%00001001
.byte %00000000,%01110110
.byte %00000001,%10000001
.byte %00000110,%00001110
.byte %00001000,%01110001
.byte %00000000,%10001110
.byte %00010001,%00010001
.byte %00000010,%00100110
.byte %00100000,%01001001
.byte %00000100,%10010010
.byte %00000001,%00101101
.byte %00001000,%01000010
.byte %00000010,%10010101
.byte %00000000,%00101010

.byte %01010101,%01010101
.byte %00000000,%00101010
.byte %00000010,%10000001
.byte %00001000,%01010100
.byte %00000001,%00101011
.byte %00100100,%10000100
.byte %00000000,%01011011
.byte %00000010,%00100100
.byte %00010001,%00010011
.byte %00000000,%10001100
.byte %00001000,%01100011
.byte %00000110,%00011000
.byte %00000001,%10000111
.byte %00000000,%01100000
.byte %00000000,%00011111
.byte %00000000,%00000000

Edited by djmips
Link to comment
Share on other sites

Thanks for the suggestions, guys. :) I'll look into them.

 

One issue with messing with the routines that move/update the elevators and their RAM is that those routines take a loooooong time and both the overscan AND vertical blank periods are completely maxed out already! :o So your changes can't increase the length (in cycles) of those routines very much. I'm especially worried about special cases and manipulation of the speed table; I was pondering its symmetry last night myself and wondering if something could be done. :)

 

...

Though your modification, David, probably wouldn't take too much longer, now that I've read it. It's pretty straight forward. :)

Link to comment
Share on other sites

Thanks, David! Wow, only three frames! That is very, very good. :D
Thanks though I'm not sure which David you're addressing (that happens to be my name too) :D .

 

I'll see what i can do to fix the maid to a walk and keep it in three frames to save you space. Will you be needing this anytime soon?

Link to comment
Share on other sites

Thanks, David! Wow, only three frames! That is very, very good. :D
Thanks though I'm not sure which David you're addressing (that happens to be my name too) :D .

 

I'll see what i can do to fix the maid to a walk and keep it in three frames to save you space. Will you be needing this anytime soon?

I was addressing djmips. :D

 

Thanks to you too, though! I don't need it within a week, but within a few weeks would be nice. ;)

Link to comment
Share on other sites

Thanks for the suggestions, guys. :) I'll look into them.

 

One issue with messing with the routines that move/update the elevators and their RAM is that those routines take a loooooong time and both the overscan AND vertical blank periods are completely maxed out already! :o So your changes can't increase the length (in cycles) of those routines very much. I'm especially worried about special cases and manipulation of the speed table; I was pondering its symmetry last night myself and wondering if something could be done. :)

 

...

Though your modification, David, probably wouldn't take too much longer, now that I've read it. It's pretty straight forward. :)

 

 

Good name, David right? But I've looked at my routines and I think I see an additional bug, there is supposed to be a factor of 8 added to the y index for the lookup into the speedmask table but I'm adding it the wrong point. But hopefully you get the idea and can fix it to actually work. :roll:

Link to comment
Share on other sites

Good name, David right? But I've looked at my routines and I think I see an additional bug, there is supposed to be a factor of 8 added to the y index for the lookup into the speedmask table but I'm adding it the wrong point. But hopefully you get the idea and can fix it to actually work. :roll:

Yeah, I saw a couple of bugs, but I got the general idea. ;)

Link to comment
Share on other sites

Very nice music!

 

I realize the theme of the game has to do with elevators... but it looks more like someone running through a factory, dodging springs that are bouncing up and down.

 

Just can't get that image out of my head. Maybe if the elevators periodically stopped on some floors?

Link to comment
Share on other sites

Very nice music!

 

I realize the theme of the game has to do with elevators... but it looks more like someone running through a factory, dodging springs that are bouncing up and down.

 

Just can't get that image out of my head. Maybe if the elevators periodically stopped on some floors?

Can't believe I never thought of that. That would be a really cool effect; don't know if I can get it in...

 

Have to think about it a bit, too, decide if it would work.

Link to comment
Share on other sites

Update!

 

ElevRep20070401.bin

 

Changes:

-added death music

-added intro to gameplay music

-removed (nonworking) 2-player mode, replaced with "Novice"

-bunch of back-end, optimizing stuff.

 

Following djmips's suggestion, I was able to cut a 128-byte table in half. Unfortunately, the extra code to handle the compressed table meant that total ROM savings was only about 25 bytes - but every byte helps! :) I rearranged a bunch of tables and counted bytes and it looks like right now I have about 150 free ROM bytes (and 1 byte of RAM).

 

Still to do:

-add code to give extra lives (and sound effects for that)

-modify completed-level bonus

-add maid animation (see note below)

-add 7800-detection code (maybe)

-add ability to turn gameplay music off (maybe)

-gameplay finetuning

-miscellaneous polishing

 

About the maid animation...each animation frame takes about 50 bytes, so I think, unfortunately, a very simple animation is all that will fit. Specifically, a two-frame animation, where one (or both) of the frames can double as a standing-still sprite. Which is kind of a bummer, but oh well. On the other hand...my brother and my wife both love the current non-animated, gliding look, so maybe I'll keep that and see about acquiring a Jetson's license...:ponder:

post-6060-1175526982.jpg

 

As always, thoughts, comments, suggestions, criticisms very welcome, and if anyone is brave enough to look through the code and suggest improvements, those are welcome too. ;)

ElevRep20070401Source.zip

Link to comment
Share on other sites

 

About the maid animation...each animation frame takes about 50 bytes, so I think, unfortunately, a very simple animation is all that will fit. Specifically, a two-frame animation, where one (or both) of the frames can double as a standing-still sprite. Which is kind of a bummer, but oh well.

That's a pity :(. Okay, here's one more try... although I hope more people will voice for a 3-frame version as I still would rather perfer. :P

 

post-7623-1175560682.gif

Edited by espire8
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...