Thanks. I found this board because, quite literally, it was the only place I was able to find on google that even mentioned the game. I found some 8 year old topic started by gillian seed (also the guy who made a no CD patch, was wondering if he were still around and had any info about the game's internals. I found his NOP slide in the CD checking routine). Really it seems like there's very little love for this game in the west.
Oh yeah, does anyone actually give a damn about this game?
I absolutely love this game, and it being in Japanese is precisely what made me not get as much into it as I did with Vantage Master Online. I often dreamed of it eventually getting an English patch, but always kicked myself awake going "haha, as if this game will get enough care... :/" to myself.
I'm psyched. XD
And welcome. =) Indeed, that's one hell of an introduction.
Count me in. I love Vantage Master! It is pretty much my favorite strategy game, and IMO, the best ever made! My experience with the CPU varies, but it's definitely the most balanced strategy game I've ever played. So yes, good luck! I'll be looking forward to your efforts and results.
Hey Kil, Gillian Seed is one of oldest members and one of the top collectors in the community so it comes to no surprise that he was the one who first posted some information about Vantage Master Japan. He drops by occasionally, but not terribly often and it looks like is website is currently down. If you want to send him a private message, this is his profile here. I'm not sure how often he would check it here, but he can also be found on YouTube.
I had always been interested in Vantage Master (Strategy games, based on turn-based play? Sure!) but I always had something or other attract my attention just when I was thinking of it. My lack of comprehension for Japanese was the other big problem - but if an English patch for VMJ becomes available, I would be very interested in playing it.
Anyway, found out that there are really, really annoying direct pointers to scripting macros in the scene scripts, so I'll have to reverse engineer all of the control codes before I can get a repacker working. Got about 20 of 63 done now, and when that's done I can actually start translating.
Well, they're kind of the same thing. Japanese is a kind of impenetrable, mysterious obstacle for many people. Compiled assembly code is just another kind of impenetrable obstacle. You can think of them as types of magic. I've practiced a lot of both of these things because they're like real magic that can break past impenetrable barriers.
A mighty obstacle can be penetrated with positive force and silver will.
I know what you mean, though. IMO, assembly -- at least 6502 ASM (I haven't familiarized myself with hacking outside of the NES/FC realm) isn't nearly as challenging as learning Japanese, but it's all in how much time and dedication you put into it. I obsessed with Faxanadu to the point where I wanted to learn everything about it -- and its Japanese counterpart. That's what got me into ASM. After that, I became ambitious. I'm beginning to rethink my position on the matter. I can't run from it because of a few minor threats, right?
I didn't devote nearly the same amount of time and attention to studying Japanese, because I was more interested in the programming behind it. That brings me to my closing point -- If anyone could have the same kind of motivation that got me to learn ASM in the first place, they could learn anything they wanted to! It's all about motivation, dedication, time, and attention.
Last Edit: Jun 12, 2012 20:05:13 GMT -5 by Unsavory
Haha. That's interesting. I never played that game but I saw some speedruns. I learned about game programming basics/asm from hacking super mario world. The nice thing about asm is that computers are still doing the same things they have been for 40 years. Just really huge lists of very simple operations, the only limiting factor being how much effort one puts into understanding them.
I didn't know if anyone was interested in ASM here, so I guess I can complain about VMJ scripts a bit. I thought this wasn't going to be quite as painful as it's turning out to be, but the scripts that dictate what happen in the story scenes, for some silly reason, have direct pointers in them to the same script. This means if I try to make the files larger by pushing more text into them, the pointers won't point to the right thing anymore. All the commands are variable byte so I also have to figure out what they all do first. Here's some of the first scene in the game:
00 00= the first two bytes are the command. 0000 means "load resource". 50 03 14 is the file, data20.dat (14 in hex), part x350 (50 03) The rest are various parameters of the file in question I haven't been able to/don't really need to understand to make a repacker. Only need to know how many bytes each command takes and if there are any direct pointers.
Next command: 8 bytes 0F 00 00 00 9C 03 1A
command 0F00 is Set X & Y position on the screen. 0000 is the target adjust value for the game's internal array of scene objects (or something like that, it's a bit odd). 0000 means set "this". 00 9C is the X value, 03 1A the Y value.
Most scripts start with this bit of code actually because data20.dat part x350 actually contains that little icon you can push to skip the scene.
Anyway I stumbled on code 06 yesterday, and what it does is jump to an offset from the beginning of the script file. It finds more scripting commands there and executes them. It's basically a macro/ subscripter, but unfortunately, this means if I add more text to a file, these pointers are no longer going to point to the correct thing. So now I have to reverse engineer all codes and see if any others rely on direct script pointers. Then I have to code the repacker to automatically detect the difference in the filesize of the new file and repoint every single pointer. Luckily each scene script is only like 2-4kb
Post by Red Hairdo on Jun 13, 2012 10:44:37 GMT -5
Hm, so that's how most people hack games... It's indeed all about reverse engineering and being good at it, it seems...
About myself, all I know here is what I learnt of programming in college with C, Java and some other languages, and being taught some low-level technical things like pointers and whatnot. So in other words, I only know "kiddy stuff", so to speak, with all teachings being market-oriented. Certainly not much of this kind of reverse engineering. Perhaps I should jump into the hacking scene eventually at some point...
I just wish I could help! But it seems you're progressing and know what to do, independently of the progress speed. That's awesome. For now, I'll just be patiently looking forward to seeing this project being completed. I have at least more two friends interested in this, so we will be rooting for you. Good luck!
Since a game like VMJ was coded in C/C++ (apparently it was done in Microsoft visual C++ studio 6), having an idea of what the C code probably looked like is helpful. I use what I know of those higher level languages to deduce what the original programmer probably wrote. Really couldn't do it without knowledge of both low level and high level coding.
And if I remember correctly, Java is an interpreted language, which I believe gets translated into a temporary bytecode. That is kind of like the scripting I'm messing with in this game. It's like another high level language that was invented for use in this game only. (more recent games actually do use java or python for some of their higher level scripting)