GithubHelp home page GithubHelp logo

tordona / famistudio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bleubleu/famistudio

0.0 0.0 0.0 250.42 MB

Unofficial Build Windows ARM64 - FamiStudio - NES Music Editor

License: MIT License

Shell 0.08% C 0.17% C# 72.58% Assembly 24.53% PowerShell 0.03% HTML 0.14% GLSL 0.10% Batchfile 0.95% NWScript 1.41%

famistudio's Introduction

Welcome to the FamiStudio GitHub page

This is the GitHub page of FamiStudio, which is intended for people wanting to view/download the source code or report bug fixes.

If you are simply interested in installing FamiStudio, please visit famistudio.org or itch.io.

For any questions, you can reach me at [email protected].

Compiled versions

All releases are available in the Releases section. If you are on Windows, simply download and run the .MSI installer and a shortcut to FamiStudio will be placed in your Start menu.

Compiling

FamiStudio is composed of a few projects:

  • The main FamiStudio application is written in C#. We currently target .NET 7.0 on all platforms.
  • NesSndEmu, NotSoFatso, ShineMp3, Vorbis & GifDec are C++ DLLs and binaries are provided since they rarely change.
  • The Setup project (Windows only)

Windows

On Windows, Visual Studio 2022 is used for development, but VS Code with the C# plugin should work too. The project contains everything, including both DLLs and the Setup project. In you plan to recompile the C++ DLLs, you will need to install C++ support in Visual Studio. The Setup project is built using the "Microsoft Visual Studio Installer Projects" extension which can be installed from Visual Studio in the "Extensions and Updates" menu.

MacOS

On MacOS, VS Code is used for development, but Visual Studio for Mac might work too. The C++ DLLs can be compiled using a little shell script "build_macos.sh" that is located in the each of the folders. No fancy makefile here. PortAudio and RtMidi, which are used for audio output and MIDI input respectively have been pre-compiled using Homebrew and are likely not going to change often. The Application bundle is updated manually at each release.

Linux.

On Linux, VS Code is used for development. Much like MacOS, a little shell script, "build_linux.sh" is provided to compile each of the C++ DLLs. No makefile is provided at the moment. OpenAL Soft is provided as a precompiled AMD64 binary with ALSA support, if you recompile your own you will need to replace libopenal32.so or edit the dllmap (FamiStudio.exe.config) to point to the correct library. Same for RtMidi which is provided as librtmidi.so.

Android

On Android, Visual Studio 2022 is used and we target API level 33 (Android 13.0), but support a minimum version API level of 26 (Android 8.0, Oreo), so make sure to test features on all versions in between. The C++ DLLs needs to be compiled manually for all 3 architectures (x64, ARM, ARM64) whenever there is a change.

Contributing

I'm hesitant to take unsolicited pull requests. If you want to contribute a feature, please get in touch with me first so we can come up with a plan. This will avoid wasting both your time and mine.

Platforms, Feature Parity & Testing

Assuming we agree on a feature to be developed, I expect:

  • All features needs to be implemented and tested on all 4 platforms (Windows, MacOS, Linux and Android).
  • Testing must include Hi-DPI scaling on Windows (150% and 200%), Retina display on MacOS, 100%/200% on Linux as these have been know to break often.
  • Any feature that impacts the music needs to be integrated to all import/export format (FamiTracker, NSF, FTI, etc.)
  • Any new feature needs to be added to the NSF driver (including its multi-expansion chip variant) and needs to be toggeable if it has a cost (RAM or CPU cycles).
  • New features need to be integrated with any of the 3 unit tests that applies (Sound engine code similarity, NSF import/export and sound emulation tests).
  • Documentation needs to be updated as well.

Contact

Please open issues contact me if you find bugs or have feature suggestion ideas. You can find me:

famistudio's People

Contributors

bleubleu avatar perkka2 avatar adm228 avatar xwjcool123 avatar jroweboy avatar greatglobox avatar beetrootpaul avatar zukinnyk avatar pbnjk avatar how2bboss avatar nicolarark02 avatar jameswilddev avatar waik0 avatar pizzergames avatar roadrunnerwmc avatar incognito357 avatar derwurstbruder avatar freirc avatar neosharper avatar jjagg avatar khhs167 avatar lunarexxy avatar 8dcc avatar opna2608 avatar mcgrew avatar gtcreyon avatar smbhacks avatar

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.