New SNES game in development: Furry RPG (working title)

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
KungFuFurby
Posts: 259
Joined: Wed Jul 09, 2008 8:46 pm

Re: New SNES game in development: Furry RPG (working title)

Post by KungFuFurby » Sat Jan 31, 2015 2:16 pm

Ramsis wrote:Wow, thanks for all the input and feedback, guys. :D
KungFuFurby wrote:I have an idea to cut down on memory consumption caused by having duplicate copies of the sound driver. Simply have one copy of the sound driver in the ROM, then have copies of a series of three pointers (six bytes total) corresponding to your music that will be loaded at $208 in SPC700 RAM. When you switch banks, you'll only have six bytes plus the filesize of whatever music you're using to load. The code to load data is defined in a way that makes this real easy.
Very cool, this definitely sounds like it's worth a try, as does your idea with leaving samples in audio RAM, even if only to speed up song loading. :)

BTW KungFuFurby, do you happen to know how to add panning information in SNESGSS? As it seems, the software ignores panning data in MIDI files for whatever reason. And I couldn't figure out how to do it when editing the song.

About the song crashing issue, I've been aware that all emulators (including higan-accuracy) tend to freeze after repeatedly loading any of the three songs, but I never encountered any issues on real hardware so far. Will have to look into the matter some more. As SNESGSS is very poorly documented, I had a hard time figuring out how to proceed when loading a (new) song at all. :|

Here's how I'm currently doing it – not sure if this is 100% correct (with an initialization of the SPC700 done earlier, of course):

Code: Select all

LoadMusic02:
	jsl music_stop

	A16

	lda.w #SCMD_LOAD
	sta gss_command
	stz gss_param
	jsl spc_command_asm

	A16

	lda #:spc700_code_02
	sta DP_SPC_DATA_BANK

	lda #spc700_code_02+2
	sta DP_SPC_DATA_OFFS

	lda.l spc700_code_02
	sta DP_SPC_DATA_SIZE

	lda #$0200
	sta DP_SPC_DATA_ADDR

	jsl spc_load_data

	A16

	lda.w #SCMD_INITIALIZE
	sta gss_command
	stz gss_param
	jsl spc_command_asm

	A16

	lda.w #SCMD_LOAD
	sta gss_command
	stz gss_param
	jsl spc_command_asm

	A16

	lda #:music_02_data
	sta DP_SPC_DATA_BANK

	lda #music_02_data+2
	sta DP_SPC_DATA_OFFS

	lda.l music_02_data
	sta DP_SPC_DATA_SIZE

	lda.l spc700_code_02+14
	sta DP_SPC_DATA_ADDR

	jsl spc_load_data

	A16

	lda #$00FF
	sta DP_SPC_VOL_FADESPD

	lda #$007F
	sta DP_SPC_VOL_CURRENT
	jsl spc_global_volume

	A16

	lda.w #SCMD_MUSIC_PLAY
	sta gss_command
	stz gss_param
	jsl spc_command_asm

	A8
rts
I looked up the code for the sound driver. Panning is not supported in an actual music file as a command. That’s why it got ignored during conversion. Panning, according to the sound driver, is only ever used in sound effects, and it is mono everywhere else. Yeah...

tepples
Posts: 21720
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: New SNES game in development: Furry RPG (working title)

Post by tepples » Sat Jan 31, 2015 2:47 pm

Ramsis wrote:
tepples wrote:DOMINIC isn't supposed to represent the hot glue sculptor we know as Drakon, is he?
Huh? :?: :?: :?: Even though I'm not quite sure I understand the question, the answer is probably no.
Drakon (real name Dominic █████) is known for AV mods and cart reproductions with poor soldering and lots of slathering wires in hot glue to make up for it. There was recent talk in #nesdev on EFnet about making a game parodying his penchant for using hot glue. Google drakon hot glue and become warned about this joke of a modder.
tepples wrote:[Obligatory Pinocchio joke]
[Onomastics geekery]
I can't find any spoiler tags
Image
Assuming you don't mean these (photo by Ferenghi)

