Freebird - Switch Clock Speed Control Sysmodule

This is a sysmodule/service for Atmosphere and ReiNX that uses IPC's to communicate with its companion NRO, Freeset. This allows you to use any clock speed I've found on the Switch. The only restriction I have put in place is that you must be plugged into an official charger or docked if you are crazy enough to want to use the highest two GPU clock speeds. I am leaving it completely up to you to choose what clock speeds you want to use. Be careful.

2019070911351400-DB1426D1DFD034027CECDE9C2DD914B8.jpg

Intructions:
  • Atmosphere: Copy over the contents of the zip and reboot your system to load the module. Open Freeset and use that to send over the clock speeds you want.
  • ReiNX: Create a folder in your ReiNX folder named titles if there isn't one. Copy the titles folder from the atmosphere folder to ReiNX/titles. Open "010000000000C235" and move the boot2.flag to the same directory as the exefs.nsp file. Reboot and freebird should now be working on ReiNX.

X turns freebird's clock setting feature on and off. Remember to turn this off before putting your system to sleep. I'm working on it™, but it will cause and require you to fully shutdown and restart your Switch if accidentally left on. When on, freebird will check and set the clocks if they don't match what you choose. When turned off, your clock speeds will be reset and no longer forced.

A sends over the clock speeds shown/chosen from the menu. Up and down change the currently selected option, left and right change speed.

If I missed anything, don't be afraid to ask. I'm open to suggestions too.

I'd like to thank @taggen86, @nabelo, @mathew77, @vanraz86, and @Kirby567fan for taking the chances and testing it. Thanks guys!

Download link: https://gbatemp.net/download/freebird.35566/
 
Last edited by JK_,

mrcroket

Well-Known Member
Member
Joined
Mar 14, 2018
Messages
176
Trophies
0
Age
33
XP
1,940
Country
Spain
I hope freebird still alive! Just need a crash fix on atmosphere when cpu oc and a better fix for sleep crash to be perfect to me! :)
 
  • Like
Reactions: ZeroFX

JK_

Well-Known Member
OP
Member
Joined
Sep 4, 2015
Messages
687
Trophies
1
XP
2,268
Country
United States
Sorry guys. I don't like posting about or hyping things up until I'm sure they're actually gonna make it out. So, this is far enough along now that I feel comfortable posting it:
2019022423592100-DB1426D1DFD034027CECDE9C2DD914B8.jpg
  • There are 5 separate power profiles.
  • Global takes priority over all of them. This is for people that don't want to mess with separate ones for each power mode.
  • *I want to make setting a speed to 0 allow the system to control it.
  • Freebird can now export its config to a file to save it for reboots.
  • Keep on Wake is an option now.
  • *I want to add user definable hot keys to shut freebird on and off whenever.
Once this is done, I might take a short break from this project. The reason is that while going through Switchbrew to find/add the apmGetPerformanceMode command to freebird, I found some things I'd like to add to other projects. I also found one that might make something I've been hoarding for a while usable to people other than myself.

Per-title config might come later. The way I was going to handle it was to have a directory with text files named [title_id].cfg. I'd convert the [title_id] to a 64 bit uint and use that to keep track of the title being launched. Once a title was launched, I was going to have the file read to the same variables used to control these profiles. So, having a profile for a title would override these settings, even shut off the global config.

Like I said before though, I appreciate patience. I'm also extremely picky. This took a while because I had to completely trash and rewrite Freebird's IPCs. I didn't want 5 different commands for each power mode/clock. I wanted one that took more input and used that to set whatever needed to be set.

Take it easy, everyone.
 

JK_

Well-Known Member
OP
Member
Joined
Sep 4, 2015
Messages
687
Trophies
1
XP
2,268
Country
United States
gasp! It's so pretty! Take all the time you want, why people ask is because they care for the project and it's nothing negative at all.
Thanks. I just hope I can get it as smooth as the Switch's menus in the future. I'd consider that polishing work, though. I repurposed the menu code from 2015 pre-public JKSM since it was all C and not C++. I'm glad I kept it now.
 

