07th-mod / higurashi-console-arcs

84 stars 18 forks source link

ADV-mode for Someutsushi #6

Closed enumag closed 6 years ago

enumag commented 7 years ago

I need to add colors for the new characters from Someutsushi before compiling the ADV-mode. Since I didn't read Someutsushi yet I don't know who these characters are. Can you tell me their names?

chisa1_def_0 huji_huan_0 na1_def_0 tama1_def_0 tomo1a_def_0 tou1a_def_0

DoctorDiablo commented 7 years ago

Characters are:

Chisato Fujita Natsumi Tamako Tomoe Akira

enumag commented 7 years ago

@DoctorDiablo Thanks!

@Aspirety All done. Download the ADV-mode patch here, replace all files. Also manually delete file CGAlt/windo_filter.png if it exists. Please report if you run into any issues.

Sophilautia commented 7 years ago

First problem to come up is that the text box is displaying here in the chapter select screen. Doesn't display when I click it though.

There's also the issue of these icons getting in the way of the text box.

enumag commented 7 years ago

The textbox appearing in chapter select is minor issue, I'll look into it later.

You can hide the icons in config menu in the game.

Sophilautia commented 7 years ago

Ah I see! If you start pushing this publicly it might be a good idea (if possible) to change that setting for users when they patch the game.

enumag commented 7 years ago

Unfortunately I don't know of any way to change the settings on our side. We will have to mention it in the installation guide, probably with screenshot.

Sophilautia commented 7 years ago

One small thing I've noticed is how the line spacing looks a bit uneven in the textlog.

enumag commented 7 years ago

Known/unfixable. There is another unfixable bug in the save files screen too which you'll notice later. These are limitations of the game engine, nothing we can do here. :-(

EDIT: In the log every message has 3 lines available regardless of it's actual length. Long lines are broken to more log entries.

ItaloKnox commented 7 years ago

Have you tried to contact Doddler about these issues? I gave this suggestion before but I don't know if you did. He helped us a lot back when Onikakushi was released, we only have a patch today because he expanded a couple of features, such as the Update folder and widescreen.

If you haven't talked to him yet, maybe I can try something using Twitter. Let's just compile a list of the ten most important stuff we need to fix right now and see if he can help.

enumag commented 7 years ago

@ItaloKnox I tried contacting MG and got negative response. I wasn't sure how to contact Doddler directly. I'll write down a list of the known issues for your review and then PM him on twitter.

ItaloKnox commented 7 years ago

Looks good to me! His user should be The_Doddler, if you don't know already.

MangaGamer usually avoid these kinds of issues but as far as I know they send bug reports to him, so if they aren't willing to directly support our work (totally understandable, since they don't own the assets), maybe Doddler can manage something outside of that or just tell us what is possible and what is not possible. As far as I know we are using the same framework he also uses in Da Capo, which supports a ton of more stuff. Let's just wait and see.

enumag commented 7 years ago

@ItaloKnox Here is the list of issues for Doddler I came up with.

  1. These are the issues and questions I consider to be most important.
    • Positioning of control icons for 16:9.
    • Save & Load screen bug with names.
    • Log screen issues.
    • Defining global variables.
  2. Second round of issues and questions. Less important to us but would be nice to do something about it.
    • Background and images for TIPS screen.
    • Changing screen filter image based on a condition.
    • Setting default style for text (like for names).
    • Defining custom functions with parameters.
  3. Issues I don't expect to be resolved but I could ask.
    • Custom fonts.
    • Working with Unity resources (.assets files).
    • Custom tips for console arcs.
    • Font styling (shadows, alignments, etc.)
    • A function to wait until voice finishes.
  4. Bugs we found in the engine which are not really important and/or possible to workaround.
    • Red X instead of certain japanese characters.
    • Names have to be defines in separate OutputLine calls to prevent timing issues.
    • Names blink when one character has several consecutive lines.

Anything else you would like to add? Do you agree with the order of importance?

