-
Content Count
364 -
Joined
-
Last visited
Posts posted by e1will
-
-
I just played the latest version for a few minutes, and the sound effects are a welcome addition.
One immediate suggestion: I highly recommend you use a roughly 60Hz square wave for the power outlet, i.e. AUDF0=16 and AUDC0=6 (or 10), to mimic the sound of 60Hz AC current. It's one of those little gestures that can really elevate a game, IMHO. For the PAL version, it'd be a nice touch to use AUDF0=19 for 50Hz.
Ooh! I like that. That'll be in the next version, for sure.
You're using something similar for the bee, so you'll want to change that -- I might suggest a higher pitch, unless it's a very big bee (which I suppose it is). A couple of the sound effects could benefit from a bit of tweaking -- the river sound in particular seems too constant, and suggests an idle engine rather than waterflow.
Yeah, I'd like for the river to go up and down in volume, but it's already plenty loud at the lowest volume setting. I'll have to play around with it some more.
Overall, a terrific game! I'm going to have to sit down with this one, on real hardware via the Harmony cart, and really try to play through everything you've got.
Thanks!
--Will
-
-
I noticed a bug, of sorts.
Wow! That is quite a bug! I'll quash that for v0.22.
Thanks,
--Will
-
The 7.5k RAM is in addition to the 31.5k ROM.
The reason for the $1Fnn triggers is because it's a superset of an existing scheme that uses them already. That is, you may start developing your E7 game in an emulator now and move on to the larger scheme without major changes (initially, just 16k of zeros before your current binary.)
OK. That's useful information. There's a game I had wanted to write that suddenly becomes feasible with that amount of RAM and ROM.
Thanks!
--Will
-
Hello everyone!
I was able to refactor some redundant AI code and came up with a few cycles and ROM bytes free, so I added some "background" sounds.
In this version:
- the bees buzz
- the snakes hiss
- the tanks rumble
- the electrical outlets hum
- the warp of death growls
- the rivers whoosh
- and... well, you can probably guess what kind of sound this room makes.
This version (v0.21) does have a couple of small bugs that cause the NTSC scanline count to be off once in a while. It shouldn't be too noticeable, and should be fixed in v0.23.
One thing to note about the new bee buzz sound: there will be a faint buzzing if a bee is in the room directly below you, to warn you to get out of the way. The buzzing is louder once the bee actually enters the room.
--Will
EDIT: Fixed the bug Nathan found below (and a couple more.) Version v0.22 now attached.
-
I've taken the description of E7 from the old sizes.txt document from Kevin Horton (and edited it because there are errors in it):
The last 1.5K in the cart always points to the last 1.5K of the ROM image, while the first 2K is selectable. You access 1FE0 to 1FE6 to select which 2K bank. Note that you cannot select the last 2K of the ROM image into the lower 2K of the cart! Accessing 1FE7 selects 1K of RAM at 1000-17FF instead of ROM! The 2K of RAM is broken up into two 1K sections. One 1K section is mapped in at 1000-17FF if 1FE7 has been accessed. 1000-13FF is the write port, while 1400-17FF
is the read port. The second 1K of RAM appears at 1800-19FF. 1800-18FF is the write port while 1900-19FF is the read port. You select which 256 byte block appears here by accessing 1FE8 to 1FEB.
32k E7 would be the same as above except 16k of code space would precede it. This 16k would contain 8 more 2k ROM banks accessed at $1FD8-$1FDF.
Optionally, more RAM would be available. Nothing was finalized, but possibly $1FEC-$1FF1 could add another 1.5k for the 256-byte banks.
As for the rest, $1FE7 still selects a 1k bank, but $1FF2-1FF6 selects which one of 5 1k banks will go there.
It looks like the full 7.5k RAM will be usable. As for the 32k ROM (actually, 31.5k as there is a 512-byte hole at $7800-$79FF) there might need to be a little bit of space reserved at the beginning in case the bankswitch code can't fit in the 512-byte hole.
Interesting... So is that 7.5k RAM plus 31.5k ROM, or is the 7.5k within that 31.5k (i.e. 7.5k RAM, 24k ROM)?
Are there benefits in using $1Fnn bankswitch triggers instead of zero-page ones?
--Will
-
Well, a proposed expansion to E7 banking was proposed privately, which allows for 31.5k ROM and up to 7k of RAM. Maybe it was 7.5k.
I will look up the details in case anyone is interested.
Yes, I'd love to see that! That could really open up some possibilities.
--Will
-
Sure, that would work.
2k ROM banks is a bit tight, but that's a heck of a lot of ram to play with!
Well, if it turns out that the RAM zones can be preloaded with code (and I assume they can), then it's more like 3k of "ROM", 1k of which is modifiable.
That would be a great way to save kernel cycles: just modify certain spots of the kernel before calling it. If nothing else you could replace all the 5-cycle "LDA (PTR),Y" calls with 4-cycle "LDA ptr,Y" calls. Might not seem like a lot but I have a couple of kernels-in-progress that would really benefit from that.
--Will
-
How is it going to write to that ram bank, since the 2600 cart pinout has no write-indicator line?
If you take the sara chip approach of repurposing an address line as a write-indicator you lose half of the 4k address space in the bank.
There's a few alternate schemes I can think of, but they have serious pitfalls.
If the full 8k is available, could you use $1000-$13FF to read a 1k RAM slice, $1400-$17FF to write to that slice, and $1800-1FFF for a 2k slice of ROM?
Then you could swap among the 8 1k RAM slices using one bankswitch trigger (e.g. write the desired RAM bank # to $3E) and swap among the ROM slices using another (e.g. write the desired ROM bank # to $3F).
That would let you access all the ROM from all of the RAM, and vice versa. You just couldn't access all of the RAM from the RAM, or all of the ROM from the ROM.
--Will
-
The Harmony has 8k of RAM. You could certainly have more than 128 bytes but not the full 32k.
How much of that 8k is available for the game to use?
--Will
-
Well, the 128k chips have 16k of RAM, so unless I'm misunderstanding, 64k RAM won't work.
Let's say you have a 32k .bin file that contains game code. As I understand it now, Harmony could either treat this as all ROM (if it thinks it's an F4 bankswitching game) or a mix of RAM and ROM (if it thinks it's coded to use F4SC). Is there any reason it couldn't treat it as all RAM?
--Will
-
I still loving reading this thread over. It cracks me up every time. I reminds me of certain kids I knew back in middle school/jr high who would have these brillant ideas, but no way to execute them. As much as you would try to convince them they were wrong, they would never let go.
I think it's safe to say he's let go!
I actually feel bad for the guy; I was full of unrealistic dreams at that age too, and was pretty resistant to logical explanations of why they were unrealistic. I shudder to think if those conversations had been immortalized on the Internet...
That said, if there ever is a Knight Rider 2600, I think the manual needs a centerfold.

--Will
-
Hi Will
The game is really great and becomes better with every new version.Really good,what you do on the 2600.
greetings Walter
Thank you!
-
-
Good morning! I just played a couple of games of version 0.19. I finally completed level 3!
This game provides quite a bit of challenge! I wonder if I'll have the gaming skills to make it to the higher levels...I like the new death animation. It's clear that the robot has been defeated. There's even a bit of humor in that the robot's eyes still move if you move the joystick.
I found it is possible to drop the magnet off-screen and have it be lost. Since the magnet appears on the left side of the robot, I moved to the left side of the screen, with the magnet off the left edge, and dropped the magnet. It was not on the screen to the left nor on the current screen.
Looks like you ran into the same bug that Yuppicide encountered. It took a while to fix this, but it's fixed in the version I'll be posting shortly (v0.20).
I noticed that if you're carrying the zapper and an egg and you press the trigger, the zapper is fired rather than you dropping the egg. This is definitely a good thing!
When a duck tries to bite, it "quacks" and pauses for a few seconds. If you move through a door, the duck follows you to the next screen, still paused. I think it would be more natural for the duck to remain in the previous room since it had stopped moving. (I asked about ducks following you before, but this is a specific case - only when the duck just attacked and paused.)
Yep, that's by design: if the duck is attacking, he'll follow you through the door. Seems to make it too easy to outrun them otherwise.
In the dark areas, while moving to the right, I came onto a screen on the left side and was placed on top of the snake. It's frustrating to die instantly upon entering a room. I suppose I could learn not to move along the snake's path in an upcoming room, but it is irritating to lose a life without having at least a chance to avoid it. (I'd rather fail through action rather than blundering.)
I've tweaked the snake logic a bit; you should be less likely to run into one on the very edge of the rooms now.
I managed to shoot the zapper onto the next screen! I was in the center of a dark room and shot the zapper at a duck to my right. It hit the duck then seemed to disappear. I then went to the screen on the right and picked up the zapper there. Could this be because there was no wall to stop it?
Yep!
In dark rooms, the zapper when discharged is the same color as the background. Also, using the background color makes it look like the robot's antennae have fallen off. It may be good to change this so that it is apparent you are carrying a discharged zapper.
Good suggestion. I've made the gray rooms a slightly different shade of gray, so you should be able to see the gray objects now.
The doorways on the left and right sides of the Berzerk room that has exits on those sides are wider than those in the Dodge 'Em room. This makes it possible to appear to get stuck, particularly when you leave the right side of the Berzerk room for the left side of the Dodge 'Em room. Hold the joystick right and you'll bounce between the two rooms.
I've noticed that too, but I'm not sure what to do about it without making the Berzerk room look less like Berzerk or the Dodge 'Em room look less like Dodge 'Em. But I'm open to suggestions!
Animations are still looping while the game is paused.

One annoyance I encountered is that when you go through a door, sometimes you are positioned in the next room such that it's very easy to move back through the same door by accident. This can be frustrating while trying to escape a duck. Is the program sending you to the next room as soon as you touch the door? If so, what would you think of having it require you touch the door for a certain amount of time - maybe a half-second or a second - or having to move to the center of the door? That might eliminate accidental moves through doors. (It might cause trouble with getting the black egg to the black door on Level 2, though.)
I'll have to give that some thought. I don't want to make the game seem less responsive.
This game keeps on improving! Thanks for the updates and for listening to these suggestions!
Thanks! And thank you again for your comments, the feedback is very much appreciated.
--Will
-
You can pick an egg up and drop it off screen making it impossible to get.

Yeah, I had skipped reading the manual. Now that you said it, I read it, and made it to level 2. Awesome.
You found a bug! Looks like when you drop an object off the left side of the screen, it actually ends up in the room to the RIGHT of the room you're in (at least some of the time.)
I have fixed this in v0.20, which I'll be posting shortly.
--Will
-
Can the speed of the Chef be made a little faster?
Probably, but you still might have to change some code, depending on how the movement logic is coded. A disassembly should tell you exactly where you'd need to make a change, but I don't think I've seen one floating around anyplace.
--Will
-
This game is awesome! I don't know what to do really, but grab stuff so far.
I got stuck in some water it appears and floated on a screen full of water, got stuck and couldn't move. The duck ate me.
Can't believe I only found this game today. Amazing work. The duck is scary he's so big. Love all the screens, the colors on the title screen, etc.
I for one love the classic game references.
Thanks! I'm glad you like it.
There's a manual online that describes what each of the objects do. It's a little out of date but should give you a good start.
--Will
-
The biggest change in this version is that it is MUCH easier. Specifically:
* The ducks appear more gradually: only 1 duck in Level 1, 2 ducks in Level 2, etc.
I think level 1 is too easy now. I miss seeing the duck in the maze.
I agree. For v0.19 I put the ducks back the way they were before.
--Will
-
Hello once again. I spent some time playing version 0.15 tonight. Thank you for considering my comments and implementing some changes as a result! I'm glad that I was able to help.
I have some more comments and questions about the latest version...
Having the blue balloon available in Level 2 can really change how one plays the game! I spent a lot of time traveling over low walls, almost as if the bat from Adventure was carrying me in the belly of a dragon, but with me in control. It was nice to see the layout of the level, but I wonder if something is lost by having such free movement instead of wandering through mazes, especially in the early levels. (Getting past them in later levels would be a nice convenience.) I'm not saying having the blue balloon early is bad - just different. What motivated you to make it appear earlier?
My main motivation was to make the game easier. The results of the poll I posted really surprised me... no one had completed anything past Level 3! But I think, as Nathan points out, moving the balloon to Level 2 makes it too easy. Exploring the mazes is part of the fun, and having the blue balloon available too early short-circuits that. I've restored it to its earlier location. As before, you'll need to work your way up to Level 10 to earn the blue balloon.
That said, I learned it's also possible to get stuck while ballooning without pressing the button to drop the balloon - bump into another object. I found this out the hard way on Level 3 by ballooning into the room containing the shield while also carrying an egg. Touching the shield caused me to drop one of my two carried objects, which turned out to be the balloon. This caused me to get stuck in the lower wall. What would you think of setting up a priority system for dropping objects, so that when you're carrying the balloon and something else, the something else always gets dropped first? It would help avoid this situation.
Good suggestion! I've made that change.
Can ducks travel through doors or was it only my imagination? I tried running through doors on several occasions to escape a duck attack only to find the duck on the same screen I went to! I wonder if it might be good to delay a duck slightly - even if only a couple of seconds - when it travels through a door. After all, it's a huge duck pushing itself through a small door!

They can indeed! But only one of them at a time. If there are five chasing you and you go through a door, you'll only have one to contend with then.
I do like that there is a pause after the robot is defeated, but I think it would be helpful to have something more than simply disappearing. This could be misinterpreted as a glitch. (I see that you've posted some possible alternatives, but I haven't had a chance to look at them yet.)
I've redone the death animation. Let me know what you think.
I did find a glitch in the death process, though. I was carrying the magnet, which appears at near the lower left of the robot, and ran into a tank. When the robot disappeared, the magnet jumped to the top of the screen. When the robot is killed, does it just get positioned out of view?
I fixed the magnet bug. (And yes, in that version of the code I was moving the player above the visible screen. I've reworked that.)
Is the duck supposed to be able to swallow you while you're carrying the zapper? I was a little surprised when it happened. Wouldn't the duck get a rather nasty case of heartburn? (It's fine if this was intentional; it would just be helpful to know this can happen.)
Yep, you have to throw the zapper or place it in a duck's path, just holding it doesn't do anything.
Thanks again for your feedback, these are great observations and suggestions!
--Will
Version v0.19 attached.
-
Is it possible to make the egg look more like an egg? and can the colors of the bad guys be changed so it's easier to tell
them apart?
The colors i'd like the bad guys changed to are
Hot Dogs - Pink
Eggs - White
Cheese - Orange
Bread Sticks - Brown
Unfortunately you can't do that without a code change... Everything but the hot dog and the chef are either missile or ball sprites, so they take whatever color the hot dog, chef and playfield take. If you wanted them different colors you'd need to rewrite the kernel.
--Will
-
There are a few options. If you don't need instant access to the resources beyond 32k, an EEPROM chip is on Harmony (and can be added to Melody) that can swap a bank into RAM in a few milliseconds. We are working on support for this. The EEPROM in Harmony is 512k and chips are available up to 4M bytes.
It is also possible to make version of Melody with 128k of flash which is all instantly available. The 128k chips do not work as Harmony carts, but I can add the Harmony daughterboard and just not attach the SD card slot, and it can be programmed with Harmony programming software using the Development tab and only allow a single game at one time (though we need to allow for custom bankswitching for 128k as no schemes support beyond 32k at the moment - we are working on this.)
Also, keep in mind that the 128k chips are approximately $4-$5 more than the 32k chips so this would add some cost to your homebrew and drive up the price. It can be done, though, and I'd be willing to make one for a developer serious about using the larger chips.
I don't want to get hammered with requests from collectors for a 128k Melody so just developers who are serious about it for now, please.
A somewhat-unrelated Harmony question (I apologize if this has been already answered elsewhere): With the 32k F4SC bankswitching examples I've seen, the extra RAM bytes are padded with $FF, which I assume is because the traditional hardware used volatile memory for that. Is there any reason a 32k F4SC game couldn't be created to run on Harmony that was pre-loaded with game code or graphics (rather than $FF padding bytes) in that 128 bytes of RAM?
And if that's feasible, would it be possible to extend that scheme to a 128k flash so that it contains 64k of code in the RAM portion, which could then modify itself? For example, addresses $F000-$F7FF in each of the 32 4k banks are the RAM "read" addresses preloaded with game code, and $F800-$FFFF are write addresses which the code would use to modify itself... assuming the bankswitching triggers were handled by a zero-page RAM write (e.g. LDA #desired_bank STA $3F).
--Will
-
Are there any thoughts/plans for doing a version of the Harmony cart with 64k flash memory instead of 32k?
I know 32k is sufficient for practically all the games that now exist, but since some of the recent homebrews have been maxing that out I wonder how feasible it would be to stretch the maximum supported ROM size, if only in a deluxe or limited edition.
--Will
-
1
-
-
Here's a new idea I had for the death animation. Thoughts?
--Will

Duck Attack! - new Atari 2600 homebrew (NTSC & PAL)
in Homebrew Discussion
Posted
On both of those, I think the "oh @#$% I wasn't expecting a duck to be there" factor is an important part of the challenge. But I'll keep an open mind, and see if other folks agree that a change would improve the game play. At any rate, if you can make it to the door before he sees you, he won't follow you.
It is reachable if you have super-speed. If you don't, well, yeah, it's a bit of a tease. But f you can't/don't pick it up when it first appears, it will appear again later.
Hmm, another bug. I'll track that down.
It would, but I kind of like the "secret corridor" effect in the arcade rooms. I did put in a couple of tweaks that prevent you from getting stuck there; you should be able to always get back to the main playing area even if you're able to "sneak backstage" on those rooms.
Yep.
Thanks! I look forward to seeing what you find on the higher levels.
--Will