HeadlinesBriefing HeadlinesBriefing 12 languages

God of War on PSP, recompiled to WebAssembly and running in the browser

Hacker News ·

🇬🇧 English

PSP games running in the browser without an emulator. The game's MIPS machine code is translated ahead of time into C++, compiled to Web Assembly, and linked against a small reimplementation of the PSP's operating system and graphics chip that draws with Web GL2.

The first title brought up this way is God of War: Chains of Olympus. It plays from boot through the menus, cutscenes and combat, at 60 frames per second in the scenes measured so far in Chrome and Firefox on a laptop, at up to four times the PSP's resolution, and on phones with on-screen touch controls.

God of War: Ghost of Sparta followed through the same scripts. It needed the PSP's DRM decryption for one small file, a handful of system calls and a lighting fix, and no performance work: it runs at 55 to 60 frames per second at three times the native resolution. No game data is included here.

The first playable build ran at 6 frames per second. Most of the way to 60 came from finding out where the time actually went rather than from making the renderer faster.

View original article →


🇸🇦 العربية

ألعاب PSP في المتصفح بدون محاكي عبر WebAssembly

ألعاب PSP تعمل في المتصفح بدون محاكي. يتم ترجمة كود الآلة MIPS الخاص باللعبة مسبقًا إلى C++، وتجميعه إلى Web Assembly، وربطه بإعادة تنفيذ صغيرة لنظام تشغيل PSP ورقاقة الرسوميات التي ترسم باستخدام Web GL2.

أول عنوان تم تشغيله بهذه الطريقة هو God of War: Chains of Olympus. يعمل من الإقلاع عبر القوائم، المشاهد السينمائية والقتال، بمعدل 60 إطارًا في الثانية في المشاهد التي تم قياسها حتى الآن في Chrome وFirefox على كمبيوتر محمول، بدقة تصل إلى أربعة أضعاف دقة PSP، وعلى الهواتف مع عناصر تحكم تعمل باللمس على الشاشة.

God of War: Ghost of Sparta تبع نفس البرامج النصية. احتاج إلى فك تشفير DRM الخاص بـ PSP لملف صغير واحد، وحفنة من استدعاءات النظام وإصلاح إضاءة، ولا عمل أداء: يعمل بمعدل 55 إلى 60 إطارًا في الثانية بثلاثة أضعاف الدقة الأصلية. لا يتم تضمين أي بيانات لعبة هنا.

أول بناء قابل للتشغيل عمل بمعدل 6 إطارات في الثانية. جاء معظم الطريق إلى 60 من معرفة أين ذهب الوقت فعليًا بدلاً من جعل المُقدّم أسرع.

كيف تعمل ألعاب PSP في المتصفح بدون محاكي؟

يتم إعادة ترجمة كود الآلة MIPS الخاص باللعبة بشكل ثابت إلى C++، وتجميعه إلى WebAssembly، وربطه بمحاكاة عالية المستوى لنظام تشغيل PSP ومُقدّم رسوميات WebGL2.

العربية version →


🇧🇩 বাংলা

WebAssembly এর মাধ্যমে ব্রাউজারে এমুলেটর ছাড়া PSP গেম

PSP গেম ব্রাউজারে এমুলেটর ছাড়া চলছে। গেমের MIPS মেশিন কোড আগে থেকেই C++ এ অনুবাদ করা হয়, Web Assembly এ কম্পাইল করা হয়, এবং PSP এর অপারেটিং সিস্টেম এবং গ্রাফিক্স চিপের একটি ছোট পুনর্বাস্তবায়নের সাথে লিঙ্ক করা হয় যা Web GL2 দিয়ে আঁকে।

এইভাবে আনা প্রথম শিরোনাম হল God of War: Chains of Olympus। এটি বুট থেকে মেনু, কাটসিন এবং যুদ্ধের মাধ্যমে, ল্যাপটপে Chrome এবং Firefox এ পরিমাপ করা দৃশ্যগুলিতে 60 ফ্রেম প্রতি সেকেন্ড এ, PSP এর রেজোলিউশনের চার গুণ পর্যন্ত, এবং ফোনে অন-স্ক্রিন টাচ কন্ট্রোল সহ চলে।

