#80766 - ProblemBaby - Tue Apr 25, 2006 9:54 am
Hello
I really need to make some things sure before I start to develop my software mixer.
Iam planning to put the whole mixer in the ARM9 of several reasons, be able to play samples from ROM, easy and accurate communication between the app and its always nice to make it working even if Ive to use the official arm7 bin =).
Ive tried some to sync to vblank but I can't get clean output, so Ive to use a timer interrupt. What I want to ask is:
1. How should I set up the timer, when should I start play the buffer in Arm7, how should I make it synchronized.
2. Ive never made a timer synced mixer but I guess that the actual interrupt should look exactly as the vblank audio code would do, right?
thanks
#80770 - tepples - Tue Apr 25, 2006 12:54 pm
ProblemBaby wrote: |
Iam planning to put the whole mixer in the ARM9 of several reasons, be able to play samples from ROM |
Designing with ROM in mind will hurt you when you try to port your program to GBAMP or (should you get a publisher lined up) to Nintendo's tools. Neither the GBAMP nor Nitro makes data available in GBA ROM.
Quote: |
easy and accurate communication between the app and its always nice to make it working even if Ive to use the official arm7 bin =). |
If you use the official ARM7 binary, you'll probably get a decent interface, given that official games sound as good as they do.
Quote: |
2. Ive never made a timer synced mixer but I guess that the actual interrupt should look exactly as the vblank audio code would do, right? |
Pretty much. If you want a more forgiving environment, develop a timer synchronized mixer on GBA first.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#80779 - ProblemBaby - Tue Apr 25, 2006 4:01 pm
Quote: |
Designing with ROM in mind will hurt you when you try to port your program to GBAMP or (should you get a publisher lined up) to Nintendo's tools. Neither the GBAMP nor Nitro makes data available in GBA ROM.
|
why? It would be make life much easier to play from ROM, dont have to think about Loading samples (Copy) and memory usage.
Quote: |
If you use the official ARM7 binary, you'll probably get a decent interface, given that official games sound as good as they do.
|
My plan was to make the arm7 sound code as easy as possible infact just start two channels. Do you think games like osu tatakae ouendan have made their own sound code or is it a part in the arm7 binary to play streamed compressed sound.
Quote: |
Pretty much. If you want a more forgiving environment, develop a timer synchronized mixer on GBA first.
|
Thats all I wanted to know, the only problem is when to start the arm7 channels to get perfect timing, any ideas?
#80780 - ProblemBaby - Tue Apr 25, 2006 4:03 pm
by the way, do we now anything about the offical arm7 binary how its structured up, even if I dont think I'll get published I always want to try to make it as easy portable as possible.
#80787 - tepples - Tue Apr 25, 2006 4:43 pm
ProblemBaby wrote: |
Quote: |
Designing with ROM in mind will hurt you when you try to port your program to GBAMP or (should you get a publisher lined up) to Nintendo's tools. Neither the GBAMP nor Nitro makes data available in GBA ROM.
|
why? It would be make life much easier to play from ROM, dont have to think about Loading samples (Copy) and memory usage. |
You will have to worry about loading samples and memory usage if you want to make your program compatible with the GBA Movie Player v2 or with Nintendo's Nitro development hardware. Or are you going to buy a SuperCard, M3, or traditional GBA flash cart for everybody who wants to try your program?
Quote: |
Quote: | If you use the official ARM7 binary, you'll probably get a decent interface, given that official games sound as good as they do.
|
My plan was to make the arm7 sound code as easy as possible infact just start two channels. Do you think games like osu tatakae ouendan have made their own sound code or is it a part in the arm7 binary to play streamed compressed sound. |
As far as I can tell, official games decompress the sound on the ARM9 and send commands to the ARM7 to play it, unless the compression is the built-in IMA ADPCM compression supported by the DS audio hardware.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#80792 - ProblemBaby - Tue Apr 25, 2006 5:34 pm
tepples wrote: |
You will have to worry about loading samples and memory usage if you want to make your program compatible with the GBA Movie Player v2 or with Nintendo's Nitro development hardware. Or are you going to buy a SuperCard, M3, or traditional GBA flash cart for everybody who wants to try your program?
|
Do this stuff don't have ROM memory, is it a difference between GBA ROM and ROM, I don't know that much about this stuff, the only thing I know is that it works for me.
#80816 - wintermute - Tue Apr 25, 2006 7:23 pm
ProblemBaby wrote: |
Do this stuff don't have ROM memory, is it a difference between GBA ROM and ROM, I don't know that much about this stuff, the only thing I know is that it works for me. |
gbamp and commercial games have no GBA cart memory. MK2/3 need a boot menu on a GBA cart. As far as I'm aware there's no easy way to use the onboard memory of the M3 as ROM with ds applications.
Designing with ROM in mind will limit your application to traditional flashcarts.
_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog
#80914 - tepples - Wed Apr 26, 2006 2:57 am
"GBA ROM" means reasonably fast 16-bit word-addressed memory on a device in SLOT-2 that appears in 0x08000000-0x09FFFFFF of the Nintendo DS address space. Traditional GBA flash carts have up to 32 MB of GBA ROM visible at once. SuperCard and M3 have 32 MB of RAM that acts like a GBA ROM. But the GBAMP v2 has only 512 KB of GBA ROM, used to hold the GBAMP firmware.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#80948 - HyperHacker - Wed Apr 26, 2006 7:21 am
If you get a game published by Nintendo, it's going to be on a DS card, and there may well not be anything in the GBA slot at all (or far more likely, a GBA game). Unless you plan to sell it with an Option Pak just because you don't want to load things into memory, and I doubt Nintendo would be fond of the idea.
I would also like to know any information that's available about how to use the official ARM7 binary though.
#80976 - ProblemBaby - Wed Apr 26, 2006 1:29 pm
Is it something that differs GBA ROM and DS ROM (from a DS cart)?
#80977 - tepples - Wed Apr 26, 2006 1:35 pm
ROM on a DS Game Card is accessed through a set of registers called "DS card I/O" because the DS Game Card is a block device just like the CF card.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#81040 - ProblemBaby - Wed Apr 26, 2006 9:28 pm
Oh, then its no idea to put it in ROM anyway.
Just one more thing though, how should things be structured up to be as easy portable as possible. is it a bad idea to put images one by one in ROM, is it best to put chunks of data, that first is copied to RAM and then split, or something like that?
#81044 - Sausage Boy - Wed Apr 26, 2006 9:51 pm
Doesn't really matter. Do whatever you feel comfortable with, and what seems best for the task. It might be a good idea to store all the frames in an animation in one file, for example.
_________________
"no offense, but this is the gayest game ever"