It is currently Wed Nov 22, 2017 9:00 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 30 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Thu Aug 08, 2013 9:39 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5829
Location: Canada
The debut album from the new label Bit Puritans released today! This is a 17-track compilation album of NES music, and I'm proud to have been a part of it.

The NES cartridge version is now available, as of April 21, 2014. Video: https://www.youtube.com/watch?v=CYKenZOpTF0

http://bitpuritans.bandcamp.com/album/2a03-puritans
Image


1. jrlepage - Introduction
2. bradsmith - dry up and tumble on
3. ipi - Garten
4. TQ-Jam - Milky Fields
5. Doxic - Pollution
6. commandycan - Sky Bus For Hire
7. HertzDevil - Extends Levant
8. Jangler - Tide/Grotto
9. TristEndo - Be water my friend
10. kfaraday - The Bloop
11. stinkbug - Dreamgate
12. gyms - Magmo's Magical Ingot
13. Moot Booxlé - Ouroboros
14. Fearofdark - An Earth made of Molten Rock
15. chipchop - the robot emptiness
16. Zan-zan-zawa-veia - Dove Dome
17. KungFuFurby - Null and Void

No emulators, no expansions. All recordings were made from a real 2A03.

Compilation ROM/NSF/NSFe available: http://rainwarrior.ca/projects/nes/2a03puritans.html
Source code available in: this thread


Last edited by rainwarrior on Wed Apr 23, 2014 9:22 pm, edited 5 times in total.

Top
 Profile  
 
PostPosted: Fri Aug 09, 2013 2:50 pm 
Offline
User avatar

Joined: Thu Sep 07, 2006 1:08 pm
Posts: 543
Location: United States
rainwarrior wrote:
The debut album from the new label Bit Puritans released today! This is a 17-track compilation album of All recordings were made from a real 2A03.

Awesome! I'm giving this a listen.

By the way, how do you record this?

I want to make my album(s) real 2a03 recordings, but I don't know the best way to go about doing it.

So far I have: PowerPak -> NES -> Audio of AV to Line-in on computer. Is that it? Would people not mind the hum? :?

_________________
Ruling the World One Bean™ at a Time...


Top
 Profile  
 
PostPosted: Fri Aug 09, 2013 3:04 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19251
Location: NE Indiana, USA (NTSC)
To minimize hum, set the background color to $0D and disable rendering before you start the recording.


Top
 Profile  
 
PostPosted: Fri Aug 09, 2013 3:18 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5829
Location: Canada
Interesting advice. If I'm someday in the mood to rebuild the PowerPak's NSF player I might try it.

I didn't record this one, jrlepage did, but it's probably a setup close to what you described.


Top
 Profile  
 
PostPosted: Sat Aug 10, 2013 1:07 am 
Offline
User avatar

Joined: Thu Sep 07, 2006 1:08 pm
Posts: 543
Location: United States
tepples wrote:
To minimize hum, set the background color to $0D and disable rendering before you start the recording.

Is that what Loopy did here? I'd wish I'd gotten the link when I could. :(

As for the album, HertzDevil devilers some great content as always! :)

_________________
Ruling the World One Bean™ at a Time...


Top
 Profile  
 
PostPosted: Wed Aug 21, 2013 12:10 am 
Offline

Joined: Wed Apr 04, 2012 2:15 am
Posts: 24
All tracks except for 3, 15 and 17 were recorded using my Famicom and my TNS-HFC3 cart's built-in 1/8" jack. Tracks 3, 15 and 17 were recorded using my Power Pak and my NES's AV out signal (because of incompatibility with the TNS-HFC3 hardware).


Top
 Profile  
 
PostPosted: Wed Aug 21, 2013 6:34 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1925
Location: WhereverIparkIt, USA
I take it there is no plan for a cartridge release? Pretty good stuff, nice work guys!

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
PostPosted: Wed Aug 21, 2013 7:48 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5829
Location: Canada
Do you want to help build one? It'd basically need a hardware version of the NSF mapper, and I think we'd need ~2MB ~1MB of ROM. I'd be willing to code a menu and whatnot to show some graphics, but the idea of building the mapper hardware is daunting to me.


Last edited by rainwarrior on Thu Aug 22, 2013 5:36 am, edited 2 times in total.

Top
 Profile  
 
PostPosted: Wed Aug 21, 2013 7:57 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19251
Location: NE Indiana, USA (NTSC)
FamiTracker, for one, supported output to .nes last time I checked.


Top
 Profile  
 
PostPosted: Wed Aug 21, 2013 8:01 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5829
Location: Canada
It does not export to NES if the track is bankswitched (which almost all of these are). If I didn't have to worry about bankswitching I could just do it with an oversized AxROM kinda mapper.


Top
 Profile  
 
PostPosted: Wed Aug 21, 2013 9:05 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1925
Location: WhereverIparkIt, USA
rainwarrior wrote:
Do you want to help build one? It'd basically need a hardware version of the NSF mapper, and I think we'd need ~2MB of ROM. I'd be willing to code a menu and whatnot to show some graphics, but the idea of building the mapper hardware is daunting to me.


I'd love to.

I'm not really sure how the whole NSF mapper/player thing is setup though... Is this the best documentation we have on it?

Loopy's source has some mention of counters and such.

I'm having a hard time wrapping my head around how this whole thing works. It's sounding like it all depends on the nsf player you create that will play .nsf files. From what I gather there is no specific 'nsf mapper'. To some degree we'd be creating a nsf player that was most easily played on low cost hardware.

