Anemone3DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox 3DS homebrew | title = Anemone3DS | image = https://dlhb.gamebrew.org/3dshomebrew/Anemone3DS-01.png|250px | type = Utilities | version = v2.1.0 | licence = Mixed | a...")
 
No edit summary
Line 12: Line 12:
<youtube>4RM4BIXOMj0</youtube>
<youtube>4RM4BIXOMj0</youtube>


![# Anemone3DS](https://github.com/astronautlevel2/Anemone3DS/blob/master/meta/banner.png)
= Anemone3DS =


A Theme and Splashscreen Manager for the Nintendo 3DS, written in C.\
A Theme and Splashscreen Manager for the Nintendo 3DS, written in C.<br />
To-do list here: https://trello.com/b/F1YSa1VK
To-do list here: [https://trello.com/b/F1YSa1VK https://trello.com/b/F1YSa1VK]


# Dependencies
== Dependencies ==
* devkitARM, which can be installed following the instructions [here](https://devkitpro.org/wiki/Getting_Started).
* jansson, libvorbisidec, libpng, and libarchive, which can be retrieved from [devkitPro pacman](https://devkitpro.org/viewtopic.php?f=13&t=8702).
* A recent build of [makerom](https://github.com/profi200/Project_CTR) and the latest release of [bannertool](https://github.com/Steveice10/bannertool). These must be added to your PATH.
A 64-bit Windows binary of makerom is available [here](https://hm892.s-ul.eu/U0Irkqih).


# Building
* devkitARM, which can be installed following the instructions [https://devkitpro.org/wiki/Getting_Started here].
First of all, make sure devkitARM is properly installed - `$DEVKITPRO` and `$DEVKITARM` should be set to `/opt/devkitpro` and `$DEVKITPRO/devkitARM`, respectively.
* jansson, libvorbisidec, libpng, and libarchive, which can be retrieved from [https://devkitpro.org/viewtopic.php?f=13&t=8702 devkitPro pacman].
After that, open the directory you want to clone the repo into, and execute
* A recent build of [https://github.com/profi200/Project_CTR makerom] and the latest release of [https://github.com/Steveice10/bannertool bannertool]. These must be added to your PATH. A 64-bit Windows binary of makerom is available [https://hm892.s-ul.eu/U0Irkqih here].
`git clone https://github.com/astronautlevel2/Anemone3DS` (or any other cloning method).
To install the prerequisite libraries, begin by ensuring devkitPro pacman (and the base install group, `3ds-dev`) is installed, and then install the dkP packages `3ds-jansson`, `3ds-libvorbisidec`, `3ds-libpng`, and `3ds-libarchive` using `[sudo] [dkp-]pacman -S <package-name>`.


After adding [makerom](https://github.com/profi200/Project_CTR) and [bannertool](https://github.com/Steveice10/buildtools) to your PATH, just enter your directory and run `make`. All built binaries will be in `/out/`.
== Building ==


# License
First of all, make sure devkitARM is properly installed - <code>$DEVKITPRO</code> and <code>$DEVKITARM</code> should be set to <code>/opt/devkitpro</code> and <code>$DEVKITPRO/devkitARM</code>, respectively.
This project is licensed under the GNU GPLv3. See LICENSE.md for details. Additional terms 7b and 7c apply to this project.


# Credits
After that, open the directory you want to clone the repo into, and execute <code>git clone https://github.com/astronautlevel2/Anemone3DS</code> (or any other cloning method).
The following people contributed to Anemone3DS in some way. Without these people, Anemone3DS wouldn't exist, or wouldn't be as good as it is: [CONTRIBUTORS.md](CONTRIBUTORS.md)


Most of the icons under `romfs` are from the site [icons8.com](https://icons8.com) and are licensed under the [CC-BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/3.0/)
To install the prerequisite libraries, begin by ensuring devkitPro pacman (and the base install group, <code>3ds-dev</code>) is installed, and then install the dkP packages <code>3ds-jansson</code>, <code>3ds-libvorbisidec</code>, <code>3ds-libpng</code>, and <code>3ds-libarchive</code> using <code>[sudo] [dkp-]pacman -S &lt;package-name&gt;</code>.


Special thanks go to these people who, whilst not directly contributing, helped immensely:
After adding [https://github.com/profi200/Project_CTR makerom] and [https://github.com/Steveice10/buildtools bannertool] to your PATH, just enter your directory and run <code>make</code>. All built binaries will be in <code>/out/</code>.
* [Rinnegatamante](https://github.com/Rinnegatamante), whose code served as reference on theme installation.
* [SteveIce10](https://github.com/SteveIce10), whose QR code in FBI was essential.
* [BernardoGiordano](https://github.com/BernardoGiordano) for making pp2d, and being super responsive to feature requests and just general help.
* [yellows8](https://github.com/yellows8) for his home menu extdump tool, which was invaluable in debugging.
* the folks on #dev of Nintendo Homebrew, who helped with unicode shenanigans (especially [Stary2001](https://github.com/Stary2001), [Fenrir](https://github.com/FenrirWolf), and DanielKO).
* the maintainers for all used libraries, including but not limited to ctrulib, zlib, citro3d, pp2d, and quirc.
* all the people who helped keep me going and motivated me to work. This includes, but is definitely not limited to:


+ The members of the [Nintendo Homebrew Discord](https://discord.gg/C29hYvh)
== License ==
+ The members of the __Secret Shack Service Discord__
+ The members of the [ThemePlaza Discord](https://discord.gg/2hUQwXz)


Beta release of v2.1.0.
This project is licensed under the GNU GPLv3. See LICENSE.md for details. Additional terms 7b and 7c apply to this project.


The main purpose of this beta is to test the compatibility of the new QR code scanner as much as possible before the v2.1.0 release. Full change-log below:
== Credits ==


Bugfixes:
The following people contributed to Anemone3DS in some way. Without these people, Anemone3DS wouldn't exist, or wouldn't be as good as it is: [[CONTRIBUTORS.md|CONTRIBUTORS.md]]


Changed Title ID to not conflict with a game - this means you'll have to uninstall the old version of Anemone3DS after updating to v2.1.0.
Most of the icons under <code>romfs</code> are from the site [https://icons8.com icons8.com] and are licensed under the [https://creativecommons.org/licenses/by-nc-sa/3.0/ CC-BY-NC-SA]


Fixed various bugs caused by an outdated libarchive version.
Special thanks go to these people who, whilst not directly contributing, helped immensely:


Fixed various bugs related to previous caused by lodepng by switching to libpng.
* [https://github.com/Rinnegatamante Rinnegatamante], whose code served as reference on theme installation.
* [https://github.com/SteveIce10 SteveIce10], whose QR code in FBI was essential.
* [https://github.com/BernardoGiordano BernardoGiordano] for making pp2d, and being super responsive to feature requests and just general help.
* [https://github.com/yellows8 yellows8] for his home menu extdump tool, which was invaluable in debugging.
* the folks on #dev of Nintendo Homebrew, who helped with unicode shenanigans (especially [https://github.com/Stary2001 Stary2001], [https://github.com/FenrirWolf Fenrir], and DanielKO).
* the maintainers for all used libraries, including but not limited to ctrulib, zlib, citro3d, pp2d, and quirc.
* all the people who helped keep me going and motivated me to work. This includes, but is definitely not limited to:


Fixed race condition in icon scrolling.
* The members of the [https://discord.gg/C29hYvh Nintendo Homebrew Discord]
* The members of the '''Secret Shack Service Discord'''
* The members of the [https://discord.gg/2hUQwXz ThemePlaza Discord]


Fixed screen tearing in the QR reader.
Beta release of v2.1.0.


Fixed bug caused by playing music even when there was no theme preview.
The main purpose of this beta is to test the compatibility of the new QR code scanner as much as possible before the v2.1.0 release. Full change-log below:
 
Fixed it being possible to try to preview themes/splashes even when there were no themes or splashes.
 
Fixed bug caused by attempting to play audio when dspfirm wasn't dumped.
 
Fixed bug caused by attempting to install BGM for shuffle themes even when there was none.


Fixed various bugs caused by not properly zeroing out files when creating them.
==Bugfixes:==


Properly update the installed splash.
* Changed Title ID to not conflict with a game - this means you'll have to uninstall the old version of Anemone3DS after updating to v2.1.0.
* Fixed various bugs caused by an outdated libarchive version.
* Fixed various bugs related to previous caused by lodepng by switching to libpng.
* Fixed race condition in icon scrolling.
* Fixed screen tearing in the QR reader.
* Fixed bug caused by playing music even when there was no theme preview.
* Fixed it being possible to try to preview themes/splashes even when there were no themes or splashes.
* Fixed bug caused by attempting to play audio when dspfirm wasn't dumped.
* Fixed bug caused by attempting to install BGM for shuffle themes even when there was none.
* Fixed various bugs caused by not properly zeroing out files when creating them.
* Properly update the installed splash.


Improvements:
===Improvements:===


Huge improvements to the QR code reader's speed. This is likely the fastest/smoothest it can possibly be (it's now on-par with QRaken and FBI) thanks to a combination of improved multithreading and switching graphics libraries.
* Huge improvements to the QR code reader's speed. This is likely the fastest/smoothest it can possibly be (it's now on-par with QRaken and FBI) thanks to a combination of improved multithreading and switching graphics libraries.


Speaking of switching graphics libraries, we've completely switched from pp2d to citro2d! This allowed us to get the QR code reader substantially faster, as well as guarantees full support for the library in the future. Huge thanks to LiquidFenrir for doing most of the work of the change.
* Speaking of switching graphics libraries, we've completely switched from pp2d to citro2d! This allowed us to get the QR code reader substantially faster, as well as guarantees full support for the library in the future. Huge thanks to LiquidFenrir for doing most of the work of the change.


Switch to using spritesheets to load the sprites rather than just loading them all into the romfs.
* Switch to using spritesheets to load the sprites rather than just loading them all into the romfs.


Don't wait for audio to finish loading before displaying the preview image, making previews display in the snappy fashion they used to before the audio player.
* Don't wait for audio to finish loading before displaying the preview image, making previews display in the snappy fashion they used to before the audio player.


Improved banner quality. Thanks to @TurdPooCharger for this!
* Improved banner quality. Thanks to @TurdPooCharger for this!

Revision as of 14:22, 13 April 2020

Template:Infobox 3DS homebrew

Anemone3DS

A Theme and Splashscreen Manager for the Nintendo 3DS, written in C.
To-do list here: https://trello.com/b/F1YSa1VK

Dependencies

  • devkitARM, which can be installed following the instructions here.
  • jansson, libvorbisidec, libpng, and libarchive, which can be retrieved from devkitPro pacman.
  • A recent build of makerom and the latest release of bannertool. These must be added to your PATH. A 64-bit Windows binary of makerom is available here.

Building

First of all, make sure devkitARM is properly installed - $DEVKITPRO and $DEVKITARM should be set to /opt/devkitpro and $DEVKITPRO/devkitARM, respectively.

After that, open the directory you want to clone the repo into, and execute git clone https://github.com/astronautlevel2/Anemone3DS (or any other cloning method).

To install the prerequisite libraries, begin by ensuring devkitPro pacman (and the base install group, 3ds-dev) is installed, and then install the dkP packages 3ds-jansson, 3ds-libvorbisidec, 3ds-libpng, and 3ds-libarchive using [sudo] [dkp-]pacman -S <package-name>.

After adding makerom and bannertool to your PATH, just enter your directory and run make. All built binaries will be in /out/.

License

This project is licensed under the GNU GPLv3. See LICENSE.md for details. Additional terms 7b and 7c apply to this project.

Credits

The following people contributed to Anemone3DS in some way. Without these people, Anemone3DS wouldn't exist, or wouldn't be as good as it is: CONTRIBUTORS.md

Most of the icons under romfs are from the site icons8.com and are licensed under the CC-BY-NC-SA

Special thanks go to these people who, whilst not directly contributing, helped immensely:

  • Rinnegatamante, whose code served as reference on theme installation.
  • SteveIce10, whose QR code in FBI was essential.
  • BernardoGiordano for making pp2d, and being super responsive to feature requests and just general help.
  • yellows8 for his home menu extdump tool, which was invaluable in debugging.
  • the folks on #dev of Nintendo Homebrew, who helped with unicode shenanigans (especially Stary2001, Fenrir, and DanielKO).
  • the maintainers for all used libraries, including but not limited to ctrulib, zlib, citro3d, pp2d, and quirc.
  • all the people who helped keep me going and motivated me to work. This includes, but is definitely not limited to:

Beta release of v2.1.0.

The main purpose of this beta is to test the compatibility of the new QR code scanner as much as possible before the v2.1.0 release. Full change-log below:

Bugfixes:

  • Changed Title ID to not conflict with a game - this means you'll have to uninstall the old version of Anemone3DS after updating to v2.1.0.
  • Fixed various bugs caused by an outdated libarchive version.
  • Fixed various bugs related to previous caused by lodepng by switching to libpng.
  • Fixed race condition in icon scrolling.
  • Fixed screen tearing in the QR reader.
  • Fixed bug caused by playing music even when there was no theme preview.
  • Fixed it being possible to try to preview themes/splashes even when there were no themes or splashes.
  • Fixed bug caused by attempting to play audio when dspfirm wasn't dumped.
  • Fixed bug caused by attempting to install BGM for shuffle themes even when there was none.
  • Fixed various bugs caused by not properly zeroing out files when creating them.
  • Properly update the installed splash.

Improvements:

  • Huge improvements to the QR code reader's speed. This is likely the fastest/smoothest it can possibly be (it's now on-par with QRaken and FBI) thanks to a combination of improved multithreading and switching graphics libraries.
  • Speaking of switching graphics libraries, we've completely switched from pp2d to citro2d! This allowed us to get the QR code reader substantially faster, as well as guarantees full support for the library in the future. Huge thanks to LiquidFenrir for doing most of the work of the change.
  • Switch to using spritesheets to load the sprites rather than just loading them all into the romfs.
  • Don't wait for audio to finish loading before displaying the preview image, making previews display in the snappy fashion they used to before the audio player.
  • Improved banner quality. Thanks to @TurdPooCharger for this!

Advertising: