News: 11 March 2016 - Forum Rules

Author Topic: How to change color groups in Castlevania 1 for NES  (Read 1666 times)

U retro

  • Jr. Member
  • **
  • Posts: 6
  • I'm a beginner romhacker, that's all
    • View Profile
How to change color groups in Castlevania 1 for NES
« on: August 11, 2020, 01:02:39 am »
Hi i have a question

Does anyone have knowledge of where the values of the color group of each enemy and object (axes, holy water e.t.c.) of Castlevania 1 for NES are?, since I would like to change some by assigning them to another group

For example: Knights who throw axes I want to change it from its default group (white) to the group of merfolk (red).

Thanks in advance.
« Last Edit: August 12, 2020, 03:32:25 am by U retro »

bogaabogaa

  • Full Member
  • ***
  • Posts: 227
    • View Profile
Re: How to change color groups in Castlevania 1 for NES
« Reply #1 on: August 18, 2020, 12:39:37 am »
What are looking for are not groups. Every sprite will be assembled and OAM is used to display sprites on screen. In case of CV you like to figure the sprite assembly format and change them for every object and every frame you like to have a different palette assigned.

Here is the format:
Code: [Select]
1 2 3 4 NextBlock??
Object Assembly Format: 08 F0 D0 03 E8 F1 D2 F0 F1 D4 F8 11 D6 F8 F0D44300F1D208F1D01011D600
AA BC DD EF GG BC DD GG BC DD GG BC DD GG

AA= Number of 1x2 SpriteBlocks used for the Frame
B= Ypos 8 pixel
C= Ypos pixel and uneven number will mirror and break palette. Also it will alternate to the next SpriteBlock
DD= CHR Slot Number (Only Even Numbers Work Spite)
E= O+1=Normal 4+5=Mirror 8+9=Flip c+d=MirrorFlip (For Block "4 Times 1x2")
F= Palette 0-3 Then it will repeat cycling Palettes
GG=     Xpos

The Sprite assembly table is stored at the very first bank of the PRG ROM. I would command to use mesen to do this changes. In the Memory editor you can save the ROM or the changes as IPS.
The workflow is as follow:
Get on screen what you like to change. Press pause and do a savestate. When reloading the game (assuming you don't save usage table to disk.)
Then just load the savestate. Since you paused, the game only shows the current assembly on screen. This is highlighted blue in the memory editor and easy to find like this.

« Last Edit: August 18, 2020, 10:29:31 pm by bogaabogaa »
CV ROM DiscordServer
https://discord.gg/PvFgxRg