Jump to content
IGNORED

Donkey Kong Arcade Accurate NES Port


Recommended Posts

I have played that version many times on real hardware (as a repro cart from RetroUSB), and have gotten as far as the fourth loop, and never noticed glitches or otherwise glaring issues. Though I haven't played it in an emulator with save states to see how the progression breaks down at higher levels, however at my current skill level I've never found fault with this port.

 

RetroUSB did a minor bugfix on the bus conflicts issue in the leaked ROM so that it works flawlessly on real hardware. In fact I dumped my RetroUSB repro which has exactly 3 bytes changed from the official dumped ROM, so that is probably where the fix was applied.

 

Sorry. To clarify, I do not mean glitch as in unexpected behaviors,mainly in the added Pie Factory.

 

By glitchy, I meant it is horrible, inaccurate, and incomplete. Don't get me wrong. I was excited to have the extra screen and animation. The problem is that NES version has always been kind of a slap in the face, coming from Nintendo themselves.

I bought an NES, because Super Mario Bros was an amazing port. I was hoping to finally have a perfect DK, DK Jr, and Mario Bros at home. Nintendo struck out. (Although DK Jr was the most faithful of the group.)

The NES DK is way too easy for starters. The gameplay is inaccurate, jumping is off, timing is off, the scoring is inaccurate, and it's missing important gameplay elements.

 

In the "Original Edition", I like that Nintendo added the sequence of Donkey Kong carrying Pauline away, and I appreciate the crappy attempt at the pie factory over nothing at all.

 

However, the pie factory they added is worse than the rest of the already incomplete game. It's also unpolished, in my opinion. The pies flicker to the point of disappearing. (I do play on real hardware) Sometimes they come out side-by-side (two in a row). This doesn't happen in the arcade. If it does, it's a result of the conveyors reversing. It's as if they used an arbitrary random number to release the pies in this version. I have seen more than two in a row, and that's just wrong.

 

The fireball can float right across the oil barrel. That is completely wrong. The umbrella and purse are on the same level? I thought the limit for sprites on the same horizontal level. Why did the programmer place them on the same horizontal level? Maybe there's another reason for that. I just found that odd.

 

I think I figured out why they misplaced the bottom hammer on the ramps. I do not think the programming was in place to deal with the hammer hitting a fireball. That is why the fireballs are limited to the first levels.

This is a real buzz kill too. Nothing beats having 3-5 fireballs chasing you up the ramps level. That's a thrill!

 

My criticism is harsh, because we are discussing how GREAT this new remake is. It is everything that the NES version SHOULD have and COULD have been. Accurate jumps, scoring, etc. It even has the score leaching spots!

Sure, it's not practical for home, being vertical; but my point was mainly to emphasize how crappy the original was, how inadequate the "Original" version's additions were, and how great this new version is.

 

I am basing my comparison off of the arcade version. The NES home version really ruined the arcade version. It made people soft. They want the boring, easy NES version. In their laziness, many will miss out on what made the arcade game great, because they will think the arcade is too hard. That's sad. Having to time a jump perfectly, to jump over one barrel and jump WITH the next one, are the type of thrills that are missing.

  • Like 2
Link to comment
Share on other sites

Sorry. To clarify, I do not mean glitch as in unexpected behaviors,mainly in the added Pie Factory.

 

By glitchy, I meant it is horrible, inaccurate, and incomplete. Don't get me wrong. I was excited to have the extra screen and animation. The problem is that NES version has always been kind of a slap in the face, coming from Nintendo themselves.

I bought an NES, because Super Mario Bros was an amazing port. I was hoping to finally have a perfect DK, DK Jr, and Mario Bros at home. Nintendo struck out. (Although DK Jr was the most faithful of the group.)

The NES DK is way too easy for starters. The gameplay is inaccurate, jumping is off, timing is off, the scoring is inaccurate, and it's missing important gameplay elements.

For the record, arcade Super Mario Brothers used the VS hardware, which is essentially an NES with special bankswitch and rgb ppu.

 

Mario Bros and Ice Climbers NES always had sloppy jumps in the NES versions. There is a little known port of Mario Bros released as PAL exclusive with updated physics and added cutscenes. It has the gold mario emblem from Allstars and "classic serie" on the cover. It's not a typo for scandinavian region it was released in. You can change direction mid jump, and overall the polish is IMO a vast improvement over the original NES port. Playing on NTSC hardware is not a problem, provided you clipped the lockout chip. Audio pitch is a bt sharp though. I've played this version on my NES toaster in NTSC as well as my AVS in native PAL mode.

 

Granted, it is likely actually a WORSE port in your eyes, considering it lets you do stuff not possible in the arcades, like change direction mid flight. But as a child raised in the NES era, it is a VASTLY superior game compared to the original release. I think I got to stage 12-13 or so before the icicles made monkeys out of me. I never even seen the icecicles in the original NES port. :P

 

In the "Original Edition", I like that Nintendo added the sequence of Donkey Kong carrying Pauline away, and I appreciate the crappy attempt at the pie factory over nothing at all.

 

However, the pie factory they added is worse than the rest of the already incomplete game. It's also unpolished, in my opinion. The pies flicker to the point of disappearing. (I do play on real hardware) Sometimes they come out side-by-side (two in a row). This doesn't happen in the arcade. If it does, it's a result of the conveyors reversing. It's as if they used an arbitrary random number to release the pies in this version. I have seen more than two in a row, and that's just wrong.

 

The fireball can float right across the oil barrel. That is completely wrong. The umbrella and purse are on the same level? I thought the limit for sprites on the same horizontal level. Why did the programmer place them on the same horizontal level? Maybe there's another reason for that. I just found that odd.

 

I think I figured out why they misplaced the bottom hammer on the ramps. I do not think the programming was in place to deal with the hammer hitting a fireball. That is why the fireballs are limited to the first levels.

This is a real buzz kill too. Nothing beats having 3-5 fireballs chasing you up the ramps level. That's a thrill!

 

My criticism is harsh, because we are discussing how GREAT this new remake is. It is everything that the NES version SHOULD have and COULD have been. Accurate jumps, scoring, etc. It even has the score leaching spots!

Sure, it's not practical for home, being vertical; but my point was mainly to emphasize how crappy the original was, how inadequate the "Original" version's additions were, and how great this new version is.

 

I am basing my comparison off of the arcade version. The NES home version really ruined the arcade version. It made people soft. They want the boring, easy NES version. In their laziness, many will miss out on what made the arcade game great, because they will think the arcade is too hard. That's sad. Having to time a jump perfectly, to jump over one barrel and jump WITH the next one, are the type of thrills that are missing.

Yeah, I'm aware most complaints are stemmed towards the pie factory level. But as someone who cannot play reliably at higher loop difficulties, it is a vast improvement over the original port. Also if you recall, the US Donkey Kong is even more frantic than the Japan release. Try hovering at the top of a ladder while a barrel crosses overhead. In the Japanese arecade game, you're safe. In he US arcade game, it's suicide. I wish there was an NES ROM for the FDS treatment for Ice Climbers (in the same vein as the PAL exclusive Mario Bros Classic Serie), but I digress.

 

I'm not going to win you over pointing to enhnced arcade ports even less accurate to the original arcade games. Arcade games were designed to frustrate gamers and eat quarters. So the "dumbed down" difficulty of ports isn't necessarlity a bad thing. Besides, there's plenty of "NES hard" games out there if you're a machocist for punishment. Any of the Megaman series for instance. Megaman 2 is the only one I've ever beaten a single robot master without cheating. And the "Rockman 2" Japan got had no "normal mode": hard only... :P

  • Like 1
Link to comment
Share on other sites

I can back up Kosmic on the PAL version of Mario Bros. I've played this one a few years back on the power pak and at the time had compared it to my knowledge years earlier pounding away at the arcade and far more recently via MAME and it's a huge improvement. It's not 100%, maybe 90% as little things maybe NES limitations lack, I don't know. The biggest losses with the shittier graphics on the turtles(etc), the meh jumping, the cool cut scenes, the larger nastier fireballs those properly get their place. It kind of pissed me off they didn't release this on Wii when they decided to give the fans a sandpaper handy with the DK Original Edition.

 

