Welcome Luma3DS
This commit is contained in:
parent
c14526068a
commit
3fd4603553
4
Makefile
4
Makefile
@ -11,7 +11,7 @@ AS := arm-none-eabi-as
|
|||||||
LD := arm-none-eabi-ld
|
LD := arm-none-eabi-ld
|
||||||
OC := arm-none-eabi-objcopy
|
OC := arm-none-eabi-objcopy
|
||||||
|
|
||||||
name := AuReiNand
|
name := Luma
|
||||||
version := $(shell git describe --abbrev=0 --tags)
|
version := $(shell git describe --abbrev=0 --tags)
|
||||||
|
|
||||||
dir_source := source
|
dir_source := source
|
||||||
@ -60,7 +60,7 @@ clean:
|
|||||||
@rm -rf $(dir_out) $(dir_build)
|
@rm -rf $(dir_out) $(dir_build)
|
||||||
|
|
||||||
$(dir_out):
|
$(dir_out):
|
||||||
@mkdir -p "$(dir_out)/aurei/payloads"
|
@mkdir -p "$(dir_out)/luma/payloads"
|
||||||
|
|
||||||
$(dir_out)/$(name).dat: $(dir_build)/main.bin $(dir_out)
|
$(dir_out)/$(name).dat: $(dir_build)/main.bin $(dir_out)
|
||||||
@$(MAKE) $(FLAGS) -C $(dir_mset) launcher
|
@$(MAKE) $(FLAGS) -C $(dir_mset) launcher
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# AuReiNand
|
# Luma3DS
|
||||||
*A modification of the ReiNand custom firmware*
|
*Noob-proof (N)3DS "Custom Firmware"*
|
||||||
|
|
||||||
**Compiling:**
|
**Compiling:**
|
||||||
|
|
||||||
@ -9,8 +9,8 @@ You can find the compiled files in the 'out' folder.
|
|||||||
|
|
||||||
**Setup / Usage / Features:**
|
**Setup / Usage / Features:**
|
||||||
|
|
||||||
See https://github.com/AuroraWright/AuReiNand/wiki
|
See https://github.com/AuroraWright/Luma3DS/wiki
|
||||||
|
|
||||||
**Credits:**
|
**Credits:**
|
||||||
|
|
||||||
See https://github.com/AuroraWright/AuReiNand/wiki/Credits
|
See https://github.com/AuroraWright/Luma3DS/wiki/Credits
|
@ -123,7 +123,7 @@ static u32 loadConfig(void)
|
|||||||
if(!config)
|
if(!config)
|
||||||
{
|
{
|
||||||
IFile file;
|
IFile file;
|
||||||
if(R_SUCCEEDED(fileOpen(&file, ARCHIVE_SDMC, "/aurei/config.bin", FS_OPEN_READ)))
|
if(R_SUCCEEDED(fileOpen(&file, ARCHIVE_SDMC, "/luma/config.bin", FS_OPEN_READ)))
|
||||||
{
|
{
|
||||||
u64 total;
|
u64 total;
|
||||||
if(R_SUCCEEDED(IFile_Read(&file, &total, &config, 4))) config |= 1 << 4;
|
if(R_SUCCEEDED(IFile_Read(&file, &total, &config, 4))) config |= 1 << 4;
|
||||||
@ -136,12 +136,12 @@ static u32 loadConfig(void)
|
|||||||
|
|
||||||
static int loadTitleLocaleConfig(u64 progId, u8 *regionId, u8 *languageId)
|
static int loadTitleLocaleConfig(u64 progId, u8 *regionId, u8 *languageId)
|
||||||
{
|
{
|
||||||
/* Here we look for "/aurei/locales/[u64 titleID in hex, uppercase].txt"
|
/* Here we look for "/luma/locales/[u64 titleID in hex, uppercase].txt"
|
||||||
If it exists it should contain, for example, "EUR IT" */
|
If it exists it should contain, for example, "EUR IT" */
|
||||||
|
|
||||||
char path[] = "/aurei/locales/0000000000000000.txt";
|
char path[] = "/luma/locales/0000000000000000.txt";
|
||||||
|
|
||||||
u32 i = 30;
|
u32 i = 29;
|
||||||
|
|
||||||
while(progId > 0)
|
while(progId > 0)
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
static u32 loadPayload(const char *pattern)
|
static u32 loadPayload(const char *pattern)
|
||||||
{
|
{
|
||||||
char path[30] = "/aurei/payloads";
|
char path[30] = "/luma/payloads";
|
||||||
|
|
||||||
DIR dir;
|
DIR dir;
|
||||||
FILINFO info;
|
FILINFO info;
|
||||||
@ -19,11 +19,11 @@ static u32 loadPayload(const char *pattern)
|
|||||||
if(result != FR_OK || !info.fname[0])
|
if(result != FR_OK || !info.fname[0])
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
path[15] = '/';
|
path[14] = '/';
|
||||||
u32 i;
|
u32 i;
|
||||||
for(i = 0; info.fname[i]; i++)
|
for(i = 0; info.fname[i]; i++)
|
||||||
path[16 + i] = info.fname[i];
|
path[15 + i] = info.fname[i];
|
||||||
path[16 + i] = '\0';
|
path[15 + i] = '\0';
|
||||||
|
|
||||||
FIL payload;
|
FIL payload;
|
||||||
unsigned int br;
|
unsigned int br;
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
/*
|
|
||||||
* types.h
|
|
||||||
* by Reisyukaku
|
|
||||||
* Copyright (c) 2015 All Rights Reserved
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
@ -80,7 +80,7 @@ fopen: .ascii "OPEN"
|
|||||||
.pool
|
.pool
|
||||||
bin_fname: .dcw "sdmc:/arm9loaderhax.bin"
|
bin_fname: .dcw "sdmc:/arm9loaderhax.bin"
|
||||||
.word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
.word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
dat_fname: .dcw "sdmc:/AuReiNand.dat"
|
dat_fname: .dcw "sdmc:/Luma3DS.dat"
|
||||||
.word 0
|
.word 0
|
||||||
|
|
||||||
.align 4
|
.align 4
|
||||||
|
@ -43,7 +43,7 @@ static int fsize(FILE *fp)
|
|||||||
static void error(FILE *payload, const char *message)
|
static void error(FILE *payload, const char *message)
|
||||||
{
|
{
|
||||||
fclose(payload);
|
fclose(payload);
|
||||||
printf("%s, are you sure you're using an AuReiNand payload?\n", message);
|
printf("%s, are you sure you're using a Luma3DS payload?\n", message);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
if(argc == 1)
|
if(argc == 1)
|
||||||
{
|
{
|
||||||
printf("Usage: %s <AuReiNand payload path>\n", argv[0]);
|
printf("Usage: %s <Luma3DS payload path>\n", argv[0]);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* buttons.h
|
* buttons.h
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* config.c
|
* config.c
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* config.h
|
* config.h
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* crypto.c
|
* crypto.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Crypto libs from http://github.com/b1l1s/ctr
|
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
* Crypto libs from http://github.com/b1l1s/ctr
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "crypto.h"
|
#include "crypto.h"
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* crypto.h
|
* crypto.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Crypto libs from http://github.com/b1l1s/ctr
|
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
* Crypto libs from http://github.com/b1l1s/ctr
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* draw.c
|
* draw.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Code to print to the screen by mid-kid @CakesFW
|
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
* Code to print to the screen by mid-kid @CakesFW
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "draw.h"
|
#include "draw.h"
|
||||||
@ -41,8 +39,8 @@ void loadSplash(void)
|
|||||||
initScreens();
|
initScreens();
|
||||||
|
|
||||||
//Don't delay boot if no splash image is on the SD
|
//Don't delay boot if no splash image is on the SD
|
||||||
if(fileRead(fb->top_left, "/aurei/splash.bin", 0x46500) +
|
if(fileRead(fb->top_left, "/luma/splash.bin", 0x46500) +
|
||||||
fileRead(fb->bottom, "/aurei/splashbottom.bin", 0x38400))
|
fileRead(fb->bottom, "/luma/splashbottom.bin", 0x38400))
|
||||||
{
|
{
|
||||||
u64 i = 0x1400000;
|
u64 i = 0x1400000;
|
||||||
while(--i) __asm("mov r0, r0"); //Less Ghetto sleep func
|
while(--i) __asm("mov r0, r0"); //Less Ghetto sleep func
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* draw.h
|
* draw.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Code to print to the screen by mid-kid @CakesFW
|
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
* Code to print to the screen by mid-kid @CakesFW
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* emunand.c
|
* emunand.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "emunand.h"
|
#include "emunand.h"
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* emunand.h
|
* emunand.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* firm.c
|
* firm.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "firm.h"
|
#include "firm.h"
|
||||||
@ -44,7 +42,7 @@ void main(void)
|
|||||||
mountFs();
|
mountFs();
|
||||||
|
|
||||||
//Attempt to read the configuration file
|
//Attempt to read the configuration file
|
||||||
const char configPath[] = "/aurei/config.bin";
|
const char configPath[] = "/luma/config.bin";
|
||||||
if(fileRead(&config, configPath, 4)) needConfig = 1;
|
if(fileRead(&config, configPath, 4)) needConfig = 1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -196,7 +194,7 @@ static inline void loadFirm(u32 firmType, u32 externalFirm)
|
|||||||
|
|
||||||
/* If the conditions to load the external FIRM aren't met, or reading fails, or the FIRM
|
/* If the conditions to load the external FIRM aren't met, or reading fails, or the FIRM
|
||||||
doesn't match the console, load it from CTRNAND */
|
doesn't match the console, load it from CTRNAND */
|
||||||
if(!externalFirm || !fileRead(firm, "/aurei/firmware.bin", 0) ||
|
if(!externalFirm || !fileRead(firm, "/luma/firmware.bin", 0) ||
|
||||||
(((u32)section[2].address >> 8) & 0xFF) != (console ? 0x60 : 0x68))
|
(((u32)section[2].address >> 8) & 0xFF) != (console ? 0x60 : 0x68))
|
||||||
{
|
{
|
||||||
const char *firmFolders[3][2] = {{ "00000002", "20000002" },
|
const char *firmFolders[3][2] = {{ "00000002", "20000002" },
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* firm.h
|
* firm.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* fs.c
|
* fs.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fs.h"
|
#include "fs.h"
|
||||||
@ -56,7 +54,7 @@ u32 defPayloadExists(void)
|
|||||||
DIR dir;
|
DIR dir;
|
||||||
FILINFO info;
|
FILINFO info;
|
||||||
|
|
||||||
FRESULT result = f_findfirst(&dir, &info, "/aurei/payloads", "def_*.bin");
|
FRESULT result = f_findfirst(&dir, &info, "/luma/payloads", "def_*.bin");
|
||||||
|
|
||||||
f_closedir(&dir);
|
f_closedir(&dir);
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* fs.h
|
* fs.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* loader.c
|
* loader.c
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "loader.h"
|
#include "loader.h"
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* loader.h
|
* loader.h
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* memory.c
|
* memory.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Quick Search algorithm adapted from http://igm.univ-mlv.fr/~lecroq/string/node19.html#SECTION00190
|
* Quick Search algorithm adapted from http://igm.univ-mlv.fr/~lecroq/string/node19.html#SECTION00190
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* memory.h
|
* memory.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Quick Search algorithm adapted from http://igm.univ-mlv.fr/~lecroq/string/node19.html#SECTION00190
|
* Quick Search algorithm adapted from http://igm.univ-mlv.fr/~lecroq/string/node19.html#SECTION00190
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* patches.c
|
* patches.c
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "patches.h"
|
#include "patches.h"
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* patches.h
|
* patches.h
|
||||||
* by Reisyukaku / Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* screeninit.c
|
* screeninit.c
|
||||||
* by Aurora Wright
|
*
|
||||||
* Screen init code by dark_samus, bil1s, Normmatt, delebile and others.
|
* Screen init code by dark_samus, bil1s, Normmatt, delebile and others.
|
||||||
* Screen deinit code by tiniVi.
|
* Screen deinit code by tiniVi.
|
||||||
*
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "screeninit.h"
|
#include "screeninit.h"
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* screeninit.h
|
* screeninit.h
|
||||||
* by Aurora Wright
|
*
|
||||||
* Screen init code by dark_samus, bil1s, Normmatt, delebile and others.
|
* Screen init code by dark_samus, bil1s, Normmatt, delebile and others.
|
||||||
* Screen deinit code by tiniVi.
|
* Screen deinit code by tiniVi.
|
||||||
*
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* types.h
|
* types.h
|
||||||
* by Reisyukaku
|
|
||||||
* Copyright (c) 2015 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* utils.c
|
* utils.c
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* utils.h
|
* utils.h
|
||||||
* by Aurora Wright
|
|
||||||
* Copyright (c) 2016 All Rights Reserved
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
Reference in New Issue
Block a user