Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP single file sound engine #284

Draft
wants to merge 1 commit into
base: 4.2.0
Choose a base branch
from

Conversation

jroweboy
Copy link
Contributor

@jroweboy jroweboy commented Feb 11, 2024

As a small trial for making a single file sound engine that can be included between all assemblers, I have a proof of concept that works for ca65 and asm6f right now using macros and text substitution to build the same between them. NESASM is proving very challenging tho, so my next step is to try and build with SDAS instead and potentially drop NESASM support if it works better. SDAS is the assembler used in GBDK-2020, which recently added support for the NES, allowing developers an easier way towards porting their Gameboy games to NES. There's some interest there to have FamiStudio be the default sound engine.

After that, I might investigate adding DASM support as well, since its a default option for 8bitworkshop, another popular NESdev coding environment, which hopefully should make up for the loss of NESASM

@BleuBleu
Copy link
Owner

So looking at the timeline, I think last week of March would be a good time to do the switch. The list of bug is likely to be low and it will be right before beta.

Here is a rough list of things to do to consider this a completed task:

  • Add new famistudio.s that's able to generate the 3 different version.
  • Do multi version too, as we want these 2 to be textually as identical as possible, tho this one will only output CA65.
  • Add new assembler to \Tools.
  • Add new assembler to unit test, make sure not a single byte has changed.
  • Create a new sound engine demo ROM for the new assembler (must be binary identical to others)
  • Add new assembler export format to the app
  • Add new syntax for new assembler to FamitoneMusicFile.cs
  • Remove NESASM syntax from FamitoneMusicFile.cs
  • Update documentation to add configuration detail about new assembler.
  • Remove all traces of NESASM (app, tools, demo ROM, scripts, documentation, etc.). We can leave a note in the doc saying that its no longer supported as of 4.2.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants