Friday, December 21, 2007

A Very Different Christmas

This year's Christmas is going to be the first I will spend in the city.


On top of that, I am gaining a new family, that of my would-be step mother. It's all very sudden as I have never even met her, and I'm quite sure my father has known her for only a few months.

It seems a bit strange, not going home for the holidays, but maybe in the coming years I will see this not as the end of my old life, but as the start of a new one.

UPDATE:
Well, they broke up. So much for that part of the "new life"

Monday, December 17, 2007

Upgrade Complete!

My Cousin Marie called to offer me a modelling stint. As I'm 50 pounds over 200, it obviously didn't have anything to do with a runway, flashy lights, half-naked women...

I need to flesh out 6 characters in 3D for an advert for some industrial insectiside called "Chix".

It vaguely occured to me that my 2.1Ghz Celeron 512MB with 8MB shared video memory just wasn't gonna slice the pie, so to speak, and I was planning an upgrade anyway so Franz and I went out to Gilmore to pick up our brand new PC. Here are the things I bought:

Intel E4500 Core 2 Duo @ 2.2Ghz
1GB Kingston DDR2
ASUS P5B-MX WiFi AP
Inno3D GeForce 8600 GT 512MB DDR2
Epson Stylus C90
19" HannSpree LCD display HDMI (1440 x 900 native resolution)

The CPU and Memory

I haven't actually had time to push this thing to breaking point. Yesterday Firefox was acting all weird and hogging memory and the computer was doing bullet time, so there must have been some bottleneck somewhere. It was really annoying to see a Core 2 Duo getting stuck up like that. You'd expect threading to save the day. Even the mouse pointer was freezing, so it had to be somewhere low level.

The MotherBoard

The annoying thing about this board is that it only has one IDE (PATA) slot. While I understand the need to replace it with SATA, it doesn't make sense to alienate your customers with ony one PATA slot when there are still many PATA drives lying about. Now I need to find an IDE to SATA converter, or else settle for USB.

I should have gone over the specs more and read up on the latest chipsets, so I don't really know what's going on under the hood of this one. I had to upgrade the BIOS in order for it to recognize my CPU.

It's saving grace is the built-in WiFi card that can act as a Station and as an Access Point - all literally at the click of a button. I was able to connect my PSP while in AP mode all without configuring anything.

Granted, surfing the web on my PSP while Franz is chatting away on a 19" LCD screen isn't exactly fun, but if you happen to have a wifi laptop lying around and you don't have a wifi router yet, this is really neat.

The Video Card

I was more of an ATI person, since my brother's 5500 FX broke 3 times, but since all the nice games love NVidia, I decided to follow the higher path as well. I always considered Inno3D being the cheaper, thus inferior brand, but the 8600 GT for Php 2,600 is a bargain.

I don't see why it's DDR3 version is 3 times the price, and I don't really think that DDR3 will provide a large performance boost.

The Display

You can find out what this looks like over here. Personally, Franz didn't like the design. Strongly disagreed. Hated. Like she hates vegetables. I thought it was okay. The guys over at Gilmore couldn't stop flouting it, I should have smelled a sales pitch. They said that the Hannspree was a new entry into the market that they's sold several over the past few months with no returnees.

It's HDMI, which means absolutely nothing unless you have Blu-Ray or a PS3. As that's unlikely to happen within the next 2 years, it's nice to know I'm at least prepared for the possibility. The 1440 x 900 resolution is crisp and clear, and of course you'll need a newer video card that supports the resolution.

What this looks really good with is a see though case and/or a acrylic glass table top.

The #@$!*% Printer

The damn thing refused to work even once. I'm returning it tomorrow. I think the ink cartridges have "expired".

UPDATE: Franz called Gilmore to report the problem. They said they'd replace it... IF we bought new cartridges and found that it still didn't work! Rubbish! A new set of ink cartridges costs almost as much as the printer!

The Tests

ePSXe - the PlayStation emulator

This actually used to be my benchmark for PCs. Prolly cause I read about how it was a good test of performance due to emulation and vdeo card requirements. I just ran the BIOS, with Pete's OpenGL2 plugin set to "Nice". As expected, all went smoothly.

Tomb Raider: Legends

This is actually the only decent game I had on hand, so I whipped it out right away. I turned on all the display options: New Generation Content, Full Screen Effects, Depth of Field, Reflections and all.

Having only played this before on an GeCube X550, seeing it in all its glory blew me away. Widescreen support is a nice touch.