, so I can't tell you here and now. (Look here for my notes on playable characters, which – spoiler alert! – will answer your questions. ;) )
I'll go look for background there.
tepples wrote:Some blinking dots in the H-IRQ test. It only happens on some resets though.
The fancy H-IRQ stuff is indeed a bit unstable. I've thought about scrapping it altogether, or patch up the area where flickering typically occurs with some sort of sprite-based window decoration. In any case, the final design of the main menu is yet another thing to work on. ;)
Or better yet, actual "window" decoration.
(Star Fox Adventures? Isn't that a 3D game? :?: :?: :?: )
You can still use 3D models for 2D sprites. It's how Donkey Kong Country and Mario vs. Donkey Kong were made.


EDIT (2018-04-18): Wikimedia Commons moved Ferenghi's photo to a different filename, and hotlinks do not redirect.

User avatar
Ramsis
Posts: 341
Joined: Sun Jul 01, 2012 6:44 am
Location: Lion's den :3
Contact:

Re: New SNES game in development: Furry RPG (working title)

Post by Ramsis » Sun Feb 01, 2015 10:39 am

KungFuFurby wrote:I looked up the code for the sound driver. Panning is not supported in an actual music file as a command. That’s why it got ignored during conversion. Panning, according to the sound driver, is only ever used in sound effects, and it is mono everywhere else. Yeah...
Goodbye then, SNESGSS. It's too bad, but a mono soundtrack is in no way acceptable in my opinion. Looks like I'll have to go MSU1 for the music after all, as I had planned at an earlier stage anyway. :)
Some of my projects:
Furry RPG!
Unofficial SNES PowerPak firmware
(See my GitHub profile for more)

User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: New SNES game in development: Furry RPG (working title)

Post by Myask » Sun Feb 01, 2015 1:17 pm

That seems a trifle abrupt.

User avatar
juef
Posts: 67
Joined: Thu Jul 15, 2010 8:20 am
Location: Québec, Canada

Re: New SNES game in development: Furry RPG (working title)

Post by juef » Mon Feb 02, 2015 5:29 am

I believe the current implementation of MSU-1 on the sd2snes doesn't allow saving, though... I could be wrong, but I'm pretty sure I read that not too long ago.

KungFuFurby
Posts: 259
Joined: Wed Jul 09, 2008 8:46 pm

Re: New SNES game in development: Furry RPG (working title)

Post by KungFuFurby » Mon Feb 02, 2015 8:36 am

Be careful with the MSU1! It's really expensive when it comes to memory (you're essentially using raw WAV data for audio, meaning those files can end up in the hundreds of megabytes when combined).

User avatar
MottZilla
Posts: 2832
Joined: Wed Dec 06, 2006 8:18 pm

Re: New SNES game in development: Furry RPG (working title)

Post by MottZilla » Mon Feb 02, 2015 10:16 am

juef wrote:I believe the current implementation of MSU-1 on the sd2snes doesn't allow saving, though... I could be wrong, but I'm pretty sure I read that not too long ago.
It disables auto-saving. Saving still works but you must do whatever it is to manually make it save.

tepples
Posts: 21720
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: New SNES game in development: Furry RPG (working title)

Post by tepples » Mon Feb 02, 2015 11:12 am

You could just write your own music engine. It can't be that hard because the SPC700 is largely a 65C02 clone with a rearranged instruction decode table. Is the SNESGSS source code available? Had you planned on setting pan for each instrument (more realistic for orchestral-type soundtracks) or for each note?

User avatar
Drew Sebastino
Formerly Espozo
Posts: 3503
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: New SNES game in development: Furry RPG (working title)

Post by Drew Sebastino » Mon Feb 02, 2015 11:32 am

