A new and improved Donkey Kong port

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

User avatar
Sumez
Posts: 919
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

A new and improved Donkey Kong port

Post by Sumez »

Put this video up yesterday, and completely forgot about sharing it here. :)

It's a little hobby thing I've been working on recently. Not too creative, since I've just been translating an existing game to the NES, but I started this after a drunken conversation with my friend about how much the original NES version of Donkey Kong sucks, and whether it would be possible to actually run an accurate version of the game on the NES hardware, playing exactly like the arcade original.
My claim was of course, that if you rotate the monitor like a lot of shmup ports tend to do, you could replicate the gameplay with 100% accuracy, but it would be a ton of work and there's no way I'd ever want to bother with it.

...Less than a month later I have a fully working release as shown here >_>

Image
https://www.youtube.com/watch?v=dhRoe44Dg54

Not sure if it's "safe" for me to share the ROM file, since it's messing with Nintendo's property, but I just wanted to share the result with you guys.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: A new and improved Donkey Kong port

Post by FrankenGraphics »

That's pretty cool!

For one thing, portrait/upright screens means quite a big change to how the 8 sprites per scanline rule works in practice, and the looks would be different of any game due to the pixel assymetry being the other way around.

One word of warning, though - screens may overheat if they don't have venting holes facing up. For a permanent installation, i'd drill some holes or make a new chassi.
User avatar
Sumez
Posts: 919
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

Re: A new and improved Donkey Kong port

Post by Sumez »

CRTs usually have venting in the back, so that's rarely an issue. In this case, all I was blocking off was a speaker.
If you're into shooters, rotating your screen like this isn't a foreign concept, commonly referred to as "tate mode" (I'm actually surprised I haven't seen any other NES or SNES homebrews with a tate mode), but it's a good idea to unplug it for 10-15 minutes before turning it on, just to avoid the magnetism causing weird colors. I've done it a billion times in the past with the same TV.

The original DK arcade game was created for this orientation, with roughly the same resolution (as you can see the graphics go all the way to the sides of the screen - arcade games didn't have to think about overscan), which is why this version looks like it should, while Nintendo's original NES/Famicom port looks horribly stretched. :)
You're obviously right about the sprites per scanline limit, which was actually my biggest issue, since the game likes to have stuff above eachother, such as the rivet screen where Pauline is right above Donkey Kong, and a hammer spawns below him. There can easily be a few firefoxes and a Mario down there, too, turning the game into flicker central :P I don't think it looks that bad on a CRT though, and if you've played stuff like Batman Return of the Joker, you're used to it ;)
On the elevator screen I had to turn to some pretty creative solutions to avoid the flickering being too bad on the left column of elevators though.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: A new and improved Donkey Kong port

Post by tepples »

Sumez wrote:the game likes to have stuff above eachother, such as the rivet screen where Pauline is right above Donkey Kong, and a hammer spawns below him. There can easily be a few firefoxes and a Mario down there, too, turning the game into flicker central :P
Firefox is flicker central when Discordapp.com makes changes to its web app and doesn't test them thoroughly in anything but Google Chrome. (Source: reddit)

Where did you get that name for the fireball enemies in 100m? As far as I can tell from MarioWiki, only Atari came up with that name. The different-looking fires in 25m seem to be called Trouble Bugs.
User avatar
Sumez
Posts: 919
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

Re: A new and improved Donkey Kong port

Post by Sumez »

"Firefox" is the common word used by most Donkey Kong players. Probably taken from the atari version, I guess?
"Pie factory" obviously isn't the official name for the screen with the cement trays either, but it's what everyone calls it. :)

They are technically exactly the same as the flame enemies on the other stages, just with a different sprite.
EDIT: Oh yeah, the game also sets the hitbox a pixel larger when initializing the stage, making them harder to jump over, I guess? The other thing mentioned on the page you're linking to is dead wrong, though. They never multiply, they just spawn on a random platform opposite to the one Mario is standing on. The common strategy is to save the bottom hammer until you're done with the left side, so that any enemies you kill while going right will respawn on ther other side where they can't get to you.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: A new and improved Donkey Kong port

