(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-02-24 02:30 AM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - A quick SPC700 RAM question. New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
Unicorn_Poop

Micro-Goomba


 





Since: 12-21-05
From: Knox-Vegas

Last post: 6456 days
Last view: 6456 days
Posted on 08-21-06 10:59 PM Link | Quote
How much RAM is at your disposal when working with the SPC700?

I have read conflicting views on this.

The SNES manual says that there is 512K bits installed on board, but lists only addresses $0000 - $7FFF as the 'Standard Transmission Area,' whatever that means.

I have read documentation that states anything above $8000 is unusable.

However I have looked at the APU RAM in SNES9x's debugger and it appears a full 64K Bytes are usable.

The only thing I can figure is that you can only access addresses $0000-$7FFF when sending data from the SNES CPU, and that the rest of the RAM can only be used by the APU-IC.

Please tell me if I am right, or at least the facts.

Thanks.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6283 days
Last view: 6282 days
Posted on 08-22-06 04:52 AM Link | Quote
All 64KB is usable. Originally, the design was for 32KB, but at the last minute the design was change to double that amount. hence, 64KB SPC700 dumps.
GeckoYamori

Koopa








Since: 11-25-05

Last post: 6297 days
Last view: 6282 days
Posted on 08-22-06 12:24 PM Link | Quote
You can override the 64kb limit. Most games that didn't ended up sounding pretty shitty.
Yoronosuku

Toss Tortoise


 





Since: 11-17-05
From: Massachusetts is my new home..

Last post: 6282 days
Last view: 6282 days
Skype
Posted on 08-22-06 12:31 PM Link | Quote
Um, no you can't. The SPC700 has 64kb of ram. That's it.
GeckoYamori

Koopa








Since: 11-25-05

Last post: 6297 days
Last view: 6282 days
Posted on 08-22-06 02:38 PM Link | Quote
There is a workaround, it has been used by numerous composers. I think it's some sort of compression technique.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6283 days
Last view: 6282 days
Posted on 08-22-06 03:04 PM Link | Quote
I believe it's called uploading only what you need at any one time.

I think Chrono Trigger did that.. I think it actually had three different binaries that were uploaded to the SPC700 RAM as needed.
Unicorn_Poop

Micro-Goomba


 





Since: 12-21-05
From: Knox-Vegas

Last post: 6456 days
Last view: 6456 days
Posted on 08-22-06 03:21 PM Link | Quote
Good, 64K bytes of RAM. That's what I needed to know.

But now a new question pops into mind.

Once you have uploaded the initial data to the APU-RAM, can you overwrite the IPL-ROM?

I know it's called ROM and it's only $40 bytes, but for the sake of completeness, it would be good to know.

If no one has answer for this, I'll just try to construct a APU loading program and test it out. But then again there is nothing that says emulators are perfect copies of the SNES.
GeckoYamori

Koopa








Since: 11-25-05

Last post: 6297 days
Last view: 6282 days
Posted on 08-23-06 11:07 AM Link | Quote
Originally posted by Sukasa +
I believe it's called uploading only what you need at any one time.

I think Chrono Trigger did that.. I think it actually had three different binaries that were uploaded to the SPC700 RAM as needed.


I think that's different from compression. Isn't that how they made the Star Ocean score? Hence why it couldn't be ripped correctly as SPCs. However many other soundtracks that use more than 64kb have been ripped without any problems, Actraiser for example.
Sukasa

Birdo
Not quite as active as before.
Xkeeper supporter
Xk > ||bass
I IP Banned myself! Twice!








Since: 11-17-05
From: Somewhere over there

Last post: 6283 days
Last view: 6282 days
Posted on 08-23-06 04:02 PM Link | Quote
Yea, it's not compression.

Oh, and you can't overwrite the IPL ROM... but thewre is a certain hardware register you can set to disable it and access the RAM it was overwriting.
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6282 days
Last view: 6282 days
Posted on 08-23-06 04:17 PM Link | Quote
SPC700 samples use BRR compression. Some games also streamed sound (upload audio data to the SPC700 in realtime), which makes it impossible to make a .spc dump of them.
DJ Bouche

Koopa


 





Since: 11-22-05
From: Bligh Park, NSW, Australia

Last post: 6444 days
Last view: 6444 days
Posted on 08-24-06 06:26 AM Link | Quote
The SPC700 is directly linked to the main CPU via 4 8-bit I/O ports. Through these the two can communicate (providing programs at both ends send/receive). Many early games had banks of the entire game's set of music loaded into the SPC700 bank the whole entire game. Some games would have 1-3 banks, and when a song from a particular bank was needed, it would load that bank (eg. Zelda 3, SMAS, SMW). Later, games would upload only the current song that was playing, giving the song much more space to use as you weren't restricted to having a whole set of songs in one bank. Other games, would have even more complex ways of communicating with the SPC rather than just sending a mere song number through the I/O port, or a command to play certain song at certain address in the SPC-RAM... these games would have music data streamed through the I/O ports in real time and/or upload samples into the SPC-RAM as they are needed. These are currently the games that cannot be ripped in the SPC format. (We need a more xSF like format with this, that emulates BOTH the main CPU and the APU).

To answer your question, as far as I know, and as far as I can remember all of $0100-FFFB is available. $F4-$F7 are the I/O ports I mentioned, other are probably vectors, I can't remember much about < $0100. $FFC0-$FFFF is boot code which is the initial state of the SPC700, a simple program that will accept the standard uploads from the main CPU.
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - A quick SPC700 RAM question. |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.016 seconds; used 397.31 kB (max 491.60 kB)