Just as I expected. Takafumi is good at this kind of thing after all!
I’ll be following this thread~!
Just as I expected. Takafumi is good at this kind of thing after all!
I’ll be following this thread~!
Taka totally made this just for me, right? Thats why he used my avatar on the cover, right?
But no, really, this is amazing. Like, game-changing incredible. And from the looks of it, this is just the beginning of the guide. Thanks a bunch, Takafumi.
Nah man it was for me, I tweeted him about it. www
Yup, blame Biz.
Haven’t even got into the more obscure stuff yet~
When working with certain types of files, I move away from RLDev, and start using the official RealLiveMax SDK. For images, there is a set of programs to view and create .g00 files. I’ve translated the important parts of these tools, so you can download the English versions here.
Note: These tools require Adobe Photoshop to run correctly. PSD files created by different software may not work as intended.
Viewing g00 files
To view g00 files, you want to open G00libMax.exe. This is an incredibly simple tool, but it does everything you’d want from it and more.
The final thing to mention is the small white column that has been empty so far. This shows plotted areas of an image. If you look at an animated image, you’ll see lots of entries in this column. Clicking on one will show the area that was plotted out.
This function is a bit of a mystery in some areas, and some elaboration on all of this will be covered in the animated images section.
Extracting g00 files
So you’ve found a g00 file, and you want to have a copy of it. Let’s say we want that Haruka sprite from above. First things first, go to your rldev folder and then into the bin folder. Copy vaconv.exe, and paste it into your Little Busters folder. Go into the g00 folder and find the image you want. “CGHR10.g00” is what I’ll grab for this example.
Copy it and paste it into your Little Busters folder.
Open CMD and go to your Little Busters folder using the cd command.
cd c:\Key\Little Busters!\
Now use vaconv to extract the g00 file.
Check back in your Little Busters folder, and there you’ll find a png file with the same name as the g00 file.
You can do this with multiple images at a time, just add more to the cmd command.
vaconv CGHR10.g00 CGHR11.g00
Ah, but what if you want a whole folder? First, copy vaconv.exe into your g00 folder. Then, you need to go into the g00 folder in CMD.
This will move you into the g00 folder from the Little Busters folder. If you aren’t already in the Little Busters folder in CMD:
cd: c:\Key\Little Busters!\g00
Then we type:
Similar to how the g00 viewer uses asterisks in filters, you can put an asterisk to mark it as everything with .g00 in it’s name.
Now you have a full folder of png images, with all the sprites, CGs, backgrounds, menus, and cursors from Little Busters!
Creating g00 files
So you’ve gone through the painful process of making a character sprite, or a background cg, and now you want to add it into a VN. First, it needs to be a .g00 file, so let’s get on that!
For my example, I’m going to be using some Mai sprites.
Open up Photoshop, and create a new file with a resolution equal to the reallive game you are adding images to. Kanon runs at 640x480, so I’ll make a document of that size.
Then add your image to the document, and center it. If your sprite has multiple expressions, put each version of the sprite on a separate layer.
Now decide on a naming scheme. The names of your layers will be the names of the g00 files you end up with.
Since I’m replacing sprites, I can just use Kanon’s naming scheme.
Each layer name starts with “CG”
Then, since it is Mai, I add “MI”
Then either a 1 or a 2, depending on the sprite’s pose - facing forward is 1, facing sideways is 2.
Finally, a single digit number.
The first expression of the first pose will be named “CGMI10.” The second expression will be named “CGMI11.”
The first expression of the second pose will be named “CGMI20.”
When Mai is wearing an alternative outfit, I’ll add a letter to the end. Since she only has one alternative outfit - a dress- the dress sprites will be signified by the letter “B” at the end.
The first expression of the first pose in the alternative outfit will be named “CGMI10B.”
The same will be done with nighttime sprites, however the letter signifying it will be “N” instead of “B.”
Now that I’ve got my naming scheme sorted, I can name my layers. Come up with an easy-to-organize name!
Finally, create a blank layer named “#CONVERTS” and put it above all of your layers.
Unless you only have a single lonely layer, your Photoshop should have something similar to this
Save it to an easy-to-access folder, and find the g00 tools I provided earlier. Open up g00packMax.exe
A very simple program to use. In the “Original image folder” bar, type the location of your saved psd file. In the bar below that, type the location you want your g00 files to get saved to.
Find your psd file on the list to the left, click on it, and then hit the “Start Compression” button.
But… how do you know if it worked? Well, just follow the steps in the above section on viewing g00 files!
Aaaand since I replaced a sprite, I can test it out in-game straight away!
If you made a completely new image, and you want to add it into a scene, well… we’ll go over that later~
Creating animated g00 files
Note that this is an imperfect method using the reallivemax tools. For a simple vaconv method, see here.
Sometimes you want to add in a sprite sheet, or some typewriting text.
First, put all of the frames of your animation into one psd file on one layer, then add two blank layers, one named #CUT and one named #CONVERTS. Name the image layer what you want your g00 file to be called.
Now save the psd, making sure to maximise compatibility, and go to the folder that you saved the psd to. In that folder, make a new txt file with the same name as your psd, and type this:
#RECTCUT_YOKO 0, 0, 80, 80, 1, 4
This is a command that works with the g00pack program. It cuts out a specific region of the image.
The numbers are co-ordinates. 0, 0 is where the image begins. The first 80 is the width, and the second is the height. 1 and 4 are how many images I want overall. 1 = How many are in a row. 4 = How many are in a column.
Save the text file once you have filled it in with the correct values, then go over to g00pack.
Check that the co-ordinates are right, and that everything is cropped correctly, then check it in-game!
Can this be used to remove H-content from VNs?
It’s conceivable that you would be able to mod the game to remove any such scenes, or replace them. The G00 stuff is just for the graphics specifically, though. So you would need to use RLDev or RealLiveMax to modify the SEEN files to change the scripts if you didn’t want to read the H-scenes.
In short, it would probably be better to just modify the game’s SEENs directly with RLDev or similar.
I can write how to do that tomorrow.
If anyone has any topics they show interest in, I’ll focus on it~
Did it with Air~ I can go over the changes I made to that.
For extracting voiced lines from newer Key VNs, you will want a problem named ExtractData.
For listening to background music, grab a copy of NWAlib.
For extracting background music, Puggsoy’s Video Game Sound Converter is great.
For making your music playable as a BGM track, get NWApack.
As always, you’ll want Notepad++
You’ll need a way to open .ogg files. Audacity da best?
Finding and extracting voiced lines in newer Key VNs
There’s that one line in the VN that you just HAVE to get, for a ringtone or for a random skype message or something! But… how do you find it? And how do you extract it? For my example, I’ll be looking for a one-liner by Yuiko during the girls dorm party scene from Little Busters!
First, copy kprl.exe from your rldev/bin folder, and paste it in your VN’s folder. Then open up cygwin.
A new folder will appear in your VN folder named “seen_files.” This contains the whole script for the VN.
Open up Notepad++ and hit ctrl+f.
You may have more or less results than this, depending on how specific you were. Once you find the line, or a part of the scene you are looking for, double click it.
Search through the text and find what you are looking for. Once you have, copy the
<number> next to it.
Now go to your seen_files folder and open up the .org file with the same name as the file you are reading from in Notepad++. My line was in SEEN0522.utf, so I open SEEN0522.org.
Ctrl+f again, and search for the
<number> you copied earlier. Mine was <2831>.
You should come across something like this:
Open ExtractData and go file>open file. Move to the KOE folder in your VN’s directory, and look for the file that matches the number in the koePlay line that appeared in Notepad++. If the number is 8 digits long, look for the first 3 numbers. If it is 9 long, search for the first 4.
Mine is 52206845, so I look for 522. I end up opening z0522.ovk.
Then I look for the rest of the numbers. “6845” are mine, so I’ll look for that.
Double click to extract it and open it. It should be what you are looking for!
Finding and extracting voiced lines in older Key VNs
Following a similar process to the last guide, you can get voices from games like Kanon and AIR. Follow all of the steps in the above tutorial, up until the point where this image shows up:
Double click the line that you want, or a line from the same scene as the line you are looking for, and it’ll open up in the top window.
Adding new voiced lines to newer Key VNs.
To start off, you’ll want to find some noise that you want to include as a voiced line. It needs to be a .wav file, so if it isn’t already, open it up and save it as a .wav file. You can do multiple at the same time too, so if you want to get a bunch of new voices in, you can.
Go to your VN’s folder, and create a new folder there named “0001.”
Inside that folder, place the .wav file(s) that you will be using as voiced lines. There is a strict naming scheme. You can easily figure out what pattern this naming scheme follows by looking through the koe folder and the .org files, however for simplicity’s sake, we’ll just name our files as such:
and so on for how many files you have.
Now, a new tool! We’ll dip into the RealLiveMax sdk and get a tool named OVKpack. As always, you can find the whole sdk through a google search, but my lazily translated version of it can be found here.
The tool needs to be set up like this:
In the top bar, you put the location of the folder that you created the 0001 folder in. Mine is at F:\Key\Little Busters!\0001, so I put F:\Key\Little Busters!
The output folder can be anywhere you find convenient. I like to put it in a dedicated folder, but you could put it to your desktop or something memorable.
Then, hit “Start Compression” and a .ovk file should be created in the output directory you specified. Copy this file to your game’s KOE folder.
Now to add it into the game. Look through your seen files (make sure you followed the “Working with SEENs” guide,) for the place where you want to add new voices.
You can use Notepad++'s ctrl+f function to search for a word or sentence in a whole folder of files, so it’s easy to find the line you are looking for. (Looking for scenes with Notepad++ is expanded on in various other parts of the tutorial. If you are unclear on the process, I recommend looking at the H-scenes guide.)
Once you have found where you want to add your voices, open up the .org file matching the name of the file you are currently reading. I have seen0001.utf and seen0001.org.
Now in your .utf file, check the number at the start of the line you want to add a voice to. I’ll use the line starting in <0016> in my screenshot - one of Rin calling Masato and Kengo idiots.
Then, look to your .org file, and search for a #res that uses the same number as the one at the start of the line you are adding a voice to. #res<0016> is mine.
Above the line that has the #res, paste this:
The long string of numbers should match the name of the .wav file you are using.
Save your .org file. and then compile it into a seen file as you normally would. When you get to that point in the VN, your inserted sound should play.
Listening to background music
You can listen to any background track using NWAlib. It’s a simple tool to quickly check NWA files.
By linking to your BGM folder in the top bar, and your game folder in the bottom, you can see a list of all the background tracks in the VN. Clicking one will instantly make it play.
The three buttons are: Play, Stop, and Load Folder.
If you ever want to just listen to the ost from a VN, this is the program you want.
Converting background music to .wav
This is incredibly simple. Open Video Game Sound Converter and it’ll ask for a file. Look for the BGM track you want to convert and select it. Then you’ll be asked where you want the file to be saved. Just select a folder, and it’s done!
A step-by-step guide to removing H-scenes
Censorship is something you need to be very careful about. Removing H-scenes has a purpose, to make it friendly for all ages, however it can be easy to overstep and censor things that don’t need to be. Removing content is something you DON’T want to do.
Today I’ll be working with Tomoyo After, an amazing VN that gets overlooked because of it’s introduction. The VN starts with lots of H-scenes, so the focus point of this project will be at the start of the VN. Naturally, if you are censoring a different VN, you will have to look into different seen files to find the H-scenes.
Oh, and this process is nsfw… so don’t do it while family are around.
I start by copying kprl.exe from my rldev/bin folder, and pasting it in the Tomoyo After folder. Then I open up cygwin.
In my Tomoyo After folder a new folder has been created named “seen_files.” In that folder is the script to Tomoyo After.
Then, following the steps in the “viewing g00 files” tutorial, I open up g00libMax.
For most VNs, you will have to search through all of the CGs for the HCGs. Luckily Tomoyo After was so lazy with it’s fanservice that all of the HCGs are labeled “HCG.”
Once you’ve figured out the naming scheme for CGs in your game, you can single them out with a filter.
Now my favorite tool for editing seen files - Notepad++
I open up Notepad++ and press ctrl+f. This opens up a find menu. I click the “find in files” tab, and then type in the name of a HCG g00. I set the directory to my Tomoyo After folder, and begin my search!
You can see all the results in the bottom half of Notepad++. Double clicking a line will bring it up in the top half.
We can now read through the scene leading up the the h-scene, and we can look through the VN and see what exactly is going on.
Now, I have a bit of a dilemma. The H-scene I’m working with has some character development.
Luckily, the lead up to the H-scene starts with a fade-from-black. We can just move the development to a more suitable place, such as before the fade-to-black happens.
So now I look for a nearby “KURO” in Notepad++. This is the fade to black. I click on the line number, and set a mark to remember where the line is.
I highlight all of the character development starting from #res<0044> and ending with pause.
There we go! All the important stuff is safe from censorship. Since I have a fade-to-black, there is a new section of script right after it. This is marked by an @4 at the top. I keep all of the bits with “NONE” in, and find two lines near the bottom of the NONE section.
Everything after that until the H-scene ends gets deleted, making sure to follow it up with the #res of the text right after the H parts of the H-scene have ended.
If there is no important text right after the H-scene, you can just delete the whole thing up until the next @number section.
Now I alter some of the text to fit in a non-H context, and the scene is done. Now I save the file in my Tomoyo After and go back to my “seen_files” folder.
I copy the .utf file with the same name as the seen I edited, and paste it into the Tomoyo After folder.
Now I go back to Cygwin and type:
rlc -o SEEN0628 -d new_seens -e utf8 seen0628.org
This compresses the file so that the VN can read it.
An error! I’ve deleted something I shouldn’t. Hopefully your seen compresses fine, but if you get an error like this, you have to go back to notepad++ and find the error.
Line 386 is where I moved the non-H content to. The error?
I accidentally put “pause” and “#res<0044>” on the same line! A press of the enter key, and everything is fixed.
Now I can go into my “new_seens” folder and move the new seen file into my Tomoyo After folder.
Now you can test it! Delete that fade to black if you need to, and make sure everything is coherent and with the correct sprites… Or just listen to the beautiful title music of your VN. That is nice to do as well.
If you have a copy of Tomoyo After, and would like to see the result of this step-by-step, you can download the seen file here. The whole of the first day will be censored, and you can see the results within a minute of starting a new game.
Do all VNs have a special naming for the HCG?
Not usually. Tomoyo After is just convenient
In most VNs they will be with the rest of the CGs. CGs are normally marked with FG at the start, so you can look through them.
In Kanon for example, FGNY12 will be the first Nayuki HCG. FGMG08 will be Minagi’s first HCG in AIR.
The main Key games will follow this pattern.
Unfortunately to remove the H-scenes you have to see them partially ^^;
I’m having some problems installing FINDLIB. It says “ocaml not in PATH; this is required”. Any idea of what happened? I followed all the instructions, expect the ones you said not to follow.
Hmm… did you follow all of the OCaml installation steps?
Oh, and what Operating System are you running?
I followed them. But the problem is fixed now. I have no idea what this means, but I found it somewhere in the internet: I typed export GNUMAKE=gnumake, and then, export gnumake=gmake
Ah, I’m gonna update that with a guide on extracting audio and inserting your own, I just haven’t had the time today. The H-scene thing took a couple hours.
I’m having some problems (again). This time I couldn’t be helped by the Internet. I had to exclude ocaml-3.09.3. Now I’m re-installing it. But this is what happens when I try to ./configure on cygwin:
./configure: line 133: rm: command not found
./configure: line 134: touch: command not found
…/gnu/config.guess: line 38: sed: command not found
…/gnu/config.guess: line 1265: mkdir: command not found
…/gnu/config.guess: line 1265: mkdir: command not found
: cannot create a temporary directory in /tmp
Cannot guess host type
You must specify one with the -host option
I just want to stop in and mention that I can’t begin to say how grateful I am for all the work you’ve done for this topic, Taka. Really superb job.