חזרה
Pokemon Emerald הורץ בדפדפן ב-WebAssembly בקצב 100 אלף פריימים לשנייה
SiTech AI Team3 דק׳ קריאה

Pokemon Emerald הורץ בדפדפן ב-WebAssembly בקצב 100 אלף פריימים לשנייה

המשחק Pokemon Emerald מ-2004 ל-Game Boy Advance רץ כעת בלשונית דפדפן. הפרויקט pokeemerald-wasm אינו אמולטור: הוא מהדר מחדש את הדה-קומפילציה pret/pokeemerald ל-WebAssembly בעזרת Emscripten ומגיע ל-100 אלף פריימים לשנייה.

המשחק Pokemon Emerald, שיצא ב-2004 ל-Game Boy Advance, רץ כעת בלשונית דפדפן — לפי הדיווחים, בקצב של 100,000 פריימים לשנייה. הפרויקט pokeemerald-wasm הופיע ב-Hacker News בתחילת יוני 2026 ומתארח בכתובת pokeemerald.com; המאגר שלו ב-GitHub נוצר ב-29 במאי 2026 ומאז צבר מאות כוכבים.

מקומפל, לא מאמולץ

קל לטעות במשמעות המספר שבכותרת. pokeemerald-wasm אינו אמולטור של Game Boy Advance: הוא אינו מדמה את מעבד ה-ARM7, את מפת הזיכרון או את שבבי הקול של הקונסולה. במקום זאת הוא לוקח את pret/pokeemerald — דה-קומפילציה קהילתית של המשחק לקוד C וקוד אסמבלי ARM קריאים — ומהדר מחדש את הקוד הזה ל-WebAssembly בעזרת Emscripten, בתוספת ממשק דפדפן. השרשרת היא: ROM מקורי → קוד C מדה-קומפילציה → WebAssembly → דפדפן. באף שלב בה לא משוחזרת החומרה של ה-GBA.

ההבדל הזה הוא שמאפשר את המהירות. אמולטור משלם מחיר פרשנות על כל הוראה ומחקה תזמוני חומרה פריים אחר פריים; קוד מהודר מחדש הוא פשוט הלוגיקה של המשחק עצמו, שהמארח מריץ ישירות. בדיון ב-Hacker News ניסחו זאת בפשטות: זה המשחק עצמו מקומפל ל-Wasm, ולא אמולטור מבוסס Wasm.

מה בעצם מודד «100k FPS»

לפי סיקור טכני של הפרויקט, 100,000 FPS מתייחס לתפוקה של לוגיקת המשחק לאחר הסרת מגבלת הפריימים — לא ל-100,000 תמונות מצוירות בשנייה. החומרה המקורית הייתה נעולה על קצב רענון של 60 הרץ; הסרת המגבלה מאפשרת ללולאה המהודרת לרוץ במהירות המקסימלית של המעבד, ולכן המספר הוא מדד של מרווח ביצועים לעומת אמולציה ולא מצב משחק. משחק אמיתי מסתנכרן חזרה ל-60 FPS, והעודף מנוצל להרצה מהירה, לתגובת קלט מיידית ולתמיכה במכשירים חלשים.

בדפדפן הבנייה אינה דורשת תוספים או הורדות: השליטה במקשי החצים, Z הוא כפתור A, X הוא B, Enter הוא Start ו-Shift הוא Select.

שמירה, מובייל והצעדים הבאים

מגיבים ב-Hacker News דיווחו שהשמירה במשחק אכן עובדת — סימן שהפורט משמר מצב שחקן אמיתי ולא רק מדגים גרפיקה. במובייל המצב פחות חלק: משתמש אחד ב-Firefox ל-Android דיווח שהעמוד אינו מתנהג כאפליקציית PWA הניתנת להתקנה, והוצע לו להשתמש באפשרות «Add to home» של הדפדפן. החלפת פוקימונים בין משחקים עדיין אינה זמינה, וזו התכונה המבוקשת ביותר.

המאגר אינו מיועד לדפדפן בלבד. יעד אחד ב-Makefile בונה קובץ הרצה מקורי על ידי המרת מודול ה-WebAssembly ל-C עם wasm2c של WABT וקישור מארח Raylib, ויעד אחר בונה ממשק framebuffer של לינוקס לקוראי Kindle Scribe פרוצים. כמו בפרויקטי דה-קומפילציה אחרים, לא מופצים ROM או נכסים המוגנים בזכויות יוצרים — המשתמש מספק עותק חוקי משלו.

למה זה חשוב: זו הדגמה עובדת לכך שמשחק מסחרי שלם יכול להיות מהודר מחדש ל-WebAssembly ולרוץ בלשונית דפדפן עם מרווח ביצועים — טיעון בעד קוד קריא כצורה עמידה של שימור משחקים.

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.