mauiaaron / apple2

Apple //e emulator
http://deadc0de.org/apple2ix
GNU General Public License v3.0
32 stars 3 forks source link

No sound on real IOS hardware #10

Closed jvernet closed 7 years ago

jvernet commented 8 years ago

Sound work in simulator but not on real Hardware (iPad 2). OPENAL error not supported.

Not tried on anything else.

jvernet commented 8 years ago

No sound at all (speaker nor MB) on iPad 2, iPad mini, but Speaker on iPhone 5s, no MB

mauiaaron commented 8 years ago

OK, good to know, thanks! The sound was working previously on my iPod running iOS 8.4 before I was called away to deal with Android issues.

The iOS port is still in the early stages at this point. I'm hoping to have an official release out on Cydia by mid-year, so stay tuned =)

jvernet commented 8 years ago

As I cannot wait for an IOS version, i made my own fork and added what is needed to make it work (pref view, choose disk view, reboot, pause, cpu speed).

It use a toolbar at the bottom of the screen, so the emulated keyboard is a little bit too high, cannot find how i can reduce it by 32 pixel. And I found another bug with latest changes you made: if you make disapear the keybord, app crash on a gl_quad something pointer set to NULL.

mauiaaron commented 8 years ago

Oh cool, can you issue a pull request for the changes you made? I will try to fix the graphics glitches and the crash if I can reproduce them on my iPod.

jvernet commented 8 years ago

Le 04/01/2016 18:47, Aaron Culliney a écrit :

Oh cool, can you issue a pull request for the changes you made? I will try to fix the graphics glitches and the crash if I can reproduce them on my iPod.

I tried a push request, don't know really how this thing work ;).

Also, I made a more macosx friendly interface for the MacosX build.

Jerome

mauiaaron commented 8 years ago

Merged your pull request, thanks! The GL quad crash should now be fixed, so please update to the latest version of my develop branch.

If you are new to git (as I was not too long ago!), my advice is to keep backup copies of your working folder until you become more comfortable with git.

Also, I have not been able to reproduce the audio problem on my iPod touch ... I hear the audio just fine. I will try to investigate with an iPad I can borrow.

jvernet commented 8 years ago

I will work on my own fork, don't want to be able to change one thing in your repo.

mauiaaron commented 8 years ago

OK, sounds good! I would like to pull in your work every now and then (when you think it is ready)

For now I am mostly working on the Android port, so we should not have a problem with overlap or duplicating work =)

jvernet commented 8 years ago

Le 05/01/2016 18:40, Aaron Culliney a écrit :

OK, sounds good! I would like to pull in your work every now and then (when you think it is ready)

For now I am mostly working on the Android port, so we should not have a problem with overlap or duplicating work =)

— Reply to this email directly or view it on GitHub https://github.com/mauiaaron/apple2/issues/10#issuecomment-169076716.

Hello,

Starting from your recently merged repo, all things I made are here. For IOS, just on thing: unhide in the Apple View Controller the main toolbar to have access to icons such as reboot, load disk, prefs). i found later your menu, but do not like it ;) That's why I would like a virtual keyboard a little (by 32 pixel) bit smaller in height.

Put disk images in the IOS Document folder (for the simulator, find the location in your Library/Developper/Core Simulator, for real iSomething, using iTunes Documents synchro).

I'm working on the french translation of MacOsX version, or improve functionnality (adding option to disable the disk drive on screen message, or disable gz disk image for example).

I do not have to touch to the core emulation (except that I found some assert that fail on IOS, or the gzip of disk -it "gzed" my disk image I use with other emulator !). Hope that you can improve Core emulation (screens mode not perfect, Mockingboard play a little bit to high vs a real card, adding NSC, RamCard, HD emulation, etc)...

I do not know what is "git rebase" but will learn ;). Keep going on ! regards,

Jerome

mauiaaron commented 8 years ago

You are right that gzipping of disk images should be optional! I will make a ticket for that.

The iOS menu I added was very preliminary, so I agree that we should replace it with a better interface!

I don't understand why you want the physical keyboard to be smaller? Can you explain what the problem is or show it via a Youtube video? Also try setting the the glphy scaling to something higher (to get less pixelated keyboard): keydriver_setGlyphScale(2); interface_setGlyphScale(2);

The core emulation improvements that you listed are on my informal TODO list, but now I should actually make tickets for these issues here on Github.

Thanks again for your work! Keep in touch =)

jvernet commented 8 years ago

Hi,

Le 06/01/2016 05:29, Aaron Culliney a écrit :

You are right that gzipping of disk images should be optional! I will make a ticket for that.

The iOS menu I added was very preliminary, so I agree that we should replace it with a better interface!

I don't understand why you want the physical keyboard to be smaller? Can you explain what the problem is or show it via a Youtube video?

Here is why, look at joigned image. My menu bar overlap the keyboard a litlle bit ,;).

I tried to make it appear/disapear, with a simple up gesture, but it do not work (touch event are deturned to your code).

