Sony Computer Entertainment
PlayStation2
Tap to Skip
Who is playing?
Select an account to start
Select User
Select Account
Cancel
Sony PlayStation 2
00:00:00
Enter
Browser
MEMORY CARD 1
8 MB / 1.2 MB Free
MEMORY CARD 2
8 MB / 8 MB Free
INSTALLED APPS
0 Apps Installed
INSTALLED GAMES
0 Games Installed
Back
Select
Memory Card 1
Back
Configuration
Back
App Store
Editor's Choice
System Utilities Plus
Back
Game Store
Featured Game
Midnight Racer 3D
Back
Installed Games
Back
Installed Apps
Back
App Name
Close App
Special Features
Official PlayStation Packs
PS1
CLASSIC
PS2
EMOTION
PS3
CELL
PS4
ORBIS
PS5
PROSE
Back
add('opacity-100'); }, 3000); // 4. Transition to Main this.startupTimeout = setTimeout(() => { this.endStartup(); }, 16000); }, createPillars() { const field = document.getElementById('pillar-field'); for (let i = 0; i < 40; i++) { const p = document.createElement('div'); p.className = 'pillar'; p.style.left = Math.random() * 100 + '%'; p.style.height = (Math.random() * 200 + 50) + 'px'; p.style.animationDuration = (Math.random() * 3 + 2) + 's'; p.style.animationDelay = (Math.random() * 5) + 's'; field.appendChild(p); } }, endStartup() { if (this.isStartupDone) return; this.isStartupDone = true; if (this.startupTimeout) clearTimeout(this.startupTimeout); // Start black transition this.elements.transistor.classList.add('active'); setTimeout(() => { this.elements.startup.classList.remove('active'); // Go to Who is Playing? screen this.renderWhoPlaying(); this.elements.whoPlaying = document.getElementById('screen-who-playing'); this.elements.whoPlaying.classList.add('active'); window.appState.currentScreen = 'screen-who-playing'; // After screen swap, fade transition out setTimeout(() => { this.elements.transistor.classList.remove('active'); }, 400); // Initialize BGM only after startup is over this.initBGM(); }, 800); }, startClock() { const update = () => { const now = new Date(); const is24 = window.appState.settings.find(s => s.id === 'time').current === 1; let h = now.getHours(); let m = now.getMinutes().toString().padStart(2, '0'); let s = now.getSeconds().toString().padStart(2, '0'); if (!is24) { const ampm = h >= 12 ? 'PM' : 'AM'; h = h % 12; h = h ? h : 12; // the hour '0' should be '12' var timeStr = `${h.toString().padStart(2, '0')}:${m}:${s} ${ampm}`; } else { var timeStr = `${h.toString().padStart(2, '0')}:${m}:${s}`; } this.elements.clockDisplay.textContent = timeStr; this.elements.timeDisplays.forEach(el => el.textContent = timeStr); }; update(); setInterval(update, 1000); } }; // Initialize on DOM ready document.addEventListener('DOMContentLoaded', () => { app.init(); });