Language…
7 users online: BreadEater, Bullymario, h.carrell, Lush_50, ryuuune,  Saphros, WONIU - Guests: 65 - Bots: 222
Users: 66,534 (2,385 active)
Latest user: amyysucks

Any non-broken addmusic yet?

Would anyone be interested in an SPC-700 disassembly project? I know I've mentioned this before, but now we would actually have a good use for it. This is what I have so far:

Code
db $3E,$0E,$00,$05
$0004:		20		CLRP		;
$0005:		CD CF		MOV X,#$CF	;
$0007:		BD		MOV SP,X		;
$0008:		E8 00		MOV A, #$00	;
$000A:		C5 86 03		MOV $0386,A	;
$000D:		C5 86 03		MOV $0387,A	;
$0010:		C5 86 03		MOV $0388,A	;
$0013:		C5 86 03		MOV $0389,A	;
$0016:		5D		MOV X,A		;
$0017:		AF		MOV (X)+,A	;
$0018:		C8 E8		CMP X,#$E8	;
$001A:		D0 FB		BNE $FB [$0017]	;
$001C:		E8 00		MOV A,#$00	;
$001E:		5D		MOV X,A		;
$001F:		D5 00 02		MOV $0200+X,A	;
$0022:		3D		INC X		;
$0023:		D0 FA		BNE $FA [$001F]	;
$0025:		D5 00 03		MOV $0300+X,A	;
$0028:		3D		INC X		;
$0029:		D0 FA		BNE $0025	;
$002B:		CD 0B		MOV X,#$0B	;
$002D:		F5 A1 12		MOV A,$12A1+X	;
$0030:		FD		MOV Y,A		;
$0031:		F5 95 12		MOV A,$1295+x	;
$0034:		3F 97 06		CALL $0697	;
$0037:		1D		DEC X		;
$0038:		10 F3		BPL $F3 [$002D]	;
$003A:		E8 F0		MOV A, #$F0	;
$003C:		C5 F1 00		MOV $00F1,A	;
$003F:		E8 10		MOV A,#$10	;
$0041:		C5 FA 00		MOV $00FA,A	;
$0044:		E8 36		MOV A,#$36	;
$0046:		C4 51		MOV $51,A	;
$0048:		E8 01		MOV A,#$01	;
$004A:		C5 F1 00		MOV $00F1,A	;
$004D:		EC FD 00		MOV Y,$00FD	;
$0050:		F0 FB		BEQ $FB [$004D]	;
$0052:		6D		PUSH Y		;
$0053:		E8 38		MOV A,#$38	;
$0055:		CF		MUL YA		;
$0056:		60		CLRC		;
$0057:		84 44		ADC A,$44	;
$0059:		C4 44		MOV $44,A	;
$005B:		90 1A		BCC $0077	;
$005D:		AB 45		INC $45		;
$005F:		3F AE 06		CALL $06AE	;
$0062:		CD 00		MOV X,#$00	;
$0064:		3F A5 05		CALL $05A5	;
$0067:		3F E5 09		CALL $09E5	;


0062: cd 00     mov   x,#$00
0064: 3f a5 05  call  $05a5
0067: 3f e5 09  call  $09e5
006a: cd 01     mov   x,#$01
006c: 3f a5 05  call  $05a5
006f: 3f 16 08  call  $0816
0072: cd 03     mov   x,#$03
0074: 3f a5 05  call  $05a5
0077: e4 51     mov   a,$51
0079: ee        pop   y
007a: cf        mul   ya
007b: 60        clrc
007c: 84 49     adc   a,$49
007e: c4 49     mov   $49,a
0080: 90 0f     bcc   $0091


The part at the end, of course, is the data directly from the disassembler.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Yeah we need one of those, but try and ask Roy about it on #serioushax first. He posted an image of some disassembly with commentary and It'd be a shame if that same work was redone a second time.
Okay, I will. Now if only smkdan would come along and make Addmusic Super Deluxe or something...

...what, you think I'm kidding? He's one of the few people who could actually pull something like that off. But I still think we could combine data from two or more Addmusics and modify it so that it would work on a real SNES. Heck, if the existing free ARAM isn't enough (is that the reason AddmusicM doesn't work properly on bsnes? Overwritten echo buffer?), I for one would be willing to sacrifice some of the echo buffer and be limited to a delay value of $03 in exchange for the other stuff.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Just wanted to say I'm glad you guys are trying to fix this issue the Addmusic have. I admittedly haven't downloaded bsnes until recently, so I didn't even know this problem existed. It feels bad knowing your hack's music wouldn't actually work on a real SNES, and I'm sure I'm not the only one who'd like to see a working Addmusic of some kind.

