Wednesday 6 November 2013

Neo Kong - rendered

I've managed to put together a C program to render the Donkey Kong tilemap on the Neo Geo display, with the correct palette!

I started with the Neo Thunder source code, and after a hiccup with displaying sprites, I've got some rather hastily hacked-together source code that does the job. The stumbling blocks were defining palettes and tilemaps in the source code, as opposed to having the graphics tools create them for you automatically. But the upshot is, once everything is setup properly, the entire screen can be rendered as a single sprite.

The demo has two (2) modes of display; one shows 1:1 pixels and can be scrolled up/down to see the entire screen, the other scales the screen to the Neo Geo display. It looks a little less than awesome, but it's still playable. It should be possible to tweak the sprite graphics to have it looking as good as Sockmaster's Donkey Kong on the Coco, as in theory the scaling algorithm is deterministic and well documented.

Scaled display on the Neo Geo under MAME
Note that there will have to be some algorithm for scaling Donkey Kong sprite positions on the display. Or I could cheat and define 16 versions of each sprite (there's plenty of ROM space), and build maps that are scaled in the same way that the background is. Either way, I think that this is good enough to prove at least that Donkey Kong is viable on the Neo Geo.

Next step is to actually start on the port which will, of course, be 100% assembler.

7 comments:

  1. Good job so far! I'm looking forward to seeing more of your progress! One day I'd like to do NeoGeo dev after I'm satisfied with my Genesis dev :)

    ReplyDelete
    Replies
    1. Hopefully a lot of your Genesis stuff can be ported across! ;)

      Delete
  2. GREATH!!! I'm working for a Z80 PHOENIX emu into NeoGeoCD but I have difficult in gfx rendering, can you hel me? NGCD Phoenix Emu --> http://www.neogeocdworld.info/ Cio BEY www.IoCero.com

    ReplyDelete
    Replies
    1. I was considering doing an emulator myself but wasn't keen on programming a CPU core for 68k... I do know of an 8080 core though... MAME claims that Phoenix is 5.5MHz (which I find hard to believe) - I'm not sure how you're going to emulate that on a 12MHz 68K...

      I couldn't find any info on your emulator!?!

      What sort of problems are you having with rendering? Keep in mind that I've only written a single program a few days ago, so I'm no expert!

      Delete
    2. This comment has been removed by the author.

      Delete
    3. Uou can find my emu info here -->http://www.iocero.com/eventdetail.aspx?idevent=27312 The core now work but is not optimized. Can I have your email for talk about it? My email is: cristiano.bey@gmail.com Ciao A presto!! THX !!!

      Delete
  3. This comment has been removed by the author.

    ReplyDelete