RLDev for Dummies

For line breaks? Those functions are usually added by translation groups I believe.

I don’t think the older reallive games like Kanon or Air have the function. Maybe they just rarely use it.
In the newer stuff like Litbus, you use \r. In Siglus games like Rewrite and AB, it should be \n, assuming you use the same tools as the Rewrite translation.

1 Like

Ah about g00 do you know how to use #CENTERPOS or sth can let image center ?
When i check an xml file they have like this

This line helps to center images. We cant use “CUT based on LAYER” and “CUT based on COMMAND” at the same time according to your instruction before.

This file _ny_ef_dm_001 I checked Amaterasu’ PSD they used “CUT based on LAYER” (#CUT layer at the top)
I used g00packMAX but I checked xml didnt have these line to help center image.

Ahaha, this is my least favorite topic. I experimented with this a while back, but I always forget about what I learned! The last time I touched the NYEF images it didn’t end well.

There’s quite a heavy bit of documentation of the center and cut commands. It’s all in Japanese, but a google translate could probably get the meaning across.

If you use vaconv to extract the image, you’ll be left with an xml and a png file. If you use vaconv to convert the png to g00 (by simple typing vaconv followed by the name of the png file) it’ll follow the instructions in the xml.
So basically, you can use those xml files for any other pngs you turn into g00s via vaconv.

You guys have any examples that are working with this center ?
I experimented everything already…
I know xml is a way too but i want to find a legal way :v:

There aren’t any examples of it provided by VisualArt’s.

Hmm… Could you not just make the psd the same length and height as the game’s window? That way, anything in the center of the image will be centered.

Working with layered g00s

Edit: This section has become somewhat obsolete with a new version of RLDev. A backup of this version can be found here.
When using RLDev to extract a certain type of g00, you will be left with a weird mix of multiple images.

This problem is especially prevalent in Little Busters! and Siglus VNs. Hackers, being the tricky creatures they are, all end up disappearing before explaining how these images can be extracted correctly, so I’m here to provide a workaround!

For this example I will use a g00 from Angel Beats!

As you can see, it is a large image with multiple areas being cropped. In-game, these red bars are used to introduce you to a new area of the AB world.
When extracting this g00 with RLDev, instead of getting a big sheet of all that red, we get… this.

All of the cropped areas have been squished into a single small image. If you were to extract it with Crass instead, you’d get all of the layers.

So by using the Crass tool you can get the g00 extracted… But what if you want to edit it and put it all back into a g00?
Well, you’ll have to recreate the exact image you see in g00lib. That could be bad, but luckily we have the power of screenshotting.

I took a few screenshots of the image in g00lib, and stitched them all together in photoshop. Then I got the exported images from Crass and put them in the correct place, using the screenshot as a guideline. You could probably just use the screenshot and ignore the Crass step, but I’m unsure if screenshots are a lower quality than the source image, so I’m being safe~

I then made an edit to the image

Then I saved it as a psd, created a text file with the same name as the psd in the same directory, and typed out the details:
#RECTCUT_YOKO 0, 0, 318, 71, 2, 11

Each layer is 318x71, there are 2 columns and 11 rows of layers to cut.

I put it through g00 pack, put it in my game’s g00 folder, and check to see if it works.


Any one can give me the rldev kit can use for vietnamese char (cp1258)

Thanks for the great guide, but I get an error when I try to convert seen files:

Warning: found op<0:Os:00004, 0>, which is defined for some interpreters, but
not RealLive
Warning: too few arguments in call to op<0:Os:00004, 0> near 0x003bea.
Error: expected 0x5c[14-1e], found 0x2944 in get_assignment near 0x003bf3.

Sorry but can I get some help on this matter? ^-^

Which VN are you dealing with?

Right, Planetarian.

Oh, which version? The Japanese release or the Steam release?

Steam release.

Ah, the Steam release won’t work with rldev from what I know. It uses reallivemax, and the translation team probably added some features that weren’t in the original game.

That’s really unfortunate. :confused: Thanks though! Mind if I ask you another error about Clannad? This one is the Jp one with a fan translation.

Error: kidoku flag index out of bounds near 0x0003ed.

Any ideas?

The only thing that makes the latest version of Planetarian on Steam (the Japanese build) different compared to previous releases (aside from having been compiled with of rlMax) is really just some DLL calls for the achievements :confused:

Huh, yeah. I was in a bit of a rush so I just assumed it was a change in the Steam release, but the same error shows up in the original translation. Probably a problem with the English script or something. Don’t have a fresh install to check, and I’m ill right now so I probably won’t notice a problem if it was shouting at me.

Is there anyway to implement the commands that has been used on RLMax to RLDev, I wonder? Since RLDev don’t know the commands such as ONGOTOCASE, it can’t compile scripts compiled on RLMax. RLDev can extract the scenario files from Planetarian’s Steam version, but it can’t recompile it.

Someone released a new Vaconv that can extract multiple layers in a .g00.

I’ll update my Working with layered g00s section to reflect this soon.

This should help anyone who was translating a Siglus Engine game.


Theoretically it should be implementable (though I can’t say I’ve worked with RLDev from a programming standpoint). As far as I know, ONGOTO(condition) is equivalent to a switch where all its cases (from 0 to n) call GOTO.

Hey bro, have you tried to create .g00 from .psd files? My previous problem was an example for that method. Did you know that?