Castlevania II (Simon's Quest) - Multilingual enhancement

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

Previous topic - Next topic

Rodimus Primal

I vote make it optional. It's actually something I'd keep unchanged myself. It's like the Day Night transitions. It's nice to have it switch automatically, but I like keeping aspects of the original game intact and I'm glad it's an option for people.

storall

I thought stairs knockback would be an option, like blinking Simon..?

Rodimus Primal

Quote from: storall on August 04, 2020, 07:52:34 PM
I thought stairs knockback would be an option, like blinking Simon..?

That's what I mean. He is asking about adding an extra feature to the vending machine, which I am perfectly fine with more options to fit people's preferences.

Bisqwit

#1143
I would collate the extra feature into some existing feature in the vending machine, most likely by grouping the "drop from stairs" and "stun on stairs" features behind the same option.
As I wrote earlier, the combinatory explosion of the vending machine means more effort in hosting it (due to less effective caching), and to my understanding too many options generally confuse people.
Just like at this time, "Japanese version functionality restored" controls both the toast ending and the title screen start prompt blinking, even though they are individually switchable in the backend; and the backend also supports having neither SRAM nor password feature, which is an option the frontend does not provide. Sames goes for the whips and clues. And the "Blink simon" feature used to also control the voluntary dropping from stairs, although I have not separated them in the frontend in anticipation of this vote.

fissil

Hello. I'd like to report a bug I noticed in the Japanese version. (Image included in the spoiler below.)
Spoiler
[close]
In case the image gets deleted, or in case the issue is not clear:
The signpost in the centre of the first town has issues displaying the arrow pointing to the west; the pointed side is cut off - only a line is displayed.
I am using the most recent version, with Japanese text, Mapper 4, and No Additional Dialogue; all other options left default.

I'm all for adding more options to the patcher! Is your concern that the options page will get too bloated, or something else? Personally, I'd really prefer an option that keeps the default text-box size if that's not too much trouble. While I appreciate the amount of work that has gone into the new design, I'm heavily biased for the old-fashioned look.

Euyira

I think offering original high-quality TERROR-TORY map would benefit those who don't prefer help of in-game map. Plus translation of Japan manual for complete experience.


Quote from: Bisqwit
Additionally, merging some of the options means that the cache of all patches people have been requesting from the machine does not grow quite that large (they are cached on disk for performance reasons). Seeing as to how every additional option doubles the number of possible patches.

Could real-time generation of rare combinations allow more choice selection? I'd sift through lots of tweaks if offered.

Bisqwit

#1146
Quote from: fissil on August 05, 2020, 04:17:47 AMHello. I'd like to report a bug I noticed in the Japanese version. (Image included in the spoiler below.)

Thanks for the report! I have been neglecting testing using that version. I will look into this.

Quote from: fissil on August 05, 2020, 04:17:47 AMPersonally, I'd really prefer an option that keeps the default text-box size if that's not too much trouble. While I appreciate the amount of work that has gone into the new design, I'm heavily biased for the old-fashioned look.

Hmm... While the insertor can adapt to any custom box sizes, the box size is not currently a backend option; it is a translator resource; the box sizes and the translation strings are a unit. I may have to look into this idea. However, the few lines that I rephrased to take advantage of the larger box size would not fit in the original box size. If I try it for testing, I get five errors and eight warnings on the current English version. For example (third picture is the pre-resize text, which only exists in the version history, and of course, the fourth picture is from the original NAR game):


August 05, 2020, 03:09:02 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: storall on August 04, 2020, 06:32:50 PMQuestion about trampoline: would BRK be more efficient?
Hmm...
The reason why I am not enthusiastic about using BRK is because my retranslation targets several boards, some of which are capable of generating IRQs, and the existing code pretty much treats IRQ as an error condition. IRQ and BRK cause the same code to be run.
However, to answer your question. JSR+RTS is 12 cycles, BRK+RTI is 13 cycles. However, you would also need extra code to deal with the flags that are pushed to the stack, which would further increase the runtime cost of the trampoline. Sizewise, BRK is two bytes shorter per call.

Euyira

Quote from: Bisqwit
Hmm... While the insertor can adapt to any custom box sizes, the box size is not currently a backend option; it is a translator resource; the box sizes and the translation strings are a unit. I may have to look into this idea. However, the few lines that I rephrased to take advantage of the larger box size would not fit in the original box size. If I try it for testing, I get five errors and eight warnings on the current English version.

I have an odd suggestion for this problem: create your own "scrolling text" or "button prompt" code when script doesn't fit?

Bisqwit

#1148
Quote from: Euyira on August 05, 2020, 11:56:25 PMI have an odd suggestion for this problem: create your own "scrolling text" or "button prompt" code when script doesn't fit?

Would be difficult to do. Since the decoded text is not cached anywhere, to scroll the window the game would have to either repeatedly read back from the PPU in order to write the screen contents somewhere else on the screen (which is slow), or to backtrack in the decoding which the text format is not really designed for. A pause prompt that clears the window for more would be doable, but not nice from the user's perspective. A much better approach is to have the box big enough to not have to scroll in the first place. :P

August 06, 2020, 09:18:51 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

VERSION 2.12.0 RELEASED

Bugfixes:
— Fixed formatting issues with Japanese text
— Fixed printing of morning text (2.11.1 regression I think)

Features:
— It is now possible to select reduced dialog box sizes in the vending machine. This will cause the insertor to choose alternative translations for some texts that would not fit otherwise. This feature works with English and Finnish, but may break Tagalog or Spanish if used.
— It is now possible to select campy day/night texts in the vending machine. This feature affects only English and Finnish.

Internal changes:
— Caching is now used for particularly heavy parts of the insertor.

Masked Dedede

The 'Yes' option for "Fade palettes on day/night time transitions" in the vending machine has the night transition dialogue.
Bottom Text

Bisqwit

#1150
Quote from: Masked Dedede on August 06, 2020, 08:10:25 PMThe 'Yes' option for "Fade palettes on day/night time transitions" in the vending machine has the night transition dialogue.
Confirmed, and fixed. Please resubmit the form. It will then download the correct file with the missing F in its filename.

helaku

From my point of view, a selection between "Whips and clue browser", "Whips", "Clue browser" and "No" it's necessary.

I don't see any logic behind this, why the player needs to exchange his powerful whip to a lower one? (the only logic I see behind this is for the diehard players?)
Instead, a clue browser is mandatory for a player to remind him of the clues he found.

Maybe in the future you will implement this in the vending machine, Bisqwit?

Best regards!
Have at you!

Bisqwit

#1152
Quote from: helaku on August 08, 2020, 05:19:06 AMI don't see any logic behind this, why the player needs to exchange his powerful whip to a lower one? (the only logic I see behind this is for the diehard players?)
This feature is for two purposes.
— If you accidentally purchase a weaker whip, this feature mitigates the loss.
— It helps testing.
And it logically makes sense. When you purchase a whip, you don't barter the old one away (unlike with the crystals). You keep it.

Euyira

11.3 and 12.0 have a save screen glitch - scroll down and top menu bar flashes. Does not happen with 11.2.

raven2061

Maybe add Improved control patch to the vending machine?

ifightdragons

Quote from: raven2061 on August 13, 2020, 04:49:42 AM
Maybe add Improved control patch to the vending machine?

I wholeheartedly second this! And also the individual Annoyance fixes patches - especially the False floors fix. These patches are almost a must to fully enjoy this game, for a lot of people.

hackbar

I'd also like to have the clue browser without the whip selection.

Bisqwit

#1157
I can only add to the vending machines patches that support relocation. This essentially rules out all third-party patches.
This might be changed if I had source code to said patches.

The insertor operates on two kinds of blobs (sequences of bytes that must be written in the ROM):
— Blobs that must be placed at some particular fixed address
— Blobs that must be placed anywhere within some particular set of banks.
These blobs may have any number of labels (publics) in them, pointing to particular offsets inside those blobs, and references (externs) to other blobs, which are usually either 16-bit, bank-number, or both, but other options are supported too. Fixups are not currently supported, so if you need one, your blob must define both an extern and a public that resolve to the same blob.

There is also an option for placing a group of blobs in whatever bank as long as they are all placed in the same bank, but this option is not used in the Simon's Quest project.

The usual manner is that you have a two-byte blob, holding a pointer; it contains just a two-byte reference, by name, to a secondary blob; and a secondary blob, which defines that name at offset 0, at it can be placed by the insertor in any address within some select banks. This allows the latter to be relocated, and the pointer in a fixed address to be automatically adjusted to point to the second blob. The insertor does all sorts of sanity checking to make sure that the same address is not written to twice, but it requires that all writes that must target a particular address are declared in a particular way.
If the secondary blob is a rewrite of some existing function or data structure in the game, usually the original location of that data must be also marked as free space, so that the insertor can repurpose it.


August 14, 2020, 12:02:08 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: hackbar on August 14, 2020, 03:00:23 AMI'd also like to have the clue browser without the whip selection.
Added support for that. Effective all versions that support the clue browser.
EDIT: It looks like the insertor does not actually add the clue browser code unless the whips feature is enabled, so this combination is not supported.
EDIT 2: Addressed in release version 2.12.0.1.

hackbar

The site looks broken now - it's returning 500 on the download.

Sparky Z

Is anyone else having trouble getting the Vending Machine to work? I've been trying for a couple of days (across 2 computers, multiple browsers, various combinations of settings) and all I get when I click the download button is a page that looks like this: