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 + + + + + \ 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! + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aura-Aura ClimberBrain AgeDr. MarioBirds and BeansPaper Airplane ChaseDSi Browser
ElectroplanktonMario CalculatorUNOGame & Watch BallSpace Invaders Extreme ZFlipnote Studio

maybe one day...

+

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.

+
+ +
+

Branding

+ +

Download SVG

+ +

Download SVG

+
+ +

+ + \ 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