Lots of things have been going on at TransCorp since the last update. And I bet you thought we were sitting around doing nothing, well… :P. I’m still working on clearing out the backlog of old overdue tasks, as well as continuing to move forward with current projects. Life has been especially difficult again in recent weeks, but I’ve still been able to keep a good pace going. Work is progressing much better than the past few years and that carrot of work completion is dangling within my sites! First, we’ll look at what’s new with the old projects.
Dual Orb 2, Wozz, Emerald Dragon, OH MY!
This has been a long time coming, but I have blown the dust off of all of the old projects to give them the tender love and care they deserve. All 3 have received new patch updates to take care of some long standing things that needed taking care of. Every now and then, I like to enhance or improve my old releases. I never truly abandon them and they are never truly done. In addition to the new patch content itself, I took this opportunity to also add xdelta patches to the distributions for superior patching to IPS (IPS is still included for cases where it is needed). The new patches are also now licensed under the Creative Commons (CC BY-NC-ND 4.0) Deed in an effort to standardize and legitimize the distribution as much as possible for this type of work.
It was brought to my attention some time ago that there were some issues on some flashcarts with the splash screen intros. This caused all kinda of havoc to figure out. Earlier versions of BSNES indicated no problems, and I had previously tested my translations on real hardware via a copier I had. So, it wasn’t until more recently that I was able to decipher the issues. First, there was a crazy issue with my sound driver. The way I was handling the FLG register, echo registers, and ordering/timing of the two caused varying problems on some hardware from distorted to no sound (even locking the game from starting). After running what seemed like billions of tests, I better understood the timing requirements of the DSP’s FLG, echo registers, and their associated functionality. I Just needed to reorder a few register writes, and add some proper delays and it was golden. Secondly, I have always tried to use a minimal initialization of the main system, but it has always gotten me into trouble. What is the minimal initialization? Well, without a real cart with immediate, direct virgin access to the hardware, it’s hard to say. All other devices (such as copiers and flash carts) influence the initialization process by running their BIOS or boot code first. I thought I had figured out the minimal answer for what I was doing, without owning a means for such access. However, it turned out I was still wrong. So, I abandoned the minimal idea and did it the right way, as I should have done years ago. Live and learn, right? Now, the splash intros are pristinly done and have been tested on a virgin cart just to be doubly sure. As an added bonus, I made the intros skippable! Now it can be properly preserved SNES software throughout the ages.
Dual Orb 2 saw an update that finally translated the monster weaknesses for the scan spell. That was something that was missed years ago. I never got to that in the last release either because it was too difficult of a fix to do years after the fact. This time I had a small breakthrough deciphering some of my ancient work that allowed me to more easily do it. I also fixed a small ‘blipping’ issue present while the 8×16 was printing. That one had annoyed me for years. It was a crazy minor tile mapping issue that I’m sure nobody ever noticed but me. I also addressed a few minor reported inconsistencies that I’ve collected since the last release. Every so often detail oriented players come along whom pay very close attention and find some new things no one else before them did. That’s a great feat all these years later after many, many people have looked at it! Congrats! The least I can do is address such issues as a reward. :)
Wozz had previously never gotten a follow-up patch. So, now it has received a new patch update that fixes all of the reported issues to date. Nothing major here, just the usual assortment of minor mistranslations, consistency fixes, etc. There was a pesky missed battle string from Vangas that has alluded me for years that I finally got. I had just a single screenshot of evidence someone sent long ago. I was never able to see this string myself nor find it via searches. At long last, I found it! It had some extra data bytes mixed in the string which hid it from all my previous searches. I never searched for the right combination. Could this be the string that would give new meaning to Vangas, Wozz, or even my life? The excitement from my conquest quickly turned to disappointment. The translation of the missed string was simply that of a generic battle cry… Boo.. Hiss… Oh well, at least the project is now at a status of no known issues. Since it seems I continue to work on my projects years and years after the fact, perhaps one day I’ll revoke the promise to myself of never touching the 8×8 again and do something nice for it. Never say never! Ha!
Emerald Dragon just got the splash intro hardware fix. There was nothing else that needed addressing. :)
Most of the past few months for Heracles has been spent continuing on with converting the remaining 100 submenus to 8×8 VWF. I have roughly completed all of them now. I say roughly because a handful of them cannot be finalized due to some serious problems. Basically, the conversion has been impossible on a few of these menus. I have been trying to make the impossible possible by utilizing every trick in the book, but I still need to go back to the drawing board on some of them. The biggest issue in this game is the original NMI routine exceeds all available vblank time in many instances. Actually, I believe the original game only works properly by the skin of its teeth because most of the registers written to (illegally) after vblank is over aren’t immediately visible and/or fixed in subsequent frames (with legal writes). What does this all mean? Well, it means there is absolutely NO time at all for me to load ANY tiles whatsoever, let alone the tiles I need for 8×8 VWF.
In some cases, I could wait for less busy frames. In other cases, I made some hacks to trim the original NMI routine with optimizations and throwing out things that wouldn’t have visible consequences. Even with that, there are parts in battle that run 20 scan lines over allowed vblank time EVERY frame. I have not been able to skin off enough time to get near that. Even for the frames where I have some time, I can’t get enough time to transfer any large amounts, which typically rules out pre-rendering much. These menus have no loading screen between them either, so I can’t load it during black screen or forced blank without visible consequence. These are some difficult situations to work out.
If that wasn’t bad enough, the second major problem is lack of available VRAM for tiles. I’ve even tried the painstaking hacks of rearranging where in VRAM tilemaps and tile data go. However, thanks to the heavy usage of HDMA, the game typically uses TWO tile maps and TWO tile address spaces for EACH background as it changes them mid-frame. There’s just not enough VRAM available when you have to do it like that. Even with some serious new management, the game rarely reloads tile data. It loads a bunch of tiles very early and expects it to be untouched even when not used. So, even if you have gobs of free unused tiles on the current screen, if you use them, when a later screen which needs those tiles comes, they aren’t loaded. What am I supposed to do? I can’t sit there and figure out every tile data load in the game and load it myself when it is needed. That’s just maddening!
Other than these handful of menus from hell which have no solution yet, the game would be once again ready for alpha level testing, which I usually do myself before doing a second round of beta level testing with others. So, if I can get these remaining menus working somehow, we will be ready to move into the testing phase at long last! So, let’s keep hoping I can come up with some kind of solution to these problems…
Big Fat Greek Translation
This has been an exceptional past few months for TransCorp! I’ve accomplished more than I have in a long time. Even though I neglected to make frequent news posts, work has been steadily ongoing the entire time since the last update! The majority of time has been spent on taking Heracles IV to new heights, however I have also spent quite a bit of time cleaning up loose ends that have been hanging around for a few years.
As you can see from the screenshots, things have been progressing very well on Heracles IV. Let’s refresh: All of the dialog work is done and is ready for the testing/revision phase. We were about to go alpha, however I choose to do a monumental 8×8 VWF hack that broke every single menu in the game. So, I’ve been going through and hacking each and every one of them back to working glory! I’ve gone through about 100 so far. It just so happens this is one of the most menu heavy games I’ve ever seen on the SNES. There are still about 100 more to go!
They really are coming out beautifully though. It’s starting to look like a GBA/PSX level game now. Heracles IV is turning out to be my highest quality hacking work yet. As always though, the higher the quality, the larger the time investment. There is definitely been a huge price to pay time wise, and I was having second thoughts at one time. However, now that I have come so far along and it’s looking so great, I can’t imagine it any other way. I’ve gotten most of the main and battle menus all done, so the core game is becoming fully playable again. The remaining menus encompass the monster guide, shops, letters, diaries, and maps.
There have been constant hurdles along the way with VRAM management. This game uses multiple background layers for the menus, sometimes all simultaneously full of text. Text must remain there even if not visible on screen! This is due to the fancy HDMA effects which scroll in and out leaving other menus partially viewable, temporarily hidden, etc. Since the original was tile based, the game often shared tiles amongst layers too. This makes it even more of a hacking nightmare as there are instances where there is VRAM available, but it is inaccessible. It can’t be made accessible without a painstaking hack and relocation of all of the game’s existing loads and maps that used the old area. Ugh! These are the reasons I choose not to do this on my previous translations. It’s very tedious and time consuming. It’s probably not worth it if it can be otherwise done in an acceptable fashion (It can’t for Heracles IV).
It also deserves mention that FlashPV has been working on a nice looking title screen for Heracles IV, which you can see over at ROMhacking.net. We can now rest assured that the translation will have a nice English title screen to compliment the level of the rest of the project. FlasPV is amongst the best in the business when it comes to translated title screens, so I am happy!
I am setting a goal to try and be ready for beta testing by year’s end with Heracles IV. If there are no major life setbacks, I think I can do it. The end may be in sight after all!
Wozz, Emerald Dragon, Dual Orb 2
There will soon be updated releases for all of our existing translations. They were long overdue for a maintenance release to fix some minor lingering reported issues and address compatibility with some flash carts and SNES9x. I got a flashcart of my own which has been a big help. Also, BSNES/higan was fixed to match rather than give different results like it used to. So, I was able to work out some of the mysterious issues that were occurring with the sound driver, black screen, etc. As an added bonus, the intros can now be skipped. It was a bit annoying to not be able to do so previously.
WIP patches are available on the forum for regression testing before an official release is made.
I hadn’t updated on TextAngel in a long time, but that doesn’t mean it hasn’t been being developed. You can read about some of the more recent happenings over at the forum. I am trying to take care of the oldest backlogged TransCorp projects first, so a public release will come along after some other things are completed. In the meantime, it will continue to to be developed.
It seems to be the norm these days that every time I build up substantial momentum, life throws bricks at my head to try and stop me! Not all bricks are bad though. One of them landed me a new job this past summer, in July. It was a good brick for my career, family, and wallet. However, it was a bad brick for ROM hacking! I was kept busy for half a year with increased responsibilities and establishing my worth at my new position. The next brick hit me right in the face and really hurt. In December, a family member went terminally ill and recently passed away. As much time as possible was spent getting the family through it all these past few months. Plenty of other little bricks such as relentless snow, and other unexpected tasks came up along the way, but that’s just life unless you’re in the upper 1%!
Despite all of life’s bricks, I am determined to persevere as I always do! There have still been some interesting progress happenings of interest over the past several months. I’m not even sure if that’s grammatically correct, but I like the sound of it anyway!
Basically, this project was in the alpha stage and close to beta. However, it was deemed necessary go back a few steps and break everything in efforts of getting an 8×8 VWF (proportional font) in for as many menus and screens as possible. The quality of the translation would have really suffered without it. Normally I like to show nearly finished screenshots, but being that this is a large undertaking and things will be broken for awhile, I’ve shown some down and dirty work in progress screens.
As can be seen, much progress has been made. There is still much more to go. The 8×8 VWF conversion is very difficult in this game as the menus can sometimes span all three background layers at once. They utilize numerous HDMA tables, and are extremely cramped for VRAM space thanks to the game utilizing the same regions of VRAM for multiple backgrounds. The only way to make it all work is to go through each and every sub menu and manually address where it is going, and optimized it with the parent menus to fit nicely. The game is set up in such a way that there is simply no easy way to do it.
Work will continue onwards in getting the menus all back up and running with shiny new proportional rendering. There will probably then be a second pass for performance reasons where some things may need to be converted to static rendering. I am trying to set up all screens to use a universal 8×8 rendering engine, which leads me to the next area of progress…
I have been attempting to leverage and salvage my nuVWF project for Heracles IV. I had previously shoved it in the closet for a long while. I have taken this opportunity to redesign the project and make something worthwhile out of it besides a set of reusable routines. You can see an update and some details from the title link above (or simply go to the forums). I don’t know if this project will ever amount to anything worth releasing, but I haven’t given up just yet!
Plato Finally Speaks in English
As promised, this update comes equipped with some fresh new screenshots of progress! Plato’s philosophies are finally in English! Wait, on second thought it would appear he is confused and suffering from an identity crisis! Well, rest assured that whatever he has to say will now be entirely in English!
Glory of Heracles IV
After Kay completed the first draft translation in the last update, much time was spent importing the whole thing into TextAngel, and getting the whole script inserted into the game. The full script is indeed inserted and working well! I even got the gobs of misc. blocks inserted that I found post-dump some time ago, as well as most menu text.
So, now we pretty much have the entire game in rough English. It’s now time for the long road of fixing issues and polishing. Although the main dialog is fine, we have a multitude of issues to work out with letters, songs, diaries, menus, saving, shops, battle, missed control codes, and many other special dialogs. I am trying to get the rest of the game in a state where the translator can at least play through (numerous glitches, but no major crashes) with proper in-game context for a second round script revision. That way he can work in parallel while I continue through with many of the aforementioned issues.
You’ll notice there are no menu screenshots. We still have much work to do on the menus. Much expansion and polishing work is needed there. They are barely functional as-is. At least they are in glitchy English though, which is progress nonetheless!
So, Heracles IV is definitely getting there. It’s still a good ways off from ready for beta testing, but we are coming around that mountain. We’ll see if life is kind to me and I can keep the momentum going. Life can be the difference of just a few more months to go, to ‘make sure you remind your grand-kids to keep checking for Heracles updates’! Only time will tell. In the meantime, join in on that Purple Parade, marching to the beat of that ‘other’ drum we all hear, but generally ignore! ;)
Heracles IV was a good first test exercise for TextAngel’s insertion abilities. Some development work and improvements were done on TextAngel along the way with getting the Heracles IV script inserted. It’s finally shaping up into something I am happy with. I won’t have to sit in my fickle, circular redesign hell any longer. The dumping and insertion core is working, and the project interface and supportive building blocks are coming along well enough to work nicely for this project.
There is still much to do here, but I will finally not be going backwards too much in order to go forward. I am still looking to finish implementing the latest draft of the Table File Standard for it. Full implementation is a big task for me, and Heracles IV worked fine with the partial draft implemented. It was more fun to concentrate on other areas of the program with more fruitful results.
It’s also given me a better vision of what I want to see the program do now that I am actually using it on a full scale project. I expect continued slow and steady development along side my project needs. It’s more enjoyable to develop the tool alongside a real world project, rather than remain in the test case world for so long. However, that means only features needed for the project get the real work while other areas don’t see much advancement. Part time development so-to-speak.
Nonetheless, although it is a large undertaking, I am no stranger to such projects and carry forward. I’m sure it will see an end basked in irony. By the time I finish this utility, there will probably be no more games left that need it! It’s probably about 10 years too late. It could have been revolutionary last decade! Hah! It’s an enjoyable personal endeavor nonetheless and I will at least get use from it! There’s still a number of projects that I may pull out of the hat from all these new tools I’ve been developing. We’ll see if anybody else does them before I get to them!