Nice at face value but that cement factory stage is a damned confusing nightmare and kind of hard to follow. In MAME in the 90s (I suck now I'm sure) I got very good at DK, nothing world record good but I could get a score on a normal day between 50-100k which isn't bad so that release threw me as I had hopes and it wasn't nice. That's why I value this one that came out of nowhere by an amateur outsider.

 

I know it'll rub some wrong, really wish there was a crushed mode to fit without flipping a TV but I know that won't likely happen to keep purists happy but it would open the world of the real DK to far more people.

 

 

Hell of a post darryl, I can respect that entirely as I think we feel alike enough on DK and the snowflakes these days who think that the NES game is hard shit. Usually I end up bored and get sloppy on that one or just flip it off when I get enough.

  • Like 1
Link to comment
Share on other sites

For the record, arcade Super Mario Brothers used the VS hardware, which is essentially an NES with special bankswitch and rgb ppu.

 

Mario Bros and Ice Climbers NES always had sloppy jumps in the NES versions. There is a little known port of Mario Bros released as PAL exclusive with updated physics and added cutscenes. It has the gold mario emblem from Allstars and "classic serie" on the cover. It's not a typo for scandinavian region it was released in. You can change direction mid jump, and overall the polish is IMO a vast improvement over the original NES port. Playing on NTSC hardware is not a problem, provided you clipped the lockout chip. Audio pitch is a bt sharp though. I've played this version on my NES toaster in NTSC as well as my AVS in native PAL mode.

 

I really LIKE that port. I actually play it on my NTSC NES. You need to look into an NES Everdrive, if you haven't already. It plays FDS games.

 

Granted, it is likely actually a WORSE port in your eyes, considering it lets you do stuff not possible in the arcades, like change direction mid flight. But as a child raised in the NES era, it is a VASTLY superior game compared to the original release. I think I got to stage 12-13 or so before the icicles made monkeys out of me. I never even seen the icecicles in the original NES port. :P

 

You are correct that I think the controlled jumps RUINED the game. However, the original NES version inertia was improperly executed. I would have liked to have seen the hackers of this version correct the jump, to be more arcade-like. The slippery floors were part of the charm and challenge. As you said, "I am probably not going to win you over...", BUT what I enjoy is better understanding each of our perspectives. I first saw the arcade Mario Bros at a little corner store. It was on the way to my Junior High School, and the games were all set for 2 credits per quarter. My best friend, to this day, lived right next to that store. That's how we met. I LOVE the game. (Which is why I had to snag an arcade cabinet for my home also!) Nothing beats playing 2-players. Sometimes we would play competitive, and sometimes we'd play team. The slippery floors really ADDED to the fun. It's something that NONE of the home ports got right though. In the arcade (unlike the original NES), there was a perfect timing, where one could do a full-force opposite-direction jump. At other times, the inertia of Mario/Luigi could be an actual advantage. There are times where it was necessary to just jump a little. I do think the steering ability taints an AWESOME hack. If only they'd FIXED the jump, instead of making it controlled.

 

Other than the jump, I LOVE the changes to the FDS version. The enemies look right. The cut scenes are present. The shellcreepers jump out of their shells. Mario and Luigi catch fire and freeze. The icicles were sorely missed by me as a child.

 

One reason I was upset with the NES version is that the Atari 5200 version, which I grew up with, contained MORE attention to detail than the NES port. So, 3-years earlier, Atari did it better. Not saying that it was perfect, but it was revolutionary to see all that detail at home, at that time! Many all-nighters were spent playing that with friends.

 

Yeah, I'm aware most complaints are stemmed towards the pie factory level. But as someone who cannot play reliably at higher loop difficulties, it is a vast improvement over the original port. Also if you recall, the US Donkey Kong is even more frantic than the Japan release. Try hovering at the top of a ladder while a barrel crosses overhead. In the Japanese arecade game, you're safe. In he US arcade game, it's suicide. I wish there was an NES ROM for the FDS treatment for Ice Climbers (in the same vein as the PAL exclusive Mario Bros Classic Serie), but I digress.

 

I own an arcade Donkey Kong. I have a switcher in the machine. I have one board for my DK/DKII game, one for DK Jr, and another for DK/DK Remix. Since I don't need two versions of DK US-1 in the same cabinet, I replaced one of the sets with DK Japanese-1. It not only has the hand trick, but it also has the bottom-right warp on the RAMP level. When I host Christmas or other holidays, I set the game for the Japanese version, just so people can warm up to the difficulty. The other plus is that they actually get to play the conveyor belt screen, since it's not delayed until Level 4!

 

The US arcade game is not really suicide. It is pretty easy once "IT" clicks. It does have a randomness that makes it challenging, and occasionally cheap. It's not as cheap though, once you get better. It's kind of like the way one can predict the monsters movements in Pac-Man after a while. Once you get the rhythm of Jumpman's jumps down, it's like turning on the lights. Also, you start to see when a barrel is going to go down a ladder. The game becomes a brand new beast. THAT is what I feel bad that people are missing out on. The NES version feels easier, because it's a slower pace and has less barrels. However, what makes it easier is actually what makes it frustrating and boring at times. It's more random than skill based. There's never that sense of urgency that quick thinking and reflexes can solve. There's never that reward feeling. Instead, deaths occur, because the firefoxes have poor logic and crowd a particular area. Also, deaths occur, because Jumpman can't recover properly after a jump. Mario doesn't even ricochet off of the walls properly in the NES.

 

I'm not going to win you over pointing to enhnced arcade ports even less accurate to the original arcade games. Arcade games were designed to frustrate gamers and eat quarters. So the "dumbed down" difficulty of ports isn't necessarlity a bad thing. Besides, there's plenty of "NES hard" games out there if you're a machocist for punishment. Any of the Megaman series for instance. Megaman 2 is the only one I've ever beaten a single robot master without cheating. And the "Rockman 2" Japan got had no "normal mode": hard only... :P

 

I get what you're saying. Donkey Kong is one of the more challenging games, but it truly isn't "masochistic" once it clicks. I honestly do not go looking for tough games. It's all about the subtle nuances that add value and excitement. True that arcade games were made to eat quarters, but it's not really as extreme as that in the older games. (Not like Gauntlet or Rampage). I do understand where you're coming from. I hated Mr. Do as a child. I thought it was so hard. Being an Atari fan, I thought it was just a cheap rip-off of Dig Dug. Fast forward years later. Somebody gave me a Mr. Do board. As fate would have it, I found an old Asteroids cabinet on Craigslist. It had Mr. Do wiring harness and control panel. They guy only wanted about $150 for it, if I recall. So, I got a monitor and rebuilt this game. Now it is one of my FAVORITES.

 

When I was younger, I would go around trying to kill the enemies or collect all of the cherries. That is the way to die in the first 3 minutes of Mr. Do. Much to my surprise, Mr. Do has a strategy. I set up apple traps, cutting off the enemies. I then collect 8 cherries behind that trap, which gives me 500pts. By that time, there are about 4 monsters standing there. I drop the apple on them to get 6000pts. An average game is now 76,000 to 100,000pts. If I were to try to play it like I did as a child, I would have a score of about 10,000 max.

 

Sorry about the sound in this. I didn't have the best capture software on my work PC. Check this Mr. Do out.... I did this on my lunch, at work, to show a friend. I know it's off topic of DK, but check out how trapping the enemies changes the whole game.

 

Here's a really quick jump that could never be pulled off on the NES version. Check this Donkey Kong out.

 

Finally. Here are a few things that couldn't happen on the NES. I get 100pts, just jumping the first barrel by the oil. Later, I jump away from a barrel, while jumping over it. I grab the hammer, and I still crush that barrel. Later, I sneak 100pts from a blue barrel going down the ladder next to me. All of these nuances are missing from the NES. Check DK out

 

 

 

I can back up Kosmic on the PAL version of Mario Bros. I've played this one a few years back on the power pak and at the time had compared it to my knowledge years earlier pounding away at the arcade and far more recently via MAME and it's a huge improvement. It's not 100%, maybe 90% as little things maybe NES limitations lack, I don't know. The biggest losses with the shittier graphics on the turtles(etc), the meh jumping, the cool cut scenes, the larger nastier fireballs those properly get their place. It kind of pissed me off they didn't release this on Wii when they decided to give the fans a sandpaper handy with the DK Original Edition.

 

Definitely a great update. I was actually impressed with the shellcreepers (turtles), especially due to the animation. I really think this would have been the ultimate if they'd corrected the jump inertia, instead of making Mario controllable.

 

Nice at face value but that cement factory stage is a damned confusing nightmare and kind of hard to follow. In MAME in the 90s (I suck now I'm sure) I got very good at DK, nothing world record good but I could get a score on a normal day between 50-100k which isn't bad so that release threw me as I had hopes and it wasn't nice. That's why I value this one that came out of nowhere by an amateur outsider.

 

Yes! This new version is truly great. It's really cool what this guy has done.

 

I know it'll rub some wrong, really wish there was a crushed mode to fit without flipping a TV but I know that won't likely happen to keep purists happy but it would open the world of the real DK to far more people.

 

I think you're right that it wouldn't happen. I am not an expert on NES programming, but I am assuming that it would have to be a rewrite from scratch. Essentially, this guy converted arcade code to the NES. That means the graphics were all drawn at the same 90 degrees that we have to rotate our TV. They are also drawn to fit in the 256px area, vs the 224px space. I do not know what kind of math it would take to "rotate" that game, but I assume it couldn't be done easily. What is cool is that it sounds like it's an adaptation of actual arcade code, on our home NES consoles.

 

My CRT is tucked away in a nice entertainment stand. I guess I'll have to keep laying on my side to play it on the actual NES hardware. lol.

 

 

Hell of a post darryl, I can respect that entirely as I think we feel alike enough on DK and the snowflakes these days who think that the NES game is hard shit. Usually I end up bored and get sloppy on that one or just flip it off when I get enough.

 

Thanks. To your point, I have a co-worker, who is hesitant to buy an NES for his 4-year old. He says the games are too frustrating. He also claims that the NES games are made to eat quarters. I do feel that today's generation is missing out on some strong foundations. I played a game on my XBOX one. I was running around a forest, looking for these gems or something. I was just playing a huge world of Pac-Man. However, instead of structure and skill, I just needed to follow the story line. Many games today have been whittled down to interactive movies. I really feel badly for them. Even if they were to execute a really cool jump sequence or fake out a monster in Pac-Man, who's really there to share the moment and cheer them on. The days of people standing around, watching, and cheering players on are gone.

  • Like 1
Link to comment
Share on other sites

Huh I don't want to get into a huge quote block so thanks for the answers/replies.

 

I do agree about the inertia in the more proper limited release Mario Bros but it was a huge step in the right way at least.

 

With DK what that guy did maybe it is an arcade code port, whatever it is it's better than anyone probably should expect to see. Given the ability of the NES at a base level, then dealing with resolution like you whenever I get around to trying this I'll just be sitting kind of sideways on my comfy chair to get a somewhat comfortable angle which is far better than nothing at all.

 

Well your friend may be right and wrong, depends on the kid. I've given my little girl access to my stuff supervised for a couple years now and she before winter turned 6. Last year I got her a NES CE and she's pretty decent with the Mario and Kirby games, and I surprised her with the SNES one over Christmas and she has been poking away at Kirby Super Star here and there. She's nowhere near talented or perhaps coordinated at her age to handle either system versions of those games to the end, but she's having fun and slowly inching along so it's possible. Your friend though is kind of an idiot if he feels NES games are quarter eaters. In general, anything but, yet there are enough arcade ports if someone had selective vision that would be a fair statement. I don't really intend to let my kid bother with modern games much at least until later on. For now her fundimentals are the NES and SNES CE (or my real ones), the Gameboy Color I got her, the DSlite my mom gave her she didn't use for DS+gba, and she loves to play a few of my Neo Geo arcade games on standard(lv4 of 8) difficulty as well as real (and digital) pinball. She won't be lacking for real games that aren't snowflaky crap, coining whales, and interactive movies.

 

I've built a mini arcade of sorts in my work/play room of mine and she has access to it with permission (and at this age monitoring.)

  • Like 1
Link to comment
Share on other sites

Like that ever stopped things before. AM2R can be had pretty easily, just not at that guys site. Once it's out there, it'll stay out there. I don't see a reason Nintendo would care as it's still under the radar unless someone directly tipped them off as it wasn't like on Nintendolife.com where they love to be idiots and show off kits, warez, stolen prototypes warezed for sale, and other pet projects where the company would see it within hours.

Link to comment
Share on other sites

  • 1 month later...
The developer of the port here. :) Thanks all for picking up on this project and commenting on it.

I appreciate all the suggestions and criticism, though I'm probably not gonna follow up on any of it, since this was just an unambitious "for fun" project. It literally came out of a conversation with some friends about wether the NES would be technically able to run Donkey Kong accurately. One of the first counter-arguments was that it wouldn't be able to do the same resolution as DK is a vertical game in the arcade, which spawned the whole sideways TV (tate) thing.

I looked into whether there would be any potential issues and deemed that it would definitely be relatively easy to pull off, but I sure as hell didn't want to spend the time doing that. Then one month later I ended up putting this out >_>


The gist of it all, is that this was created to prove what the NES was capable of (in the face of the famously horrible official port), not what I was personally capable of. I don't consider myself a particularly skilled NES programmer. :)

Link to comment
Share on other sites

To address a few of the comments people made:

 

It uses battery backed RAM to save the high scores and perhaps add more RAM to the system, something that no real mapper-less NES cart did with the exception of Family BASIC, which only used 2K or 4K. The save file indicates usage of 6KB of external RAM. Kevtris may not have anticipated this kind of usage.

Yes, I designed the game based on the most basic PCB needed to reproduce the game - not with the intention of replicating existing mappers. The game uses no mappers (which was one of my initial goals), but relies on RAM expansion. My own dev cart is a MMC3 clone though, so I have a MMC3 version of the ROM somewhere if anyone wants it. It's basically the same with some added initialization code and a ton of unused space which I figured would have been stupid to release. :)

Since it's a tate game, a lot of sprites wind up on the same horizontal line, causing a lot of flicker. I kind of wish the developer would have used scrolling instead to alleviate this. Still, it's an impressive effort!

Basically, the idea of making a "tate" version of Donkey Kong for NES was what started this entire project, so that would defeat the purpose. For a serious player, scrolling like that would probably also mess with muscle memory and the perception of the game, and in my opinion it compromises the whole idea of making an "accurate" port.
To put things into perspective, the (at the time) world record holder of the arcade game played around with my version, and apparently there's a small error in the position the "popup points" are rendered at, which was enough to throw him off. Donkey Kong is an insane high precision game.

Most/all of the flicker would be eliminated if they weren't needlessly using sprites for things that should be tiles.

 

It's not really needless. The only remaining items you could theoretically convert into background tiles would be 1. the barrel stack, 2. the oil can, and 3. Parts of Donkey Kong's body on non-conveyor screens.
All of those would introduce issues though. The exact alignment of their position would cause a lot of issues not only with what graphics can be used, but also palette usages. And once again, moving them around would compromise the entire idea of the port (see above).
A large part of Donkey Kong (who is also our main offender) could be converted without too much issues, but it would require a lot more unique graphic tiles and introduce extra graphics banks and a lot of bank switching into the code. I might consider doing it at some point, but as of now it's outside of the scope of the project.
Btw, playing the game on a real CRT, I don't think the flickering is really much of an issue. But it's a lot more obvious on a LCD screen - and in a 30hz recording, it's completely awful.

Regardless, great job by the developer translating the Z80 to 6502. Additionally, a smart move utilizing samples for Kong's laugh and the bass booms. A very nice touch and hallmark sounds of the Arcade original.

 

Thanks for noticing this! :) Those two samples use up a ton of ROM space, but I considered them necessary.

Does this game have a Japanese stage order option? I always preferred playing that version.

 

During development I did include the option to completely customize the stage order, it was snipped out to fit everything in a single PRG bank eventually. It should actually be very easy to hack the rom to put in the japanese stage order. :)

I suspect, however, that converting this to a horizontal monitor would be a complete rewrite.

 

Actually not really! I avoided messing too much with the original routines (which causes a lot of performance overhead, but not enough to cause slowdown anywhere), so the game literally converts horizontal sprite coordinates to vertical right before rendering them, and adding a setting to change that would be absurdly easy.
Even for the background tiles, I'm using a huge RAM buffer (part of what the cartridge RAM is used for) to avoid messing too much with the game's original routines (it reads from video RAM during screen rendering, something the NES isn't able to do), so even if that's a bit more complex, it shouldn't be too much trouble to convert that data when moving the buffer to the NES's video RAM.
Of course all the graphic tiles would have to be rotated though, which I would imagine doing with bank switching to enable the choice of "yoko" and "tate" settings.

:sad: Hopefully not a C&D thing? :sad:

 

No C&D. My video is still up there as far as I can tell, and I haven't heard anything from Nintendo.

I watched the long video from the NES forum post, and it looks like the game mechanics are spot on. The programmer said he converted the Z80 arcade code to 6502. This is very interesting to me because I have been curious if the arcade code, which runs in a 60hz loop, could be directly ported on a 6502 machine while maintaining the same loop time.

 

Doing this port really opened my eyes to how effecient the 6502 can be at certain things compared to other processors. I didn't really do a lot of optimization, as I wanted to make sure the original logic was kept completely intact, but a lot of iterating through 16 bit addresses was done much more effeciently on the 6502 than the original Z80 code, despite the latter's 16 bit registers. In general most instructions also simply only use half as many cycles as the Z80 equivalents. That said, the original arcade code isn't particularly nice in the first place, and it is very obvious it was created by at least three different programmers (a lot of redundancy, and wildly different ways of doing the same things), not counting the leftover code from Radarscope.

Edited by Sumez
  • Like 3
Link to comment
Share on other sites

Thanks for popping in after all this time with those responses as they do answer some questions we had here and really gives an idea of what you were working with and shooting for in the end as it appears you even exceeded your original intent going as far as you did with it.

Link to comment
Share on other sites

Doing this port really opened my eyes to how effecient the 6502 can be at certain things compared to other processors. I didn't really do a lot of optimization, as I wanted to make sure the original logic was kept completely intact, but a lot of iterating through 16 bit addresses was done much more effeciently on the 6502 than the original Z80 code, despite the latter's 16 bit registers. In general most instructions also simply only use half as many cycles as the Z80 equivalents. That said, the original arcade code isn't particularly nice in the first place, and it is very obvious it was created by at least three different programmers (a lot of redundancy, and wildly different ways of doing the same things), not counting the leftover code from Radarscope.

 

I'm very interested in your work. I'm working on a D2K port for the Atari 7800 right now, horizontal display, so I'm pretty deep into the arcade code. I'm going to finish up the graphics code before getting into the Z80 conversion. I'm pretty much keeping the arcades RAM layout as is, with my graphics code building the 7800 display from the 4 byte sprite data in RAM. I'm a little concerned I'll have enough time left to do all the game logic so I'll be optimizing as much a possible as I convert the Z80 to 6502. I have a lot of ROM space at my disposal so my graphics code is making heavy use of tables for things like coordinate conversions, and other optimizations to make it as fast as possible. For example, stationary animated objects, like oil can fire, Kong and the girl can be written to the display very quickly with their own optimized code vs. moving objects that take more processing. I'm trying to keep the 60hz frame rate, but can always fall back to 30hz for screen updates, while the main code runs at 60.

Link to comment
Share on other sites

I'm a shmup player myself, so tate'ing is natural to me as well :) But the reception to the port has been funny in that regard as a lot of people who aren't used to it find the idea of putting a CRT on its side absurd.

 

