
Castlevania III: Dracula's Curse (CV3 PC port)
Port nativo de Castlevania III: Dracula's Curse (CV3 PC port) para PC.
Castlevania III: Dracula's Curse (CV3 PC port)
Port nativo basado en su ficha de origen.
README del repositorio
CV3 PC port
An unofficial PC port of Castlevania III: Dracula's Curse (NES, 1990), rewritten as C++17 with SDL2, plus optional extras: widescreen, smooth motion, an enemy and boss randomizer, a modern difficulty, and more.
This repository contains no part of the game. The C++ reads all of the game's graphics, levels, music and text from your own ROM when it starts. You need a ROM of Castlevania III - Dracula's Curse (USA) that you made from a cartridge you own.
Playing
- Download the zip from Releases and unzip it anywhere.
- Put your ROM in its
romfolder (any file name). - Run
cv3.exe.
Windows may warn about an unknown publisher, because the program isn't
signed: choose "More info", then "Run anyway". The zip's README.txt has
the controls and options.
Building
Windows. You need MinGW-w64 with g++ (C++17) and mingw32-make, for
example from WinLibs or MSYS2, and a bash shell
with curl and tar, such as Git Bash, to fetch the dependencies.
bash tools/get_deps.sh # SDL2 and dr_mp3 into third_party/
mingw32-make -j8 # builds build/cv3.exe (and copies SDL2.dll)
Linux. You need g++ (C++17), make, curl and SDL2's development files.
sudo apt install g++ make curl libsdl2-dev # Fedora: sudo dnf install gcc-c++ make curl SDL2-devel
bash tools/get_deps.sh # dr_mp3 into third_party/
make -j8 # builds build/cv3
bash tools/package_release.sh 0.1.0 makes a release in dist/: a clean,
stripped build, an empty rom/ folder, the release/ readmes and the
notices. On Windows it's a zip with SDL2.dll; on Linux a .tar.gz
(using the system's SDL2). The Linux build is tested under WSL (Ubuntu
24.04): it replays a whole recorded playthrough exactly as on Windows.
Running
Put your ROM in the rom/ folder (any file name), then run build/cv3.exe
(Linux: build/cv3). The game looks for rom/ next to the executable and
one folder above it, else in your own folder (~/.local/share/cv3/rom,
%APPDATA%\cv3\rom).
It checks the ROM's CRC32: ED2465BE, counting PRG and CHR but not the
16-byte header. Any other file is refused with a message saying so.
The menu opens at startup and on Esc. It has three save slots, the
randomizer for a new game, and the options. The options are saved to
cv3.ini next to the executable. Everything beyond the original game is
off by default.
Controls.
- Keyboard: arrow keys to move, X to jump (A), Z to attack (B), Enter for Start, and Right Shift or Backspace for Select.
- Window: F11 or Alt+Enter toggles fullscreen. F10 turns the in-between frames on and off, F9 cycles run-ahead (0, 1 or 2 frames), and Esc opens the menu.
- Game controllers work through SDL; the Guide button opens the menu.
Options
- Display:
- Filters: sharp, sharp-smooth, smooth, scanlines.
- Aspect: square pixels, 8:7 TV pixels, or 4:3.
- In-between frames, for smooth motion on 120 Hz and faster displays.
- Run-ahead, for lower input latency.
- Widescreen: a 16:9 picture. In horizontal rooms the game plays on the wider screen: enemies, items and candles in the margins are active.
- Fixing NES limits: no sprite limit and no flicker. The game never lags.
- Gameplay tweaks:
- fast doors;
- air control;
- stair jumps (jump off the stairs, drop with Down+A, hold Up or Down in the air to stick to them, rising or falling);
- fast character swap;
- modern difficulty (unlimited lives, restart at the checkpoint).
- Randomizer (on the NEW GAME page):
- Enemies: alike or anywhere, and endless spawners too.
- Bosses: the partners' fights; Dracula stays.
- Starting character: any of the four.
- Allies: shuffled, and Trevor himself can join as an ally.
- Famicom sound: the music and sound effects of Akumajou Densetsu,
the Japanese Famicom version, whose cartridge has an extra sound chip
(Konami's VRC6). Put your own ROM of Akumajou Densetsu (Japan) in
rom/as well, and set MUSIC to FAMICOM. The port runs that version's own sound engine, VRC6 included, from your ROM, so nothing of it is included here (src/platform/famicom_sound.h). Without that ROM, the FAMICOM setting plays MP3 files of the soundtrack that you supply instead. Put them in afamicom-ost/folder next to the executable, named by the soundtrack album's track numbers, for example03-Beginning (Block-1).mp3. Only theNN-prefix matters;kTracksinsrc/platform/music.cpplists which number plays where. The port finds each song's loop point by itself.
Every option also has a command-line switch, and there are test and
debugging tools besides. They are all in parse_args in
src/platform/main.cpp.
How it works
The game was translated from the original 6502 code into C++. It keeps the original's RAM layout and frame structure, so it plays exactly like the original: during development, every change was checked frame by frame against recordings of complete playthroughs on an emulator. A small 6502 interpreter still runs the game's power-on code, MMC5 setup and idle loop, about 150 instructions.
src/game/: the game (player, enemies, bosses, levels, menus, sound engine) and the PC extras.src/runtime/: the NES hardware the game talks to (MMC5 mapper, PPU, APU, 6502 interpreter), as a frame model.src/platform/: the SDL2 window, input, audio, menu and settings.src/verify/: lockstep and trace tools used during development.src/names/: RAM and ROM addresses under the names the disassembly (see Credits) gives them. These are addresses only, no game data.
Credits
- The port is based on the annotated disassembly of Castlevania III by
cyneprepou4uk, made with their
BZK 6502 Disassembler
(NES-Games-Disassembly).
The names in
src/names/and throughout the code come from it. - SDL2 (zlib license) and
dr_mp3 (public domain or MIT-0).
Both are downloaded by
tools/get_deps.sh, not included. See THIRD_PARTY.md.
License
The port's own code is MIT-licensed (LICENSE).
Legal
This is a non-commercial fan project. It is not affiliated with, endorsed by or sponsored by Konami. Castlevania, Dracula's Curse and Akumajou Densetsu are trademarks of Konami Digital Entertainment. The game's code, graphics, music and text belong to Konami and are not part of this repository: everything is read from ROMs the player supplies. Do not open issues or pull requests that contain ROMs, ROM data or music files, and do not ask for them.
Comentarios (0)
Inicia sesión para dejar un comentario.
Sé el primero en comentar sobre este juego.
