Mini vMac 3.2.3 for iPhone

About Mini vMac and all other 68k emulators, including SoftMac, Executor, and MESS.

Moderators: Cat_7, Ronald P. Regensburg

superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Mini vMac 3.2.3 for iPhone

Post by superpete »

Hi All

I've started a project to get the iPhone port of Mini vMac upgraded to 3.2.3, with the ultimate aim of having Mac II emulation running on the iPad!

It's early days yet, but it builds and (kind of) runs in the simulator (but haven't had any luck on the device yet). Sound hasn't been ported, the colour is all wrong, it leaks memory like there's no tomorrow - but I think it's a start at least.

The source and XCode project is available on https://github.com/pgodwin/minivmac-iphone.

Image
User avatar
ClockWise
Site Admin
Posts: 4399
Joined: Mon May 20, 2002 4:37 am
Location: Uiwang

Re: Mini vMac 3.2.3 for iPhone

Post by ClockWise »

Thanks for stopping by and sharing your work with the forum, superpete! We'll keep an eye on your progress. Feel free to stop by again when you have news to report.
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

I've fixed the video rendering, fixed some issues with accessing disks causing the emulation to freeze, and it now works on the iPhone.

It's quite slow, and sound still hasn't been finished. There's a lot more optimisation to happen esp on the video side of things where it looks like the app is spending most of it's time there!

If you've got a developer license you should be able to download the code, build and sign it with your developer device key and give it a go. Just drop your ROM (MacIIx.rom) and disk images to the Resources directory.

My order of priority for this project is:
1. video performance issues
2. iPad support
3. sound

Anyway's time for bed!
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

Pushed up some more changes, this time around video performance and iPad support. Video is probably as good as I can get - it's much better than it was a few days ago. iPad support seems fine, keyboard will need a little work.

Next up is sound.

Again, if you've the means to build and run code on your iOS feel free to give it a try.

I'll try and get a video up of the progress so far.
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

I've uploaded a video of it running on the iPad 1 http://www.youtube.com/watch?v=ZfnJB15VA_I

Still can't get sound working...not sure what to do atm.
User avatar
ClockWise
Site Admin
Posts: 4399
Joined: Mon May 20, 2002 4:37 am
Location: Uiwang

Re: Mini vMac 3.2.3 for iPhone

Post by ClockWise »

I'm not sure what the status of sound in the Mac II emulation is. There hasn't been an update about that on the site in some time. Last time Paul wrote about it in the news section it wasn't really working. It may still be disabled.
Last edited by ClockWise on Sat Dec 03, 2011 3:15 am, edited 1 time in total.
Reason:  
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

It kind of works in 3.2.3 beta, although it's a bit distorted. It's more a case of I'm unsure of how to port the code to iOS in a state that works.

I've examined the Linux and OS X code, I'm going to take a look at the W32 code tonight and see if I can work it out.
chinlin0924
Student Driver
Posts: 12
Joined: Sat Dec 03, 2011 2:37 am

Re: Mini vMac 3.2.3 for iPhone

Post by chinlin0924 »

really cool!!! thank you for your contribution!!!
Can this run for A/UX?
chinlin0924
Student Driver
Posts: 12
Joined: Sat Dec 03, 2011 2:37 am

Re: Mini vMac 3.2.3 for iPhone

Post by chinlin0924 »

I download your source code, and you seems to use newer SDK, and XCode.

I am using old XCode 3.2.6, because new XCode is slow to me.

You are using Core Video API - CVImageBufferRef, and that will fail in my XCode version.