Perhaps branching off to another topic is in order. I'd be interested, and I think should be possible with some of the stuff I have right now. Just need to better understand the 'mapper' and what options we do and don't have without making a ton of work.

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
PostPosted: Thu Aug 22, 2013 5:32 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5829
Location: Canada
Oh, well there's really only a few things we actually require. The wiki page for NSF outlines the complete NSF mapper, but what we'd need for this project specifically:

1. 8 x 4k switchable banks from $8000-FFFF. The banks are addressed by 8 registers accessed at $5FF8-5FFF. It looks like we need to address 1MB worth of ROM (our combined NSF data is ~760k), so they'll need be 8-bit bank select registers. These registers could be moved if necessary, but it'd be easiest if they were at the standard address.

2. The NSF spec expects RAM at $6000-7FFF, though I'm not sure if it's needed for this project. I don't believe that Famitracker NSFs depend on that RAM, but there are tracks from PPMCK and IT2NSF that I need to investigate a little. I think it's likely this RAM isn't needed (will report back later).

2. CHR-RAM would probably be the easiest way to do the visual stuff for this, so we wouldn't need any additional hardware logic to swap tiles. You could take your pick w.r.t. mirroring (vertical, horizontal, whatever), it doesn't need to be dynamic.

Edit: none of the NSFs require the RAM at $6000-7FFF so that part of the spec can be dropped.

Also, is it possible to initialize the top bank register to $FF on reset? I'm not sure if it's feasible to stick a reset stub into every bank of the NSFs.


Top
 Profile  
 
PostPosted: Thu Aug 22, 2013 7:09 am 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1925
Location: WhereverIparkIt, USA
Not sure how I missed the dedicated wiki... I was looking over kevtris' doc on the format after my post. While I'd probably need to make a few modifications to my current setup now is ideal timing to lay this out since I'm making other changes to my v1 board right now as well.

rainwarrior wrote:
1. 8 x 4k switchable banks from $8000-FFFF. The banks are addressed by 8 registers accessed at $5FF8-5FFF. It looks like we need to address 1MB worth of ROM (our combined NSF data is ~760k), so they'll need be 8-bit bank select registers. These registers could be moved if necessary, but it'd be easiest if they were at the standard address.

Not much issue allowing for this. Only adaptation needed is splitting PRG A12 for 4KB banks. However moving the banks would be helpful.

Code:
NSF    Address      Register
====   ==========   ========
$070   $8000-8FFF   $5FF8
$071   $9000-9FFF   $5FF9
$072   $A000-AFFF   $5FFA
$073   $B000-BFFF   $5FFB
$074   $C000-CFFF   $5FFC
$075   $D000-DFFF   $5FFD
$076   $E000-EFFF   $5FFE
$077   $F000-FFFF   $5FFF

I understand these register locations were chosen to not conflict with WRAM and existing sound chip's registers. But this sucks up too much i/o to stay low cost since it'd require PRG A0-3 as inputs. PRG A0 might be okay, but A1, A2, and A3 are too costly. since we already require A12-A14 for decoding I'd suggest something like registers $8000, $9000, $A000 etc. Basically just line up the reg with the bank it controls. Could use $5000, $6000, $7000 as well possibly for other functions, or leave as options to de-conflict for other sound extension registers if desired in the future.

Quote:
2. CHR-RAM would probably be the easiest way to do the visual stuff for this, so we wouldn't need any additional hardware logic to swap tiles. You could take your pick w.r.t. mirroring (vertical, horizontal, whatever), it doesn't need to be dynamic.

Agreed. Nice and easy, no changes needed. 8KB CHR-RAM and fix H/V/one-screen mirroring all requires no I/O from the mapper, so that sounds like the best route for this.

Quote:
Edit: none of the NSFs require the RAM at $6000-7FFF so that part of the spec can be dropped.

Also, is it possible to initialize the top bank register to $FF on reset? I'm not sure if it's feasible to stick a reset stub into every bank of the NSFs.

It's no problem to initialize any/all of the banks to the last bank at power on. Reset is a little more tricky/costly since you'd need another i/o to sense reset and possibly some discrete components. If it helps, since there isn't WRAM, fixing the last 4-8KB of ROM to $6000-7FFF would be pretty easy. So you'd only need a JMP $6000-7FFF stub in each bank that was ever placed at $F000-FFFF. You wouldn't need the stub in every bank, just the banks that might be there if the user hit reset.

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
PostPosted: Thu Aug 22, 2013 7:22 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5829
Location: Canada
Yeah, a bank register addressed at each 4k page would be fine.

Yeah, if the high bank is initialized at powerup that should be enough. I'm sure I could manage a stub in every bank that's mapped there. The problem I was concerned about was having to put a stub in all the banks.

There's probably no need to map anything to $6000. It might be a convenient place for some player code, but since $8000-BFFF is available to swap some code in anyway, it's not necessary.


Top
 Profile  
 
PostPosted: Thu Aug 22, 2013 9:20 am 
Offline

Joined: Wed Jul 09, 2008 8:46 pm
Posts: 238
Hello. I am one of the composers from the soundtrack. :wink:

With a couple of exceptions, the majority of the tracks were made in Famitracker. The exceptions are TQ-Jam's (which is done with MML) and my song, which was made with Schism Tracker and then converted to .nsf file via mukunda's it2nsf.

The documentation for it2nsf states that the memory mapping to $E000-FFFF must not be changed outside of its music routine. That's the DPCM data access. $A000-CFFF is not used in it2nsf.

I don't know what the other ones use for memory mapping, but as long as you don't accidentally switch the banks used for DPCM (I'd think that would be the only place not to touch the bank switches), I think you should be good.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 30 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group