This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
I am very much into emulators although not of the video game kind. @JonB either wrote or forked a Python Apple ][ emulator that depends on Pygame. If he did not port it into Pythonista it is probably because this is very (if not extremely) hard. In fact, I saw him talk about that level of difficulty in a few posts in this forum. Anyway, if you want to experiment with emulation on IOS you should try “iDOS 2”. It masquerades as a collection of old video games but is in fact a full DOSBox emulator. If you can penetrate its sandbox (which is not that hard) you can run any DOS program you want including MS Windows 3.xx. You should check out “https://www.vogons.org/viewtopic.php?f=11&t=56790” which is a fairly good discussion of emulation under DOS and Windows 3.xx. It contains a few links to NES emulators for DOS and Windows 3.xx that you can “MOD” if you are into this kind of stuff (and can spare the time for it). I do not know how fast they will run under iDOS. However, I run Windows 3.11 from iDOS on a 2015 iPad mini at similar speed as on the typical 66 MHz computers of its time. If you are part of the crazy “update at all cost” crowd you are out of luck. “iDOS 2” has not been updated in a few years and it has no forum for endless whinnies. However, it works fine and is surprisingly stable. If you want to install Windows 3.xx I would suggest a “MOD” version that runs from a folder instead of a virtual drive. You may find it somewhere in the “vogons” site from the link above. Happy emulating!
KnightExcalibur last edited by
This is great information, thank you! I'll look into it and post thoughts/questions here once I've read up on it some.
JonB last edited by JonB
Not sure about NES -- I took a shot at adapting an apple ii emulator some time ago. The original depended on pygame, or maybe some cocoa arrive, I forget.
The difficulty you are likely to face is the lack of an easy direct screen buffer on iOS, making display very very slow. My original solution used an imageview and some numpy approaches:
Later, in this thread, we worked out some efficient audio and iosurface methods:
I should go back and update the applepy simulator.
Something like that will probably be necessary-- I suspect an NES emulator will have screen buffers to deal with. Though as I read a little about NES, sounds like they sort of have a Sprite system which might be more directly implementable in the scene module.
I have seen a few python emulators on GitHub for NES or Gameboy, but not sure how many of them are pure python, or truly finished.
cvp last edited by
@cvp sorry, fixed the link..
@JonB I think it is an excellent idea to improve on "Applepy". I am currently investigating the interest of big IT (can't live without them) in RSA factorization. I found a quadratic sequence that can solve it in polynomial time. Therefore, I cannot entertain any project of that scale for now. I will probably try something simple (I think) that will take a couple hours (I think) like "Chip-8" or a "p-machine" a la Pascal. By the way, doesn't "Scene" implement some kind of frame buffer? I never really use it mainly because it will be costly (time wise) to build cross platform applications using it. I know most (if not all) of these type of environment implement screen buffering. Below is a screen shot of "iDOS 2" running "windows 3.11" on an iPad mini 4. It is smoother or as smooth as other "DOSBox" implementations I have used. It uses the screen area as a mousepad that is ultra responsive. Games and animations run as well as in the original 3.11 on the best computers of that era. I do not think the dev could have done it without screen buffering and switching. In case "Scene" does not offer screen buffering, could sprites the size of the screen area be used for this purpose? Anyway, it would be swell to have "Applepy" run on a skeuomorphic skin as does "iDOS". Am I dreaming aloud?
I am in the process of swapping out the screen code on applepy, and adding in kb support. While the screen drawing code is reasonably fast, the actual emu code is horrendously slow. So this isn't actually a viable solution for anything "real".
Ok @JonB I understand. Just being able to emulate an Apple ii using Python on an iPhone or iPad is an extraordinary feat in itself. Chapeau bas (respect).
The code isn't mine. I just adapted the speaker and screen support.
Yes I know but adapting a Pygame project to the Pytonista environment deserves as much respect. I can run Tauber’s code in Android, being able to do so in IOS is a double treat.
KnightExcalibur last edited by KnightExcalibur
@JonB I believe you are correct that none of the video game emulators are pure python or quite finished. They all have several dependencies that are incompatible with Pythonista from what I saw. Emulation is a fascinating concept to me, but way over my head as I am just starting to dip my toes into programming.
I took a look at applepy and I am very impressed. I will try to learn more about emulation and hopefully be able to understand it a little better.
I’m also blown away that you were able to adapt a pygame project to Pythonista. It goes to show that the possibilities are endless!
@Ti Leyon I’ve been reading through that link you gave me, and it is an awesome reference. I will also have to give iDOS 2 a try, I wasn’t aware that a DOSbox emulator existed on iOS!
AtomBombed last edited by
Theoretically, you could write an interpreter for the ROM that then takes the data and displays it via the
screenmodule. I know that's very vague, but if you had individually-addressed pixels that are handled and displayed through the
screenmodule, you could then process and display all the data to those simulated "pixels" manually.
ccc last edited by
Anyone hacked on Arcade? https://github.com/pvcraven/arcade
Enrike.Churin last edited by
This post is deleted!
pome-ta last edited by
This is a bad implementation method.
There is no operation or sound, but it will be implemented in the future.
pome-ta last edited by
We are pleased to inform you that we have implemented a gamepad.