:(
chinlin0924
Student Driver
Posts: 12
Joined: Sat Dec 03, 2011 2:37 am

Re: Mini vMac 3.2.3 for iPhone

Post by chinlin0924 »

what is your iPad1 iOS version?

I found another vmac ios port on ipad1 (iOS 4.3.3) has some problem on screen update without dragging the screen.

I have to drag the screen to let the screen update on iOS 4.3.3.

not sure if your version will have the same problem or not. I'll download a newer XCode, and compile your vmac to test if it works or not.


Thanks
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

My iPad is on 5.0, the project is set for 5.0, but it should be able to be built for previous versions without issue.

Screen redrawing seems fine, I at least haven't had any issues with it. It is faster drawing in BW than Colour which from memory was the same with the 68k Macs.

A/UX does not work on Mini vMac. I hear that MESS is getting close to proper MMU emulation and will be able to run A/UX one day.
User avatar
gryphel
Nice Guy
Posts: 106
Joined: Sat Nov 17, 2007 6:46 pm

Re: Mini vMac 3.2.3 for iPhone

Post by gryphel »

ClockWise wrote:I'm not sure what the status of sound in the Mac II emulation is. There hasn't been an update about that on the site in some time. Last time Paul wrote about it in the news section it wasn't really working. It may still be disabled.
Yes, this hasn't changed. Sound doesn't yet work very well in the Mac II emulation.

Now that I have a bit more time to work on Mini vMac, I hope to find some time to improve the Mac II sound emulation, starting by examining the work done lately in MESS.
superpete wrote:I've examined the Linux and OS X code, I'm going to take a look at the W32 code tonight and see if I can work it out.
So if you would like working sound before I get to it, you should be looking at the MESS source code.

By the way I'd be interesting in merging in some form of the iOS port into my version of the Mini vMac source code. But likely only a simplified form, not as fancy as I gather the iOS port has gotten. The benefit would be to make it easier to update the iOS port in the future as Mini vMac evolves. The main obstacle, other than lack of time, has been my unfamiliarity with Objective C and Cocoa.
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

I've got a C# background myself, so it's been a fantastic learning opportunity for me. That said, other than updating the Glue code, most of the work was originally done by Jesús A. Álvarez who wrote the original iPhone port.

I think getting the sound emulation working is beyond my capabilities, indeed I'm struggling to get the currently emulated sound to be outputted as it is (still getting my head around how the existing ports handle sound, they seem to be doing they're own queueing with TheSoundBuff..?).

Other than drive sounds and the settings window, I'm not sure what you could strip out of the port and have it still functional under iOS. I don't think the built in keyboard will suffice, there aren't any native file dialogs you could use, etc. I suppose that Mini vMac could have a disk search path variable, and allow the control screen to select an image from the list?
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

I download your source code, and you seems to use newer SDK, and XCode.

I am using old XCode 3.2.6, because new XCode is slow to me.

You are using Core Video API - CVImageBufferRef, and that will fail in my XCode version.
I'll check the current code in soon, I no longer use the CoreVideo API, just the CoreAnimation API for screen drawing.
User avatar
gryphel
Nice Guy
Posts: 106
Joined: Sat Nov 17, 2007 6:46 pm

Re: Mini vMac 3.2.3 for iPhone

Post by gryphel »

superpete wrote:still getting my head around how the existing ports handle sound, they seem to be doing they're own queueing with TheSoundBuff..?
The basic idea is a ring buffer that the platform independent code writes to, and the platform dependent code reads. The platform dependent code also adjusts how fast the emulation runs, adding or removing a tick every second, so as to keep the sound buffer filled to the desired amount, to keep latency as small as possible while avoiding buffer under run.

In Mini vMac 3.0.4, which Zydeco's iPhone port is based on, the platform independent code requests a 370 byte sound buffer every tick from the platform dependent code. Since the ring buffer size is not a multiple of 370, this requires a hack, where the platform independent code actually writes past the end of the ring buffer, and the platform dependent code copies the excess to the beginning of the buffer.

In Mini vMac 3.2.3, this hack is not needed. The platform independent code requests space, and is told how much contiguous space is actually available. If it needs to write more than that, it is responsible for breaking up the write into two parts.

In Mini vMac 3.2.3, the platform independent sound code also requests space in smaller chunks instead of a whole ticks worth of 370 bytes at a time. This would permit lower latency, at the discretion of the platform dependent code.
superpete wrote:Other than drive sounds and the settings window, I'm not sure what you could strip out of the port and have it still functional under iOS.
Perhaps so. As I said, I'm not very familiar with the iOS port. Since these days "Mini" is not referring to the complete source code, just the binaries, I guess I could just include the entire iOS port in my version of the source, if I get to understand it well enough.

One question I have, is it really necessary to have that many separate source files? For the other ports, there is basically one source file per port. I guess the convention in Objective C is to have each class in its own file. How strong is that convention?

Another question, how hard would it be to hack the iOS port to more or less run in Mac OS X? Having that to start from would make it much easier for me to get going with learning Cocoa and Objective C. So if someone did that hack, I would credit them for making the Mac Cocoa port of Mini vMac, even if I still needed to do a lot work to polish it. It's clear that a Cocoa port is going to be needed in the near future of the Mac.
User avatar
Tuscani
Space Cadet
Posts: 1
Joined: Fri Apr 20, 2012 9:56 pm

Re: Mini vMac 3.2.3 for iPhone

Post by Tuscani »