Considering how many issues there are I think I'll send him just the first group for now. Those should be easy to fix and would help us a lot. Then I could try asking more later based on his response and willingness.

DoctorDiablo commented 7 years ago

Can we get a list of the global variables the system currently uses? I think all the config settings have a variable associated with them (I know the language setting does) so if we knew their names we could programmatically set options like the graphics setting, auto-hide UI, message box opacity, etc.

And can we get a list of functions the engine recognizes? For example, there might be a function that can play video files, but we just don't know how to call it.

ItaloKnox commented 7 years ago

Well, I couldn't make a list better than that. I guess you covered everything. Let's hope we can talk to him and solve a couple of these issues. Good work!

Grelo commented 7 years ago

@enumag Can you add a question about video? Openings etc...

Sophilautia commented 7 years ago

I forwarded the patch to a friend and this happened, any idea why?

ItaloKnox commented 7 years ago

Did he clean up the CompiledUpdateScripts folder before running the game? If not, clean it and run the game again.

Sophilautia commented 7 years ago

That seems to have fixed it~

enumag commented 7 years ago

I sent a twitter PM to @Doddler a week ago. He did not answer.

ItaloKnox commented 7 years ago

Well... at least we tried. We'll have to keep pushing these things by ourselves like we've been doing since the start.

enumag commented 7 years ago

I have some better news this time. I sent a tweet to Doddler today to remind him about my previous PM. He answered that he is working on a patch for Meakashi and will look into our issues to see if he can fix some of them. He is not sure about backporting them to the question arcs though.

ItaloKnox commented 7 years ago

Fuck yes, that's great news. Worst case scenario we leave the question arcs behind us or try to see if we can backport them manually (I have done a few stuff like this for Steam R18 patches, so I'll still try).

If we can get the glaring issues sorted out before the next chapter we'll be in a great spot to start working on ‎Tsumihoroboshi.

vstax commented 7 years ago

Thank you for this patch! ADV mode and these colored names look really cool.

This part https://github.com/07th-mod/higurashi-console-arcs/blob/adv-mode/Update/tips_083.txt#L18-L23 is broken and causes TIPS 83 to be skipped, it works after removing two extra "if (AdvMode) { }" and adding OutputLine call. Sorry, no patch because I'm not sure I can insert Japanese line correctly.