One thing (but I'm not a specialist): why don't you used a GLKitView/GLKitview controller, instead using the classic View for IOS and redefining the View Class?

Jerome

mauiaaron commented 8 years ago

GL Touch devices:

GLKitView:

jvernet commented 8 years ago

Le 08/01/2016 20:00, Aaron Culliney a écrit :

GL Touch devices:

  • Currently the design is for the active GL touch device (touch keyboard, touch joystick, etc) to "own" the whole screen and capture all the touch events (this is particularly important for the touch joystick implementation). But this means that /this design is currently incompatible with iOS gesture recognizers/.
  • The way I intended popup menus to work was to access the "checkmark glyph" through the top right corner diamond menu. Tapping on that glyph should pause emulation and show a configuration menu. This is the way it works on Android.
  • Currently the touch menu in the top right corner has a checkmark glyph that (on Android) is designed to open the main menu. From the main menu you can then access disk menu, settings menu, etc screenshot_2016-01-08-10-38-10 https://cloud.githubusercontent.com/assets/1467625/12206635/e8b8f2dc-b5f6-11e5-8753-8056348898b5.png

I undestand. I will try to connect this checkmark to my menu. It's not Apple Guideline compliant, but who care, this app will never be on AppStore ;).

GLKitView:

  • If this is Apple's modern OSX/iOS API, then I think we should eventually upgrade to use it. But care has to be taken to make sure any changes to the core OpenGL code remains compatible with desktop Linux (OpenGLUT) and Android (GLSurfaceView). It's a simplier way to handle a GL surface, the only thing you habe to care is the display, everything else is done automaticaly, if I understand.

— Reply to this email directly or view it on GitHub https://github.com/mauiaaron/apple2/issues/10#issuecomment-170093047.

mauiaaron commented 8 years ago

Yes I think we should try GLKitView/Controller ... we can always fix problems introduced to the other platforms as needed =D

jvernet commented 8 years ago

I've connected my toolbar to the Menu Mark on the right upper corner. When you click on it, it show a UIToolbar on the botton, to access some function (Reboot, Pause, Preferences, Disks Insert).

If you click on it again, this toolbar disapear. it's cool ;).

I have to deal now to a way to handle disk image downloaded directly from Safari (right now, it work Safari ask to open disk image in Apple2IOS, but my disk View do not handle it, as Safari put these disks in a SubFolder.

JV

mauiaaron commented 8 years ago

@jvernet : can you see if latest develop branch commit https://github.com/mauiaaron/apple2/commit/d44aad062a4fdb84fe6e68b86211dd519fd99369 gets NSCT.dsk booting on iOS device? If so I will mark this ticket as fixed.

jvernet commented 8 years ago

Le 23/01/2016 22:06, Aaron Culliney a écrit :

@jvernet https://github.com/jvernet : can you see if latest develop branch commit d44aad0 https://github.com/mauiaaron/apple2/commit/d44aad062a4fdb84fe6e68b86211dd519fd99369 gets NSCT.dsk booting on iOS device? If so I will mark this ticket as fixed.

Yes !!!! It work !

Flickering screen, sound seems to be a little bit to high (playing too fast ??).

Well, with the last production of French Touch (Crazy Cycles II), you have a lot of work to do about cycle exact emulation... Applewin himself is hard at playing the complete demo. Tried on my overboosted IIe (Zipchip+MB), it's the best demo ever seen on Apple II.

JV

— Reply to this email directly or view it on GitHub https://github.com/mauiaaron/apple2/issues/10#issuecomment-174222580.

mauiaaron commented 8 years ago

The flickering screen is due to a change in my experimental branch that I will not bring to the mainline develop branch until it is fixed. Maybe rebase your work on top of my develop branch for now. (I should never force push any changes to develop, so you should be safe using that branch; but please note that I do force-push to my experimental branch often!)

Also, when you get a chance, please create a new ticket for the Mockingboard playing too fast or not at the correct pitch. It may be helpful (but not necessary) if you can create a video (Youtube/vimeo/etc) showing the correct timing/sound from your overboosted //e? The Mockingboard implementation in Apple2ix is based on AppleWin's implementation, so I'm not surprised that AppleWin also exhibits this problem.

jvernet commented 8 years ago

Le 24/01/2016 20:15, Aaron Culliney a écrit :

Also, when you get a chance, please create a new ticket for the Mockingboard playing too fast or not at the correct pitch. It may be helpful (but not necessary) if you can create a video (Youtube/vimeo/etc) showing the correct timing/sound from your overboosted //e? The Mockingboard implementation in Apple2ix is based on AppleWin's implementation, so I'm not surprised that AppleWin also exhibits this problem.

Playing NSCT for example on Applewin produce a perfect sound. But a real MB do not produce this perfect sound. Playing fast music pitch and tone change on a old MB produce noise, ticks and other artifact that emulator do not reproduce.

If you run NSCT under Applewin, you will get a perfect sound. I found that under Apple2ix, it play a little bit faster.

JV

mauiaaron commented 8 years ago

OK, thank you for making this clear. I will try to get it matching AppleWin's performance.

mauiaaron commented 8 years ago

I finally got set up to build and run AppleWin again and I can hear the difference in output. I will look into why there is a discrepancy, thank you for your patience!

mauiaaron commented 7 years ago

@jvernet : This should now be fixed in tag/release android-1.1.8 on develop and master branches.

Please open a new issue if you discover other audio problems, thank you!