*old first post*
I spent a lot of this past weekend learning how the nes / vrc6 handles bankswitching, sram stuff and picking apart the castlevania 3j rom. Firstly I expanded the length of the game so instead of choosing between 3 different routes you get to play every stage of the game in order:http://www.youtube.com/watch?v=MXWePJbC2eM
Too many cool stages so why should you have to choose between the stages you play when you could play them all and get a better overall experience.
Since the length of the game was greatly increased I decided to learn how to program in SRAM saving. Learning this was difficult but fun at the same time. I really learned a lot about nes assembly messing around with this. As complicated as fceux is (it's really not beginner friendly) it truly is a powerful and wonderful rom hacking tool. Also having lots of great nes mapper programming documentation on nesdev is the reason this sort of things happened. Here's a video of the SRAM hack working on a real cartridge (converted madara vrc6 famicom cart):http://www.youtube.com/watch?v=1i7-XYTm7RM
Like my other hack this hack also includes changes from previous hacks like having the music tracks changed on stages and having you start with alucard with the freeze attack as the main character and mr belmont as the second character. I also fixed a lot of bugs from previous hacks. The sram hack is identical to the long version hack just with sram saving replacing the password screen which is why I just recorded a quick demo instead of re-recording an entire playthrough.
Both of these recordings are made from a real NES (av famicom with a nesrgb kit installed) using a real vrc6 cartridge with a socketed prg rom.
Like a lot of my hacks this didn't start with any clear sense of direction or ideas of what I wanted to do. I just approached this with the mentality of "let's poke around the ram whenever I have free time and document what is what". I did know that I love this game so it was definitely worth sitting down and picking it apart whenever I found free time.
I want to credit spikeman for really helping me understand a lot of fundamentals of assembly language, system memory maps, how old console programming works and romhacking in general. Even though spikeman had nothing to do with this specific project, working with spikeman in the past really made it easier for me to learn how to pick this game apart. Having the general foundation really helps me figure things out on my own faster. Another person to give credit to is Tiido. Tiido is another great person who helps me with assembly language / hardware related questions when he has time as long as the questions show I've done my homework and the answer is short and not too time consuming. I contacted snarfblam asking for suggestions on how to go about adding SRAM and he's the one who suggested the easiest (and best) way to do it is hijacking the password option in the main menu and just have a single save slot.
Now that is very nice to see! Currently almost done watching it all the way through and liking of what was done so far.
Though I deeply enjoy the original I am liking the fact that all stages can be played through without any choices of routes to take! Looking at this more as I'm at the 58 minute mark I'm already seeing tons of possibilities to add onto this hack like more music tracks instead of the same ones, new bosses along with new boss mechanics to dodge the repeats and new abilities for the heroes to undertake new obstacles.
So many possibilities it's awesome
My hat goes off to you sir and am definitely keeping an eye on this hack's progress to see on what comes up next!
Adding so many more things may be difficult. The max prg size of the vrc6 is 256k and this game uses almost all of it. I had to code in bankswitches to get at more free space to insert new code. I actually had to optimize a lot of my code just to get everything to fit. Fitting in the bankswitches was the hardest part. My code could be further optimized but it works as is so smeh. Adding music is more doable because you could just overwrite songs that are no longer used.
You probably won't see much other progress on this. I've pretty much done everything that I feel makes the game better. To me this is as perfect of an experience as I could make.
Pretty damn cool. I'd definitely like to give this a try.
SRAM is always a great addition to any NES game. How complex is it? Are you just saving the password and loading it automatically?
I'd love to see a more fleshed out version of it some day with say multiple save slots, an interface and skipping the intro scene. If it hasn't been done by the time I finish my Megaman project I might just tackle it.
Also, is it compatible with the translation?
And are you going to release the SRAM, Long Version, And Alucard hacks separately?
I'm not saving the password I tracked down where in the ram all information I want to save it kept. I'm sure I saved some information that the password system doesn't keep track of. What it saved is who your main guy is, what his weapon is, who the second guy is, what his weapon is, current number of lives, current stage, current substage, and if you've looped the game or not. I wrote a block of code that transfers those ram locations into the sram area and vice versa depending on if you choose "new" or "continue" in the main menu. I completely bypassed the password system and added my own code. Since this is one save slot I made the cursor default to "continue" so you have to hit select to start a new game making it hard to erase your data by accident. I don't know if it's compatible with the translation but it should be. I added new code in usused rom areas (fuill of ff ff ff) and then just replaced a 3-4 hex command with a jump command to my code. If this gets released I'm releasing everything in one big hack.
Something I forgot to mention in the first post you need to start a new game before you continue or it will crash. I didn't bother writing any code to check if the sram has data or not, I could add that I just can't be bothered right now.
Nice! Very nice! I hope you keep at the ASM hacking. So many doors and possibilities open up when you ASM hack.
Thanks. I agree. After doing something like this I'm starting to feel like I can do just about anything to a game if I spend enough time at it. ASM hacking may be the hardest type of romhacking but it's certainly the most powerful way to do things as you can make changes to the actual game engine.
I'm only releasing the actual rom to certain people. I don't want to make a public release with this. If anything I want to use this as a way to "show people what can be accomplished by learning asm". What I will release are my hacking notes used to make this hack. I want people to take my notes and use them to learn assembly and make their own hacks.http://www.mediafire.com/download/m869hm395xjbv1k/Drakon+Castlevania+3+J+hacking+notes.txt
Yes the notes are messy and confusing but it's a lot better than starting with nothing.