Donkey Kong - Now playable!
CardboardGuru
Posts: 443
At last! A fully playable version of Donkey Kong.
This last week I've been holding back on releases because I didn't want you all getting bored of semi-playing it before everything was in.
We've got sprite collisions in. Death by falling. Death by loitering. Proper scoring. Bonuses of various kinds. Proper ending to Level 4. etc.
There are a few things around the edges to do yet. e.g.
1) Increasing difficulty level.
2) Hi Scores.
3) Two player. (I might not do this as I only have one controller.)
4) Better title screen.
5) Attract mode.
6) A couple of issues with elevators.
Please let me know about any bugs, differences to the original, complaints about too hard/too easy etc.
For those of you with kids I'd love to hear what they make of it.
Have fun!
Post Edited (CardboardGuru) : 5/28/2007 3:38:37 PM GMT
This last week I've been holding back on releases because I didn't want you all getting bored of semi-playing it before everything was in.
We've got sprite collisions in. Death by falling. Death by loitering. Proper scoring. Bonuses of various kinds. Proper ending to Level 4. etc.
There are a few things around the edges to do yet. e.g.
1) Increasing difficulty level.
2) Hi Scores.
3) Two player. (I might not do this as I only have one controller.)
4) Better title screen.
5) Attract mode.
6) A couple of issues with elevators.
Please let me know about any bugs, differences to the original, complaints about too hard/too easy etc.
For those of you with kids I'd love to hear what they make of it.
Have fun!
Post Edited (CardboardGuru) : 5/28/2007 3:38:37 PM GMT
zip
54K
Comments
Thanks for keeping enough free memory to hack in a keyboard object [noparse]:)[/noparse]
Sorry it's a short reply, but I've gotta rush back to it and try again lol [noparse]:)[/noparse]
Brilliant port,
Any idea's what your going to have a go at next?
Cheers,
Baggers.
-if there is no controller attached, the game boots into some wierd debug thing. Background graphics are the character '0', much is missing, etc...
Might be good to check for this, if possible.
-jumping over more than one barrel seems to only generate one score.
On the second screen, I jumped onto the platforms moving downward, connected by a line. Game froze on landing. I think it's because he fell too far, gonna try it again.
This first game was excellent! It plays very true to the coin-op and looks fantastic.
Gotta snag some headphones for the sound.
Sounds are not bad at all!
Lots of little problems on the second screen.
When riding moving platforms, moving controller down causes mario to fall through the platform. If you are quick, it's possible to recover and continue playing... fun!
He's also sticky on the moving platforms. Sometimes difficult to move.
That's it for now. Very playable, lots of fun. I'll let the kids loose this evening.
Edit: Decided to have another go at it.
Gameplay is very close to the original. I really cannot tell the difference.
If one is really careful with the controller, the second screen plays very well. Almost was able to complete it. Had some trouble with jumping off short platforms. Probably me, but it seemed mario started falling just a bit before I expected him to.
Post Edited (potatohead) : 5/28/2007 8:51:47 PM GMT
Right out of the gate, he cycled through the four screens!
Mario does seem to fall easily, when near the edge of something, that and not all the sounds are there, were his only comment!
(he's on the HYDRA right now, playing this game.)
I tried a different controller and had much better luck. The moving controller down on elevators bit is still an issue, but jumping, etc... is not. Took only a coupla tries to get through all 4 screens.
Super job! The title cracked me up. And thanks for the sound credit! Having my name up in lights is enough to make me go dig out my copy of MAME and figure out the remaining sound pieces
You'll find that release 1.0 of the HDMF Lite engine (posted with the official release) has better playback performance (looping tempo is cleaner and the music hang is gone). Its also easier to link in (since its an object now), which means once you link it its much easier to take an update. I also polished up a couple of the DK songs and added support for short (i.e. less than 8) instrument lists so you should grab the newer song versions from the demo.
Now where is my MAME disk....
MIME
KONG
...if it wasn't for you. Thanks for the new songs.
Potatohead, thanks for the bug reports. Yes, behaviour around the elevators definitely needs some work. I hadn't ever tried moving up or down whilst on elevator though. Oops.
Absolutely right about the falling too early. It's one of those few knowing compromises I made. For efficiency reasons I only check a single x coordinate for if mario is on a platform. I guess I could carry on doing that, but then if that logic says mario should fall, go on to check properly at two points under his feet.
I went out to a friend's house for dinner last night, and took the Hydra for a bit of after dinner entertainment. My friend was addicted. He couldn't beat the first screen, but he was desperate too. I think he would have kept going for hours if his wife wasn't taking the mickey. It was great to watch someone having so much fun with my creation. Incidentally, he is the guy that wrote Psion Monopoly for the Psion Series 5, if any of you recall that. A great game. Kept me entertained for weeks whilst commuting on the tube.
I ended up playing when I turned on the HYDRA display and found it running DK for a coupla days... Maybe that matters, maybe it doesn't.
IMHO, after playing a coupla times, the falling is just about right. Sensitivity to walking off platforms is higher than I remember, and the move down and up bit is a bug for sure. There is a trick jump on the second screen that plays perfectly. I don't know that I would change it much.
Thanks for the feedback.
In the current non-released version, the falling off platform edges issue has been fixed. Shouldn't break any trick jumps that already work.
The vertical bars effect happens when a sprite goes off-screen to the left or to the right.
There's no code space left on the rendering cogs to check, so data gets written outside the buffer and the cog breaks down.
So I'll look for an errant sprite that doesn't get initialised properly second time around.
Though it's also possible that Spin has run out of stack space and that's causing the malfunction that's putting a sprite out of bounds.
Andre'
Is there room for additional sounds?
There are lots of in game effects to fill said room...
Eric the "Sound Wrangler" here. Steve (CardboardGuru) and I have been burning the midnight oil to cram DK full of sounds. The few pieces of music in the last release were all quick grabs of existing MIDI renditions from the web and all of them were flawed in one way or another (sloppy performances, incorrect keys, missing harmonies, etc.). I've re-composed all the music to match the arcade machine and by the skin of my teeth I've manged to cram in all the effects from the original game as well (counting free words all the way[noparse]:)[/noparse]. Steve's shooting for another posting sometime tomorrow; I think you'll be pleasantly surprised.
As well as the sounds here's what's in this release.
1) Fixed several issues where elevator behaviour was wrong.
2) Fixed a crash of the renderers which would happen sometimes on the conveyor belt screen.
3) Added 2 player mode. It only uses one controller though because that's what I've got. It should be possible to autodetect the second controller and use it if present though. Maybe in another release.
4) Hi Score at top of screen in 1 player mode. (No hi score table - not enough memory.)
5) Added a fireball bouncing on the spot state.
6) Fixed issue where Mario would fall too early at edge of platforms.
7) Added yellow colour for hammer to warn nearly finished.
8) Changed fireballs to blue when Mario has hammer.
Have fun.
(Andre, are these pictures OK for your purposes? They're 640x480, but I can do another resolution if you'd prefer.)
Post Edited (CardboardGuru) : 6/4/2007 2:21:01 AM GMT
Anyway here are some things I noticed.
-When mario dies, he turns from peach to white (when he is spinning around and then lays flat he is white)
-when kong is climbing up the ladder there is some kind of wierd hole in his right arm
-sometimes the sprites looks like they are out sync(like in the middle of a PC monitor when something isn't vsync'd it looks like there is tearing). This happens to a lot of sprites, but not in one area. One thing you might want to try is buffering the sprites instead of updating them on the fly(which is probably what is happening here). I had to do that in my racing game because of the tearing look, but it would be really messed up because half would be scaled a different size then the other half. What I did was place all the sprites in a buffer, then wait for vsync and then take them from the buffer to sprite engine so they all update at once and not in the middle of drawing them.
-it seems like there is only one channel for sound effects because a new one always cuts off an old one(like the jumping over a barrel sound then landing). Put different sound effects on different channels so they don't cancel each other out.
-in the arcade version, all the barrels disapear when you get hit. At least if nothing else you should make mario a higher priority then the barrels she when he dies you can see him
-please, please, please put in a pause button
-the walking sound sounds really off
-after kong brings paulina up the stairs, jumps to tilt all the girders, he should also roar 3 times
-the music is pretty close as far as notes and timing, but sometimes the instraments seem a little off or inconsistant
-the mario sprite flips back and forth too fast when he is climbing a ladder(tho the actual speed he is moving up it seems ok)
Anyway, awesome job on the port.
·
Thanks for the feedback and bug reports. I'll let Eric answer the various bits about sound. Except to say this: we're really short of memory and we can't get absolutely everything in, and there do have to be some compromises. I'm happy for the "roars" not to be in because on the original game they sound like the squaks of a demented bird, not a gorilla.
-When mario dies, he turns from peach to white (when he is spinning around and then lays flat he is white)
Well spotted. Fixed.
-when kong is climbing up the ladder there is some kind of wierd hole in his right arm
So there is. When I slowed it down, I could see that not only was there a gap between his body and the right arm, his right arm was on back to front. Poor Kong! Fixed.
-sometimes the sprites looks like they are out sync(like in the middle of a PC monitor when something isn't vsync'd it looks like there is tearing). This happens to a lot of sprites, but not in one area. One thing you might want to try is buffering the sprites instead of updating them on the fly(which is probably what is happening here). I had to do that in my racing game because of the tearing look, but it would be really messed up because half would be scaled a different size then the other half. What I did was place all the sprites in a buffer, then wait for vsync and then take them from the buffer to sprite engine so they all update at once and not in the middle of drawing them.
I can't see any tearing. To be sure, I've captured play with my WinTV card and looked at individual frames. No tearing in any of the frames I looked at. It could be that you are noticing the colour artifacts of my overdriving the chroma in NTSC. Or perhaps the occasional glitch on the scanlines where Kong is when there are too many sprites there.
Anyhow, I can't afford the memory to have a second copy of the sprite table. That's 35 longs! Things are far too tight to squander that much memory!
-in the arcade version, all the barrels disapear when you get hit. At least if nothing else you should make mario a higher priority then the barrels she when he dies you can see him
OK, I've been through each of the levels and checked what sprites dissapear at the end of life and end of game. I think they are all correct now. Fixed.
-please, please, please put in a pause button
OK. I've set it up so that it only works on the playable screens. It's on the START button, so as a bonus, on the official Hydra controllers, the SLOW button works too.
-the mario sprite flips back and forth too fast when he is climbing a ladder(tho the actual speed he is moving up it seems ok)
True. I've slowed it down to half the previous speed. I think that's right now. Fixed.
Post Edited (CardboardGuru) : 6/4/2007 5:20:30 PM GMT
I also hooked the game up to my video capture card and the screen was a little bit wavy, but with the video routines based off of Parallax's TV adapter, then come in rock solid(tho on a TV the screen is stable). I think the timing maybe off in the TV code. Cleaning this up may even help stablize the color a bit.
Also I found out why you sometimes get 7 guys for no reason!! Every time you beat a level, when you start the next one you automaticly lose a live(which is I am guessing is tied to when you die and start again, minus one live). Well if you beat a level with 0 lives, when you start the next level 0 - 1 will give you whatever limit you set on Mario's.
Also you might want to try different color combinations for the fire because it has a lot of noise. One thing I have noticed with NTSC stuff is it helps to use less intense colors and use more dull colors, esp on reds. I would reference the NES version of Donkey Kong to see the colors they used for their fire.
Anyway, it is pretty cool having a DK game since the only DK that is out there legally to buy is the NES version. Why they don't put the arcade version on Wii virtual console is beyond me,
·
Thanks again. I'd seen the 7 lives issue, but I hadn't established the pattern for when it happened. That's embarrassingly obvious now. I'll fix it in the next release sometime in the next few days.
When you say wavy, could you describe exactly what you mean? Does it come out if you do a screen grab? Wavy like the first version of the Spectrum gfx driver, where the screen edges had a bend in them? Are the ladders not straight vertical lines? Or a shimmer in blocks of solid colour? Or deformation of objects as they move across the screen?
The fire uses super-saturated red. I thought that might give it more of a fire look compared with the other sprites. But it does mean that the TV circuit takes a little while to recover to display the next colour. I'll experiment with different fire palettes and see if I can improve the look.
1) Being successful in clearing a screen will no longer lose you a life.
2) Because of 1, the bug where you suddenly have 7 lives should be gone.
3) I've addressed the issue of sprite tearing. JT Cook, could you take a look and see if the problem has got better or worse. Thanks.
Also I took a screen grab about the wavy lines and it is different from the Spectrum driver. With this one the entire screen is wavy (but on my TV it is solid). I wouldn't be worried about this, but just more of an FYI.
With the sprite tearing, I realised that I was already doing what you suggested, copying the sprite table all at once. It get's copied from Hub memory into Cog memory. But through an oversight I was doing it every single scanline, rather than once per frame. So I fixed that, at no memory cost, and a boost in efficiency of the renderer. I like it when bug fixes work like that.
That picture certainly is wavy. Clearly there is something wrong with the timing. But it's rock solid on both my TV and my WinTV card. Do you get the same wavy effect on Fantasia? That uses the same TV driver.
Anyway, I have just 2 comments.
1. The "mario walking" sound is almost a little bit too... distracting? I couldn't figure out what it was at first.
2. I experience a similar waviness problem on my ATI TV Wonder Pro. Both my TV and Gamecube portable screen display it fine though.
EDIT: Found something else, a slightly larger problem. When I jump a barrel, it doesn't always give me my points.
Post Edited (LarryHedgehog) : 6/13/2007 1:44:40 PM GMT
It's not included in sw_dkong_15.zip, _16, _19, _20, _21, or HDMF_Release_1.2.zip.
There seems to be no mention of where to find it or what it is, other than " 'sound driver".
·
I have Hydra Book + CD + Prop Demo Board. The game upload beautifully but the sad thing my demo board dont have the game port. So how can i play this amazing game?
No really it is! It's replicating the exact same bug on the real arcade machine.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Help to build the Propeller wiki - propeller.wikispaces.com
Play Defender - Propeller version of the classic game
Prop Room Robotics - my web store for Roomba spare parts in the UK
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.propgfx.co.uk/forum/·home of the PropGFX Lite
·
OK, this is from memory from 2 years ago and I'm not looking at the source, so excuse me if I don't get it exactly right. But it goes something like this:
1) Jumping over one barrel gets 100 points. Jumping over 2 barrels gets 300 points. Jumping over 3 barrels gets you 800 points.
2) Because of 1, it's not good enough just to check whether a barrel is just below Mario every game tick whilst jumping. Rather what happens is that the game logic waits till Mario has jumped to the height of a barrel, then starts counting barrels that pass just underneath him, until Mario falls to less than the height of a barrel again. At that point a bonus score is awarded based on how many barrels were counted.
3) Collision detection is generous to the player and a pixel or two overlap can go undetected.
4) The barrel screen platforms slope.
5) Because of 3 & 4 you can sometimes pass over a barrel unharmed when Mario is not in the >barrel height section of his jump.
In short, if you're right on the edge of jumping too early or two late, the barrel may not be counted. It would be a very easy thing to fix. But that would make is slightly less authentic!
Hi mpark,
Thanks for asking! Prop programming is such wonderful fun. But its also a big time sink isn't it? I did my two games when I had lots of time on my hands. But I don't have that kind of time any more. So I don't know if/when I will. I just popped back to the forum because gonzobrains sent me a PM.
BTW, I still follow all the updates to the Propeller Wiki. Thanks to all the people who contribute to it and keep it growing!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Help to build the Propeller wiki - propeller.wikispaces.com
Play Defender - Propeller version of the classic game