Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Vehek

Pages: [1] 2 3 ... 105
Quote from: Zeality
Is he really insinuating that the Kid who saved Serge is the same Kid we meet in the normal course of the game?
Not quite. It gets a bit muddled up by the unedited MTL's handling of pronouns, but it's referring to Serge saving Kid, not the other way around. (Remember, according to Lucca, that mission is supposedly still in Kid's future.)
The segment from the Ultimania I mentioned, from page 465, was one of the many parts that had previously received a rough translation from BubbleBobby2000 in the old Ultimania Translations FAQ. Here's the end of it for reference.
When he did so, Serge, made acquaintance with Kid when she was young... When you meet her for the first time in Cape Howl, try to remember how she looked like.

The question from the most recent Q&A gets at the same thing, that Kid's behavior in her introduction (probably stuff like "Serge...Your name's Serge, ain't it?") hints that she recognizes Serge from her childhood, but Kato's answer adds that she keeps quiet because she can tell that Serge doesn't know about it.

Chrono Trigger Modification / Re: Stuck on a few things.
« on: November 28, 2023, 09:33:04 pm »
I don't know where it determines how long before it plays the blink animation, but this is where the animation is selected.
Code: [Select]
C0/A23D:        B98016          LDA $1680,Y
C0/A240:        C921            CMP #$21
C0/A242:        F00F            BEQ $A253
C0/A244:        A921            LDA #$21
C0/A246:        998016          STA $1680,Y
C0/A249:        A900            LDA #$00
C0/A24B:        998116          STA $1681,Y
C0/A24E:        A900            LDA #$00
C0/A250:        990116          STA $1601,Y
C0/A253:        60              RTS
I don't think there's any difference in which animation will play between player characters. If there's an issue, maybe there's something wrong with human Glenn's animation data, causing it to pick inappropriate animation frames, or the frames it calls haven't been set up.

My comments and notes on part of the last round of Q&A, as translated by DeepL.
-When the Kid first met Serge, he said something a little tricky when he heard his name, [did Kid remember that Serge saved him when he was a child?]

Kato: Yes.
Yes, he did. I don't think the Kid ever forgot. But Serge doesn't seem to know who he is, and he actually looks younger than he did that night, so I guess he's still trying to keep it all to himself for now.
I hunted through the forums, but I don't think anyone here suggested that Kid recognized Serge from the beginning. (When Zeality analyzed parts of the Ultimania with DeepL, he found a similiar claim.) Smacks of predestination though. The assumption on the timeline pages is that the orphanage sequence is a genuine tweak to history, not something that was supposed to have happened all along.

-After the last fight, Serge vaguely remembers the trip, but does he forget it afterwards? If he remembers, does Serge also continue to search for the Kid?

I don't know. I think Serge's memories of the trip may fade little by little. That is why Kid is searching for Serge somewhere, wandering through many time lines. To meet again someday.
Another confirmation that it's supposed to be Kid searching for Serge. It being because he eventually forgot the adventure sounds new though.

-If Sarah's pendant was passed on to the Kingdom of Gardia from Sarah's hand, which was swallowed by the dimensional vortex, to the Kid, how did it get to the Kingdom of Gardia?

There may have been another story where the Kid, Serge and others traveled back in time and crossed over to the continent before the collapse of Galdia .......

The Compendium's stance on this, as stated on the "Pendant Paradox" page, is that thanks to Time Traveler's Immunity and Time Bastard it doesn't matter whether it was a heirloom in the new timeline; Crono materializes with the pendant and the team's adventure goes on unhindered. Another reminder that the original creators may not have thought things out as much as fans do.

-The title of the group picture that was released just before the release of the remastering and displayed at the cafe, "Let it be the days of our dreams," really resonated with me. Who gave it this title? And to what extent does this "we" include us?

Almost 25 years have passed since Cross was launched.
The days that we, the staff, spent to create Cross and ......, and the days of the lives of the players who loved Cross and .......
Our Dream Days" is the counterpart of "Dream, Dream, Days of My Soul," which was named with this in mind.
The artwork that was asked about is the key art for the Remaster, and the music track mentioned is called "Dreams of the Past, Memories of My Soul" in English.

So the Japanese Twitter account resumed answering questions briefly on July 6! The day before, they made an announcement that it would run until August. They posted one answer each on Thursdays, Saturdays, and Tuesdays. Unfortunately, Twitter now being mostly locked out to guests has crippled the "find the original version of the question" part of my usual procedure. (That saved some time typing up the question in its entirety.)
























Chrono Trigger Modification / Re: Temporal Flux Plugins
« on: January 19, 2023, 11:06:59 pm »
Hmmm... I was pretty sure that somebody figured this out before... and that what I suggested, could elaborate upon it by a few simple hacks.

You might remember from back in the day there was an event trick to color the text.
How to change text color:

I don't know the details for it but apparently this command can change the color of the text in the dialogue boxes:

MemCpy2E(43, 09, 05, 01, 00)

This one makes the text yellow, but other variants are possible.
(Now known as "ColorMath", under Scene Manipulation. Don't know the equivalent parameters under the revised command description yet.)
But that changed all the text at once. It appears to alter the palette data directly. The text is still sharing one palette. I think the SNES can't update VRAM (including the palette) on the horizontal render, only vertical (by scanline), and that still requires some tracking to time it right.

Chrono Trigger Modification / Re: Temporal Flux Plugins
« on: January 18, 2023, 11:01:34 pm »
This is something I once heard about regarding a different game, but on the SNES, you can't color each character separately in a game with a variable-width/proportional font. The background layers of the SNES are tile-based, including which palette they use. In a VWF, a single tile will contain parts of multiple letters. So that one palette would be applied to multiple parts, or sharply change mid-letter on the next tile.

Chrono Compendium Discussion / Re: Encyclopedia needs Editing
« on: November 24, 2022, 09:54:31 pm »
Well, it's a bit late for this now... I noticed that all references to "Miwa Showa" were recently changed to "Miwa Ikuta...even though the official reading of her surname is "Shoda". ("Ikuta" is apparently a much more common reading.) I mean, it's even there in her website url that one of the interviews was taken from!

That first one at least looks like the one Shmpulations translated.
But I'm guessing it was taken from the same Japanese site and thus its original source is still unidentified.

Did DeepL leave out some parts when translating huge chunks?
Some parts are missing, sometimes important to the context of the question.
For example, the Dreamstone one above, when I throw it through DeepL today:

The Frozen Flame and the Ancient Drystone seem to be strictly separate, but are they related in any way?

Both are set up as part of Lavos that fell to the ground.
(parts in bold are what's absent)
This random one I noticed when scrolling through the page:
-Do the dragon gods have their own gender, or is this a spiritual thing? Or is it a sign of generational change?

This is the image of the individual division. There is no generational change.

Or the final answered question:
-After the battle with Dario, Grandrion is freed from his hatred, but the flow of events in which his liberation seems to be fulfilled just by defeating him is a bit disconcerting considering the development of the ending. Was there some hidden condition?

At least one of the interviews explained it.
I made a rudimentary search-and-replace tool that replaced all those syllables or phonemes with the corresponding tokens. We translators would tweak these by hand, then we would add those tweaks to a dictionary file so the system gradually improved as we taught it better implementations. It was a real head-ache that I doubt many loc teams would ever be able to implement. (Thanks to Yutaka, Sammy, and Rich for putting up with all the extra workload I added to them!)

One thing that confuses me is how portraits are called. There doesn't seem to be a command for it in the CSV files, which is strange. Does the event code itself call portraits and assign lines to it? Will try to dig deeper into this.
Yeah. You can see some of the commands related to it in the old reverse-engineering documentation.
62 QQRR SSTT UUVV WWXX YYZZ - Set up a dialogue window at screen coordinates RRQQ, TTSS, with width VVUU, height XXWW, and flagset ZZYY (ZZYY = 64 -> display portrait)
9E XXYY - Set Dialog Portrait: Set current dialogue portrait to number YYXX
E3 WW XXYY ZZ - If character WW is in the party, have him say message YYXX from the corresponding dialogue file
E0 XXYY ZZ - Message: Display message YYXX from the corresponding dialogue file.
It's been a long, long time since I actively worked on Chrono Cross, so I can't say much, other than than evidently making an active party member speak is different from an NPC/out-of-party instance of a PC. Just which portrait is automatic in the former case.

This, for example, is from one of yaz0r's tools.
Code: [Select]
0x0299: SETUP_DIALOG_WINDOW( X:150, Y:50, LettersHigh:0, LettersWide:0, Flag:0)
0x02A4: CHARACTER_DIALOG(Kid, 0x0002, 0x08)

|Just you wait, Lynx!
|Today's gonna be the
|day of reckonin'!!!
|Say yer prayers!
|...Not that it'll
|do ya any good!!!<Close>

(To be clear, dialogue text was not part of the raw event data. The dumper splices it in from the area's dialogue data section for convenience.)

Chrono Trigger Modification / Re: Enabling Tile Animations (wip)
« on: August 03, 2022, 04:31:03 pm »
Ran a trace log on one of those offsets in the OP. So going off the raw machine code, those offsets for the second and third groups of unknown data are off by a few bytes.
The data Zakyrus was editing starts at 3DF9C7, two bytes per palette-set. The value it loads is used as an offset into unknown data starting at 3DFA77, and that's about as far as I've analyzed.
Code: [Select]
FD/E2A5:        AEFE01          LDX $01FE
FD/E2A8:        BF0300F6        LDA $F60003,X ;Palette number in location data
FD/E2AC:        0A              ASL A
FD/E2AD:        AA              TAX
FD/E2AE:        C220            REP #$20
FD/E2B0:        BFC7F9FD        LDA $FDF9C7,X
FD/E2B4:        AA              TAX
FD/E2B5:        A92005          LDA #$0520
FD/E2B8:        8D8121          STA $2181
FD/E2BB:        A90C00          LDA #$000C
FD/E2BE:        8518            STA $18
FD/E2C0:        E220            SEP #$20
FD/E2C2:        A900            LDA #$00
FD/E2C4:        8D8321          STA $2183
FD/E2C7:        A00000          LDY #$0000
FD/E2CA:        BF77FAFD        LDA $FDFA77,X
FD/E2CE:        29F0            AND #$F0
FD/E2D0:        F032            BEQ $E304

FD/E2D2:        C910            CMP #$10
FD/E2D4:        F034            BEQ $E30A
FD/E2D6:        C980            CMP #$80
FD/E2D8:        F030            BEQ $E30A
FD/E2DA:        BF77FAFD        LDA $FDFA77,X
FD/E2DE:        992005          STA $0520,Y
FD/E2E1:        E8              INX
FD/E2E2:        BF77FAFD        LDA $FDFA77,X
FD/E2E6:        992105          STA $0521,Y
FD/E2E9:        E8              INX
FD/E2EA:        BF77FAFD        LDA $FDFA77,X
FD/E2EE:        992205          STA $0522,Y
FD/E2F1:        E8              INX
FD/E2F2:        A900            LDA #$00
FD/E2F4:        992305          STA $0523,Y
FD/E2F7:        992405          STA $0524,Y
FD/E2FA:        BF77FAFD        LDA $FDFA77,X
FD/E2FE:        992505          STA $0525,Y
FD/E301:        E8              INX
FD/E302:        8074            BRA $E378

FD/E304:        E8              INX
FD/E305:        992005          STA $0520,Y
FD/E308:        806E            BRA $E378

FD/E30A:        48              PHA
FD/E30B:        BF77FAFD        LDA $FDFA77,X
FD/E30F:        992005          STA $0520,Y
FD/E312:        E8              INX
FD/E313:        BF77FAFD        LDA $FDFA77,X
FD/E317:        992105          STA $0521,Y
FD/E31A:        E8              INX
FD/E31B:        BF77FAFD        LDA $FDFA77,X
FD/E31F:        992205          STA $0522,Y
FD/E322:        E8              INX
FD/E323:        A900            LDA #$00
FD/E325:        992305          STA $0523,Y
FD/E328:        992405          STA $0524,Y
FD/E32B:        BF77FAFD        LDA $FDFA77,X
FD/E32F:        992505          STA $0525,Y
FD/E332:        E8              INX
FD/E333:        BF77FAFD        LDA $FDFA77,X
FD/E337:        992605          STA $0526,Y
FD/E33A:        E8              INX
FD/E33B:        BF77FAFD        LDA $FDFA77,X
FD/E33F:        992705          STA $0527,Y
FD/E342:        E8              INX
FD/E343:        BF77FAFD        LDA $FDFA77,X
FD/E347:        992805          STA $0528,Y
FD/E34A:        E8              INX
FD/E34B:        68              PLA
FD/E34C:        C980            CMP #$80
FD/E34E:        D028            BNE $E378

FD/E350:        C221            REP #$21
FD/E352:        8A              TXA
FD/E353:        6977FA          ADC #$FA77
FD/E356:        992905          STA $0529,Y
FD/E359:        A90000          LDA #$0000
FD/E35C:        E220            SEP #$20
FD/E35E:        A9FD            LDA #$FD
FD/E360:        992B05          STA $052B,Y
FD/E363:        B92005          LDA $0520,Y
FD/E366:        290F            AND #$0F
FD/E368:        850E            STA $0E
FD/E36A:        640F            STZ $0F
FD/E36C:        C220            REP #$20
FD/E36E:        8A              TXA
FD/E36F:        38              SEC
FD/E370:        650E            ADC $0E
FD/E372:        AA              TAX
FD/E373:        A90000          LDA #$0000
FD/E376:        E220            SEP #$20

FD/E378:        98              TYA
FD/E379:        18              CLC
FD/E37A:        690C            ADC #$0C
FD/E37C:        A8              TAY
FD/E37D:        C948            CMP #$48
FD/E37F:        F003            BEQ $E384
FD/E381:        4CCAE2          JMP $E2CA

FD/E384:        A900            LDA #$00
FD/E386:        992005          STA $0520,Y
FD/E389:        992C05          STA $052C,Y
FD/E38C:        993805          STA $0538,Y
FD/E38F:        994405          STA $0544,Y
FD/E392:        995005          STA $0550,Y
FD/E395:        995C05          STA $055C,Y
FD/E398:        AB              PLB
FD/E399:        2B              PLD
FD/E39A:        28              PLP
FD/E39B:        6B              RTL

Attachments are very simple. Under the reply box, there's a section called "attachments and other options". Expand it, and there you can attach files to the post.

This is a list of SDK functions I got using radare2 (note: I was using a version from a few years ago) and FLIRT signatures originally meant for IDA.
Code: [Select]
0x80010008    3 172          flirt.__SN_ENTRY_POINT
0x800100f4   19 304  -> 300  flirt.atoi
0x80010284    5 48           flirt.bzero
0x800102b4    4 64           flirt.toupper
0x800103d4    5 64   -> 52   flirt.memcpy
0x80010414    8 112  -> 108  flirt.memmove
0x80010484    5 48           flirt.memset
0x800104b4   11 252          flirt._putchar
0x800105b0    3 60           flirt._putchar_flash
0x80010714    5 96   -> 84   flirt.puts
0x80010774    1 48           flirt.rand
0x800107b4    1 60           flirt.setjmp
0x80010834   10 176  -> 164  flirt.strcat
0x80010924   10 112  -> 100  flirt.strcmp
0x80010994    6 80   -> 68   flirt.strcpy
0x800109e4    6 64   -> 52   flirt.strlen
0x80010d04    6 112          flirt.todigit
0x80011164    4 192  -> 180  flirt.SetDefDrawEnv
0x80011224    1 64   -> 60   flirt.SetDefDispEnv
0x80011264    1 64   -> 60   flirt.GetTPage
0x800113a4    1 64   -> 60   flirt.AddPrim
0x80011474    4 48   -> 40   flirt.SetSemiTrans
0x800114a4    4 48   -> 40   flirt.SetShadeTex
0x80011794    5 48   -> 44   flirt.SetDrawTPage
0x800117c4    4 96           flirt.SetDrawMove
0x800118d4    4 112          flirt.SetTexWindow
0x80011c34   12 372          flirt.ResetGraph
0x80011eb8    3 96           flirt.DrawSyncCallback
0x80011f18    7 152          flirt.SetDispMask
0x80011fb0   18 388          flirt.DrawSync
0x80012134    1 144          flirt.ClearImage
0x8001225c    1 96           flirt.LoadImage
0x800122bc    1 96           flirt.StoreImage
0x8001231c    5 184          flirt.MoveImage
0x8001249c    3 172          flirt.ClearOTagR
0x800125a4    3 112          flirt.DrawOTag
0x80012614    3 192          flirt.PutDrawEnv
0x800127ac    1 52           flirt.GetDrawEnv
0x800127e0   75 1272         flirt.PutDispEnv
0x80012cd8    1 52           flirt.GetDispEnv
0x80015784    1 32           flirt.atol
0x800157a4    1 32           flirt.atol
0x80015810   14 208  -> 204  flirt.PadGetState
0x800159d4    7 224  -> 152  flirt.PadInfoAct
0x80015bd0    1 256  -> 72   flirt.PadInfoMode
0x800165a4    1 204          flirt.PadStartCom
0x80016670    1 68           flirt.PadStopCom
0x800187d4   19 224  -> 220  flirt.__gedf2
0x800188b4   37 896  -> 884  flirt.__adddf3
0x80018c34   12 256  -> 244  flirt.__fixdfsi
0x80018d34    1 16   -> 12   flirt._bu_init
0x80018d74    1 16   -> 12   flirt.InitCARD2
0x80018d84    1 16   -> 12   flirt.StartCARD2
0x80018d94    1 16   -> 12   flirt.StopCARD2
0x80018da4    1 16   -> 12   flirt._card_write
0x80018e34    1 220  -> 68   flirt._patch_card_info
0x80018f10    3 148          flirt._patch_card
0x80018fa4    3 112          flirt._patch_card2
0x80019014    3 64   -> 52   flirt._copy_memcard_patch
0x80019054    5 144          flirt.InitCARD
0x800190e4    3 72           flirt.StartCARD
0x8001912c    1 40           flirt.StopCARD
0x80019154    3 128  -> 112  flirt._ExitCard
0x8001a994    2 64           flirt.DsFlush
0x800228d4    1 16   -> 12   flirt.InitHeap
0x800228e4    1 16   -> 12   flirt.FlushCache
0x80022904    1 16   -> 12   flirt.DeliverEvent
0x80022914    1 16   -> 12   flirt.OpenEvent
0x80022944    1 16   -> 12   flirt.EnableEvent
0x80022964    1 16           flirt.EnterCriticalSection
0x80022974    1 16           flirt.ExitCriticalSection
0x800229b4    1 16   -> 12   flirt.write
0x80022a04    1 16   -> 12   flirt.SysEnqIntRP
0x80022a24    1 16   -> 12   flirt.ChangeClearRCnt
0x80022cd4    1 16   -> 12   flirt.firstfile2
0x80022cf0    1 16           flirt.GsGetWorkBase
0x80022fe4    1 16   -> 12   flirt.InitPAD2
0x80023004    1 16   -> 12   flirt.StopPAD2
0x80023014    1 16   -> 12   flirt.PAD_init2
0x800230c4    3 112  -> 104  flirt._remove_ChgclrPAD
0x80023ca8   25 640          flirt.CD_sync
0x80023f28   29 712          flirt.CD_ready
0x800241f0   43 1036         flirt.CD_cw
0x800245fc    1 136          flirt.CD_vol
0x80024684    4 212          flirt.CD_flush
0x80024758    5 240          flirt.CD_initvol
0x80024848    1 76           flirt.CD_initintr
0x80024894   11 480          flirt.CD_init
0x80024a74    9 360          flirt.CD_datasync
0x80024bdc    6 256          flirt.CD_set_test_parmnum
0x80024cdc    3 240  -> 236  flirt.CD_getsector2
0x80025044    4 60           flirt.rsin
0x80025080    8 148  -> 144  flirt.sin_1
0x80025114   10 160          flirt.rcos
0x80025584   22 272  -> 260  flirt.SetFogNearFar
0x80025724    6 144  -> 128  flirt.SquareRoot0
0x80025b04    1 144  -> 40   flirt.LoadAverageShort12
0x80025f94    3 164  -> 76   flirt.PushMatrix
0x80026038    3 172  -> 92   flirt.PopMatrix
0x80026404    1 48   -> 36   flirt.TransMatrix
0x80026434    1 320  -> 312  flirt.ScaleMatrix
0x80026d54   13 656  -> 652  flirt.RotMatrix
0x80027274    1 512  -> 248  flirt.RotMatrixYXZ_gte
0x80027474    1 528  -> 248  flirt.RotMatrix_gte
0x80027684   41 384  -> 372  flirt.ratan2
0x80027804    6 172          flirt._ExitCard
0x800278e4   23 528          flirt.VSync
0x80027af4    1 48           flirt.ResetCallback
0x80027b24    1 48           flirt.InterruptCallback
0x80027b54    1 48           flirt.DMACallback
0x80027b84    1 52           flirt.VSyncCallback
0x80027c48    1 16           flirt.CheckCallback
0x80027c70   22 1348 -> 524  flirt.SetIntrMask
0x800281d4    1 16   -> 12   flirt.ReturnFromException
0x800281e4    1 16   -> 12   flirt.ResetEntryInt
0x800281f4    1 16   -> 12   flirt.HookEntryInt
0x80028204    5 288  -> 124  flirt.startIntrVSync
0x80028324    5 672  -> 112  flirt.startIntrDMA
0x800285d8    1 16           flirt.GsGetWorkBase
0x80028654   10 192          flirt.PCread
0x800287b4    1 32           flirt.SsUtReverbOff
0x800287d4    4 232          flirt._SpuInit
0x800288bc    3 120  -> 112  flirt.SpuStart
0x80028934   31 1088         flirt._spu_init
0x80028ed8   30 640          flirt._spu_t
0x80029158    4 132          flirt._spu_Fw
0x800291dc    1 100          flirt._spu_Fr
0x80029240    4 68           flirt._spu_FsetRXX
0x80029284   11 164          flirt._spu_FsetRXXa
0x8002940c    4 104  -> 92   flirt._spu_Fw1ts
0x80029474    1 48   -> 36   flirt._SpuDataCallback
0x800294a4   10 208  -> 204  flirt.SpuSetReverb
0x8002af30    1 320  -> 312  flirt.ScaleMatrixL
0x8002f860   13 656  -> 652  flirt.RotMatrixZYX
0x8003fc70    3 128  -> 116  flirt.SpuQuit
0x800421e8    2 48           flirt.GsSetLsMatrix
0x80049bf0   10 336  -> 204  flirt.CdInit
0x80049e50    1 64           flirt.TransposeMatrix
0x8004ac70    1 16           flirt.GsGetWorkBase
0x8004b1a0    4 96   -> 92   flirt.SpuSetTransferStartAddr
0x8004b200    5 48           flirt.SpuSetTransferMode
0x8004b8e4   14 156          flirt.SetRCnt
0x8004b980    4 56           flirt.GetRCnt
0x8004b9b8    1 48           flirt.StartRCnt
0x8004b9e8    1 52           flirt.StopRCnt
0x8004ba54    4 96   -> 84   flirt.SpuInitMalloc
0x8004bab4   20 320  -> 316  flirt.SpuSetIRQ
0x8004bbf4    3 64   -> 60   flirt.SpuSetIRQCallback
0x8004bc34    1 48   -> 36   flirt._SpuCallback
0x8004bc64    5 96   -> 92   flirt.SpuRead
0x8004bcc4    5 96   -> 92   flirt.SpuRead
0x8004bd24    3 48   -> 36   flirt.SpuSetTransferCallback
0x8004dd70    4 80   -> 72   flirt.SpuSetNoiseClock
0x8004dde0    1 48   -> 40   flirt.SpuSetReverbModeDepth
0x800516c4   20 464  -> 460  flirt.SpuSetReverbModeType
0x80051894   97 1232         flirt._spu_setReverbAttr
0x80051d64   19 416  -> 404  flirt.SpuClearReverbWorkArea
0x80051f04    1 16   -> 12   flirt.WaitEvent
0x80056440    4 64           flirt.SpuSetIRQAddr
0x80090e44    1 64   -> 40   flirt.DsFlush
0x80094118    2 64           flirt.DsFlush

On May 9, the Japanese Twitter account announced in this tweet that question submissions would be closed soon, and that answers were going on hiatus the next day. Here are the remaining answered questions from where I left off.

Question Response


Question Response


Question Response


Question Response


Question Response


Pages: [1] 2 3 ... 105