Heartcore Project WIP

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Heartcore Project WIP

Post by HihiDanni »

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:
WhatDidIEvenDo.ogg
(700.01 KiB) Downloaded 150 times
(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

Post by psycopathicteen »

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.
User avatar
bazz
Posts: 476
Joined: Fri Sep 02, 2011 8:34 pm
Contact:

Re: Heartcore Project WIP

Post by bazz »

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
User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Heartcore Project WIP

Post by HihiDanni »

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):
HCE_CharViewer.gif
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Heartcore Project WIP

Post by HihiDanni »

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).
Screenshot_20160514_144229.png
And the download:
heartcore_p2.sfc
(256 KiB) Downloaded 114 times
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Re: Heartcore Project WIP

Post by psycopathicteen »

I'm impressed. How did you get the music working so fast, and make it sound so good?
User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Heartcore Project WIP

Post by HihiDanni »

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.
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Re: Heartcore Project WIP

Post by psycopathicteen »

Does the actual .gsm file supposed to go in the actual game? (minus the first two bytes)
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Heartcore Project WIP

Post by tepples »

.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

Post by psycopathicteen »

That's the type of file snesgss outputs.

About Renoise, does it come with VSTs or do I have to download them seperately?
User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Heartcore Project WIP

Post by HihiDanni »

.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.
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Re: Heartcore Project WIP

Post by psycopathicteen »

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.
User avatar
dougeff
Posts: 2875
Joined: Fri May 08, 2015 7:17 pm
Location: DIGDUG
Contact:

Re: Heartcore Project WIP

Post by dougeff »

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

Post by psycopathicteen »

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
Revenant
Posts: 455
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: Heartcore Project WIP

Post by Revenant »

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.
Post Reply