0VSol13 commited on
Commit
a9efeeb
·
verified ·
1 Parent(s): eefc23a

fix: ARCADE portal - CDN EmulatorJS, ROM upload UI, NOMADZ branding

Browse files
Files changed (1) hide show
  1. index.html +100 -12
index.html CHANGED
@@ -1,19 +1,107 @@
1
  <!DOCTYPE html>
2
  <html lang="en">
3
  <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
6
- <title>NOMADZ CLOUD ARCADE</title>
7
- <style>body, html { margin: 0; padding: 0; height: 100%; background-color: #000; overflow: hidden; } #game-container { width: 100vw; height: 100vh; }</style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  </head>
9
  <body>
10
- <div id="game-container"></div>
11
- <script>
12
- EJS_player = '#game-container';
13
- EJS_core = 'snes';
14
- EJS_gameUrl = 'ROM_VAULT/super_mario_world.smc';
15
- EJS_pathtodata = 'data/';
16
- </script>
17
- <script src="data/loader.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  </body>
19
  </html>
 
1
  <!DOCTYPE html>
2
  <html lang="en">
3
  <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>NOMADZ CLOUD ARCADE</title>
7
+ <style>
8
+ *{margin:0;padding:0;box-sizing:border-box}
9
+ body{background:#000;color:#0ff;font-family:'Courier New',monospace;min-height:100vh;overflow-x:hidden}
10
+ .scanlines{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.15) 2px,rgba(0,0,0,0.15) 4px)}
11
+ .header{text-align:center;padding:20px;border-bottom:2px solid #0ff;text-shadow:0 0 20px #0ff}
12
+ .header h1{font-size:2.5em;letter-spacing:8px;color:#0ff;animation:glow 2s ease-in-out infinite alternate}
13
+ .header p{color:#f0f;letter-spacing:4px;margin-top:8px;font-size:0.9em}
14
+ @keyframes glow{from{text-shadow:0 0 10px #0ff,0 0 20px #0ff}to{text-shadow:0 0 20px #0ff,0 0 40px #0ff,0 0 60px #0ff}}
15
+ .portal{max-width:1000px;margin:30px auto;padding:0 20px}
16
+ .controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin-bottom:25px}
17
+ .ctrl-group{background:#001a1a;border:1px solid #0ff;padding:15px;border-radius:4px}
18
+ .ctrl-group label{display:block;color:#0ff;font-size:0.75em;letter-spacing:2px;margin-bottom:8px}
19
+ select,input[type=file]{width:100%;background:#000;color:#0ff;border:1px solid #0ff;padding:8px;font-family:inherit;font-size:0.85em;cursor:pointer}
20
+ select:focus,input:focus{outline:none;border-color:#f0f;box-shadow:0 0 8px #f0f}
21
+ .launch-btn{display:block;width:100%;padding:15px;background:transparent;border:2px solid #0ff;color:#0ff;font-family:'Courier New',monospace;font-size:1.2em;letter-spacing:6px;cursor:pointer;text-align:center;transition:all 0.3s;margin-bottom:25px}
22
+ .launch-btn:hover{background:#0ff;color:#000;box-shadow:0 0 30px #0ff}
23
+ #game-container{width:100%;background:#000;border:2px solid #0ff;min-height:500px;position:relative;display:none}
24
+ #game-container.active{display:block}
25
+ .idle-screen{text-align:center;padding:60px 20px;border:2px solid #0ff;background:#000}
26
+ .idle-screen pre{color:#0ff;font-size:0.7em;line-height:1.2;text-shadow:0 0 5px #0ff}
27
+ .idle-screen p{color:#f0f;margin-top:20px;letter-spacing:3px;animation:blink 1s step-end infinite}
28
+ @keyframes blink{50%{opacity:0}}
29
+ .status-bar{display:flex;justify-content:space-between;padding:8px 15px;background:#001a1a;border:1px solid #0ff;margin-bottom:25px;font-size:0.75em;letter-spacing:2px}
30
+ .status-dot{width:8px;height:8px;border-radius:50%;background:#0f0;display:inline-block;margin-right:6px;animation:pulse 1.5s infinite}
31
+ @keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}
32
+ .footer{text-align:center;padding:20px;border-top:1px solid #0ff;color:#0ff;font-size:0.7em;letter-spacing:3px;margin-top:30px}
33
+ </style>
34
  </head>
35
  <body>
36
+ <div class="scanlines"></div>
37
+ <div class="header">
38
+ <h1>NOMADZ</h1>
39
+ <p>// CLOUD ARCADE // VULTURE:INC // 0VSol13 //</p>
40
+ </div>
41
+ <div class="portal">
42
+ <div class="status-bar">
43
+ <span><span class="status-dot"></span>SYSTEM ONLINE</span>
44
+ <span>NODE: ARCADE-01</span>
45
+ <span>EMULATORJS v4.0</span>
46
+ </div>
47
+ <div class="controls">
48
+ <div class="ctrl-group">
49
+ <label>// SYSTEM CORE //</label>
50
+ <select id="core">
51
+ <option value="snes">SNES</option>
52
+ <option value="nes">NES</option>
53
+ <option value="gba">GBA</option>
54
+ <option value="n64">N64</option>
55
+ <option value="genesis">GENESIS</option>
56
+ <option value="arcade">ARCADE</option>
57
+ </select>
58
+ </div>
59
+ <div class="ctrl-group">
60
+ <label>// ROM FILE //</label>
61
+ <input type="file" id="rom-file" accept=".smc,.sfc,.nes,.gba,.n64,.z64,.v64,.md,.bin,.rom,.zip">
62
+ </div>
63
+ <div class="ctrl-group">
64
+ <label>// BIOS (OPTIONAL) //</label>
65
+ <input type="file" id="bios-file" accept=".bin,.bios">
66
+ </div>
67
+ </div>
68
+ <button class="launch-btn" onclick="launchGame()">[ INSERT COIN // LAUNCH ]</button>
69
+ <div class="idle-screen" id="idle-screen">
70
+ <pre>
71
+ ___ _ ___ ___ __ ___ __
72
+ | .\| | \/ || \ / || \
73
+ | | | |\ /| || Y || |
74
+ |__/|_|_| v |_||___|___||__/\|
75
+ ARCADE
76
+ </pre>
77
+ <p>&gt;&gt; SELECT CORE + LOAD ROM TO BEGIN &lt;&lt;</p>
78
+ </div>
79
+ <div id="game-container"></div>
80
+ </div>
81
+ <div class="footer">NOMADZ UNIVERSE // COSMIC-KEY PRODUCTIONS // ALL SYSTEMS NOMINAL</div>
82
+ <script>
83
+ function launchGame(){
84
+ var romInput=document.getElementById('rom-file');
85
+ var coreSelect=document.getElementById('core');
86
+ var biosInput=document.getElementById('bios-file');
87
+ if(!romInput.files||!romInput.files[0]){alert('LOAD A ROM FILE TO LAUNCH');return;}
88
+ var romFile=romInput.files[0];
89
+ var romUrl=URL.createObjectURL(romFile);
90
+ var biosUrl=null;
91
+ if(biosInput.files&&biosInput.files[0])biosUrl=URL.createObjectURL(biosInput.files[0]);
92
+ document.getElementById('idle-screen').style.display='none';
93
+ var gc=document.getElementById('game-container');
94
+ gc.className='active';
95
+ gc.innerHTML='';
96
+ window.EJS_player='#game-container';
97
+ window.EJS_core=coreSelect.value;
98
+ window.EJS_gameUrl=romUrl;
99
+ window.EJS_pathtodata='https://cdn.emulatorjs.org/stable/data/';
100
+ if(biosUrl)window.EJS_biosUrl=biosUrl;
101
+ var s=document.createElement('script');
102
+ s.src='https://cdn.emulatorjs.org/stable/data/loader.js';
103
+ document.body.appendChild(s);
104
+ }
105
+ </script>
106
  </body>
107
  </html>