skmp / reicast-emulator

Reicast was a multiplatform Sega Dreamcast emulator
https://reicast.emudev.org
Other
1.1k stars 344 forks source link

iOS Version of Reicast #768 (continued) #1145

Open AbandonedCart opened 6 years ago

AbandonedCart commented 6 years ago

Continuation of https://github.com/reicast/reicast-emulator/issues/768

(Summary of most recent comments) @JoeMatt

I'm a little confused, is the disussion on posting a build from my fork? Was any of that merged into main? My fork is a nice thing to look at but I wouldn't consider it playable until I work out the audio timing issues. It's on my radar, but I have a lot of projects right now I'm working on.

I've actually been doing the next stage of work on a branch of Provenance, since I'm more familiar with my own code base and have a lot of assistance classes for audio / video timing etc,

https://github.com/Provenance-Emu/Provenance/tree/feature/Core-Reicast

I have another commit with the time stamped CARingBuffer, which might be the final solution, but I haven't pushed it yet since the input buffer's CATimeStamp is not yet synced to anything meaningful but the system clock, so it drifts in and out of the output buffer range. It's a nice test but you'll get audio for a few seconds, then none, then audio again, then none. The speed is more stable though and CPU isn't being stalled on each frame causing the massive overhead as it rushes to render the next frame after the audio buffer is drained like the original code on the non-dynarec pipeline.

@brand175

Instead of using google drive or dropbox. I zipped the file and dragged it onto github. I'll also put it on the reicast forum.

reicast-ios.zip

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/57982721-ios-version-of-reicast-768-continued?utm_campaign=plugin&utm_content=tracker%2F500311&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F500311&utm_medium=issues&utm_source=github).
skmp commented 5 years ago

@JoeMatt want to come over to http://chat.reicast.com and discuss this there? I don't have the time right now to write detailed documentation, and several things have changed the past year(s) so I'm not sure I'm 100% up to date with the code base. FH, me and Z are all there :)

skmp commented 5 years ago

Overall, I think it would be amazing for the front end to communicate with the back-end over some libretro-ish api, even for our own imgui frontend.

skmp commented 4 years ago

@einsteinx2 I guess you want this picked up? You think the milestone assigned is reasonable?

boy13epic commented 4 years ago

i have tested mvc 2 and jojo,jojo ran fine until the gameplay and mvc2 runs fine until the select screen

chinarut commented 3 years ago

I realize this is from Nov 2018. I use RetroArch iOS all the time and thought I’d chime in...

I'm curious if the RetroArch 'fork' of reicast works with audio on Non-jailbreak devices. I haven't had time to test since I don't really use retroarch on iOS ever. They have a very simple buffer copy similiar to the other system render types, so i'd assume it would be slow as shit like I get on my end on anything that isn't copy and return async. If it's not, I wonder if they made patches to the sync-ing of the a/v/cpu emulation. (Im' kind of assuming reicast models each of these in a kind of silo so they're not all thread blocking reading state data and generating their output, which I probably how the OpenGL side of things runs butter fast on slow cpus?)

I have RetroArch running on a non-jailbroken iPad Pro (2018) sideloaded through AltStore that includes the Flycast core.

It has the same issues when audio is present - massive slowdown. When the audio channel gets disabled (it’s buggy so it just dies on its own), everything is in hypermode - I think Ikuruga was at 120 FPS at one point. Dead or Alive 2 actually is playable when there is no audio.

My guess is the fork is the same implementation?