Search the web
Sign In
New User? Sign Up
gbadev
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want your group to be featured on the Yahoo! Groups website? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Messages 14428 - 14457 of 15019   Newest  |  < Newer  |  Older >  |  Oldest
Messages: Show Message Summaries   (Group by Topic) Sort by Date v  
#14457 From: "Collin van Ginkel" <collin@...>
Date: Fri Aug 1, 2003 11:47 am
Subject: Re: Reflections
fleppes2001
Offline Offline
Send Email Send Email
 
Hi,

There are lot's of tricks to do that kind of effect.. depends a bit on what
you want it to look. The basic effect is probably placing a y-flipped sprite
below the layer your object is above.

Add some transparancy effects to it and it looks quite good ;)

Bye,

Collin

----- Original Message -----
From: "Unknown Gamer" <carlos_obregon_j@...>
To: <gbadev@yahoogroups.com>
Sent: Monday, July 28, 2003 4:07 PM
Subject: [gbadev] Reflections


Anyone know's how to do the reflection trick used in games like
Castlevania Arria of Sorrow and Pokémon?






Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

#14456 From: <tharo@...>
Date: Thu Jul 31, 2003 3:26 pm
Subject: Re: Text engine???
belial_nox
Offline Offline
Send Email Send Email
 
I allready had done an text and font engine a year ago.
its now aviable at www.devgba.de on "dumme Tutorials Teil 1"

Just download the source on the end of the tutorial. im sure u will
understand it.

Tharo



Kellen Kane <vortex_v2@...> schrieb am 31.07.2003, 05:51:42:
>
>
>
>
> Hi,
>
> Just wondering if there are and tutorials or pointers on developing a
> font/text engine for an RPG game.&nbsp; I don't really know where to begin and
I
> was just wondering if anyone could help.&nbsp; I have not seen a tutorial on
the
> internet so I thought I would check here.
> Thank you for all of you help!
>
> -Kellen
>
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online&nbsp;
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>
>
>
>
>
>
>
>
>
>
> Yahoo! Groups Sponsor
>
>
>   ADVERTISEMENT
>
>
>
>
>
>
>
>
>
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

#14455 From: "Kellen Kane" <vortex_v2@...>
Date: Thu Jul 31, 2003 3:51 am
Subject: Text engine???
kaitokun_33
Offline Offline
Send Email Send Email
 
Hi,

Just wondering if there are and tutorials or pointers on developing a
font/text engine for an RPG game.  I don't really know where to begin and I
was just wondering if anyone could help.  I have not seen a tutorial on the
internet so I thought I would check here.
Thank you for all of you help!

-Kellen

_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963

#14454 From: "Greg Saugis" <saugis@...>
Date: Wed Jul 30, 2003 9:23 am
Subject: MASO System has just been released !
joelouiz
Offline Offline
Send Email Send Email
 
Hello,

I must apologize for being a liar. Yes, a few days ago, I said on this list I
had no time to work on my music and sound system called MASO System.

The fact is that MASO System is ready :)
Download it from http://maso.r0x.free.fr

You'll find the GCC version only, as I haven't worked on the ARM version for
ages.

What you get :
- the library
- the converter, which takes all your XM modules and sfx and produce one single
file you just have to add to your project (header files are also generated for
your convenience). Samples present in different modules are stored only once.
- a minimal but detailed demo application. Please note the module is provided as
an object file only, as I don't have the rights on the original XM (thanks to
the excellent Yannis Brown for letting me use it in my demos !).
You may have to tweak the makefile, depending on your compiler.

Thank you for carefully reading the "cancerware" license.

PLEASE send all your comments to maso.r0x@...

PLEASE report bugs to maso.r0x@...
Be careful, not all features of the XM format are implemented yet ! Check
"fl0w.nfo" which lists the current features present in MASO System. Also be
aware that old .mod can be converted to the XM format but are likely to play
wrong !

Thank you for your attention.

PS : the damn interrupts in the demo app don't work, if anyone can fix it,
thanks for letting me know. The demo app works without interrupts anyway !

--
     fl0w

#14453 From: "Unknown Gamer" <carlos_obregon_j@...>
Date: Mon Jul 28, 2003 2:07 pm
Subject: Reflections
un_known_gamer
Offline Offline
Send Email Send Email
 
Anyone know's how to do the reflection trick used in games like
Castlevania Arria of Sorrow and Pokémon?

