Emulation issues and roadblocks: Difference between revisions

Ahayri (talk | contribs)
Ahayri (talk | contribs)
No edit summary
Line 179: Line 179:
* [https://github.com/libcdio/libcdio libcdio], [https://github.com/polpo/picogus picogus], Duckstation's [https://github.com/stenzek/duckstation/blob/master/src/util/cd_image_ccd.cpp cd image ccd], [https://github.com/stenzek/duckstation/blob/master/src/util/cd_image_cue.cpp cd image cue], [[Ymir]]'s [https://github.com/StrikerX3/Ymir/tree/main/libs/ymir-core/src/ymir/hw/cdblock low-level cd block] and [https://github.com/PCSX2/pcsx2/tree/master/pcsx2/CDVD PCSX2's CDVD] - Could be beneficial for implementing reading capability for [[Ripping games#Disc-based|capable disc image formats]].
* [https://github.com/libcdio/libcdio libcdio], [https://github.com/polpo/picogus picogus], Duckstation's [https://github.com/stenzek/duckstation/blob/master/src/util/cd_image_ccd.cpp cd image ccd], [https://github.com/stenzek/duckstation/blob/master/src/util/cd_image_cue.cpp cd image cue], [[Ymir]]'s [https://github.com/StrikerX3/Ymir/tree/main/libs/ymir-core/src/ymir/hw/cdblock low-level cd block] and [https://github.com/PCSX2/pcsx2/tree/master/pcsx2/CDVD PCSX2's CDVD] - Could be beneficial for implementing reading capability for [[Ripping games#Disc-based|capable disc image formats]].
* [https://github.com/aaronsgiles/ymfm ymfm]
* [https://github.com/aaronsgiles/ymfm ymfm]
==macOS X and macOS==
===PowerPC===
Currently, no 3rd-party Macintosh emulators support hardware graphics acceleration, due to [https://www.emaculation.com/forum/viewtopic.php?t=8396 certain CPU instructions left unimplemented in their upstream PPC softcores]. This means no GLIDE, RAVE, or OpenGL. Fortunately, though as was generally the case in every platform of the period significant visual and feature differences exist between the two, the majority of Mac-exclusive software using these APIs also included software fallback renderers. It is however possible to pass through a real GPU to a PowerPC Mac being emulated by QEMU provided you have one that's compatible with OpenFirmware
===x86===
Despite an x86-based Mac is very similar to a general non-Apple PC in hardware architecture (which makes [[wikipedia:/Boot_Camp_(software)|Boot Camp]] and [[wikipedia:Hackintosh|Hackintosh]] possible), it still contains Apple proprietary hardware such as closed-source EFI BootROM, System Management Controller (SMC) and later T1/T2 security chip that either requires bypassing or emulation in order to run macOS. macOS also contains countermeasures that prevent it from being run on a non-Apple PC such as the infamous [https://www.tonymacx86.com/threads/dont-steal-mac-os-x-kext.51175/ Don't Steal Mac OS X.kext].
Another big hurdle is that macOS only contains drivers for hardware components used in actual Mac computers, which means a large portion of PC users who use different hardware combinations than actual Mac computers need to bypass, patch, or port drivers for their hardware in order to boot macOS and promote it to a usable state, and might still with crippled functionalities due to no or imperfect solutions to drive some of the hardware.
===ARM===
Hurdles in emulating ARM-based Mac are basically the same as emulating iOS devices: Apple's proprietary M1/M2 SoC which has little to no documentation, and hardened security measures inherited from iOS devices. However if Apple discontinues support for x86 in XCode, there will be no way to code modern iOS apps on other platforms or use macOS apps in general. If an ARM macOS emulator is sucessful, modern iOS emulation will be "cracked" too (apart from Corellium though).


=Home Consoles=
=Home Consoles=