Coder Social home page Coder Social logo

Comments (62)

JoeMatt avatar JoeMatt commented on May 5, 2024 9

I have preliminary N64 support via mupen64plus 2.5 on my fork/branch
https://github.com/JoeMatt/Provenance/tree/mupen

ROMS load without error but they're not playable due to some OpenGL changes that need to be made. Also no sound or input controls are hooked up. Basically it's just a test that it can be compiled and execute the core on a ROM.

Some important things to note:

  • mupen uses dlopen so components needed to be compiled as dynamic frameworks. This means an iOS version of 8+ is required. I suspect as more cores are added in the future dyn frameworks would be preferred over static libs currently used as I've already seen issues with namespace collisions for cores that share external libraries.
  • I originally was using static libs and there were namespace collisions with some other cores over static constant labels. I did a bunch of renaming that isn't necessary now
  • Ambiguous header imports for headers that shared names also caused issues so I used relative paths as a hack
  • Mupen executes on a separate thread. This means the OpenGL context needs to be created on that thread. I've hacked in the creation of a new context on the same execution thread just to get the rom's to load without error. You cannot actually see what is drawn. OpenEMU has support for cores to render their on their own, this would need to be added to Provenence. Looks simple enough but I'm not terrible familiar with the differences between NSOpenGL and EGL on iOS. Someone with more experience should tackle this.
  • There are some hacks and todo's noted in the source. It's a holiday and I ran out of time to make things pretty in some cases. I also assumed @jasarien might want to change file layout structure anyway to match the other cores so I didn't bother going crazy keeping things pretty. This was just an exercise in getting it to compile and run.

I can make a pull request since it's all on a separate branch and then contributors could work from the main repo. Let me know what's preferred.

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024 8

Core is running games now, kind of.
Screenshot

  • Performance is poor in simulator. Might be due to OpenGLEs to OpenGL conversion that has to happen in sim
  • Doesn't run at all on device. Crashes due to some other OpenGL API issue.
  • Dynamic Recompiler won't work on non-jailbroken devices so expect even worse performance
  • If I were to allow Dynarec, would need to figure out some run-time way of enabling it. Right now it isn't even compiling on ARM anyway.
  • Dynarec I think doesn't support ARM64 on the current fork we'er building again. Would need to investigate this.
  • Obviously i have some more OpenGL work to do since the screen is ¼ size.

tldr; Progress but don't get your hopes up for non-JB devices anytime soon.

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024 5

My stella port is pretty much done minus one bug so I'm willing to take a look at this again. Don't know how far I'll get with these OpenGL issues. I know the emulation is working though because I do get a second or two of audio on some games before the renderer crashes.

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024 2

My branch is up to date with master after the recent core merges.

https://github.com/JoeMatt/Provenance/tree/mupen

It should build in Xcode 8.1 in non release configuration. GL issues are still present, I just made changes to get it to build again with the updated project framework architecture.

from provenance.

appletv4 avatar appletv4 commented on May 5, 2024 2

@JoeMatt with icade working on Apple TV now

Maybe this will work too when you get n64 running
http://www.8bitdo.com/n64/

from provenance.

braindx avatar braindx commented on May 5, 2024 2

Just opened a new pull request with initial support for N64 emulation: #677

from provenance.

paviro avatar paviro commented on May 5, 2024 1

Just tried the N64 emulator in retroarch it works great on iOS except the app is horrible to use compared to this one...
Looking forward to see it here some day! :)

from provenance.

drewcovi avatar drewcovi commented on May 5, 2024 1

agreed with @b- Many N64 games suffered very little when ported to Gamecube... the C buttons were intended for the "camera" in the first place, weren't they? makes it almost ideal for a mapping to the second joystick...

from provenance.

Andorbast avatar Andorbast commented on May 5, 2024 1

The MFI controller works great for N64 games on OpenEmu for MacOS. You are able to map the c buttons to the right analog stick. When airplayed to the Apple TV there is a small lag but to big for comfortable gaming tough. Any news about the N64 provenance?

from provenance.

jasarien avatar jasarien commented on May 5, 2024

Reopening this issue just so it's more visible for those who keep raising duplicates.

from provenance.

xoniq avatar xoniq commented on May 5, 2024

Would this be possible by by forking:

https://github.com/zodttd/n64ios
?

from provenance.

jasarien avatar jasarien commented on May 5, 2024

Nothing's impossible. It's just a case of time and effort, both of which are pretty limited.

Last commit on that Repo was over 3 years ago, though, so I'd probably favour something more recent.

from provenance.

 avatar commented on May 5, 2024

https://github.com/rileytestut/N64iOS

this is another possibility even though it is also a bit old

https://github.com/mupen64plus

is supported by open emu

from provenance.

RedLucas avatar RedLucas commented on May 5, 2024

I suppose the best would be to use the same as OpenEMU does with https://github.com/OpenEmu/Mupen64Plus-Core / https://github.com/mupen64plus/mupen64plus-core

OpenEMU "supports" it now, so perhaps they are pretty confident in what it can do now as well. This would be a spectacular addition...

