libretro / parallel-n64

Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus.
319 stars 128 forks source link

[BOUNTY] Write an ARM64 DYNAREC #538

Closed natinusala closed 5 years ago

natinusala commented 6 years ago

Bountysource

Writing an ARM64 DYNAREC (JIT compiler) would allow games to run at full speed on the growing number of ARM64 platforms :

Link to the associated bounty : https://www.bountysource.com/issues/63766562-write-an-arm64-dynarec

m4xw commented 5 years ago

@IntelMiner Would you mind reviewing https://github.com/libretro/mupen64plus-libretro/pull/39 for us while you are at it?

IntelMiner commented 5 years ago

@m4xw I left RetroArch compiling overnight on the Pi. Unfortunately it seems to have died from such heavy lifting

I'll source a new one and report back in a week or two

IntelMiner commented 5 years ago

@m4xw I seem to have hit a wall, and I'm a bit out of my depth with what might be causing it unfortunately

I applied the patches you referenced, and did a quick-and-dirty RetroArch + Mupen64 compile

Upon launching a ROM (Super Mario 64 for testing) however it seems to crash

[INFO] [GL]: Found GL context: kms
[INFO] [GL]: Detecting screen resolution 1366x768.
[INFO] [EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT
[INFO] [EGL]: EGL version: 1.4
[ERROR] [EGL]: #0x3009, EGL_BAD_MATCH
[ERROR] [Video]: Cannot open video driver ... Exiting ...
[ERROR] Fatal error received in: "init_video()"

crash.log

nterry commented 5 years ago

Ive been running the latest (i think?) beta on my switch on retroarch and sxos. I am able to run MK64 and Starfox 64. They are both playable but haver some moments of significant slowdown... This dynarec shows promise, but needs a lot of work... Does anyone know where I can get the nightly build of the mupen64 plus nro with the dynarec compiled in?

Also, I plan to share some captured footage to show the slowdown maybe later tonight.

m4xw commented 5 years ago

@nterry The stutter will never be resolved on Switch without kernel patches, you better start getting used to it. SX OS will never support them.

nterry commented 5 years ago

@m4xw Forgive my ignorance, this is not my area of expertise. What CFW should I be running to get a good experience? Can you give me an example of a kernel patch that would be needed? Why won't SX OS support these patches?

Im not being facetious, I am genuinely interested/curious.

m4xw commented 5 years ago

@nterry We would need to patch the kernel to allow RWX memory, currently it enforces W^X. SX OS is closed source, most of their code is stolen from Atmosphere and even if we wanted to, we would not be able to do what we need to do to achieve this. Use atmosphere.

nterry commented 5 years ago

@m4xw Ok, so Atmosphere has those patches? Also, to check my understanding, W^X means write OR execute (the implication being that you have to switch the mode each time)? Or am i mistaken?

EDIT: Is https://github.com/Atmosphere-NX/Atmosphere what you mean?

Also, can i use the sx os dongle to install atmosphere? Is there an installation guide?

m4xw commented 5 years ago

No custom firmware has these patches. They don't exist yet. Sorry this Issue isn't "CFW support".

And yes, the back and forth between write OR execute is what causes the stuttering.

nterry commented 5 years ago

@m4xw yeah you’re right, but thanks for answering my questions anyways! Can you direct me to cfw support?

c0d3x27 commented 5 years ago

Bountysource

Writing an ARM64 DYNAREC (JIT compiler) would allow games to run at full speed on the growing number of ARM64 platforms :

* Android phones through RetroArch64

* iOS devices running on ARM64 (starting from the iPhone 5S if I'm not mistaken)

* Nintendo Switch through the Switch OS

* Some of the newest boards Lakka supports such as RK3328 and RK3399-based boards, as well as the Raspberry Pi 3B+

Link to the associated bounty : https://www.bountysource.com/issues/63766562-write-an-arm64-dynarec

git@github.com:Banginpadr/mupen64plus-core.git

c0d3x27 commented 5 years ago

i already gave the link for this. why is it still open?

m4xw commented 5 years ago

@Banginpadr The bounty is basically finished since 3 months It will be awarded to @Gillou68310

iOS4all commented 5 years ago

@m4xw please can we apply this on pcsx reARMed for Switch as well?

m4xw commented 5 years ago

This bounty is now finished - Many thanks to @Gillou68310 for his awesome work and dedication! @ Everyone who contributed, make sure you accept the claim for Gillou68310 and not some imposter!

tiliarou commented 5 years ago

I know this is not the place but bounty source is not the easiest to go through when a claim is contested by childish morons... Information gathered in case backers don't take time to read (from CTC):

Gillou683I0 with I instead of 1 and id of 67881, is a fake claim. The real claim is by gillou68310 (with 1) and id of 67621

Real claim is the first one by user 67621 https://www.bountysource.com/people/67621-gillou68310

Can we write to bountysource and ask them to reject any new claim for this particular bounty ? And to put safeguards prevent this kind of behaviour... Why can 4h old account claim a bounty opened last year and for which they didn't announce they are working on ?

natinusala commented 5 years ago

Someone is indeed trying to hijack the bounty. Please be careful when accepting the claim.

inactive123 commented 5 years ago

I am contacting Bountysource directly, hope they can help us out dealing with this abuse.

c0d3x27 commented 5 years ago

@Banginpadr The bounty is basically finished since 3 months It will be awarded to @Gillou68310

why it will be award to him when i did it way before him?! what kind of stuff is this? go check on my solution go to my profile and check who did it first. this guy is just trying to hijack the bounty

m4xw commented 5 years ago

@Banginpadr you did not change a single line of code, I diff'd it long ago. Heck you didn't even copy the latest version. Now stop making a fool out of yourself, stop spamming our mailboxes.

c0d3x27 commented 5 years ago

@Banginpadr you did not change a single line of code, I diff'd it long ago. Heck you didn't even copy the latest version. Now stop making a fool out of yourself, stop spamming our mailboxes.

you asked for a fucking solution and i gave ya one, not a fucking brand new custom shit. but is ok then fuck ya, im taking down the source code.

m4xw commented 5 years ago

@Banginpadr you did not change a single line of code, I diff'd it long ago. Heck you didn't even copy the latest version. Now stop making a fool out of yourself, stop spamming our mailboxes.

you asked for a fucking solution and i gave ya one, not a fucking brand new custom shit. but is ok them fuck ya, im taking down the source code

Please do it, your repo is a eyesore. Gillou supplied a working prototype in december already, at that point you didn't even start.

not a fucking brand new custom shit kek not a single line was changed

c0d3x27 commented 5 years ago

@Banginpadr you did not change a single line of code, I diff'd it long ago. Heck you didn't even copy the latest version. Now stop making a fool out of yourself, stop spamming our mailboxes.

you asked for a fucking solution and i gave ya one, not a fucking brand new custom shit. but is ok them fuck ya, im taking down the source code

Please do it, your repo is a eyesore. Gillou supplied a working prototype in december already, at that point you didn't even start.

not a fucking brand new custom shit kek not a single line was changed

i didnt went and check who was working on it first, because it had been open for a minute now, if he did submitted in December why are ya only paying it today?and like i said no one asked for something new but a solution. so stop talking shit.

andres-asm commented 5 years ago

The title is quite obvious It says:

Write an ARM64 DYNAREC

Write being a keyword.

Trying to get the moral high-ground while trying to rip off others. The nerve of some people....

LilaQ commented 5 years ago

Let me guess who falsely claimed the bounty last night several times then...

bountysource-bot commented 5 years ago

Bountysource is aware of the abusive accounts and fraudulent bounty claims. We are also aware of an fake Bountysource account. Abusive accounts are being deleted. Libretro and community have made it clear who will be awarded the bounty. We will implement a mechanism in future to stop fake accounts spamming the claim.

AndreoBotelho commented 5 years ago

Is there any update on Gillou68310's code from mupen64? There have been a lot of time since I've ported it from the mupen64 code.

Em qua, 3 de abr de 2019 às 01:06, bountysource-bot < notifications@github.com> escreveu:

Bountysource is aware of the abusive accounts and fraudulent bounty claims. We are also aware of an fake Bountysource account. Abusive accounts are being deleted. Libretro and community have made it clear who will be awarded the bounty. We will implement a mechanism in future to stop fake accounts spamming the claim.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/libretro/parallel-n64/issues/538#issuecomment-479329965, or mute the thread https://github.com/notifications/unsubscribe-auth/Ark7p7qZynDmotBSXqZCJm_V_LmDjI8aks5vdCjLgaJpZM4W1sZ_ .

-- André Botelho andrebotelhomail@gmail.com

m4xw commented 5 years ago

@AndreoBotelho the old codebase is not compatible anymore. https://github.com/libretro/paraLLeXT https://github.com/libretro/mupen64plus-libretro-nx ^Use it

AndreoBotelho commented 5 years ago

Thanks, I'll test it once get time, you-ve restarted from Mupen64 and removed old plugins, hope it is still fast and not like Mupen

Em qua, 3 de abr de 2019 às 13:55, m4xw notifications@github.com escreveu:

@AndreoBotelho https://github.com/AndreoBotelho the old codebase is not compatible anymore. https://github.com/libretro/paraLLeXT https://github.com/libretro/mupen64plus-libretro-nx ^Use it

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/libretro/parallel-n64/issues/538#issuecomment-479572503, or mute the thread https://github.com/notifications/unsubscribe-auth/Ark7pz-CNR-8hnQv1qCiJZwpqFJVnoVZks5vdN0NgaJpZM4W1sZ_ .

-- André Botelho andrebotelhomail@gmail.com