Castlevania 3: Dracula's Curse Editing Information

Started by Morinis, February 22, 2016, 01:18:53 PM

Previous topic - Next topic

Morinis

I am going to be making a detailed documentation on Castlevania 3: Dracula's Curse on the NES the best I can since seeing there is hardly any information out there about this game.  This topic will cover every in's and out's concerning this game.  I give thanks to SunGodPortal for suggesting this thread to be made.

As I am a beginner in hacking I will be giving off information on what I currently know and future discoveries about editing Castlevania 3 by hand along with a reVamp video tutorial later on down the road.  I will continue to update this from time to time so please bear with me.  I'll add a date and time when I updated this post along with the time I have to stop to tend to things in real life.

I understand that I can make a document about this but felt this needs to be a collaboration effort with the community so that way others who wish to contribute their own information about Castlevania 3: Dracula's Curse is more than welcomed to pitch in at their leisure.

This post layout will change in time to be more formal as right now I'm throwing stuff together to get this topic started.

If possible I would like to try and keep the active chat down to a very minimal within this thread so others information isn't back logged by tidbits.  If any questions arise please send me a PM to me or the others that post their contributions to this thread as everyone information may differ from one another.  I appreciate and thank you for the understanding.

Since I will be constantly referencing reVamp like the plague, I want to give credit to +daniel+ , the creator or reVamp.  His utility can be found here http://www.romhacking.net/utilities/473/.
I am also going to credit YY as they are the maker of YY-CHR.  Their utility can be found  here http://www.romhacking.net/utilities/119/


By the way, in time I will also add information and references for Akumajō Densetsu as most things are somewhat similar but not 100% the same.  When I add that information this section stating about it will be deleted for as of right now I will be focusing on Dracula's Curse.





YYCHR Info

To avoid any confusion, I shall start off with the utility YYCHR and of how YYCHR reads out for Castlevania 3 and reVamp.  YYCHR consists of mainly 32x32 pixel areas for the ROM as of how the box will display over the game's sprites.  Within these areas breaks down to smaller 16x16 areas then 8x8 sections.  An example of these little 8x8 sectioned areas is those steps that you see within Castlevania 3 to go up and down on with your playable character?  Those are within these little 8x8 sections.  The main majority of Castlevania 3 heavily relies on these little areas.  Do take note that whatever blocks are within the game, or whatever you can walk on for a solid ground, has to be your platform to traverse across.  If you put your ground graphics someplace else it won't work as the game will think that is a new background image to use and will use it respectively in whatever you originally replaced.  No matter what, you MUST find on where the ground platform blocks are at within your game or all hell will break lose.  You will have to follow on what the original programmers put out before while editing the graphics.  Some stuff you can get away with but other stuff like the solid block platforms must rely on the same area as if you move them then things will get scrambled up and reVamp may not recognize your ROM and take it for something else which will prompt you in this sort of thing.

If you do not know on what a pixel is I shall explain on what that is.  A pixel area are those tiny blocks that make up the graphics within the older games like the Nintendo Entertainment System, Super Nintendo Entertainment System and Sega Genesis for examples.  If you pick a color within YYCHR to edit your stuff and click a singular spot that makes a square, that is a pixel.  Pixels rely on what color you select as that is 'hardwired' into the game.  So say you edit something and looks completely hashed around that means  you didn't use the appropriate colors.  Of what I use is the darkest color for the dark areas and the brightest for the bright.  Other games like Super Nintendo will have the same setup but more to choose from as the NES relies on 3 base colors and one.  Say if you took Link from Legend of Zelda and put the dark colors over the bright then it will look odd as then you'll probably hex edit the colors around to appropriately match on what you designed.  Now if you do this and something out there in the game uses the same palette then that will be screwed up as you've edited that differently by using bright over bright and dark over dark on that sprite.  Castlevania 3 is the same exact way with palette values as I'll go over this in detail in the next section.



-Color Palettes-

I will base this information around reVamp along with hex editing on what I have discovered.  This information can also be used as a heads up for other NES games as they share darn near close similar stuff as other games though it all depends on what company made what and who programmed this and that.


Certain color palettes within Castlevania 3 are shared across the game to help reduce lag and memory usage to help the game play and flow better.  Too much on the screen can cause serious lag and even make it crash.  An example of a color palette is show below.

*Sprite Color OF OF 22 34 (as seen on reVamp)

This hex value is used for Trevor's sub-weapons along with parts of his second and third power up whip animation, Trevor's base leather whip, Sypha's weapon, blue skeletons and blue skeleton whips, Medusa heads, mummies, skeletal sword, knight, axe knight, harpies, bone pillars, bone dragon, hard mode knight and hard mode flying skulls.

If you are to edit the items and creatures in YYCHR please take color palettes into consideration as things will greatly change from one objects color to another.  To simply put, if you edit a blue skeleton on the first level and then later edit the Medusa head in another level the colors will change through everything that relies on that hex value.  It can be possible to change the routes of what enemies rely on which hex values that gives them their color but I advise caution as it may cause unknown bugs so plan out your enemies first before doing anything else especially around their environment.  Color is always key to paying attention to things.


Title Layer Editing

You cannot find this within reVamp so this section will be all about YYCHR and hex editing.  I will add info later about the opening intro and animation sequence as I will dissect those at a later date.

Some people may have a hard time finding the info concerning the title within their editors.  The title layer shares some hex values with each other but only 2 of the palettes do this.  The hex values are:

OF 13 02 20
OF 16 05 20
OF 14 03 3B
OF 16 27 10 - Konami and Logo

To get a better example on where everything is, the left picture breaks down where stuff is at.  Of course the colors are not exact to the original but just to give that general idea across.



You will notice a distinct difference between the YYCHR and title screen.  Those blocks that you see are the areas which you cannot put nothing in due to how the original programmers made the title screen and how it functions in the opening movie.  Another thing to point out is the C in Castlevania relies on a small area for its top and bottom which is bizarre on how they programmed it but of course it has to do with something on making room within the title screen which the programming is beyond me right now.  One could definitely 'rewrite' the directory for a wider horizon to mess with on the title screen but that may involve with rewriting a lot of the opening sequence.



[Typing on this thread response has stopped on 5:50pm GMT on 2/22/2016 as this is the recent update.  Info may change around to collaborate more precisely as these notes will forever change as they will be added on to until I find it complete on my part.]
ROM Hacker, Reviewer and Critic.

Don't Know What Else To Say So... <3 You!

SunGodPortal

#1
Here are a few of the RAM addresses I've identified so far.

  $32 Stage
  $33 The section of the stage you are in
  $85 Trevor's sub-weapon
  $86 Partner's sub-weapon
  $87 Trevor's sub-weapon power-up level
  $88 Partner's sub-weapon power-up level
  $8E Trevor's whip level
  $8F Partner's weapon level

I've had a hard time nailing these next few down. Their use appears to vary depending on the circumstance but here's a basic idea of some of their uses.

  $01 screen scroll Y position, jumping: player's current "ground level" and distrance from it when still in air
  $02 screen scroll X position
  $11-$16 seem to relate to player movements (GFX even?), their X/Y coordinates, proximity to screen scrolls and possibly other things, etc.

The rest were found on Data Crystal. I removed one that I knew to be false ($32). I haven't veryfied all of them but I know most are true.

  $19 Menu Mode (meaning depends on menu, i.e. title screen, password entry, game over, etc)
  $28 Controller 1 Pressed
  $2A Controller 1
  $35 Lives   
  $36 Score 0000xx   
  $37 Score 00xx00   
  $38 Score xx0000   
  $3A Partner  00 = None; 01 = Syfa; 02 = Grant; 03 = Alucard
  $3C Energy 
  $68 Menu selection (Start/Password or Continue/Password)
  $7E Time 00xx   
  $7F Time xx00   
  $84 Hearts
  $F8 Controller 1 Pressed (same as 28?)
  $FA Controller 1         (same as 2A?)


Address    Size    Description
--------   ----    -----------
$0200      $100    OAM (sprites)

$0790       $10    Password data (populated during password entry)
$07A0       $10    Password data (for display on game over)
$07F8        $8     Player name

-----------------------------------------------------------------------------

The stage locations were the ones I was most interested in. I found them to be pretty useful for testing too. Once a level is started (any level), if you know the numbers that correspond to the area you want to test, you can type them into $32-33 and then put some zeros into $7E-7F. That will cause the timer to immediately run out and when you respawn you will be in the area that corresponds to the values you put into $32-33.

By playing with the sub-weapon values I've come to the conclusion that any character can use any sub-weapon but the graphics that will appear are directly related to currently selected character. I'm guessing that is why Alucard has so few sub-weapon options: the sub-weapon graphics are loaded with the character tiles and he needs those extra slots for his bat animations.

Well, that's all for now.

-------------------------------------------------------------------------------------

EDIT: Oh wow. I just found this blog entry from a few years ago and the sheer volume of Castlevania III info in it is staggering. This dude was hardcore. It is going to take forever to comb through this.

Castlevania III RAM and ROM offsets
Cigarettes, ice-cream, figurines of the Virgin Mary...

Sephirous

Wow, That link that takes you to that guys page is incredible.

Unfortunately I don't think I will be able to make sense of any of it any time soon.

Spindaboy

#3
Wow. I'm really happy I happened to stumble upon this thread. Can you guys explain the process of changing the palettes on the title screen to me? Also, do you have any information on how the game handles bosses and how it knows what stage to take you to next once you beat a boss? Oh and if you know how to change the character palettes during cut scenes that would be greatly appreciated too!

EDIT: So I changed the colors of the title screen, but I couldn't change the colors of the opening sequence?

Sephirous

To change the colors of the characters during the cut scenes and map screen.
You have to open the hex editor and search for the Character Palettes. You will find about 10 of the same strings through out the editor with the same color sequence usually 0F ** ** **. Change one and test it to see if it works, If not then put the original values back for that string and then try the next string until you hit the one that matches. It's a lot of trial and error.

The opening sequence baffles me, I find it easy to change the text but the Castle Picture seems to be no where in the coding. Which of course can't be the case, It is there after all.


Morinis

Due to not being able to update my original first post I want to encourage a community collaboration effort in tearing Castlevania 3 apart.  From what little info I knew when starting this wiki thread over a year ago it needs to be restructured entirely and clearly for everyone of all hacking knowledge can understand and follow.  By saying this, I want to extend an open hand invitation to those that are interested in giving detailed information about and relating to Castlevania 3: Dracula's Curse, the U.S version only as the Japanese version, Akumajou Densetsu, has different stuff within it.  If anyone wants to create a separate thread for that game it is highly encouraged :)


There is little to no information about this game out there and as of late there is an increased interest of people wanting to do their own Castlevania 3 projects.  This thread will hopefully help them understand things more.



To those that know ASM programming, 6502 Coding and whatever else that surrounds NES games this wiki is in need of your knowledge by helping this community tear apart and post your findings within the game so by all means pass on whatever information that you may have and find about Castlevania 3: Dracula's Curse onto this thread.  Whatever information that may be is helpful, even if it is character offsets or even the sound engine all information is welcomed information :)


Please be sure to give in depth detail about your findings as there needs to be information about this game :)
ROM Hacker, Reviewer and Critic.

Don't Know What Else To Say So... <3 You!

Rodney42

Does anyone know how to edit the endgame text? Sypha's story always annoyed the hell out of me. "Since she met Trevor she has felt more comfortable with herself." I hate that. I want to write something that is just about her and not have her seem so dependent on Trevor.

Cyneprepou4uk


Rodney42

#8
Quote from: Cyneprepou4uk on July 04, 2019, 04:10:34 PM
I know how to edit the endgame text

Wiseass. Care to share that info?

July 23, 2019, 05:37:15 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Thanks so much, you've all been very helpful  :-[

Cyneprepou4uk

You don't want to ask a question and come back to read an answer 2 weeks later. It is partially my fault as well for not seeing your respond because of forum bugs with messages moderation.

Anyway, pm me if you happen to read this.