ROM Hack [Release] Animal Crossing New Leaf Multi Cheat NTR Plugin

  • Thread starter RyDog
  • Start date
  • Views 1,125,308
  • Replies 4,613
  • Likes 77

Nanquitas

Well-Known Member
Member
Joined
Sep 29, 2015
Messages
2,345
Trophies
0
Age
30
Location
South of France :)
XP
3,336
Country
France
When I'll be on my computer, I'll help you transforming all those plugins in a single one which will automatically detect the region of the game.
It'll be easier for you to maintain this plugin ;)
 
  • Like
Reactions: RyDog

RyDog

Lazy Animal Crossing hacks
OP
Member
Joined
Apr 26, 2015
Messages
1,698
Trophies
1
Age
24
XP
2,850
Country
United States
When I'll be on my computer, I'll help you transforming all those plugins in a single one which will automatically detect the region of the game.
It'll be easier for you to maintain this plugin ;)
Can you show me how to change the GUI like in your converter? :O thanks so much for your help!
 
  • Like
Reactions: Nanquitas

Nanquitas

Well-Known Member
Member
Joined
Sep 29, 2015
Messages
2,345
Trophies
0
Age
30
Location
South of France :)
XP
3,336
Country
France
You can't really "change" the GUI, you need to create your own from scratch. :/

I can modify the source a bit to use my lib and the menu in it if you want (we'll change the intro screen though).
 
D

Deleted User

Guest
You can't really "change" the GUI, you need to create your own from scratch. :/

I can modify the source a bit to use my lib and the menu in it if you want (we'll change the intro screen though).
OMG PLEEEASE make a new GUI! That would be perfect for these hacks!
 

Nanquitas

Well-Known Member
Member
Joined
Sep 29, 2015
Messages
2,345
Trophies
0
Age
30
Location
South of France :)
XP
3,336
Country
France
The menu is on a lib, so we just have to create the menu and call the function to print it, there's no port and it's not a simple image file. ;)
My menu is limited to 300 entries by the way (against 64 for the NTR's original menu).
 
D

Deleted User

Guest
The menu is on a lib, so we just have to create the menu and call the function to print it, there's no port and it's not a simple image file. ;)
My menu is limited to 300 entries by the way (against 64 for the NTR's original menu).
Can you create an ntr.bin to always bring up the menu or a cheat.plg converter to include this menu always?
 

Nanquitas

Well-Known Member
Member
Joined
Sep 29, 2015
Messages
2,345
Trophies
0
Age
30
Location
South of France :)
XP
3,336
Country
France
Oh I see what you mean !
No I can't edit the menu inside the NTR.bin, it's not working the same way, everything should be redone with my lib in order to use it.
But the converter I'll release will automatically use the lib so little by little a lot of plugins will use this menu (especially when there's not that many custom plugins creator :P). ;)

I cannot edit an already compiled plugin, sorry. :/

But if @itsRyan want it, I'll edit this one to use the menu I created.
 
Last edited by Nanquitas,
  • Like
Reactions: Deleted User

RyDog

Lazy Animal Crossing hacks
OP
Member
Joined
Apr 26, 2015
Messages
1,698
Trophies
1
Age
24
XP
2,850
Country
United States
Oh I see what you mean !
No I can't edit the menu inside the NTR.bin, it's not working the same way, everything should be redone with my lib in order to use it.
But the converter I'll release will automatically use the lib so little by little a lot of plugins will use this menu (especially when there's not that many custom plugins creator :P). ;)

I cannot edit an already compiled plugin, sorry. :/

But if @itsRyan want it, I'll edit this one to use the menu I created.
Yes please! :D I'm looking forward to it! Thanks!
 

Nanquitas

Well-Known Member
Member
Joined
Sep 29, 2015
Messages
2,345
Trophies
0
Age
30
Location
South of France :)
XP
3,336
Country
France
Okay no problem then ! ;)

--------------------- MERGED ---------------------------

BTW, I took a look at the teleport function and I wanted to add 3 slots for each teleporter (don't know if it's useful but I got the idea so...) so here you go if you want to test it:
Code:
void    teleport(void)
{
    u32            key = getKey();
    static u32    indoor_X[3] = {0};
    static u32    indoor_Y[3] = {0};
    static u32    outdoor_X[3] = {0};
    static u32    outdoor_Y[3] = {0};
    static int    loc = 0;

    if ((key & BUTTON_A + BUTTON_DU) == BUTTON_A + BUTTON_DU)
    {
        loc = READU32(0x17321644);
        if (loc == -1)
        {
            if (key & BUTTON_L) //If L is pressed then save in slot3
            {
                    outdoor_X[2] = READU32(0x17321510);
                    outdoor_Y[2] = READU32(0x17321518);
            }
            else if (key & BUTTON_R) //If R is pressed then save in slot2
            {
                    outdoor_X[1] = READU32(0x17321510);
                    outdoor_Y[1] = READU32(0x17321518);
            }
            else //If nothing is pressed then save in slot0
            {
                    outdoor_X[0] = READU32(0x17321510);
                    outdoor_Y[0] = READU32(0x17321518);
            }
        }
        else
        {
            if (key & BUTTON_L) //If L is pressed then save in slot3
            {
                    indoor_X[2] = READU32(0x17321510);
                    indoor_Y[2] = READU32(0x17321518);
            }
            else if (key & BUTTON_R) //If R is pressed then save in slot2
            {
                    indoor_X[1] = READU32(0x17321510);
                    indoor_Y[1] = READU32(0x17321518);
            }
            else //If noting is pressed then save in slot0
            {
                    indoor_X[0] = READU32(0x17321510);
                    indoor_Y[0] = READU32(0x17321518);
            }
        }
    }
    if ((key & BUTTON_A + BUTTON_DD)== BUTTON_A + BUTTON_DD)
    {
        loc = READU32(0x17321644);
        if (loc == -1)
        {

            if (key & BUTTON_L) //If L is pressed then restore slot3
            {
                WRITEU32(0x17321510, outdoor_X[2]);
                WRITEU32(0x17321518, outdoor_Y[2]);
            }
            else if (key & BUTTON_R) //If R is pressed then restore slot2
            {
                WRITEU32(0x17321510, outdoor_X[1]);
                WRITEU32(0x17321518, outdoor_Y[1]);
            }
            else //If nothing is pressed then restore slot0
            {
                WRITEU32(0x17321510, outdoor_X[0]);
                WRITEU32(0x17321518, outdoor_Y[0]);
            }
        }
        else
        {
            if (key & BUTTON_L) //If L is pressed then restore slot3
            {
                WRITEU32(0x17321510, indoor_X[2]);
                WRITEU32(0x17321518, indoor_Y[2]);
            }
            else if (key & BUTTON_R) //If R is pressed then restore slot2
            {
                WRITEU32(0x17321510, indoor_X[1]);
                WRITEU32(0x17321518, indoor_Y[1]);
            }
            else //If nothing is pressed then restore slot0
            {
                WRITEU32(0x17321510, indoor_X[0]);
                WRITEU32(0x17321518, indoor_Y[0]);
            }
        }
    }
}
 
Last edited by Nanquitas,

RyDog

Lazy Animal Crossing hacks
OP
Member
Joined
Apr 26, 2015
Messages
1,698
Trophies
1
Age
24
XP
2,850
Country
United States
Okay no problem then ! ;)

--------------------- MERGED ---------------------------