God of War: Ghost of Sparta একই স্ক্রিপ্টের মাধ্যমে অনুসরণ করেছে। এটির জন্য একটি ছোট ফাইলের জন্য PSP এর DRM ডিক্রিপশন, মুষ্টিমেয় সিস্টেম কল এবং একটি লাইটিং ফিক্স প্রয়োজন, এবং কোন কর্মক্ষমতা কাজ নেই: এটি নেটিভ রেজোলিউশনের তিন গুণে 55 থেকে 60 ফ্রেম প্রতি সেকেন্ড এ চলে। এখানে কোন গেম ডেটা অন্তর্ভুক্ত নেই।

প্রথম প্লেবল বিল্ডটি 6 ফ্রেম প্রতি সেকেন্ড এ চলেছিল। 60 এ পৌঁছানোর বেশিরভাগ পথ রেন্ডারারকে দ্রুত করার পরিবর্তে সময় আসলে কোথায় গিয়েছিল তা খুঁজে বের করা থেকে এসেছে।

PSP গেম ব্রাউজারে এমুলেটর ছাড়া কীভাবে চলে?

গেমের MIPS মেশিন কোড স্ট্যাটিকভাবে C++ এ পুনঃকম্পাইল করা হয়, WebAssembly এ কম্পাইল করা হয়, এবং PSP এর OS এর উচ্চ-স্তরের এমুলেশন এবং একটি WebGL2 গ্রাফিক্স রেন্ডারারের সাথে লিঙ্ক করা হয়।

বাংলা version →


🇩🇪 Deutsch

PSP-Spiele im Browser ohne Emulator via WebAssembly

PSP-Spiele laufen im Browser ohne einen Emulator. Der MIPS-Maschincode des Spiels wird vorab in C++ übersetzt, zu Web Assembly kompiliert und mit einer kleinen Neuimplementierung des Betriebssystems der PSP und des Grafikchips verknüpft, der mit Web GL2 zeichnet.

Der erste auf diese Weise gestartete Titel ist God of War: Chains of Olympus. Es läuft vom Booten über die Menüs, Zwischensequenzen und Kämpfe, mit 60 Bildern pro Sekunde in den bisher gemessenen Szenen in Chrome und Firefox auf einem Laptop, mit bis zu vierfacher Auflösung der PSP und auf Telefonen mit Bildschirm-Touch-Steuerung.

God of War: Ghost of Sparta folgte denselben Skripten. Es benötigte die DRM-Entschlüsselung der PSP für eine kleine Datei, eine Handvoll Systemaufrufe und eine Beleuchtungskorrektur, und keine Leistungsarbeit: es läuft mit 55 bis 60 Bildern pro Sekunde bei dreifacher nativer Auflösung. Hier sind keine Spieldaten enthalten.

Der erste spielbare Build lief mit 6 Bildern pro Sekunde. Der größte Teil des Weges zu 60 kam davon, herauszufinden, wo die Zeit tatsächlich hinging, anstatt den Renderer schneller zu machen.

Wie laufen PSP-Spiele im Browser ohne Emulator?

Der MIPS-Maschincode des Spiels wird statisch zu C++ rekompiliert, zu WebAssembly kompiliert und mit einer High-Level-Emulation des PSP-Betriebssystems und einem WebGL2-Grafikrenderer verknüpft.

Deutsch version →


🇪🇸 Español

Juegos de PSP en el navegador sin emulador mediante WebAssembly

Juegos de PSP funcionando en el navegador sin un emulador. El código máquina MIPS del juego se traduce por adelantado a C++, se compila a Web Assembly y se enlaza con una pequeña reimplementación del sistema operativo de la PSP y del chip gráfico que dibuja con Web GL2.

El primer título presentado de esta manera es God of War: Chains of Olympus. Se ejecuta desde el arranque a través de los menús, cinemáticas y combate, a 60 fotogramas por segundo en las escenas medidas hasta ahora en Chrome y Firefox en un portátil, hasta cuatro veces la resolución de la PSP, y en teléfonos con controles táctiles en pantalla.

