Homebrew RELEASE Kip Select a WIP Kip Manager for Atmosphere Fusée

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
Kip Select
screenshot-1.jpg

This is a WIP toolkit for the switch cfw Atmosphere, it started out as a simple KIP manager but has become much more over time. This toolkit is intended for use with Atmosphere Fusee, it will still somewhat work other packs like Kosmos but stuff may be broken.

Features
  • Enabling And Disabling Of KIPS
    • KIPS, or Kernel Inline Processes, are a commonly used homebrew format. This tool allows them to be enabled and disabled. A reboot is required after a KIP is toggled for it to load/unload. This fetaure requires Atmosphere to be launched via Fusee as it dirrectly manipulates the KIPS within /atmosphere/kips/ which are loaded only by the Fusee launcher. If you are useing Kosmos, use Hekate to manage your KIPS instead.
  • Configureing BCT.ini
    • BCT.ini is a configuration file for Atmosphere. This tool allows modification of all true/false values in this file. It is worth noting however that in order for nogc toggleing to work you must first manually uncomment this line in BCT.ini. As of Atmosphere 0.8.2 nogc patches should enable themselves automatically if the right combiation of fuses is detected. There is also a huge risk of people changing this value accidentally and then breaking there gamecard slot, so for now this is going to remain a bit convoluted.
  • Managing LayeredFS Titles
    • This homebrew can enable or disable layeredFS titles. Due to the way Atmosphere works Enableing or disabling a layeredFS title only requires that title to be restarted to take effect. Unless you are modding a system title, for themes for instance, a reboot should not be needed.
  • Trigger A Console Restart
    • You can also trigger a console restart from within this tool. This is a normal restart, it dose not reboot the console into rcm. If you are useing exfat please avoid this feature, in my testing it caused SD card corruption 100% of the time.
Planned Features
There are quite a few things I would still like to add to this tool, below is a short list of the ones that are planned.

  • Get Further KIP Information
    • I would like the tool to display more about a instaled KIP than just its name. The current plan is to use file md5's to help detect what the KIP is.
  • Display Titlenames For LFS Items
    • This can be done useing NSWReleases, some basic code for it is already present in the codebase.
  • Add A Proper Options Menu
Installing
I plan on putting this tool on the switch appstore, however if you would like to you can still download it from GitHub or even build it yourself. The nro has no special requirements about where it gets placed, I would still recommend your put it in /switch/ though.

Building
This homebrew is a standered libnx project, make sure you have devkitpro installed correctly and simply run make from the project root. There are some dependencies including, libxml2, libcurl, libbzip, libpng, and libfreetype. I personally write this project using VsCode and thus there is a CppProperties.json file already configured for proper syntax highlighting in the project root, this configuration should work with almost any other homebrew project although depending on where your devkitpro install is you may need to change some values around.

Credits
  • A huge thank you to MatinatorX for all of the graphics assets used by this tool. He had a hand in prety much all of there creation and without his work this tool would probably look like it had been made in ms paint.
  • libnx

Download


The original version of this post is in the spoiler below:
So awhile ago while I was messing around with sys-netcheat I ran into a problem. I prefer use atmosphere fusée for my cfw, as it is much simpler to update, but it has no easy way of enabling or disabling a kip on boot. So every time I wanted to use sys-netcheat or noexs I had to manually move them into /atmosphere/kips/. So like every normal person, instead of simply putting up with with a minor inconvenience I spent way more time than I ever would have lost in the first place making a program to do it for me.
Thus I present Kip Select for atmosphere fusée!
ExampleScreenshot.jpg

Usage:
This homebrew enables and disables kips by moving them between the /atmosphere/kips/ folder and an added folder called /atmosphere/kips_disabled/. Since fusée only checks the kips folder on boot, anything in kips_disabled gets ignored. The homebrew automatically creates the required folders (/atmosphere/kips/ & /atmosphere/kips_disabled/) if they are missing, all you need to do is make sure your kips are in one of the two folders before launching. The interface is pretty self explanatory, use the d-pad to select the kip you want and the A button to toggle the kips status, a reboot is then required for the kip to be loaded/unloaded. This tool also now supports basic BCT.ini editing, both debugmode and debugmode_user can now be toggled from within the tool (Requires atmosphere 0.8.1+).

Notes:
  • The homebrew supports a maximum of 32 kip files, using more will cause a error and has on a few occasions caused a console hard crash for me. This should not be much of a problem, i don't even think there are even 32 useful kip files available as of now.
  • Try and keep your kip names sensible, the homebrew should pick up on any file name but naming your kip with emoji's certainly isn't going to help.
  • If the homebrew detects a kip with the same name in both /atmosphere/kips/ and /atmosphere/kips_disabled/ it will throw a rather cryptic error. On rare occasions I have had kips copy instead of move from one folder to the other, i'm pretty sure I have fixed this issue but if you run into a error that says "File Move Failed", check the folders first.
  • I'm not sure how safe exFat is with this program, it should be fine as the only write operation called is rename() but my personal experiences with exFat suggest it corrupts simply when you look at it the wrong way so your millage may very.
    • As of a recent update this tool now supports rebooting the console with a button press, doing this with exFat WILL cause corruption, please if you are still using exFat I would highly recommend making a backup of your sd card to your PC and reformatting as fat32, you don't even have to reinstall as horizon splits the encrypted nca's on the sd to 4gb chunks regardless of the file system that is being used.

Download:
  • (I typically write code with java (Android Apps) and NOT C++. My code probably breaks any and all conventions in existence, sorry about that)
Oh and one final note: use this software at your own risk, I am not responsible in any way if your switch somehow spontaneously combusts.
 
