Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

PNGShot Switch: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 2: Line 2:
|title=PNGShot
|title=PNGShot
|image=Switch-logo.png
|image=Switch-logo.png
|description=The long lost PNG screenshot sysmodule for Nintendo Switch.
|description=Capture screenshots as PNGs.
|author=J-D-K
|author=J-D-K
|lastupdated=2024/09/04
|lastupdated=2026/03/07
|type=Sysmodules
|type=Sysmodules
|version=1.0.2
|version=2.6.0
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/switchhomebrews/PNGShotSwitch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/PNGShotSwitch.7z
Line 19: Line 19:
|image_alt=PNGShot
|image_alt=PNGShot
}}
}}
PNGShot is a sysmodule I developed years ago, which I thought was lost. In combination with bitmap-printer's exefs patches, it allows you to take screenshots and save them as PNGs instead of the system's default JPEG format. The benefits include:
A sysmodule that can take screenshots and save them as PNG's instead of the system's default JPEG.


* '''Smaller file sizes''': Files are smaller than a bitmap, ranging from a couple of hundred kilobytes to just under 2MB, depending on what’s captured.
Screenshots are exported to <code>sdmc:/Nintendo/Album/PNGs/YYYY/MM/DD/YYYYMMDD_hhmmss.png</code> when the capture button is pressed.  
* '''Lossless quality''': Unlike JPEG, PNGs are lossless.