When I enabled Anti Aliasing the game slowed noticeably with each level of AA.

PCSX2

Emulation? I could have just bought a PS2. Instead I need a dual core CPU, a kickass video card, and hope that your game works.

But...

...you can't surf porn sites on a PS2.

With my first few settings I got it running, but rather slowly. After a few more settings I got the BIOS up to speed running at almost 60 fps.

The only game I had on hand was Shadow of the Colossus. It booted (yay!) and then immediately crawled to 0.9 fps. Thankfully, I found out that SotC isn't one of those games that plays well on PCSX2. I'm just going to have to wait until I get a copy of FFX.

Same thing with Anti Aliasing, rendering slowed noticeably with each level of AA.

I find it hard to believe there was that much of a slowdown with AA turned on.

3D Studio Max

I haven't got an installer yet, so the jury's still out on how fast my rig can render a scene. What I want to know is if there are GPGPU plugins that can help boost rendering time.

Tuesday, December 4, 2007

Back on Track

After more than a year, I have once again picked up the threads of my Akazukin Cha Cha RPG Translation project. Unfortunately the last updates on my Geocities site actually don't reflect the last work I did before abandoning the project (again).

Here is a list of things that have been completed
  • Variable width font routine
  • Simple dictionary compression routine
  • Auto line-wrapping routine
  • Dialog engine hacks
  • New font GFX
Although not essential to produce a working patch, the two routines are important in making the translation a lot easier and goes a long way to make the patch more professional-looking.

Variable Width Font

Japanese characters usually take up the same amount of space on screen, whether kanji or kana. The original character size was 16x14, but I was able to trim it down to 8x14. However, the roman alphabet wasn't designed to be evenly spaced. So thin letters like i, l and t are around half the width. The routine was quite daunting at first, but easy once I understood how SNES graphics worked. This also had the added benefit that you could place more letters on a line at a time, depending on the characters used.

[screenshot - no VFW][screenshot - VFW]

Line Wrapping

Shock! The original code for Akazukin Cha Cha contained NO line wrapping code. That meant developers had to manually insert line breaks into the script at the end of each line! Horrors! I looked at myself in the mirror and told myself, this won't do.

Dictionary Compression

From the onset of the project I anticipated that the translated script would take up more bytes in the ROM than the original. Case in point, Cha Cha's name:

Japanese: [CHI][ya][CHI][ya] - 4 letters
English: [C][h][a][ ][C][h][a] - 7 letters (or 6 if you don't count the space)

So the best way to handle this is to use replacement codes for letter combinations that commonly occur in the script.

[01] = Cha Cha
[02] = Riiya
...
[08] = the

This is the same way that Chrono Trigger (English version) handles its script, which is quite large. I didn't expect a large script from Cha Cha, but the size of the ROM was small to begin with.

The Dialog Engine

I spent quite some time looking at how this part of the game worked, and there were still some things I didn't understand when I put down the project. I'll have to go back and take a look at those things.

The modifications applied to the engine were removing two-byte (Kanji) codes and integrating the dictionary routine.

New Font Graphics

The font doesn't really match that well to the cartoonish style of Akazukin Cha Cha, but that's just details. The nitty gritty of the ASM coding is complete. There may be a few things that need smoothing later on, but looking back on my work I'm very happy with how the code turned out, and pleasantly surprised that as was able to get it to work as expected.

Now we go back to the script. I actually thought that this would be the easy part, but it turns out to be quite a major bump in the project roadmap.

I've discovered a few things (just this morning, in fact, which could explain why I was late for work) with the scripting and event engine. I've found out that the dialogue engine was just a subset of the scripting engine, and I've decoded a few bits and pieces of how an event plays out.

This is quite a step forward in fully decoding the script, and one step closer to a complete translation. This is also a huge boost in morale, giving me a reason to keep forging on.

Once I have the script format pinned down, a proper script-ripper or and editor is in order. I do have a very simple script-ripper and inserter, but it is fairly complicated and existing in the realm of it-just-works! and will have to be re-written to be really useful.

As usual, I'm back to looking for a few good translators who can accomodate the wackiness of Akazukin Cha Cha into the translation. I realize a straight translation will leave many scratching their heads, and purists will flame me for modifying any single bit of it, but I'd rather have more people enjoying the game.

Shamefully, I haven't played the game very far myself, so I can't vouch for how good the game is, but the presentation is unique, and it's something I always look for in a game.

Check out the screenshots below!