If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Doubutsu no Mori

From The Cutting Room Floor
Jump to navigation Jump to search
This page contains changes which are not marked for translation.
Other languages:
English • ‎español • ‎日本語 • ‎한국어

Title Screen

Doubutsu no Mori

Also known as: Dòngwù Sēnlín (CN)
Developer: Nintendo EAD
Publishers: Nintendo (JP), iQue (CN)
Platforms: Nintendo 64, iQue Player
Released in JP: April 14, 2001
Released in CN: June 1, 2006

AreasIcon.png This game has unused areas.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.

DevelopmentIcon.png This game has a development article
PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page

Doubutsu no Mori (Animal Forest) is a late-era Japan-only Nintendo 64 game that was re-released for the GameCube in Japan, then updated and released in the US as Animal Crossing, and that version was re-re-released in Japan and (finally) released to the rest of the world, except for China, which got the original Nintendo 64 version years after its Japanese release.

Weird sentence, weirder story.

To do:
  • The crash debugger button combination also opens a debug mode when pressed on Controller 2. Document this.
  • Source code for iQue version leaked. Interesting variants and secrets in there.


Read about development information and materials for this game.
Development Info
Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Animalforest flyingtrain2.png
Unused Maps
Where no train has gone before...

Crash Debugger

Present in the game is a crash debugger similar to the crash debuggers seen in Ocarina of Time and Majora's Mask on the N64. Whenever the game crashes, it will display a small red line at the upper-left corner of the screen. Input the following code which is the same code from Ocarina of Time:

  1. L + R, then while holding both press Z.
  2. D-Up
  3. C-Down
  4. C-Up
  5. D-Down
  6. D-Left
  7. C-Left
  8. C-Right
  9. D-Right
  10. A + B, then while holding both press Start.
(Source: Fkualol)

Debug Tools

Memory Usage Display

GameShark code 801DFA64 0001 will display some colorful memory usage bars. What each bar represents is currently unknown.

DnM-memory usage display.png

Debug Mode

There exists a debug mode that will display some build info on the title screen and enable some additional debug displays that can be toggled on and off by pressing buttons on the second controller.
There are 2 modes for this debug mode. Mode 1 allows you to enable or disable other debug features, but you can not manipulate the game with it in any way. Mode 2 allows you to have full control over the debug menu.

GameShark code 8010FD63 000X can be used to access this mode.
Replace X with 1 (Mode 1) or 2 (Mode 2).


All of the combinations below must be done on a controller plugged into port 2. (Some features only work on MODE 2.)

  • Pressing A will bring up a heads-up-display that displays coordinates, time, item IDs and other information. If you press R, you can cycle through different clock speeds. The time can only go forward.
  • Pressing C-Right will display different colored numbers on-screen. What they represent is currently unknown.
  • Pressing C-Up will display "zelda_malloc" and "graph_malloc" followed by some Japanese text and numbers. What these are for is unknown.
  • Pressing D-Pad Down will make text appear that says 'ファミコン' which translates to 'Famicom'. Pressing Start will increase the number, this number represents which Famicom game to place. While inside of your house, pressing Z will force display a Famicom as a furniture item.
  • Pressing D-Pad Left will display yellow numbers and text. The periods will change characters based off what is going on in-game. What triggers these to change is unknown.
  • Pressing D-Pad Right will display orange numbers, their usage is unknown.
  • Pressing D-Pad Up will display a bunch of hex values, as you may have guessed by now, what these represent is unknown.
(Source: Nekokabu)

Famicom Data Manager

DnM64 Controller Pak NES Game Menu.png

If the game detects that Famicom ROM data is stored on the Controller Pak, accessing the "てがみをほぜんしたい" ("Save a Letter") option at the Post Office instead brings up a menu titled "コントローラパックのきろくをけします" ("Erase Controller Pack Records"), where these ROMs can be viewed and deleted. The ROM files that the game detects differ from standard save data associated with the Famicom furniture items in that these files are external ROMs that must be installed onto the Controller Pak; because Nintendo never incorporated any official methods of doing this, this data management menu is inaccessible under normal circumstances. This feature is removed in Doubutsu no Mori +, Animal Crossing, and Doubutsu no Mori e+, as even though a method of installing ROMs was still never officially implemented, they can be deleted from the memory card via the GameCube's main menu.

In the iQue version, the Chinese text associated with this menu is corrupted, resulting in the menu title appearing garbled and the original Japanese text appearing in all other areas in the menu.

Title Theme

To do:
Figure out a way to have the title theme fully playback that doesn't involve the risk of damaging your cart and console through cart tilting.

In the normal course of play, the game's title theme fades out after a minute and 3 seconds, corresponding with the length of time of the demos played on the title screen. However, the full track runs for an additional 21 seconds. If you don't mind risking the long-term health of your cartridge, it is possible to hear the full title screen by slowly tilting the left side of the cartridge out of the console until the game crashes. If done correctly, the game will continue to play the title screen music on an endless loop.

In-game Full

Unused Items

Unused Clothing

Two clothing items are present in the game's code but never appear either as obtainable items or as items worn by villagers within the normal course of play:

Name (Japanese) Name (Chinese) Name (English translation) Hexadecimal ID Image Texture
パーティードレス 舞会礼服 Party Dress 18 14 DnM64 PartyDress.png DnM64 PartyDressTexture.png
タキシード 晚礼服 Tuxedo 18 18 DnM64 Tuxedo.png DnM64 TuxedoTexture.png

Unused Furniture

Several items in the game's files are unused and unobtainable through gameplay. Below is a list of the item's names along with their internal hexadecimal IDs. These items appear in Doubutsu no Mori +, Animal Crossing, and Doubutsu no Mori e+ as well, but with the sole exception of the unused chair in +, their models are replaced with duplicates of the Spooky Wardrobe furniture item (in +) or the DUMMY furniture item (in Animal Crossing and e+).

Name ID Image Notes
zabuton 10 9C DnM64 Zabuton.png -
chest 10 B0 DnM64 Chest.png -
rack 10 B4 DnM64 Rack.png -
nice speaker 11 F8 DnM64 NiceSpeaker.png -
unused dresser 12 F0 DnM64 UnusedDresser.png -
unused monkey 13 14 DnM64 UnusedMonkey.png Animated; perpetually claps.
modern den chair 13 44 DnM64 ModernDenChair.png Interactive; can be sat on.
unused chair 14 CC DnM+ unused chair.png DnM+ unused chair 2.png Interactive; can be sat on.

Build Date

Present at 0x19D00 in the Japanese version and 0x21D50 in the Chinese version is a build date in the same format as Ocarina of Time and Majora's Mask. Curiously, it seems the Chinese version was compiled really early compared to the actual release date, even predating the Chinese version of Ocarina of Time by seven months.

Japanese Chinese
01-02-14 16:37:16
03-03-07 16:48:26

Unused Overworld Textures

Most of these textures can be found in the final build of the game. It even survived through the localization process. These textures do not appear in any pre-release screenshots. The textures are also not compatible with the models of the retail build of the game, and they need to be converted in order to be viewed properly. Some of these textures can be seen if you place test acres in your town, but it should also be noted that the models for said early acres are bigger, and overlap surrounding areas in the game.


Early Final
DnM-Early-Dirt-Texture.png DnM-Final-Dirt-Texture.png
Early Final
DnM-Early-DirtSnow-Texture.png DnM Dirt Snow.png


Early Final
DnM-Early-Cliff-Texture.png DnM-Final-Cliff-Texture.png


Early Final
DnM-Early-Grass-Texture.png DnM-Final-Grass-Texture.png
Early Final
DnM-Early-Snow-Texture.png DnM Retail Snow.png

Sign Board

The early Sign texture resembles its Spaceworld 2000 counterpart, however there are still a few minor differences.

Early Final
DnM-Early-Sign-Texture.png DnM Retail Sign.png

Debugging Text

8003D180 boot
8003D188 idle
8003D190 ../idle.c
8003D19C main
8003D1B0 %ld
8003D1B4 ovlmgr: Out of Memory
8003D1D8 DMA ERROR: %.50s %d
8003D1EC DMA ERROR: %.50s %d
8003D200 DMA ERROR: %.50s
8003D218 %07X %08X %X %.50s
8003D230 percial_DMA
8003D250 アライメント異常
8003D26C Segment Alignment Error
8003D284 セグメント境界をまたがってDMA転送することはできません
8003D2C4 Can't Transfer Segment
8003D2DC 圧縮されたセグメントの途中からはDMA転送することはできません
8003D320 Can't Transfer Segment
8003D338 圧縮されたセグメントの一部だけをDMA転送することはできません
8003D38C 該当するデータが存在しません
8003D3C8 パラメータ異常です
8003D3DC dmamgr
8003D3F0 圧縮展開異常
8003D400 slidma slidstart_szs ret=%d
8003D41C src:%08lx dst:%08lx siz:%08lx
8003D440 Interrupt
8003D44C TLB modification
8003D460 TLB exception on load
8003D478 TLB exception on store
8003D490 Address error on load
8003D4A8 Address error on store
8003D4C0 Bus error on inst.
8003D4D4 Bus error on data
8003D4E8 System call exception
8003D500 Breakpoint exception
8003D518 Reserved instruction
8003D530 Coprocessor unusable
8003D548 Arithmetic overflow
8003D55C Trap exception
8003D56C Virtual coherency on inst.
8003D588 Floating point exception
8003D5A4 Watchpoint exception
8003D5BC Virtual coherency on data
8003D5D8 Unimplemented operation
8003D5F0 Invalid operation
8003D604 Division by zero
8003D618 Overflow
8003D624 Underflow
8003D630 Inexact operation
8003D64C fault_AddClient: %08x は既にリスト中にある
8003D684 fault_RemoveClient: %08x リスト不整合です
8003D6BC fault_AddressConverterAddClient: %08x は既にリスト中にある
8003D704 fault_AddressConverterRemoveClient: %08x は既にリスト中にある
8003D748 F%02d:%14.7e
8003D758 F%02d:  %08x(16) 
8003D76C F%02d:%14.7e 
8003D77C F%02d:  %08x(16) 
8003D790 FPCSR:%08xH
8003D7A0 (%s)
8003D7AC FPCSR:%08xH 
8003D7BC (%s)
8003D7C4 THREAD:%d (%d:%s)
8003D7D8 PC:%08xH SR:%08xH VA:%08xH
8003D7F4 AT:%08xH V0:%08xH V1:%08xH
8003D810 A0:%08xH A1:%08xH A2:%08xH
8003D82C A3:%08xH T0:%08xH T1:%08xH
8003D848 T2:%08xH T3:%08xH T4:%08xH
8003D864 T5:%08xH T6:%08xH T7:%08xH
8003D880 S0:%08xH S1:%08xH S2:%08xH
8003D89C S3:%08xH S4:%08xH S5:%08xH
8003D8B8 S6:%08xH S7:%08xH T8:%08xH
8003D8D4 T9:%08xH GP:%08xH SP:%08xH
8003D8F0 S8:%08xH RA:%08xH LO:%08xH
8003D938 THREAD ID:%d (%d:%s)
8003D950 PC:%08xH   SR:%08xH   VA:%08xH
8003D970 AT:%08xH   V0:%08xH   V1:%08xH
8003D990 A0:%08xH   A1:%08xH   A2:%08xH
8003D9B0 A3:%08xH   T0:%08xH   T1:%08xH
8003D9D0 T2:%08xH   T3:%08xH   T4:%08xH
8003D9F0 T5:%08xH   T6:%08xH   T7:%08xH
8003DA10 S0:%08xH   S1:%08xH   S2:%08xH
8003DA30 S3:%08xH   S4:%08xH   S5:%08xH
8003DA50 S6:%08xH   S7:%08xH   T8:%08xH
8003DA70 T9:%08xH   GP:%08xH   SP:%08xH
8003DA90 S8:%08xH   RA:%08xH   LO:%08xH
8003DAD8 KeyWaitB (LRZ 上下 上下 左左 右右 BASTART)
8003DB84 %s %08x
8003DB8C PrintDump
8003DB98 %06x
8003DBA0 %08x
8003DBA8 Dump
8003DBB0 SP       PC       (VPC)
8003DBC8 %08x %08x
8003DBD4  -> %08x
SP       PC       (VPC)
8003DC08 %08x %08x
8003DC14  -> %08x
8003DC24 CallBack (%d) %08x %08x %08x
8003DC48 フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました
8003DC80 フォルトマネージャ:OS_EVENT_FAULTを受信しました
8003DCB4 フォルトマネージャ:不明なメッセージを受信しました
8003DCE8 __osGetCurrFaultedThread()=%08x
8003DD0C FindFaultedThread()=%08x
8003DD50 All Pages are displayed.
8003DD6C        THANK YOU!       
8003DD88  You are great debugger!
8003DDA4 fault
8003DDAC HungUp on Thread %d
8003DDC4 %s
8003DDC8 (NULL)
8003DDD0 %s
8003DDD4 (NULL)
8003DDDC HungUp on Thread %d
8003DDF4 %s
8003DDF8 (NULL)
8003DE00 %s
8003DE04 (NULL)
8003DE0C HungUp %s:%d
8003E280 (null)
8003E2B0 Reset
8003E310 __osRealloc(%08x, %d)
8003E46C ARENA INFO (0x%08x, %d)
8003E484 Arena is unitialized
8003E49C Memory Block Region status size
8003E4C0 %08x-%08x%c %s %08x
8003E4E0 %08x Block Invalid
8003E4F4 Total Alloc Block Size %08x
8003E514 Total Free Block Size %08x
8003E534 Largest Free Block Size %08x
8003E57C (%08x)
8003E594 (%08x %08x)
8003E900 forest@srd038J.srd.nintendo.co.jp
8003E924 01-02-14 16:37:16
80113310 GLOBAL USE %x
80113320 GLOBAL FREE %x
80113330 GLOBAL RELEASE %x
80113344 GLOBAL RELWAIT %x
80113358 List %x
80113364 Root %x
80116160 %4d %1d%1d %1d%1d %1d%1d %1d%1d
80116184 %1d%1d %4d %1d%1d %1d%1d %1d%1d
801161C8 ACTOR NAME %08x %s
801161DC Actor_draw
80116200 actor_dlftbls %u
80116214 No. RamStart- RamEnd cn Name
80116234 %3d %08x-%08x %3d %s
801163E0 ../m_choice_main.c
801163F4 ../m_choice_main.c
8011640C ../m_choice_main.c
8011641F ../m_choice_main.c
80116450 ../m_collision_bg.c
80116470 ../m_collision_bg.c
801164B4 ../m_collision_bg_rewrite.c_inc
80116830 %s
80116834 %s
80116838 REG
8011683C SREG
80116844 OREG
8011684C PREG
80116854 QREG
8011685C MREG
80116864 SBREG
8011686C DREG
80116874 UREG
8011687C IREG
80116884 ZREG
8011688C CRV
80116890 NS1
80116894 SND
80116898 XREG
801168A0 CRV2
801168A8 DEMOREG
801168B0 TREG
801168B8 WREG
801168C0 AREG
801168C8 VREG
801168D0 HREG
801168D8 GREG
801168E0 mREG
801168E8 nREG
801168F0 BREG
801168F8 DORO
80116900 kREG
80116908 BAK
8011690C PLAY
80116910 ERREG
80116918 OTUREG
80116920 NIIREG
80116928 GENREG
80116830 MYKREG
80116838 CAMREG
80116840 SAKREG
80116848 TAKREG
80116950 PL2REG
80116958 %c(%s)
80116960 %02d%6d
80116964 %s%02d%6d
80116974 zelda_malloc
801169B0 graph_alloc
80116AAC %3d
80116AB4 %3d %02d-%02d-%02d
80116AC4 %c%c%c%c%c%c%c%c
80116D40 %04d %04d %04d
80116D50  %02d %02d %02d %02d
80116D70 ../m_field_make.c
80116D88 ../m_field_make.c
80116D9C ../m_field_make.c
80116DAC ../m_field_make.c
80116DC0 ../m_field_make.c
80116DD4 ../m_field_make.c
80116DE8 ../m_field_make.c
80116DFC ../m_field_make.c
80116E10 ../m_field_make.c
80116E24 ../m_field_make.c
80116E40 ../m_field_info.c
80116E54 %d
80116E58 %d,%d - %4x - %d - %d
80116F30 ../m_font_basic.c
80116F44 ../m_font_basic.c
80116F58 ../m_font_mark.c
80116F6C ../m_font_mark.c
80116FC0 ../m_handbill.c
80116FD0 ../m_handbill.c
80116FE0 ../m_handbill.c
80116FF0 ../m_handbill.c
80117000 ../m_handbill.c
80117010 ../m_handbill.c
80117020 ../m_handbill.c
80117030 ../m_handbill.c
80117040 ../m_handbill.c
80117050 ../m_handbill.c
80117060 ../m_handbill.c
80117070 ../m_handbill.c
80117080 ../m_handbill.c
80117090 ../m_handbill.c
801170B0 ../m_item_name.c
80117250 ../m_msg_main.c
80117260 ../m_msg_main.c
80117270 ../m_msg_main.c
80117280 ../m_msg_main.c
80117290 %5d
80117294 C9ff:
%4x %3d %3d
%4x %3d ---
%4x --- %3d
%4x --- ---
%4x %3d 
**** *** 
RandomTry %d
RandomStep %s
ファミコン %d
%d %d %s
%d %d %s->%d.%d.%d
RamStart-RamEnd  Offset
%08x-%08x %06x
player infomation
main_index         :%d %d
request_main_index :%d %d %d
pos :%d %d %d
angleY :%d %d
ShowFrameBuffer PAGE 0/1/2
Oh! MY GOD!!
CLASS SIZE= %d bytes
GRAPH INF.LOOP %2d %3d %3d %6lu
AUDIO INF.LOOP %2d %3d     %6lu
__scHandleRSP:this->curRSPTask == NULL
__scHandleRDP:this->curRDPTask == NULL
801F6100 == MML PASS CHECK ==
803BA610 ../m_trademark.c