mirror of
https://github.com/rvtr/SafeNANDManager.git
synced 2026-01-26 13:43:04 -05:00
Add DSi-Only screen
This commit is contained in:
parent
149d0d42df
commit
97d56cd327
@ -18,7 +18,7 @@ BUILD := build
|
||||
SOURCES := source
|
||||
INCLUDES := include
|
||||
DATA :=
|
||||
|
||||
GRAPHICS := ../gfx
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
@ -59,12 +59,14 @@ export ARM9ELF := $(CURDIR)/$(TARGET).elf
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
|
||||
|
||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
|
||||
PNGFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png)))
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# use CXX for linking C++ projects, CC for standard C
|
||||
@ -81,6 +83,7 @@ endif
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
export OFILES := $(addsuffix .o,$(BINFILES)) \
|
||||
$(PNGFILES:.png=.o) \
|
||||
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
||||
@ -120,6 +123,17 @@ $(ARM9ELF) : $(OFILES)
|
||||
@echo $(notdir $<)
|
||||
@$(bin2o)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# This rule creates assembly source files using grit
|
||||
# grit takes an image file and a .grit describing how the file is to be processed
|
||||
# add additional rules like this for each image extension
|
||||
# you use in the graphics folders
|
||||
#---------------------------------------------------------------------------------
|
||||
%.s %.h : %.png %.grit
|
||||
#---------------------------------------------------------------------------------
|
||||
grit $< -fts -o$*
|
||||
|
||||
|
||||
-include $(DEPSDIR)/*.d
|
||||
|
||||
#---------------------------------------------------------------------------------------
|
||||
|
||||
@ -244,6 +244,9 @@ int verifyNocashFooter(nocash_footer_t *footer){
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
extern void dsiOnly(void);
|
||||
dsiOnly();
|
||||
|
||||
consoleDemoInit();
|
||||
iprintf("SafeNANDManager v1.0\n");
|
||||
iprintf("by Rocket Robz\n");
|
||||
|
||||
53
arm9/source/dsi_only.c
Normal file
53
arm9/source/dsi_only.c
Normal file
@ -0,0 +1,53 @@
|
||||
#include <nds.h>
|
||||
#include "dsiOnly_top.h"
|
||||
#include "dsiOnly_bot.h"
|
||||
|
||||
static void dsiOnly_setBrightness(u8 screen, s8 bright) {
|
||||
u16 mode = 1 << 14;
|
||||
|
||||
if (bright < 0) {
|
||||
mode = 2 << 14;
|
||||
bright = -bright;
|
||||
}
|
||||
if (bright > 31) {
|
||||
bright = 31;
|
||||
}
|
||||
*(u16*)(0x0400006C + (0x1000 * screen)) = bright + mode;
|
||||
}
|
||||
|
||||
void dsiOnly(void) {
|
||||
if (isDSiMode()) return; // Proceed running on DSi
|
||||
|
||||
*(u16*)0x0400006C |= BIT(14);
|
||||
*(u16*)0x0400006C &= BIT(15);
|
||||
dsiOnly_setBrightness(0, 31);
|
||||
dsiOnly_setBrightness(1, 31);
|
||||
|
||||
videoSetMode(MODE_4_2D);
|
||||
videoSetModeSub(MODE_4_2D);
|
||||
|
||||
vramSetBankA(VRAM_A_MAIN_BG);
|
||||
vramSetBankB(VRAM_B_MAIN_BG);
|
||||
vramSetBankC(VRAM_C_SUB_BG);
|
||||
vramSetBankD(VRAM_D_LCD);
|
||||
|
||||
// Display DSi Only screen
|
||||
int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 1, 0);
|
||||
decompress(dsiOnly_topBitmap, bgGetGfxPtr(bg3), LZ77Vram);
|
||||
for (int i = 0; i < 16; i++) {
|
||||
BG_PALETTE[i] = dsiOnly_topPal[i];
|
||||
}
|
||||
|
||||
int bg3sub = bgInitSub(3, BgType_Bmp8, BgSize_B8_256x256, 1, 0);
|
||||
decompress(dsiOnly_botBitmap, bgGetGfxPtr(bg3sub), LZ77Vram);
|
||||
for (int i = 0; i < 16; i++) {
|
||||
BG_PALETTE_SUB[i] = dsiOnly_botPal[i];
|
||||
}
|
||||
|
||||
dsiOnly_setBrightness(0, 0);
|
||||
dsiOnly_setBrightness(1, 0);
|
||||
|
||||
while (1) {
|
||||
swiWaitForVBlank();
|
||||
}
|
||||
}
|
||||
12
gfx/dsiOnly_bot.grit
Normal file
12
gfx/dsiOnly_bot.grit
Normal file
@ -0,0 +1,12 @@
|
||||
-W3
|
||||
#bitmap mode
|
||||
-gb
|
||||
|
||||
# disable alpha and set opaque bit for all pixels
|
||||
-gT!
|
||||
|
||||
# use lz77 compression
|
||||
-gzl
|
||||
|
||||
# Set the bit depth to 8
|
||||
-gB8
|
||||
BIN
gfx/dsiOnly_bot.png
Normal file
BIN
gfx/dsiOnly_bot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
12
gfx/dsiOnly_top.grit
Normal file
12
gfx/dsiOnly_top.grit
Normal file
@ -0,0 +1,12 @@
|
||||
-W3
|
||||
#bitmap mode
|
||||
-gb
|
||||
|
||||
# disable alpha and set opaque bit for all pixels
|
||||
-gT!
|
||||
|
||||
# use lz77 compression
|
||||
-gzl
|
||||
|
||||
# Set the bit depth to 8
|
||||
-gB8
|
||||
BIN
gfx/dsiOnly_top.png
Normal file
BIN
gfx/dsiOnly_top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
Loading…
Reference in New Issue
Block a user