2013-06-28T00:00:54 *** Twidona has joined #thcrap 2013-06-28T00:05:02 *** Twidona_ has joined #thcrap 2013-06-28T00:09:07 *** linkmauve1 has joined #thcrap 2013-06-28T00:54:11 *** Ramnik has joined #thcrap 2013-06-28T03:15:55 *** magictape has quit IRC 2013-06-28T03:51:13 *** magictape has joined #thcrap 2013-06-28T03:59:49 *** Nmlgc1 has joined #thcrap 2013-06-28T04:01:36 *** Nmlgc has quit IRC 2013-06-28T04:14:52 *** Ramnik has quit IRC 2013-06-28T04:54:29 *** Twidona has quit IRC 2013-06-28T04:54:56 *** Twidona has joined #thcrap 2013-06-28T05:28:11 *** GreaseMonkey has joined #thcrap 2013-06-28T05:28:11 *** GreaseMonkey has joined #thcrap 2013-06-28T05:30:49 *** magictape has quit IRC 2013-06-28T07:30:21 *** Ibaraki_Ibuki has quit IRC 2013-06-28T08:01:10 *** Nmlgc1 has quit IRC 2013-06-28T08:36:51 *** Ramnik has joined #thcrap 2013-06-28T08:41:26 *** Ramnik has quit IRC 2013-06-28T11:27:47 *** GreaseMonkey has quit IRC 2013-06-28T11:48:49 *** K00pi3[9] has joined #thcrap 2013-06-28T14:18:00 What should happen when a specific frame of a specific entry in a patch has less or more lines than in the Japanese version? 2013-06-28T14:18:53 Also, a Japanese patch would be cool, to be able to compare both versions and make sure the patch doesn’t include a regression. 2013-06-28T14:19:43 Aside from that and lines much longer than the dedicated message length, I think I have a working implementation in PyTouhou. ^^ 2013-06-28T15:45:32 *** Ibaraki_Ibuki has joined #thcrap 2013-06-28T16:42:21 *** Nmlgc has joined #thcrap 2013-06-28T16:47:03 Ah, right, line insertion. That's the one thing that makes .msg patching a bit difficult. 2013-06-28T16:48:45 Should I automatically cut the lines at the right place? 2013-06-28T16:49:23 Yes. 2013-06-28T16:50:08 And allow text higher than two lines? 2013-06-28T16:50:44 When going through the instructions, the patch remembers the first line of a dialog. Once a "box end" instruction is hit (in case of th06/th07, this is just instruction 3 with line 0), the first line instruction is copied, line 0 is changed to line 1, and the text is replaced. 2013-06-28T16:51:16 Yeah, as of now, the parser doesn't assume any maximum line number. 2013-06-28T16:52:27 I already implemented 3(0, …) to clear both lines before displaying the new one. 2013-06-28T16:52:55 How do you split text in a font-dependent fashion? 2013-06-28T16:54:55 I don't. I probably should, though... but then again, translators are probably better at putting more natural line breaks anyway. 2013-06-28T16:57:10 I think that too, but then the current data doesn’t work like that. 2013-06-28T16:57:53 Also, why did you choose to include unused translations in the patches? 2013-06-28T16:58:35 Makes parsing easier. :) 2013-06-28T16:58:50 Having to check for a _1 version (or I guess a _2 one if ZUN was more drunk than usual that day :D) is kind of ugly. 2013-06-28T16:59:15 I find parsing more difficult in that case, though. ^^' 2013-06-28T16:59:24 It's not so much a "version" as an "index" of text boxes during that time code. 2013-06-28T16:59:49 But the _0 is never used if a _1 is there. 2013-06-28T17:00:04 Ah, you mean the replacement? 2013-06-28T17:00:33 It *is* used - in that special case of Reimu's Stage one, it is just immediately overwritten. 2013-06-28T17:01:06 If there was a wait instruction between "60_0" and "60_1", you would see it. 2013-06-28T17:01:22 Let me look for another example... 2013-06-28T17:01:24 Ah, yeah. 2013-06-28T17:01:35 Stage 1, entry 11, frame 60. 2013-06-28T17:01:53 @60 2013-06-28T17:01:54 <[Bot]MagicStone> linkmauve1: Error: "60" is not a valid command. 2013-06-28T17:01:54 3;0;0;人類以外は 2013-06-28T17:01:54 4;300 2013-06-28T17:01:54 3;0;0;指は十本じゃないのかしら 2013-06-28T17:01:54 4;500 2013-06-28T17:01:59 ^^' 2013-06-28T17:03:26 Also, why do you include a JSON object containing only the lines key? Wouldn’t it be better to directly put the array there? 2013-06-28T17:03:56 Maybe to leave room for other keys later? 2013-06-28T17:04:35 I was wondering that myself, actually. When I began .msg patching, I had another key there, which became redundant during further development. 2013-06-28T17:04:50 Then I thought "Hmm, maybe we want to put translation notes there later" 2013-06-28T17:11:09 Is there another type of boss description than h1? 2013-06-28T17:11:33 No, that's the only special instruction type. 2013-06-28T17:11:48 Ok. 2013-06-28T17:12:12 The 1 doesn’t mean anything, right? 2013-06-28T17:12:29 That was a Touhou Wiki template parameter I took over. :) 2013-06-28T17:14:05 It would maybe be better to put it in the object containing lines, it would make the parsing code easier. 2013-06-28T17:14:27 {lines: ['stuff'], h1: true} for example. 2013-06-28T17:14:54 Yes, this was the redundant element :) 2013-06-28T17:15:07 Oh. :D 2013-06-28T17:16:00 Doesn't make that much of a difference in parsing in my code. 2013-06-28T17:16:42 (which I should really release now, but I want a streamlined API first before people begin developing plugins and stuff) 2013-06-28T17:17:09 I’ll look at it when it’ll be free, I was currently RE-ing your format. ^^ 2013-06-28T17:18:31 And source code cleanup is boring and headache-inducing, so I'm doing spell cards now to relax a bit :) 2013-06-28T17:18:44 ^^ 2013-06-28T17:18:53 I should add spellcard display. 2013-06-28T17:19:04 I like to know their name when debugging. 2013-06-28T17:22:18 By the way, was it you who had that modified thtk repository? I'd like to push out th14 and alcostg support somewhere. 2013-06-28T17:22:37 (for ECL) 2013-06-28T17:23:14 I do have one, with name support in the format, since it was easier at that time for me to read a name than the opcode number. 2013-06-28T17:23:37 Though now I know every pokémon^Wopcode number by heart. ^^' 2013-06-28T17:24:52 alcostg? 2013-06-28T17:25:08 http://en.touhouwiki.net/wiki/Uwabami_Breakers 2013-06-28T17:25:10 <[Bot]MagicStone> Title: Uwabami Breakers - Touhou Wiki - Characters, games, locations, and more (at en.touhouwiki.net) 2013-06-28T17:25:17 Ah, this one. 2013-06-28T17:25:48 Btw I wrote an EoSD STG dumper a long time ago, but I didn’t know lex/yacc at that time so there is no reader and thus it is of limited interest. 2013-06-28T17:25:59 An EoSD main ECL too. 2013-06-28T17:26:37 And I did the exact same thing :-O 2013-06-28T17:26:38 So, I have four thtk repositories… 2013-06-28T17:26:49 I should sort out this mess. 2013-06-28T17:27:08 Did you include a parser or just a dumper too? 2013-06-28T17:27:17 Yep, just a dumper, too. 2013-06-28T17:27:30 :D 2013-06-28T17:34:51 Commit your stuff on a random repository, now that I know lex/yacc I can write a parser. 2013-06-28T17:35:03 I’ll take the best representation of you two. 2013-06-28T17:35:28 OK. 2013-06-28T17:35:35 of us two* 2013-06-28T17:36:13 But first, now that I have a working patcher, I want to split correctly if the string is too long. 2013-06-28T17:36:59 The UI is quite simple, add --language fr to the CLI and it downloads the relevant jdiff. 2013-06-28T17:39:21 Huh, I didn't expect you to do the downloading stuff. ^^ 2013-06-28T17:40:25 It currently is very hardcoded. 2013-06-28T17:40:46 At its core, thcrap is not supposed to be a centralized system at all... but I guess it'll be just easier to use that way. 2013-06-28T17:41:27 I just use urllib.urlopen instead of open, but I agree with you here. 2013-06-28T17:42:48 I did wget -r your whole http://srv.thpatch.net/ for debug purpose and because I don’t like requiring a connection to play. 2013-06-28T17:42:49 <[Bot]MagicStone> Title: Index of / (at srv.thpatch.net) 2013-06-28T17:43:03 So it fully works offline too. 2013-06-28T17:43:24 Currently it downloads at the start of each stage, which is quite inefficient. 2013-06-28T17:50:27 *** tosiaki has joined #thcrap 2013-06-28T17:56:17 *** tosiaki has quit IRC 2013-06-28T17:57:11 In my msg1.dat, 暗くて is at frame 82 and not 62, like here: http://thpatch.net/wiki/Th06/Reimu's_Scenario 2013-06-28T17:57:15 <[Bot]MagicStone> Title: Th06/Reimu's Scenario - Touhou Patch Center (at thpatch.net) 2013-06-28T17:57:41 Should I fix that in there, on the wiki? 2013-06-28T18:00:07 Same for 134. 2013-06-28T18:00:42 It seems frames that have to be displayed after a short wait got purely merged with the previous one. 2013-06-28T18:01:58 But well, I have to go, I’ll finish that later. 2013-06-28T18:06:29 Yes, the frame ID in the .jdiff refers to the first line of a dialog box, any later lines are indeed merged. 2013-06-28T18:07:30 It's all these weird edge cases in th06, th07 and th08 that make .msg patching quite complex if you want to have textbox-level instead of line-level access. 2013-06-28T19:12:22 *** tosiaki has joined #thcrap 2013-06-28T19:34:27 *** Ikubi_Ikarabi has joined #thcrap 2013-06-28T19:36:36 *** Ibaraki_Ibuki has quit IRC 2013-06-28T19:36:36 *** Ikubi_Ikarabi is now known as Ibaraki_Ibuki 2013-06-28T19:59:06 *** magictape has joined #thcrap 2013-06-28T20:01:09 *** K00pi3 has joined #thcrap 2013-06-28T20:03:49 *** K00pi3[9] has quit IRC 2013-06-28T21:28:23 *** Ikubi_Ikarabi has joined #thcrap 2013-06-28T21:31:33 *** Ibaraki_Ibuki has quit IRC 2013-06-28T21:31:34 *** Ikubi_Ikarabi is now known as Ibaraki_Ibuki 2013-06-28T21:34:43 *** tosiaki has quit IRC 2013-06-28T21:46:14 *** tosiaki has joined #thcrap 2013-06-28T22:05:45 *** tosiaki has quit IRC 2013-06-28T22:05:56 *** tosiaki has joined #thcrap 2013-06-28T23:01:16 *** tosiaki has quit IRC 2013-06-28T23:09:36 *** magictape_ has joined #thcrap 2013-06-28T23:12:31 *** magictape has quit IRC 2013-06-28T23:34:57 *** tosiaki has joined #thcrap 2013-06-28T23:38:51 *** K00pi3 has quit IRC 2013-06-28T23:42:24 *** tosiaki has quit IRC 2013-06-28T23:44:34 *** tosiaki has joined #thcrap 2013-06-28T23:47:24 *** tape__ has joined #thcrap 2013-06-28T23:50:28 *** magictape_ has quit IRC