[Release]RTChanger - An open sourced RTC changing tool for bypassing timegates!

Discussion in '3DS - Homebrew Development and Emulators' started by Storm Eagle, Jul 31, 2017.

  1. Storm Eagle
    OP

    Storm Eagle Member

    Newcomer
    21
    20
    Mar 2, 2016
    United States
    Hey there. I saw that the only way of changing your RTC was through config, which was illegal to distribute. Much like with FBI and how it was the successor to Dev Menu, I took the time to develop an RTC tool, known as RTChanger, which is the successor to CONFIG in a sense. It allows users to bypass timegates in games! We finally have a redistributable tool which can do this after four years!

    https://github.com/Storm-Eagle20/RTChanger/releases/tag/1.0

    As per quoting my GitHub's README:

    RTChanger is a homebrew application for the Nintendo 3DS system. RTChanger allows you to change the Raw RTC of your system. This is the only legally distributable open sourced lightweight Raw RTC changer! Changing the Raw RTC allows you to bypass most timegates in games.

    There are many applications in different games as some games have more than one time gate.

    # Timegates?

    Let's take Pokemon Sun and Moon for an example. You want to train your Pokemon in Poke Pelago. That can take two days or more. Then you want to grow berries which can take days. You also want to do the daily lottery in Festival Plaza, too. Imagine with a new homebrew application, you no longer have to wait. That is now a reality, and RTChanger can manually change your time ahead by any value you want. Almost every timegate in 3DS games will ge gone and you'll be able to rapidly train your Pokemon, grow thousands of berries within an hour, and get tons of stuff by the lottery.

    Here's a 3DBrew article on it, which is an extremely reputable source on this.

    https://3dbrew.org/wiki/Anti_Time-Travel

    Please note that there are some timegates which RTChanger will not be capable of bypassing. Some timegates are server based, meaning the server keeps the time on their end, and RTChanger cannot bypass these as it's client-side only and there is no possibility of server-based timegate bypassing.

    # What is the Raw RTC?

    As you may have seen above in the 3DBrew link, your system has a special hidden clock inside that continues to move forward just like the regular clock and cannot be changed outside of normal circumstances. Upon booting, many games check for differences in the RTC (Your normal system clock) and Raw RTC. Games can detect whether you changed your system clock. However, changing the Raw RTC prevents the games from detecting that if done properly.

    As a note, some people call it the Raw RTC, RTC, or hardware clock, but all of these are the same thing (except Nintendo refers to the System Clock which you can set as the `RTC`).

    # What is required for this?

    This will be a .CIA and .3DSX file and requires Custom Firmware and Boot9Strap. The .3DSX also requires Luma3DS as it needs Rosalina to patch the Service Manager (SM) module. The preferred CFW for the .CIA is Luma3DS, but you can choose one at your own descretion. .CIA files are installed with FBI, as you should have gotten it installed in www.3ds.guide.

    .3DSX files are used with an entrypoint or Rosalina. The recommended entrypoint is the HBLauncher Loader. HBLauncher Loader is given in the link below.

    https://github.com/yellows8/hblauncher_loader/releases

    If you're unfamiliar with .3DSX files, you'll need fincs' Homebrew Launcher 2.0. Get the boot.3dsx and put it at the root of your SD card.

    https://github.com/fincs/new-hbmenu/releases

    # You must patch Service Manager to use the .3DSX version. This means that Arm9LoaderHax users MUST use the .CIA version.

    Open Rosalina [`L+Down+Select`], go to `Process patches menu`, and select `Patch SM for service checks.` You CANNOT use the .3DSX version of RTChanger without doing this first. The .CIA version doesn't require this, however.

    While you can use any entrypoint you like, here is the release page for the HBLauncher_Loader .CIA, which will allow you to access userland to boot up the .3DSX if you don't have access to any other entrypoint.

    If preferred, you can also use Rosalina with my program. This only requires the boot.3dsx for the Homebrew Launcher 2.0 by fincs. Open Download Play on the Home Menu, then open Rosalina [`L+Down+Select`] and patch SM if you haven't already by going to `Process patches menu` and selecting `Patch SM for service checks.` After that, go to `Miscellaneous options...` and select `Switch the hb. title to the current app`. **Do not attempt to take over any title except for Download Play. RTChanger will crash and any bug reports will be closed if the user did not use Download Play.**

    If the patch succeeds, press B to exit Rosalina and exit Download Play by pressing the Home Menu button and closing it. Open Download Play again and you should be in the Homebrew Menu, and you can open my application provided you patched Service Manager.

    # Q&A

    Q: Wasn't it already possible to change the Raw RTC? Why was this developed?

    A: Config, a SDK devkit tool which allows you to change your Raw RTC as well exists too. This tool however has been leaked on the internet far and wide. Due to being an official devkit tool, it was not intended to be leaked and was only for PANDA and SNAKE units (3DS and New 3DS developer consoles). As this is officially created by Nintendo itself, it is copyrighted and distribution of it can lead to DMCA takedown requests.

    As the Raw RTC was a value stored in the MCU, very few developers knew how to work around it. Sono, otherwise known as MarcusD, was one of these developers. There was little interest in dealing with a program which could do this, and as a new and aspiring developer, I wanted to create RTChanger especially considering reddit's /r/3DShacks community didn't have any way to change the Raw RTC, even with Boot9Strap! The only way to change it before now was to get a hold of Config.

    ---

    Q: Will there be a GodMode9 script?

    A: I have reached out to d0k3, however it is his decision as to whether he wishes to implement RTC scripting on GodMode9. I am currently talking with him right now about whether it will be implemented in GM9 or not.

    ---

    Q: This involves the MCU. Is this safe?

    A: Yes. What you may have heard was that changing the color of the LED can brick the MCU, but that was not true as the brick yellows8 got was a NAND brick.

    **I have also made sure to fully test both the .3DSX and .CIA versions on my own 3DS by myself.** I wouldn't ask others to do something like that.

    ---

    Q: Does this affect my regular system time?

    A: Sadly, yes.

    ---

    Q: Is this legally redistributable?

    A: Yes! Feel free to share it to friends, but I recommend you send them to the GitHub first.

    ---

    Q: I would like to build this. What folder should I build?

    A: Don't build the RTChanger-CIA folder. I need to delete that but I'll do it soon, probably in a few days from this edit.

    ---

    Q: Will there be any updates to this?

    A: I don't honestly see the point of updating this once it's released. Unless a critical bug arises, there's really nothing else to be done with this application in particular.

    # Disclaimer

    I am not responsible for any bans or any ingame punishment of any sort from the use of RTChanger. You are highly unlikely to get any sort of ban, but there have been ban waves before. Quoting Plailect from his guide (if you have installed CFW recently you should already have this done):

    >There have been reports of a wave of bans being handed out to CFW users by Nintendo. To protect yourself, please do the following steps before starting this guide:
    >1. Go to System Settings, then “Internet Settings”, then “SpotPass”, then “Sending of System Information”
    >2. Disable the “Sending of System Information” option
    >3. Exit the System Settings
    >4. Go to your Friend’s List (the Face Icon in the top row of your Home Menu)
    > * If you receive an error and are kicked out of the menu, the Friend’s List setting is already disabled
    >6. Go to the Friend’s List settings, then “Friend Notification Settings”, then “Show friends what you’re playing”
    >7. Disable the “Show friends what you’re playing” option
    >8. Exit your Friend’s List

    Credits to Plailect (/u/Plailect), owner of www.3ds.guide.

    # Contact Information

    I'm currently most active on Reddit. If you need something urgent, or would like to ask a few questions, please contact me on Reddit. /u/x-the-komujin is the name.

    # Credits (thus far)

    Sono (AKA MarcusD). I would not have even started this project if it weren't for him. I am very new to coding and he has and currently is helping me with this project. A very, very helpful person.

    LiquidFenrir on Discord. I'm not joking when I say that he seriously assisted me in the entirety of my code around overflows and handling values before writing it to a MCU register.

    The 3DSHacks #dev community on Discord. I had quite a few questions to ask there. I also desperately needed new Makefiles to create .CIA and .3DSX files.

    Fenrir for helping me solve some issues when I was trying to compile.

    AstronautLevel for helping me on getting the system to reset.

    MassExplosion213 for helping me with multiple code segments. I've made quite a few stupid mistakes during development, and he helped me find and correct those mistakes when I was seriously lost.

    Smealum for ctrulib. I really needed that library.

    ---

    I spent a lot of time on this and I hope you guys enjoy it and use it often, as it was a pain in the ass to test. I've made sure to test both versions so that it's working just fine. :)
     
    GameSystem, lordkaos, Laroon and 10 others like this.
  2. Joom

    Joom  ❤❤❤

    Member
    4,384
    3,017
    Jan 8, 2016
    United States
    Awesome. There's an NTR plugin for SuMo that allows one to change the RTC (the only real-time editor I know of), but it's great to finally have a legal solution that works almost universally. Nice job.
     
  3. proflayton123

    proflayton123 Sakura思い

    Member
    5,951
    2,267
    Jan 11, 2016
    Japan
    日本
    This is lovely! Now I don't need to use said sdk app and instead this app!!

    Edit: corrected changes :v
     
    Last edited by proflayton123, Jul 31, 2017
  4. Storm Eagle
    OP

    Storm Eagle Member

    Newcomer
    21
    20
    Mar 2, 2016
    United States
    Thanks. As far as I know, there are other games too which have timegates, not just Sun and Moon, and there's also Omega Ruby, Alpha Sapphire, X, and Y which you can use RTChanger to get back all of your O-Power energy and in the former you can change the time all you need if you want to catch Terrakion, Virizion, Cobalion, Uxie, Azelf, or Mesprit!

    Good luck even finding config, though. If it's even still on the internet, as most links I've seen have gotten struck down by copyright. I don't see why you would even want to use that, though, when it's not any more advanced than my program bar the strange options to calibrate stuff and change the EULA, none of which you would ever really need.
     
  5. proflayton123

    proflayton123 Sakura思い

    Member
    5,951
    2,267
    Jan 11, 2016
    Japan
    日本
    I mistaken when writing my post, now fixed. I have a 'backup' on my PC :)


    Sent from my iPhone using Tapatalk
     
  6. Storm Eagle
    OP

    Storm Eagle Member

    Newcomer
    21
    20
    Mar 2, 2016
    United States
    Sorry about that. I hope you enjoy using my program!
     
    proflayton123 likes this.
  7. AnalogMan

    AnalogMan ultraSuMoFramework Dev

    Member
    1,614
    1,147
    Apr 20, 2007
    United States
    Just for clarification, the NTR plugin does not change the system's RTC clock, it only alters the daytime offset in the save file which is a feature built into the game for a certain mechanic in the post-game.
     
    Joom and astronautlevel like this.
  8. Keizel

    Keizel GBAtemp Fan

    Member
    366
    111
    Jun 28, 2015
    This is very useful! Thanks for app.

    One question: I saw that GodMode9 say, the first that I used it, that I had to set the time (RTC clock), then, any way form for edit RTC clock with GodMode9?
     
  9. blujay

    blujay GBATemp's Official Warthog

    Member
    GBAtemp Patron
    blujay is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    2,429
    2,353
    Nov 2, 2015
    United States
    Moscow, Russia
    Oooh nice. I'm gonna take a look at the source code. Really nice.

    — Posts automatically merged - Please don't double post! —

    It'd be nice if you could fork Luma3DS to include this in Rosalina. That way you wouldn't have to exit the game and access an app.
     
  10. Keizel

    Keizel GBAtemp Fan

    Member
    366
    111
    Jun 28, 2015
    I saw now that GodMode9 have this option too; if you press "Home" and then "more..." in GodMode9, you can change RTC Clock, but I want know if this option is the same that could do with RTChanger or it is diferent @Storm Eagle
     
    AyanamiRei likes this.
  11. Scourge1024

    Scourge1024 Newbie

    Newcomer
    4
    0
    Dec 12, 2009
    Canada
    I see that RTChanger only lets us set the raw RTC. Are you able to add a feature to set the "offset" RTC as well? I have multiple 3DSes and moving a Pokemon cartridge from one to another makes it detect a time change. I'd like to be able to make these offsets the same between systems.