Vitamin X Evolution - Help wanted

Discussion in 'NDS - ROM Hacking and Translations' started by Chell, Dec 18, 2016.

  1. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    Hello, nice to meet you!

    Let me begin by introducing myself. I'm Chell, I'm a japanese language intermediate level student as well as an otome games fan. I've worked with fan translations (from Japanese as well as from English to my main language) before and I'm currently seeking a new project. Vitamin X is an otome game classic and one I've wanted to play for the longest time, however I was never able to. It's a much requested game everywhere, so it's a surprise it's never been translated. After learning japanese, I realized the game's dialogues are SUPER LENGTHY and not that easy, and there are timed questions and others that make it harder for a non-fluent/native speaker to play.

    I would love to translate it, ideally the DS version because there are more features than other ports (ie. PSP, PS2). However, I'm not versed in rom hacking and wouldn't know how to rip the dialogues or edit the rom properly. I would like help with this. I'm still going to do it even if I don't find help, but I'm a student with little free time so it would take longer for me to learn how to do these instead of jumping right into the translating part.

    So what I wanted to know is if there's anyone interested in joining me in this project. :) I'd like it to be open for reviewing (like, say, bakatsuki's), which is easy to do, and I can help with the hacking part if needed.

    A lot of thanks in advance, and I'm open for any questions and so on!

    EDIT: I made this Wikia to share my ideas with you. :shy: Thanks!

    - Chell
     
    Last edited by Chell, Dec 20, 2016
    Pablitox and guisadop like this.


  2. Enigma Hall

    Enigma Hall GBAtemp Advanced Fan

    Member
    645
    199
    Feb 6, 2013
    Brazil
    Once someone can extract rhe script for you then you could translate it. But i dont know if is simple like this.
     
  3. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    Hello! Yes, I know and I highly doubt it. As of now I'm translating manually (playing the game, then typing the sentences and translating) but it's harder than getting text files (because the font is so small, some kanji are easy to misread etc) and definitely more time-consuming. If it's not possible I could translate manually and have someone do the rom hacking, though. Ideally, this is what I'm hoping for.
     
  4. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    I will take a quick look but the sheer file size compressed has me nervous about the degree of work involved. will edit this post later.

    edit:
    so a crap load of ahx sound files, a single cpk file. A bunch of packed bin files with textures in them. and nice and easy to figure out pointer system that includes names... as to strings (text)... nothing to see yet...
    will edit again later...

    yeah so the cpk has the standard nintendo file structure, ncgr, nclr, ncbr, etcetera. It seems that the one folder is repeated in the cpk file just with different file name endings.
    those bin files... sigh pointers to beginning of sections with the pointer repeated(?)... names of then data.

    to look up "IKA SEQ SYSTEM v3.1 HuneX 2007" its what was used to pack this... a tiny bit of the text in the arm 9 more in the bin files mentioned above in sjis I must point out again with easy to find pointers.
    sigh...

    well given the crapload of graphics its probably in there... you have alot of work ahead of you.

    So:
    As to finding the text - its in the vitamin_scr folders yes two of them on in the cpk and one in the other folders. They seem to be copies of each other.
    also its a mix of text and other stuff... its going to make editing them a pain in the butt.
    maybe later bug you with the dumped graphics. I am not making you a script inserter dumper to be clear. I was just taking a look. You don't have to have a deep knowledge of hacking for this. just the ability to look up things and the patience to look.

    your in luck some of the graphics have the english equivalent in there already they may just need to be file replaced...

    graphics later... going to sleep now...
     
    Last edited by rastsan, Dec 20, 2016
    Chell likes this.
  5. rikumax25!

    rikumax25! Keyblade Wielder

    Member
    1,400
    499
    Apr 21, 2016
    Costa Rica
    Maybe you can look into a agame that maybe uses the same engine and see if someone already cracked it
     
  6. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    First of all, thanks a lot for everything!

    Yes, I am aware that most of the huge file size are voiceovers that should simply be kept. It's a text game so most of the graphics are images and since it's about an English teacher, most of it is already translated by default. I have some experience creating DS themes and I worked with scanlations editing so I could do the graphics editing part maybe. The thing is I never, never worked with rom hacking. I intended to translate it but if I can't find anyone then I'll extract the text files myself. Glad it's not too difficult. ^_^

    Thanks a lot for now!

    — Posts automatically merged - Please don't double post! —

    Sorry about double posting I'm still getting used to the forum. m(_ _)m

    So is that "IKA SEQ SYSTEM v3.1 HuneX 2007" the engine? HuneX also released Love Revo which was fan translated but not sure if it uses the same engine but I'll try checking it. Thanks!
     
    Last edited by Chell, Dec 20, 2016
  7. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    Two things.
    First, I extracted and opened the game with a hex editor but I'll probably have to look into tutorials because, as the characters are in japanese, it's really not that easy... ;; thanks @rastsan for the help, I couldn't have done it otherwise. :)
    The second is I made a Wiki to insert the texts/tls and everything later so if anyone wants to help maybe check there later.
    Thanks a lot so far!
     
  8. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    upload_2016-12-21_20-47-6.png

    So this is really nothing big, but I'm glad I was finally able to do it after years... just comparing my manual transcription with the dumped text. Not having to type it manually (and search every kanji idk) makes text a lot easier to translate. ^_^ Beginning today I'll be able to put the transcriptions in the Wiki and begin to translate it, so whoever wants to try their hand at translating VitaminX can, too. (I'm doing it manually though... if anyone knows a way to extract only the japanese text characters on Notepad++ or other editor, please tell me. m(_ _)m )
    Thanks everyone especially @rastsan so far. I still don't know how to edit the text into the game but I guess this can be figured out later.
     
    Last edited by Chell, Dec 21, 2016
  9. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    just follow the pointers. they leapfrog (one to the next, I guess would be the best way to put it). so there are sections then those sections have pointers just before them to other parts. so we will take the quiz.bin file as an example. It has the IKA SEQ SYSTEM v3.1 HuneX 2007 header. following that is the sections.
    (part hex part actual text to make it easier those with experience know why I am doing this)
    80 00 00 00 FILETOPADDR.
    C0 58 00 00 FILETOPADDR.
    C0 B7 00 00 FILETOPADDR.
    00 0F 01 00 FILETOPADDR.
    C0 6B 01 00 FILETOPADDR.
    E0 CE 01 00 FILETOPADDR.
    at which point the sections start as that is where that first pointer points to 80 00 00 00
    read backwards 00 00 00 80
    which has either a pointer or file or section size than a name (the name may change but for this example KATURAGI_QUIZ followed by a pointer system
    26 0C 24 01 C8 05 00 00
    this is what we will use for the example. I have yet to figure out what the c26 is but the 124 may be bloc size 5c8 is where the text/block is. that is your first text block in the pointers point to in the file. number of pointer 92 or 93 I may have counted wrong. the c26 124 could be screen coordinates... I don't know. For our purposes just follow the pointers.
    #.KATSURAGI_Q_000.\4小説『銀河鉄道の夜』の作者ぁ~@n知ってるか~?!..\.宮沢賢治..\.宮沢賢太..\.宮沢賢二..\.宮沢賢次..

    no that is not a hashtag it 23 10 I assumed that is was a pointer I may have that wrong. using the table from FONT 13 we get this.
    ..小説『銀河鉄道の夜』の作者ぁ~..知ってるか~?!....宮沢賢治....宮沢賢太....宮沢賢二....宮沢賢次.
    just slightly different then with sjis. so while you are dumping the text make sure you are using the right table file. the next pointer 63e has this
    ....................江戸時代『奥の細道』っ!..という紀行文を書いた俳人は..誰だぁっ!?....松尾芭蕉....水戸光圀....小林一茶....井原西鶴..

    so now its just making something that reads the section pointer then lists the text from the pointers in those sections. Again NOTE these files DO NOT JUST HAVE TEXT. this is more than enough to get someone to build a script dumper for you. I'll put the stuff dumped (unpacked cpk, font table files up on my gdrive and will send you the link later tonight). There are a number of graphic files that will still need to be edited. Please do not be annoyed I dumped everything I thought pertinent. No I didn't go through every file - they repeat and have a basic theme... so If I missed something you will at least be able to search for it with tinke using the narc I will be sending you. Oh this also means that yes you can make the font smaller and insert one byte characters into the one font as one does not have one byte support but the other does... (easy way to discern which font is being used in which file).

    off to pack this crap up and post it... later...

    edit: to get the text in the game you need several things a way to read the script, a way to edit it in, and a way to check it. so you have the pointers. you will have a table file that will let you read/dump the text from the files. set up a spread sheet with the pointers with a column that lists where things get moved... those pointers will change with the translation so they need to be updated, another column with the untranslated text found from the pointers, then the translation in the next column. When you insert the translation pointer by pointer when done with that file then update where it now actually is in the spreadsheet.
    the good news is that you only need to the one scr folder once the files are exactly the same in both folders.
    good news there is pointer dumpers script dumpers/inserters out there and even then you don't really need that you just need to know how to use macros and either emeditor or notepad++ open the file in hex find the pointers and delete the un-neccessary stuff. you know where the pointers are you can easily dump them and with that you can dump/insert the script. use crystaltile2 if you need a hex editor with table file support.
     
    Last edited by rastsan, Dec 22, 2016
    Chell likes this.
  10. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    @rastsan Wow, ok, first of all thank you SO much for this!! I'm indebted, feel free to ask anything translation related if needed. I checked the graphics and there really isn't much to translate, only a few back, start etc buttons since it's already in English for the most past. Thanks so much.

    Oh it's easy anyway to do it manually, since I'm playing the game at the same time to get the contexts of the speeches, I realized it's really not that difficult. I was only afraid I'd be wasting too much time copying every sentence manually. I'll get crystaltile2 and discover how to use tables then, thank you! I really don't know anything about romhacking or even hex editing atm so I will really have to do my share of reading to understand everything you said though lol. But for the most part, regarding the actual translating I guess this is really all I needed so thanks a lot!! ^_^

    One more thing. As much as I wanna keep the hacking simple, I will need one special feature and it is to change fonts... I'd like to have the option of using two different fonts so whenever they spoke English in the Japanese original (which they do a lot) I'd use a different font so as to not make the story lose some of its sense and appeal. Of course I could get around it like making them English-speaking students who occasionally speak Japanese or just typing in all caps but if there's a way to use two fonts (in the same text box occasionally) it would be better. Is there?
     
    Last edited by Chell, Dec 22, 2016
  11. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    there are the Manual graphics that need your attention. your game will go quickly I think. you already have the names done. graphically alot of that is just cut and paste work. 373 files in the scr folder most of them not really that large. the quiz.bin file is actually the largest in that folder. if you have screenhots I can tell you what some of the control codes are and help you with the line limit (this much space for text on screen). As it would just be a matter of searching for and finding that in those files (relative searching). Oh, don't forget there is some text in the arm 9. which may be more troublesome.
    if you are going to play this game while translating can you get me some memory dumps? be descriptive when naming them not just the typical date and time - chapter 1 blah blah blah... just in case. this way if there is an internal this file should be this size thing you have something to compare before and after. easier to find what caused the trouble that way.
    Big question were you planning on english dubbing?

    edit to answer one of shells questions. about the font idea. Italics could very easily be inserted into the fonts just like making it bold, but would be a pain. as to the colors you would have to send me some in game screen shots as I have yet to play this... IF there already is colored text then sure. if not that could mean some work (which I am not the one to ask as that would be too much work for me I have my own projects).
     
    Last edited by rastsan, Dec 22, 2016
    Chell likes this.
  12. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    I see, the great majority are both English and Japanese actually. So it's OK to just keep 'em. Hmm.. I understand the concept of line limit but I still don't know how to fiddle with it, sorry. I downloaded crystaltile2 and it seems to allow me to edit but I'll fiddle with it only when I finish the prologues. Actually since I'm doing it on my own and I wanna transcribe everything, I think it's going to take some time so I'm not rushing.
    No problem, just tell me how to do it or gimme some reference links to learn lol! As I said, I really am a total newbie so sorry about it, but I'd love to help if I can.
    I don't plan on dubbing at all, I think most people would rather play with original voices anyway (the actors are pretty popular).

    Really, is it simple to insert italics?! That'd be the better option, I think. It's subtle but enough to indicate that's different from the other words. Again, thank you so much!!! :)
     
  13. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    well it depends on how you want to go. Italics bold? if there is colored text in game I need a screen shot so I can find said text and give you the control codes for such to insert before and after that particular text (I need to find them first). If there isn't any then its just a matter of changing the font - I am thinking of editing the fullwidth characters for this. or using unicode. I will leave it up to you. As you still haven't said if there is colored text.
    the line limit deals with how much text per line fits in a given text box. It can be changed. In your case the font can be made thinner and smaller very very easily. Also the text boxes and can be changed (but you won't need that).
    transcribe? if its from screenshots don't waste your time... relative search in game(rom), find the file that particular text is in then dump the script from it. so you know that X character is speaking (you have the name) you search for that name until you find that particular text blurb. in crystaltile2 load the rom search then find. You can search the narc file too. in the lower left hand corner of ct2 you will see which file it is in when you find it.
    Its way easier with a spreadsheet as finding out that you have the exact same text from one pointer and can just repoint to that previous entry helps to save the space.
    so tools that anyone can use for pointer dumping scripts romhacking.net under utilities.
    atlas, cartographer, kruptar (which I use), TED (for dumping pointers for kruptar).
     
  14. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    Sorry I went missing today, kinda busy until Christmas so...

    @rastsan
    Whatever is fine, as long as it makes it possible to differentiate the text. I didn't see any colored text yet but I didn't play through every route. Even so I doubt there will be colored text anywhere.
    Really? I don't get the fonts either but yes, the original roman (A, B, C) font in the game takes up too much space, so it'd be necessary to change it. I haven't gotten around to this yet...
    I wanna have the text + translation in a Wiki so other people can correct eventual mistakes I make. I just wanted to dump the game's script. So it's gonna take a lot more time than translating directly maybe. This is why I am not worrying so much rn. But I've only transcribed 1 file so far, and 373 files at 1 file/day isn't gonna be quick... ; I read that these programs you mentioned did something like the script dump I want to do but idk?
    Thanks again btw!!
     
    Last edited by Chell, Dec 23, 2016
  15. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    so for TED dumping the pointers or loading and dumping (whatever) you would use one of the table files I sent you and the file as the the rom. Each section would be treated as new list of pointers so you would do this over and over until you went through each files sections dumping each sections pointers from that file. example the file Fortune.bin only has one section that starts at offset 30. But that is not where the pointers start. They start later. You have to go through file by file section by section listing this info or try to get someone to build you a dumper. I would go through and do it myself (cause I know there will always be stuff that gets you going oh yeah the section text title can have different lengths so I have to look and see personally where the pointers start as that section title could be any length and I need to check that. (in my case discovered when going through b6_ap1.bin)... but back to the example. in fortune.bin the pointers actually start at offset 40 and would use this format in TED (table21). there is 150 pointers not useful but you need need the table start offset 40 and table end 4e0 x000offset 0
    ?? ?? ?? ?? T3 T2 T1 T0

    okay so I fiddled around couldn't get the table files to work with TED and dumped the pointers for fortune.bin myself using the aforementioned cut paste and macros...
    000004E0
    00000540
    000005AE
    00000612
    0000067E
    etcetera sending you the dumped text table file kruptar project file didn't take me that long...
     
  16. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    First of all, really sorry for not answering before! m(_ _)m I had to rush a christmas project so was busy but around!
    Thanks so so so much again.. lol I am indeed very indebted :rofl: I'm taking my time seeing as I'm a total noob there are many things I do not get. I'm completely amazed at this... this really makes everything so much easier apparently, now to learn to do this myself with TED is probably going to take a while but I'll try ;; thanks so much...

    upload_2016-12-26_17-18-25.png

    Also... here I opened the file + the fortune.bin but for some reason it said some other file was missing but I'm not sure what this is supposed to be nor if it's important... for now I'm just dumping text on the Wikia so this is enough, but..

    Once again, thank you so much and I'll get back w updates soon!
     
  17. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    the source rom is the file. the table file is one of the tbl files I sent you. The only problem which I know that I keep bringing up is that not all of these files have just text. TED may not work you may have to dump the pointers yourself. (I was having trouble gave up and did it manually).
    Look up hex editors, pointers here on the temp and anything that comes up as by FAST6191 read over. Use Notepad++ and the macro function (save the macros as you have 300+ files to do this for and resaving every time is going to be time consuming in an already time consuming task). dump pointers per sections then list them per file in a spread sheet then upload the spreadsheet as that is way easier than copy pasting line by line in a wiki. Assuming anyone helps on the wiki. there is a hexeditor that has a function to reverse the byte order (as the pointers are in reverse byte order). save the file as anything but the orginal name then open it in Notepad++. Use the macro function to help format those pointers to one kruptar uses. copy paste them into kruptar (once you get familiar with it). use kruptar to dump the text to a text file. or copy paste them from kruptar to a spreadsheet. then upload the spreadsheet to google docs and let people help out there. The best part about google docs is that you can roll back any spammer actions. where as the wiki may not be able to do that. you can also download any changes from google docs whole where as you may be stuck copying and pasting from a wiki. Think about how much text you have and how much time you really want to spend on this. This is not even talking about hunting for the text in the arm9 and any pointers to said text in the arm9. or worse any pointers from the arm9 to text in files outside of it. If this is getting confusing I swear I am not doing it on purpose.

    there are other pointer dumpers out there and if you ask someone else nicely they may just build a dumper for you. I haven't taken a look lately so there may be one that can work with the format yours are in. Or be made to work with. Which is what I did with Kruptar.

    Any questions just ask.

    Edit: if you want a specific type face inserted inserted into the font that will not be a problem. you can insert arial font characters along with new times roman if you wanted. its just that the text for this would use a specific code base any of that text would need to be converted to it before insertion. Ascii is one byte sjis and unicode two byte. I would be using a two byte range and over writing that with this. so the two byte english would be very easy to use but WE could use more than one range. if you wanted italics or underline or italics and underline together that could be done. point being once you decide what you want to do tell me and I will get it done.
     
    Last edited by rastsan, Dec 26, 2016
  18. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    Yay, I'm finally back! New Years was quite busy, although I tried doing some reading on pointers and stuff but it wasn't really so simple... I thought maybe I should explore an SNES game to get the gist of pointers and romhacking in general as there are more tutorials available, but I'm not sure it is gonna be any useful or actually work so maybe I should just focus on VitaminX.

    @rastsan A few friends at least would certainly help translate few things, so all I'd need to do for now would be dump sentences on the Wiki, which would make things easier for me to translate too. Whether it's gonna be on the Wiki or Google Docs is something I'm not sure about... Google Docs freezes a bit depending on how long the file is etc so I thought a Wiki might be more practical, but maybe not. I'll see.
    It's ok, I didn't really expect it to be a stroll in the park lol but I gotta do lots of reading before I can understand everything you're teaching me. I don't really know how much work it is so I really don't wanna bother with the programming before getting the translation done, and it's gonna take some time since it's a longish VN so I'm just focusing on how to extract the text really. Thanks a lot for all the help so far!
     
    Last edited by Chell, Jan 2, 2017
  19. Chell
    OP

    Chell Member

    Newcomer
    20
    2
    Dec 18, 2016
    Brazil
    For those who wanted to see a Vitamin X translation, hi, I'm still around and eager!

    I realized I had to learn at least romhacking basics if I wanted to tackle a rom translation on my own, so I'm currently doing a lot of reading and hacking simpler games so as to understand it. I don't wanna waste time on fruitless efforts but I am around. I've got an YouTube channel where I'll share stuff on Vitamin X so message me there for updates on how it's going (or, if you wanna offer assistance I'll be super happy too).

    Super thanks @rastsan for all the help so far, it's all documented (and now I can understand stuff better lol) and hopefully I'll return later!
     
  20. rastsan

    rastsan 8 baller, Death Wizard,

    Member
    996
    228
    May 28, 2008
    Canada
    toronto
    Well I wasn't sure if you wanted to go alone or not. If you need help change your first post and the title. Translator looking for hacker(s)... some details here...
     
    Chell likes this.