Post by FrankenGraphics »

I didn't react to "firefox" because it has a very familiar ring to it, idk from exactly where but it's definitely mario universe. Something from the childhood.
JRoatch
Formerly 43110
Posts: 422
Joined: Wed Feb 05, 2014 7:01 am
Contact:

Tate mode in NES

Post by JRoatch »

Sumez wrote:CRTs usually have venting in the back, so that's rarely an issue. In this case, all I was blocking off was a speaker.
If you're into shooters, rotating your screen like this isn't a foreign concept, commonly referred to as "tate mode" (I'm actually surprised I haven't seen any other NES or SNES homebrews with a tate mode), but it's a good idea to unplug it for 10-15 minutes before turning it on, just to avoid the magnetism causing weird colors. I've done it a billion times in the past with the same TV.
So for the NES shmup I've been trying to design calls for a 3:4 ratio in vertical orientation (Mainly for gameplay structural reasons). I've considered tate mode as the scanline limit would nicely align with the bullet stream, but I worry that there would be no motivation for the common person to physically rotate their TV set. It's barely possible with emulators by having the OS rotate the entire screen.
I'm currently considering pillarboxing the already low resolution of the NES, That would somewhat help with the bandwidth of the background animations.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: A new and improved Donkey Kong port

Post by FrankenGraphics »

I guess you could hook up an NES to a flat screen and orient it however you like if placed on a table.

One of the most interesting screen configurations i've ever seen was at the soviet arcade museum filial in st:petersburg. It was mounted flat down like a board game, and a wheel and a foot pedal (and maybe a brakes pedal iirc... there was some means for braking anyway) was mounted in each corner on the broad sides. The wheels were stepless and infinite (i think they must've measured the delta-velocity).

It was basically a free-range obstacle course racer with a capture the flag element. The cars would wrap around the screen. 100% addictive with a full party of 4 players competing for the flags. (Hm... maybe i'll attempt a simple port-from-memory one far-away day when i have fewer project involvements...)
User avatar
gauauu
Posts: 779
Joined: Sat Jan 09, 2016 9:21 pm
Location: Central Illinois, USA
Contact:

Re: A new and improved Donkey Kong port

Post by gauauu »

Sumez wrote: ...Less than a month later I have a fully working release as shown here
Holy cow, that's fast. I'm impressed. Well done, it looks really great.
User avatar
gauauu
Posts: 779
Joined: Sat Jan 09, 2016 9:21 pm
Location: Central Illinois, USA
Contact:

Re: Tate mode in NES

Post by gauauu »

JRoatch wrote: So for the NES shmup I've been trying to design calls for a 3:4 ratio in vertical orientation (Mainly for gameplay structural reasons). I've considered tate mode as the scanline limit would nicely align with the bullet stream, but I worry that there would be no motivation for the common person to physically rotate their TV set. It's barely possible with emulators by having the OS rotate the entire screen.
I'm currently considering pillarboxing the already low resolution of the NES, That would somewhat help with the bandwidth of the background animations.
The dreamcast version of Ikaruga had a menu option to play in tate mode or normal mode (pillarboxed)

Iterating on that idea, you could possibly design the game primarily for tate mode, but with a menu option that rotates just the controls and any text, so that the game can be played horizontally as well? That way you don't have to sacrifice your design goals, but you can still make it accessible for the common folk?
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: A new and improved Donkey Kong port

Post by Bregalad »

Sumez wrote:It's a little hobby thing I've been working on recently. Not too creative, since I've just been translating an existing game to the NES, but I started this after a drunken conversation with my friend about how much the original NES version of Donkey Kong sucks, and whether it would be possible to actually run an accurate version of the game on the NES hardware, playing exactly like the arcade original.
My claim was of course, that if you rotate the monitor like a lot of shmup ports tend to do, you could replicate the gameplay with 100% accuracy, but it would be a ton of work and there's no way I'd ever want to bother with it.
But does your port use more than 16KB of PRH-ROM ? Remember that for Nintendo it might have been unacceptably costly to use 32KB at the time.

Also you couldn't expect people to rotate their TV by 90° at home, obviously ^^

I seemed to recall that the original had 4 levels and the NES port only 3 levels (which is way worse than graphics resolution changing as a change), however I only see 3 levels in your youtube video.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: A new and improved Donkey Kong port

Post by rainwarrior »

This is awesome, Sumez!

Bregalad wrote:I seemed to recall that the original had 4 levels and the NES port only 3 levels (which is way worse than graphics resolution changing as a change), however I only see 3 levels in your youtube video.
The pie factory is in there. Skip to ~8mins. It doesn't appear in the first few loops, but that's how it was in the arcade too.
User avatar
Sumez
Posts: 919
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

Re: A new and improved Donkey Kong port

Post by Sumez »

gauauu wrote: Holy cow, that's fast. I'm impressed.
Having a completely developed game working already helped immensely. :P
The bulk of the work was just translating Z80 instructions over to 6502. Pretty boring work, but I enjoyed seeing the entire insides of the original game as I did it, and some times I had to get a bit creative with the 6502's advantages (X/Y indexing mostly) over the features it lacks (16 bit registers). But the most original work came from dealing with the hardware limitations of the NES, and balancing compromises against what I felt was essential to retaining a completely accurate arcade experience.
Bregalad wrote: But does your port use more than 16KB of PRH-ROM ? Remember that for Nintendo it might have been unacceptably costly to use 32KB at the time.
It's 32KB, though a large part of it is used by two samples, the DK grin and the boom sound, which I felt needed to be DPCM samples to respect the arcade version.
The idea was never to build a "better version" using the same hardware limitations, and I also ended up using ekstra work RAM from the cartridge, though this is mainly because of #1. I wanted the game to remember high scores, and #2. The arcade game does collision detection by reading from the "nametable" in video memory, something the NES obviously can't while drawing a screen, so I opted to use work ram to buffer the entire video memory of the arcade game. I could probably change a lot of things to work around it, but it was more important for me to have the game logic work as close to the original game as possible.

However, I'm pretty happy, and relieved, that I was able to fit the game's graphics (which has a lot more potential space in the arcade game) into a single 8KB CHR-ROM without using any bank switching. It's extremely tightly packed. :P
I seemed to recall that the original had 4 levels and the NES port only 3 levels (which is way worse than graphics resolution changing as a change), however I only see 3 levels in your youtube video.
rainwarrior wrote:The pie factory is in there. Skip to ~8mins. It doesn't appear in the first few loops, but that's how it was in the arcade too.
Exactly, rainwarrior :) The original stage sequence is "barrels"->"pies"->"elevators"->"rivet", but the US arcade release changed it around so the pie/cement factory and elevator stage were both skipped on the first level, and only added on the third and second levels respectively. As you'd get further into the game, barrel stages would also appear every second screen, as they are the hardest.
While working on the game, I got to try the level 1 versions of both the pie factory and elevator stage, and those are extremely easy compared to the other screens, so I can honestly understand why they changed it, even though the new stage order makes very little sense.
In general, the US final revision of the game is considered the true competitive version of the game, and with good reason.
User avatar
thefox
Posts: 3134
Joined: Mon Jan 03, 2005 10:36 am
Location: 🇫🇮
Contact:

Re: A new and improved Donkey Kong port

Post by thefox »

Very cool!

I'd throw the ROM up somewhere. The worst thing that can happen is you might get a C&D (but even that seems unlikely).
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
User avatar
Sumez
Posts: 919
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

Re: A new and improved Donkey Kong port

Post by Sumez »

The ROM is available here

When I make future changes (provided I dodge a C&D as I'm going) I'll update the file in that URL.
Post Reply