Also, on occasion the game "gets stuck" after switching from tips back to original story.. (black screen, system menu can't be show, but Alt-F4 shows "exit" question and allows you to exit). It seems to occur more likely when skipping, but I can't be sure about that. It's a kind of random problem, i.e. when repeating the same tip -> story transition it works fine, still, I had this happen 2 or 3 times. This never happened in NVL mode before TIPS introduction, so it must be caused by either TIPS or ADV mode..

enumag commented 7 years ago

I'll fix the first issue right away, thanks for reporting. EDIT: fixed

The second issue seems too unreliable. Maybe I'll do something about it when I actually play Some myself if I can reproduce it.

enumag commented 7 years ago

Can you upload your output_log.txt after experiencing the second issue and closing the game? Maybe that will give us a clue. You'll find it in the same directory as StreamingAssets.

vstax commented 7 years ago

@enumag Unfortunately, I can't seem to reproduce it. However, I found another problem when trying to read omake. The result is the same (black screen, only Alt-F4 works) but this error is stable so it must be a broken script or something. Here is log file: https://pastebin.com/2Y39Rirt (I loaded save made in last line of last chapter, skipped tips 087 and picked omake; the same happens if reading the tip, then trying to read omake).

Out of curiosity: why does the game tries to play SE/wa_038.ogg and SE/sysse02.ogg (according to log file)? There are no references to these in either Someutsushi or original Himatsubishi scripts! First one is 1 second clip from Watanagashi and I can't seem to find second one anywhere. Am I supposed to copy the first one from Watanagashi for "better experience"?

enumag commented 7 years ago

Omake should be fixed now.

I think wa_038 is played when you click in menu or something. No idea why it's not found, it exists in Hima. For sysse02 I have no idea. Can't find such file anywhere.

DoctorDiablo commented 7 years ago

Ah. My installation instructions have you delete the SE folder to clear out all the unused audio, so that's why the file is not there. I'll try to identify any audio files that the menus use and make sure they are included with the package in the future.

enumag commented 6 years ago

@DoctorDiablo Once again we have a lot of things from the main games to update here too. Let us know when you're done with the Kage translation, I just need to run a few commands to enable ADV-mode for Kage and update both arcs with the new features. Let's make an official Kage release after that. I'll also most likely read both chapters myself at that time.

DoctorDiablo commented 6 years ago

@enumag Awesome, sounds like a plan. I still have a lot of translating to do, so no rush.

We need to create an installer for these too. I never got around to setting that up when I put together the Some release.

enumag commented 6 years ago

@ItaloKnox Would you be willing to make the installer when the time comes? I mean from the team you have the most experience with those.

ItaloKnox commented 6 years ago

Yeah, shouldn't be an issue. Just ping me when it's ready. I can reuse the source from Hima and just adjust it accordingly.

ZLTM commented 6 years ago

Hello i just discovered this project and would like to help with the development. After contacting with Italo Bruno he told me to post a message here. I have experience with Unity3D, I can talk in english, spanish and some japanese So there is any list of bugs or pending features I could help with in the console arcs or any other Higurashi related project?

DoctorDiablo commented 6 years ago

@ZLTM Yeah. The biggest hangup for the console arcs is just that I'm really slow at translating stuff, but there are some issues you could look into. Since you have experience with Unity, maybe you can figure out how to replace images in the assets file or fix the red x issue

enumag commented 6 years ago

@ZLTM I was about to link you to the same issues as @DoctorDiablo just did.

Aside from these issues it's probably a question of how good is your japanese. Do you think it's good enough to help with translation of the console arcs to english? Currently @DoctorDiablo is the only one of our group capable of translating them and it's the main thing that's slowing down the project.

Also all the console arcs first need to be ported from the PS3 version to MG engine before the translation even begins. @DoctorDiablo has been handling that so far, I'm not sure if he needs any help on that front.

Other of our long-pending issues include lipsync. Do you know if Unity has something we could use to implement that?

Then there is the thing of PS3 video opening. Do you know how to get that working with Unity?

Also there is the problem of changing himatsubushi-related stuff like game name in title bar for the console arcs. Even with DLL-hacking @P-Chang was so far unable to fix these. Do you have a way to determine where a Unity-based game stores such things so that we could change those?

Aside from this long-term wishlist most of our work is porting the PS3 backgrounds and sprites to the games as they come out by MG, making a matching graphics patch from the new MG sprites, adding PS2/PS3 voices, writing scripts to do certain tasks like ADV-mode transformation automatically, DLL-hacking to fix issues in the base games and finally testing the game thoroughly to fix every little issue we can find (only Tata and Hima are truly polished right now). Also there are some efforts to find PS3-only scenes and dialogue changes and port them to our mods. If the changes include censorship we make a condition so that the game can go either way based on the player's preference.

One thing I'm kind of thinking about but never got to do was making an alternative set of background music, maybe using tracks from Higurashi anime.

That's about everything I can think of from the top of my head. It's just to give you the gist of what we do and where we would appreciate some help. If you want to help with any of the things I mentioned, let us know.

And most importantly if you have some ideas of your own what we could improve, please tell us. Maybe we can push it forward together.

P-Chang commented 6 years ago

@DoctorDiablo I already found soulution for AssetBundle texture replacement in https://github.com/07th-mod/higurashi-patch-compiler/issues/5 .

@ZLTM I mainly hack Assembly-CSharp.dll with dNSpy. But my C# knowledge is really cheap, so I'm really happy if C# coder help these works.

dNSpy is really helpful software, but modding many code with this are bit bother work than coding with VS or Unity.

We can't compile entire code or class or namespace(sometimes it break dll), Editing vanilla filed make logger bad, add argument make dll break... etc

And recompile vanilla method make code to unreadable code sometimes. so I leave many backup. If you help this, I'll re-arrangement these backups.

Although I assume many feature of Unity can't use without Unity GUI, is it true?

Red X issue https://github.com/07th-mod/higurashi-console-arcs/issues/2 that @DoctorDiablo told are related in font that was set by TextMeshPro didn't support these character. Do you know how to improve TextMeshPro font that was already authorized?

Or I think these chinese character are antique. replacement is enough if we could.

ZLTM commented 6 years ago

My japanese is not really in the level of 07 writing yet, i would like to see into it but mostly as an educational experience, not planing on upload a bad translation.

About unity3D, it really depends, if the game was made in unity and we have the files used for compilation then it would be a great tool for the job, if not we are better sticking with a C# IDE or text editor, or any other engine they used if available. Manga gamer talks a litle about the engine in this article http://blog.mangagamer.org/2015/05/25/building-a-better-higurashi/ But they dont say anything conclusive, it would be great if someone knows what engine is being used for sure.

The same goes for the lipsinc, if the game was developed using an asset we could just use it, if not it may complicate things.

I will look into these, this is my first time colaborating trought github with a remote team in a project already in process so i want to be carefull and dont touch something i sould not lol

enumag commented 6 years ago

@ZLTM It's not like @DoctorDiablo is a professional translator either. No offence to him meant, it's just that this is his first translation project and we did get some feedback about the translation not being very good. But he is improving and edits the translation several times before he is finished. He certainly puts in a LOT of effort. Maybe you could try translate a bit and he could review if it's good enough for us? Just an idea.

I'm quite sure we don't have the files used for compilation. I don't think the engine has a name. It's probably something unique to Higurashi. It is modding-friendly in most aspects though as the images, sounds and scripts are all in separate files and the scripts are human-readable, not just the compiled version of them. I suspect that MG did that intentionally. The issues I linked above are mostly those that need to go beyond the engine's modding limitations and will likely require DLL hacking or good experience with how things work in Unity-based engines. @P-Chang already solved the easy bugs so only the more difficult issues are left. Don't worry about it if you're unable to help with them, We don't have any high expectations from you (yet). It's just that the easy issues are all taken care of by now since the project was active for years now. So only the complicated problems are left. And those tiny issues like missing names, voices etc. here and there - I'm still finding a lot of those when I play the games.

You don't need to be too careful. Feel free to experiment with anything you find and ask questions. You don't have the privileges to break anything yet anyway and we will review your changes before accepting them.

ItaloKnox commented 6 years ago

Just to add a bit to the engine talk, it's actually a framework made by Doddler in Unity. The newest Da Capo game should use the same framework as the base but with a lot more stuff, so maybe we could try looking at the code?

Edit: actually not the latest Da Capo but Da Capo 3 instead.

DoctorDiablo commented 6 years ago

@enumag I finally finished translating everything in Kage. Can you run your scripts to do the ADV conversion now? I still need to read through the whole thing to do editing, but it would be good to test out the ADV stuff at the same time so I can fix any issues from the conversion.

enumag commented 6 years ago

@DoctorDiablo Compiled and pushed into the adv-mode branch. Note that this does not require our updated DLLs yet. I'll proably do that update for both console arcs when we finish lip-sync.

Would it be possible to separate the console arcs by directory? Like:

Update/
    init.txt
    chapterselect.txt
    some/
        some_001.txt
    kage/
...

It would make future updates slightly easier for me.

P-Chang commented 6 years ago

it is impossible. compiler never search sub directory.

I'll look over it, probably it will come after lip-sync. but some user system may fail this process.

DoctorDiablo commented 6 years ago

Cool, I grabbed the new scripts from the ADV branch and dropped everything on top of a clean install of Hima from the installer. It looks like it's working well so far: image

One problem I had is that I put the voices in the voice folder, but the script is still using PlaySE so they weren't playing. Is the voice folder still in development, or do we need to replace all the voice lines in the script with PlayVoice?

@P-Chang No rush on getting the subdirectory thing to work. I work really slow, so there won't be any new scripts for a while.

@enumag Going forward from here, I guess I should keep pushing my changes to the master branch and you can pull them into ADV. Then once we've got everything stabilized, we can make the ADV branch the main branch.

P-Chang commented 6 years ago

@DoctorDiablo PlaySE can use only SE folder, and PlayVoice can use only voice folder. If you use vanilla DLL in development, chapter4 vanilla PlayVoice was broken, so you can't use it.

Patched DLL probably can handle vanilla scripts, so if you never press F1, you can use patched DLL in development.

If you want vanilla DLL with only PlayVoice support, I can send it to you. fixing playvoice is not hard work.

DoctorDiablo commented 6 years ago

@P-Chang Don't worry about it, I can do my testing with what I've got and we can integrate it with the patched DLL and your most recent changes later.

enumag commented 6 years ago

@P-Chang Oh. Thanks for explaining. You can look into it if you want but consider it low priority (lower than lip-sync).

@DoctorDiablo

As for voices, that is related to the DLL changes which we'll do later for console arcs. For now put voices to SE directory.

At this point it does not matter which branch you push your changes to. Pushing changes to master was prefered before when I was constantly making changes to the ADV-mode compiler. Now I didn't change anything in the ADV compiler for months so I consider it quite stable. It is very unlikely that I'd need to recompile the whole thing again. Choose whichever branch is easier for you to work with.

DoctorDiablo commented 6 years ago

@enumag I finished editing Kageboushi, so you're free to recompile the script or merge the changes in. Whatever you need to do.

I also started looking into why ADV mode was failing in the tips, and I found two problems:

  1. tips_083.txt had a weird formatting problem with a nested if statement. None of the other tips had this problem, so I'm not sure what's going on here, but I managed to fix this manually:
    if (AdvMode) {
        if (AdvMode) { OutputLineAll("", NULL, Line_ContinueAfterTyping); }
                NULL, "<size=-2>Around 1:30 AM on the 25th, a fire broke out in a two-story wooden flat owned by Yuusuke Minai-san (43), the chief inspector of the Setagaya district police department. Approximately 170 square meters of property were burned down.</size>", Line_Normal);
    } else {
        if (AdvMode) { OutputLineAll("", NULL, Line_ContinueAfterTyping); }
                NULL, "Around 1:30 AM on the 25th, a fire broke out in a two-story wooden flat owned by Yuusuke Minai-san (43), the chief inspector of the Setagaya district police department. Approximately 170 square meters of property were burned down.", Line_Normal);
    }
  1. None of the tips have AdvMode defined at the top of the file. I think I just need to add this at the top of each of them.
    int AdvMode;
    AdvMode = 1;
    int Line_ModeSpecific;
    if (AdvMode) {
        Line_ModeSpecific = Line_Normal;
    } else {
        Line_ModeSpecific = Line_WaitForInput;
    }
enumag commented 6 years ago

I'll look into it over the christmas break. Not sure when exactly. Big thanks to you for the translation!

DoctorDiablo commented 6 years ago

Well, defining AdvMode in each of the tips didn't work. It just complained that a variable with that name was already defined.

I think the problem only happens when I have multiple tips in a row, which only actually happens in some_007, some_014, and kage_007. Script X calls tip 1, tip 1 has AdvMode defined properly, tip 1 finishes and returns control back to script X, but at that point AdvMode is no longer defined, so when script X calls tip 2 it blows up saying AdvMode is not defined.

enumag commented 6 years ago

@DoctorDiablo Don't worry about it, these are the limitations of the original engine. With our updated DLLs ADV mode works in completely different way and these problems will be gone.