BTW, I took a look at the teleport function and I wanted to add 3 slots for each teleporter (don't know if it's useful but I got the idea so...) so here you go if you want to test it:
Code:
void    teleport(void)
{
    u32            key = getKey();
    static u32    indoor_X[3] = {0};
    static u32    indoor_Y[3] = {0};
    static u32    outdoor_X[3] = {0};
    static u32    outdoor_Y[3] = {0};
    static int    loc = 0;

    if ((key & BUTTON_A + BUTTON_DU) == BUTTON_A + BUTTON_DU)
    {
        loc = READU32(0x17321644);
        if (loc == -1)
        {
            if (key & BUTTON_L) //If L is pressed then save in slot3
            {
                    outdoor_X[2] = READU32(0x17321510);
                    outdoor_Y[2] = READU32(0x17321518);
            }
            else if (key & BUTTON_R) //If R is pressed then save in slot2
            {
                    outdoor_X[1] = READU32(0x17321510);
                    outdoor_Y[1] = READU32(0x17321518);
            }
            else //If nothing is pressed then save in slot0
            {
                    outdoor_X[0] = READU32(0x17321510);
                    outdoor_Y[0] = READU32(0x17321518);
            }
        }
        else
        {
            if (key & BUTTON_L) //If L is pressed then save in slot3
            {
                    indoor_X[2] = READU32(0x17321510);
                    indoor_Y[2] = READU32(0x17321518);
            }
            else if (key & BUTTON_R) //If R is pressed then save in slot2
            {
                    indoor_X[1] = READU32(0x17321510);
                    indoor_Y[1] = READU32(0x17321518);
            }
            else //If noting is pressed then save in slot0
            {
                    indoor_X[0] = READU32(0x17321510);
                    indoor_Y[0] = READU32(0x17321518);
            }
        }
    }
    if ((key & BUTTON_A + BUTTON_DD)== BUTTON_A + BUTTON_DD)
    {
        loc = READU32(0x17321644);
        if (loc == -1)
        {

            if (key & BUTTON_L) //If L is pressed then restore slot3
            {
                WRITEU32(0x17321510, outdoor_X[2]);
                WRITEU32(0x17321518, outdoor_Y[2]);
            }
            else if (key & BUTTON_R) //If R is pressed then restore slot2
            {
                WRITEU32(0x17321510, outdoor_X[1]);
                WRITEU32(0x17321518, outdoor_Y[1]);
            }
            else //If nothing is pressed then restore slot0
            {
                WRITEU32(0x17321510, outdoor_X[0]);
                WRITEU32(0x17321518, outdoor_Y[0]);
            }
        }
        else
        {
            if (key & BUTTON_L) //If L is pressed then restore slot3
            {
                WRITEU32(0x17321510, indoor_X[2]);
                WRITEU32(0x17321518, indoor_Y[2]);
            }
            else if (key & BUTTON_R) //If R is pressed then restore slot2
            {
                WRITEU32(0x17321510, indoor_X[1]);
                WRITEU32(0x17321518, indoor_Y[1]);
            }
            else //If nothing is pressed then restore slot0
            {
                WRITEU32(0x17321510, indoor_X[0]);
                WRITEU32(0x17321518, indoor_Y[0]);
            }
        }
    }
}
I like that :)
I'll include that in 2.1 of my plugin :P
I also fixed teleport... just testing on EUR and I'll upload soon ;)
 

RyDog

Lazy Animal Crossing hacks
OP
Member
Joined
Apr 26, 2015
Messages
1,698
Trophies
1
Age
24
XP
2,850
Country
United States
Version 2.0.2 uploaded:
Fixed teleport's pointer where it would write to the wrong offset completely messing up moon jump and coordinates modifier and soft locking your game when you went indoors.
2.1 beta source will be found on my Github as I work on stuff; you may compile it yourself, or wait for a public stable (tm) release.
Planning on:
-Nookling/Gardening store upgrades
-Reworking seeder
-Add a real time search and replace
-Using @Nanquitas teleport function to allow storing of multiple spots.
-(maybe) port Speed hack
(possibly 3.0 if I don't get to this)
-Text 2 item for multiple players
-Port to jap
-Nookling sells golden tools
-Player 1-4 maximum tan
----More can be added if more offsets are found----
The development process will slow down but I will find time to work on it... and as I've said, help is much appreciated, this plugin is open source and anyone can help work on it ;)
Thanks for downloading and supporting this plugin :)
 
D

Deleted User

Guest
Version 2.0.2 uploaded:
Fixed teleport's pointer where it would write to the wrong offset completely messing up moon jump and coordinates modifier and soft locking your game when you went indoors.
2.1 beta source will be found on my Github as I work on stuff; you may compile it yourself, or wait for a public stable (tm) release.
Planning on:
-Nookling/Gardening store upgrades
-Reworking seeder
-Add a real time search and replace
-Using @Nanquitas teleport function to allow storing of multiple spots.
-(maybe) port Speed hack
(possibly 3.0 if I don't get to this)
-Text 2 item for multiple players
-Port to jap
-Nookling sells golden tools
-Player 1-4 maximum tan
----More can be added if more offsets are found----
The development process will slow down but I will find time to work on it... and as I've said, help is much appreciated, this plugin is open source and anyone can help work on it ;)
Thanks for downloading and supporting this plugin :)
Tested v2.0.1

Instant Tree soft locks when you use it on a tree in someone else's town online. Going indoors after completely soft locks.

For moon jump, why not just make one that doesn't bring you into the air, but allows you to bypass boundaries (like how it shows you walking on someone else's screen. How you'll ALWAYS go to the top of something if you walk over it

--------------------- MERGED ---------------------------

Also, could you make the codes go in this order (based on Mostly used):
1. Inventory
2. Movement
3. Environment
 
Last edited by ,

RyDog

Lazy Animal Crossing hacks
OP
Member
Joined
Apr 26, 2015
Messages
1,698
Trophies
1
Age
24
XP
2,850
Country
United States
Tested v2.0.1

Instant Tree soft locks when you use it on a tree in someone else's town online. Going indoors after completely soft locks.

For moon jump, why not just make one that doesn't bring you into the air, but allows you to bypass boundaries (like how it shows you walking on someone else's screen. How you'll ALWAYS go to the top of something if you walk over it

--------------------- MERGED ---------------------------

Also, could you make the codes go in this order (based on Mostly used):
1. Inventory
2. Movement
3. Environment
Instant tree hasn't been tested that throughly but it shouldn't work online like all the other codes.
I'd love to be able to do that but I'd need to find the offset of where collision checks are, and I have no idea how to find them.
Also, that's based on your preference. You can order it in any way you want since I left the source code avaible... I'll show you a little example on how to tweak. it give me a second...
 
  • Like
Reactions: Deleted User
D

Deleted User

Guest
Instant tree hasn't been tested that throughly but it shouldn't work online like all the other codes.
I'd love to be able to do that but I'd need to find the offset of where collision checks are, and I have no idea how to find them.
Also, that's based on your preference. You can order it in any way you want since I left the source code avaible... I'll show you a little example on how to tweak. it give me a second...
Yeah! I just realized that it would be very easy to do since it's just moving around the text
 
D

Deleted User

Guest
Instant tree hasn't been tested that throughly but it shouldn't work online like all the other codes.
I'd love to be able to do that but I'd need to find the offset of where collision checks are, and I have no idea how to find them.
Also, that's based on your preference. You can order it in any way you want since I left the source code avaible... I'll show you a little example on how to tweak. it give me a second...
Yeah! I just realized that it would be very easy to do since it's just moving around the text
 

RyDog

Lazy Animal Crossing hacks
OP
Member
Joined
Apr 26, 2015
Messages
1,698
Trophies
1
Age
24
XP
2,850
Country
United States
@SirBeethoven
First you need to install devkitpro from here
And then I'd recommend using Notepad++ to edit code (programer's notepad might work too)
download/clone my source https://github.com/RyDog199/ACNL-NTR-Cheats
the main part of the plugin is found at <region>/menuCheat/Sources/create_menu.c
Open create_menu.c with notepad++
Scroll all the way to the bottom where you see this
upload_2016-6-29_0-36-17.png

In the initCheatMenu() function these are what's being called on
For cheats: addCheatMenuEntry("Name of cheat", function_for_cheat, FREEZE);
For comments/"folders" addMenuEntry("Name of menu entry");

it's best to cut and paste them in the order you want so you can organize it for your liking.
Finally to compile it make sure you save the gameplg.c and enter the menuCheat folder and run build.bat. If it was successful the script should have made a new cheat.plg in which you can replace your current version. If you get errors, shift + right click to open a command window here
upload_2016-6-29_0-42-26.png

CMD will run in that directory and type in 'run.bat' and then command prompt will tell you which errors you need to fix and on which line.
Hope this helps ;)
 
Last edited by RyDog,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    AncientBoi @ AncientBoi: Imma make quesadillas for lunch :D +2