Comments (8)
@GValiente I appreciate the interest, but I unfortunately don't have the ability to maintain 2 separate implementations and keep them at parity. Anybody else is welcome to try their hand at a port though.
from hugedriver.
It would require a reimplementation of the driver in C, which means maintaining two separate drivers and ensuring that they are consistent with one another. Personally I don't have the resources to do this, sadly.
Additionally, most people expect GBA-quality sound in GBA games, so it seems like hUGE alone isn't a very good fit.
from hugedriver.
I don't care about what most people expect.
Still, hUGETracker could be used for PSG channels while other solutions like Maxmod could be used for Direct Sound channels (what I guess most people expect from the GBA).
GBT Player already supports that use case: https://github.com/AntonioND/gbt-player/tree/master/gba/examples/combined_maxmod
People tend to use the CPU of the GBA for taxing tasks like 3D software rendering, so having a solution for playing music that doesn't steal too much CPU cycles is worthwhile IMO.
However, I agree that maintaining two separate drivers could be a lot of work, even if the GBA one could be coded in C without a big impact in CPU usage (again, what GBT Player does).
A nice example of both PSG and Direct Sound channels used at the same time (Mother 3, thanks to copetti.org for the video): https://www.copetti.org/videos/consoles/gba/crackers/8bit.2eef0679323ed59d5809ddcd17c891d2605f7f127a4a26b334ddc4fd60d407ac.mp4.
from hugedriver.
True, it's an interesting use case, but I just don't have the time or interest in porting the driver to C right now. I'll leave the issue open in case somebody else wants to try, maybe.
The only thing I can think that might allow for only one codebase is maybe statically compiling the assembly mnemonics to C since there's no self modifying code, and "simulating" the registers with variables called a, b, c, etc. Supposedly this is how some classic games have been ported (chrono trigger to PS1 I think?)
from hugedriver.
Thanks for leaving the issue open.
from hugedriver.
from hugedriver.
Sorry. Fat-fingered the iOS keyboard. Meant to tag Asie since he contacted me a while back about this-- not sure if you're interested in taking on the porting process but maybe you could weigh in a little.
from hugedriver.
Sorry, didn't catch the ping in notifications for whatever reason.
In general, the porting process is simple: you need to rewrite the driver code in either ARM assembly or C, and you'll find that most of the hardware registers map nearly 1:1, so it's a matter of reproducing the logic.
Not sure when/if I'll have time to get around to this, however :(
from hugedriver.
Related Issues (19)
- Adding waveform switching to channel 3 HOT 1
- How to use with GBDK 2020 on linux? HOT 5
- Support for RGB9, revision 8 HOT 4
- Multiple feature requests HOT 1
- Implement compression for patterns HOT 1
- Compatibility with FXHammer HOT 2
- Support a music bank HOT 7
- Remove "generalized" stuff HOT 1
- Set whether to loop; and get whether it's finished
- GBDK example sample song is outdated HOT 1
- Error with add_VBL in gbdk_player_example.c HOT 1
- rgb2sdas Conflicting sdcc options HOT 1
- SGB Support? HOT 1
- Swing mode HOT 1
- Starting a song in an arbitrary position. HOT 4
- Issue with Note Delay HOT 2
- music credit HOT 1
- Support for RGB9, revision 7 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hugedriver.