==How to Use==
==Features==
* You'll need the exefs patches from [[Bitmap Printer Switch]] for now. I might create my own patches in the future, but for now, I don't see the point or have the time to redo work that's already been done.
* Captures system screenshots as lossless PNG images.
* Download the sysmodule from the GitHub repository link [https://github.com/J-D-K/PNGShot/releases here].
* Optional compatibility mode to allow both PNG and JPEG captures.
* Press the capture button to capture the current screen and save it to "sdmc:/switch/PNGShot/[date][time].png".
* Simple SD card–based configuration.
* Low-overhead sysmodule design written in pure C.
* Highly stable.
 
==Installation==
Download the latest release from the [https://github.com/J-D-K/PNGShot/releases Releases].
 
Extract the contents of the ZIP archive to the root of your Switch's SD card.
 
(Optional) To keep system JPEG captures, create an empty file named <code>sdmc:/config/PNGShot/allow_jpegs</code>


==Changelog==
==Changelog==
'''v2.6.0'''
* The default compression level has been reduced to four to decrease processing time. [https://github.com/masagrator @masagrator]
* Alpha channel stripping now uses NEON instructions where possible to decrease processing time. [https://github.com/masagrator @masagrator]
* Screenshots are now created with their maximum potential size pre-allocated and are trimmed after processing is complete to match their final size.
** This removes unnecessary FS calls and reduces file writing time.
* A configuration file has been added allowing you to customize some parts of PNGShot. See [https://github.com/J-D-K/PNGShot/blob/master/CONFIG.MD CONFIG.MD] for details.
'''v2.5.1'''
* Add FW 21.0.0 Support by [https://github.com/impeeza @impeeza] in [https://github.com/J-D-K/PNGShot/pull/11 #11]
'''v2.5.0'''
* All code has been heavily refactored to be cleaner, modular, and easier to maintain.
* Captures are now organized in a cleaner folder structure for easier browsing:
** <code>sdmc:/Nintendo/Album/PNGs/YYYY/MM/DD/YYYYMMDD_hhmmss.png</code>
'''v2.0.0'''
* Capture event filter, bug fixes, and improved timestamps thanks to [https://github.com/ppkantorski @ppkantorski].
* Now includes VI patches to enable debug mode screen capturing thanks to [https://github.com/impeeza @impeeza].
* Creating a file named <code>allow_jpegs</code> and placing it in <code>sdmc:/conifg/PNGShot</code> will stop PNGShot from deleting JPEGs that are normally captured by the system.
'''v1.5.0'''
* PNGShot now uses <code>[album directory]/PNGs</code> instead of <code>switch/PNGShot</code> when creating screenshots.
** PNGShot will try to open the album directory on your SD card first and fall back to NAND if that fails.
* This also means PNGShot no longer uses C stdio functions for file writing, instead using libnx's FS functions directly to get the job done.
* Included in this release is what I call the &quot;experimental&quot; build:
** This build buffers the entire raw capture after the capture button is pressed. This requires a lot more memory to be used. The experimental build uses 6MB vs the normal build's 24KB. YOU HAVE BEEN WARNED. This can cause conflicts and issues, but has the benefit of allowing normal JPEGs and video captures to function again because the capture stream is released almost immediately.
'''v1.0.2'''
'''v1.0.2'''
*Time service is exited after libnx time is initialized and it's no longer needed anymore.
*Time service is exited after libnx time is initialized and it's no longer needed anymore.
Line 38: Line 68:
* First Release.
* First Release.


==Thanks to==
==Credits==
Thanks to:
* [https://github.com/HookedBehemoth HookedBehemoth] for [https://github.com/HookedBehemoth/bitmap-printer bitmap-printer] and its patches.
* [https://github.com/HookedBehemoth HookedBehemoth] for [https://github.com/HookedBehemoth/bitmap-printer bitmap-printer] and its patches.
* [https://github.com/impeeza Impeeza] for enhancing the makefile and readme to be more descriptive and easier to use. Thank you.
* [https://github.com/impeeza Impeeza] for enhancing the makefile and readme to be more descriptive and easier to use. Thank you.


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/release-pngshot-capture-screenshots-as-pngs.660363/
* GitHub - https://github.com/J-D-K/PNGShot
* Github - https://github.com/J-D-K/PNGShot
* GBAtemp - https://gbatemp.net/threads/release-pngshot-capture-screenshots-as-pngs.660363/

Latest revision as of 09:05, 16 March 2026

PNGShot
General
AuthorJ-D-K
TypeSysmodules
Version2.6.0
LicenseMixed
Last Updated2026/03/07
Links
Download
Website
Source

A sysmodule that can take screenshots and save them as PNG's instead of the system's default JPEG.

Screenshots are exported to sdmc:/Nintendo/Album/PNGs/YYYY/MM/DD/YYYYMMDD_hhmmss.png when the capture button is pressed.

Features

  • Captures system screenshots as lossless PNG images.
  • Optional compatibility mode to allow both PNG and JPEG captures.
  • Simple SD card–based configuration.
  • Low-overhead sysmodule design written in pure C.
  • Highly stable.

Installation

Download the latest release from the Releases.

Extract the contents of the ZIP archive to the root of your Switch's SD card.

(Optional) To keep system JPEG captures, create an empty file named sdmc:/config/PNGShot/allow_jpegs

Changelog

v2.6.0

  • The default compression level has been reduced to four to decrease processing time. @masagrator
  • Alpha channel stripping now uses NEON instructions where possible to decrease processing time. @masagrator
  • Screenshots are now created with their maximum potential size pre-allocated and are trimmed after processing is complete to match their final size.
    • This removes unnecessary FS calls and reduces file writing time.
  • A configuration file has been added allowing you to customize some parts of PNGShot. See CONFIG.MD for details.

v2.5.1

v2.5.0

  • All code has been heavily refactored to be cleaner, modular, and easier to maintain.
  • Captures are now organized in a cleaner folder structure for easier browsing:
    • sdmc:/Nintendo/Album/PNGs/YYYY/MM/DD/YYYYMMDD_hhmmss.png

v2.0.0

  • Capture event filter, bug fixes, and improved timestamps thanks to @ppkantorski.
  • Now includes VI patches to enable debug mode screen capturing thanks to @impeeza.
  • Creating a file named allow_jpegs and placing it in sdmc:/conifg/PNGShot will stop PNGShot from deleting JPEGs that are normally captured by the system.

v1.5.0

  • PNGShot now uses [album directory]/PNGs instead of switch/PNGShot when creating screenshots.
    • PNGShot will try to open the album directory on your SD card first and fall back to NAND if that fails.
  • This also means PNGShot no longer uses C stdio functions for file writing, instead using libnx's FS functions directly to get the job done.
  • Included in this release is what I call the "experimental" build:
    • This build buffers the entire raw capture after the capture button is pressed. This requires a lot more memory to be used. The experimental build uses 6MB vs the normal build's 24KB. YOU HAVE BEEN WARNED. This can cause conflicts and issues, but has the benefit of allowing normal JPEGs and video captures to function again because the capture stream is released almost immediately.

v1.0.2

  • Time service is exited after libnx time is initialized and it's no longer needed anymore.

v1.0.1

  • Uses new naming scheme for output.
  • Updated code.

v1.0

  • First Release.

Credits

Thanks to:

External links

Advertising: