LonghronShen / MMDX

Mikumiku Dance for XNA
6 stars 0 forks source link

FNA Build #1

Open flibitijibibo opened 7 years ago

flibitijibibo commented 7 years ago

This is mostly just a tracker to remind myself to look at an FNA build of MMDX. I converted XNA binaries with XnaToFna and it actually works pretty well on Linux without changing anything about the source or content:

screenshot from 2017-02-03 10-47-18

These were the issues I ran into:

~SNIP~

~... but I really wish I knew why preshaders had random extra data at the end. I've been fighting this for a while, as you can see here:~

~SNIP~

With these two things fixed I would expect it to work on Windows with no problem. Some bonus points for multiplatform:

This thread will be updated as I dig deeper into it, but with my current release schedule it might be a while. If someone else wants to check this out, go for it!

flibitijibibo commented 7 years ago

I looked into the preshader weirdness, and based on the data it appears that ending token is just a splitter for either nothing at all or a bunch of numbers that don't actually matter for using the preshader. So, the fix:

https://github.com/flibitijibibo/MojoShader/commit/f895e060b62ebb28dbb4dda32176c20ee82abb58

fnalibs has been updated, shaders should now work out of the box.

LonghronShen commented 7 years ago

@flibitijibibo Oh thank you for your hard work! Let me look into it... By the way, I sent you an invitation for being collaborator. Let's improve it together! For now, FNA seems not to be available on mobile platforms. Shall we have any idea about these platforms? My MonoGame branch compiles well, but failed to run. It looks like there is a strange bug in MonoGame.

flibitijibibo commented 7 years ago

Mobile's not on the table until the MetalDevice and VulkanDevice are done; Apple OpenGL (including ES) is a dead end and Android drivers are so bad that Vulkan's all I'm willing to look at there. The Touch namespace also needs a rewrite, but that one's not as hard to deal with.

LonghronShen commented 7 years ago

I think FNA is more friendly to old XNA projects while MonoGame guys are thinking about doing different things to XNA. But their solution is more tolerant to old devices since they put cross-platform as the first requirement. For now I would choose FNA when targeting desktop platforms, for mobile platforms, I have no choice but MonoGame... By the way, @flibitijibibo you can create a new branch for FNA based port.

flibitijibibo commented 7 years ago

I'll have to look at this a bit later; Bleed 2 is out today and I'm hoping to get Charlie Murder and Vampire Smile out soon after.