God of War: Ghost of Sparta siguió los mismos scripts. Necesitó el descifrado DRM de la PSP para un archivo pequeño, un puñado de llamadas al sistema y una corrección de iluminación, y ningún trabajo de rendimiento: funciona a 55 a 60 fotogramas por segundo a tres veces la resolución nativa. No se incluyen datos de juegos aquí.

La primera compilación jugable funcionó a 6 fotogramas por segundo. La mayor parte del camino hacia 60 provino de descubrir dónde se iba realmente el tiempo en lugar de hacer que el renderizador fuera más rápido.

¿Cómo funcionan los juegos de PSP en el navegador sin un emulador?

El código máquina MIPS del juego se recompila estáticamente a C++, se compila a WebAssembly y se enlaza con una emulación de alto nivel del SO de la PSP y un renderizador gráfico WebGL2.

Español version →


🇫🇷 Français

Jeux PSP dans le navigateur sans émulateur via WebAssembly

Jeux PSP fonctionnant dans le navigateur sans émulateur. Le code machine MIPS du jeu est traduit à l'avance en C++, compilé en Web Assembly, et lié à une petite réimplémentation du système d'exploitation de la PSP et du chip graphique qui dessine avec Web GL2.

Le premier titre présenté de cette manière est God of War: Chains of Olympus. Il joue du démarrage à travers les menus, les cinématiques et le combat, à 60 images par seconde dans les scènes mesurées jusqu'à présent dans Chrome et Firefox sur un ordinateur portable, jusqu'à quatre fois la résolution de la PSP, et sur les téléphones avec des contrôles tactiles à l'écran.

God of War: Ghost of Sparta a suivi les mêmes scripts. Il a nécessité le déchiffrement DRM de la PSP pour un petit fichier, une poignée d'appels système et une correction d'éclairage, et aucun travail de performance : il fonctionne à 55 à 60 images par seconde à trois fois la résolution native. Aucune donnée de jeu n'est incluse ici.

La première version jouable fonctionnait à 6 images par seconde. La majeure partie du chemin vers 60 est venue de découvrir où le temps allait réellement plutôt que de rendre le rendu plus rapide.

Comment les jeux PSP fonctionnent-ils dans le navigateur sans émulateur ?

Le code machine MIPS du jeu est statiquement recompilé en C++, compilé en WebAssembly, et lié à une émulation de haut niveau du système d'exploitation de la PSP et d'un rendu graphique WebGL2.

Français version →


🇮🇳 हिन्दी

WebAssembly के माध्यम से ब्राउज़र में बिना एमुलेटर के PSP गेम

PSP गेम ब्राउज़र में बिना एमुलेटर के चल रहे हैं। गेम का MIPS मशीन कोड पहले से C++ में अनुवादित किया जाता है, Web Assembly में संकलित किया जाता है, और PSP के ऑपरेटिंग सिस्टम और ग्राफिक्स चिप के एक छोटे पुनर्कार्यान्वयन से जोड़ा जाता है जो Web GL2 के साथ चित्रित करता है।

इस तरह से लाया गया पहला शीर्षक God of War: Chains of Olympus है। यह बूट से लेकर मेनू, कटसीन और युद्ध तक, लैपटॉप पर Chrome और Firefox में मापे गए दृश्यों में 60 फ्रेम प्रति सेकंड पर, PSP के रिज़ॉल्यूशन से चार गुना तक, और फोन पर ऑन-स्क्रीन टच कंट्रोल के साथ चलता है।

God of War: Ghost of Sparta उसी स्क्रिप्ट के माध्यम से आया। इसे एक छोटी फ़ाइल के लिए PSP के DRM डिक्रिप्शन, मुट्ठी भर सिस्टम कॉल और एक लाइटिंग फिक्स की आवश्यकता थी, और कोई प्रदर्शन कार्य नहीं: यह मूल रिज़ॉल्यूशन के तीन गुना पर 55 से 60 फ्रेम प्रति सेकंड पर चलता है। यहां कोई गेम डेटा शामिल नहीं है।