I'm very interested in your work. I'm working on a D2K port for the Atari 7800 right now, horizontal display, so I'm pretty deep into the arcade code. I'm going to finish up the graphics code before getting into the Z80 conversion. I'm pretty much keeping the arcades RAM layout as is, with my graphics code building the 7800 display from the 4 byte sprite data in RAM. I'm a little concerned I'll have enough time left to do all the game logic so I'll be optimizing as much a possible as I convert the Z80 to 6502. I have a lot of ROM space at my disposal so my graphics code is making heavy use of tables for things like coordinate conversions, and other optimizations to make it as fast as possible. For example, stationary animated objects, like oil can fire, Kong and the girl can be written to the display very quickly with their own optimized code vs. moving objects that take more processing. I'm trying to keep the 60hz frame rate, but can always fall back to 30hz for screen updates, while the main code runs at 60.

 

Yeah lots of weird wasteful code like that in the game! I didn't spend too much time optimizing that stuff, as I had plenty of CPU time left over, and cartridge space was much more of an issue to me. There is however a ridiculous amount of redundancy in the code, and like you're pointing out, the code to move the big metasprites around is really weird, as it tends to almost always place them in the same areas. It feels like they were intending to do a lot more with the game than what we ended up with. That goes double for the stages. The game is coded to support a ton of different possible screens with very little added overhead in storage space or anything else, yet the game ended up with only four different ones (five counting the intro animation).
Getting a deep look into the code of a classic arcade game was definitely one of the most interesting parts of this project for me. I used this disassembly as a reference almost the entire way.
There's a lot in there that isn't too well documented though, or downright wrong, as well as some stuff that whoever commented it never bothered figuring out, such as what the physics algorithm does. If you need help identifying the purpose of some variables or code blocks, feel free to ask away. :) Don't know anything about D2K's code, though.

  • Like 3
