Ideas for Scherzo's NesterDC SE.

This forum is for discussion pertaining to homebrew and indie software for the Dreamcast, such as homebrew games, emulators/interpreters, and other homebrew software/applications. Porting requests and developmental ideas are not to be made here; you can make those here. If you need any help burning discs for homebrew software, this is the place to ask as well.
Post Reply
DcSteve
Modder Of Rage
Modder Of Rage
Posts: 805
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Mon Mar 18, 2002 12:41 pm
Location: Midwest
Has thanked: 0
Been thanked: 0
Contact:

Post by DcSteve »

Isnt Nesterdc 7.1 not fullspeed/framerate even though it is definetly not noticeable. Wouldnt you want to keep NesterDCSE at genuine full framerate and full sound without sacrificing that for features since genuine fullspeed is important as it is. Is the amount of extra processing time needed for stereo panning already available, assuming that nesterdcse doesnt take up all the system resources currently?
Check out the beats of rage community at http://borrevolution.vg-network.com/
Strapping Scherzo
DC Developer
DC Developer
Posts: 2285
Joined: Fri Feb 21, 2003 7:37 am
Location: Chicago, IL
Has thanked: 0
Been thanked: 1 time
Contact:

Post by Strapping Scherzo »

Practically all games that I've tested with are fullspeed; all except Castlevania 3. The current speed is fine. I have the auto-skip enabled and it allows CV3 to play "fullspeed". And the auto-skip doesn't affect the other games at all. They are smooth. I will make more attempts at optimization to try to make all this a non-issue. But, really, the speed is very good and everyone should be happy with it.

Have any of one played an NSF through the NotSo Fatso plugin for WinAmp? The stereo separation feature blew my friggin mind. I'd be very happy to do it for NesterDC SE. If it slows down gameplay, then I'll make it an NSF-Player-only feature.
Image
DcSteve
Modder Of Rage
Modder Of Rage
Posts: 805
Joined: Mon Mar 18, 2002 12:41 pm
Location: Midwest
Has thanked: 0
Been thanked: 0
Contact:

Post by DcSteve »

Cless wants me to post a statement for him from AIM:

"All of this was a stupid move to release this publically for everyone to have. It was bad taste of judgement. Of all people I should of respected Scherzo the most as he's given me the most and done the most for me. I've always considered him my friend and this was a pretty low thing for me to have done. My deepest regrets to Scherzo"

I dont talk to cless much, but he bugs me on aim all the time. :roll:
Last edited by DcSteve on Tue Aug 23, 2005 11:15 am, edited 2 times in total.
Check out the beats of rage community at http://borrevolution.vg-network.com/
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7499
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has thanked: 4 times
Been thanked: 10 times
Contact:

Post by Quzar »

Strapping Scherzo wrote:A little status update:

Well I got my DC hooked back up for the first time since the move. I double checked that everything is working fine, and it is.

I got curious about what would be involved in doing the stereo separation on the NES sound channels. It actually wouldn't be too hard except for one thing. NesterDC uses what appears to be a single channel (mono-only) AICA sound driver. In order to make the stereo separation possible I'll have to swap out this driver for another. No biggie, really.

The only thing that concerns me is that twice as much data would have to be processed and pumped to the sound hardware. I don't know how big of a performance hit that will be, but it definitely won't be free. It might be negligible.

Also, it adds to the processing time if the panning of each NES channel is to be user configurable. The simplest, fastest way for the stereo separation to work would be to have one of the square channels completely on the left and the other completely on the right. To pan them to something like 25% or 75% would require extra processing time.

I want NesterDC SE to be at least as fast as NesterDC 7.1. Regardless of what nifty little features I put into this project, I don't want to do them if they sacrifice speed.
The processing by sound hardware is nothing, the time killer is the sending of two chuncks to the sound hardware. BUT if you take a look at that spu_dma code i've sent you, you can use the same thing and make it go almost as fast as transferring a single data set.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
DcSteve
Modder Of Rage
Modder Of Rage
Posts: 805
Joined: Mon Mar 18, 2002 12:41 pm
Location: Midwest
Has thanked: 0
Been thanked: 0
Contact:

Post by DcSteve »

Does nesterdcse have the same bi-linear filter that 7.1 has or does it have more than that like sai 2X or other types of filters.
Check out the beats of rage community at http://borrevolution.vg-network.com/
User avatar
linus2k3
DCEmu Respected
DCEmu Respected
Posts: 184
Joined: Sun Aug 31, 2003 11:49 pm
Location: Baker, LA. formerly from New Orleans, LA
Has thanked: 0
Been thanked: 0
Contact:

