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

Author Topic: Castlevania Randomizer  (Read 1197 times)

bogaabogaa

  • Full Member
  • ***
  • Posts: 225
    • View Profile
Castlevania Randomizer
« on: February 17, 2021, 07:18:30 pm »
This Randomizer is made with a costume assembler made by SpiderDave. The assembler is still in a beta/alpha state. You will require python3 to run it:
https://spiderdave.me/nes/

I did include a older version of the free air movement made by NaOH:
https://github.com/nstbayless/cv1-controls

I started out with RetroRain MMC5 for CV PRG0 conversion but made a lot of changes to it like using PRG1 ROM.. plus all the features.





Here is the link to the project:
https://www.dropbox.com/s/z0vswq0l164dlw1/CV1_RandomizerV0.2.1.zip?dl=0
How to use:
Copy your "Castlevania (U) (PRG1) [!].nes" Rom to the main folder with the make.bat file. Name the ROM as shown before. Double click the make.bat to get a randomized ROM.

(The randomisation is done in the ASM file thanks to the features the new assembler provides. Check the main.asm the view conditions and add level select and such)


Features:
- MMC5 Conversion used for CHR animation and the extra sprite page so all the enemies are available everywhere in the Castle.
- Palette variation. There is a general Dark and Light theme. Then also the Vanilla palette groups and sky randomization and such..
- I provide a full level select and cheat mode for testing for MMC1 and MMC5 version. (Needs to be enabled in the main.asm. Set condition to 1)
- Rearranged enemy assembly with some sprites that would allow for a smooth animation thanks to animated sprite bank. Or a idle frame for Simon. (Unfinished)
- There is a group of tiles animated for each stage but no animation is added so far. (Unfinished)
- Random music for each level. (Unfinished. The music should be shuffled as a group for each stage)
- Enemy Randomizer. (Unfinished. It is done till around the cave section and some choices are bad or placed wired)
- Boss locations.
- One extra playable Character. Richter (waiwai world style)
- Some general property only two damage through out the game.

Known Bugs:
- Some bosses are one block in the ground. The Bosses need to be generalized or at last make low ground rooms for them.
- Right now the music changes after a checkpoint when you die. This is because it is not shuffled as a group.
- Some enemies are not meant to be together. The game crashes when there are fishman and bone throwing skelly on the screen. Sometimes there are wired
  interactions with the code and the music can reset one channel. I just try to avoid some enemy arrangements because of that so far..
- Holy water does no longer stun bosses. Still works great on enemies. I know I could call that a feature but I don't know yet why that happen..
- Second face Dracula does not react properly when crouching in the corner for some reason..

Why do I post a unfinished project?
  This is on my desk for over two month and I just go after other project. I do not find time or motivation to do more right now. It is still fully playable and
  I am glad for testing feedback or additional resources and ASM files if anyone is willing to provide.

  This is a free fan project anyone can use for what they like. The ROM conversion does not change the original offset that much. Other tools like steaks can be
  used to make changes to the levels. That tool might not like the header of the file so you need to change it back on forward. Or just set up a patching line
  from a other ROM to update this version. Graphics are CHR so you need to update them with a tool like Tile molester anyway. Not convenient but doable.

  I don't know when I return to this but I thank in advance for feedback and have fun testing.


Additional ideas/bugfixes I consider implementing some time later: (This will be updated when I get feedback)
- Difficulty setting in Game. (probably just let you choose the amount of damage you receive)
- Candle randomizer. At last the sub weapon should be random drops.
- Enemy AI Randomizer. This could give a lot of replay value when done right. I was looking forward to it and I have a lot of ideas in that regard.
- New/Replaced Enemy types.
- NewBosses. I had like to make some costume bosses. I also think this could help other hackers. Give ideas how to do them. So far I only did one boss but I need
  to make a proper ASM first. I also had the idea to copy some stuff of Optomon Holy Relics and Chorus of Mysteries hack into this project. But I probably stick
  to my own creations.

- Animation for Sprite and Backgrounds.
- Add more playable characters.
- Add full property pages to change desired values in the game.
- Replacing Music engine with ggsound engine to make it possible to create music in a easy way.
 