Link to comment
Share on other sites

I used this disassembly as a reference almost the entire way.

This disassembly has been extremely useful to me. The disassembly originated with Don Hodges, though it looks like it's been updated a bit. Don gave me his disassembly back in 2012 when I was working on Donkey Kong XM for the 7800. I also found a few errors and a fair amount of missing details. I use my personal copy for reference now. D2K has a lot of additional code with the extra 4 screens, but it's built off the original, so has a lot in common.

 

http://donhodges.com/Controlling_the_barrels_in_Donkey_Kong.htm

Link to comment
Share on other sites

@Sumez, thank you for your insight into developing this game. Another issue some people have expressed (besides rotating the monitor as many late crt models do not have the rectangular enclosures necessary to set them on their side, or the yoke shifts leading to color impurities) is that the ROM is mapper 0 format with sram flag enabled, a configuration almost no games supported. Most emulators handle this fine but it seems to have issues playing on some flash carts or jailbroken nt minis. Another similar situation is mapper 0 32kb homebrews that used chr ram for graphics. This wasn't supported under mapper 0 either but could sometimes be simulated using one of the discrete mappers set to 2 prg banks.

 

Something to think about where releasing a padded rom assigning a slightly more complex mapper might fascilitate repro or flash cart use.

 

I'd love to play this on my avs/powerpak with "extra sprites" option toggled, should help with the flicker.

