Giter Club home page Giter Club logo

Comments (8)

SuperDisk avatar SuperDisk commented on September 18, 2024 2

@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.

SuperDisk avatar SuperDisk commented on September 18, 2024

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.

GValiente avatar GValiente commented on September 18, 2024

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.

SuperDisk avatar SuperDisk commented on September 18, 2024

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.

GValiente avatar GValiente commented on September 18, 2024

Thanks for leaving the issue open.

from hugedriver.

SuperDisk avatar SuperDisk commented on September 18, 2024

@asiekierka

from hugedriver.

SuperDisk avatar SuperDisk commented on September 18, 2024

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.

asiekierka avatar asiekierka commented on September 18, 2024

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)

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.