Heartcore Project WIP
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
Re: Heartcore Project WIP
It works now! Finally. I have working audio now.
Oh yeah, while I was trying to get this working I had removed the first two bytes from the SPC driver but not the music data, and the result sounded very silly:
(That's fixed now too)
Oh yeah, while I was trying to get this working I had removed the first two bytes from the SPC driver but not the music data, and the result sounded very silly:
(That's fixed now too)
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
-
psycopathicteen
- Posts: 3001
- Joined: Wed May 19, 2010 6:12 pm
Re: Heartcore Project WIP
I just thought maybe instead of moving the sprite inside the tile collision routine, it should make a copy of the old coordinates before entering the collision routine, so for multijointed bosses it doesn't have to recalculate the velocity, just to be added back again.
Re: Heartcore Project WIP
want to quickly mention that the BG scroll I complained about was actually my own machine's fault. Sorry to mislead you!
SNES Tutorials (WLA DX)
SNES Memory Mapping Tutorial (Universal / LoROM) -- By Universal I introduce how memory mapping works, rather than just provide a LoROM map.
SNES Tracker (WIP) - Music/SFX composition tool / SPC Debugger
SNES Memory Mapping Tutorial (Universal / LoROM) -- By Universal I introduce how memory mapping works, rather than just provide a LoROM map.
SNES Tracker (WIP) - Music/SFX composition tool / SPC Debugger
Re: Heartcore Project WIP
Small progress on the editor, which can now read SNES char and palette data. Also this might be among the first 16-bit console hacking/editing tools to be written in something other than Win32?
Animated GIF (thumbnail seems to have glitched so please fullview it):
Animated GIF (thumbnail seems to have glitched so please fullview it):
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
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 opaque colors
- Function for printing a 16-bit hex value to tilemap
- Converted from LoROM to HiROM (primarily for data, code is still executed out of LoROM banks for performance reasons)
- Probably a bunch of other code/under-the-hood improvements
The three hex values I'm printing for debug: Approx remaining cycles (multiply this by 10), vertical beam position on VBlank end, bytes sent by DMA manager (includes 50 bytes per transfer to account for overhead). And the download:
- 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 opaque colors
- Function for printing a 16-bit hex value to tilemap
- Converted from LoROM to HiROM (primarily for data, code is still executed out of LoROM banks for performance reasons)
- Probably a bunch of other code/under-the-hood improvements
The three hex values I'm printing for debug: Approx remaining cycles (multiply this by 10), vertical beam position on VBlank end, bytes sent by DMA manager (includes 50 bytes per transfer to account for overhead). And the download:
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
-
psycopathicteen
- Posts: 3001
- Joined: Wed May 19, 2010 6:12 pm
Re: Heartcore Project WIP
I'm impressed. How did you get the music working so fast, and make it sound so good?
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 really depends on the samples you use. At the beginning of the thread I mentioned I use various VSTs to generate the samples, and Renoise to find loops. Because loop regions on the SPC700 have a resolution of every 16 samples, SNESGSS asks you to detune the samples slightly (the driver will "re-tune" them later) in order to more easily create seamless loops.
Sound quality really depends on the samples you use. At the beginning of the thread I mentioned I use various VSTs to generate the samples, and Renoise to find loops. Because loop regions on the SPC700 have a resolution of every 16 samples, SNESGSS asks you to detune the samples slightly (the driver will "re-tune" them later) in order to more easily create seamless loops.
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
-
psycopathicteen
- Posts: 3001
- Joined: Wed May 19, 2010 6:12 pm
Re: Heartcore Project WIP
Does the actual .gsm file supposed to go in the actual game? (minus the first two bytes)
Re: Heartcore Project WIP
.gsm? Isn't that the extension used for compressed audio by the music player and Luminesweeper for Game Boy Advance? Or is this like .spc where it means both an SPC700 save state and an Authenticode software publisher certificate?
-
psycopathicteen
- Posts: 3001
- Joined: Wed May 19, 2010 6:12 pm
Re: Heartcore Project WIP
That's the type of file snesgss outputs.
About Renoise, does it come with VSTs or do I have to download them seperately?
About Renoise, does it come with VSTs or do I have to download them seperately?
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 offset $200 using standard methods. You start SPC execution at that same offset and then you send it the command that you want to upload a song. It will go back to the uploader firmware. You upload the song you want so it's directly after the SPC driver in memory. After that you can play the song.
Renoise doesn't bundle any VSTs (at least, last I checked) but there are a number that you can download freely (Synth1 is one of these). There are free DAWs as well but I don't have experience rendering VSTs to samples outside of Renoise.
You upload spc700.bin to the SPC at offset $200 using standard methods. You start SPC execution at that same offset and then you send it the command that you want to upload a song. It will go back to the uploader firmware. You upload the song you want so it's directly after the SPC driver in memory. After that you can play the song.
Renoise doesn't bundle any VSTs (at least, last I checked) but there are a number that you can download freely (Synth1 is one of these). There are free DAWs as well but I don't have experience rendering VSTs to samples outside of Renoise.
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
-
psycopathicteen
- Posts: 3001
- Joined: Wed May 19, 2010 6:12 pm
Re: Heartcore Project WIP
I keep looking for Software Synths, I can't find one that works on my computer. They all seem to require 50 other programs just to work.
Re: Heartcore Project WIP
What kind of synths? Do you just want a sample that you can turn into a BRR? I use VST instruments in any kind of free DAW should be able to get you a sample to work with. You can also search for free recordings/samples of synths.
nesdoug.com -- blog/tutorial on programming for the NES
-
psycopathicteen
- Posts: 3001
- Joined: Wed May 19, 2010 6:12 pm
Re: Heartcore Project WIP
These are all the problems I've had so far with DAWs and VSTs.
1) The DAWs don't support VST plugins
2) I get no sound on my computer
3) The DAW or VST require a Midi piano keyboard, which I don't have
4) I get a message saying that I need to pay for the "full" version, just to use a VST plugin
1) The DAWs don't support VST plugins
2) I get no sound on my computer
3) The DAW or VST require a Midi piano keyboard, which I don't have
4) I get a message saying that I need to pay for the "full" version, just to use a VST plugin
Re: Heartcore Project WIP
If you just want to generate samples, you can also use SAVIHost, play some notes with the on-screen keyboard and record the results using Audacity or something similar.