11 March 2016 - Forum Rules
Started by Chicken Knife, September 02, 2018, 04:17:10 PM
Quote from: Chicken Knife on March 03, 2019, 09:37:59 AM@ EveryoneUpdated versions of DQ 1 and 2 Delocalized are now live with the new spell names! For those familiar with the style of the Japanese names, I think you will see a lot of similarity. The majority of these are not words we just came up with but actual translations of the Japanese spell names with the addition of suffixes that are generally in the same style. There are rare cases like Ionazun where the Japanese name was already based on an English word (Ion) and we left it as is. There are times we offer a little more meaning than the Japanese versions do. We thought this time around we should err on the side of more meaning versus less. For DQ1:Heali (Heal)Flaro (Hurt)Slumbari (Sleep)Luminara (Radiant)Stopmaju (Stopspell)Vacatara (Outside)Flyrura (Return)Abatetoil (Repel)Helimi (Healmore)Flarama (Hurtmore)For DQ2Heali (Heal)Helimi (Healmore)Heloma (Healall)Curii (Antidote)Vivariku (Revive)Flaro (Firebal)Flarama (Firebane)Aeru (Infernos)Ionazun (Explodet)Exaraki (Defeat)Sacrizaku (Sacrifice)Slumbari (Sleep)Stopmaju (Stopspell)Phantasma (Surround)Softama (Defense)Cosmicaos (Chance)Fortiruto (Increase)Flyrura (Return)Vacatara (Outside)Trapelude (Stepguard)Abatetoil (Repel)Bustiero (Open)
Quote from: AdamDravian on March 03, 2019, 10:58:58 AMI think you handled the spell names perfectly. They're not all immediately obvious, but they provide enough of a context clue that the player should be able to quickly learn them through play (and an occasional reference to the manual)--just as the original Japanese players had to do. Excellent job.
Quote from: Chicken Knife on March 03, 2019, 09:37:59 AMLooks like that clarified the issue, thank you.
Quote from: Chicken Knife on March 03, 2019, 09:37:59 AMYour step about inserting the correct string address--I don't actually know how to determine a specific string address since the Atlas script lumps them into groups. I think there are 20 total. How do you pinpoint the address of one specific string? Something we never discussed.
$FCF1:A5 31 LDA $0031 = #$0E A:00 X:9F Y:02 S:EF P:nvUBdIZc $FCF3:0A ASL A:0E X:9F Y:02 S:EF P:nvUBdIzc $FCF4:AA TAX A:1C X:9F Y:02 S:EF P:nvUBdIzc $FCF5:BD 00 80 LDA $8000,X @ $801C = #$2E A:1C X:1C Y:02 S:EF P:nvUBdIzc
Quote from: Chicken Knife on March 30, 2019, 07:35:07 AMHello folks! It's been quiet on here for a bit but have no doubt that nejimakipiyo and I have been keeping ourselves busy. I just posted a comprehensive update to the Dragon Quest II Delocalized patch that is now in que for approval, version 1.07. It includes a few different components.1st, we decided that the scrolling prologue text and the dialogue during the fall of Moonbrooke needed to be totally rewritten. I originally took only the lightest approach to this text because because none of it was in the original Japanese game. Changes were mostly limited to removing the medieval wordings. Over time I began feeling like the writing style did not match up with what we achieved in the rest of the game based on Horii's writing style. The most significant examples include lines like "Oh, such a brave beauty" the Monster mocked her. And the following: The King was enraged: "Touch her and thou shall not survive this day!" He challenged the fiend. Nejimakipiyo and I decided to look at the Japanese SFC text as a base and found that it fit the tone and style of the rest of the game much better. I will admit there were some challenges in using this text as a base because of elements that play out differently in both versions. For instance, the SFC version does not have the invading monsters speak at all. Frankly, this is preferable as monsters hardly ever speak in the game beyond "kekekeke." When the English game required some dialogue from monsters, we chose to use exactly that--"kekekeke" and I believe it is a significant improvement. We are also very happy to have gotten rid of all that third person text like "And then the king spoke to the princess" etc. Now each shift in speaker is denoted by their name and a colon preceding the text, as is standard in these kinds of games. It also recently came to our attention that there were text bugs in the equip menu which go back to the original English DW2. Instead of SHIELD, the equip menu showed SHILD. Also, every screen of the equip menu would show DEFENC POWER. After working with abw on setting up an extraction / insertion of menu data through his abcde software, we were able to expand the text of SHILD into SHIELD as well as make the choice to alter DEFENC POWER into DEFEND POWER (expanding the latter would have required significant menu retooling which I don't believe should be necessary. Beyond that, approximately 20 other text improvements were made based on closely observing a recent play through. The most significant changes were modifying our town name Lirizia to Liriza which is both better aligned to the Japanese name and makes the town sound less like one of the major surrounding castles. We also fixed a problem where the Dragon King's grandson sounded like he was indicating that the Shrine of Rubiss could be found on an island to the south. He was supposed to be telling you to start your search for crests on the island to the south. Many other small text improvements were made but those are the two most significant. As far as DQ3, that is coming along. Nejimakipiyo is chipping away on her fresh translation of the text which I will eventually help edit and work on inserting. In the meantime, I will be working on leveraging various resources to improve my understanding of ASM--hopefully to the point where I can eventually fix several of the minor bugs and issues that plague DW3.
Quote from: Choppasmith on March 31, 2019, 06:28:32 PMAnyway, when you're talking about having proper (name) usage. Did you guys do anything with how (name) works? As far as I can tell, it's just a line by line context. In the remakes they have separate macros for various names: Midenhall's name ($07 in the mobile version), Cannock's name ($0D), Moonbrooke's name (0E), and even one for whoever is the leader of the party (0F)
QuoteAlso, I had a question. In Beran (I don't know what you named it, the city with the portal to Rhone/Rendarak) there's a Priest NPC just below the room with the locked door to said portal. In the original, they ask you the time followed by a yes or no prompt. What was it originally? What did you go with? In the remake said NPC just says something along the lines of: That Hargon is an abomination who will be struck down by the Goddess! with no prompt. I know the town where you get the ship there's an NPC in the original who says "I have nothing to say to thee. (separate line) Nope nothing at all." The same NPC in the remake says "Begone! I prefer the company of women! ( separate line for when Moonbrooke is in the party) Oh hello there, why don't you join me for a drink my pretty *hic*" I can only imagine the original line was meant to be like the remake and I'm curious what that other line was. I figured it's probably something a little more risqué that had to be censored?
Quote from: Chicken Knife on March 31, 2019, 06:56:43 PMYes, I know exactly which character you are refering to in "Beranoor." This was censored in the original and also censored in the remakes it seems. I actually have his text as one of the photos I posted on the publish page for the hack. He asks you if you believe in God. If you say no, he complains about it and blames the issue on Hargon. If you answer in the affirmative, he says: I thank you very much indeed!
QuoteIn Rupugana / Lianport, the man you are referring to said the following in the Japanese and therefore our version: ']You two guys can get lost[.'] and [wait][ ']Hey, missy with the nice behind.[wait]Why don[' -67]t you come have a drink with me at the bar? Hic[.'] I think this text is dependant on whether or not she is alive, just like the censored puff puff text in the same town. Speaking of, was that uncensored in the remake? Was there a hint for it? I had to add one. Couldn't have players pass that by.
QuoteGood catch with those censored bits. There are a couple others like a guy who is pissing in the bushes and yells at you for catching him in the act. I think that's in Liriza / Leftwynn. I'm curious how the remake handled the text in the undersea cave. In the original they are clearly priests in Hargon's order who are in the midst of offering prayers to Shido/Malroth. The original changed the scenerio to some silly business about a wizard's house. If you want a copy of my atlas file so you can reference our directly translated text, I'm happy to send it.
Quote from: Chicken Knife on March 31, 2019, 06:56:43 PMKnowing abw, I predict that he is going to offer a way to retool the game to allow us to manipulate this, but I also predict that the complexity of that would be quite prohibitive.
Quote[no voice]Then the King spoke[line][no voice]to the Princess:[wait][line]'Thy life is in danger, my daughter. Hide thyself now, and whatever happens to me thou must be strong[.'][wait][line]'But Father!' cried the Princess.[wait][line]'Hurry,' commanded the King.[wait][line]'I must go to warn my cousin, the King of Midenhall[.'][end-FC]
Quote from: abw on April 01, 2019, 06:43:44 PMPfft. Did you guys even try this? The [name] control code just prints out whatever happens to be stored starting at $6119; the logic for deciding what to store at $6119 happens elsewhere, but as it turns out, the prologue already does store Moonbrooke's name there just before displaying this string:So from there until the next time $6119 gets overwritten (by Midenhall's name just before the King starts talking to you), you can use Moonbrooke's name as much as you want, which in particular covers the "'Oh, such a brave beauty,' the Monster mocked her." line. If you want to use her name in one of the earlier lines, though, that'll take some more work, since by default you'll just get whatever random string happened to be left over in $6119 from earlier events.
Quote from: Chicken Knife on April 02, 2019, 07:06:24 AMWell, I'll be damned. I wonder what possessed them to store the princess's name *exactly* where I would need it stored 28 years later when they themselves didn't use it.
Quote from: Chicken Knife on April 02, 2019, 07:06:24 AMOne thing I find interesting as I do some testing is that their names are not paired--each seems to be matched with different names on occaision. I've always believed it worked the other way where the two names came together as fixed pairs.
; control flow target (from $ACE7)0x01ACFB|$06:$ACEB:A9 00 LDA #$000x01ACFD|$06:$ACED:A2 03 LDX #$030x01ACFF|$06:$ACEF:18 CLC; control flow target (from $ACF7)0x01AD00|$06:$ACF0:7D 09 70 ADC $7009,X ; first 4 characters of Midenhall's name0x01AD03|$06:$ACF3:7D 63 70 ADC $7063,X ; last 4 characters of Midenhall's name0x01AD06|$06:$ACF6:CA DEX0x01AD07|$06:$ACF7:10 F7 BPL $ACF00x01AD09|$06:$ACF9:48 PHA0x01AD0A|$06:$ACFA:29 07 AND #$07 ; Cannock's name is based on bits 0-2 of the sum of Midenhall's name0x01AD0C|$06:$ACFC:0A ASL ; << 3 since names are 8 bytes long0x01AD0D|$06:$ACFD:0A ASL0x01AD0E|$06:$ACFE:0A ASL0x01AD0F|$06:$ACFF:AA TAX0x01AD10|$06:$AD00:A0 00 LDY #$00; control flow target (from $AD18)0x01AD12|$06:$AD02:BD 39 AD LDA $AD39,X ; pointer to list of Cannock names, starting at 0th byte0x01AD15|$06:$AD05:99 0D 70 STA $700D,Y ; store the first 4 characters in SRAM0x01AD18|$06:$AD08:99 18 01 STA $0118,Y ; store the first 4 characters in RAM0x01AD1B|$06:$AD0B:BD 3D AD LDA $AD3D,X ; pointer to list of Cannock names, starting at 4th byte0x01AD1E|$06:$AD0E:99 67 70 STA $7067,Y ; store the last 4 characters in SRAM0x01AD21|$06:$AD11:99 8A 01 STA $018A,Y ; store the last 4 characters in RAM0x01AD24|$06:$AD14:E8 INX0x01AD25|$06:$AD15:C8 INY0x01AD26|$06:$AD16:C0 04 CPY #$040x01AD28|$06:$AD18:D0 E8 BNE $AD020x01AD2A|$06:$AD1A:68 PLA0x01AD2B|$06:$AD1B:29 38 AND #$38 ; Moonbrooke's name is based on bits 3-6 of the sum of Midenhall's name0x01AD2D|$06:$AD1D:AA TAX0x01AD2E|$06:$AD1E:A0 00 LDY #$00; control flow target (from $AD36)0x01AD30|$06:$AD20:BD 79 AD LDA $AD79,X ; pointer to list of Moonbrooke names, starting at 0th byte0x01AD33|$06:$AD23:99 11 70 STA $7011,Y ; store the first 4 characters in SRAM0x01AD36|$06:$AD26:99 1D 01 STA $011D,Y ; store the first 4 characters in RAM0x01AD39|$06:$AD29:BD 7D AD LDA $AD7D,X ; pointer to list of Moonbrooke names, starting at 0th byte0x01AD3C|$06:$AD2C:99 6B 70 STA $706B,Y ; store the last 4 characters in SRAM0x01AD3F|$06:$AD2F:99 8E 01 STA $018E,Y ; store the last 4 characters in RAM0x01AD42|$06:$AD32:E8 INX0x01AD43|$06:$AD33:C8 INY0x01AD44|$06:$AD34:C0 04 CPY #$040x01AD46|$06:$AD36:D0 E8 BNE $AD200x01AD48|$06:$AD38:60 RTS
Quote from: Chicken Knife on April 02, 2019, 08:54:33 AMWould be nice if the names appeared with more equal probability.
Quote from: Choppasmith on April 02, 2019, 05:38:56 PMSorry, only asked because Chicken Knife made it sound like there was some alterations already done. My bad. Didn't mean to trouble you. But that is interesting, thanks. I had initially thought that Midenhall's name would be the default. Gives me something to look out for when I get to testing as I thinking I added some NPC dialog that adds Midenhall's name (as mentioned above, they can all be individually mentioned with unique byte values in text).
Quote from: abw on April 03, 2019, 10:38:20 PMIf you wanted to spice things up a bit, it should only take very minor code changes to ask the random number generator for a number and use that to determine which name to assign; probably the trickiest part of that would be that finding the random number generator first.
0x1AD07: A5 32
Quote from: Ray572 on April 06, 2019, 03:48:36 AMHelloI find it great that they have changed the title that corresponds to these games. By chance will you have the patch to change only the title? is to patch the game in Spanish.
Quote from: abw on April 06, 2019, 01:56:40 PMSo, I decided to take a look at this. Rather than try to guess which of the various frequently-updating RAM addresses might be where random numbers get stored, I decided to use the crazy fortuneteller in Osterfair as my starting point. A read breakpoint on the direction names at $06:$9250-$9265 got me the code for displaying direction names (I could also have started with the F9 control code that reads from $5A and set a write breakpoint on $5A to get the same result), and after looking at what the code was doing, it's clear that the random direction is determined by the value $32|$33, and immediately before the reads on those addresses, there's a call to $C3AB, which does a bunch of bit operations to scramble the values of $32 and $33. $C3AB is also called from all over the place, so that looks like our random number generator code.With that knowledge, we can either make an explicit call to the RNG during Cannock/Moonbrooke name generation, or since the RNG gets called plenty of other times already, we can just be lazy and read $32 directly to get our random number. The following patch seems to work out pretty well for me:Code Select Expand0x1AD07: A5 32
Page created in 0.074 seconds with 20 queries.