Deploying to gh-pages from @ hacks-guide/Guide_3DS@c6df8a43dd 🚀
This commit is contained in:
parent
18ba44206a
commit
33ac29920f
2 changed files with 46 additions and 14 deletions
|
@ -8,6 +8,42 @@
|
||||||
const DEVICE_N3DS = 1;
|
const DEVICE_N3DS = 1;
|
||||||
const DEVICE_O3DS = 0;
|
const DEVICE_O3DS = 0;
|
||||||
|
|
||||||
|
// Possible max minor for each major, major as key
|
||||||
|
const major_minor_map = {
|
||||||
|
0: -1, // invalidate all 0.x
|
||||||
|
1: 1,
|
||||||
|
2: 2,
|
||||||
|
3: 1,
|
||||||
|
4: 5,
|
||||||
|
5: 1,
|
||||||
|
6: 4,
|
||||||
|
7: 2,
|
||||||
|
8: 1,
|
||||||
|
9: 9,
|
||||||
|
10: 7,
|
||||||
|
11: 17
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate version
|
||||||
|
// CHN/TWN doesn't have new model
|
||||||
|
// KOR/CHN/TWN doesn't have 11.17 currently
|
||||||
|
function validate_version(major, minor, native, region, model) {
|
||||||
|
if (model == DEVICE_N3DS && ["C", "T"].includes(region)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (major == 11 && minor == 17 && ["K", "C", "T"].includes(region)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const minor_max = major_minor_map[major];
|
||||||
|
if (!isNaN(minor_max) && minor > minor_max) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Soundhax
|
// Soundhax
|
||||||
// 1.0-11.3, all regions, all consoles
|
// 1.0-11.3, all regions, all consoles
|
||||||
function can_soundhax(major, minor, native, region, model) {
|
function can_soundhax(major, minor, native, region, model) {
|
||||||
|
@ -221,12 +257,12 @@ function is_o3ds_1117(major, minor, native, region, model) {
|
||||||
- Use alternate exploits; can't hack without any extra stuff
|
- Use alternate exploits; can't hack without any extra stuff
|
||||||
*/
|
*/
|
||||||
function redirect() {
|
function redirect() {
|
||||||
let major = document.getElementById("major");
|
const major = document.getElementById("major").value;
|
||||||
let minor = document.getElementById("minor");
|
const minor = document.getElementById("minor").value;
|
||||||
let nver = document.getElementById("nver");
|
const nver = document.getElementById("nver").value;
|
||||||
let region = document.getElementById("region");
|
const region = document.getElementById("region").value;
|
||||||
let isN3DS = document.getElementById("new3DS").checked;
|
const isN3DS = document.getElementById("new3DS").checked;
|
||||||
let isO3DS = document.getElementById("old3DS").checked;
|
const isO3DS = document.getElementById("old3DS").checked;
|
||||||
document.getElementById("result_noneSelected").style.display = "none";
|
document.getElementById("result_noneSelected").style.display = "none";
|
||||||
document.getElementById("result_invalidVersion").style.display = "none";
|
document.getElementById("result_invalidVersion").style.display = "none";
|
||||||
document.getElementById("result_methodUnavailable").style.display = "none";
|
document.getElementById("result_methodUnavailable").style.display = "none";
|
||||||
|
@ -234,22 +270,18 @@ function redirect() {
|
||||||
document.getElementById("result_noneSelected").style.display = "block";
|
document.getElementById("result_noneSelected").style.display = "block";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (major.value == 0) {
|
|
||||||
document.getElementById("result_invalidVersion").style.display = "block";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Realistically only one of these should be possible with the given elements
|
// Realistically only one of these should be possible with the given elements
|
||||||
let model = -1;
|
let model = -1;
|
||||||
if(isO3DS) model = DEVICE_O3DS
|
if(isO3DS) model = DEVICE_O3DS
|
||||||
else if(isN3DS) model = DEVICE_N3DS;
|
else if(isN3DS) model = DEVICE_N3DS;
|
||||||
|
|
||||||
if (model == DEVICE_N3DS && ["C", "T"].includes(region.value)) {
|
if (!validate_version(major, minor, nver, region, model)) {
|
||||||
document.getElementById("result_invalidVersion").style.display = "block";
|
document.getElementById("result_invalidVersion").style.display = "block";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let redirected = [
|
const redirected = [
|
||||||
can_soundhax,
|
can_soundhax,
|
||||||
can_ssloth,
|
can_ssloth,
|
||||||
can_safecerthax,
|
can_safecerthax,
|
||||||
|
@ -257,7 +289,7 @@ function redirect() {
|
||||||
can_seedminer,
|
can_seedminer,
|
||||||
can_superskaterhax,
|
can_superskaterhax,
|
||||||
is_o3ds_1117
|
is_o3ds_1117
|
||||||
].some(func => func(major.value, minor.value, nver.value, region.value, model));
|
].some(func => func(major, minor, nver, region, model));
|
||||||
if (redirected) return true;
|
if (redirected) return true;
|
||||||
|
|
||||||
// if it actually got to this point, there is no exploit available.
|
// if it actually got to this point, there is no exploit available.
|
||||||
|
|
2
feed.xml
2
feed.xml
|
@ -1 +1 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://3ds.hacks.guide/feed.xml" rel="self" type="application/atom+xml" /><link href="https://3ds.hacks.guide/" rel="alternate" type="text/html" /><updated>2023-07-13T04:14:07+00:00</updated><id>https://3ds.hacks.guide/feed.xml</id><title type="html">3DS Hacks Guide</title><subtitle>A complete guide to 3DS custom firmware</subtitle><author><name>Nintendo Homebrew</name></author></feed>
|
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://3ds.hacks.guide/feed.xml" rel="self" type="application/atom+xml" /><link href="https://3ds.hacks.guide/" rel="alternate" type="text/html" /><updated>2023-07-15T10:25:25+00:00</updated><id>https://3ds.hacks.guide/feed.xml</id><title type="html">3DS Hacks Guide</title><subtitle>A complete guide to 3DS custom firmware</subtitle><author><name>Nintendo Homebrew</name></author></feed>
|
Loading…
Reference in a new issue