Last edited by Sciguy429,

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,436
Trophies
2
Age
43
Location
Engine room, learning
XP
14,579
Country
France
you need 10 post to be able to post URLs.
if you want, I can add the url for you until you reach 10 posts on the forum, but you won't be able to edit your message.
you can post the link without http:// in front of the url, or add spaces, or post in a [ code ] tag, and it shouldn't try to create the link.

your tool is eligible to the current homebrew bounty category, if you want to enter you can find the thread on the website portal.

edit:
Links if needed.
Download: https://github.com/Sciguy429/KipSelect/releases
Source Code (GPL v3.0): https://github.com/Sciguy429/KipSelect
 
Last edited by Cyan,

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
you need 10 post to be able to post URLs.
if you want, I can add the url for you until you reach 10 posts on the forum, but you won't be able to edit your message.
you can post the link without http in front of the url, or add spaces, or post in a [ code ] tag, and it shouldn't try to create the link.

your tool is eligible to the current homebrew bounty category, if you want to enter you can find the thread on the website portal.


Thanks for the clarification on the links, I suppose it makes sense to block them for newcomers this site probably attracts quite a few spammers.


replace * with /
and $ with a .
GitHub source: github$com*Sciguy429*KipSelect
GitHub Releases: github$com*Sciguy429*KipSelect*releases

There are the links if you wouldn't mind replacing them
 
  • Like
Reactions: bipi

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
Just a quick update...

I just put up a new release on GitHub that supports basic BCT.ini editing. It allows for the configuration of the debugmode and debugmode_user setting introduced in atmosphere 0.8.1. Setting these to 1 is necessary to use tools like sys-netcheat or noexs. The tool will still work with switch on a older atmosphere version but the BCT.ini options will be grayed out.

(No link update is needed, the release is on the GitHub)
 
  • Like
Reactions: hippy dave

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,436
Trophies
2
Age
43
Location
Engine room, learning
XP
14,579
Country
France
I try to maintain a list, but it's probably missing a few because some of the projects are not always posted on gbatemp.
for example, Ad hoc disable is private (I don't have a discord account) and I don't know what it really does, nor if it's the same as (or a rename of) Ldn_mitm

disabling ad hoc is not the same as converting ad hoc to access point nor converting WAN to LAN. either the name is not chosen properly, either I don't understand the purpose of disabling ad hoc.
does it allow non LAN game to work in LAN ? (it's what Sciguy said on reddit)
does it disable local play (ad hoc) and force games to play over access point (router)?
which game are concerned, which ones are working?


https://wiki.gbatemp.net/wiki/List_of_Switch_homebrew_applications
help me make a better and more complete list.
current temporary list at the top, proper list will be at the bottom.
 
Last edited by Cyan,
  • Like
Reactions: intellettuanale

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
Ad hoc disable is private (I don't have a discord account) and I don't know what it really does, nor if it's the same as (or a rename of) Ldn_mitm

The kip in question is just a rename of the one available on the Lan play discord, it had a rather confusing name so I just renamed it to adhoc-disable.kip as that's pretty much what it dose. It prevents a game from disconnecting from wifi and trying to use adhoc mode, that's all I know about it. As far as I know its not on gbatemp anywhere, though I'm not really sure why as it's incredibly useful for any game without a proper lan mode.
 
  • Like
Reactions: Cyan

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,436
Trophies
2
Age
43
Location
Engine room, learning
XP
14,579
Country
France
thank you, that make more sense :)
I didn't know it was a problem while playing using the LAN option. I thought games were designed to work and stay properly connected on LAN if the option is officially available in them.

both this one and ldn are not available on gbatemp. ldn is used to convert diablo3 wan to lan to allow playing on LAN even if the game doesn't have any official LAN option. I think it's developed specifically/only for Diablo3.
it would be great if all games were compatible :)
 
Last edited by Cyan,
  • Like
Reactions: Sciguy429

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
thank you, that make more sense :)
I didn't know it was a problem while playing using the LAN option. I thought games were designed to work and stay properly connected on LAN if the option is officially available in them.

both this one and ldn are not available on gbatemp. ldn is used to convert diablo3 wan to lan to allow playing on LAN even if the game doesn't have any official LAN option. I think it's developed specifically/only for Diablo3.
it would be great if all games were compatible :)


As far as I know this kip was originally made for SSU as it dosent have a lan mode but I've tested it on a few other games and it has worked just fine. Mario Kart 8 for instance works with it as well, though it's not nessairy as it dose have a built in lan mode.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,436
Trophies
2
Age
43
Location
Engine room, learning
XP
14,579
Country
France
Then I misunderstood what you said.
I thought it was useful only for games with the lan option. so the module allow non lan game to work in lan? much like ldn then, but for more games?
sorry to talk about other kips functionalities in your thread.
 

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
Then I misunderstood what you said.
I thought it was useful only for games with the lan option. so the module allow non lan game to work in lan? much like ldn then, but for more games?
sorry to talk about other kips functionalities in your thread.

I honestly don't know, pulled the kip off of discord awhile ago and I've completely forgotten the context at this point. I know it was from the lan-play discord. I know it had SSU in the tittle and was meant for use with that game but I don't remember what else was said. For all I know it could be a beta build of ldn I'm not sure.
 

Sciguy429

Member
OP
Newcomer
Joined
Dec 3, 2018
Messages
18
Trophies
0
Age
20
XP
201
Country
United States
This is for disabling or enabling kips from Homebrew launcher application intended for the next reboot?

You still need to reboot your switch, the feature your mentioning would have to be implemented at the system level with atmosphere. All this app dose is control wether or not they are loaded by fusee at boot.
 
General chit-chat
Help Users
    Julie_Pilgrim @ Julie_Pilgrim: https://www.youtube.com/watch?v=uJihqk7XIXY bruh that producer tag caught me so off-guard