पहला प्लेएबल बिल्ड 6 फ्रेम प्रति सेकंड पर चला। 60 तक पहुंचने का अधिकांश रास्ता रेंडरर को तेज़ बनाने के बजाय यह पता लगाने से आया कि समय वास्तव में कहां गया।

PSP गेम ब्राउज़र में बिना एमुलेटर के कैसे चलते हैं?

गेम का MIPS मशीन कोड स्थिर रूप से C++ में पुनर्संकलित किया जाता है, WebAssembly में संकलित किया जाता है, और PSP के OS के उच्च-स्तरीय अनुकरण और WebGL2 ग्राफिक्स रेंडरर से जोड़ा जाता है।

हिन्दी version →


🇮🇩 Bahasa Indonesia

Game PSP di browser tanpa emulator melalui WebAssembly

Game PSP berjalan di browser tanpa emulator. Kode mesin MIPS game diterjemahkan terlebih dahulu ke C++, dikompilasi ke Web Assembly, dan ditautkan dengan implementasi ulang kecil dari sistem operasi PSP dan chip grafis yang menggambar dengan Web GL2.

Judul pertama yang dijalankan dengan cara ini adalah God of War: Chains of Olympus. Game ini berjalan dari boot melalui menu, cutscene, dan pertempuran, pada 60 frame per detik dalam adegan yang diukur sejauh ini di Chrome dan Firefox di laptop, hingga empat kali resolusi PSP, dan di ponsel dengan kontrol sentuh di layar.

God of War: Ghost of Sparta mengikuti melalui skrip yang sama. Game ini memerlukan dekripsi DRM PSP untuk satu file kecil, segelintir panggilan sistem dan perbaikan pencahayaan, dan tidak ada pekerjaan kinerja: game ini berjalan pada 55 hingga 60 frame per detik pada tiga kali resolusi asli. Tidak ada data game yang disertakan di sini.

Build yang dapat dimainkan pertama berjalan pada 6 frame per detik. Sebagian besar jalan menuju 60 berasal dari mencari tahu di mana waktu sebenarnya dihabiskan daripada membuat renderer lebih cepat.

Bagaimana game PSP berjalan di browser tanpa emulator?

Kode mesin MIPS game dikompilasi ulang secara statis ke C++, dikompilasi ke WebAssembly, dan ditautkan dengan emulasi tingkat tinggi dari OS PSP dan renderer grafis WebGL2.

Bahasa Indonesia version →


🇯🇵 日本語

WebAssemblyでエミュレーターなしでブラウザでPSPゲーム

PSPゲームがエミュレーターなしでブラウザで動作しています。ゲームのMIPSマシンコードは事前にC++に変換され、Web Assemblyにコンパイルされ、Web GL2で描画するPSPのオペレーティングシステムとグラフィックチップの小さな再実装にリンクされます。

この方法で最初に起動されたタイトルはGod of War: Chains of Olympusです。ブートからメニュー、カットシーン、戦闘まで、ラップトップ上のChromeとFirefoxで測定されたシーンで毎秒60フレームで動作し、PSPの解像度の最大4倍、および電話ではオンスクリーンのタッチコントロールで動作します。

God of War: Ghost of Spartaも同じスクリプトで続きました。1つの小さなファイルにPSPのDRM復号、いくつかのシステムコールと照明修正が必要で、パフォーマンス作業は不要でした:ネイティブ解像度の3倍で毎秒55〜60フレームで動作します。ここにはゲームデータは含まれていません。

最初のプレイ可能なビルドは毎秒6フレームで動作しました。60に到達する道のりのほとんどは、レンダラーを高速化するのではなく、時間が実際にどこに使われているかを見つけることから来ました。

PSPゲームはエミュレーターなしでブラウザでどのように動作しますか?

ゲームのMIPSマシンコードは静的にC++に再コンパイルされ、WebAssemblyにコンパイルされ、PSPのOSの高レベルエミュレーションとWebGL2グラフィックレンダラーにリンクされます。

日本語 version →


🇧🇷 Português

Jogos de PSP no navegador sem emulador via WebAssembly

