Skip to content

Commit

Permalink
v2.9.0 (#58)
Browse files Browse the repository at this point in the history
* Goldleaf v0.6

* Further UI improvements for Goldleaf v0.6

* Update fluffy.pyw

* Further fixes.

* Somewhat stable..........

* Fixes

* More bug fixes and stability + security

* File rename fix.

* Window resizing is automated.

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Proper scaling for Goldleaf logo.

* Update README.md

* Update README.md

* Update requirements.txt

* Update requirements.txt

* Better USB, less error messages.

* MacOS, FreeBSD, OpenBSD Fix

* MacOS Fix Further.

* Change wording, some more fixes.

* Daemon threads yeeboiiiiii

* Object Orientated 101

* I forgot what I changed but its a lot.

* Language additions and stuff.

* Logging fix.

* Scaling Fix.

* More Object Oriented stuff, goldleaf filewrite fix.

* Donation information added.

* Translation fixes. Yes I used google translate.

* Add files via upload

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Additional logging, slight bug fix.

* No longer require psutil.

* Update README.md

* Some bug fixes.

* I could have used bool with None but whatever.

* Credit list shuffle.

* Proper task canceling.

* Update README.md

* Code improvements, better logging, dark mode.

* Update requirements.txt

* usb.core.NoBackendError Fix.

* Update README.md

* Generate LibUSB.dll Automatically on Windows.

* Minor correction to previous commit.

* Update fluffy.pyw

* Fluffy Now Fluffier

* Update fluffy.pyw

* Update README.md

* Blurry Icon Fix.

* Update fluffy.pyw

* Add files via upload

* Update README.md

* Update README.md

* Fix About Icon

* Update fluffy.pyw

* Update README.md

* Delete requirements.txt

* Delete setup.bat

* Delete run.bat

* Fix bug that probably only affects me.

* Update fluffy.pyw

* Update fluffy.pyw

* Update README.md

* Updated Light Logo.

* Update README.md

* Update fluffy.pyw

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Copyright changes

* Update README.md

* Delete screenshot-fluffy-v240c.png

* Delete ui290.png

* Delete screenshotv250b.png

* Delete may_inlay.png

* Add files via upload

* Removing the ugly

* Update README_CH.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update fluffy.pyw
  • Loading branch information
fourminute authored May 26, 2019
1 parent 7e337eb commit e0df786
Show file tree
Hide file tree
Showing 7 changed files with 1,065 additions and 674 deletions.
134 changes: 85 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Fluffy
![intro](https://github.com/fourminute/Fluffy/blob/master/misc/fluffy-intro.png?raw=true)
![intro](https://github.com/fourminute/Fluffy/blob/master/misc/may_intro_v4.png?raw=true)
<b><a href="https://github.com/fourminute/Fluffy/blob/master/README_CH.md">查看中文使用说明,请点击这里!</a></b>

#### All donations are appreciated! Thank you if you decide to donate!
Expand All @@ -9,68 +9,111 @@

![License](https://img.shields.io/badge/License-GPLv3-blue.svg) [![Releases](https://img.shields.io/github/downloads/fourminute/fluffy/total.svg)]() [![LatestVer](https://img.shields.io/github/release-pre/fourminute/fluffy.svg)]()

### <b><a href="https://github.com/fourminute/Fluffy/releases/latest">Latest Release v2.8.0</a></b>
### <b><a href="https://github.com/fourminute/Fluffy/releases/latest">Latest Release v2.9.0</a></b>
### <b><a href="https://github.com/fourminute/Fluffy/blob/master/Tinfoil.nro">Download Recommended TinFoil.nro</a></b>


## Features
* Support for <b>XorTroll/Goldleaf</b> and <b>Adubbz/Tinfoil</b>
* Support for languages: <b>English, Chinese, Vietnamese, Spanish, French, Brazilian Portuguese, Turkish, Italian, German, and Bahasa Indonesia</b>!
* Cross platform, Fluffy works natively on <b>Windows</b>, <b>Linux</b>, and <b>MacOS</b>!
* Cross platform: Fluffy works natively on <b>Windows</b>, <b>Linux</b>, and <b>MacOS</b>!
* USB and Network: Display live transfer rate in MB/s with progress percentage.
* USB and Network: Display current NSP being installed and numbered queue.
* USB and Network: Batch NSP install support with individual selection.
* USB and Network: Consecutive installs without restart.
* USB and Network: Exception/Error handling, no restart required when an installation fails.
* USB and Network: Ability to abort an installation in queue.
* Network: Spoof file URL's to fix lengthy file name bug in Tinfoil's code.
* Network: Randomized port selection.
* Goldleaf: Display name of current NCA being installed and numbered queue.
* Goldleaf: Goldleaf v0.5 Compatible.
* USB: Selectable transfer rates between "Normal Mode" and "Safe Mode".
* Tinfoil Network: Spoof file URL's to fix lengthy file name bug in Tinfoil's code.
* Tinfoil Network: Randomized port selection.
* Tinfoil Network: By default fall-back to Network Mode in the event USB mode can't be used(e.g. missing libraries).
* Goldleaf: Display current file being accessed.
* Goldleaf: Goldleaf v0.6 compatible with all of the file handling features.
* Goldleaf: Default protections are in place to safe-guard users from a potentially compromised Goldleaf file.
* Default: File operations such as file creation, deletion, renaming will result in a user-prompt(yes or no).
* Default: Read-only access for all files.
* Default: Read/write to non-NSP files are restricted.
* All of these security restrictions are changeable in fluffy.conf.
* Tinfoil USB: Selectable transfer rates between "Normal Mode" and "Safe Mode" for those with aging hardware(e.g. out of spec USB ports).
* USB: Switch connected indicator.
* Smart User-Interface, switches between Tkinter and PyQt depending on modules installed. (<b>v1.4.1 and below only</b>)
* Support for UI scaling on 4K, 1080P, and 720P displays.
* Switch Firmware 5.x USB Fix (Thanks to <a href="https://github.com/satelliteseeker">satelliteseeker</a> for finding this fix, choose 'Safe Mode')
* Tasty pink donut.
* User-Interface: Light Mode and Dark Mode.
* General: Auto saves to config Switch IP Address, Light/Dark Mode Settings, and Language Selection.
* General Support for UI scaling up to 4K resolution.
* Tinfoil USB: Switch Firmware 5.x USB Fix (Thanks to <a href="https://github.com/satelliteseeker">satelliteseeker</a> for finding this fix, choose 'Safe Mode')
* Cute fluffy penguin.

# Screenshot

<img src="https://github.com/fourminute/Fluffy/blob/master/misc/fluffyui3.png?raw=true" width="650"/>
<img src="https://github.com/fourminute/Fluffy/blob/master/misc/uifluffy-sq3.png?raw=true" width="800"/>

# Multi-Language Screenshot
![screenshot](https://github.com/fourminute/Fluffy/blob/master/misc/fluffyui2.png?raw=true)
# [Windows] Instructions For Use (Fluffy.exe)

# Instructions For Use

## Install TinFoil on your Switch
## 1/3) Install TinFoil or Goldleaf on your Switch
* <b>These steps apply for all custom firmware. This includes but not limited to: Kosmos, ReINX, SXOS, etc.</b>
* Download <a href="https://github.com/fourminute/Fluffy/blob/master/Tinfoil.nro">Recommended TinFoil</a>
* Copy and paste "<b>TinFoil.nro</b>" to a folder named "Switch"(create it if necessary) on the root of your SD card.
* <i>or</i> Download <a href="https://github.com/XorTroll/Goldleaf/releases">Goldleaf</a> by XorTroll.

## Windows instructions
### 2/3) Install and Setup Zadig Driver
* Download Zadig: https://zadig.akeo.ie or [github mirror](https://github.com/fourminute/Fluffy/blob/master/windows/zadig-2.4.exe) in case the website goes down.
* With your Switch plugged in to your PC using a USB-C cable, open TinFoil(on your Switch). This will ensure your Switch is visible.
* Open Zadig > Options > List All Devices.
* In the scroll box above the button "Install Driver", tap the arrow until arriving at "libusbK".
* Click "Install Driver"
* Done!

### 3/3) Run Fluffy and Install NSP(s)! (Tinfoil)
* Connect your Switch and your PC with a USB Type-C cable.
* Run Fluffy.exe.
* On your Switch open Tinfoil > Title Management > USB Install NSP
* On Fluffy click "NSP Selection" > Select your NSP(s)
* On Fluffy's Tinfoil USB screen click "Begin Transfer".

### 3/3) Run Fluffy and Install NSP(s)! (Goldleaf)
* Run Fluffy.exe.
* On your Switch open Goldleaf > Explore Content
* On Fluffy's Goldleaf screen click "Begin Transfer".
* On your Switch select "PC Drive (via USB)"
* Navigate to and install your NSP(s).

### 1/3) Install and Setup Zadig Driver
# [Windows] Instructions For Use (Fluffy.pyw)

## 1/5) Install TinFoil or Goldleaf on your Switch
* <b>These steps apply for all custom firmware. This includes but not limited to: Kosmos, ReINX, SXOS, etc.</b>
* Download <a href="https://github.com/fourminute/Fluffy/blob/master/Tinfoil.nro">Recommended TinFoil</a>
* Copy and paste "<b>TinFoil.nro</b>" to a folder named "Switch"(create it if necessary) on the root of your SD card.
* <i>or</i> Download <a href="https://github.com/XorTroll/Goldleaf/releases">Goldleaf</a> by XorTroll.

### 2/5) Install and Setup Zadig Driver
* Download Zadig: https://zadig.akeo.ie or [github mirror](https://github.com/fourminute/Fluffy/blob/master/windows/zadig-2.4.exe) in case the website goes down.
* With your Switch plugged in to your PC using a USB-C cable, open TinFoil(on your Switch). This will ensure your Switch is visible.
* Open Zadig > Options > List All Devices.
* In the scroll box above the button "Install Driver", tap the arrow until arriving at "libusbK".
* Click "Install Driver"
* Done!

### 2/3) Install Python
### 3/5) Install Python
* Download and Install Python 3 from [Python Website](https://www.python.org/downloads/). Select the "PATH" option during install. <b>Ensure no previous version of Python is installed and do not use the 64-bit version of Python 3. This may cause an error "PyUSB not found".</b> Also be sure to include Tkinter with your installation(it should be a default option).

### 3/3) Install Python Dependencies
### 4/5) Install Python Dependencies
* Open Command-line/CMD (Start, search "CMD") and run the following:
```
pip3 install pyusb pyqt5 libusb libusb1 qdarkstyle configparser
```

### Additional Windows Instructions
Some users may receive the error "USB.Core No Backend Available". If you do, download this .DLL file [libusb.dll](https://github.com/fourminute/Fluffy/blob/master/windows/libusb-1.0.dll) and place it in the same directory as Fluffy.pyw.
### 5/5) Run Fluffy and Install NSP(s)! (Tinfoil)
* Connect your Switch and PC with a USB Type-C cable
* Run Fluffy.pyw
* On your Switch open Tinfoil > Title Management > USB Install NSP
* On Fluffy click "NSP Selection" > Select your NSP(s)
* On Fluffy's Tinfoil USB screen click "Begin Transfer"

If you still receive this error, you can try installing LibUSB: [libusb installer](https://github.com/fourminute/Fluffy/blob/master/windows/libusb-win32-devel-filter-1.2.6.0.exe).
### 5/5) Run Fluffy and Install NSP(s)! (Goldleaf)
* Connect your Switch and PC with a USB Type-C cable
* Run Fluffy.pyw
* On your Switch open Goldleaf > Explore Content
* On Fluffy's Goldleaf screen click "Begin Transfer"
* On your Switch select "PC Drive (via USB)"
* Navigate to and install your NSP(s)

## Linux instructions

Expand Down Expand Up @@ -127,24 +170,16 @@ cd /path/to/files/
sudo ./install.sh
```
## MacOS instructions
<sub>Special thanks to <a href="https://github.com/GuillaumeJulien">GuillaumeJulien</a> for these instructions.</sup>
```
brew install tcl-tk
brew reinstall python3
pip3 install pyusb pyqt5 libusb libusb1 qdarkstyle configparser
python3 ./fluffy.pyw
```
<sub>Special thanks to <a href="https://github.com/GuillaumeJulien">GuillaumeJulien</a> for these instructions.</sup>

<sub><i>For more info on brew, head to https://brew.sh/</i></sup>

## How-To-Use
Complete beginner? No problem.
* <b>First follow the installation steps above. Done? Let's continue!</b>
* On your Switch running Custom Firmware(for example, ReINX or Atmosphere) open TinFoil > Title Management > USB Install NSP.
* Start Fluffy.pyw.
* Click "NSP Selection" and select as many NSPs as you want to install.
* Connect your Switch to your computer.
* If "Switch Detected!" is visible. Click "Begin Transfer".
* On your Switch, follow the on-screen instructions.

## Troubleshooting Tips
<b>(Linux)Fluffy.pyw still shows up as an unknown file?</b>
Expand All @@ -158,26 +193,21 @@ python3 fluffy.pyw

Answer: This can be caused by 1-2 things.

1) Not all USB type C cables will work with the Switch. If your Switch connects then frequently disconnects, then reconnects again, etc. Or if you receive this error, it's highly likely you will need a newer USB type C cable. Yes, there are differences despite being visually similar.
1) Download <a href="https://github.com/fourminute/Fluffy/raw/master/windows/libusb-1.0.dll">libusb-1.0.dll</a> and place it in the same folder as Fluffy. If that doesn't work, install LibUSB using Zadig or <a href="https://github.com/fourminute/Fluffy/raw/master/windows/libusb-win32-devel-filter-1.2.6.0.exe">libusb-win32-devel-filter Installer</a>.

2) LibUSB wasn't found. Install it with "pip3 install libusb" and "pip3 install libusb1". Also follow the above steps labeled "Additional Windows Instructions".
2) Not all USB Type-C cables will work with the Switch. If your Switch connects then frequently disconnects, then reconnects again, etc. Or if you receive this error, it's highly likely you will need a newer USB Type-C cable. Yes, there are differences despite being visually similar.

<b>Why do I keep getting the error: "No module named 'PyQt5'"?</b>

Python by default *wants* to run in 64-bit mode, however, when this happens Fluffy won't work. As you may already know, Fluffy does not, will not, and cannot run in 64-bit Python. To bypass this behavior you can alternative open Fluffy.pyw in IDLE(32-bit mode) and click Run > Run Module.

Ensure "PATH" is selected when installing Python. If that still doesn't solve it, try running Fluffy using IDLE(32-bit mode).

<b>Why does network install hang/freeze?</b>

Answer: This is normal. Network install can sometimes take a long time to work depending on your nework, how many devices are using your WiFi, your WiFi speed, etc. Give it some time and it will initiate the transfer. It may take several minutes.

<b>PyUSB Not Found and I've followed all the steps!</b>

Answer: **Fluffy only works with Python 3 32-bit version.** Also ensure that no previous versions of Python are installed. If necessary, uninstall them. For example, if you have Python 3.6.6 and Python 3.7.2 installed at the same time Fluffy may throw this error.
Answer: This is normal. Network install can sometimes hang and take a long time to work depending on your nework, how many devices are using your WiFi, your WiFi speed, etc. Give it some time and it will initiate the transfer. It may take several minutes. Fluffy may seem frozen, but in most instances a little patience is advisable.

<b>What kind of cable does the Switch use?</b>

Answer: USB type C cable. Though, not all USB type C cables are the same. Some will not be compatible with the Switch.
Answer: USB Type-C cable. Though, not all USB Type-C cables are the same. Some will not be compatible with the Switch.

<b>Does Fluffy work on MacOS and Linux?</b>

Expand All @@ -189,7 +219,7 @@ Answer: All of them will work the same. That is up to you.

<b>Why does my install keep hanging and/or crashing?</b>

Answer: Switch Transfer Mode to "Safe Mode".
Answer: Switch Transfer Mode to "Safe Mode". If you're installing via Tinfoil Network, it is normal for the install to sometimes hang.

<b>Why do I have unsufficient permission error (usb)(linux)? (credit: YoyPa)</b>

Expand All @@ -206,13 +236,19 @@ I would like to extend my thanks to the people below for helping make Fluffy wha

* <a href="https://github.com/wendyliga">wendyliga</a> for their Bahasa Indonesia translation.
* <a href="https://github.com/TheLastZombie">TheLastZombie</a> for their German translation.
* <a href="https://github.com/YoyPa">YoyPa</a> for their many and various code contributions, creating and maintaining the Fluffy Arch Linux repository, as well as their Spanish and French translations.
* <a href="https://github.com/friedkeenan">friedkeenan</a> for their Goldleaf v0.5 compatibility fixes.
* <a href="https://github.com/YoyPa">YoyPa</a> for their many and various code contributions, creating and maintaining the <a href="https://aur.archlinux.org/packages/fluffy-switch/">fluffy-switch</a> AUR package, as well as their Spanish and French translations.
* LoOkYe for testing and debugging Fluffy in its various stages of development on MacOS.
* <a href="https://github.com/friedkeenan">friedkeenan</a> for their tremendous help on Goldleaf v0.6 compatibility.
* <a href="https://github.com/TorpedoXL">TorpedoXL</a> for their Turkish translation.
* <a href="https://github.com/DavidOliM">DavidOliM</a> for their Brazilian Portuguese translation.
* <a href="https://github.com/danypava">danypava</a> for their Italian translation.
* <a href="https://github.com/Sev73n">Sev73n</a> for their Chinese(Mandarin) translation as well as translating the entire README.

To anyone else that I missed, thank you.

<i>Disclaimer: The "Pink Donut" design was designed by fourminute exclusively for Fluffy and infringes on no copyright. The font used in "intro.png" is also 100% royalty free.</i>
<i>"Cute Penguin" was designed by fourminute. The font
used in the "Fluffy" logo is 100% royalty free.

Fluffy(this program) and the "Cute Penguin"
design is Copyright (c) 2019 fourminute
(https://github.com/fourminute)</i>
10 changes: 4 additions & 6 deletions README_CH.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Fluffy 安装器
![intro](https://github.com/fourminute/Fluffy/blob/master/misc/fluffy-intro.png?raw=true)
![intro](https://github.com/fourminute/Fluffy/blob/master/misc/may_intro_v4.png?raw=true)

### <b><a href="https://github.com/fourminute/Fluffy/releases/latest">下载最新版 Fluffy 安装器</a></b>
### <b><a href="https://github.com/fourminute/Fluffy/blob/master/Tinfoil.nro">下载推荐版本的 TinFoil.nro</a></b>
Expand All @@ -10,18 +10,16 @@
* 支持USB和网络安装,同时显示传输速率(MB/s)和百分比进程。
* USB和网络安装时,实时显示当前安装的NSP游戏文件。
* 支持Goldleaf(金叶安装器):显示当前安装的NSP游戏文件。
* 支持Goldleaf(金叶安装器):显示当前NCA游戏队列。
* 拥有两种传输模式“正常”和“安全”
* 智能生成用户界面,根据安装的模块不同而切换 Tkinter 或者 PyQt(<b>仅支持v1.4.1以上</b>)
* 支持高清显示 4K, 1080P, 和 720P 分辨率。
* 显示当前已经安装的NSP游戏文件。
* 单据NSP游戏文件选择。 (感谢: <b>Shadowhand</b>, thanks!).
* 单据NSP游戏文件选择。
* 尝尝甜甜圈(图标)。
* 显示Switch连接状态。
* 5.x USB 修复 (感谢: <a href="https://github.com/satelliteseeker">satelliteseeker</a>)
* 5.x USB 修复

# 屏幕截图
![screenshot](https://github.com/fourminute/Fluffy/blob/master/misc/screenshotv250b.png?raw=true)
<img src="https://github.com/fourminute/Fluffy/blob/master/misc/uifluffy-sq3.png?raw=true" width="800"/>


# 使用说明
Expand Down
Loading

0 comments on commit e0df786

Please sign in to comment.