اگر در حال عیبیابی سختافزارهای قدیمی هستید، گلوگاه اصلی صرفاً کد نیست، بلکه فرآیند خستهکننده ردیابی وضعیتها (State) در چندین زبان برنامهنویسی مختلف است. آربی بلمونت (Arbee Belmont)، توسعهدهنده ارشد پروژه MAME (شبیهساز ماشینهای آرکید)، در ۱۸ ژوئن ۲۰۲۶ نشان داد که چگونه عاملهای هوش مصنوعی میتوانند بنبستهای طولانیمدت در شبیهسازی Power Macintosh را بشکنند.
شبیهسازی Power Macintosh یک کابوس از پیچیدگی است. این سیستم بر ترکیبی از PowerPC، کدهای شبیهسازیشده ۶۸k و کدهای کامپایلشده FORTH تکیه دارد. سالها پیشرفت در این مسیر متوقف شده بود چون عیبیابی این لایهها بهشدت کند است. بلمونت اشاره کرد که او با اجزای جدیدتر مثل Code Fragment Manager کمتر از کدبیس 680x0 آشنا بود. در این نقطه، Claude Code و GPT-5.5 Pro (از طریق Codex) بهعنوان شرکای تخصصی عیبیابی وارد جریان کار شدند.
پیشرفت در Apple Pippin
بلمونت کار را با متمرکز کردن Claude Code روی Apple Pippin آغاز کرد؛ یک کنسول ترکیبی شکستخورده که هرگز بوت نمیشد. هوش مصنوعی صرفاً حدس نزد، بلکه استراتژی دقیقی با استفاده از اسکریپتهای بوت Lua و تغییر در لاگهای MAME برای ردیابی دقیق اجرا طراحی کرد.
در عرض یک هفته، هوش مصنوعی یک نقص در شبیهسازی 6522 VIA پیدا کرد که ارتباط با Cuda 68HC05 را مختل میکرد. سپس نیمدوجین خطا در شبیهسازی PowerPC و چندین باگ سختافزاری مربوط به عصر PCI را شناسایی کرد. این دستاورد اجازه داد تا Pippin بالاخره صدای استارتآپ خود (که تا حدی creepy یا عجیب است) را پخش کند و لوگوی "P!P P!N" را نمایش دهد. کاربران حتی توانستند نشانگر موس را حرکت دهند و ماهیت Pippin را بهعنوان یک «مکینتوش نه چندان مخفی» کشف کنند.
در طول این فرآیند، توسعهدهندهای به نام Vas یک ضدالگو (Anti-pattern) در DRC (Dynamic Recompiler) یا بازکامپایلر پویا پیدا کرد. سیستم بهجای استفاده از وضعیت زنده ماشین، از مقادیری استفاده میکرد که در زمان تولید کد و کش شدن در حین اجرا ذخیره شده بودند. بلمونت هرچند نتوانست یک اصلاح واحد و مشخص برای این مورد ارائه دهد، اما آن را یک بهبود ۱۰۰ درصدی در صحت عملکرد دانست که در آینده بهصورت خاموش و غیرمستقیم اثرگذار خواهد بود.