ZeroFX

why?
Member
Joined
Jun 18, 2018
Messages
1,098
Trophies
1
Location
napaJ
XP
2,974
Country
Japan
Thanks. I just hope I can get it as smooth as the Switch's menus in the future. I'd consider that polishing work, though. I repurposed the menu code from 2015 pre-public JKSM since it was all C and not C++. I'm glad I kept it now.
Yes, take your time :). This is looking awesome.
 

Adran_Marit

Walküre's Hacker
Member
Joined
Oct 3, 2015
Messages
3,781
Trophies
1
Location
42*South
XP
4,548
Country
Australia
Sorry guys. I don't like posting about or hyping things up until I'm sure they're actually gonna make it out. So, this is far enough along now that I feel comfortable posting it:
  • There are 5 separate power profiles.
  • Global takes priority over all of them. This is for people that don't want to mess with separate ones for each power mode.
  • *I want to make setting a speed to 0 allow the system to control it.
  • Freebird can now export its config to a file to save it for reboots.
  • Keep on Wake is an option now.
  • *I want to add user definable hot keys to shut freebird on and off whenever.
Once this is done, I might take a short break from this project. The reason is that while going through Switchbrew to find/add the apmGetPerformanceMode command to freebird, I found some things I'd like to add to other projects. I also found one that might make something I've been hoarding for a while usable to people other than myself.

Per-title config might come later. The way I was going to handle it was to have a directory with text files named [title_id].cfg. I'd convert the [title_id] to a 64 bit uint and use that to keep track of the title being launched. Once a title was launched, I was going to have the file read to the same variables used to control these profiles. So, having a profile for a title would override these settings, even shut off the global config.

Like I said before though, I appreciate patience. I'm also extremely picky. This took a while because I had to completely trash and rewrite Freebird's IPCs. I didn't want 5 different commands for each power mode/clock. I wanted one that took more input and used that to set whatever needed to be set.

Take it easy, everyone.

Looks great man, keep it up :)
 

Kernelgm

Member
Newcomer
Joined
Feb 27, 2019
Messages
9
Trophies
0
Age
29
XP
89
Country
Brazil
Sorry guys. I don't like posting about or hyping things up until I'm sure they're actually gonna make it out. So, this is far enough along now that I feel comfortable posting it:
  • There are 5 separate power profiles.
  • Global takes priority over all of them. This is for people that don't want to mess with separate ones for each power mode.
  • *I want to make setting a speed to 0 allow the system to control it.
  • Freebird can now export its config to a file to save it for reboots.
  • Keep on Wake is an option now.
  • *I want to add user definable hot keys to shut freebird on and off whenever.
Once this is done, I might take a short break from this project. The reason is that while going through Switchbrew to find/add the apmGetPerformanceMode command to freebird, I found some things I'd like to add to other projects. I also found one that might make something I've been hoarding for a while usable to people other than myself.

Per-title config might come later. The way I was going to handle it was to have a directory with text files named [title_id].cfg. I'd convert the [title_id] to a 64 bit uint and use that to keep track of the title being launched. Once a title was launched, I was going to have the file read to the same variables used to control these profiles. So, having a profile for a title would override these settings, even shut off the global config.

Like I said before though, I appreciate patience. I'm also extremely picky. This took a while because I had to completely trash and rewrite Freebird's IPCs. I didn't want 5 different commands for each power mode/clock. I wanted one that took more input and used that to set whatever needed to be set.

Take it easy, everyone.

Hey Bro, you can make this for SXOS?
Thx. (:
 

Kernelgm

Member
Newcomer
Joined
Feb 27, 2019
Messages
9
Trophies
0
Age
29
XP
89
Country
Brazil
Impossible. SX OS does not allow for custom kips so the only hope would be for TX to steal incorporate this into their CFW. Or you can just use one of the free CFW.

I like play with my external HD. All my games are inside of the external HD. /:
But.. ok.
I hope the team xecuter "steal" this. (:
Thx for the attention .
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: It's mostly the ones that are just pictures and no instructions at all