Thomas Jentzsch Posted March 5, 2007 Share Posted March 5, 2007 How about an option which allows the maid to use one elevator for a short ride? Maybe as a bonus for... uhm... Quote Link to comment Share on other sites More sharing options...
+batari Posted March 5, 2007 Share Posted March 5, 2007 (edited) 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 March 5, 2007 by batari Quote Link to comment Share on other sites More sharing options...
Gateway Posted March 6, 2007 Share Posted March 6, 2007 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. Quote Link to comment Share on other sites More sharing options...
espire8 Posted March 6, 2007 Share Posted March 6, 2007 Why do the elevators have to be a deadly thing? 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! Quote Link to comment Share on other sites More sharing options...
+Nathan Strum Posted March 6, 2007 Share Posted March 6, 2007 I'm thinking she has to avoid the elevators, because there are hotel guests in them. If she gets spotted by guests, she gets fired. Or something. Quote Link to comment Share on other sites More sharing options...
djmips Posted March 6, 2007 Share Posted March 6, 2007 I'm thinking she has to avoid the elevators, because there are hotel guests in them. If she gets spotted by guests, she gets fired. Or something. Or something... Like USCIS agents? Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 6, 2007 Author Share Posted March 6, 2007 I'm thinking she has to avoid the elevators, because there are hotel guests in them. If she gets spotted by guests, she gets fired. Or something. Or something... Like USCIS agents? There you go. I should call the game...Illegal Alien! Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 21, 2007 Author Share Posted March 21, 2007 (edited) New binary! With music! ElevRep20070320.bin 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 March 21, 2007 by vdub_bobby Quote Link to comment Share on other sites More sharing options...
djmips Posted March 21, 2007 Share Posted March 21, 2007 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) Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 21, 2007 Author Share Posted March 21, 2007 Thanks, David! Wow, only three frames! That is very, very good. Quote Link to comment Share on other sites More sharing options...
djmips Posted March 21, 2007 Share Posted March 21, 2007 (edited) 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 March 21, 2007 by djmips Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted March 21, 2007 Share Posted March 21, 2007 lda ElevVel,X and #%00111000 lsr lsr lsr tay clc The clc is superfluous Quote Link to comment Share on other sites More sharing options...
djmips Posted March 21, 2007 Share Posted March 21, 2007 (edited) 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 March 21, 2007 by djmips Quote Link to comment Share on other sites More sharing options...
djmips Posted March 21, 2007 Share Posted March 21, 2007 lda ElevVel,X and #%00111000 lsr lsr lsr tay clc The clc is superfluous Actually, I edited my post. To remove the clc (and the adc #1) and replace with iny. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 21, 2007 Author Share Posted March 21, 2007 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! 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. Quote Link to comment Share on other sites More sharing options...
espire8 Posted March 21, 2007 Share Posted March 21, 2007 Thanks, David! Wow, only three frames! That is very, very good. Thanks though I'm not sure which David you're addressing (that happens to be my name too) . 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? Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 21, 2007 Author Share Posted March 21, 2007 Thanks, David! Wow, only three frames! That is very, very good. Thanks though I'm not sure which David you're addressing (that happens to be my name too) . 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. Thanks to you too, though! I don't need it within a week, but within a few weeks would be nice. Quote Link to comment Share on other sites More sharing options...
gambler172 Posted March 21, 2007 Share Posted March 21, 2007 Hi great work. greetings gambler172 Quote Link to comment Share on other sites More sharing options...
djmips Posted March 21, 2007 Share Posted March 21, 2007 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! 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. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 21, 2007 Author Share Posted March 21, 2007 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. Yeah, I saw a couple of bugs, but I got the general idea. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 26, 2007 Author Share Posted March 26, 2007 Fixed the music syncing bug, and shaved a few bytes here and there: ElevRep20070325.bin Quote Link to comment Share on other sites More sharing options...
+Nathan Strum Posted March 27, 2007 Share Posted March 27, 2007 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? Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted March 27, 2007 Author Share Posted March 27, 2007 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. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted April 2, 2007 Author Share Posted April 2, 2007 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... 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 Quote Link to comment Share on other sites More sharing options...
espire8 Posted April 3, 2007 Share Posted April 3, 2007 (edited) 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. Edited April 3, 2007 by espire8 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.