diff --git a/404.html b/404.html
new file mode 100644
index 0000000..b9c2a62
--- /dev/null
+++ b/404.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ 404 Not Found - DSiMart
+
+
+
+
+
+
+
+404 Page Not Found
+
+Home page Previous page
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index e5755bf..57acbdc 100644
--- a/README.md
+++ b/README.md
@@ -4,22 +4,15 @@
This is the source code of DSiMart's soon-to-be website. It contains NDS files, branding, and project information.
-## Folders and build script
+## Folders and sources
* `/media` Media files used throughout the site (pictures, branding, sound effects)
* `/meta` Files used for the website (CSS, JS, images, music)
* `/nds` NDS files (shop)
* `.gitlab-ci.yml` Build script for the website
+* `404.html` 404 page
+* `favicon.ico` Favicon
## Content pages
-* `404.html` 404 page
-* `branding.html` Branding for DSiMart
-* `credits.html` Credits for DSiMart
-* `CNAME` Domain text file
-* `errors.html` Error Code Checker
-* `favicon.ico` Favicon
* `index.html` Main page
-* `install.html` Installation guide
-* `support.html` Support/FAQ page
-
*The WiiMart Team is not affiliated with Nintendo or any related parties. To contact, please send an email to support@wiimart.org*
\ No newline at end of file
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..022ef94
Binary files /dev/null and b/favicon.ico differ
diff --git a/index.html b/index.html
index 6ba78e7..c5f00c0 100644
--- a/index.html
+++ b/index.html
@@ -1,44 +1,61 @@
- DSiMart
-
-
-
+
+
+ DSiMart: private beta DSi Shop revival!
+
+
+
+
+
+
+
+
+
+
-
+DSiMart
+
+
+
DSiMart is an upcoming private beta DSi Shop revival. Like WiiMart , it is
+ an open-source revival for the defunct DSi Shop service.
+
+
+
+
Screenshots
+
+
These were taken during testing.
+
+
+
+
Frequently Asked Questions
+
When will it be released?
+
We do not have an ETA on the project.
+
What will it have?
+
DSiWare alongside custom-made software. Custom software will be added if it is small enough. (16 MB)
+
Will it be on 3DS?
+
Due to difficulties with the 293003 code, DSiMart will not be released on Nintendo 3DS.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/media/branding-bag-bg-white.png b/media/branding-bag-bg-white.png
new file mode 100644
index 0000000..4f92c3d
Binary files /dev/null and b/media/branding-bag-bg-white.png differ
diff --git a/media/branding-bag-no-bg.png b/media/branding-bag-no-bg.png
new file mode 100644
index 0000000..6ff244f
Binary files /dev/null and b/media/branding-bag-no-bg.png differ
diff --git a/media/branding-bag.png b/media/branding-bag.png
new file mode 100644
index 0000000..6815556
Binary files /dev/null and b/media/branding-bag.png differ
diff --git a/media/branding-bag.svg b/media/branding-bag.svg
new file mode 100644
index 0000000..c7cfa88
--- /dev/null
+++ b/media/branding-bag.svg
@@ -0,0 +1,17 @@
+
+ dsimart-bag
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/media/branding-wordmark.svg b/media/branding-wordmark.svg
new file mode 100644
index 0000000..c114a96
--- /dev/null
+++ b/media/branding-wordmark.svg
@@ -0,0 +1,7 @@
+
+ DSi★MART
+
+
+
\ No newline at end of file
diff --git a/media/example-1.png b/media/example-1.png
new file mode 100644
index 0000000..9de750b
Binary files /dev/null and b/media/example-1.png differ
diff --git a/media/example-2.png b/media/example-2.png
new file mode 100644
index 0000000..e4f466f
Binary files /dev/null and b/media/example-2.png differ
diff --git a/media/example-3.png b/media/example-3.png
new file mode 100644
index 0000000..e613529
Binary files /dev/null and b/media/example-3.png differ
diff --git a/media/example-4.png b/media/example-4.png
new file mode 100644
index 0000000..4c2b6e6
Binary files /dev/null and b/media/example-4.png differ
diff --git a/meta/NEW_en.gif b/meta/NEW_en.gif
new file mode 100644
index 0000000..cfcb317
Binary files /dev/null and b/meta/NEW_en.gif differ
diff --git a/meta/arrow-left-hover.png b/meta/arrow-left-hover.png
new file mode 100644
index 0000000..52255e9
Binary files /dev/null and b/meta/arrow-left-hover.png differ
diff --git a/meta/arrow-left-pressed.png b/meta/arrow-left-pressed.png
new file mode 100644
index 0000000..e619766
Binary files /dev/null and b/meta/arrow-left-pressed.png differ
diff --git a/meta/arrow-left.png b/meta/arrow-left.png
new file mode 100644
index 0000000..176ef3a
Binary files /dev/null and b/meta/arrow-left.png differ
diff --git a/meta/arrow-right-hover.png b/meta/arrow-right-hover.png
new file mode 100644
index 0000000..bba45d9
Binary files /dev/null and b/meta/arrow-right-hover.png differ
diff --git a/meta/arrow-right-pressed.png b/meta/arrow-right-pressed.png
new file mode 100644
index 0000000..cb61265
Binary files /dev/null and b/meta/arrow-right-pressed.png differ
diff --git a/meta/arrow-right.png b/meta/arrow-right.png
new file mode 100644
index 0000000..7d37646
Binary files /dev/null and b/meta/arrow-right.png differ
diff --git a/meta/background.png b/meta/background.png
new file mode 100644
index 0000000..561b769
Binary files /dev/null and b/meta/background.png differ
diff --git a/meta/em-warning.png b/meta/em-warning.png
new file mode 100644
index 0000000..caf8fd6
Binary files /dev/null and b/meta/em-warning.png differ
diff --git a/meta/favicon-fishie.ico b/meta/favicon-fishie.ico
new file mode 100644
index 0000000..e0bbfcd
Binary files /dev/null and b/meta/favicon-fishie.ico differ
diff --git a/meta/favicon.ico b/meta/favicon.ico
new file mode 100644
index 0000000..4af3b97
Binary files /dev/null and b/meta/favicon.ico differ
diff --git a/meta/gallery.js b/meta/gallery.js
new file mode 100644
index 0000000..730d9ee
--- /dev/null
+++ b/meta/gallery.js
@@ -0,0 +1,63 @@
+const galleries = document.querySelectorAll('.gallery');
+
+galleries.forEach(gallery => {
+ const images = gallery.querySelectorAll('img');
+ let currentIndex = 0;
+
+ const leftArrow = document.createElement('img');
+ leftArrow.src = 'meta/arrow-left.png';
+ leftArrow.classList.add('arrow', 'left');
+ gallery.appendChild(leftArrow);
+
+ const rightArrow = document.createElement('img');
+ rightArrow.src = 'meta/arrow-right.png';
+ rightArrow.classList.add('arrow', 'right');
+ gallery.appendChild(rightArrow);
+
+ function showImage(index) {
+ images.forEach((img, i) => {
+ img.style.display = (i === index) ? 'block' : 'none';
+ });
+ }
+
+ function handleArrowClick(isLeftArrow) {
+ currentIndex = isLeftArrow
+ ? (currentIndex === 0 ? images.length - 1 : currentIndex - 1)
+ : (currentIndex === images.length - 1 ? 0 : currentIndex + 1);
+
+ showImage(currentIndex);
+
+ if (isLeftArrow) {
+ leftArrow.src = 'meta/arrow-left-pressed.png';
+ rightArrow.src = 'meta/arrow-right.png';
+ setTimeout(() => {
+ leftArrow.src = 'meta/arrow-left.png';
+ }, 200);
+ } else {
+ rightArrow.src = 'meta/arrow-right-pressed.png';
+ leftArrow.src = 'meta/arrow-left.png';
+ setTimeout(() => {
+ rightArrow.src = 'meta/arrow-right.png';
+ }, 200);
+ }
+ }
+
+ leftArrow.addEventListener('click', () => handleArrowClick(true));
+ rightArrow.addEventListener('click', () => handleArrowClick(false));
+
+ leftArrow.addEventListener('mouseover', () => {
+ leftArrow.src = 'meta/arrow-left-hover.png';
+ });
+ leftArrow.addEventListener('mouseout', () => {
+ leftArrow.src = 'meta/arrow-left.png';
+ });
+
+ rightArrow.addEventListener('mouseover', () => {
+ rightArrow.src = 'meta/arrow-right-hover.png';
+ });
+ rightArrow.addEventListener('mouseout', () => {
+ rightArrow.src = 'meta/arrow-right.png';
+ });
+
+ showImage(currentIndex);
+});
\ No newline at end of file
diff --git a/meta/ico-bsky.png b/meta/ico-bsky.png
new file mode 100644
index 0000000..6624bf1
Binary files /dev/null and b/meta/ico-bsky.png differ
diff --git a/meta/ico-git.png b/meta/ico-git.png
new file mode 100644
index 0000000..cb5e1dc
Binary files /dev/null and b/meta/ico-git.png differ
diff --git a/meta/ico-twitch.png b/meta/ico-twitch.png
new file mode 100644
index 0000000..dd6d00d
Binary files /dev/null and b/meta/ico-twitch.png differ
diff --git a/meta/ico-twt.png b/meta/ico-twt.png
new file mode 100644
index 0000000..dae34ce
Binary files /dev/null and b/meta/ico-twt.png differ
diff --git a/meta/ico-web.png b/meta/ico-web.png
new file mode 100644
index 0000000..d4ac54c
Binary files /dev/null and b/meta/ico-web.png differ
diff --git a/meta/ico-yt.png b/meta/ico-yt.png
new file mode 100644
index 0000000..a08982f
Binary files /dev/null and b/meta/ico-yt.png differ
diff --git a/meta/issue.js b/meta/issue.js
new file mode 100644
index 0000000..921f28b
--- /dev/null
+++ b/meta/issue.js
@@ -0,0 +1,14 @@
+document.querySelectorAll('.issue-button').forEach(button => {
+ button.addEventListener('click', function() {
+ const parentDiv = this.parentElement; // Get the parent div with class "issue"
+ const hiddenElements = parentDiv.querySelectorAll('.issue-detail'); // Select hidden elements within this div
+
+ // Hide the button
+ this.style.display = 'none';
+
+ // Show the hidden elements
+ hiddenElements.forEach(element => {
+ element.style.display = 'block';
+ });
+ });
+});
\ No newline at end of file
diff --git a/meta/main.css b/meta/main.css
new file mode 100644
index 0000000..91b48b2
--- /dev/null
+++ b/meta/main.css
@@ -0,0 +1,80 @@
+@font-face {font-family: 'Shop'; src: url('shop.ttf') format('truetype'); font-weight: normal; font-style: normal;}
+
+/*Main things*/
+body {scroll-behavior:smooth;text-align: center;font-family: sans-serif;font-family:'Shop',sans-serif; overflow-x:hidden;transition:.1s ease-in-out;}
+div {line-height:23.3px; background-color: white;border-radius: 5px;border-color: #ED0972;box-shadow: 0 0 10px #2525255d; box-sizing: border-box;border-width: 2px;border-style: solid; width: 35%; text-align: center;margin: 0 auto;padding: 5px;margin-top: 8px; overflow: auto;}
+div.clear {border:none;background: none;box-shadow: none;}
+
+nav {margin-bottom: 20px;line-height: 30px;}
+
+a.btn {background-color: #E6FFF2;border-radius: 10px;padding: 4px;color:black;text-decoration: none;filter: drop-shadow(1px 1px 1px black);font-weight: 100;display:inline}
+a.btn:hover {background-color: #C7FDFF;}
+a.btn:active {filter: none;}
+span.active {background-color: #c7c7c7;border-radius: 10px;padding: 4px;font-weight: 100;display:inline;cursor:auto;user-select:none}
+
+button {margin-bottom: 6px;font-family:'Shop',sans-serif;padding: 5px;outline: 1px solid #ED0972;border-radius: 3px;filter: drop-shadow(1px 1px 3.4px #bbbbbb);border:none}
+button:hover {box-shadow: inset 0 0 0 3px #ED0972;cursor:pointer}
+
+footer {color:grey}
+footer a {color:grey}
+
+/* Text stuff */
+h1, h2 {color:#ED0972;}
+h1 {font-size: 30px;}
+h1 a {text-decoration:none}
+hr {border-color:grey}
+
+a {color:#ED0972; font-weight: bold;}
+::selection{color: #323232;background: #ED0972;}
+::-moz-selection{color: #323232;background:#ED0972;}
+body.dir {text-align: left;}
+body.dir a {color:black;text-decoration: none;font-weight: normal;}
+body.dir a:hover {color:#ED0972}
+table {border: 1px solid white; border-collapse: collapse;}
+th, td {border: 1px solid;}
+button.ico {width:20px; height:20px;}
+img.ico {vertical-align: middle; width:25px; height:25px;}
+img.wb {outline: solid 1px black}
+.blue {color:#1164E9;}
+
+mark {color:white;background:#ED0972;font-weight:bold;}
+mark.new {background-color: gold;color:orangered;border-radius: 10px; padding-right:5px; padding-left:5px;font-weight:bold;}
+
+/* Gallery */
+div.gallery {position: relative; overflow: hidden;width:100%;}
+img.slide {width:100%; min-height:200px; min-width:100%;}
+img.arrow {min-height:68px; position: absolute; top: 50%; transform: translateY(-50%); cursor: pointer; width: 60px; height: auto;}
+img.left {left: 10px; animation: hoverAnimation 0.5s infinite alternate;}
+img.right {right: 10px; animation: rightHoverAnimation 0.5s infinite alternate;}
+
+/* Music */
+div#bgmplayer {z-index: 1000;transition:.3s ease-in-out; opacity:30%; position:fixed; bottom:3px; border:2px solid #ED0972; left:3px; float:left; width:160px; height:40px; overflow:hidden;}
+div#bgmplayer:hover {opacity: 50%; transition:.3s ease-in-out; height:100px; width:200px; overflow:auto;scrollbar-width: none;}
+div#bgmplayer h2 {height:20px; margin-top:-9px; line-height:40px}
+div#bgmplayer p {line-height:20px;color:#9A9A9A;margin-top:-10px;font-style:italic;font-size:10px;}
+
+
+/* Auto-resizer, do not change pls*/
+@media (max-width: 768px) {div {width: 95%} }
+
+/* Dark theme via system preference */
+@media (prefers-color-scheme: dark)
+{
+ body {background-color: black; color: #e0e0e0;}
+ div {background-color: #1e1e1e; border-color: #ED0972; box-shadow: 0 0 10px #000000CC;}
+ a.btn {background-color: #587566;color:white}
+ a.btn:hover {background-color: #7da2a3;}
+ span.active {background-color: #313131}
+ button {background-color: #3b3b3b; color: #e0e0e0;filter: drop-shadow(1px 1px 3.4px #747474)}
+ button:active {box-shadow: none;}
+ footer, footer a {color: #9A9A9A;}
+ h1, h2, a {color: #ED0972;}
+ ::selection {color: #e0e0e0; background: #ED0972;}
+ ::-moz-selection {color: #e0e0e0; background: #ED0972;}
+ mark {color:black;background:#ED0972;font-weight:bold;}
+ img.wb {outline: solid 1px white}
+ .blue {color:#5898ff;}
+ #errorCode {background-color: black;border: 2px solid grey;color:white;}
+ body.dir a {color:white}
+ mark {color:white}
+}
diff --git a/meta/music.js b/meta/music.js
new file mode 100644
index 0000000..633e11b
--- /dev/null
+++ b/meta/music.js
@@ -0,0 +1,98 @@
+// Wii Shop BGM Player, suggested by @legamer66 (https://discord.com/channels/1346485785284575335/1346485786039681056/1351527080546009259)
+
+function hideConsoleControls() {
+ const userAgent = navigator.userAgent.toLowerCase();
+ const isConsoleBrowser =
+ userAgent.includes('wii') ||
+ userAgent.includes('nintendo ds') ||
+ userAgent.includes('nintendo 3ds') ||
+ userAgent.includes('nintendo');
+ // they can't play music so rip
+ if (isConsoleBrowser) {const bgmPlayerDiv = document.getElementById('bgmplayer');
+ if (bgmPlayerDiv) {bgmPlayerDiv.style.display = 'none';} }
+}
+
+
+var shoploop = new Audio("/meta/shop.wav");
+shoploop.loop = true;
+shoploop.volume = 0; // prevent clipping
+
+function loadafterwednesdaycheck() {
+ hideConsoleControls();
+
+ var savedTime = localStorage.getItem("bgmlooppoint");
+
+ if (savedTime) {
+ shoploop.currentTime = parseFloat(savedTime);
+ }
+
+ if (localStorage.getItem("shopmusic") === "playing") {
+ playBGMonload();
+ } else {
+ pauseBGM();
+ }
+ }
+
+window.onbeforeunload = function() {
+ localStorage.setItem("bgmlooppoint", shoploop.currentTime);
+};
+
+function playBGM() {
+ shoploop.volume = 0.8;
+ localStorage.setItem("shopmusic", "playing");
+ shoploop.play();
+ document.getElementById("shopbgm").innerHTML = "Pause";
+ document.getElementById("shopbgmselector").href = "javascript:pauseBGM();";
+}
+
+function pauseBGM() {
+ localStorage.setItem("shopmusic", "paused");
+ shoploop.pause();
+ document.getElementById("shopbgm").innerHTML = "Play";
+ document.getElementById("shopbgmselector").href = "javascript:playBGM();";
+}
+
+function playBGMonload() {
+ // this version has it fade in for smoother experince between pages uwu (i could of used set interval, but memory issues?)
+ fadeinbgm();
+ localStorage.setItem("shopmusic", "playing");
+ shoploop.play();
+ document.getElementById("shopbgm").innerHTML = "Pause";
+ document.getElementById("shopbgmselector").href = "javascript:pauseBGM();";
+}
+
+function fadeinbgm() {
+ shoploop.volume="0.0";
+ setTimeout(fade2,10);
+}
+function fade2() {
+ shoploop.volume="0.1";
+ setTimeout(fade3,10);
+}
+function fade3() {
+ shoploop.volume="0.2";
+ setTimeout(fade4,10);
+}
+function fade4() {
+ shoploop.volume="0.3";
+ setTimeout(fade5,10);
+}
+function fade5() {
+ shoploop.volume="0.4";
+ setTimeout(fade6,10);
+}
+function fade6() {
+ shoploop.volume="0.5";
+ setTimeout(fade7,10);
+}
+function fade7() {
+ shoploop.volume="0.6";
+ setTimeout(fade8,10);
+}
+function fade8() {
+ shoploop.volume="0.7";
+ setTimeout(fade9,10);
+}
+function fade9() {
+ shoploop.volume="0.8";
+}
\ No newline at end of file
diff --git a/meta/shop.ttf b/meta/shop.ttf
new file mode 100644
index 0000000..ed128f1
Binary files /dev/null and b/meta/shop.ttf differ
diff --git a/meta/shop.wav b/meta/shop.wav
new file mode 100644
index 0000000..4d44507
Binary files /dev/null and b/meta/shop.wav differ