#14452 From: <tharo@...>
Date: Sat Jul 26, 2003 9:52 pm
Subject: Hmm.. BLDCNT wont work on VBA?
belial_nox
Offline Offline
Send Email Send Email
 
Finaly i want to try out the BLDCNT Register

I could see an effekt on the newest VBA.
First i set the BLDCNT ergo REG_BLDMOD register as followed:

REG_BLDMOD = TARGET_TOP_BG0 | TARGET_LOW_BG3 | BLEND_NEG;
REG_COLEV = BLEND_LEVEL(8);

Then i set up bg0 and 3 (mode0) with the same map and start scrolling
bg0 to see the effekt. but there was nothing.

my question: why?

thx alot
dummy newbie

#14451 From: James Daniels <james.daniels@...>
Date: Thu Jul 24, 2003 9:07 pm
Subject: Re: Re: Payback Sound Engine
j_r_daniels
Offline Offline
Send Email Send Email
 
Hi Dennis,

>>Payback's mixer is unusually fast (3.2% CPU to play a 4 channel
>>MOD at 24 KHz)
>
> Is that just music alone, no support for sfx, aside from synth
> channels?

That figure is just for playing and mixing the MOD, but the mixer
supports up to 8 channels at about 1% CPU per channel at 24 KHz.

> My mixer currently takes about 11% CPU for a 4-chn MOD with
> 2 panned, non-pitched sfx channels, running at 18KHz. Only 380 bytes
> of IWRAM though.

Wow! That's seriously small!
--
Cheers,
James.

     /\  apex                                 James Daniels
    //\\  designs            james.daniels@...
   //__\\                       http://www.apex-designs.net

#14450 From: "Dennis Kincheloe" <DekuTree64@...>
Date: Thu Jul 24, 2003 6:05 pm
Subject: Re: Payback Sound Engine
dekutree65
Offline Offline
Send Email Send Email
 
--- In gbadev@yahoogroups.com, "Damian Yerrick" <d_yerrick@h...>
wrote:
> --- In gbadev@yahoogroups.com, "Greg Saugis" <saugis@l...> wrote:
> > No, compute stereo values and use Multiple Store !
>
> Is there a feasible way to use the 'stmia' instruction from within
C?
> Or does it require rewriting a mixer from the ground up in assembly
> language?
>
> --
> Damian

You can get away with only doing the inner loop in ASM. Just write it
as an ASM function, and either make global vars of all the things it
will need and use those globals in your C mixer, so you can load them
into the regs yourself, or just pass them as arguments.
Then you only have a little bit of ASM to write, and since that's
where the majority of the work is done, you get most of the speed
increase you would doing the whole thing in ASM anyway.

~Dennis

#14449 From: "Dennis Kincheloe" <DekuTree64@...>
Date: Thu Jul 24, 2003 5:50 pm
Subject: Re: Payback Sound Engine
dekutree65
Offline Offline
Send Email Send Email
 
--- In gbadev@yahoogroups.com, James Daniels <james.daniels@a...>
wrote:
> Payback's mixer is unusually fast (3.2% CPU to play a 4 channel
> MOD at 24 KHz)

Is that just music alone, no support for sfx, aside from synth
channels? My mixer currently takes about 11% CPU for a 4-chn MOD with
2 panned, non-pitched sfx channels, running at 18KHz. Only 380 bytes
of IWRAM though. All the mixing is done in one pass, so putting the
buffer in IWRAM doesn't do much, and unrolling the inner loop more
than the 4 times it already is doesn't do a whole lot either. Might
be able to get it down to 9-10% with a few KB of IWRAM. A lot of the
time is spent in the setup code though. It takes every register you
can get your hands on (including the stack pointer) to mix 4 channels
at a time, so the rest of it is pretty much based on getting all
those regs freed up.
But even with the sound channels cut out, 3.2% would be hard to
match. Well, maybe something with stmia using the extra regs
available could help, but getting the samples sorted into the regs
plus the time for the actual stmia would probably take as long as the
strb's themselves.

BTW, my mixer is open-source, so feel free to take a look at it at
http://www.angelfire.com/wizard/deku/program/sndmix.zip (207K, demo
included). Beware the incomplete MOD player with it though.

~Dennis

#14448 From: "spyhabs" <spyhabs@...>
Date: Sun Jul 20, 2003 11:14 pm
Subject: Re: DevkitAdvance Interrupt
spyhabs
Offline Offline
Send Email Send Email
 
