bbbradsmith / nsfplay

Nintendo NES sound file NSF music player
https://bbbradsmith.github.io/nsfplay/
279 stars 43 forks source link

Questions re: cross-platform compatability #17

Open jprjr opened 4 years ago

jprjr commented 4 years ago

Hi there, I was looking through the NSFPlay 3.0 Roadmap (#7) and would love to try to help with the Mac/Linux port line items.

Right now I have just one question that could help guide the process - what version of MSVC do you currently target/support? And for 3.0, do you plan on changing the minimum supported MSVC version? I'll try and keep changes compatible.

bbbradsmith commented 4 years ago

NSFPlay 3 is a planned total rewrite.

The reason NSFPlay 2 isn't cross platform already is just that it's heavily entangled with MFC and the core playback library isn't adequately separable from everything else. The rewrite will address both of these things. I'll use a cross platform library for the GUI, and it won't be difficult to support other platforms at the point, and the core part of the library will be available for other

So, I appreciate the offer, but I can't really solicit any specific help. I have the tools to develop and test Mac and Linux software, that's not the problem. I just wouldn't really want to try to port NSFPlay 2 to either of those, though. I more or less consider the GUI / front-end on life support until I finish up the last of my tasks for NSFPlay 2 and move on to the rewrite.

So it's not that NSFPlay 2 couldn't be ported, it's just that it'd be a lot of work that will basically be discarded for version 3.

As for the other question: it's currently VS2017. I'll probably use whichever version of MSVC is current or most viable when I begin NSFPlay 3, but I'll also have XCode and GCC as targets at that point.

jprjr commented 4 years ago

Follow-up question: would there be value in working on detangling the player core, or is that likely to need a complete rewrite as well?

At first glance (and emphasis on just a glance), it seems like the configuration part of the core is the main part that has some Windows-specific code in there (for loading from and saving to ini files, splitting/making paths, mutexes). I'd be happy to help to work on that, too.

bbbradsmith commented 4 years ago

It will be a complete rewrite.