Post by linus2k3 »

Have any of one played an NSF through the NotSo Fatso plugin for WinAmp? The stereo separation feature blew my friggin mind. I'd be very happy to do it for NesterDC SE. If it slows down gameplay, then I'll make it an NSF-Player-only feature.

yeah, I play all my NSF's through the NotSo Fatso Plugin for Winamp. definately a must have plugin for NSF's. The sound in stereo for them is wicked fresh, and real cool. yeah, that would be good for NesterDCSE, but i'm all for it still if you have to use it as an NSF-Player-only feature.
<am i human or wolf, it is up to you to decide

If you come to me saying you've tried everything, that only tells me that you've tried my stuff also, and it didn't work. so no sense in me helping you. Plain & Simple

Image
Strapping Scherzo
DC Developer
DC Developer
Posts: 2285
Joined: Fri Feb 21, 2003 7:37 am
Location: Chicago, IL
Has thanked: 0
Been thanked: 1 time
Contact:

Post by Strapping Scherzo »

Quotable Quzar wrote:
Strapping Scherzo wrote:A little status update:

Well I got my DC hooked back up for the first time since the move. I double checked that everything is working fine, and it is.

I got curious about what would be involved in doing the stereo separation on the NES sound channels. It actually wouldn't be too hard except for one thing. NesterDC uses what appears to be a single channel (mono-only) AICA sound driver. In order to make the stereo separation possible I'll have to swap out this driver for another. No biggie, really.

The only thing that concerns me is that twice as much data would have to be processed and pumped to the sound hardware. I don't know how big of a performance hit that will be, but it definitely won't be free. It might be negligible.

Also, it adds to the processing time if the panning of each NES channel is to be user configurable. The simplest, fastest way for the stereo separation to work would be to have one of the square channels completely on the left and the other completely on the right. To pan them to something like 25% or 75% would require extra processing time.

I want NesterDC SE to be at least as fast as NesterDC 7.1. Regardless of what nifty little features I put into this project, I don't want to do them if they sacrifice speed.
The processing by sound hardware is nothing, the time killer is the sending of two chuncks to the sound hardware. BUT if you take a look at that spu_dma code i've sent you, you can use the same thing and make it go almost as fast as transferring a single data set.
Right, the panning in the sound hardware itself is absolutely nothing. See i have two choices...

1. Set up two channels in the AICA sound hardware, simple, one for left one for right. Then I pan the different NES channels via software on the SH4 side. The benefit is that I'm only sending 2 channels worth of samples. Drawback, I take away from the main emulation speed for the sake of doing this software panning.

2. Set up a channel for each NES channel in the AICA hardware. Send the separate samples for each channel. Benefit: the sound hardware does the panning. So it saves on clock cycles on the SH4 side. Drawback, more IO blocking due to the possibility of up to 6 NES channels getting sent to sound memory. But if Quzar's spu_dma code really makes that much of a difference, then this will probably be the best option.

So tonight, when I get home, I'm going to modify the current sound driver used by NesterDC to support more than one channel. I thought about using the other sound mechanisms in KOS, but they seem to have more overhead than what I see in the NesterDC code. Plus, the stream thing found in KOS doesn't work well with Nester's way of sound scheduling.
Image
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7499
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has thanked: 4 times
Been thanked: 10 times
Contact:

Post by Quzar »

The way the spu_dma code works is that it alternates blocking and non-blocking, so for example, if you have one channel, it can simply be non blocking end of story. If you have two though, you have to have one be blocking because there is only one (known) spu dma channel (so you can only have one spu_dma transfer at a time). 6 channels would take only slightly longer than 3 channels w/o dma (same with 7).

anyways, the best thing would be just to write each piece of code and compare, since neither is all that complex.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
Strapping Scherzo
DC Developer
DC Developer
Posts: 2285
Joined: Fri Feb 21, 2003 7:37 am
Location: Chicago, IL
Has thanked: 0
Been thanked: 1 time
Contact:

Post by Strapping Scherzo »

Well, I did it. And, wow, NES in stereo really kicks ass. I did a two channel approach but the hardware still does the panning. The only two NES channels most people care about separating are the two rectangles since they nearly always carry the theme with harmony. So I put one rectangle on one DC sound channel and the other rectangle on the other DC sound channel. The others NES channels get put into both. Then I tell the hardware to pan one channel halfway left and the other halfway right. Tada! Instant kick ass stereo. And speed is not visibly affected.
Image
LyingWake
DCEmu Super Poster
DCEmu Super Poster
Posts: 1342
Joined: Thu Aug 26, 2004 4:05 am
Has thanked: 0
Been thanked: 0
Contact:

