Search found 186 matches

by HihiDanni
Mon May 16, 2016 2:18 pm
Forum: SNESdev
Topic: SPC700 and aliasing (Yes, I want the aliasing)
Replies: 14
Views: 4463

SPC700 and aliasing (Yes, I want the aliasing)

Several months ago, as I was toying with SNESGSS, I noticed that if you play a sample close to the maximum pitch (128khz) it starts to alias. I find this kind of fascinating because I thought this was mostly a Genesis phenomenon. I've already found a couple creative uses for this aliasing and bsnes ...
by HihiDanni
Sun May 15, 2016 7:50 pm
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

I considered doing program bank $c0 with data bank $80 for the sake of convenience (64kb of program, no need to switch banks) but I'm concerned that I might accidentally try to reference some ROM data in the first 32kb. Maybe I can give it a try if I ever run out of the upper 32kb of bank 0.
by HihiDanni
Sun May 15, 2016 7:36 pm
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

The direct page is always in bank 0, regardless of DB (just like the stack). Oh, interesting. So you can use the DP to access RAM even when in a bank like $c0. I assumed you'd have to use long addressing or switch banks. I think I'll still use LoROM-style $80 and friends for most (esp. performance-...
by HihiDanni
Sun May 15, 2016 5:59 pm
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

Made a crash handler for the next time WLA will inevitably write a 16-bit immediate instruction where the register size is guaranteed to be 8-bit and thus cause execution to hit a BRK: SH_CrashHandler.png The text is kinda hard to read. Edit: Doing this thing made me realize, since the direct page r...
by HihiDanni
Sun May 15, 2016 7:53 am
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

Patched version of P2 that runs the InitSNES routine correctly: heartcore_p2a.sfc On synths: You have a few different kinds of synths, including subtractive, FM, and additive. Subtractive synths are probably the easiest to learn. You have a simple waveform and you apply a filter to "subtract&qu...
by HihiDanni
Sat May 14, 2016 12:44 pm
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

.gsm is an SNESGSS project file. This is not the file you include in the ROM. When you export from SNESGSS you get an spc700.bin file - this is the driver you want. For each song there is also a separate music_X.bin file which you include in the ROM as well. You upload spc700.bin to the SPC at offse...
by HihiDanni
Sat May 14, 2016 12:08 pm
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

I'm using SNESGSS as my sound system. I had an exported sound driver for a while but had trouble figuring out how to upload it (it works now, and I made my upload code long-address aware for HiROM since not much point optimizing the upload routine where the SPC is already slow there). Sound quality ...
by HihiDanni
Sat May 14, 2016 11:48 am
Forum: SNESdev
Topic: Heartcore Project WIP
Replies: 42
Views: 11651

Re: Heartcore Project WIP

Sorry for the double post, but I thought I'd post my current progress: - Working SPC driver! - Clean inter-scene memory initialization, so code can expect the first 8kb to start as zeroes (test by pressing Select to restart scene) - VRAM DMA manager - (Non-functional) BG3 HUD, uses HDMA to fake four...
by HihiDanni
Tue May 10, 2016 2:20 pm
Forum: SNESdev
Topic: When can HDMA and DMA be used at the same time?
Replies: 31
Views: 9254

Re: When can HDMA and DMA be used at the same time?

As a programmer, you know your program. You know what's going on. So what's your point? Wishful thinking, unfortunately. If you're using any kind of abstraction layer, you're likely going to be a lot less informed about side effects caused by the underlying implementation. Yes, even the SNES DMA re...
by HihiDanni
Sun May 08, 2016 10:09 am
Forum: SNESdev
Topic: When can HDMA and DMA be used at the same time?
Replies: 31
Views: 9254

Re: When can HDMA and DMA be used at the same time?

If you have a copy of The Lion King , BARRY will tell you. Thanks to this, I now know that I have a 2/1/3 SNES. Edit: Are there any examples of people getting different values on this screen? I've looked around and all I can see is 2/1/3. Any confirmation that this screen is accurate? Edit 2: Found...
by HihiDanni
Sat May 07, 2016 2:50 pm
Forum: SNESdev
Topic: What the heck does "latch" mean?
Replies: 8
Views: 4222

Re: What the heck does "latch" mean?

Hmm, looks like you're right. I removed the instructions dealing with $4201 and it continued to work. For once, it seems like the available documentation has made me overly cautious! Edit: Seems like it was just written confusingly: These values are latched by reading $2137 when bit 7 of $4201 is se...
by HihiDanni
Sat May 07, 2016 8:47 am
Forum: SNESdev
Topic: AtariAge "CPU comparison"
Replies: 146
Views: 29752

Re: AtariAge "CPU comparison"

HDMA should work, since it's basically a mechanism for periodically writing bytes to registers, and these periods can be made long enough for the SPC to process each byte sent over. This means you can have your game doing other stuff with the streaming happening with periodic interrupts instead of t...
by HihiDanni
Sat May 07, 2016 8:40 am
Forum: SNESdev
Topic: AtariAge "CPU comparison"
Replies: 146
Views: 29752

Re: AtariAge "CPU comparison"

SPC can also benefit to have a DMA(or another mecanism) for updating his RAM without using the CPU The SNES can DMA stuff to the APU I/O registers, but the audio-side CPU has to individually read each byte out of these. It would have been nice if the APU could finish the transfer of each byte witho...
by HihiDanni
Sat May 07, 2016 8:13 am
Forum: SNESdev
Topic: AtariAge "CPU comparison"
Replies: 146
Views: 29752

Re: AtariAge "CPU comparison"

The waveform stops updating when the Z80 is paused. On the SPC you're uploading data into a buffer space representing the sample that the DSP is reading continuously. I think the Genesis could have benefited from a PCM buffer rather than relying on a CPU to provide individual updates.
by HihiDanni
Sat May 07, 2016 7:58 am
Forum: SNESdev
Topic: AtariAge "CPU comparison"
Replies: 146
Views: 29752

Re: AtariAge "CPU comparison"

Seeing stuff like the Genesis Z80 getting paused every frame for things such as end-of-frame DMA transfers makes me appreciate how isolated the SPC-700 is from the rest of the system, since it doesn't have to fight over shared resources. On the other hand it means a convoluted upload process and gar...