Skip to content

Commit

Permalink
Merge pull request #527 from BernardoGiordano/refactoring
Browse files Browse the repository at this point in the history
5.0.0
  • Loading branch information
BernardoGiordano authored Nov 17, 2017
2 parents 5afccbe + e23f6e1 commit bf73691
Show file tree
Hide file tree
Showing 249 changed files with 7,665 additions and 2,627 deletions.
16 changes: 11 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,18 @@ include $(DEVKITARM)/3ds_rules
# Your values.
APP_TITLE := PKSM
APP_DESCRIPTION := Gen4+ pkmn save manager
APP_AUTHOR := Bernardo Giordano, PKSM devs
APP_AUTHOR := Bernardo Giordano

TARGET := $(subst $e ,_,$(notdir $(APP_TITLE)))
OUTDIR := out
BUILD := build
SOURCES := source/memecrypto/source source/pp2d source
INCLUDES := include
SOURCES := source/memecrypto/source \
source/pp2d \
source/quirc \
source/sections/events \
source
INCLUDES := include/sections/events \
include
ROMFS := assets/romfs

# Path to the files
Expand All @@ -39,8 +44,8 @@ LOGO :=
UNIQUE_ID := 0xEC100
PRODUCT_CODE := CTR-HB-PKSM

VERSION_MAJOR := 4
VERSION_MINOR := 5
VERSION_MAJOR := 5
VERSION_MINOR := 0
VERSION_MICRO := 0