Jogos de PSP rodando no navegador sem um emulador. O código de máquina MIPS do jogo é traduzido antecipadamente para C++, compilado para Web Assembly e vinculado a uma pequena reimplementação do sistema operacional da PSP e do chip gráfico que desenha com Web GL2.

O primeiro título trazido dessa forma é God of War: Chains of Olympus. Ele roda desde a inicialização pelos menus, cenas e combate, a 60 quadros por segundo nas cenas medidas até agora no Chrome e Firefox em um laptop, em até quatro vezes a resolução da PSP, e em telefones com controles de toque na tela.

God of War: Ghost of Sparta seguiu os mesmos scripts. Precisou da descriptografia DRM da PSP para um pequeno arquivo, algumas chamadas de sistema e uma correção de iluminação, e nenhum trabalho de desempenho: roda a 55 a 60 quadros por segundo em três vezes a resolução nativa. Nenhum dado de jogo está incluído aqui.

A primeira compilação jogável rodou a 6 quadros por segundo. A maior parte do caminho para 60 veio de descobrir onde o tempo realmente foi, em vez de tornar o renderizador mais rápido.

Como os jogos de PSP rodam no navegador sem um emulador?

O código de máquina MIPS do jogo é recompilado estaticamente para C++, compilado para WebAssembly e vinculado a uma emulação de alto nível do sistema operacional da PSP e um renderizador gráfico WebGL2.

Português version →


🇷🇺 Русский

Игры PSP в браузере без эмулятора через WebAssembly

Игры PSP работают в браузере без эмулятора. Машинный код MIPS игры переводится заранее в C++, компилируется в Web Assembly и связывается с небольшой перереализацией операционной системы PSP и графического чипа, который рисует с помощью Web GL2.

Первая игра, запущенная таким образом, — God of War: Chains of Olympus. Она работает от загрузки через меню, кат-сцены и бой, со скоростью 60 кадров в секунду в измеренных сценах в Chrome и Firefox на ноутбуке, с разрешением до четырех раз больше родного разрешения PSP, и на телефонах с сенсорным управлением на экране.

God of War: Ghost of Sparta последовал тем же скриптам. Ему потребовалось DRM-дешифрование PSP для одного маленького файла, несколько системных вызовов и исправление освещения, и никакой работы над производительностью: он работает со скоростью от 55 до 60 кадров в секунду при трехкратном родном разрешении. Никаких игровых данных здесь не включено.

Первая играбельная сборка работала со скоростью 6 кадров в секунду. Большая часть пути к 60 была пройдена за счет выяснения, куда на самом деле уходило время, а не за счет ускорения рендерера.

Как игры PSP работают в браузере без эмулятора?

Машинный код MIPS игры статически перекомпилируется в C++, компилируется в WebAssembly и связывается с высокоуровневой эмуляцией ОС PSP и графическим рендерером WebGL2.

Русский version →


🇨🇳 简体中文

通过WebAssembly在浏览器中无需模拟器运行PSP游戏

PSP游戏在浏览器中无需模拟器运行。游戏的MIPS机器码被提前翻译为C++,编译为Web Assembly,并链接到PSP操作系统和图形芯片的轻量级重实现,该实现使用Web GL2进行绘制。

第一个以此方式运行的游戏是God of War: Chains of Olympus。它从启动到菜单、过场动画和战斗,在笔记本电脑上的Chrome和Firefox中,以60帧每秒运行,分辨率高达PSP原生分辨率的四倍,并且在手机上支持屏幕触控。

God of War: Ghost of Sparta 也通过相同的脚本运行。它需要对一个小的文件进行PSP的DRM解密,处理少量系统调用和一个光照修复,无需性能优化:它以55到60帧每秒运行,分辨率为原生分辨率的三倍。此处不包含任何游戏数据。

第一个可玩的构建版本以6帧每秒运行。达到60帧的大部分改进来自于找出时间实际消耗在哪里,而不是让渲染器更快。

PSP游戏如何在浏览器中无需模拟器运行?

游戏的MIPS机器码被静态重编译为C++,编译为WebAssembly,并链接到PSP操作系统的高层模拟和一个WebGL2图形渲染器。

简体中文 version →