« Last Edit: February 18, 2021, 08:51:19 pm by bogaabogaa »
CV ROM DiscordServer
https://discord.gg/PvFgxRg

DavidtheIdeaMan

  • Hero Member
  • *****
  • Posts: 700
    • View Profile
Re: Castlevania Randomizer
« Reply #1 on: February 17, 2021, 07:20:02 pm »
Very fascinating stuff right here :)

bogaabogaa

  • Full Member
  • ***
  • Posts: 225
    • View Profile
Re: Castlevania Randomizer
« Reply #2 on: February 18, 2021, 08:01:30 am »
I did some bugfixes and also added a ips for people who don't like to install python 3 but like to have a small teaser.
What makes the Randomizer great so far is the enemy.asm. It feels interesting to me to get all the new situation in a familiar level layout.

This is just the enemy tracker for the levels and I add them when I play with the emulator. Mesen is great since it does highlight the byte that just got read. Then just try out what is good and write the byte down as a option to choose from in the ASM. It still takes some time to find good option. I feel like the global property that tell where on the screen the enemy appears should be optimized first.
I was thinking to restart that document and this was also the point when I started to do other things. It is some work but I have a lot of fun playing this. Would be cool to finish it and see some people doing races and stuff.

Update:
Here I made a Video of me setting it up and playing it.
https://youtu.be/mFNzKxFYo-c
« Last Edit: February 18, 2021, 10:40:59 am by bogaabogaa »
CV ROM DiscordServer
https://discord.gg/PvFgxRg

Morinis

  • Hero Member
  • *****
  • Posts: 506
  • Cupcakes and Pizza
    • View Profile
    • My YouTube
Re: Castlevania Randomizer
« Reply #3 on: February 18, 2021, 10:24:28 am »


Why do I post a unfinished project?
  This is on my desk for over two month and I just go after other project. I do not find time or motivation to do more right now.





I truly hope you finish this to whatever end goal you have for the project!  Holds a lot of potential towards those in wanting to understand things like this  :thumbsup:
ROM Hacker, Reviewer and Critic.

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

DavidtheIdeaMan

  • Hero Member
  • *****
  • Posts: 700
    • View Profile
Re: Castlevania Randomizer
« Reply #4 on: February 18, 2021, 01:34:03 pm »
I have to agree with you Morinis,this engine has potential :)

sebastianangel

  • Full Member
  • ***
  • Posts: 183
  • you can always improve
    • View Profile
    • sega genesis
Re: Castlevania Randomizer
« Reply #5 on: February 18, 2021, 03:34:25 pm »
congratulations what a great job Bogaabogaa :thumbsup:
I hope you can finish it to enjoy so many good news and details :crazy:

PolishedTurd

  • Full Member
  • ***
  • Posts: 195
    • View Profile
Re: Castlevania Randomizer
« Reply #6 on: February 24, 2021, 07:57:40 pm »
This looks like fun. It's refreshing to see different enemies in familiar places. Just randomizing enemies and power-ups in the candles would add a lot of replay value, especially if it can all be seed-based in the ROM.

Thank you for posting an unfinished project. I have at least 3 projects at 90% or more completion that I had to set aside and have not yet aligned the time and inspiration to finish. Perhaps I should just release them anyway.

bogaabogaa

  • Full Member
  • ***
  • Posts: 225
    • View Profile
Re: Castlevania Randomizer
« Reply #7 on: February 24, 2021, 10:55:34 pm »
Just randomizing enemies and power-ups in the candles would add a lot of replay value

 .. at least 3 projects at 90% or more completion .. I should just release them anyway.

I do think that the enemy randomizer is the most fun part too. Still I need to sit down a view more nights to get it all done. I did think may be someone is more eager/has more time then me and is interested to learn a unconventional method to do this. Usually you would define enemy data in a high level language. Here you can do it in a ASM thanks the build in features of the patcher. The project could also be a base for a hack instead.

It depends on the situation if a pre release is useful. A unfinished project could bring you bad credits. A proper release does have a other footprint and leaves a good impression on you from a end user perspective.
When you find the project might be useful to others and you don't mind people sharing your work and do things with it. Then make a project post. Sometimes feedback can be a good motivator to establish some time for it in the future.   
CV ROM DiscordServer
https://discord.gg/PvFgxRg