armips news

I hope you’ve all been enjoying Oriental Blue! There hasn’t been much progress on the other translations this time, but those are far from the only things I work on! In the last six months I’ve spent a lot of time on improving my assembler. I rewrote about half of it, added a few very neat new features, and made it open source on a GitHub repository. If anyone wants to contribute to it, pull requests are welcome. Otherwise you can just check out the latest stuff. It needs Visual Studio 2013 to compile, and the Visual C++ 2013 redistributable to run.

Here are the currently notable changes since the last release:

  • it is now possible to load (non relocateable) PSP ELFs via .loadelf name. This takes care of any address calculations. Many more PSP specific opcodes are also supported, though not at all yet
  • now fully UCS2 compatible. Can read from UTF8 and UTF16LE/BE by detecting the byte order mark. Can be told to interprete a file as Shift-JIS, too. If no BOM is found, it defaults to UTF8
  • the biggest new feature: importing static libraries compiled for PSP or GBA/NDS. armips takes care of relocating it to the current address, resolves external symbols using the user defined labels, and makes all exports visible to the rest of the assembly code. Essentially this allows you to write a lot of your code in C/C++, and then easily link it into the existing game using armips. The usage is .importlib name.
  • new -sym2 format, which adds support for functions that PPSSPP can interprete. .function name to start a function, and .endfunc to end it. .function will implicitly end any previous function.
  • new directives: .function, .endfunction, .stringn, .sjis, .loadelf, .importlib

I’m not sure how long it’ll take to wrap things up for the next proper release, but it will definitely be the biggest update so far.

Oriental Blue Release

obtitle

Admit it! You didn’t think it would happen. But as I’m sure you all know, it’s still summer! At least for most of this week.

Oriental Blue is an RPG that’s part of the popular Tengai series, also known as Far East of Eden to most (see the Readme for details on that). It features non-linear gameplay, an intelligent battle system with a unique magic system, and near endless replayability due to countless minor and major choices that you knowingly or unknowingly make.

The translation project was started on October 16 2008, and was announced to the public on March 15 2009. Tom, who is known for translations such as Dragon Quest Monsters: Caravan Heart and Persona 2: Innocent Sin translated it. It has obviously been a long project, taking much longer than I would have liked or expected. While the translation was finished relatively early on, the hacking dragged on for a long time… other projects were close to release and had to be finished, university took a lot of time away, etc.

We eventually reached a stage where it was ready to be tested on April 9 this year. It’s a massive game, so it was always the plan to have a long and thorough test. I didn’t expect it to be perfect, but as is always the case, the amount of issues that were found was pretty disheartening. A total of 130 issue tickets were opened on our bug tracker, of which 53 were technical issues. A huge thanks goes out to our beta testers for this amazing performance. I especially want to highlight Lord Oddeye, who played the game more thoroughly than anyone else and did his best to try every single possible outcome of all events, and made sure to catch all instances of the ever changing NPC text.

And now, make sure to read the Readme and enjoy the game!

Releasing… armips

As usual, it’s been a while! I apologize for my trademark silence, but as everyone knows, it’s nothing unusual.

The previous armips version was released in 2010, and it was very well received at the time. Over the years, I kept adding small new features to it, and I think it’s a good time to release an update now. The most notable additions are static labels, which act like global labels but can be redefined in every file, and the possibility to make all file paths relative to the file that uses them (as opposed to the working directory). Everything together makes for a decently sized update. This is probably the final armips release.

Here are the changes:

  • added automatic optimizations for several ARM opcodes
  • many bugfixes and internal changes
  • added static labels
  • new directives: .warning, .error, .notice, .relativeinclude, .erroronwarning, .ifarm, .ifthumb
  • quotation marks can now be escaped in strings using \”.

SLPM_870.50_31032013_185553_0592Now that the exciting stuff is out of the way, let’s talk a bit about our translations! One game is often asked for, but it hasn’t been mentioned by me for quite a long time – Xenosaga 1&2. The translation is still progressing, and in fact, late last year, the story text was finished. However, there is still a lot of optional text left. The translation is progressing slowly, but the translator is as dedicated to the task as I am.

The game on the left hasn’t made a lot of progress lately, but hopefully that can change soon. I’ll try to at least upload some new media during the coming months.

Oh, I nearly forgot: We collaborated with Absolute Zero to bring you one of the most influential Tales games of the last decade, which just happened to be finished today – Tales of the Tempest! More about that on their site.