SV Image Injector Switch

From GameBrew
SV Image Injector
Svimageinjectorswitch.png
General
AuthorPizzaTimeJoshua
TypeHack Utilities
Version1.1.0
LicenseMixed
Last Updated2023/09/17
Links
Download
Website
Source

Edit and Extract Player Profile and Icon Pictures. Using PKHeX's Block Data Import and Export tool, it is possible to extract and edit a Player's Profile and Icon images.

Note: The authors are not responsible for any console or game getting banned by Nintendo or Pokemon for using this project, files or code. Injecting images onto a game is a clear sign of a hacked Switch Console. You accept all responsibility for using any of their files.

User guide

Requirements

The Python file relies on the following libraries: texture2ddecoder, etcpak, and Pillow. Please follow the provided links for installation instructions. Alternatively, you can find a compiled executable in the Releases section.

This project also utilizes PKHeX and require access to your game's save file.

Injecting a custom image to a save file

Image requirements:

The size requirements may vary between users:

  • For Profile Images, it's width of 1440 pixels and height of 832 pixels (default), or width of 960 pixels and height of 544 pixels.
  • For Icon Images, it's width of 352 pixels and height of 352 pixels (default), or width of 224 pixels and height of 224 pixels.

Before you start:

Verify the image width and height by checking your save file on PKHeX. Open PKHeX, import your Save File, go to the SAV tab, and select Block Data. Look for the Block Data that contains the width and height for the type of image you want to inject.

For Profile Image, the Block Keys you need to look for are:

  • UInt32 KPictureProfileCurrentWidth
  • UInt32 KPictureProfileCurrentHeight

For Icon Image, the Block Keys you need to look for are:

  • UInt32 KPictureIconCurrentWidth
  • UInt32 KPictureIconCurrentHeight

Take note of the values, or you can change the values between two sizes per Image requirement.

After you have the width and height, prepare an image that match those values.

Using SV Image Injector:

  • Open the SV-Image-Injector executable or run the Python file.
  • If you've changed your width/height value or the values on your save file are different from default, indicate the values to the program through File > Configure.
  • Input the appropriate values and save.
  • Click on Select File and choose your image file. The Console Messages should confirm the selection and automatically choose the correct option.
  • If changing the Icon Image, select Icon Picture instead of the Profile Picture option.
  • Click Convert and Save to save a binary file. A message should confirm successful compression.

Using PKHeX to finish:

  • Open PKHeX and import your Save File.
  • Go to the SAV tab and select Block Data.
  • Locate the Block Data that contains the Image you want to inject.
    • For Profile Picture, it's called Object KPictureProfileCurrent.
    • For Icon Picture, it's called Object KPictureIconCurrent.
  • Click on Import Current Block and select the binary file you just created to import.

To confirm if you have imported the image:

  • Close the Savedata Block Dump window.
  • Select the Trainer Info tab.
  • 3 The Images tab should display the injected image.

Extracting an image from a save file to a PNG

Easy Way:

  • Open PKHeX and import your Save File.
  • Go to the SAV tab and select Trainer Info.
  • Select the Images tab and find your Profile and Icon Pictures.
  • Clicking on any image prompts you to save it.

Harder Way:

  • Open PKHeX and import your Save File.
  • Go to the Block Data tab.
  • Locate the Block Data containing the image.
    • For Profile Picture, it's Object KPictureProfileCurrent.
    • For Icon Picture, it's Object KPictureIconCurrent.
  • Export the Current Block and save as a binary file.
  • Use SV-Image-Injector with the 'BIN to Image' option selected to uncompress the image file.

Changelog

v1.1.0 2023/09/17

  • ADDED: Configure Top Menu.
  • Output Console can now scroll.
  • Configure menu allows you to adjust the Width and Height values.
  • Adjusted overall code to be easier to look at.

v1.0.02023/09/09

  • Initial release.

External links

Advertising: