Updat-o-rific
Updated the patch and data again. It is available at:
http://www.geocities.com/nefariousdogooder/AF/AFprojectDistro.zip
Here's the current state of the .ups:
- Text binaries moved to end of file and tables extended for these banks:
- +message_data
- +mail_data
- +maila_data
- +mailb_data
- +mailc_data
- +ps_data
- +psz_data
- +select_data
- +string_data
- +super_data
- +superz_data
- npc_name_str moved; now allows 8-character names in conversation
- All 2-4 option select menus should allow options over 10-characters long
- Map screen labels transliterated, place names extended in length
- Rows are now labelled A-F, columns 1-5. Seems they used French script MT, italic ;*) I left the letters straight.
- Time and date revisions:
- Midnight and noon are 12, not 0. Affects LR clock as well
- Minutes and seconds returned from 7F commands are two byte when preceeded by a colon, ie. 11:02. When not preceeded by a colon, minutes and seconds return their normal value, ie. 2
- Months and both kinds of days are now textual, ie. Tuesday, September 3rd
- Date on message board is in USA order (MM/DD/YYYY)
- Fixed cursor and END block positioning:
- Message Board
- Gyroid Message
- Writting Mail
- Fixed order of default superscript and postscript on mail messages. (As stupid as my text is)
- Switches to fixed-width mode when SP character used on name-entry pages.
- Added in support for new 7F commands; non-commands will probably be skipped over (big maybe here)
- 7F70 added: forces next recalled string to be CAPITALIZED
- 7F74 ported from AC: forces next recalled string to have a capitalized first letter, rest lowercase (Sentence Case)
- 7F75 ported from AC: forces next recalled string lower case
- 7F76 ported from AC: inserts either am or pm depending on time of day
There might be some other smaller fixes not listed either. Like before, the script loaded into the patch is the direct AC copy, mostly to prove the point that all this stuff can and (pending the horrible script errors) does function as such. It has been slightly editted to, for instance, split entries that were too large and would hang (message line>0x400). Hopefully the final script won't be a 1-1 copy of it. Please, pretty please, do an awesome translation of the original script.
This one is relatively stable. The mail saving system is known to be broken, but otherwise you can probably make it fairly far with this patch.
=_=
The provided resources have changed a bit. I'm no longer distributing the (most likely copyrighted) text binaries. Instead, a tool is provided to loot them from a rom image.
SYLKtoBIN and AFtoSYLK were corrected for several bugs. Also, the old command names were miserably mislabeled so many now are removed. The only mislabel that is retained is [name], which is used as a string variable. It is used to spout off an actor's name except in the case of the shrine (wishing well), where it is generically used as a variable. It comes up so often though it seemed okay to retain.
If you were using the old, Aug.2008 tools, convert your text to a binary, trash both tools, then replace with these. That should get around (most) problems.
Programs:
- GetResources.exe will pull a huge clump of text out of your rom, already in the proper .bin + .tbl format. It does all the major text banks, as well as the npc names and items. It works on both a hacked and out-of-the-cart rom image.
- InsertStuff.exe will take a list of the same binaries from above and insert them back into your rom. You can also tell it to only do certain ones.
- AFtoSYLK.exe now recognises a few more VERIFIED commands, and no longer fusses with others. Use it to convert the script to a SYLK table.
- SYLKtoBIN.exe recieved a major bug-fix. Now you can use binary commands with 23 as a value! Isn't that special?
- extendo.exe is used to extend an N64 rom and unbyteswap it. Basically, gets it ready to apply the ups
- AFvert.exe is actually older than the SYLK converters but was updated so you can view the original japanese text in an unstupid way. This is a +must+ for those of you working on the item list!
- TGAtoN64.exe is a crappy little program (second one I ever wrote) that converts +certain+ targa files into +certain+ N64 image types. Its only redeeming factor is that it can diminish these larger targa types people insist on using now into 4-bit ia. It's not supposed to be that useful; its just in there to port some of the crazier image types. Don't compress your targas if you want to use them with this! In fact, try to get around it at all.
- Now distributing three freely-available programs to aid in the whole re/compression side of things:
- Zextract.exe by _Demo_: accepts a rom and spits out a decompressed copy of every Yaz0 binary inside of it.
- Yaz0 Extractor.exe by Shevious: decompresses a single Yaz0 file to .bin
- Yaz0 Encoder.exe, again by Shevious: compresses a file to Yaz0 format, ready to insert.
- The obs-mac2.zip contains macetII, c\o Obsidian. It recalculates the checksum of any rom you throw at it. I have it associated with N64 roms, something like: "C:\N64\macetII.exe" "%1"
- The ups.zip folder contains a copy of the ups patcher, care of whoever I thieved it from.
Other Resources:
- Japanese Org Binaries and English New Binaries folders no longer exist. Extract the resources using GetResources.exe instead. (slightly more legal)
- Documentation folder: a lot of new stuff. I wasn't paying attention when copying it in, so I don't know how much is new. That's mostly just notes anyway. The four that might be the most use are:
- Index.txt: a partial rom index. It contains a list of what the known binaries are, and in some cases a breakdown of their data.
- ROM ASM Correspondance.txt: ties together addresses in binaries to where their data loads in rdram, when possible.
- Maximum Entry Sizes.txt: lists how large entries can be in certain text banks, the maximum number of entries in each bank, and the total size the text can be without further hacking. Technically the limits can be raised, but this lists the current values.
- 7F Codes.txt: probably not a lot of use, but a working notepad for determining what the commands are and do. The command dump is the ASM used by each, or at least handles to it.
- Resources folder: new binaries, some as .dat, others as .bin. Also contains a folder for images. Consult the Index.txt in the resources folder for more information on each.
So, what's left on the technical end of things? A lot of stuff.
Still left to do:
- Set cursor and END block positions on the rest of the message dialogs
- Add wrapping on messages based on width of line, not # chars. Incidentally, this would require redoing all the END blocks as well ;*)
- Remove 0x68 character limit on mail and message board messages. Then they might work again!
- Text balloons need variable width proportions
- Add an index for items and push string cap up
- Come up with some crazy scheme to allow large strings in all those other situations that need them that doesn't involve using an expansion pak
- Finalize font
- Find remaining textual images in compressed files
Oh, one more thing to mention when you write the scripts is that the most text that can appear in a single entry on message_txt is 1024 characters. The bank is sized to 0x400 and I wrote in something that makes it loop if you try to load in something larger.
If you ever get the problem of a blank screen of text with just an advance arrow, that's an entry that's too large. Usually they call entries with the 7F0E command, so match the numbers up and split the thing in half. That only works within the message_data bank though. This is mentioned in the 'maximum entry sizes.txt' file in the documentation.
Wow, that was fun, wasn't it? Have at it, and make an awesome script ;*)
-Zoinkity