Mono sound really isn't that bad anyway. Most Neo Geo boards only outputted mono audio, if I'm right. (Only a handful of the single slot ones didn't.)

KungFuFurby
Posts: 259
Joined: Wed Jul 09, 2008 8:46 pm

Re: New SNES game in development: Furry RPG (working title)

Post by KungFuFurby » Mon Feb 02, 2015 1:01 pm

The SNESGSS source code can be found here: https://code.google.com/p/snesgss/

You could in theory add extra features (panning's the big one, but perhaps modifying the ADSR in real-time if needed so that the note doesn't just cut?). However, I would do so at the cost of the maximum range for the short delay command, not the note range.

Be careful, though: panning can conflict with the SFX.

I was interested in modifying SNESGSS myself to add a loop counter to the reference feature. I felt that this would add some RLE-style compression for when references are used more than once in a row. However, I am developing my own sound driver instead (it's going to take a while for me to make it... could be a few years, so no guarantees).

tepples
Posts: 21720
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: New SNES game in development: Furry RPG (working title)

Post by tepples » Mon Feb 02, 2015 1:46 pm

KungFuFurby wrote:You could in theory add extra features (panning's the big one, but perhaps modifying the ADSR in real-time if needed so that the note doesn't just cut?). However, I would do so at the cost of the maximum range for the short delay command, not the note range.
I haven't looked, but I don't see how it would have much of a "cost" if each instrument has a constant pan amount.

Image
Illustration by Darkdoc of the layout of an orchestra


This means you can set a pan position for each instrument when it is played.
  • Piano hard left
  • First violins, french horns, cornets, timpani, and triangle medium left
  • Second violins, piccolo, flutes, clarinets, and xylophone barely left
  • Violas, oboes, bassoons, trombones, cor anglais, and bass drum barely right
  • Cellos, trombones, contrabassoon, snare drum, and cymbals medium right
  • Double bass, contrebasses, and organ hard right
Be careful, though: panning can conflict with the SFX.
I don't see how, as the pan would be written only at the start of a note.

DoNotWant
Posts: 83
Joined: Sun Sep 30, 2012 3:44 am

Re: New SNES game in development: Furry RPG (working title)

Post by DoNotWant » Mon Feb 02, 2015 2:14 pm

Wow, that's a weird orchestra layout. English horn and contra bassoon usually goes together with the other woodwinds. Also, contrabass is the same thing as double bass. WTF?

KungFuFurby
Posts: 259
Joined: Wed Jul 09, 2008 8:46 pm

Re: New SNES game in development: Furry RPG (working title)

Post by KungFuFurby » Mon Feb 02, 2015 2:41 pm

The panning I was thinking of was going to be as one of the effect commands (in the same league as volume, detune, slide up/down, etc.) so that it didn't have to stick for the entire song.

93143
Posts: 1104
Joined: Fri Jul 04, 2014 9:31 pm

Re: New SNES game in development: Furry RPG (working title)

Post by 93143 » Mon Feb 02, 2015 3:36 pm

Darkdoc wrote:Organ
[*snort*] ...yeah, if that's a real pipe organ, it's going to be all over the sound field, with each pipe in each stop having a different position, not necessarily in chromatic order. And that's before reverb is taken into account. The position of the console is totally unrelated to the position of the sound source, which is generally more or less L/R symmetric...

I suppose a portable continuo unit or a Hammond or something like that could potentially have a definable position that small... but if it's an electric organ with a rotary speaker, it's going to be flinging its sound all over the hall anyway (see "reverb")...

...I'm used to much more extensive resources than the Super NES audio module provides...

User avatar
benjaminsantiago
Posts: 84
Joined: Mon Jan 20, 2014 9:40 pm
Location: Astoria, NY
Contact:

Re: New SNES game in development: Furry RPG (working title)

Post by benjaminsantiago » Mon Feb 02, 2015 7:55 pm

At least SNESGSS let's you add arbitrary volume changes and pretty transparently adjust samples, and portamento. I've been thinking about making my own SNES tools but I'm not much of a programmer (they'd be made in Processing, which is built on top of Java at this point, and then I'd probably port them to other platforms).

I've been trying to use Schism Tracker as well and then converting with snesmodlite, but the results are a little unpredictable (ie how samples get converted), not horrible, but unpredictable. I feel like Schism Tracker is a bit better suited for production (does SNESGSS actually have the ability to edit multiple patterns?)

I'm hoping elix put out their tracker maybe at some point: https://www.youtube.com/watch?v=l-VfFzOQRDk

or bazz does more work on his


That being said I quite like the demos, my only advice is that the walking furry character seems a bit asymetrical (ie like he is limping). What do you make your graphics with?

Post Reply