I don't think I can be of much help in this project, so all I can do is wish you good luck with it.


 
I've been spending the past little bit attempting to disassemble MORE.bin (Carol's, since it seems to be the popular one now), and I must say, it's a mess. It's filled to the brim with subroutine calls and nops, as well as some relatively confusing opcodes which I haven't seen in the SPC700 language yet (i.e. SBC A, !a+Y). I figured since MORE.bin is what actually holds the addmusic commands, a disassembly of it might be extremely useful in the future.

Yeah.
SMW SPC-700 engine disassembly.

Offsets are ARAM absolute.
My blog. I could post stuff now and then

My Assembly for the SNES tutorial (it's actually finished now!)
Originally posted by S.N.N.
I've been spending the past little bit attempting to disassemble MORE.bin (Carol's, since it seems to be the popular one now), and I must say, it's a mess. It's filled to the brim with subroutine calls and nops, as well as some relatively confusing opcodes which I haven't seen in the SPC700 language yet (i.e. SBC A, !a+Y). I figured since MORE.bin is what actually holds the addmusic commands, a disassembly of it might be extremely useful in the future.

Yeah.


Is MORE.bin made by a hacker or is it part of Nintendo's n-spc code from another game that's been butchered to make it work in SMW? I remember some talk of just taking the spc driver from, say, Super Metriod, and altering the commands to be cross compatible with SMW's songs at one point, since I heard SMW uses a special version of n-spc.

As a side note, I find it annoying that most of the extended commands used really just seem to set a DSP registers, so only one command is really even needed at all. Perhaps having addmusic translate extended commands to a general register write command can be used to greatly simplify the content of a MORE.bin hack.
Your layout has been removed.
Waitwaitwait... I don't get it. What's your problem with AddmusicM? You say it's "the worst offender of all Addmusics", but I really can't believe this. Of all three Addmusics AddmusicM was the only one that even worked with BSNES for me at all. On top of that it perfectly supports Echo above $04. Yes, even in BSNES. I tested various "critical" ports that made the game crash (or not play an music) in BSNES using other Addmusics. So what's the problem with AddmusicM? The only problem I'm seeing with AddmusicM so far is that it glitches up some of the samples.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
What I don't fully understand is why is this even an issue? I think the Japanese hackers made addmusic to work on the more popular emulators instead of the more accurate ones because it seems to me that they strive for quality as opposed to quality so you can't blame them. I personally never had any problems with Romi's or Carol's in snes9x and ZSNES. Every time I witnessed a screw-up with Romi's is when I messed something up in the txt file, when I put ADSR or echo on the SFX channels. We all basically know what to expect from one another here on smwc so trying to make it work on accurate emulators is unethical in my opinion considering we know what does what. It's not like we're going to put these ROMs on an actual SNES or put them on the market.
I think a post layout goes here somewhere...
Originally posted by RPG Hacker
Waitwaitwait... I don't get it. What's your problem with AddmusicM? You say it's "the worst offender of all Addmusics", but I really can't believe this. Of all three Addmusics AddmusicM was the only one that even worked with BSNES for me at all. On top of that it perfectly supports Echo above $04. Yes, even in BSNES. I tested various "critical" ports that made the game crash (or not play an music) in BSNES using other Addmusics. So what's the problem with AddmusicM? The only problem I'm seeing with AddmusicM so far is that it glitches up some of the samples.


Can you get me to a rom with addmusicM + echo working? Because it shouldn't be physically possible.
Originally posted by Slash Man
What I don't fully understand is why is this even an issue? I think the Japanese hackers made addmusic to work on the more popular emulators instead of the more accurate ones because it seems to me that they strive for quality as opposed to quality so you can't blame them. I personally never had any problems with Romi's or Carol's in snes9x and ZSNES. Every time I witnessed a screw-up with Romi's is when I messed something up in the txt file, when I put ADSR or echo on the SFX channels. We all basically know what to expect from one another here on smwc so trying to make it work on accurate emulators is unethical in my opinion considering we know what does what. It's not like we're going to put these ROMs on an actual SNES or put them on the market.


People have put romhacks on a real SNES. You know some people are crazy like that. :P Besides that, have you ever heard of "software rot"? It's the phenomena where after a while things just stop working. Usually because the system changes, and any little quirks get fixed or changed. Now the SNES has been out forever, and it will never change. Emulators however, do. Newer ones may, like bsnes, become more accurate to the point where older software written expecting something that an emulator did wrong doesn't work. Yes now snes9x and zsnes are popular and feature these quirks, but what if they are fixed some time down the line or bsnes overtakes them in popularity? That is why code should always be written to work on a snes, even if it doesn't have to be.

