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

Add GBA support #1803

Merged
merged 23 commits into from
Mar 18, 2024
Merged

Add GBA support #1803

merged 23 commits into from
Mar 18, 2024

Conversation

akumanatt
Copy link
Collaborator

@akumanatt akumanatt commented Mar 16, 2024

This adds 2 systems, one directly uses the DMA to read and play source samples, another one uses a software mixing driver called MinMod. The GB core is also modified to support GBA's wave channel extension.

Like QuadTone, I already have a proof-of-concept mixer code implemented (I got CPU cycles estimate this way):

zqotPknSTV_.mp4

MinMod echo notes: This works differently from SNES and QSound where you need a free channel to play it since under the hood it's just reusing the mix buffer as a source sample. Simply play a very high note with 11xy effect (the pitch will be clamped to sample rate).

TODO:

  • System IDs (yes, please)
  • Instrument icons (done in Furnace-B already but I don't have tools to edit it)
  • Double-length wave flag save/load in GB instrument

@tildearrow
Copy link
Owner

Chip IDs allocated.
Use 0xd7 for direct and 0xd8 for MinMod.

@tildearrow
Copy link
Owner

Instrument icons

Now done. ICON_FUR_INS_GBA_DMA and ICON_FUR_INS_GBA_MINMOD

src/engine/platform/gb.cpp Outdated Show resolved Hide resolved
Copy link
Owner

@tildearrow tildearrow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Further work may be continued in Git master - feel free to do it

@tildearrow tildearrow merged commit a8c4cd9 into tildearrow:master Mar 18, 2024
5 checks passed
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.

None yet

2 participants