from provenance.

Mkaay83 avatar Mkaay83 commented on May 5, 2024

Good idea i suppose?!

from provenance.

xoniq avatar xoniq commented on May 5, 2024

Anything on this yet? This would be awesome. To play Mario 64, Zelda OOT, DK64, CBFD again.

from provenance.

EdStark666 avatar EdStark666 commented on May 5, 2024

Very interested in N64 Support :-) jasarien Please!

from provenance.

xoniq avatar xoniq commented on May 5, 2024

@JoeMatt that looks really promising! Awesome to see someone working on it.

from provenance.

illando avatar illando commented on May 5, 2024

That's a really great news @JoeMatt ! Thanks!!!

from provenance.

Andorbast avatar Andorbast commented on May 5, 2024

I would be so happy when I am able to play old school N64 games on my Apple TV!! Thanks @JoeMatt for all the efforts so far

from provenance.

beeblebox avatar beeblebox commented on May 5, 2024

@Andorbast I agree, is there a page where we can donate?

Also @JoeMatt would this support 2 controller support?

I find I can't use my second controller for any of the existing emulators because those systems were small single player modules.

from provenance.

jasarien avatar jasarien commented on May 5, 2024

@beeblebox Most of the currently supported systems support local multiplayer with multiple MFi controllers. Multiple iCade controllers aren't supported because of the way they work. Only Gameboy doesn't support multiplayer because it's a single player system.

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024

fyi, just launched a few commercial iOS app updates and now i'm on a show vacation so haven't looked at this in a bit and probably won't for another week but I'm still on it. All my changes so far are on my fork is any OpenGL coders can fix the multithreading render issues i'm having.

from provenance.

beeblebox avatar beeblebox commented on May 5, 2024

@jasarien so would my Nimbus controllers work with appletv snes emulator in 2 player mode?

@JoeMatt whats your iOS apps? i wanna download them to support you

from provenance.

revnelson avatar revnelson commented on May 5, 2024

@beeblebox Yes, I have successfully played snes games with two Nimbus controllers connected to the Apple TV. Really excited for N64 support.

from provenance.

tonycoco avatar tonycoco commented on May 5, 2024

@JoeMatt I might be able to help. Will take a look and make notes on your fork when I have some time this week.

from provenance.

ArnaudFeld avatar ArnaudFeld commented on May 5, 2024

Any News about the N64-Support?

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024

I've had some unexpected things come up and I've hadn't had time to work on any FOSS projects for a bit. I haven't forgotten about it though. It will probably be a couple weeks before I can start up again.

from provenance.

soraythus avatar soraythus commented on May 5, 2024

N64 support would be so awesome!!! who hasn't great memories of those good old days :) thx for keeping that dream alive!!

i'm really not a programmer, but from my experience with openemu on my mac i hope that not only the rice video plugin, but also the glide64(mk) plugin will be supported. some games just don't work with rice.

from provenance.

soraythus avatar soraythus commented on May 5, 2024

@jasarien how can i donate a little something?

from provenance.

MysticalOS avatar MysticalOS commented on May 5, 2024

Ugg Retro disgusts me. I couldn't use it. I tried, it was awful, never again.

from provenance.

paviro avatar paviro commented on May 5, 2024

Yeah it totally sucks but hey it works...

from provenance.

diogoviannaaraujo avatar diogoviannaaraujo commented on May 5, 2024

Seems the news on this have stopped..

from provenance.

appletv4 avatar appletv4 commented on May 5, 2024

@JoeMatt when will you add the Atari emulator to provenance pull request
And thanks for your work on the n64

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024

@appletv4 In the ticket for Stella (Atari) I have one bug that needs to be fixed before I do that. It works with MFI controllers but crashes using on screen controls. I've reached out for some help with why that would be the case because I'm not familiar with the control code and haven't had time to dig into it more.

from provenance.

beeblebox avatar beeblebox commented on May 5, 2024

@JoeMatt did you give up? I was hoping to have a n64 Apple TV port by now /:

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024

Not given up, just put my efforts elsewhere in the meantime. I've added Atari 2600, 5200, 7800 and Sega 32X cores and am starting work on PS1.

And also,N64 support would really need new controller solution since MFi controllers only support 4 buttons +DPAD + 4 triggers. Some of the devs are working on a possible solution on this but it's probably going to be a while.

from provenance.

beeblebox avatar beeblebox commented on May 5, 2024

@JoeMatt ok thanks. Please let me know when the PS1 emulator is ready because that sounds awesome

from provenance.

b- avatar b- commented on May 5, 2024

@JoeMatt What about the MFi Apple TV controllers with dual thumb sticks? I have one myself, they carry two brands at most Apple Stores…

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024

It's not the sticks, it's the lack of other buttons.
N64: 3 Triggers (L,R,Z) 1 DPAD, 1 Joystick, 7 buttons (B,A,Start,CU,CD,CL,CR)
MFI: 4 Triggers, 1 DPAD, 2 Joystick, 4 buttons.

That's it. Apple's GameController class has those buttons pre-defined and hardware dev's have to stick to that layout or lesser.

The only idea I've managed to come up with is making an app to bounce inputs from a desktop to ATV over the network.

There's some project that maybe does that, https://github.com/robreuss/VirtualGameController . I've only glanced at the README, not sure if it does what we need or not yet. I'll test this after I fix 32X, merge that with the Xcode 8 changes and then maybe add another core (Neo Geo or PSX).

There's also an updated libretro fork of mupen I need to look over, https://github.com/loganmc10/GLupeN64

And another entirely new project I found recently, https://github.com/project64/project64

from provenance.

kdrag0n avatar kdrag0n commented on May 5, 2024

Just a warning: I've heard about Project 64 before. Be wary of viruses when you download the Windows installer - it's been known to have viruses in the past embedded into it, like adware. Not sure if it still has them.

About the N64 controller mapping: Why not just map what you can for MFi controllers, and leave the rest (full experience) to touch only?
(I don't know how any of this would work, since I don't have a MFi controller)

If you read my edited comment on your pull request, I managed to get it to compile in Xcode 8.

from provenance.

b- avatar b- commented on May 5, 2024

I mean, the GameCube controller has the exact same number of buttons, and it works great for N64 games. The right stick often can be mapped to the C buttons and you can call it a day. Or there are so many games that don't use the D-Pad at all that it could be mapped to the C buttons on those. All in all, I don't see how the controller could be an issue since Nintendo's own N64 emulators use a similarly-specced controller.

from provenance.

b- avatar b- commented on May 5, 2024

I guess what I'm saying is that remapping can totally take care of the number of buttons issue.

from provenance.

QuarterSwede avatar QuarterSwede commented on May 5, 2024

I don't see the controller being an issue either. Map Z to L2 and/or R2 and the C buttons to the right analog stick. That takes care of every button and is usable with two hands at the same time (unlike mapping C to the D-Pad) if you need to move the character and the camera simultaneously, for instance.

from provenance.

JoeMatt avatar JoeMatt commented on May 5, 2024

I wouldn't spend too much concern on controller mappings at all right now. There are much more difficult technical hurtles to overcome.

from provenance.

drewcovi avatar drewcovi commented on May 5, 2024

👍

from provenance.

jasarien avatar jasarien commented on May 5, 2024

@appletv4 😂 I wonder how long until Nintendo starts noticing these controllers and decides whether or not this counts as copyright infringement

from provenance.

mattmagi avatar mattmagi commented on May 5, 2024

The day N64 is compatible I will be so happy...007 and Mario Kart here we come! Id be willing to donate if that helps!

from provenance.

ankh2054 avatar ankh2054 commented on May 5, 2024

I would also be willing to donate. I just want to play Killer Instinct N64 :)

from provenance.

jasarien avatar jasarien commented on May 5, 2024

A note on donations: https://github.com/jasarien/Provenance/issues/513#issuecomment-272658255

from provenance.

arteaga323 avatar arteaga323 commented on May 5, 2024

Just want to say thank you guys for an awesome work! Also I would love to play N64 again on my phone! Can't wait! Thanks for everything!

from provenance.

dallasgroot avatar dallasgroot commented on May 5, 2024

I'm trying to install this onto my atv4 but I keep getting build problems... I just changed the bundle identifier

from provenance.

aenhsaihan avatar aenhsaihan commented on May 5, 2024

Hey guys, happy to pitch in here any way I can. I tried Happy Chick, and it seems to work fine on iOS. But the fact that it was made in China and the way it sources the ROMs seemed very shady to me. It just didn't seem smart to blindly install it on my device. I would much rather help you guys out any way I can to get a safe and trusted N64 emulator on this platform. What do you guys think of those emulators like Happy Chick or NewGamePad on Tweakbox?

from provenance.

appletv4 avatar appletv4 commented on May 5, 2024

http://gizmodo.com/this-snes-style-nintendo-switch-controller-is-designed-1795858424

from provenance.

jasarien avatar jasarien commented on May 5, 2024

Now that looks pretty cool.

from provenance.

TBusen avatar TBusen commented on May 5, 2024

Is this still being worked? Would love N64 support!

from provenance.

tonycoco avatar tonycoco commented on May 5, 2024

@JoeMatt any progress getting this merged to master?

from provenance.

jasarien avatar jasarien commented on May 5, 2024

N64 support has been merged into the develop branch

from provenance.

drewcovi avatar drewcovi commented on May 5, 2024

Oh em gee

from provenance.

dallasgroot avatar dallasgroot commented on May 5, 2024

Does this mean what I think it means? This is going to be freaking awesome!

from provenance.

drakkhen avatar drakkhen commented on May 5, 2024

Wooooot!!! Can’t wait to get home to try it out! Thank you!!

from provenance.

tomp8628 avatar tomp8628 commented on May 5, 2024

I literally only understand how to load the iPA on to my Apple TV, so will an updated iPA be made available with N64 support? Sorry for being a novice on here.

from provenance.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.