And "unethical"? Seriously, what? You are going to have to explain the logic behind this one. A waste of time I can understand, but unethical?
Your layout has been removed.
Originally posted by Kil
Can you get me to a rom with addmusicM + echo working? Because it shouldn't be physically possible.


Yes, I'll send you an IPS of my test hack + the song I used.

The song, as you can see, uses an echo value of $05. Still it works fine in BSNES (I've just tested it once again).

http://rpg-hacker.bplaced.net/SMW/Downloads/Misc/AMMTesthack.rar
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Originally posted by Slash Man
What I don't fully understand is why is this even an issue?

Do you wanna make a SNES game or a game for a magical fantasy system that doesn't exist and who's operation defies logic?
Quote
It's not like we're going to put these ROMs on an actual SNES

Some of us are.


Your post can be responded to with the good old question: If you don't want SNES limits, why not make a PC game? I mean, we're stuck with MIDI music, 256 colors, and a crappy processor.

Besides, it's not like all the features we've come to take for granted are impossible. It'll just require a bit of a rewrite of the NSPC and addmusics in general. The addmusic writers were lazy and abused a blatant emulator bug instead of taking their time to make something that worked.


Offtopic:
Quote
they strive for quality as opposed to quality

Don't you love how the edit button's not working? :D (I understood what you meant though)
Yeah stupid edit post doesn't work but anyway.

Kil, what I meant was you guys are here treating what we do like official Nintendo business when all we're doing is tweaking a ROM file with a game engine that was made 20 years ago. Not to mention that this is only one problem we all should be aware of and with that, avoid the "better" emulators. Like I said though, it's just how I personally see it because I don't even actually hack anymore, all I do is port music.

and Kaijyuu

Same thing, we who port music are limited to MIDI quality sounds and crappy music instruments in the game which is why I never use samples in my ports unless I absolutely have to because with MORE.asm and .bin we can make these crappy instruments sound good without the use of samples. I end up making pseudo echo with echo channels but that's beside the point. This whole MORE.bin and echo problem is really nothing to be this uptight about.
I think a post layout goes here somewhere...
Originally posted by RPG Hacker
Originally posted by Kil
Can you get me to a rom with addmusicM + echo working? Because it shouldn't be physically possible.


Yes, I'll send you an IPS of my test hack + the song I used.

The song, as you can see, uses an echo value of $05. Still it works fine in BSNES (I've just tested it once again).

http://rpg-hacker.bplaced.net/SMW/Downloads/Misc/AMMTesthack.rar


Cool, thanks, I'm going to check as soon as possible. I took another look at another rom earlier and it seems addmusicM moved the echo buffer down beyond the samples, to $B000 somewhere. That's an interesting solution... sacrificing some sample space for more echo buffer. You know, addmusicM might actually work, it just depends on how much sample space you use on custom samples.
addmusicM has some spiffy sample features though, right? I was under the impression it could upload samples mid level and stuff.


If it really works... yay, that saves a lot of work.
The way I see it, I don't really care if stuff is "optimized" so long as "it works good".

Meaning: I'll probably be ok with using songs that use broken echo commands on accurate emulators, and not if it would work perfectly (have no echo problems) on the SNES... but sound bad.

However, I don't want something that will crash the most popular emulators. Although, I do like to have things that work on a real SNES.

or something


Kaijyuu: Yes it can upload samples midlevel, you can LDA #$anyvalue STA $1DFB even, and change to any other song even if it uses BRRs.
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
Yup, I've tried that in my Testrom as well. I've changed #$1DFB every few seconds, also going beyond the original song numbers. The only thing I noticed were small lags when loading a new song (I guess if used in a cutscene or something it wouldn't matter anyways). Also using a number of a non-existing song (like using #$35 for example without actually inserting a song at slot #$35) will freeze the game.

The only downside I noticed about AdddmusicM is that it glitches up certain samples when playing certain songs. I've noticed this, for example, with the Vanilla Dome music or the Bowser Intro. The jumping sound was glitched up.
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Welp, in rpghacker's rom, addmusicM seems to be functioning perfectly. Looks like it moves the echo buffer down beyond the samples. It's set to $D700~$FE00. This is in a different spot from the rom chdata sent me, so I'm assuming the echo buffer resizes itself based on the echo setting, which is a REALLY good thing. For this song in particular since the samples are so small, you could potentially use a really big echo setting, more than $05. Probably an echo of around $09 or $0A. I'm assuming addmusicM will move the buffer up to take advantage of the empty space.

Based on what I've seen now, I have to take back what I said about addmusicM... if you manage your sample space and set your echo setting accordingly, there shouldn't be any problem with it on accurate emulators or real hardware.
So the thing I linked to was just a poorly made port then?
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