Jump to content

WIP - Castlevania 2

Rabbit 2600

Recommended Posts

Currently doing a graphical hack of Donkey Kong, turning it into a sequal of my Castlevania Hack.

What I've done this far:

Changed Jumpman into Belmont

Changed barrels into Spiders.


What's left?

Turning Donkey Kong into Dracula

Turn the fireballs into a Castlevania themed enemy

Changing the princess sprite

Changing the colors



  • Like 1
Link to comment
Share on other sites

You really ought to look at disassemblies. Debro reverse-engineered this game, and explained what it is doing in plain english for most all of it.


To save time, the first 2 bytes of the sprite are "hard-coded" if a non-climbing character frame is needed there.


$F776 = first byte of non-climbing character ($1C). An unconditional branch follows...so if zero is used as the first byte, $F777 should be changed from $D0 (BNE opcode) to $F0 (BEQ opcode) or $10 (BPL opcode).


$F79B = second byte of non-climbing character ($7E).

Link to comment
Share on other sites

The one by Dennis Debro :P


Anything by him, Thomas Jentzsch, or Manuel Polik is commented with more information than anybody could possibly use ;)


If you don't feel like weeding though disassemblies, even Stella's debugger can point out where such things occur:


When emulating a game, press the tilde key (directly below Esc) to break into the debugger when it happens and is onscreen. In the upper-left corner, right-click the picture just above the problem area and select "fill to scanline"...then use the +scanline and trace buttons to step though the code and pinpoint the spot in question. You'll notice that a little white marker will appear in the picture window and will be moving as cycles are used within each scanline (the area below and left of the marker will remain uncolored until the marker reaches it...so you can spot precisely where the image is changed within the program window shown on the right of the debugger. All register values and ram contents are also onscreen in case you need to know where an indirect or romtable value is coming from.

Link to comment
Share on other sites

Stella (emulator/debugger) is not Distella (disassembler) ;) The latter also has nothing to do with what I posted.


But since you brought it up...

That's because you are not supposed to click on the .exe of Distella.

It was made when DOS commandline was still widely used for non-commercial apps...and it expects that "switches" and "paths" are specified at runtime.



distella -pafs pacman.bin > pacman.asm


Modern versions of Windows still retain the ability to use commandline. You can find it as "show command prompt" in the accessories folder of Windows 7, for example...or by creating a .bat file that contains the text of such commandline instructions to do it for you. Needless to say, Win98 compatability mode and folder permissions need to be in place.

Link to comment
Share on other sites

Stella (emulator/debugger) is not Distella (disassembler) ;) The latter also has nothing to do with what I posted.


And just to make things more confusing :) The disassembled output you see in the Stella debugger is Distella output (the Distella disassembler is built into Stella).

Link to comment
Share on other sites

  • 3 years later...
  • 4 years 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.

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.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...