ROSALINA := 0
Expand All @@ -56,6 +61,7 @@ ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft
CFLAGS := -g -Wall -Wextra -O2 -mword-relocations \
-fomit-frame-pointer -ffunction-sections \
$(ARCH) \
-DQUIRC_MAX_REGIONS=65534 \
-DROSALINA_3DSX=${ROSALINA} \
-DAPP_VERSION_MAJOR=${VERSION_MAJOR} \
-DAPP_VERSION_MINOR=${VERSION_MINOR} \
Expand Down
111 changes: 66 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,85 @@
<p align="center">
<br><br>
<img src="https://raw.githubusercontent.com/BernardoGiordano/PKSM/master/assets/banner.png">
</p>
![PKSM](https://raw.githubusercontent.com/BernardoGiordano/PKSM/master/assets/banner.png)
=====
![License](https://img.shields.io/badge/License-GPLv3-blue.svg)

Multipurpose **editor**, **wondercard injector**, **offline extra storage** and **OTA injector**.
Multipurpose and portable save manager for generations IV-VII, programmed in C.

| Downloads | Links |
| :-------: | :---: |
| Latest solution | [direct](https://github.com/BernardoGiordano/PKSM/releases/download/4.5.0/PKSM.zip) |
| Latest cfw build | [direct](https://github.com/BernardoGiordano/PKSM/releases/download/4.5.0/PKSM.cia) |
| Latest QR code | [qr](https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=https://github.com/BernardoGiordano/PKSM/releases/download/4.5.0/PKSM.cia&choe=UTF-8.png) |
* Supports original cartridges and digital copies of games from DPPT to USUM
* Allows on-the-fly modifications to all of your data
* Allows internal and resizable offline storage to store your pkmns
* Interfaces with multiple ad-hoc programs running on your computer, web browser or smartphone
* Capable of scanning QR codes to inject both pkmn files or event wondercards
* Contains an offline wondercard database to get events from old distributions

**I do not support or condone cheating at the expense of others. Do not use significantly edited pkmn in battle or in trades with those who are unaware edited pkmn are in use.**

## Screenshots

![](https://i.imgur.com/Rj3OwBZ.png) ![](https://i.imgur.com/Nl5z9Yx.png)
![](https://i.imgur.com/2Vt1dYE.png) ![](https://i.imgur.com/2Vt1dYE.png)
![](https://i.imgur.com/a355RYx.png) ![](https://i.imgur.com/EyTwxIc.png)
![](https://i.imgur.com/i3dLv54.png) ![](https://i.imgur.com/Oyr5zsF.png)
![](https://i.imgur.com/e9I6UoK.png) ![](https://i.imgur.com/8yYEfnX.png)
![](https://i.imgur.com/qVz2vba.png) ![](https://i.imgur.com/Wg1m4Ws.png)
![](https://i.imgur.com/8bPKwNe.png) ![](https://i.imgur.com/OdjkZwG.png)

## Installation

Download the latest release (4.5.0) and install it with your favourite installation method. You should only copy/paste the whole content of the release zip into the root of your sd-card, most of the time. When booted, the application will automatically download the required additional assets from an external source. You can provide your own assets, if you want.
This software works on cfw and *hax/rosalina-based Homebrew Launchers. An internet connection may be required at the first launch.

PKSM works with Rosalina-based Homebrew Launchers, too.
| Entrypoint | Instructions |
| :--------: | :----------- |
| cfw | Install the `PKSM.cia` file provided in the release page with your favourite installer. You can now launch the application from the home menu |
| rosalina hbl | Move `PKSM.3dsx` from the rosalina folder in the `PKSM.zip` file. You can now launch PKSM from a [rosalina-based homebrew launcher](https://github.com/fincs/new-hbmenu) |
| *hax hbl | Move `PKSM.3dsx` and `PKSM.xml` from the standard folder in the `PKSM.zip` file. You can now launch PKSM from a [*hax-based homebrew launcher](https://smealum.github.io/ninjhax2/starter.zip) |

If you're using Homebrew Launcher with a *hax exploit, make sure you have it updated to the [latest version](https://smealum.github.io/ninjhax2/starter.zip).
If you get a **failed to receive a status code** error, you may want to connect your console to the internet. This is needed to download the additional assets required for the application to launch.

You need internet access to download the additional assets. If you can't still download them through the application, you can put them manually in the SD card, putting the external [additionalassets](https://github.com/dsoldier/PKResources/releases/download/4.5.0/additionalassets.zip) folder in your SD card, located at ` /3ds/data/PKSM/ `. To avoid troubles, the final result should be a folder filled with assets, located at ` /3ds/data/PKSM/additionalassets/ `.
You need internet access to download the additional assets. If you can't still download them through the application, put them manually in the SD card, extracting the external [additionalassets](https://github.com/dsoldier/PKResources/releases/download/final/additionalassets.zip) folder in your SD card, located at `/3ds/PKSM/`. The final result should be a folder filled with assets, located at `/3ds/PKSM/additionalassets/`.

## Usage
### DS cartridges

GenVI to GenVII games: trigger the right game when prompted (you will do it twice if using a *hax-based homebrew launcher).
To let PKSM load your DS save correctly:

GenIV to GenV games: if using a *hax-based homebrew launcher, you must trigger Poketrasporter. Otherwise, use as always.
* If using rosalina, you need to inject the homebrew launcher in a title that has DS saves access.
* If using *hax, you need to select a target title that has DS save access when selecting PKSM from the homebrew launcher.

## Backups
A title satisfying those specifics is, for example, Pokétransporter.

Automatic save backups are located at ` /3ds/data/PKSM/backup/[GAME_DATE]/main `
### Storage changes from 5.0.0+

Extra storage backups are located at ` /3ds/data/PKSM/bank/bank_[DATE].bak `
If you're coming from a PKSM version < 5.0.0, you'll notice your `bank.bin` file isn't recognized anymore. That's because the working path changed from 5.0.0 so you need to **manually move** your `bank.bin` file to the new location, from `/3ds/data/PKSM/bank/` to `/3ds/PKSM/bank`.

## Utilities
## Applications supported by PKSM

Check out **[PKSM-Tools](https://github.com/BernardoGiordano/PKSM-Tools)** to know more about the utilities to use with this software.
* **[serveLegality](https://github.com/BernardoGiordano/PKSM-Tools)**: PC tool to check and fix a pkmn's legality.
* **[PKHeX](https://github.com/kwsch/PKHeX)**: Generates .pk7, .pk6, .wc7, .wc6 QR codes scannable from PKSM. Runs on PC.
* **[MysteryGiftBot](https://twitter.com/mysterygiftbot)**: Generates .wc7 QR codes scannable from PKSM. Runs on Twitter.
* **[servepkx](https://github.com/BernardoGiordano/PKSM-Tools)**: multiplatform tool to send .pk7, .pk6, .wc7full, .wc6full, .wc7, .wc6 files to PKSM. Requires a web browser or JRE.
* **[phbank2pksm](https://github.com/BernardoGiordano/PKSM-Tools)**: tool to convert a PHBank bank file to a PKSM storage file. Requires a web browser.
* **[badsectors](https://github.com/BernardoGiordano/PKSM-Tools)**: tool to fix bad slots in the PKSM storage file. Runs on the homebrew launcher.

## Issues
## Working path

Before submitting an issue, look for it into the issues page, because it could have been already answered in the past.
* Additional assets are located at `/3ds/PKSM/additionalassets/`
* Automatic save backups are located at `/3ds/PKSM/backup/[GAME_DATE]/main`
* Extra storage backups are located at `/3ds/PKSM/bank/bank_[DATE].bak`

Please only do consistent issues (submitting your environment and which version of PKSM you're running), without asking for the moon: we're working for free here. Duplicate issues will be closed without answer by our part.
## Troubleshooting

We'll not reply to issues related to versions of PKSM different from the latest stable release currently available.
Before submitting an issue, look for it into the issues page, because it could have been already answered in the past.

## Contributing
Please only do consistent issues (submitting your environment and which version of PKSM you're running), without asking for the moon: I'm working for free here. Duplicate issues will be closed without any reply.

Pull Requests are greatly appreciated. If you're planning to add features that requires a good bunch of work, please tell us before starting, in order to avoid wasting your time if the feature you're planning to add will not be possible to merge.
I'll not reply to issues related to versions of PKSM different from the latest stable release currently available.

## Compiling
You can get real-time support by joining PKSM's discord server.

PKSM uses [latest libctru](https://github.com/smealum/ctrulib), [latest citro3d](https://github.com/fincs/citro3d) and [latest pp2d](https://github.com/BernardoGiordano/PKSM/tree/master/source/pp2d).
[![Discord](https://discordapp.com/api/guilds/278222834633801728/widget.png?style=banner3&time-)](https://discord.gg/bGKEyfY)

## Screenshots
## Building

<img src="assets/page/01.png" width="350"> <img src="assets/page/02.png" width="350">
<img src="assets/page/03.png" width="350"> <img src="assets/page/04.png" width="350">
<img src="assets/page/05.png" width="350"> <img src="assets/page/06.png" width="350">
<img src="assets/page/07.png" width="350"> <img src="assets/page/08.png" width="350">
<img src="assets/page/09.png" width="350"> <img src="assets/page/10.png" width="350">
<img src="assets/page/11.png" width="350"> <img src="assets/page/12.png" width="350">
PKSM requires [latest libctru](https://github.com/smealum/ctrulib), [latest citro3d](https://github.com/fincs/citro3d) and [latest pp2d](https://github.com/BernardoGiordano/PKSM/tree/master/source/pp2d). The executable can be compiled with [devkitARM r47+](https://sourceforge.net/projects/devkitpro/).

## Credits

Expand All @@ -69,22 +88,24 @@ PKSM uses [latest libctru](https://github.com/smealum/ctrulib), [latest citro3d]
* Smealum for ctrulib
* Kaphotics and SciresM for PKHeX and memecrypto
* J-K-D for direct save import/export
* Slownic for java servepkx
* Astronautlevel for QR codes support
* Slownic and zaksabeast for servepkx
* Slashcash for PCHex++
* Gocario for PKBrew
* TuxSH for TWLSaveTool
* PPorg for most of the wcx included here
* Simona, Carlo, Matteo for fill.c work
* ProjectPokemon.org for most of the wondercards
* Simona for being my best supporter
* all the countless translators who helped with the multilanguage feature
* everyone who helped during the development process
* all the supporters

**If you appreciate my work, I appreciate [a coffee](https://www.patreon.com/bernardogiordano) :)**

## License

This file is part of PKSM

Copyright (C) 2016/2017 Bernardo Giordano

> This file is part of PKSM
>
> Copyright (C) 2016/2017 Bernardo Giordano
>
> This program is free software: you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation, either version 3 of the License, or
Expand Down
Binary file modified assets/audio.wav
Binary file not shown.
Binary file removed assets/page/01.png
Binary file not shown.
Binary file removed assets/page/02.png
Binary file not shown.
Binary file removed assets/page/03.png
Binary file not shown.
Binary file removed assets/page/04.png
Binary file not shown.
Binary file removed assets/page/05.png
Binary file not shown.
Binary file removed assets/page/06.png
Binary file not shown.
Binary file removed assets/page/07.png
Binary file not shown.
Binary file removed assets/page/08.png
Binary file not shown.
Binary file removed assets/page/09.png
Binary file not shown.
Binary file removed assets/page/10.png
Binary file not shown.
Binary file removed assets/page/11.png
Binary file not shown.
Binary file removed assets/page/12.png
Binary file not shown.
5 changes: 3 additions & 2 deletions assets/romfs/i18n/de/abilities.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Kein
-
Duftnote
Niesel
Temposchub
Expand Down Expand Up @@ -230,4 +230,5 @@ Nebel-Erzeuger
Gras-Erzeuger
Metallprotektor
Phantomschutz
Prismarüstung
Prismarüstung
Zerebralmacht
2 changes: 2 additions & 0 deletions assets/romfs/i18n/de/app.txt
Original file line number Diff line number Diff line change
Expand Up @@ -572,3 +572,5 @@ Download der Daten fehlgeschlagen!
Installiere aktuelle Version...
Aktuelle Version installiert!
Möchtest du das Spiel starten?
Ultra Sun
Ultra Moon
Loading

0 comments on commit bf73691

Please sign in to comment.