ROM Hack Animal Crossing: New Leaf ROM Hacking

Roxerism

Well-Known Member
Member
Joined
May 10, 2015
Messages
101
Trophies
0
Age
25
XP
200
Country
Thats where I'm having the trouble. AC:NL doesn't seem to accept anything that wasn't made with the official SDK. Making something in blender and importing it doesn't seem to work for me at least. All my tests have ended with the game freezing on the frame that the object is called into play. Most of my edits were to player models and clothing. (Hats, specifically) but it might work for other things? Idk. If you know more about modeling and bcres file structure than me (which lets face it, doesn't take much. I know close to nothing, this project was the first time I ever used blender) you might be able to get it to work.

If you have the official SDK, it should work. I think the SDK requires a dev kit environment and Maya, or some other "professional" 3D program to use. (Read, expensive and not user friendly)

I have found the 3ds SDK online once (hence how I managed to mess with gardensound.bcsar) but I got near no skills with blender so hopefully someone comes along to help us :/
 
  • Like
Reactions: deishido

mental_lentil

Well-Known Member
Newcomer
Joined
Dec 24, 2015
Messages
69
Trophies
0
Age
37
XP
100
Country
United States
Is there any way to preview the human player's face in Ohana Rebirth? I want to make a custom face for my player but I can't find a way to test out my textures to see how they look.
 

ultramario1998

no woof tipsic
Member
Joined
May 7, 2014
Messages
456
Trophies
0
Age
25
Location
Not Here
XP
695
Country
United States
(Man, this thread has gone dark. Can we fix that?)

So, quick question--has anyone been able to figure out KK's live songs' format yet? Is there any documentation? I just had a really dumb idea that involves editing his music, but last I checked we weren't able to mess with them at all. Anyone have solutions?
 

Aeth-r

Well-Known Member
Member
Joined
Jan 6, 2016
Messages
153
Trophies
0
Age
30
XP
108
Country
United States
Thats where I'm having the trouble. AC:NL doesn't seem to accept anything that wasn't made with the official SDK. Making something in blender and importing it doesn't seem to work for me at least. All my tests have ended with the game freezing on the frame that the object is called into play. Most of my edits were to player models and clothing. (Hats, specifically) but it might work for other things? Idk. If you know more about modeling and bcres file structure than me (which lets face it, doesn't take much. I know close to nothing, this project was the first time I ever used blender) you might be able to get it to work.

If you have the official SDK, it should work. I think the SDK requires a dev kit environment and Maya, or some other "professional" 3D program to use. (Read, expensive and not user friendly)

I have Maya. I don't really know where to find the SDK, but custom models would breathe new life into this game. It's kind of the final hurdle, right?
 

mochiprincess

Member
Newcomer
Joined
Jul 31, 2016
Messages
15
Trophies
0
Location
(◡‿◡✿)
XP
75
Country
United States
Hi! Wow, this thread is spectacular! Everyone here seems so tech savvy tbh.

Anyways, has anyone found a way to change the birthdate on the TPC card (or just in the whole game, preferably) through hex editing? I've been searching through various values and haven't really found anything.. :unsure:
 
D

Deleted User

Guest
Hi! Wow, this thread is spectacular! Everyone here seems so tech savvy tbh.

Anyways, has anyone found a way to change the birthdate on the TPC card (or just in the whole game, preferably) through hex editing? I've been searching through various values and haven't really found anything.. :unsure:
Not sure :,(
 

deishido

Texture Modder
Member
Joined
Jul 8, 2009
Messages
244
Trophies
0
Age
31
Location
Indiana
XP
420
Country
United States
I have Maya. I don't really know where to find the SDK, but custom models would breathe new life into this game. It's kind of the final hurdle, right?
I've got the most recent SDK. You could get it from a certain pastebin or you can get it legit through Nintendo now since they opened the door to private devs. Despite being fairly easy to obtain legitimately, we still can't link the files directly here; However googling NW4C Pastebin should find it easily. Remember that the 3DS is CTR, the WiiU is CAFE. Either way, A lot of the tools themselves are pretty useless without a Dev Unit and the appropriate hardware. There are plugins for Maya 2015 that I'm trying to use, but I'm not really great at using Maya. I'm a 2d artist, so this is out of my skillset. :(

It does seem to be the final hurdle, although others seem to have gotten it to work. A faster way to test ROM changes would be a godsend too, to be honest. Spending an hour editing a texture and compiling a hans patch just to discover that I need to adjust something AGAIN is part of why I stopped messing with it for a while, lmao.
 

Noroxus

Margen67 Supporter
Member
Joined
Jul 7, 2013
Messages
443
Trophies
1
Location
Glorious Nippon
XP
868
Country
Germany
A faster way to test ROM changes would be a godsend too, to be honest. Spending an hour editing a texture and compiling a hans patch just to discover that I need to adjust something AGAIN is part of why I stopped messing with it for a while, lmao.

Why don't you just use NTR then? You will only have to change files on your SD, which is 1000% quicker than garbage HANS
 
  • Like
Reactions: deishido

deishido

Texture Modder
Member
Joined
Jul 8, 2009
Messages
244
Trophies
0
Age
31
Location
Indiana
XP
420
Country
United States
Why don't you just use NTR then? You will only have to change files on your SD, which is 1000% quicker than garbage HANS
I didn't realize that NTR could do that. I'll have to look into it. iirc NTR wasn't a big thing a little over a year ago when this thread was really seeing some traffic.

Which file is for the player's head/body model?

romfs_/Player/*_mdl
relevent files are .bcres and can be opened with ohana and EFE. textures can be changed with the old ohana, but models can't. Models need to be made with the SDK before being compatible it seems. Notably, HHD models crash, perhaps something changed?

Each folder ending with mdl contains chuncks of the player model, each piece is seperated as necessary. Mannequin models are in here too.
Head models specifically are stored in head_mdl and face textures are stored in face_tex. Heads are separated by hairstyle and gender, faces are separated by eyes and gender.

I finally managed to get a custom model into the game without crashing! Sadly, it didn't turn out quite as I had hoped. I'm not familiar with modeling terminology or troubleshooting so if anyone has any ideas whats going on, I'm all ears! (I used Maya2015) Here's my result:
tumblr_obql1wEyL81r2q4jjo1_1280.jpg


No, it's not tiny, it seems to be entirely invisible!
I don't believe the model was too big because it was ripped from another file in the game (Wolf villager. I cut his head off and replaced the players head with it)

I've read about reversing normals, not entirely sure what it means, but it's my next area of study.
I've also read that things like this can happen if the model isn't closed? Interestingly, the original model wasn't closed either. (at the neck)
I have no idea what UV mapping is, but as above, I'll be looking into it.
I don't think I put a texture on there, at least not in the correct way. but most other null textures either crash or show as white; the exception being plants.



Either way, it's a step forward!
 
Last edited by deishido, , Reason: a word
  • Like
Reactions: Aeth-r

Aeth-r

Well-Known Member
Member
Joined
Jan 6, 2016
Messages
153
Trophies
0
Age
30
XP
108
Country
United States
I've read about reversing normals, not entirely sure what it means, but it's my next area of study.

I have no idea what UV mapping is, but as above, I'll be looking into it.
I don't think I put a texture on there, at least not in the correct way. but most other null textures either crash or show as white; the exception being plants.



Either way, it's a step forward!

So, reversing your normals may solve your problem. In simple terms, "normals" are how the game/modelviewer/whatever will display the texture in response to light. Often times, many games don't have what's called "back face culling", meaning, the back sides of a polygon (triangle/quad) in your model are invisible. If normals are flipped, that means the FRONT side of a polygon is registered as the BACK side. Reversing the normals means reversing which side is considered which side of the polygon is the front and which side is considered the back. Does that make sense?

UV Mapping is odd to explain. You know how a texture is (usually) a square image with a bunch of unwrapped things? Like, faces are stretched out, bodies are stretched out etc? UV Mapping is what determines where each polygon face is placed on the square texture. I don't believe your problem rests within UV Mapping.

I believe your issue stems either from a Normals problem or not having a texture. If you have questions, feel free to ask! I like to think I know something about Maya.
 
  • Like
Reactions: deishido

deishido

Texture Modder
Member
Joined
Jul 8, 2009
Messages
244
Trophies
0
Age
31
Location
Indiana
XP
420
Country
United States
So, reversing your normals may solve your problem. In simple terms, "normals" are how the game/modelviewer/whatever will display the texture in response to light. Often times, many games don't have what's called "back face culling", meaning, the back sides of a polygon (triangle/quad) in your model are invisible. If normals are flipped, that means the FRONT side of a polygon is registered as the BACK side. Reversing the normals means reversing which side is considered which side of the polygon is the front and which side is considered the back. Does that make sense?

UV Mapping is odd to explain. You know how a texture is (usually) a square image with a bunch of unwrapped things? Like, faces are stretched out, bodies are stretched out etc? UV Mapping is what determines where each polygon face is placed on the square texture. I don't believe your problem rests within UV Mapping.

I believe your issue stems either from a Normals problem or not having a texture. If you have questions, feel free to ask! I like to think I know something about Maya.
Thanks for the informative and detailed response! I've tried reversing normals, and i've succesfully mapped a texture to a model! Unfortunately no combination of these things has provided a difference in game and I am always stuck headless. some other things I have tried include formatting textures differently (there are nearly a dozen different options) adding mipmaps, using original head textures and simply rebuilding boy12a out of its own pieces. I'm thinking there's an issue with the model itself. I had some trouble with the texture and the model not being a nurbs surface(?) And i've only been using output obj files. I think maybe dae or smd might get better results. I'll have to wait before I can test some more because of my real job being in the way. (Who even NEEDS money? pffft)

I'm going to learn more from the sdk files to see if there's any information I can use. I'm wondering if maybe i'm just missing some crucial information somehow. Its probably worth nothing that viewing my custom bcres files in Ohana (re birth) yields the desired results. Its possible that I need to use a different kind of texture since ask these models work, but are invisible. The only similar trait is that they all contain full textures, whereas the original head has some kind of x mirrored alpha textures.

Meanwhile, I have noticed that in most cases, swapping villager models around has no issues. However, swapping in (unedited) models that are too different leads to a crash as soon as the model is called. (For instance, using fsh_same.bcres in place of pig14.bcres crashes the game rather than turning Chops into a Shark. I wonder if maybe there's some thing important about this because using the same unedited pig14 or fsh_same bcres in place of boy12a (the head model i'm using to test) results in the invisible head I mentioned earlier. These files aren't edited and they also don't crash. So maybe player models are just different? It could be related to change skin tone and hair, etc as these colors aren't contained in the textures for the head.

Notably, I edited pig14 to give him a watch but it crashed upon loading the model. Also, i'm using boy12a because it appears to be the "beadhead" model, so I can test for an extended period without having to load up a fresh save.

Why don't you just use NTR then? You will only have to change files on your SD, which is 1000% quicker than garbage HANS

It took some time, but I got it working and i'd like to thank you for telling me this. Its much easier than rebuilding a 700MB romfs file! For anyone wondering, NTR won't work on newer firmware, especially for o3ds, (I was on emunand 10.6U and it wouldn't work) I used the firmware.bin found on a Luma setup tutorial and its working great now. (I'm using a waaaay outdated rxtools install)
 

Casp3r

Active Member
Newcomer
Joined
Jul 12, 2016
Messages
43
Trophies
0
Age
40
XP
50
Country
United States
Thanks for the informative and detailed response! I've tried reversing normals, and i've succesfully mapped a texture to a model!
It took some time, but I got it working and i'd like to thank you for telling me this. Its much easier than rebuilding a 700MB romfs file! For anyone wondering, NTR won't work on newer firmware, especially for o3ds, (I was on emunand 10.6U and it wouldn't work) I used the firmware.bin found on a Luma setup tutorial and its working great now. (I'm using a waaaay outdated rxtools install)


Mind posting a guide to setting up so you can use NTR for this?
The faster you bring others around you up to pace, the faster we can move forward as a group.
 

deishido

Texture Modder
Member
Joined
Jul 8, 2009
Messages
244
Trophies
0
Age
31
Location
Indiana
XP
420
Country
United States
Mind posting a guide to setting up so you can use NTR for this?
The faster you bring others around you up to pace, the faster we can move forward as a group.

Sure, I don't mind. I just kinda assumed I was the only one with this problem to be honest. And sorry for taking so long to reply, I was gathering links and resources. Theres a few guides already floating around for the LayeredFS part, but I had some trouble still because of my firmware. There were also a lot of threads where people were aking about NTR CFW and were either never answered, or were told to use google. (Precisely how I found those threads interestingly enough) Anways, Links to everything I can legally link to will be provided in-line, there's one link I can only get you close to, but it's not hard to find from there. Lets get started.

Setting up NTR CFW with LayeredFS
(This works with retail, eshop, and basically any game regardless of how it was obtained)

Prerequisites:

  • You must already have access to CFW. (Luma, RXTools, Reinand)
  • You must have DevkitARM installed on your system.
  • You must have Python 2.7 installed on your system. Other versions may not work.
  • You must have a encrypted dump of your game of choice. (romfs.bin, exefs.bin) All examples I use will be of Animal Crossing New Leaf (U) You will need to do it anyway to edit anything, so be sure to have it and also the exefs.bin file handy.
  • You must be able to install CIA files to your home menu.

There are already plenty of guides for doing all the things above, so I'm skipping that tedious stuff.
Got those things installed? Alright, lets begin.

  • First things first, get NTR CFW. (This version works on both o3ds and n3ds)
  • Now download the latest BootNTR CIA.
  • Next, download the LayeredFS Toolkit and put those files in a folder that's easy to find because we're staring here.
  • Copy the exefs.bin file from your game's dump into the workdir folder.
  • Run build_layeredfs.bat from the LayeredFS Toolkit. It will ask you to enter the folder of the LayeredFS file. Just put in the GameID. For ACNL, its 0004000000086300 (use all 16 digits)
  • Next, it will ask you about a language code, just press enter without typing anything in.
  • Now when it's done, it will create a file inside the workdir folder called layeredfs.plg
  • On your SD Card: Create a folder called plugin and inside that create another folder with your GameID (0004000000086300 for ACNL) and put layeredfs.plg in it.
  • On your SD Card: Make ANOTHER folder with your GameID, leave this one on the root of your card. (Not inside any other folders)
  • Alright, lets take a quick break and explain some things.

The GameID folder you just made on the root is where all changed files will go. This is a reflection of the extracted romFS_ folder on your computer except you will only put changed files here. For example, I edited a villager. I replaced the original Pig14.bcres file with a new one. so I would put this new Pig14.bcres file inside the folder on the root of the SD card in the same place it would be if all the other files were here. It gets a bit tricky here and none of the other tutorials really explain this, so I'm giving it a shot.

Inside the original romFS_ folder, there are several files. each file is in a folder, usually within another folder. So when you put an edited file on the SD card's GameID folder, it needs to be inside all of the same folders as it originally was or the game doesn't know where to find it. In my example of Pig14.bcres, the original is here:

romFS_
NPC
Normal
Model
Pig14.bcres
So when I put this file inside the GameID folder on the root of my SD Card, I'll create new folders and name them the same, make new folders inside those, and ect until the file is in the right place, like this: (the new folders I made are bold)

root:/
0004000000086300
NPC
Normal
Model
Pig14.bcres
Now when I boot the game with NTR, I'll have this custom villager where Chops would have been. The other GameID folder should just be chillin inside your plugin folder with a .plg file inside it. We won't be returning to this folder anymore, only the one on the root. Anyway, here's where we pick back up. You need to have NTR and BootNTR to use this plug in, so find them in your downloads folder and lets install them.

  • Open NTR.3.2.zip and find the ntr.bin file. (If you're on n3ds you can try the new version)
  • put ntr.bin on the root of your SD Card.
  • Find BootNTR.cia and put it somewhere on your SD Card, location doesn't matter. If you have a favorite place for CIAs about to be installed, it can go there.
  • Install BootNTR.cia with your favorite CIA installer.
At this point, plug everything in and turn on your 3ds. Boot into your CFW of choice and unwrap the BootNTR icon. You will need to run BootNTR before running any modified games, or they won't show your changes. Go ahead and boot it. If you're on FW 10.3 or earlier it should work, you'll be dropped back into the home menu and you're free to test your edits. Run your game, the screen may briefly flash green, that is normal and it means the LayeredFS is active. You're good to go!

If you're on FW 10.4 or later,BootNTR probably threw you an error like "Unknown Home Menu version" Then started logging a bunch of numbers on the bottom screen, it means your Emunand's system version is too high. If you run into this problem, there's a pretty simple fix. Turn off your 3ds, put your SD Card in your computer and figure out where your CFW of choice stores firm.bat/firmware.bat/nfirm.bat or whatever it uses for firmware. I use an old nightly of RXTools. My firmware.bat file is stored here:

root:/
rxTools
sys
firmware.bin
I'm not familiar with other CFW Users, but it's likely in their designated folder somewhere. Anyway rename that file to add .bak at the end. that way you can always go back if something doesn't work. then download the firmware.bin from somewhere on this page here and put it where yours was. (I'm pretty sure I can't link directly to firmware.bin, this page has a link to the one I'm using. You'll find it where it says "...To boot 3.x-4.x NANDs, you need firmware.bin from this archive..." just a few lines down. I'd love to just link it directly, but I can't. I hope you understand.)

After replacing your firmware.bin, you should be good to go. Try booting BootNTR again and give it another shot. Good luck!


My experience on this subject ends here. If you're using a different CFW or a different System FW or something otherwise not in this guide, I'm afraid I won't be able to offer much help at all. There are dedicated threads for these programs however. I recommend asking there first if your questions aren't specifically Animal Crossing Related.
 
Last edited by deishido, , Reason: minor text fixes r
D

Deleted User

Guest
@deishido Omg amazing job! Do you mind if I add your write-up to my ACNL git and credit you for your amazing work so that other people may come accross this? :)
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,724
Trophies
2
XP
8,498
Country
Tuvalu
A friend is working with a team to translate ACNL to Chinese.

Does anyone have an idea where festivals are stored, and how to edit them?
And, (maybe a long shot) - they have run out of space in the Japanese font to replace characters, when they add more and increase the file size - the game crashes.
The jpn version has a 1.21mb font, the usa version has a 920kb font.
I would imagine the font size would be stored in the header of that font file itself... but maybe not?
Possibly the font file size is stored in the game resources, and where would that be?

How about the little sounds when you type and when the animals speak?

Thank :)
 
Last edited by cearp,
  • Like
Reactions: deishido

deishido

Texture Modder
Member
Joined
Jul 8, 2009
Messages
244
Trophies
0
Age
31
Location
Indiana
XP
420
Country
United States
Mmm... Hi everyone! I want to know how to replace a PWP with HxD. I want to replace a pwp with other does not count as PWP. For example, the Main Steet Door. Look this URL (https://docs.google.com/spreadsheet...sx_bzK2lP5cBmCxiVeQFezTjpU/edit#gid=270049252)
That sounds like a question for the RAM Editing thread! That kind of data is stored on the fly in save data and ram (during gameplay), you'll get better answers in there and there are a lot of resources too there too. This thread is for ROM hacking, ROM is data thats set and doesn't change in game. (Textures, models, code)

http://gbatemp.net/threads/spider-animal-crossing-new-leaf-ram-editing-thread.385047/ I believe there are more threads detailing various editors, but this one has been pretty useful for me. Marc's editor is very fleshed out too and might prove useful.

As for your question, you will need to find the value of the specific pwp in your town that you want to change and change that value to the item you want. Depending on if you use Garden.dat or a RAM dump for editing, you'll have to look in different places for this data. to replace with items that aren't pwps you might have to search a little harder for the right value to plug in, and not all values may work as expected. For things like doors and buildings, it might actually be better to use a seed, or something similar. You can use NTR cheats to do that! Check out the thread in @SirBeethoven 's signature and my guide to setting up NTR a few pages back. (Put the cheat plg file where you would put the layeredfs plg file)

Be very careful to keep a backup of your data though in case something goes wrong. I wish I could help more but I'm on mobile. Good luck!
 

[PastYf]

Member
Newcomer
Joined
Aug 3, 2016
Messages
8
Trophies
0
Age
24
XP
76
Country
Thanks deishido. For HxD editor I use acnl.bin. But for the Save Editor I use garden.dat. So it's very difficult? :( I am able to do, because I could change T&T Shop to T&T Emporium, so, I can use HxD easily.;)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=hke2YUirpf4 +1