Language…
13 users online:  AmperSam,  Anorakun, aore gfhgft, Dark Prince, DoubleCakes, HD_DankBaron, MM102, Sheilal14, steelsburg, stormitive, TheMorganah, Vuong Van, Wavee - Guests: 112 - Bots: 223
Users: 64,663 (2,406 active)
Latest user: NightSpark

Any non-broken addmusic yet?

I return from a few month break and have decided to completely switch over to BSNES for my emulation. If you use any of the addmusics hosted here and tried to play your hack on that emulator (or a real machine), you'll notice the sound gets destroyed by echo.

Any addmusics out there yet that don't (mis)use the echo buffer? Carol's sticks code there (blah), romi's does something similar (also blah), and I dunno about addmusic_m.
I believe addmusic_m is actually the worst offender of all the addmusics, with romi's being the best. Those are still the only 3 available.
I dunno about addmusic_m either. I hope as the newest addmusic, it is not fucking around anymore, but I've heard some unfortunate reports about it. I'm personally too lazy to get it working. If someone can direct me to a hack that uses addmusic_m or hell just an ips of a couple levels, I'd like to check it out.

romi's sort of works... sometimes. Depending on the size of your music data, in bytes. If the song group is too big, it starts eating into the echo buffer.

The main problem is how every addmusic hack uses song groups to try and cram a ton of music into aram at a time. There's plenty of room for just 1 or maybe 2 "bloated", smwc music section type songs, but the 4 song scheme is doomed when there's so many songs floating around that are more than 0xF00 bytes in size.

If someone went and recompiled one of the addmusics with some slightly different parameters on how song groups works, or if a warning was given that hey you're trying to insert too much music data, romi's version would work fine. Carol's won't ever work fine because he just dumps it all directly into the echo buffer. Again, dunno about addmusic_m or any of those other prehistoric versions of addmusic.
Hrm, I see.


Well I know what my new project's gonna be. My hack's unplayable until this gets fixed.
Originally posted by Kaijyuu
Hrm, I see.


Well I know what my new project's gonna be. My hack's unplayable until this gets fixed.

Just use MSU1 if you're always using bsnes! :D
If you're looking for solutions... one option could be to not insert songs so close together thus avoiding the trouble with song groups. Addmusic loads the songs in these groups together: 20-23, 24-27, 28-2b, 2c-2f, 30-33, etc. If you only put one or two songs into these groups, or only group small songs together, I think it could work out.

There's one other problem with echo that shows up in bsnes and real hardware which I'll just mention since it's weird as hell.

In vanilla smw when you die or complete the level, the normal death/goal music (and a few others) sets the echo LR volume to 0. This stops the echo that still exists in the buffer. I don't remember the details exactly since it's been a few months, but when you change songs, the sound left in the buffer can end up playing eternally.

SMW's only vanilla song with echo is the cave music, so it seems they didn't really code the spc engine to prevent this.

So if you notice that you hear some horrible grinding noise when songs switch, it's because the echo is repeating endlessly. You can't just go from a song that has echo to one that doesn't. Echo processing stops and its technically "off" but the echo buffer is still being mixed into the sound output. Basically I set the L&R echo volumes to 0 in every song without echo to be safe.
I personally would like to see an Addmusic that acts like AddmusicM but also has the ability to insert custom sound effects. If even Romi's is incompatible with bsnes, then that's the only reason left for me not to use AddmusicM.

And...can't you put $F0 at the beginning of every song without echo to prevent it from possibly messing up?

I'd have to agree, though...I really wish someone would make a version of Addmusic that is easy to use, works in every emulator, and has all the useful features that we know of from other versions. SPC-700 code isn't that hard to figure out...somebody should seriously use the source code of AddmusicM and Romi's to make one that can use $F3 samples and custom sound effects, doesn't insert music in groups, and works in bsnes.

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Originally posted by Kil
or only group small songs together, I think it could work out.


Are you implying that by, say, having your INI file look like this:

20 a.txt
21 b.txt
22
23
24 c.txt
25 d.txt
26
27

on Romi's, you might prevent the echo buffer from being overwritten? If so, that's some pretty useful knowledge there...
If my theory is correct, yeah, but I haven't tried it myself.
Isn't there a version that only has one bank per song and reloads the spc code every time you change music?
Your layout has been removed.
Quote
Isn't there a version that only has one bank per song and reloads the spc code every time you change music?


I dunno, but that'd be one of the best possible solutions. Most snes games only had 1 or 2 songs in aram at a time and stopped to load new ones.

