shonumi / gbe-plus

DMG/GBC/GBA emulator and experimental NDS emulator.
GNU General Public License v2.0
530 stars 80 forks source link

2023 Requests for emulation: part 1 #137

Closed upintheairsheep closed 1 year ago

upintheairsheep commented 1 year ago

Hello Shonumi, as you already know, I am a huge fan of your work covering the super obscure accessories surrounding video game consoles, and it’s both exciting and sad that the game boy accessories to emulate are running out. I have some suggestions on what you could emulate that isn’t your usual game console stuff: Try contributing to the “big guys”, the most popular or most complete emulators of each major (and minor, too) game console, like implementing unemulated Wii and GameCube accessories in Dolphin for example, try contributing to the “big guys”, the most popular or most complete emulators of each major (and minor, too) game console, like implementing unemulated Wii and GameCube accessories in Dolphin for example iOS. The biggest unemulated platform in the world. More specifically, old/32-bit iOS, which is unemulated and the devices that can run it are getting lower every day and are WAY harder to obtain in the future. Currently, the only iOS emulators to date are Corellium, which emulates all iOS devices, iPhone 7 with iOS 10.5.3 to iPhone 14 Pro Max with iOS 16.2, all with powerful debug and security tools, however Corellium is super duper expensive, and either can be on the cloud for cheap, or a self hosted server which is expensive, and Corellium prohibits doing stuff with the servers sadly, but I know someone will definitely leak Corellium’s secrets in the future, and Correlium made Project Sandcastle, an incomplete build of Android 10.0 “Queen Cake” on iPhone 7/7+ and iPod Touch 7th generation at one point to show how much they know about iOS devices, than abandon the project altogether, although recently a new project for Linux on iOS devices A7 to A11 in currently being maintained and says that android for iphones and other devices is going to be soon. Another project is ipasim, a simple iOS emulator for Windows, with it’s code on GitHub. It decompiles the iOS app files provided and translates the code to Windows equivalent code, which is a nice project, however it only supports basic apps, and there isn’t any known Linux/UNIX support, which is kind of a deal breaker for some people, unless you try running the UWP in Wine, which I haven’t tried out yet. See https://github.com/ipasimulator/ipasim . Next is QEMU T8030, anbiPhone 11 virtualised in QEMU, and is fairly active even though there seems to be no progress since near of last year’s Halloween. https://github.com/TrungNguyen1909/qemu-t8030 However the creator plans on working on newer iPhone generations after the possible completion of T8030, which leaves the 32-bit app support in the dust. https://github.com/TrungNguyen1909/qemu-t8030/discussions/79 and not much progress on the actual screen has seen to be done. Other iOS-in-QEMU projects like https://github.com/userlandkernel/iDeviceEMU iDeviceEMU (iPad 1) and QEMU-s5l89xx (iPhone 2G) https://github.com/danzatt/QEMU-s5l89xx-port have been made, along with preliminary MAME support of the original iPhone has been made, and iEmu (2011), which was claiming to be progressing to emulate various iOS models at the time was taken down by Apple with little traces and searching it up on Google will only bring you to Android malware claiming to be iEmu. It is not known if any of these projects will ever come into fruition (pun intended). Now the real deal is going to be Cycada, formally known as Cider, which is a project by Columbia University to run iOS apps run on Android, more specifically 32-bit apps. https://systems.cs.columbia.edu/projects/cycada/ Since last year I have been trying to contact each member of the team in any means possible, excluding fax (I don’t have a faxing machine), snail mail (I am only a teenager right now), and physical contact (I don’t live anywhere near New York). The only responses I got were by Christopher Dall via his email address listed on his github page, and he said Cycada is based on closed source code changes, and cannot be released due to that, and Cycada can be reproduced via the paper with “significant effort” put into it. I than emailed him with a follow up email and than he replied “no member of the team planned on releasing it” and “you need to find another solution to your problem” and rudely said “expect no further reply from me”. I than found out about Diff’s ed script functionality which basically solved the problem, however each time I told him, nothing happened due to him presumably blocking me. I have been trying to contact them for about a year now, always trying to find new contact methods for each of them. Jason Nieh is the current lead of the project so it is recommended that you focus on contacting him, and Jeremy Andrus has left the project for a job at Apple’s kernel engineering department, later moving on to cloud computing energy efficiency stuff. More information on Cycada is available here, https://en.wikipedia.org/wiki/Columbia_Cycada and https://apple.fandom.com/wiki/Cycada as well as http://engineering.columbia.edu/sync-columbia-engineering-team-first-run-ios-apps-android-platform and http://jeremya.com/files/pub/2014/03/cider/ for more details, but the most detailed area for information is http://jeremya.com/files/pub/2015/02/andrus-thesis.pdf , which seems to contain everything related to the project, and https://www.cs.columbia.edu/~nieh/pubs/asplos2014_cider.pdf which seems to be already merged into the thesis and https://nalduaij.com/pubs/cycada-graphics-middleware.pdf which is more recent but seems to be copied from the thesis. If you ever get in contact with any of them, also suggest on releasing the sample IPA files extracted for Cycada due to it being abandonware and since most of them were always free to begin with, also tell them to release their M2 and Flux projects, which were open source but never released due to unknown reasons, as well as any other projects they accidentally left in their drives but forgot to release, and to also release the in-progress iOS 6 branch. There are two options you could take, making further attempts to contact the university to educate them about Diff ed scripts and why you should release the project to the public (Apple seriously will most likely NOT care about it at all, as it wont affect their sales of any product at all, excluding used old iPhones and other iOS devices on eBay). If contacting them does not work, you could recreate Cycada yourself. Also it is known that at least one recreation of Cycada was created by an unknown Chinese company but never released due to needing proprietary iOS frameworks (see https://github.com/darlinghq/darling/issues/1168#issuecomment-1115143186 and try to find the company and try contacting them if you find it), however it shouldn’t prevent us from creating it, you should be required to provide your own original or reverse engineered frameworks too! It would teach you about the internals of Linux and Darwin/XNU and how to understand OS architectures! You may have to hire more developers for it, and also probably make some sort of Kickstarter where they can pay developers of the future project for motivation, and make sure to possibly pay Columbia to release the project, as money always will lure people in, or tell them to send the code in private and transfer all legal issues to you, if they ever happen.