Post by LyingWake »

That's awesome and I can't wait to test it out. :D
Sir Savant
Somewhat Dumb Knight
Posts: 3653
Joined: Tue Oct 12, 2004 2:26 pm
Has thanked: 0
Been thanked: 0

Post by Sir Savant »

SCORE!

Now I just need to mod my old-ass stereo to accept left and right input. Shouldn't be too time consuming.....

Nice to know you are working on it and progressing, Scherzo. And I will be damned if I let kermit hypnotize me with his ass slapping.

Make a NULL VERSION! Sweet Nullness on DC. PLEZ?!?!?!?LOL

Good luck on the rest of your work and I hope noone leaks anymore.
drybed
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Wed May 04, 2005 6:47 pm
Has thanked: 0
Been thanked: 0

Post by drybed »

what is an NSF player? is it like a winamp or some device to just play music?
and if it like a winamp, this is for peopel just sitting in front of the TV listening to nintendo music? i find no point in that
User avatar
Coagulus
DCEmu Freak
DCEmu Freak
Posts: 62
Joined: Sat Jan 03, 2004 11:06 am
Location: UK
Has thanked: 0
Been thanked: 0
Contact:

Post by Coagulus »

NSF players are players or Winamp/other plugins to play NES music files.
It's a nostalgia thing! I love listening to old computer and console music!
COAGULUS
:;;::;;;;:::;
User avatar
OldSkoolGamer
Mental DCEmu
Mental DCEmu
Posts: 494
Joined: Thu Oct 03, 2002 8:52 am
Location: Longview, TX, USA
Has thanked: 0
Been thanked: 0

Post by OldSkoolGamer »

To each his or her own. I'd like to have some classic game tunes playing from my TV (which is hooked up to my stereo) while I clean my living room.

It's not a necessity by any means, but a nice feature in my opinion.
Image
Strapping Scherzo
DC Developer
DC Developer
Posts: 2285
Joined: Fri Feb 21, 2003 7:37 am
Location: Chicago, IL
Has thanked: 0
Been thanked: 1 time
Contact:

Post by Strapping Scherzo »

Definitely not necessary. Lots of things in this version are not necessary. But I personally will be jamming to NES tunes on my stereo when I'm done with it.
Image
User avatar
Syd
Insane DCEmu
Insane DCEmu
Posts: 181
Joined: Tue May 04, 2004 7:45 pm
Location: Newfoundland, Canada
Has thanked: 0
Been thanked: 0

Post by Syd »

Strapping Scherzo wrote:Definitely not necessary. Lots of things in this version are not necessary. But I personally will be jamming to NES tunes on my stereo when I'm done with it.
Actually thats something I never thought of. Me and my brother make up our own versions of NES tunes all the time (he plays guitar, I play bass). An NSF player would be a lot better to jam with than turning on the actual game. The NESkimos rule!
Strapping Scherzo
DC Developer
DC Developer
Posts: 2285
Joined: Fri Feb 21, 2003 7:37 am
Location: Chicago, IL
Has thanked: 0
Been thanked: 1 time
Contact:

Post by Strapping Scherzo »

I just made a little page on my site to help me keep track of my progress. You can see it here:

http://www.sch3rz0.com/nesterdcse/wip_features.php

I'm still going through this and other topics to add more to the the list. So keep checking there as I work. If there's something that you feel should be on the list that isn't, either point it out here or IM me.
Image
LyingWake
DCEmu Super Poster
DCEmu Super Poster
Posts: 1342
Joined: Thu Aug 26, 2004 4:05 am
Has thanked: 0
Been thanked: 0
Contact:

Post by LyingWake »

I can not wait (I can, but you know what I mean). Good luck!
User avatar
crt023
DCEmu Crazy Poster
DCEmu Crazy Poster
Posts: 28
Joined: Sat Apr 30, 2005 2:36 pm
Has thanked: 0
Been thanked: 0

Post by crt023 »

If you choose to implement light gun support will it be possible to calibrate the lightgun?
Strapping Scherzo
DC Developer
DC Developer
Posts: 2285
Joined: Fri Feb 21, 2003 7:37 am
Location: Chicago, IL
Has thanked: 0
Been thanked: 1 time
Contact:

Post by Strapping Scherzo »

crt023 wrote:If you choose to implement light gun support will it be possible to calibrate the lightgun?
If it's necessary, sure. I would hate to add a lightgun feature and not have it work correctly.
Image
Post Reply