Link to comment
Share on other sites

Hey Kosmic. Check out the first quoted response in my post further up, where I address this. I wanted to keep the game as simple as possible, hardware wise, but ended up using save ram since it helps with making collision detection work like in the original arcade code, as well as saving the high score list.

Saveram on the cartridge has absolutely nothing to do with the mapper chip, so it's kind of stupid that flash carts don't support it. "Mapper 0" is an emulator concept (as are all the mapper numbers) and really just means that the game doesn't use a mapper.

 

I can send you a MMC3 version of the game if you're interested.

Link to comment
Share on other sites

Hey Kosmic. Check out the first quoted response in my post further up, where I address this. I wanted to keep the game as simple as possible, hardware wise, but ended up using save ram since it helps with making collision detection work like in the original arcade code, as well as saving the high score list.

Saveram on the cartridge has absolutely nothing to do with the mapper chip, so it's kind of stupid that flash carts don't support it. "Mapper 0" is an emulator concept (as are all the mapper numbers) and really just means that the game doesn't use a mapper.

 

I can send you a MMC3 version of the game if you're interested.

 

I might have missed something. Is there a rotated version available for the NES that doesn't work on flash carts? I have played the regular version on my NES & Everdrive. I had zero issues, other than a little kink in my neck! ;)

Link to comment
Share on other sites

  • 3 years later...

I just played this again this morning and it’s such an amazing port.  With the sprite limits turned off this game is so close to the original.  Has the member who created this done any other Tate mode projects?  Also,  Simone mentioned that there was a Tate port of Pac-Man for the nes as well.  Does anyone know where the rom may be available for that?

Link to comment
Share on other sites

On 3/8/2018 at 11:24 AM, tep392 said:

I'm a little concerned I'll have enough time left to do all the game logic so I'll be optimizing as much a possible as I convert the Z80 to 6502. I have a lot of ROM space at my disposal so my graphics code is making heavy use of tables for things like coordinate conversions, and other optimizations to make it as fast as possible. For example, stationary animated objects, like oil can fire, Kong and the girl can be written to the display very quickly with their own optimized code vs. moving objects that take more processing. I'm trying to keep the 60hz frame rate, but can always fall back to 30hz for screen updates, while the main code runs at 60.

Officially confirmed, the 7800 can do 60fps with original arcade code converted from Z80 to 6502.  ;)

Link to comment
Share on other sites

  • 1 year later...

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...