upintheairsheep commented 1 year ago

Found out that the Chineese companay was called "MorningTec" and is some sort of mobile anime game company Screenshot 2023-02-03 10 26 43 AM

upintheairsheep commented 1 year ago

https://www.neowin.net/amp/touchhle-is-a-new-iphone-os-emulator-that-lets-you-play-32-bit-iphone-games-on-windows/ YOOOOOOOOOOOOOOOOOOOO THEY DID IT

upintheairsheep commented 1 year ago

Except Cycada would still be amazing to have

upintheairsheep commented 1 year ago

Exact emails:

Hi. I not aware of any intent from any member of the team to release the source code. The mechanisms are documented in the paper and can be reproduced with sufficient engineering effort.

Best of luck, Christoffer

As I said, we don’t have any plans to release this source code and you should not expect us to do so, nor to release any other data related to the project. The Cells project was a different project based on different (open source) code base changes released under different licenses and therefore should not be used as a reference or precedence.

We are under no obligation to release the requested code. Further I will advise that even if we did release the code, it would likely require significant effort to make direct use of it.

I recommend you look for other approaches to accomplish your goals.

Please do not expect additional replies from me.

upintheairsheep commented 1 year ago

https://9to5mac.com/2022/12/23/developer-emulates-iphone-os-qemu/ YOOOOOOOOOO someone else made another one

upintheairsheep commented 1 year ago

touchHLE honestly sucks, the developer is a Monkey Ball fan which is a downside because she is not interested much in preservation of apps in general, and the emulator only supports monkey ball right now, not even super simple apps like I Am Rich. And not to mention their extremely strict copyright policy (can't even link free apps)

upintheairsheep commented 1 year ago

The iPod QEMU seems like a good deal, but only iOS 1-3, so Cycada is still the best retro iOS emulator.

Shocoo commented 1 year ago

Hello @upintheairsheep, I am also interested in emulating iOS, but I don't know much about it... I found this, it could be useful https://devos50.github.io/blog/ Feel free to contact me on discord to discuss all of this.