I fixed the interrupt problem by using the last crt version (1.28_.
Enbale SingleInterrupt and SupportInterrupt).  Somebody can explain
me the difference between crt0 v1.26 and v1.28.

Regards

Christian

#14447 From: "spyhabs" <spyhabs@...>
Date: Sun Jul 20, 2003 6:10 pm
Subject: Re: DevkitAdvance Interrupt
spyhabs
Offline Offline
Send Email Send Email
 
Hello,

Now I can compile with devkitadvance (gcc lib 3.0.2) with crt0.s v
1.26.

I enable single interrupts (i tried with multiple interrupts too).  I
tried to change the memory stack in linkscript.  I used an interrupt
table to link each interrupt service routine.  When an interrupt is
generated, I think that the ISR is called, but once it's completed,
it`s never come back in the source code.

Here is the initialisation of the IntrTable

void interrupt_init(void) {
   int i;

   // Set all interrupts to dummy functions.
   for(i = 0; i < 14; i++) IntrTable[i] = (void (*)(void))
interrupt_dummy;

   // Set selected interrupts to do something fun/useful.
   IntrTable[3] = (void (*)(void))Timer0_Overflow;
   IntrTable[12] = (void (*)(void))interrupt_key;

}


I don't write again the REG_IF |= 0x1000; at the end of the ISR
because i suppose that the crt0.s performs this task.

AgbMain
...
	 interrupt_init();
	 REG_P1CNT = 0x42;

         REG_IE |= 0x1000;
	 REG_IME = 1;
...

So how can I fix it?  I'll wait for answers from you guys

Christian

#14446 From: "spyhabs" <spyhabs@...>
Date: Sat Jul 19, 2003 11:04 pm
Subject: DevkitAdvance Interrupt
spyhabs
Offline Offline
Send Email Send Email
 
I would like to get an example in order to use crt0.s and enable
Timer0 interrupt.  I use DevKitAdvance and I have never properly
enabled the TIMER0 interrupt.  I read that the devkitadvance doesn't
support Interrupt.  So, i have to add an other crt0.s to enable it.

I would like to get an example to make a project with devkitadvance
and the new crt0.s  I tried to compile the project and a lot of
problems is occured :

rt0.o(.text+0x1ac): undefined reference to `__sp_irq'
crt0.o(.text+0x1b0): undefined reference to `__sp_usr'
crt0.o(.text+0x1b4): undefined reference to `__text_start'
crt0.o(.text+0x1b8): undefined reference to `__sp_usr_offset'
crt0.o(.text+0x1c0): undefined reference to `__bss_end'
crt0.o(.text+0x1c4): undefined reference to `__data_lma'
crt0.o(.text+0x1c8): undefined reference to `__data_start'
crt0.o(.text+0x1cc): undefined reference to `__data_end'
crt0.o(.text+0x1d0): undefined reference to `__iwram_lma'
crt0.o(.text+0x1d4): undefined reference to `__iwram_start'
crt0.o(.text+0x1d8): undefined reference to `__iwram_end'
crt0.o(.text+0x1dc): undefined reference to `__load_stop_iwram0'
crt0.o(.text+0x1e0): undefined reference to `__load_start_iwram0'
crt0.o(.text+0x1e4): undefined reference to `__iwram_overlay_start'
crt0.o(.text+0x1e8): undefined reference to `__ewram_lma'
crt0.o(.text+0x1ec): undefined reference to `__ewram_start'
crt0.o(.text+0x1f0): undefined reference to `__ewram_end'
crt0.o(.text+0x1f4): undefined reference to `__load_stop_ewram0'
crt0.o(.text+0x1f8): undefined reference to `__load_start_ewram0'
crt0.o(.text+0x1fc): undefined reference to `__ewram_overlay_start'
NMAKE : fatal error U1077: 'ld' : return code '0x1'
Stop.
Error executing nmake.


Regards

#14445 From: James Daniels <james.daniels@...>
Date: Fri Jul 18, 2003 5:41 pm
Subject: Re: Payback Sound Engine
j_r_daniels
Offline Offline
Send Email Send Email
 
Hi Sebastian,

>>I'm not sure that's a good idea. Surely mixers should be categorised
>>according to what features they support rather than how they work
>>internally?
>
> I don't agree, the feature-distinction here is clearly whether the mixer
> supports mixing say 16 channels or 6, speed-comparisons between those
> two don't make much sense because they are very likely to work quite
> differently.

Ok, distinguishing between mixers based on the number of channels is
fine - I was objecting to the "must do it in the same was as Krawall"
requirement. :)

>>For example, you could get around having to write to a
>>temporary buffer for a large number of channels by accumulating the
>>value in a register and re-reading the parameters for all the channels
>>each time your iterate through the main loop. Of course, this would be
>>fabulously slow but it does show that's it's possible to do it without a
>>temporary buffer.
>
> Yeah, like somebody would do that :)

Engine Software's mixer, for example.
--
Cheers,
James.

     /\  apex                                 James Daniels
    //\\  designs            james.daniels@...
   //__\\                       http://www.apex-designs.net

#14444 From: Sebastian Kienzl <zap@...>
Date: Fri Jul 18, 2003 8:53 am
Subject: Re: Payback Sound Engine
zap@...
Send Email Send Email
 
James Daniels wrote:

>>Ok, then max 8 channels, the distinction between 3 and 4 isn't actually
>>the number of channels (well it kinda is, but it can be 5, 6 or 8) but
>>whether you are mixing to a temporary (most likely 16bit) buffer or not
>>(I don't think you get around that for 16 or 32 channels).
> I'm not sure that's a good idea. Surely mixers should be categorised
> according to what features they support rather than how they work
> internally?

I don't agree, the feature-distinction here is clearly whether the mixer
supports mixing say 16 channels or 6, speed-comparisons between those
two don't make much sense because they are very likely to work quite
differently.

> For example, you could get around having to write to a
> temporary buffer for a large number of channels by accumulating the
> value in a register and re-reading the parameters for all the channels
> each time your iterate through the main loop. Of course, this would be
> fabulously slow but it does show that's it's possible to do it without a
> temporary buffer.

Yeah, like somebody would do that :)

-Sebastian

#14443 From: "Jan-Lieuwe Koopmans" <jan-lieuwe@...>
Date: Thu Jul 17, 2003 8:57 pm
Subject: Re: Re: Payback Sound Engine
jan-lieuwe@...
Send Email Send Email
 
> > No, compute stereo values and use Multiple Store !
>
> Is there a feasible way to use the 'stmia' instruction from within C?
> Or does it require rewriting a mixer from the ground up in assembly
> language?

I'd go for pure ARM assembly. It's a real tight loop.

Jan-Lieuwe

#14442 From: "Jan-Lieuwe Koopmans" <jan-lieuwe@...>
Date: Thu Jul 17, 2003 8:45 pm
Subject: Re: Payback Sound Engine
jan-lieuwe@...
Send Email Send Email
 
> I'm not sure that's a good idea. Surely mixers should be categorised
> according to what features they support rather than how they work
> internally? For example, you could get around having to write to a
> temporary buffer for a large number of channels by accumulating the
> value in a register and re-reading the parameters for all the channels
> each time your iterate through the main loop. Of course, this would be
> fabulously slow but it does show that's it's possible to do it without a
> temporary buffer.

This is exactly what our player does (so-called driver #4 in this thread).
But in a very fast way (although I know ways to get it even faster, but too
busy with other things right now... will come with improvements soon.). The
good thing about our player is that it has a very low RAM usage; it gives
you 16chn full-stereo sound at very high frequencies while using a low
amount of RAM. At the same time it can scale itself down to an ultra fast 2
chn mono MOD player if you really need that speed. Any configuration is
possible (at compile- and/or run-time), you can change the
music-behaviour/mixer-behaviour in realtime and it has got really nice sound
effect features too :)

People seem to forget that you can win a lot of speed back by utilizing [the
extra] IWRAM...


Greetings,
Jan-Lieuwe

#14441 From: "Damian Yerrick" <d_yerrick@...>
Date: Thu Jul 17, 2003 7:41 pm
Subject: Re: Payback Sound Engine
yerricde
Offline Offline
Send Email Send Email
 
--- In gbadev@yahoogroups.com, "Greg Saugis" <saugis@l...> wrote:
> No, compute stereo values and use Multiple Store !

Is there a feasible way to use the 'stmia' instruction from within C?
Or does it require rewriting a mixer from the ground up in assembly
language?

--
Damian

#14440 From: James Daniels <james.daniels@...>
Date: Thu Jul 17, 2003 2:59 pm
Subject: Re: Payback Sound Engine
j_r_daniels
Offline Offline
Send Email Send Email
 
Hi Sebastian,

> Ok, then max 8 channels, the distinction between 3 and 4 isn't actually
> the number of channels (well it kinda is, but it can be 5, 6 or 8) but
> whether you are mixing to a temporary (most likely 16bit) buffer or not
> (I don't think you get around that for 16 or 32 channels).

I'm not sure that's a good idea. Surely mixers should be categorised
according to what features they support rather than how they work
internally? For example, you could get around having to write to a
temporary buffer for a large number of channels by accumulating the
value in a register and re-reading the parameters for all the channels
each time your iterate through the main loop. Of course, this would be
fabulously slow but it does show that's it's possible to do it without a
temporary buffer.

> This is a quite respectable figure, would you mind putting out a demo?

Sure, no problem. It's probably a few weeks away though.
--
Cheers,
James.

     /\  apex                                 James Daniels
    //\\  designs            james.daniels@...
   //__\\                       http://www.apex-designs.net

#14439 From: "Jim Bagley" <jimbagley@...>
Date: Thu Jul 17, 2003 12:41 pm
Subject: Re: Re: Re: Payback Sound Engine
jimbagley@...
Send Email Send Email
 
yeah, that's fixed stereo, no panning etc.
it's not much of an overhead, for your method, one OR instruction lol but the
DMA still has to read the double sized buffer, so na na na nah back at ya :-P
all i was saying is it's NOT free :)
   ----- Original Message -----
   From: Greg Saugis
   To: gbadev@yahoogroups.com
   Sent: Thursday, July 17, 2003 2:29 PM
   Subject: Re: Re: [gbadev] Re: Payback Sound Engine


   >so your saying to fill a buffer twice as big has NO overhead? hmmmmm
congrats, I thought it would at least take SOME cycles to write the extra data
:D

   it doesn't, as IWRAM is 32-bit. Nananah :-p
   Well, of course you could compute 2 16-bit values, put them in a 32-bit
register and store both at once...
   No, compute stereo values and use Multiple Store !

#14438 From: Martin Piper <martinp@...>
Date: Thu Jul 17, 2003 12:40 pm
Subject: RE: Re: Re: Payback Sound Engine
fnagaton
Offline Offline
Send Email Send Email
 
The STMIA is your friend.

-----Original Message-----
From: Greg Saugis [mailto:saugis@...]
Sent: 17 July 2003 14:30
To: gbadev@yahoogroups.com
Subject: Re: Re: [gbadev] Re: Payback Sound Engine


>so your saying to fill a buffer twice as big has NO overhead? hmmmmm
congrats, I thought it would at least take SOME cycles to write the extra
data :D

it doesn't, as IWRAM is 32-bit. Nananah :-p
Well, of course you could compute 2 16-bit values, put them in a 32-bit
register and store both at once...
No, compute stereo values and use Multiple Store !








Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

#14437 From: "Greg Saugis" <saugis@...>
Date: Thu Jul 17, 2003 1:29 pm
Subject: Re: Re: Re: Payback Sound Engine
joelouiz
Offline Offline
Send Email Send Email
 
>so your saying to fill a buffer twice as big has NO overhead? hmmmmm congrats,
I thought it would at least take SOME cycles to write the extra data :D

it doesn't, as IWRAM is 32-bit. Nananah :-p
Well, of course you could compute 2 16-bit values, put them in a 32-bit register
and store both at once...
No, compute stereo values and use Multiple Store !

#14436 From: "Greg Saugis" <saugis@...>
Date: Thu Jul 17, 2003 1:25 pm
Subject: Re: Re: Re: Payback Sound Engine
joelouiz
Offline Offline
Send Email Send Email
 
>Hi Colin,
>
>> I'm wondering if you ever added 'stereo' functionality to your mixer -
>>  left and right volume per channel?
>
>No. Right now you can do mono or "hard" stereo (i.e. sounds come from
>the left or right speaker). If I do add full stereo panning (which
>really depends on how much demand there is) then I'd likely have that as
>a seperate mixer as I'd guess there'd be a ~40 performance hit.

I have pleasantly worked with Yannis Brown, a musician who really masters stereo
effects and, having heard his tracks in mono and stereo, the stereo versions are
definitely better. Mono sounds smothered.

The question is: how many players do use headphones ? Shame on nintendo who
sells the headphone socket separately from the gba sp :-(

--
     fl0w

#14435 From: Sebastian Kienzl <zap@...>
Date: Thu Jul 17, 2003 12:16 pm
Subject: Re: Re: Payback Sound Engine
zap@...
Send Email Send Email
 
Hi!

>>Type 2: NO MIXING, SYNTH + DIRECTSOUND
>>
>>Like type 1 but uses the Directsound-channels without mixing!
>>There are two DS-channels that can be left, right or centered
>>and a little volume-control is possible (NO pitch control).
> Doom and Pinobee, as well as quite a few games' multiplayer modes
> with one Game Pak, seem to use this method.  But: "No pitch control"?
> Isn't it possible to get pitch control in this type of mixer just by
> setting the timer speed?

You're right, you'll have to use a timer for each channel then.

>>Examples: Krawall ;) (http://mind.riot.org/krawall),
>>Engine's Replayer, MusyX (I think)
> And Tri.  Currently, without any sort of aggressive unrolling or
> assembly language, Tri's mixer takes about 2.5% + 2.5%/active
> voice at 21 kHz with volume and pitch control and looping.
> What's the typical speed for this sort of engine?

Krawall is 2.4% + x*1.13% for a mono voice, + x*1.49% for a voice with
arbitrary panning, all at 16384Hz.

Yours,
Sebastian

#14434 From: "Jim Bagley" <jimbagley@...>
Date: Thu Jul 17, 2003 11:41 am
Subject: Re: Re: Payback Sound Engine
jimbagley@...
Send Email Send Email
 
so your saying to fill a buffer twice as big has NO overhead? hmmmmm congrats, I
thought it would at least take SOME cycles to write the extra data :D
   ----- Original Message -----
   From: Greg Saugis
   To: gbadev@yahoogroups.com
   Sent: Thursday, July 17, 2003 10:39 AM
   Subject: Re: [gbadev] Re: Payback Sound Engine


   Computing stereo volume doesn't take more cycles than computing a mono
volume...
   You buffer is just twice as big so needs twice more treatments (eg for
clipping)

   So people, GO STEREO !


   >Hi jd,
   >
   >I remember discussing your mixer specs a while ago on gbadev.org. Its
   >good to hear that things are coming to fruition.
   >
   >I'm wondering if you ever added 'stereo' functionality to your mixer -
   > left and right volume per channel?
   >If so, what specs did you achieve?
   >
   >cheers
   >
   >Col
   >
   >
   >--- In gbadev@yahoogroups.com, James Daniels <james.daniels@a...>
   >wrote:
   >> Sebastian Kienzl wrote:
   >>
   >> > Type 3: MIXING, max ~6 digital channels
   >> >
   >> > Examples: Console Audio Driver 2, 3; probably Payback's Player,
   >Aleksi
   >> > Eeben's (code available afaik)
   >> >
   >> > Type 4: MIXING, > 6 channels
   >>  >
   >> > Examples: Krawall ;) (http://mind.riot.org/krawall), Engine's
   >Replayer,
   >> > MusyX (I think)
   >>
   >> Payback's mixer is type 4.
   >>
   >> > I'm sorry if I left other players out, I don't have the time to
   >list
   >> > every one available right now.
   >> > I haven't talked about player-logic (which is quite a different
   >topic),
   >> > that's the code that tell what channel to play which sample (or
   >> > synth-setting) at which pitch, volume and time. This code can use
   >quite
   >> > some CPU and it can be *lots* of code (XM-logic is definitely
   >more than
   >> > a simple MIDI-synth-logic).
   >>
   >> Admittedly Payback's code currently only supports Protracker MODs,
   >but
   >> the 3.2 figure mentioned before does include the player logic. It
   >takes
   >> around 0.2 of total CPU time to handle all the MOD overhead (0.3
   >in
   >> the case of very complex MODs).
   >> --
   >> Cheers,
   >> James.
   >>
   >>     /\  apex                                 James Daniels
   >>    //\\  designs            james.daniels@a...
   >>   //__\\                       http://www.apex-designs.net
   >
   >
   >
   >
   >
   >
   >Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/




         Yahoo! Groups Sponsor
               ADVERTISEMENT




   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

#14433 From: "Greg Saugis" <saugis@...>
Date: Thu Jul 17, 2003 9:39 am
Subject: Re: Re: Payback Sound Engine
joelouiz
Offline Offline
Send Email Send Email
 
Computing stereo volume doesn't take more cycles than computing a mono volume...
You buffer is just twice as big so needs twice more treatments (eg for clipping)

So people, GO STEREO !


>Hi jd,
>
>I remember discussing your mixer specs a while ago on gbadev.org. Its
>good to hear that things are coming to fruition.
>
>I'm wondering if you ever added 'stereo' functionality to your mixer -
> left and right volume per channel?
>If so, what specs did you achieve?
>
>cheers
>
>Col
>
>
>--- In gbadev@yahoogroups.com, James Daniels <james.daniels@a...>
>wrote:
>> Sebastian Kienzl wrote:
>>
>> > Type 3: MIXING, max ~6 digital channels
>> >
>> > Examples: Console Audio Driver 2, 3; probably Payback's Player,
>Aleksi
>> > Eeben's (code available afaik)
>> >
>> > Type 4: MIXING, > 6 channels
>>  >
>> > Examples: Krawall ;) (http://mind.riot.org/krawall), Engine's
>Replayer,
>> > MusyX (I think)
>>
>> Payback's mixer is type 4.
>>
>> > I'm sorry if I left other players out, I don't have the time to
>list
>> > every one available right now.
>> > I haven't talked about player-logic (which is quite a different
>topic),
>> > that's the code that tell what channel to play which sample (or
>> > synth-setting) at which pitch, volume and time. This code can use
>quite
>> > some CPU and it can be *lots* of code (XM-logic is definitely
>more than
>> > a simple MIDI-synth-logic).
>>
>> Admittedly Payback's code currently only supports Protracker MODs,
>but
>> the 3.2 figure mentioned before does include the player logic. It
>takes
>> around 0.2 of total CPU time to handle all the MOD overhead (0.3
>in
>> the case of very complex MODs).
>> --
>> Cheers,
>> James.
>>
>>     /\  apex                                 James Daniels
>>    //\\  designs            james.daniels@a...
>>   //__\\                       http://www.apex-designs.net
>
>
>
>
>
>
>Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

#14432 From: Sebastian Kienzl <zap@...>
Date: Thu Jul 17, 2003 8:30 am
Subject: Re: Payback Sound Engine
zap@...
Send Email Send Email
 
James Daniels wrote:

>>Type 4: MIXING, > 6 channels
>
>>Examples: Krawall ;) (http://mind.riot.org/krawall), Engine's Replayer,
>>MusyX (I think)
>
> Payback's mixer is type 4.

Ok, then max 8 channels, the distinction between 3 and 4 isn't actually
the number of channels (well it kinda is, but it can be 5, 6 or 8) but
whether you are mixing to a temporary (most likely 16bit) buffer or not
(I don't think you get around that for 16 or 32 channels).

> Admittedly Payback's code currently only supports Protracker MODs, but
> the 3.2% figure mentioned before does include the player logic. It takes
> around 0.2% of total CPU time to handle all the MOD overhead (0.3% in
> the case of very complex MODs).

This is a quite respectable figure, would you mind putting out a demo?

Regards,
Sebastian Kienzl

#14431 From: James Daniels <james.daniels@...>
Date: Thu Jul 17, 2003 2:27 am
Subject: Re: Re: Payback Sound Engine
j_r_daniels
Offline Offline
Send Email Send Email
 
Hi Colin,

> I'm wondering if you ever added 'stereo' functionality to your mixer -
>  left and right volume per channel?

No. Right now you can do mono or "hard" stereo (i.e. sounds come from
the left or right speaker). If I do add full stereo panning (which
really depends on how much demand there is) then I'd likely have that as
a seperate mixer as I'd guess there'd be a ~40% performance hit.
--
Cheers,
James.

     /\  apex                                 James Daniels
    //\\  designs            james.daniels@...
   //__\\                       http://www.apex-designs.net

#14430 From: "Damian Yerrick" <d_yerrick@...>
Date: Thu Jul 17, 2003 2:26 am
Subject: Re: Payback Sound Engine
yerricde
Offline Offline
Send Email Send Email
 
I'm working on my own sound engine called "Tri", which I used in
TOD M3.  It currently uses its own sound format compiled from a
text file, but once I release 1.0 under the GNU Lesser GPL, it'll
have a converter from S3M.  (Modplug Tracker can output S3M.)
I'll categorize Tri:

--- In gbadev@yahoogroups.com, Sebastian Kienzl <zap@r...> wrote:
> Now, to gain a little perspective, you can categorise players quite
easily:
>
> Type 1: NO MIXING, SYNTH ONLY
>
> Uses the GBA-synth (which is almost the same as on the GBC)

Boyscout runs in this mode.  Tri will run in this mode if the music
arranger doesn't specify more than 4 channels in a music file.

> Type 2: NO MIXING, SYNTH + DIRECTSOUND
>
> Like type 1 but uses the Directsound-channels without mixing!
> There are two DS-channels that can be left, right or centered
> and a little volume-control is possible (NO pitch control).

Doom and Pinobee, as well as quite a few games' multiplayer modes
with one Game Pak, seem to use this method.  But: "No pitch control"?
Isn't it possible to get pitch control in this type of mixer just by
setting the timer speed?

> Type 4: MIXING, > 6 channels
>
> These are the most generic kind of mixers and they are usually
> slower than type 3. The thing here is that you usually mix many
> sources into a temporary buffer which afterwards again gets
> downsampled to the 8-bit DS-buffer. This step alone usually takes
> around 2% CPU (incl clipping)!

However, fully panned stereo is easy to do in this sort of
mixer if you store left in the low-order bits and right in the
high-order bits.

> Examples: Krawall ;) (http://mind.riot.org/krawall),
> Engine's Replayer, MusyX (I think)

And Tri.  Currently, without any sort of aggressive unrolling or
assembly language, Tri's mixer takes about 2.5% + 2.5%/active
voice at 21 kHz with volume and pitch control and looping.
What's the typical speed for this sort of engine?

--
Damian

#14429 From: "thomyorke999" <thomyorke999@...>
Date: Thu Jul 17, 2003 1:22 am
Subject: Re: 512x512 Tile Maps
thomyorke999
Offline Offline
Send Email Send Email
 
Good point! This is exactly the answer I was looking for.  In fact,
this had been my guess (for CPU savings in limited-space-requiring
situations), but I couldn't think of a game that needed this special
case. Street Fighting games are a great example! =)

Thanks again!

> 2) still using 512x512 may be reasonable, imagine you are doing
another
> Street Fighter clone and your "arena" can be scrolled slightly,
but still
> it does fit within 512x512 map.
>  So why bother programming "load few columns/rows", if you can
simply put
> the whole arena up before battle and save some CPU cycles for
special
> effects calculated per frame.

#14428 From: "Colin Brown" <user@...>
Date: Thu Jul 17, 2003 1:11 am
Subject: Re: Payback Sound Engine
colinraybrown
Offline Offline
Send Email Send Email
 
Hi jd,

I remember discussing your mixer specs a while ago on gbadev.org. Its
good to hear that things are coming to fruition.

I'm wondering if you ever added 'stereo' functionality to your mixer -
  left and right volume per channel?
If so, what specs did you achieve?

cheers

Col


--- In gbadev@yahoogroups.com, James Daniels <james.daniels@a...>
wrote:
> Sebastian Kienzl wrote:
>
> > Type 3: MIXING, max ~6 digital channels
> >
> > Examples: Console Audio Driver 2, 3; probably Payback's Player,
Aleksi
> > Eeben's (code available afaik)
> >
> > Type 4: MIXING, > 6 channels
>  >
> > Examples: Krawall ;) (http://mind.riot.org/krawall), Engine's
Replayer,
> > MusyX (I think)
>
> Payback's mixer is type 4.
>
> > I'm sorry if I left other players out, I don't have the time to
list
> > every one available right now.
> > I haven't talked about player-logic (which is quite a different
topic),
> > that's the code that tell what channel to play which sample (or
> > synth-setting) at which pitch, volume and time. This code can use
quite
> > some CPU and it can be *lots* of code (XM-logic is definitely
more than
> > a simple MIDI-synth-logic).
>
> Admittedly Payback's code currently only supports Protracker MODs,
but
> the 3.2% figure mentioned before does include the player logic. It
takes
> around 0.2% of total CPU time to handle all the MOD overhead (0.3%
in
> the case of very complex MODs).
> --
> Cheers,
> James.
>
>     /\  apex                                 James Daniels
>    //\\  designs            james.daniels@a...
>   //__\\                       http://www.apex-designs.net

Messages 14428 - 14457 of 15019   Newest  |  < Newer  |  Older >  |  Oldest
Advanced
Add to My Yahoo!      XML What's This?

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help