Anemone3DS

From GameBrew
Revision as of 14:22, 13 April 2020 by HydeWing (talk | contribs)

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: