"Dongwu Senlin", alternately "Animal Crossing" or "Animal Forest (Doubutsu no Mori)" in other regions, uses emulated FLASHRAM on iQue and accesses its internal RTC. Functions to check if controller devices are present and send values were stubbed. After patching the iQue title, hardware FLASHRAM, RTC, and controller slot devices will function on retail N64s.
The patched ROM expects a 1Mb FLASHRAM on its board and (optionally) a RTCK-NUS real-time clock; CIC is 6102. Controller Paks are supported. It should now be able to run correctly on 4MB.
In addition, several other liberties were taken. The clock's upper threshold was lifted from 2030 to 2099. The Controller Pak manager, both in-game and at boot, have been translated. The in-game debugger, if activated, will be write-enabled. Animalese support has been expanded; phonetic punctuation should be a thing of the past.
Apply the xdelta patch using the similarly named xdelta; use version 3.0.8 or up. The patch will only apply to a *decrypted* ROM in native (big-endian) byteorder.
----
This unQue patch series is directed at restoring save support and reversing library changes in iQue titles so they function reliably on retail consoles and a wider range of emulators--at the expense of breaking iQue support.
.: Introduction :.
This unQue patch series is directed at restoring save support and reversing library changes in iQue titles so they function reliably on retail consoles and a wider range of emulators--at the expense of breaking iQue support.
For the sake of emulators/flashcarts that look at GUID codes to differentiate these patches from retail titles, a GUID and timestamp were added. The device type is set to "B" for "BB Player" (not "Q"), and region to "C" for China or "W" for Taiwan/Hong Kong. Internal names are encoded using codepage 936 (normally CP 932). This information is not used by console. Bootstraps (IPL3) are swapped to match their retail counterparts; iQue does not, in fact, run this code, and many use the "development" IPL tied to a CIC.
"Dongwu Senlin", alternately "Animal Crossing" or "Animal Forest (Doubutsu no Mori)" in other regions, uses emulated FLASHRAM on iQue and accesses its internal RTC. Data is loaded into the top of RDRAM and flushed back later. In addition, the upper 4MB of memory are dedicated as a buffer for direct hardware access, framebuffer copies, and copies of save data. Functions to check if controller devices are present and send values are stubbed. The BB Hack flags allowed mirroring the main controller to a port of your choice.
The patched ROM expects a 1Mb FLASHRAM on its board and (optionally) a RTCK-NUS real-time clock; CIC is 6102. Controller Paks are supported. It should be able to run correctly on 4MB.
In addition, several other liberties were taken. The clock's upper threshold was lifted from 2030 to 2099. The Controller Pak manager, both in-game and at boot, have been translated. The in-game debugger, if activated, will be write-enabled. Animalese support has been expanded; phonetic punctuation should be a thing of the past.
.: Patching :.
Apply the xdelta patch using the similarly named xdelta; use version 3.0.8 or up. The patch will only apply to a *decrypted* ROM in native (big-endian) byteorder.
(The process for extracting your console's tickets and decrypting an extracted ROM are well outside the scope of this readme.)
Common Names
2104108
00201B2C.z64
Dongwu Senlin.z64
Original File Checksums (Decrypted)
SHA-1
B0F25508CCC99551190B86F88DA6772942308F85
SHA-512
577C5E4CC28B0E0712329C7268801BF79C3B147B2310057AE971B3045CF4AB7B3E46FC5BA5BF694269F87FBF77C63524E320F7FBD36A05AD1E2575DA8693F7C8
Patched File Checksums
SHA-1
73A2CA03BD48C8B5780E5433903890162E7EC10B
SHA-512
4F2D1EAF1B0BA438FE5853611196D4C0F2EA4ADCDFA97D20C77EC178EF3567685DEAFF4BD37E1DDCCE20421FD091E30A5BE78958584D4B2ED9F260A48CC62A58
.: Notes :.
*) Saves from Japanese version games are (largely) incompatible due to changes in iQue's text print functions. However, data can be imported from an iQue. Japanese Controller Pak data will thankfully NOT be detected by this version, expecting a slightly different filename.
*) Not all changes to the standard library are reversed, only those which directly affect operation or expose iQue-specific registers to emulators (console won't be affected, but emus may throw errors). This includes rewriting system initialization, controller pak detection, preNMI, and most dedicated save-related functions to some degree. Other code is already isolated when iQue hardware is not detected. In this case, however, a large amount of direct hardware access embedded within menus (NAND & clock access) was reversed and rewritten--in duplicate, in triplicate, sometimes quadruplicate. Menu SK calls, such as reset to iQue's main menu on fatal read errors, are also removed or suppressed.
*) (Virtual) Controller Paks were assumed to be the only available device on iQue; many menus were rewritten to behave more like J, redirecting appropriately when a different device is present--not crashing or looping infinitely. The most common cases have been checked (different device, common faults, swap, full, scrubbed, dirty connections) but it is advised you not stress-test it too much (switching devices mid-read, etc.) and remove weird stuff (fishing controller, heartbeat monitor, anything involving printers) before play. Typically, if a pak cannot be read properly (any user of transfer Paks should be familiar with this) it will presume a damaged Controller Pak is present instead and will act accordingly. Please submit bugs found along with notes on their behavior and habitat.
*) Like "Yueye Motuo / Excitebike 64", Transfer Paks are tested for but unused, a side-effect of the way the Controller Pak library sorts out communication errors. Detection, but not support, for Rumble Paks and Transfer Paks have been added to ensure the repair feature functions. The function to read EEPROM is still present, part of an old protection scheme targetting backup units.
*) There were multiple vendors and units for FLASH chips, some with different page sizes. Emulators typically report a MX_B/D. It was tested and confirmed working on the MX_C chip in my Doubutsu no Mori cart. On that note, a function existed to (falsely) report the FLASH ID. It sets the maker to Macronix proto A, type to 0x11118001 (1Mb).
*) As the only cartridge with an RTC on it, clock access has been confirmed via Dr.V64jr passthrough. Note the RTC is not required to run the game--you will be asked for the time each session--but certain flashcarts may grumble when handed the unfamiliar protocol due to their own SI device emulation.
*) Ironicly, most of the RTC library is present and linked in iQue, simply not used. It's an effect of including the unused read/write RTC RAM functions, never updated to utilize new hardware.
*) If you want to enable debugger level 2 the "natural" way in any version of the game, set the version code at 0x3F to 0x23 (The GUID will read "BAFC#" in this case). This does not require checksum correction. Enter the crash debugger code on controller 2 to enable and disable the debugger. The most notable changes are cheating an FDS and full RW register access. The debugger can be used to repress Resetti ;*)
*) Elements of the standalone debugger (including player select) and save type select remain in mojibake. Like several other "unused" messages, it remains in Japanese but is printed using the new character set, resulting in jibberish.
*) The "No Controller" warning, originally mojibake, has been translated to match Smash Bros.
*) There are over 30 known mentions of the iQue card, memory area, and bindings that have not been re-localized to N64 hardware nomeclature. I'm not about to rewrite them without a grasp of the langauge and transcription of the ~7000 glyphs in the font. For the most part, dialog redirects to relevant messages during travel, etc. and prompts/errors written in red to the framebuffer should be repressed. If this isn't the case, apologies. Please report the issue and brace yourself for a flurry of emails.
*) Animalese code wasn't updated for iQue; they might not have noticed the feature (mostly) simulates standard Japanese while parsing text. As a result, the original Japanese sound mapping table was used. It recognizes 00 as a printable char instead of NULL, sets aside different values for control codes, maps special-handled characters (notes, punctuation, etc.), but worst of all presumes all text are a single byte despite the buffer itself being large enough to map the entire +7000 font. In all, about 7% of all sounds either won't play at all or make peculiar noises (ticks, beeps, etc.). The current soundbank is insufficient for every base sound (ta, te sure, but tian? tang? etc.), but did split the difference. Table is rewritten to map valid sounds to printables and correctly assigns control codes. It's still mostly gibberish & atonal, but at least it's not beeping at you (unless you hit a pure-Japanese placeholder message). Ideally, sets of sounds should be combined into unique sfx to emulate voices better and the pitch variation function apply tonal modes, but considering even devs don't realize this was a feature it's not being considered.
*) Saving no longer fades out the music, nor will it make a copy of the framebuffer and write messages directly to it. This was necessary on iQue, primarily when the card could be removed. Music is in a constant state of loading samples from ROM; if the card is removed this would fail.
*) The Controller Pak manager is rehooked and can be accessed by holding Start on controller 1 while the game is booting. The menu was originally partially localized from Japanese to Chinese, and is now fully translated as it's readily accessible during gameplay at the Post Office and Train Station. It's also accessible on iQue...if you were to feed it a full Controller Pak. Its two missing / incomplete displayed errors now have assigned text and the repair feature should be functional.
.: Gameplay Notes :.
The internet is only as accurate as Wikipedia, itself only as accurate as the internet. Here are a few gameplay notes that are difficult to find accurate information on.
*) Traveling to another town requires one Note and 18 Pages. Its filename extension is "A" and is created automatically when you ask to leave at the Train Station. Saving mail requires one Note and 103 Pages. Its file uses the extension "B" and is created when you ask about mail storage at the Post Office.
*) You travel to another town with one Controller Pak only. There is no feature to "travel directly" with two. This refers to a different version of the game. The only feature that ever looks at Controller Pak 2 is the Famicom emulator.
*) When you travel, if you collect the town's map from the Police Station it will link this town to your own. When you return home this is saved your own to towndata. There are several repercussions:
1) When you travel to this town again you still retain its map and the characters recognise you.
2) You will start to get requests for fruit exclusive to the other town and deliveries for residents there.
3) Residents from your town will move there.
*) Remember that Famicom games are two player with two controllers, and that games can be imported via Controller Pak in either controller if you have an FDS.
*) The three songs only available by request are:
可可之歌
我爱你
昨天的昨天
*) If emulation proves problematic--this game has a history--the old solution is to run under interpretter, set the save type to FLASHram, and copy whatever database settings exist for the original title.
-Zoinkity
*Patch: "Dongwu Senlin (China).xdelta"
*Common Names
2104108
00201B2C.z64
Dongwu Senlin.z64
*Original File Checksums (Decrypted)
*SHA-1
B0F25508CCC99551190B86F88DA6772942308F85
*SHA-512
577C5E4CC28B0E0712329C7268801BF79C3B147B2310057AE971B3045CF4AB7B3E46FC5BA5BF694269F87FBF77C63524E320F7FBD36A05AD1E2575DA8693F7C8