New name
ALSO: Change Hori-HD to Horizon HD on 3DS box art
@ -58,7 +58,7 @@ GRAPHICS := assets/gfx assets/gfx_chars assets/gfx_charprevbg
|
|||||||
ROMFS := romfs
|
ROMFS := romfs
|
||||||
GFXBUILD := $(ROMFS)/gfx
|
GFXBUILD := $(ROMFS)/gfx
|
||||||
APP_AUTHOR := Rocket Robz
|
APP_AUTHOR := Rocket Robz
|
||||||
APP_NAME := Super Photo Studio
|
APP_NAME := Super All-Star Photo Studio
|
||||||
ICON := app/icon.png
|
ICON := app/icon.png
|
||||||
BNR_IMAGE := app/banner.png
|
BNR_IMAGE := app/banner.png
|
||||||
BNR_AUDIO := app/BannerAudio.bcwav
|
BNR_AUDIO := app/BannerAudio.bcwav
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
--atlas -f rgba -z auto
|
|
||||||
msg.png
|
|
||||||
arrow_back.png
|
|
||||||
button_b.png
|
|
||||||
button_blue.png
|
|
||||||
button_red.png
|
|
||||||
button_shadow.png
|
|
||||||
button_msg.png
|
|
||||||
button_msg_shadow.png
|
|
||||||
cursor.png
|
|
||||||
icon_female.png
|
|
||||||
icon_male.png
|
|
||||||
icon_msg.png
|
|
||||||
icon_question.png
|
|
||||||
item_button.png
|
|
||||||
photo_bg.png
|
|
||||||
logo_horizonHD.png
|
|
||||||
logo_rocketrobz.png
|
|
||||||
rr_spaceBG.png
|
|
||||||
rr_robz.png
|
|
||||||
titleJ.png
|
|
||||||
titleMetalJ.png
|
|
||||||
logo_UniversalCore.png
|
|
||||||
homeicon.png
|
|
Before Width: | Height: | Size: 227 KiB After Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 200 KiB |
Before Width: | Height: | Size: 162 B |
@ -14,8 +14,6 @@ static bool chracterSpriteLoaded = false;
|
|||||||
static bool chracterSpriteFound[5] = {false};
|
static bool chracterSpriteFound[5] = {false};
|
||||||
static bool bgSpriteLoaded = false;
|
static bool bgSpriteLoaded = false;
|
||||||
|
|
||||||
extern u8 sysRegion;
|
|
||||||
|
|
||||||
extern int studioBg;
|
extern int studioBg;
|
||||||
extern u8 settingBits;
|
extern u8 settingBits;
|
||||||
extern bool cinemaWide;
|
extern bool cinemaWide;
|
||||||
@ -50,7 +48,7 @@ void GFX::resetCharStatus(int num) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result GFX::loadSheets() {
|
Result GFX::loadSheets() {
|
||||||
sprites = C2D_SpriteSheetLoad(sysRegion==CFG_REGION_JPN ? "romfs:/gfx/spritesJ.t3x" : "romfs:/gfx/sprites.t3x");
|
sprites = C2D_SpriteSheetLoad("romfs:/gfx/sprites.t3x");
|
||||||
GFX::loadBgSprite();
|
GFX::loadBgSprite();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
31
README-J.md
@ -1,31 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<img src="https://github.com/RocketRobz/SuperPhotoStudio/blob/master/resources/titleJ.png"><br>
|
|
||||||
<a href="https://gbatemp.net/threads/dsi-3ds-super-photo-studio-take-pictures-of-your-favorite-all-star-characters.573276/" style="padding-left: 5px;">
|
|
||||||
<img src="https://img.shields.io/badge/GBATemp-thread-blue.svg" height="20">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
Non-JAP users read [here](https://github.com/RocketRobz/SuperPhotoStudio/blob/master/README.md).
|
|
||||||
|
|
||||||
Modeling for photos is always fun, but what if you wanted to invite more people over? What if you invited over characters from the previous *Girls Mode* entries?
|
|
||||||
How about unexpected guests, like Mario & Luigi, Sonic & Tails, Banjo & Kazooie, or any other character not found in the *Girls Mode* series?
|
|
||||||
The photo shoot party becomes bigger and more fun, in a *Photo Shoot X-over!*
|
|
||||||
|
|
||||||
# What is this?
|
|
||||||
|
|
||||||
*Girls Mode: Photo Shoot X-over!* is basically an upgraded version of the *Girls Mode* series's photo studio feature, with added characters and locations outside of said series. You can also change the character's expressions and poses, though *Photo Shoot X-over* does not support changing expressions.
|
|
||||||
|
|
||||||
# Features
|
|
||||||
|
|
||||||
* High-resolution *Horizon HD* (800px wide mode), exclusive to 3DS, New 3DS, and New 2DS consoles!
|
|
||||||
* Pre-rendered characters and backgrounds, as well as music, from
|
|
||||||
* Super Mario
|
|
||||||
* Sonic the Hedgehog
|
|
||||||
* Pac-Man
|
|
||||||
* Banjo-Kazooie
|
|
||||||
* Girls Mode
|
|
||||||
and more!
|
|
||||||
* Around/Nearly 100 characters and 50 locations.
|
|
||||||
* The first homebrew appearance of Robz' fashionable twin, Rabz!
|
|
||||||
|
|
||||||
[More](https://github.com/RocketRobz/SuperPhotoStudio/blob/master/README-p2.md)
|
|
36
README-p2.md
@ -1,36 +0,0 @@
|
|||||||
# Controls
|
|
||||||
* A: Select highlighted option
|
|
||||||
* D-Pad Left/Right: Select character number (highlight character option in menu first)
|
|
||||||
* X/B: Zoom in/out (DS(i) version)
|
|
||||||
* Circle Pad Up/Down: Zoom in/out (3DS version)
|
|
||||||
* Y: Take photo (saved in `sd:/(yourconsole)/SuperPhotoStudio/photos/`)
|
|
||||||
|
|
||||||
# Characters, Locations, and Music by
|
|
||||||
* Namco
|
|
||||||
* Nicalis
|
|
||||||
* NightScript*
|
|
||||||
* Nintendo
|
|
||||||
* Rare
|
|
||||||
* Rocket Robz*
|
|
||||||
* SEGA
|
|
||||||
* StackZ*
|
|
||||||
* Syn Sophia
|
|
||||||
|
|
||||||
(*Homebrew dev)
|
|
||||||
|
|
||||||
# Available for
|
|
||||||
* Nintendo DS
|
|
||||||
* Nintendo DS⁽ⁱ⁾
|
|
||||||
* Nintendo 3DS/2DS
|
|
||||||
|
|
||||||
# Credits
|
|
||||||
* devkitPro: libnds, libctru, citro2d/3d, nds-hb-menu's file/folder browsing code
|
|
||||||
* [Universal-Team](https://github.com/Universal-Team): Universal Core
|
|
||||||
* [SuperSaiyajinStackZ](https://github.com/SuperSaiyajinStackZ): StackZ and Stackie avatars
|
|
||||||
* StackZ avatar made by Rocket Robz
|
|
||||||
* [NightScript](https://github.com/NightScript370): NightScript avatar (made by Rocket Robz)
|
|
||||||
* [Church of Kondo](https://www.youtube.com/@ChurchofKondoh): Some included remastered music
|
|
||||||
* [Pk11](https://github.com/Epicpkmn11): DSi version's font rendering code
|
|
||||||
* [chyyran](https://github.com/chyyran): DS(i) version's alpha blending and sound streaming code
|
|
||||||
* [joel16](https://github.com/joel16): Screenshot code from [3DShell](https://github.com/joel16/3DShell)
|
|
||||||
* Freepik: [Camera icon](https://www.flaticon.com/free-icon/camera_2965705?term=camera&page=1&position=12)
|
|
50
README.md
@ -1,20 +1,19 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://github.com/RocketRobz/SuperPhotoStudio/blob/master/resources/title.png"><br>
|
<img src="https://github.com/RocketRobz/SuperAllStarPhotoStudio/blob/master/resources/title.png"><br>
|
||||||
<a href="https://gbatemp.net/threads/dsi-3ds-super-photo-studio-take-pictures-of-your-favorite-all-star-characters.573276/" style="padding-left: 5px;">
|
<a href="https://gbatemp.net/threads/dsi-3ds-super-photo-studio-take-pictures-of-your-favorite-all-star-characters.573276/" style="padding-left: 5px;">
|
||||||
<img src="https://img.shields.io/badge/GBATemp-thread-blue.svg" height="20">
|
<img src="https://img.shields.io/badge/GBATemp-thread-blue.svg" height="20">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
JAP users read [here](https://github.com/RocketRobz/SuperPhotoStudio/blob/master/README-J.md).
|
What happens when you take the concept of *Super Smash Bros.*, and turn it from a fighting game, into a photo shoot party?
|
||||||
|
The result, a *Super All-Star Photo Studio*! Take pictures of your favorite all-star characters, in any location possible!
|
||||||
|
|
||||||
What happens when you take the concept of *Super Smash Bros.*, and turn it from a fighting game, into a photo shoot application?
|
*Super All-Star Photo Studio* has it all: An all-star video game cast, well-known outdoor and indoor locations, stylish girls, the coolest of TWL himself, and fan-favorites like like Mario & Luigi, Sonic & Tails, Banjo & Kazooie, and even Waluigi!
|
||||||
The result, *Super Photo Studio*! Take pictures of your favorite all-star characters, in any location possible!
|
|
||||||
|
|
||||||
*Super Photo Studio* has it all: An all-star cast, famous outdoor and indoor locations, stylish girls, the coolest of TWL himself, and fan-favorites like Waluigi!
|
|
||||||
|
|
||||||
# What is this?
|
# What is this?
|
||||||
|
|
||||||
*Super Photo Studio* is basically an upgraded version of the *Style Savvy* series's photo studio feature, with added characters and locations outside of said series. You can also change the character's expressions and poses, though *Super Photo Studio* does not support changing expressions.
|
*Super All-Star Photo Studio* is basically an upgraded version of the *Style Savvy* series's photo studio feature, with added characters and locations outside of said series. You can also change the character's expressions and poses, though *Super All-Star Photo Studio* does not support changing expressions.
|
||||||
|
- As of currently, only Grace (from *Style Savvy*) has changeable poses.
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
@ -29,4 +28,39 @@ The result, *Super Photo Studio*! Take pictures of your favorite all-star charac
|
|||||||
* Around/Nearly 100 characters and 50 locations.
|
* Around/Nearly 100 characters and 50 locations.
|
||||||
* The first homebrew appearance of Robz' fashionable twin, Rabz!
|
* The first homebrew appearance of Robz' fashionable twin, Rabz!
|
||||||
|
|
||||||
[More](https://github.com/RocketRobz/SuperPhotoStudio/blob/master/README-p2.md)
|
# Controls
|
||||||
|
* A: Select highlighted option
|
||||||
|
* D-Pad Left/Right: Select character number (highlight character option in menu first)
|
||||||
|
* X/B: Zoom in/out (DS(i) version)
|
||||||
|
* Circle Pad Up/Down: Zoom in/out (3DS version)
|
||||||
|
* Y: Take photo (saved in `sd:/(yourconsole)/SuperPhotoStudio/photos/`)
|
||||||
|
|
||||||
|
# Characters, Locations, and Music by
|
||||||
|
* Namco
|
||||||
|
* Nicalis
|
||||||
|
* NightScript*
|
||||||
|
* Nintendo
|
||||||
|
* Rare
|
||||||
|
* Rocket Robz*
|
||||||
|
* SEGA
|
||||||
|
* StackZ*
|
||||||
|
* Syn Sophia
|
||||||
|
|
||||||
|
(*Homebrew dev)
|
||||||
|
|
||||||
|
# Available for
|
||||||
|
* Nintendo DS
|
||||||
|
* Nintendo DS⁽ⁱ⁾
|
||||||
|
* Nintendo 3DS/2DS
|
||||||
|
|
||||||
|
# Credits
|
||||||
|
* devkitPro: libnds, libctru, citro2d/3d, nds-hb-menu's file/folder browsing code
|
||||||
|
* [Universal-Team](https://github.com/Universal-Team): Universal Core
|
||||||
|
* [SuperSaiyajinStackZ](https://github.com/SuperSaiyajinStackZ): StackZ and Stackie avatars
|
||||||
|
* StackZ avatar made by Rocket Robz
|
||||||
|
* [NightScript](https://github.com/NightScript370): NightScript avatar (made by Rocket Robz)
|
||||||
|
* [Church of Kondo](https://www.youtube.com/@ChurchofKondoh): Some included remastered music
|
||||||
|
* [Pk11](https://github.com/Epicpkmn11): DSi version's font rendering code
|
||||||
|
* [chyyran](https://github.com/chyyran): DS(i) version's alpha blending and sound streaming code
|
||||||
|
* [joel16](https://github.com/joel16): Screenshot code from [3DShell](https://github.com/joel16/3DShell)
|
||||||
|
* Freepik: [Camera icon](https://www.flaticon.com/free-icon/camera_2965705?term=camera&page=1&position=12)
|
||||||
|
@ -34,7 +34,7 @@ makearm9:
|
|||||||
|
|
||||||
$(TARGET).nds: makearm7 makearm9
|
$(TARGET).nds: makearm7 makearm9
|
||||||
ndstool -c $(TARGET).nds -7 $(TARGET).arm7.elf -9 $(TARGET).arm9.elf -d $(NITRODATA) \
|
ndstool -c $(TARGET).nds -7 $(TARGET).arm7.elf -9 $(TARGET).arm9.elf -d $(NITRODATA) \
|
||||||
-g HPHA 00 "SUPERPHOTO" -z 80040000 -u 00030004 -a 00000138 -b icon.bmp "Super Photo Studio;Rocket Robz"
|
-g HPHA 00 "SUPERPHOTO" -z 80040000 -u 00030004 -a 00000138 -b icon.bmp "Super All-Star;Photo Studio;Rocket Robz"
|
||||||
$(PYTHON) patch_ndsheader_dsiware.py $(TARGET).nds --twlTouch
|
$(PYTHON) patch_ndsheader_dsiware.py $(TARGET).nds --twlTouch
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
@ -12,8 +12,6 @@
|
|||||||
|
|
||||||
#define charSpriteSize 0x18000
|
#define charSpriteSize 0x18000
|
||||||
|
|
||||||
#define sysRegion *(u8*)0x02FFFD70
|
|
||||||
|
|
||||||
/// Configuration region values.
|
/// Configuration region values.
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
@ -151,18 +149,18 @@ void GFX::loadSheets() {
|
|||||||
int metalXpos = 0;
|
int metalXpos = 0;
|
||||||
int metalYpos = 0;
|
int metalYpos = 0;
|
||||||
|
|
||||||
int yStart = sysRegion==CFG_REGION_JPN ? 130 : 72;
|
int yStart = 80;
|
||||||
int yEnd = sysRegion==CFG_REGION_JPN ? 160 : 131;
|
int yEnd = 139;
|
||||||
|
|
||||||
std::vector<unsigned char> image;
|
std::vector<unsigned char> image;
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
lodepng::decode(image, width, height, sysRegion==CFG_REGION_JPN ? "nitro:/graphics/gui/titleMetalJ.png" : "nitro:/graphics/gui/titleMetal.png");
|
lodepng::decode(image, width, height, "nitro:/graphics/gui/titleMetal.png");
|
||||||
for(unsigned i=0;i<image.size()/4;i++) {
|
for(unsigned i=0;i<image.size()/4;i++) {
|
||||||
charSpriteMem[i] = image[i*4]>>3 | (image[(i*4)+1]>>3)<<5 | (image[(i*4)+2]>>3)<<10 | BIT(15);
|
charSpriteMem[i] = image[i*4]>>3 | (image[(i*4)+1]>>3)<<5 | (image[(i*4)+2]>>3)<<10 | BIT(15);
|
||||||
}
|
}
|
||||||
applyColorLut(charSpriteMem, image.size()/4);
|
applyColorLut(charSpriteMem, image.size()/4);
|
||||||
image.clear();
|
image.clear();
|
||||||
lodepng::decode(image, width, height, sysRegion==CFG_REGION_JPN ? "nitro:/graphics/gui/titleJ.png" : "nitro:/graphics/gui/title.png");
|
lodepng::decode(image, width, height, "nitro:/graphics/gui/title.png");
|
||||||
bool alternatePixel = false;
|
bool alternatePixel = false;
|
||||||
for(unsigned i=0;i<image.size()/4;i++) {
|
for(unsigned i=0;i<image.size()/4;i++) {
|
||||||
if ((int)i >= 256*yStart && (int)i < 256*yEnd) {
|
if ((int)i >= 256*yStart && (int)i < 256*yEnd) {
|
||||||
@ -253,8 +251,8 @@ void updateTitleScreen(const int metalXposBase) {
|
|||||||
int metalXpos = metalXposBase;
|
int metalXpos = metalXposBase;
|
||||||
int metalYpos = 0;
|
int metalYpos = 0;
|
||||||
|
|
||||||
int yStart = sysRegion==CFG_REGION_JPN ? 130 : 72;
|
int yStart = 80;
|
||||||
int yEnd = sysRegion==CFG_REGION_JPN ? 160 : 131;
|
int yEnd = 139;
|
||||||
|
|
||||||
for (int i = 256*yStart; i < 256*yEnd; i++) {
|
for (int i = 256*yStart; i < 256*yEnd; i++) {
|
||||||
metalXpos++;
|
metalXpos++;
|
||||||
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 925 B |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 30 KiB |
BIN
resources/Box Art/Old/Box Art (3DS).png
Normal file
After Width: | Height: | Size: 1.9 MiB |
BIN
resources/Box Art/Old/Box Art (3DS).xcf
Normal file
BIN
resources/Box Art/Old/Box Art (DS).png
Normal file
After Width: | Height: | Size: 1.9 MiB |
BIN
resources/Box Art/Old/Box Art (DS).xcf
Normal file
BIN
resources/Box Art/Old/HPHA.png
Normal file
After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 924 KiB After Width: | Height: | Size: 924 KiB |
Before Width: | Height: | Size: 963 KiB After Width: | Height: | Size: 963 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
BIN
resources/HorizonHD logo.xcf
Normal file
BIN
resources/Old/Wallpaper.png
Normal file
After Width: | Height: | Size: 5.3 MiB |
BIN
resources/Old/Wallpaper.xcf
Normal file
Before Width: | Height: | Size: 5.7 MiB After Width: | Height: | Size: 5.7 MiB |
BIN
resources/Old/title.png
Normal file
After Width: | Height: | Size: 374 KiB |
BIN
resources/Old/title.xcf
Normal file
Before Width: | Height: | Size: 963 KiB After Width: | Height: | Size: 963 KiB |
Before Width: | Height: | Size: 5.3 MiB After Width: | Height: | Size: 6.6 MiB |
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 464 KiB |
@ -101,7 +101,7 @@ static u8 bgPageOrder[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static u8 charPageOrder[] = {
|
static u8 charPageOrder[] = {
|
||||||
4, // Super Photo Studio (Original Characters)
|
4, // Super All-Star Photo Studio (Original Characters)
|
||||||
9, // Banjo-Kazooie series
|
9, // Banjo-Kazooie series
|
||||||
8, // Conker series
|
8, // Conker series
|
||||||
7, // Jet Force Gemini
|
7, // Jet Force Gemini
|
||||||
@ -538,9 +538,7 @@ const char* PhotoStudio::NESCharacterNames(int i) const {
|
|||||||
const char* PhotoStudio::superPhotoTitle(void) const {
|
const char* PhotoStudio::superPhotoTitle(void) const {
|
||||||
switch (sysRegion) {
|
switch (sysRegion) {
|
||||||
default:
|
default:
|
||||||
return "Super Photo Studio";
|
return "Super All-Star Photo Studio";
|
||||||
case CFG_REGION_JPN:
|
|
||||||
return "Girls Mode: Photo Shoot X-over!";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|