News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: [Help Wanted] Castlevania III: Grant/Sypha/Alucard as PRIMARY Character  (Read 1221 times)

Josephine Lithius

  • Full Member
  • ***
  • Posts: 125
  • THE WORLD IS MINE!!
    • View Profile
Hello again!  I have another simple question for people in-the-know.

Is it possible to swap Trevor out as the "main character" of Castlevania III?  Like, for example, I want to have a version of the game where the main character is Grant and his "spirit helper" is Alucard, with the ability to hit Select to swap between just those two.  It feels like it should be simple enough to do, but I haven't looked into it, myself...

Also of-note, I also want to swap Trevor our of the cutscenes, as well, so one of the side-characters (again, Grant) will be the one meeting and greeting the others.  I don't necessarily care about adding Trevor as a secondary character at the moment, though.

Thanks in advance for any help!

Disch

  • Hero Member
  • *****
  • Posts: 2814
  • NES Junkie
    • View Profile
In general the answer to "is it possible" is always "yes" -- unless you're trying to do something beyond what the system itself is capable of.

This is definitely an asm hack and will require you to disassemble some code and figure out how the in-game character swapping works.  For a different primary, the change itself is probably very simple (maybe just a few bytes) -- but finding what you need to change is the tricky part.

Honestly, I would expect the removal of Trevor from the cutscenes to be the more difficult part of this hack.  As that might involve some different animations to be drawn.



As for a starting point... I'd recommend the same approach I do with all asm hacks:
- Dump a full disassembly of the ROM for quick reference
- Get in FCEUX, get a secondary character, and start pressing select -- and watch what changes in RAM until you find out the byte(s) that indicate what your primary character is
- Set write breakpoints on said byte(s)
- Get breakpoints to trip when you switch characters so you can see what code gets run
- Read/decipher the code
- Change the code to fit your needs