Castlevania II (Simon's Quest) - Multilingual enhancement

Started by Bisqwit, December 19, 2012, 01:38:36 PM

Previous topic - Next topic

Vanya

Quote from: Bisqwit on January 09, 2013, 06:33:20 AM
Wow. That is fantastic. It even tells that the "where" that the ferryman takes you, depends on which Dracula's body part you are carrying.
But even though I do know some Japanese, I feel that a manual of that size is a bit too much work and effort to translate... Especially given that it would have to be done in an image editing program. And it would require some image substitutions, as the FDS-specific screens no longer apply on the cartridge version. And e.g. replace the screenshot with buggy floating zombies.
There might also be some nasty copyright missiles hiding somewhere waiting to be launched.

Actually part of that manual has already been translated on this very site. There was some interest over Castlevania Dungeon Forums about the *true* back stories behind the early games without the often silly choices made by Konami US back in the day. Asking the guys in the translation forum tackle the rest of the manual wouldn't be a problem, I'm sure.

I don't really see how translating the manual is any more of a copyright issue than the re-translation of the ROM itself. But regardless, I think I'll take on this task myself.

Triupulent

Quote from: Bisqwit on January 09, 2013, 06:33:20 AM
Wow. That is fantastic. It even tells that the "where" that the ferryman takes you, depends on which Dracula's body part you are carrying.
But even though I do know some Japanese, I feel that a manual of that size is a bit too much work and effort to translate... Especially given that it would have to be done in an image editing program. And it would require some image substitutions, as the FDS-specific screens no longer apply on the cartridge version. And e.g. replace the screenshot with buggy floating zombies.
There might also be some nasty copyright missiles hiding somewhere waiting to be launched.

As I suspected, there are translations of the prologue that already exist:
http://www.vgmuseum.com/mrp/cv2/documents/CV2J.txt

I found another page nitpicking a few translations in that:
http://www.oocities.org/nec43xkq3/diinfmst.html

Other than the obvious things, I don't know how it differs from the American manual. Which can be found here:
http://www.vgmuseum.com/mrp/manual-cv2.htm

Translating the manual can be a group project as mentioned before. Even if there are copyright issues, and can't be hosted on the romhacking site, I think it should be done.

I've read online that a direct translation of "Dracula II: Noroi no Fuiin" is  "Dracula 2: The Accursed Seal". That kind of sounds cooler than "Simon's Quest". Could that be used as the name of the hack, and the game? The title screen could be changed to reflect this.

xttx

great work! The newest version cpu jams nestopia when you try to load the map with the select button.  :-[

Bisqwit

Quote from: xttx on January 12, 2013, 02:03:47 AM
great work! The newest version cpu jams nestopia when you try to load the map with the select button.  :-[

Thanks for the report. I will investigate it. EDIT: Problem fixed in version 1.4.1.2, just released. I had accidentally enabled for VRC6 some code which was only meant for MMC1. Interestingly enough, this had been going on since version 1.2.1 and it did not cause problems then. Probably mad luck.

I have the SRAM saving feature work in progress. It is going well.

January 16, 2013, 02:03:55 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Teaser screenshot (actual emulator capture):


xttx

great work and thanks for the response. This is definitely top notch work and is a blast to play. The way the game should have been to begin with. Looking forward to seeing what you can do next!  :thumbsup:


Bisqwit

I have released version 2.0.0 of the translation patch now.

You can download it at:  http://bisqwit.iki.fi/cv2fin/

Major features:
-- SRAM saving support.
Minor changes:
-- Exiting the map screen no longer allows escaping the battle with Dracula.

Load/save options have been added in the main menu and the gameover menu respectively.
In addition, you can save the game at any time during the game by pressing select on the status screen.
Seven save slots are offered currently.

Please report to me any errors and weirdness you encounter in this patch!

Screenshots:


I retained the password feature in the game, because I like it.
Incidentally, I discovered that FCEUX does not support the de-emphasis bits when its NTSC filter is enabled... Bummer.

odditude

Looks amazing - I can't way to try it out.

Two aesthetic points: Any reason why certain text is using the vanilla sans-serif font? Also, "Select Slot" or "Select Save" may be slightly less awkward than "Please Choose" and not require custom tiles to fit.

Bisqwit

Quote from: odditude on January 18, 2013, 02:35:05 PMTwo aesthetic points: Any reason why certain text is using the vanilla sans-serif font? Also, "Select Slot" or "Select Save" may be slightly less awkward than "Please Choose" and not require custom tiles to fit.

From the original features of the game, I left the vanilla sans-serif font in the main menu and in the password screen, because of a somewhat arbitrary reasoning: They are sort of technical aspects, meta, not a part of the actual game. It is an oversight and inconsistency that I did not do that also in the gameover screen.
Because of that same principle I decided to use the sans-serif font also on the save/load screen.

As for particular texts and labels, I am open for suggestions to improve them. "Please choose" was what I thought is unspecific enough that it works for both loading and saving.

Re: Custom tiles, this is a multilanguage translation system. My design choices were primarily guided by making the same code and data as much possible usable in all supported languages (currently English and Finnish). In Finnish, the label is considerably longer (16 letters), but still must fit in those 12 tiles. I did a considerable amount of text as pre-rendered text. It also nets me a nice VWF. Incidentally, the North-American game also did this. The "YOUR" text on the password screen was prerendered in the NTSC version.

January 19, 2013, 12:19:11 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

I enabled the font artist mode in me for a bit. Improvement or not? (Not in a release yet.) When compared to the third picture:


The same in Finnish:

odditude

"Improvement" is too conservative a term. Looks fantastic!

Devil's advocate time - will the presence of lower-case text in the main menu emphasize the lack of such in the game at large?

Bisqwit

Thank you. Then I will add it in the next release.

Quote from: odditude on January 19, 2013, 12:35:16 AMDevil's advocate time - will the presence of lower-case text in the main menu emphasize the lack of such in the game at large?

That is a good question. A better question is: Which pair of images would be nicer to see in the game?

Left: Talking with a NPC. Right: Reading a hidden clue.


Or the same set of images, but using upper+lowercase characters, but in same font in both, without italic? I don't know if there are enough tiles for all the required uppercase+lowercase characters, but there most definitely are not enough tiles to have uppercase+lowercase in two fonts. Even uppercase only in two fonts is stretching it.
EDIT: Humm... There are plenty of free VROM pages. There still seems to be a way! This would further decrease the patch's compatibility with other patches, but it's possible. In short, swap VROM page depending on whether cursive or normal font is needed. Yeah, that would work...

So... Lowercase font for dialog text, or not? Do note that it would still be monospaced, as opposed to the "Are you sure?" text above which is not.

odditude

The text is fairly dense as-is; adding italics without lowercase makes it take even more effort to read. Using mixed-case will add a little bit of vertical whitespace between lines of text, aiding legibility.

Also, a side-benefit of the serif font you're using is a reduction in the perceived gaps between monospaced letters - since even "i" and "l" are wider than they would be in a sans-serif font.

That being said, nice italic font! I hope other people who'd like to use 8x8 serif fonts take notice.

Vanya


burn_654

I'd love to make a repro with saving support and all these additional tweaks/features...what mapper cartridge should I be looking at? This is an excellent project!  :thumbsup:

Bisqwit

Quote from: burn_654 on January 19, 2013, 01:54:26 PMI'd love to make a repro with saving support and all these additional tweaks/features...what mapper cartridge should I be looking at? This is an excellent project!  :thumbsup:

Thanks!
What you need is either MMC1, MMC3, MMC4, MMC5, or VRC6 boards that has 128 kB of ROM, 128 kB of VROM, and optionally that 2~8 kB of battery-backed RAM if you want to use the save feature. SKROM and TKROM cartridges are recommended for SRAM users, SLROM and TSROM otherwise.

Board names:
-- MMC1-based: SKROM (example: Zelda II), SLROM (no SRAM) (example: Simon's Quest), SL1ROM (no SRAM) (example: Demon Sword),
-- MMC3-based: TKROM (examples: Shadowgate, Uninvited), TKSROM (example: YS III), TLSROM (no SRAM) (example: Pro Sport Hocket), TSROM (no battery saving) (examples: Super Mario Bros. 2, Tetris 2)
-- MMC4-based: FKROM (example: Fire Emblem Gaiden)
-- MMC5-based (if you don't use map feature): EKROM (example: Gemfire), ELROM (no SRAM) (examples: Castlevania III, Laser Invasion), ETROM (example: L'Empereur), EWROM (example: Romance of the Three Kingdoms II)
-- VRC6-based: VRC6a (example: Akumajou Densetsu) (ask me if you have VRC6b-- examples: Madara, Esper Dream 2)

EDIT: I also added MMC4 and partial MMC5 support.
MMC2 unfortunately is not doable, because Simon's Quest requires 16 kB ROM bankswitching, and MMC2 only provides it for 8 kB.

You could also implement a mapper for this game in discrete logic. I searched the mapper documentation at NESDev (http://wiki.nesdev.com/w/index.php/Category:Discrete_logic_mappers) to see which mapper would be a good candidate for a "standard" discrete logic mapper for this game, and the one that comes closest is mapper #72. It however has a nasty "latch" mechanism for activating the bank selection, which is why I am not jumping the chance to implement it. All the others have varying problems: Either no bankswitching, or bankswitching is only provided for 32 kB of ROM at time, or 8 kB of ROM at time, or only for half of the CHR space.
If you wanted to implement a mapper in discrete logic, you could go with MMC4 compatibility and ignore the tile number latch specifics. It would probably be the simplest one to do. Or then MMC1.

January 20, 2013, 01:05:10 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

First batch of samples:





What is the common opinion?


Vaguely related: It would be nice if dialog boxes didn't hide people... These screenshots all look rather deserted, heh. But I can guess why they did that: It may be a bit difficult to decide which actors exactly to hide to avoid them appearing on top of the dialog box.  Battle of Olympus and Zelda II solved this by making sure that there is no situation where dialog boxes can appear while there are actors in the middle of the screen. They are always on the bottom of the screen. SMB3 didn't mind. And Final Fantasy uses split-screen. In Faxanadu the actors are hidden, but there is a character portrait which reduces the impact.

KingMike

The only MMC4 games are Fire Emblem, Fire Emblem Gaiden and Famicom Wars. Would be sad to see those used as donors. :(

I guess it wouldn't be as simple as replacing the call to remove all sprites to only remove sprites with X/Y values within (or close to) the window dimensions?
"My watch says 30 chickens" Google, 2018

Bisqwit

Quote from: KingMike on January 20, 2013, 02:23:12 AMThe only MMC4 games are Fire Emblem, Fire Emblem Gaiden and Famicom Wars. Would be sad to see those used as donors. :(

Yup. Though then again, if you replace the ROMs with EPROMs, you can always reprogram the original game in. Depends really on the collector value of those games. In my opinion it is sad whenever any of those old cartridges is destroyed or damaged, even if it's a game that was manufactured in millions. It's a sentimental thing over anything. I went by the C programmer principle here: I give you gun. I take no responsibility over what you do with it.


QuoteI guess it wouldn't be as simple as replacing the call to remove all sprites to only remove sprites with X/Y values within (or close to) the window dimensions?

Maybe computing the window's location on the screen from its coordinates in the nametables is not the easiest possible thing. I don't know. Maybe there's some other reason.
EDIT 2: Here is what it would look like, if the actors were not hidden during dialog! http://youtu.be/RzEmjx7Pfsc
EDIT 3: Here is what it looks like, if only select actors are hidden, as suggested by KingMike: http://youtu.be/IeMCZPgAD5I

EDIT 1: Added partial MMC5 support. Game runs, but map graphics are broken.

Feedback, please! (On the number of things posted here recently.)

Bregalad

QuoteVaguely related: It would be nice if dialog boxes didn't hide people... These screenshots all look rather deserted, heh. But I can guess why they did that: It may be a bit difficult to decide which actors exactly to hide to avoid them appearing on top of the dialog box.  Battle of Olympus and Zelda II solved this by making sure that there is no situation where dialog boxes can appear while there are actors in the middle of the screen. They are always on the bottom of the screen. SMB3 didn't mind. And Final Fantasy uses split-screen. In Faxanadu the actors are hidden, but there is a character portrait which reduces the impact.
This is actually not too hard to do, although I don't know how hard it would be to hack this into Simon's Quest. It is like a collision detection, if both the X and Y coordinates are within a certain range, the sprite should be hidden.

Final Fantasy 1 does not do this by split screen (the split screen only display the text box itself), it does to by software, and hide sprites by OR-ing their status with $20 (set the sprite behind the BG) instead of completely masking them by setting their Y coordinate to a value greater than $ef.
The game also only check the Y coordinate for hiding, not X, therefore if you have a NPC on the leftmost or rightmost tile while you open a textbox it will appear behind the background. It's a funny bug.
Final Fantasy 2 and 3 does this correctly by sofware and by completely disabling the sprites, though.

I have a routine that does this in my game. It does it for each individual sprite, so if a character is made of multiple sprites, the game will individually check on each sprite if it should be hidden or not.

odditude

Lowercase and selective sprite hiding look great!

"Morning Star" is two words in English, although I don't know if it would look OK that way with the silk bag in the adjacent tile.

Bisqwit

I have released version 2.1.0. It includes the lowercase font. The cursive font is still supported, too.
The font is now serif in all places except the password screen. The password screen has only one font. It is not possible to change the font for the prompts but not change it for the input.
It also includes the feature which only hides those actors that would be obscuring the dialog box. Please report to me if there are any problems with it.

Also, I changed the "Morningstar" on the status screen into "MorningStar".

Please report to me if you see something that should be capitalized and is not, or vice versa.

January 23, 2013, 03:55:38 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Released version 2.2.0. It includes support for boards that have only VRAM, no VROM!

As of such, the game can now ALSO be installed on the following types of CHR-ROM-less donor boards:

-- 74161-based: UOROM (no SRAM) (example: Paper Boy 2)
-- MMC1-based: SNROM (examples: Final Fantasy, Maniac Mansion)
-- MMC3-based: TNROM (example: Final Fantasy III), TGROM (no SRAM) (example: Mega Man 4)

However, there are a few limitations to the VRAM version:
-- Crappy map screen, because of inavailability of fast CHR switch.
-- Brief 1-frame blink when walking past town signs. Constant blinking if a NPC walks by the sign at the same time.
-- Requires 256 kB of PRG-ROM instead of 128 kB of PRG-ROM (only 168 kB is utilized, though).
-- PAL VRAM versions do not work properly yet for some reason.

Note that in the patch vending machine, choosing an UNROM mapper without VRAM will make a broken game, because the UNROM board does not have CHR-ROM page switching circuitry.

I did this mostly just as a technical exercise.