Hello everyone. First things first, glad to see that someone is working on a newer and improved version of Mini vMac, i really thank you for your efforts. But, how's development going?. It's been a while and it looks that there is no interest or activity.
I recently upgraded from a 16gb iPhone 3gs to a 64gb 1st gen iPad... And i'm considering to sell the ipad and buy another iphone for the sole reason of bringing back Mini vMac again. Unfortunately i'm no developer and i lack knowledge to compile a working version compatible with the iPad. i Tried all possible things with the old vMac avaliable from cydia and pre-compiled *.deb packages with no luck. Like chinlin0924 stated before, i can't get the screen to update properly.

Just in case that development has been halted, could any of you provide a *.deb package with the compiled sources with the most recent working iPad version?.
1st Gen iPad 64Gb iOS 5.0.1
ThunderSock
Student Driver
Posts: 11
Joined: Thu May 05, 2011 12:26 am

Re: Mini vMac 3.2.3 for iPhone

Post by ThunderSock »

superpete has been gone for most of the past five months, so I guess you should email him. And then let us know what he says.
Last edited by ThunderSock on Fri Nov 30, 2012 6:37 pm, edited 1 time in total.
ThunderSock
Student Driver
Posts: 11
Joined: Thu May 05, 2011 12:26 am

Re: Mini vMac 3.2.3 for iPhone

Post by ThunderSock »

I found out recently that you can emulate a Mac Plus on an iPad by running vMac 0.1.9.5 for DOS (http://www.leb.net/vmac/download/DOS/vM ... OS-Bin.zip) in DOSPad.
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

Hi all

Still lurking around. Ironically I updated the port so my daughter could play old games Mac educational games on the iPad, but she keeps me so busy I haven't had time to finish it.

Code is still on Github, I have no plans on making a deb package for jailbroken devices; I personally don't own any to test it on anyway. If you've got a iOS Dev account, just download the code and build+sign and run it on your iDevices.

If anyone wants to contact me your best bet is through Github.

As an aside, any spare time I have had has been spent playing with the MESS Mac emulation. It's fantastic, and worthy of more attention here at emaculation. I'd love to bring that up to a more user accessible level. I know Paul has been playing around with the code and was kind enough to send me his efforts stripping it down to just the Mac portions. Unfortunately I've not had enough time to do much with it.
User avatar
ClockWise
Site Admin
Posts: 4399
Joined: Mon May 20, 2002 4:37 am
Location: Uiwang

Re: Mini vMac 3.2.3 for iPhone

Post by ClockWise »

Please do share with us more info about MESS. It is sadly ignored around here. Information, how-to and the stripped version of the Macintosh emulation stuff would be very welcome in these parts!
User avatar
UbuntuXP
Tinkerer
Posts: 68
Joined: Sat Feb 08, 2014 8:15 pm

Re: Mini vMac 3.2.3 for iPhone

Post by UbuntuXP »

Can someone supply the binaries for those who can't compile the source for some reason? I'm unable to compile for my iPod touch 4G iOS 6.1.6. I'm trying to compile on Ubuntu 14.04 x64 using the link here https://code.google.com/p/ios-toolchain ... i/HowTo_en.
"Unix was not designed to stop you from doing stupid things, because that would also stop you from doing clever things."

Doug Gwyn
User avatar
adespoton
Forum All-Star
Posts: 4279
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: Mini vMac 3.2.3 for iPhone

Post by adespoton »

Why not just grab it pre-compiled from the cydia repo? Or are you wanting to do custom compiles? In that case, you should probably list the flags you want set before asking for someone to compile it :)
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: Mini vMac 3.2.3 for iPhone

Post by superpete »

I no longer have an iPhone dev account (I bought it for work while we were doing some mobile dev, and that's no longer happening, so I'm not wasting my money on it anymore).

I have no idea if it would even be possible to compile it under Linux correctly. Last time I tried, the XCode project just built - so it'd still be the simplest way to get a binary.
User avatar
adespoton
Forum All-Star
Posts: 4279
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: Mini vMac 3.2.3 for iPhone

Post by adespoton »

I still think adding the Cydia repo and grabbing it from there is the simplest way to get a binary; you don't need to keep compiling when there's only one target platform. And as you've discovered, unless you're using the cydia dev tools in the first place, you're going to have a hard time compiling and deploying (compiling itself can still be done) in XCode without a valid dev certificate.
User avatar
UbuntuXP
Tinkerer
Posts: 68
Joined: Sat Feb 08, 2014 8:15 pm

Re: Mini vMac 3.2.3 for iPhone

Post by UbuntuXP »

I do have a MacBook Pro now. I just need to figure out how to get Xcode to deploy Mini vMac to my iPod.
"Unix was not designed to stop you from doing stupid things, because that would also stop you from doing clever things."

Doug Gwyn
Post Reply