اصلاح PowerMac 7200 و 6100
بلمونت سپس برای ردیابی نتایج گستردهتر عیبیابی به Power Macintosh 7200 روی آورد. این ماشین از نسخهای از ویدئوی DAFB استفاده میکند که در Quadraها دیده میشود. در حالی که دستگاه صدای استارتآپ را پخش میکرد و به روتین بررسی دیسک بوت (Startup disk polling) میرسید، اما در فعالسازی ویدئوی داخلی شکست میخورد. Claude Code این مشکل را به دو باگ خاص در شبیهسازی PowerPC 601 ردیابی کرد. پس از رفع آنها، سیستم بالاخره روتین جستجوی بوت فلاپی ۳.۵ اینچی را نمایش داد، هرچند علامت «؟» چشمکزن (که نشاندهنده نبود دیسک است) در ابتدا همچنان خراب بود.
برای Power Macintosh 6100، هوش مصنوعی کرشی (Crash) را حل کرد که در نسخههای سیستم جدیدتر از ۷.۵.۰ رخ میداد. مدل کشف کرد که تفاوت در وجود یک SCSI Manager بومی PowerPC در مقابل کد شبیهسازیشده ۶۸۰x۰ است که در نسخههای قدیمیتر استفاده میشد. هوش مصنوعی دلیل شکست را اشتباه MAME در شبیهسازی دستورات بارگذاری/ذخیره اتمیک (Atomic load/store) در PowerPC تشخیص داد.
این دستورات برای مدیریت وقفهها (Interrupt handlers) حیاتی هستند تا وقتی چندین CPU یا کنترلکنندههای DMA فعالاند، عملیات حافظه ایمن بماند. بلمونت تغییراتی از یک Pull Request توسط gm-matthew (MVP بازیهای Sega Model 2) اعمال کرد که بهدلیل رفع مشکلات بازیهای آرکید Sega Model 3 در انتظار بررسی بود. پس از این کار، نسخههای ۷.۵.۳ و ۷.۵.۵ مستقیماً وارد Finder شدند. بهعنوان اثر جانبی، Pippin به انیمیشن «سیدی را وارد کنید» رسید و PowerMac 7200 بالاخره علامت «؟» چشمکزن خود را به دست آورد.
منطق FPU و اعداد اعشاری
یکی از فنیترین پیروزیها مربوط به دموی مشهور ماشینحساب گرافیکی بود که برای نمایش قدرت ریاضی CPUهای جدید طراحی شده بود. این دمو شکست میخورد چون هسته PowerPC — که در ابتدا برای بازیهای آرکید بهینه شده بود — پرچمهای وضعیت (Status Flags) را برای دستورات FPU بهروزرسانی نمیکرد. این پرچمها برای کتابخانه اعداد اعشاری SANE اپل ضروری هستند.
بلمونت اصلاحی را پیاده کرد که اجازه داد بخش دوبعدی دمو اجرا شود. بخش سهبعدی ابتدا شکست خورد، اما بعد از کشف اینکه استثناهای تراز (Alignment Exceptions) در مدل ۶۰۱ بهدرستی کار نمیکردند، رفع شد. او اشاره کرد که هرچند هنوز نمیتواند آن را اثبات کند، اما چنین خطایی معمولاً تأثیر گستردهتری نسبت به یک دموی ساده ماشینحساب دارد.
مهندسی معکوس با هوش مصنوعی
بلمونت همچنین خاطرنشان کرد که GPT-5.5 Pro (از طریق Codex) و Claude در تحلیل باینریهای فریمور (Firmware) برای دستگاههایی از کیبورد و موس گرفته تا سینتسایزرهای دیجیتال عالی عمل میکنند.
- روش کار: توابع دستگاه و یک کپی از دیساسمبلر unidasm پروژه MAME به مدل داده میشود.
- نتیجه: مدل حدسهای بسیار دقیقی برای نقشه حافظه (Memory Map) و مکان یا هدف زیرروالهای (Subroutines) اصلی ارائه میدهد.
- پرامپتهای پیشرفته: کاربران میتوانند سوالات خاصی بپرسند، مثلاً ردیابی جریان داده از یک پیام MIDI "Note On" برای شناسایی عملکرد رجیسترهای یک تراشه صدای سفارشی.
نردههای حفاظتی انسانی
با این حال، بلمونت تأکید میکند که هوش مصنوعی جایگزین تخصص نیست. او بهعنوان ناظر عمل کرد و هرگاه مدل به دنبال مشکلات تئوریک میرفت که در عمل بعید بودند، آن را متوقف کرد. او اشاره کرد که مدل ممکن است بهطور تصادفی یک "QuickDraw GrafPort" را در یک آدرس هگز خاص (مثلاً 0x123456) شناسایی کند، اما در نتیجهگیریهای منطقی اغلب دچار لغزش میشود.
نکته حیاتی این است که هوش مصنوعی باگها را پیدا کرد، اما بلمونت کد اصلاحی را نوشت؛ بهجز چند مورد ساده تکخطی که آنها را هم از نظر استایل ویرایش کرد. او نسبت به «کدهای حسی» (Vibe Code) — یعنی ارسال کدهایی که نویسنده کاملاً آنها را نمیفهمد — هشدار داد. او بهطور خاص هشدار داد که استفاده از AI برای نوشتن توضیحات Pull Request باعث آزردگی او و سایر اعضای بدبین تیم خواهد شد.
MAME سیاست سختگیرانهای دارد: مشارکتکنندگان باید هر خط کدی را که ارسال میکنند، بهطور کامل درک کرده و بتوانند نگهداری کنند. این تغییر نشان میدهد ارزش واقعی AI در مهندسی سطح پایین، نه بهعنوان کدنویس، بلکه بهعنوان یک شناسدهنده سریع الگوها و دستیار مهندسی معکوس است.
اگر با باینریهای قدیمی سروکار دارید، خروجی یک دیساسمبلر را به مدلهای پیشرفته بدهید و بخواهید نقشه حافظه (Memory Map) را حدس بزنند تا فرآیند مهندسی معکوس شما سرعت بگیرد.




گفتگو