- Added Simon's life count to the start menu
- Added the
fangs
optional patch. Using this patch adds Dracula's fangs as a carry item, like silk bag or magic cross. When Simon buys or finds the fangs, he instantly is boosted to having 5 lives. After every continue, Simon will again start with 5 lives. It is currently NOT a required item to break the wall at Dracula's bridge, but this may change in the future. - Added the
nomusic
patch which disables all in-game music. Thanks kaelari! - Fixed the
penalty-reduction
bug that gives you 100 XP if you game over with more than 200 hearts. Sorry cheaters. - Fixed a small bug with the random Simon sprite selection. Thanks kaelari!
- Quick bug fix, needed to add a preview png for the random simon sprite
- Fixed red crystal merchant bug (ccompletely this time, thanks kaelari!)
- Burb's new palettes:
- gameboy-dmg.js - Improved version of the previous gameboy.js, but made the entire game look good in monochrome.
- gameboy-mono.js - b/w version instead of green.
- ghost-town.js - Based on glitch town in FDS any% speedrun. Everything's white during the day!
- Fixed major bug where collecting the flame whip could screw up the crystal progression, leaving you soft-locked. Thanks kaelari for this one!
- Minor touchups to the Paint It Black patch (Now even blacker!)
- New Patches
gameboy
- Modifies the game's color scale and tint to give a gameboy-like feel (Thanks burb!). Warning, probably won't play well with anything but the default color palette.
- Transfered ownership of repos from BloodSweatAndCode to my main github profile tonylukasavage. No game changes in this update.
- New Simon Sprites
- Santa Claus! (
santa-claus
)
- Santa Claus! (
- New Simon Sprites
- Jason Voorhees just in time for Halloween! (
jason
)
- Jason Voorhees just in time for Halloween! (
- Logic Changes
- Fixed a number of diamond warp logic requirements in the late game (thanks freeland1787!)
- Fixed Laruba door requirements for door rando logic, added
&& (HOLY_WATER || NAIL)
- rondo-of-burb palette no longer turns the dead end swamp into essentially "paint it black" mode (thanks burb!)_
- Fixed bug with prices being too damn high!
- New Simon Sprites
- Donatello from TMNT (
tmnt-donatello
) - Leonardo from TMNT (
tmnt-leonardo
) - Michaelangelo from TMNT (
tmnt-mickaelangelo
) - Raphael from TMNT (
tmnt-raphael
) - Skeleton Simon (
skeleton-simon
) - Steve from Shatterhand (
shatterhand
) - Caiman Dorohedoro (
caiman-dorohedoro
) - Caiman Lizard Dorohedoro (
caiman-lizard-dorohedoro
)
- Donatello from TMNT (
Thanks (again) aktraizer for the big list of new sprites!
- New Simon Sprites
- Simon from Castlevania 1 (
simon-cv1
) - Trevor from Castlevania 3 (
trevor
)
- Simon from Castlevania 1 (
Thanks aktraizer for the new sprites!
- New Simon Sprites
- Samus with Power Suit (
samus-power-suit
)
- Samus with Power Suit (
- New optional
door-rando
patch! This shuffles all doors and entry locations in the game. This includes both town and mansion doors, so yes, Thorn Whip door could take you straight to Laruba! All expected logic is preserved. - New optional
custom-text
patch to add funny new text and a little personality to every actor in the game, including NPCs. This will likely become a core patch, but I want to rrun it through some seeds before making it official.
- New Simon Sprites
- Bang from "Clash at Demonhead"
- Simon The Elf
- Updated Simon Sprites
- Link from "Zelda 2"
- Samus from "Metroid"
- Simon Claus
- All sprites in the
patch/simon
folder are loadable in the cv2r.com Sprite Maker via theirindex.json
file - All patches can now be loaded directly from a file. For example, a custom simon sprite patch can be loaded via
--simon /path/to/simon-patch.json
. Or if you had a custom patch to load into a list,--patch 100-hearts,/path/to/custom-patch.js
. Bear in mind this generally only works with patches that have no dependencies within the cv2r project. Useful for patch testing. - Patches can now be loaded not only as Javascript files (
.js
) but also now JSON files (.json
). For example, . - All Simon sprite ids and descriptions are now listed when you execute
cv2r --help
from the CLI
- New Simon Sprites
- Pit from "Kid Icarus"
- Karnov from "Karnov"
- New Simon Sprites
- Hero from "Crystalis"
- Ryu Hayabusa from "Ninja Gaiden"
- Sprite Maker for easily creating new sprites for Simon available at https://cv2r.herokuapp.com/sprite-maker
- New Simon Sprites
- Mario from "Super Mario Bros."
- Ghost Simon
- Added authors to all sprites
- Add "Diamond Warp" difficulty to make it easier to select in website
- "Diamond warp" - If you own the magic cross AND have the diamond equipped, doing a select->up+a+b will not take you to Jova. It will instead take you to Bordia Mountains, otherwise known as "dead end swamp", the giant swamp that is very near Dracula's mansion. Diamond warp can be enabled as a patch in any custom difficulty seed. It has NOT been added to any default difficulties.
- To go with the diamond warp ability, I also added diamond warp logic. This will be updated on the website documentation, but in short, having diamond and cross helps put Bodley and Doina in logic. Nothing to the left Bodley is in logic until you get red crystal, though, due to the lake you need to drain.
- Added Link from Zelda 2 as a playable sprite for Simon!
- Added
--simon
option to allow you to change Simon's sprite. You can now use any sprite available for Simon without having to create a custom seed. This means selectable sprites will be choosable even in tournament and race settings. Will be selectable from the cv2r website. - Fixed uncommon logic bug (about 2% of the time) that would cause an error during ROM generation
- Replaced
ava
test framework withmocha
due to ava crashing during automated testing of ROM generation.
- Fixed logic bug that was creating unbeatable seeds on a regular basis
- Added unit tests to verify that thousands of randomly generated seeds can be completed
- Glitch logic update: Change Bodley orb requirement from
(HOLY_WATER || NAIL) && ((WHITE_CRYSTAL && BLUE_CRYSTAL && RED_CRYSTAL) || LAURELS) && OAK_STAKE
to((WHITE_CRYSTAL && BLUE_CRYSTAL && RED_CRYSTAL) || LAURELS) && OAK_STAKE
. In other words, removed holy water or nail as a requirement for Bodley orb.
- Logic rework, supports full conditional logic now
- New
--logic
option when generating seeds from CLI, also available on cv2r.herokuapp.com. You can now select fromstandard
orglitch
logic. Full explanation of requirements for each set of logic can be found on the docs site. - "Simon Claus" sprite for Simon, thanks to 2snek, just in time for the holidays!
- Fixed issues where moving platforms did not spawn in Debious Woods (flame whip dude screen) and the Yuba Lake (the road to Rover) by preventing projectile enemies from spawning there.
- ACTUALLY fixed easy seeds, no more price glitching
- Fixed bug with ring-marsh-immunity patch that caused all prices to be glitched and/or impossible to afford.
- Fixed bug with cv2r.herokuapp.com where generating multiple seeds in a row would create corrupted ROMs, resulting in unexpected bugs and quirks in gameplay.
- Fixed bug in nail logic that sometimes created unbeatable seeds due to both nail and holy water being behind breakable block checks
We made it boys! 1.0.0! Thank you to the awesome CV2R community for helping get this project to this point. I could not have done it without you guys!
- Nail logic implemented
- Patch to give Simon immunity to marshes when Dracula's ring is equipped. Activating this patch will also update the itemizer logic so that any check that required laurels can now be opened with laurels OR ring.
- Difficulty updates
Easy
difficulty now includes the ring marsh immunity patch- Created
Elite
difficulty with the following patch list- Enemy HP rando
- Price rando
- Quick kill disabled
- Dracula fight downgrade (thorn whip and Simon level 2)
- Implemented optional patches that can be applied BEFORE the core patches. This was necessary when implemeting the logic changes for the ring marsh immunity patch. Any optional patch can be made a pre-core patch by adding the property
pre: true
.
- Item base price adjustments (old -> new)
- Whips: 150 -> 100-150
- Crystals: 100 -> 50-100
- Golden knife: 150 -> 125
- Silver knife: 100 -> 50
- Sacred flame: 100 -> 75
- Fixed bug where Samus sprite switched back to Simon in Storigoi Graveyard (thanks Burb!)
- Fixed bug with truncated book clues (thanks Kaelari!)
- Seed is represented as game icons in the game start menu
- Password option has been removed from the game start menu
- Added stats to all ending screens
- Fixed bug where zeroes did not appear in ending stats
- Mansion blobs will now only appear in screens with ceilings
- NEW OPTIONAL PATCH: Disable quick kills, no more last frame subweapon 185 damage!
- NEW OPTIONAL PATCH: Drac Fight Downgrade. Reduces your whip to thorn and your level to 2 once the summoning explosion appears in the Dracula fight.
- Books now contain randomizer-specific clues (thanks kaelari!)
- Fixed rare bug where jovah warp caused a black screen soft lock
- Fix best ending text glitch
- Additional checks to prevent immobile enemies on stairs and other bad locations
- STATS! Shows the number of death, enemy kills, and hearts collected on the final ending screen.
- I had fun with an alternate set of text for the best ending. Enjoy! :P
- "Samus" is a new experimental optional patch that lets you play as Samus, minus the Power Suit. Anything sharing Simon's palette (like HP and hearts) is gonna change to match Samus's colors, meaning lots of green.
- Fixed bug with invisible enemies patch filename
Thanks to Burb for this update, it was all him!
- "Paint It Black" optional patch where everything except Simon, enemies, stairs, and orbs are black
- "Invisible Enemies" optional patch that, well, makes enemies invisible, including bosses!
- OHKO! Everything that does damage kills you in one hit. The lone exception is marshes, which still do the same amount of damage they always did. I may introduce a "OHKO Extreme" mode later where marshes also kill in one touch, but that would require logic changes to make everything left of Belasco Marsh require laurels, and that's a bigger change than I wanna make now.
- Added sound to jovah warp (up+a)
- Fixed oak stake glitches by replacing its sprite with the dagger/knife sprite, since it's available on all sprite tables.
- Fixed bug with glitchy flower sprite by no longer animating the flower when it shoots a fireball
- Fixed sprite glitch where visible sprite replaced the transparent "low priority" sprite in locations where there were marshes and dead hands.
- Fixed intermittent sprite glitch that appeared on mansion spider's "line".
- Fixed
--help
multi-line description output - Added
--dev-force-enemy <enemyId:tableId>
option to force only one type of enemy to be rendered in the randomizer. Useful for testing bugs related to specific enemies.
- GRAVEYARD DUCK!!!
- Fixed a bug with the
cv2r patch
command - Added a tool for extracting sprite tables from a rom at
tools/sprite-extract.js
- Fixed bug where projectiles from enemies sometimes were thrown in the wrong direction
- Immobile enemies no longer spawn at the top or bottom of stairs
- Immobile enemies no longer spawn on the block climb to the top of Berkeley Mansion
- The inescapable zigzag bat no longer appears on the stair climb out of Berkeley Mansion
- Improved
cv2r --help
- "Lazy River" patch for vanilla enemies on Dead River
- CV2 roms are validated when passed into the CLI
- Added
cv2r patch
command to allow easily creating patchescv2r patch --method diff cv2.nes cv2-hacked.nes
will generate a ready-to-use patch by diff'ing a vanilla CV2 ROM with a hacked CV2 ROM.cv2r patch --method ips cv2.ips
will generate a ready-to-use patch by translating an existing IPS patch into a cv2r-compatible form.
- Huge refactor of patch system. Allows cv2r.com to generate roms with manually specified patches (using a comma-separated list with
--patch
), instead of relying entirely on the difficulty system.
- Camilla still drops bag, but Death is back to dropping golden knife due to the fact that the same sprite used for the drop AND all dagger/knife usage by Simon
- Boss drop sprites have been changed from golden knife and magic cross to be bags, like the ones inside orbs
- git tagging issue, no updates
- Rolled back ferry man jovah warp quirk fix, as it caused issues where you couldn't cross Dead River to Brahm's, even with heart equipped
We are officially alpha boys!
- Fixed bug where bosses had randomized hp, which sometimes caused overflow values that gave Camilla extremely low HP
- Fixed regression with jovah warp where the ferry man would be present in Jovah after warp
- Safe guarding against sacred flame and secret merchants despawning by never using projectile enemies (fireballs, bones, or webs) in those screens
- Crystal sale icons update progressively, so you see white crystal as a sales icon from a merchant if you have no crystal, blue if you have white, and red if you have blue.
- With some ROM hacking,
$7F
in RAM can now be used as a unique identifier for any actor Simon is interacting with. The relevant values have been catalogued in the README. - SRAM usage has been documented in the README.
- Actors will present "refuse text" if you've already acquired an item from them. It will currently say "NICE TRY SIMON". Additionally, merchants will have their sale icon replaced with an "X" and the sale price will become "9999" to prevent any confusion on attempting to repurchase an already acquired whip/crystal.
- Fixed bug with prices being too high (#54)
- Updated
difficulty
settings to support cv2r.com - Added travis-ci support, all PRs run through linting and tests
- Added code linting to enforce code style
- All references and files named
cv2-rando
orcv2rando
have been changed tocv2r
, including the repo name. I have saved thecv2rando
binary for now, but it will be removed in 0.1.0. - Made
npm test
work on Windows in a cmder prompt. Still doesn't work in default Windows command line.
- Don't output spoiler csv file when
--json
is used - update
package.json
to use the bin namecv2rando
- Fixed title screen bug
- Added ability to have the
cv2rando
process dump the generated rom patch to stdout. This is used by the cv2r.com website, but can also be used by anyone who wants access to the patch file generated by thecv2rando
process.
- cv2-rando is now fully patch-driven, including what was internal code like itemizer, enemizer, shared assembly subroutines like clear-objects, etc...
- Added
-d, --difficulty
option for making reasonable groups of patches based on difficulty. For now the options areeasy
,standard
, andhard
.standard
is the default setting. - Added
-p, --palette
option to allow explicitly picking palettes. Palettes are structured and behave like any other patch but have their own folder atlib/palette
to keep them all together. By default the palette will be the original Simon's Quest palette. - Cleaner
--debug
output
- Added crc32 sum of the seed to the title screen
- Moved jovah warp, inventory deselect, and SRAM clearing out of itemizer and into core code
- Automated testing added
- ROMs are now generated to the
roms
folder by default, not thetmp
folder
- Allow deselecting quest items by pressing B button in inventory