By the way, I just tried the song grouping thing and I was wrong. Romi's already has a limit on the music data size. It's actually the -se option in romi's addmusic. Sure enough as soon as I patched my rom with -se and booted up, I noticed data being written to $6000 through bsnes debugger. To reiterate, the song groups don't actually matter. Romi's works so long as you don't use the -se option (although pretty much everyone uses this option...) Whoops.
Originally posted by Kil
custom sound effects don't work[/url]

NNNNOOOOOOOOOOOOO!!!

*ahem* Um, do we know just why AddmusicM is incompatible with bsnes? Could it be fixed?

Tag (div) was not closed.
Tag (div) was not closed.

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
There happen to be a disassembly of SMW's SPC code lying around anywhere? All it is is a bunch of hex tables in all.log, obviously, and SPC700 disassemblers are hard to come by last I looked.
Kil

Kaijyuu: I was going to disassemble it manually looking at spcas's list.
I own a community of TF2 servers!

ASMT - A new revolutionary ASM system, aka 65c816 ASseMbly Thing
SMWCP - SMW Central Presents a Product- tion long name

frog

http://esolangs.org/wiki/MarioLANG
Originally posted by Kil
To reiterate, the song groups don't actually matter. Romi's works so long as you don't use the -se option (although pretty much everyone uses this option...) Whoops.


So let's back up a second. -se is what inserts custom sound effects, but most people use it to enable the $ED command (whereas, originally, manually patching MORE.bin does this).

...so what if we were to use Carol's MORE.bin (the one that enables $E5) with Romi's addmusic (to prevent the echo bug)? Since $E5 breaks as soon as you use the -se command anyway, couldn't this theoretically work? I mean, this is how I usually do things, and my hacks work fine on BSNES .. so I don't know.
Quote

Kaijyuu: I was going to disassemble it manually looking at spcas's list.

I'd be very much interested if you ever get around to it.



Side note: I really wish tool creators would include an xkas patch for all their inserted code. Not hard to manually extract it and disassemble, but still.
Well according to chdata's rom, addmusic_m is clearly out. It's dumping all kinds of crap in the echo buffer. Everything before that is filled up too with who knows what, even the bit that's usually free at $0400~$04FF.

Kaijyuu: I think I saw Roy flashing a commented disassembly in #serioushax awhile ago. My thread here also has some basic info on the spc code towards the end http://www.smwcentral.net/?p=viewthread&t=38116

SNN: Where can I get carol's more.bin patch? The usual link in the addmusic thread seems to be broken. I want to try that myself.



One thing though. All of these addmusics that abuse the echo buffer; well, you can actually move the echo buffer a little bit. You have to limit yourself to echo lengths of $03 instead of $04, but your addmusic gets 1280 more bytes of space to put stuff in where the echo buffer used to be. It's just another option if the others don't work and you're desperate enough for it.
Kil: Here.

Jeez, you can't even use Carol's MORE.bin with...wait, does that disallow custom sound effects entirely, or just using the -se option? I patched MORE.bin with xkas.

Okay, Addmusic officially sucks. Add this to the list of reasons Japanese SMW hackers maybe aren't as cool as they seem. Would completely redoing SMW's SPC engine (which I think is essentially what AddmusicM does) be a possibility?

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Thanks. So this rom was patched with romi's + carol's more.bin? I don't even know what to say about this one. It's putting stuff at $6800 which is arguably worse than just putting it at $6000. I don't even know what this data is but you can hear it output as static as soon as you enter the stage on the left. I don't really know what it's doing or why.

By the way, it's pretty easy to check this stuff. In bsnes, go to the memory editor, select "S-APU Bus" and check Auto Update. Then go into a level. If you see anything between $6000~8000, then your addmusic is using the echo buffer.

To answer your question, addmusic doesn't really redo the spc engine. Addmusic basically takes .txts, translates them to nintendo spc format, and keeps track of all this stuff in your rom. The more.bins append stuff to the spc engine. Addmusic just moves music around in rom.smc and hijacks a few level loading routines to send the proper songs to the spc based on the level number and whatnot.

So an addmusic program consists of these things

1) Translates some types of files to nintendo spc format
2) Insert and keep track of all these songs in your rom
3) Hijack the level loading routines so they load the custom songs
4) Optional: Do sound effects and other stuff.
1 is the hardest by far.

2 and 3 don't even really need to exist in my opinion, although they make it easier for the end user. For the savvy peoples, I envision an addmusic that could translate songs directly into .bin files, which would then be sent to the spc and played whichever way the end user desired, for instance during a levelasm init type of routine. Really it'd be 3 lines of code

LDY Songpointer
JSL SPCUpload

Songpointer:
incbin mysong.bin

Unfortunately no one is interested in making a new addmusic from the ground up since it's such a huge pain in the ass.
Is there any free space for the echo buffer elsewhere? Can't we change where it puts it? Also, this only effects songs that actually use echoes I think.
Your layout has been removed.