Just a quick post to keep you abreast with progress.
Took me quite a while to bug-test the new player code but it's much better now. Previously I'd tried to be clever and write the player code using a big mess of conditional assembly so that I could avoid using indexing and benefit massively from the CPU saving. It was working but the code got so bit that I was in danger of using a whole ROM bank for the player! Given that I've got quite a lot of future plans for NTRQ development this was an unacceptable situation so I bit the bullet and wrote it in a more traditional way (the programmers amongst you will know what I mean). This has meant that the player refresh code does take more CPU time but it's not bad at all. Well, I'm not really the most efficient coder so I'm sure there's plenty of room for improvement.
Plenty of new features have gone in now such as;
- delay command for notes/key-offs as discussed in the other thread.
- master volume & master volume fade command
- override duty table setting from pattern
- a "terminate pattern" command which can be used to end a pattern early before it's natural end
- changed the way notes are entered for DPCM
- added start offset to DPCM
- added loop function to DPCM
- added detune to pitch table commands
Before embarking on rewriting the sections of the manual that are now out-of-date I thought I'd better have a try at making another song from scratch - this always throws up those quirks and bugs that you don't get from more focused feature testing. I was listening to New Order at the time so I tried to do a NES cover of Bizarre Love Triangle. It turned out pretty good (well, i only did the main backing/tune and the vocal melody for the first couple of verses) and NTRQ felt pretty smooth to operate
A few things came up though so I've added a couple of features that help massively;
- pressing START always plays the song from the start
- holding B+A and pressing start sets a marker to start the song from (and plays it from there)
- holding B and pressing start plays the song from the marker
- holding SELECT and pressing START plays and loops the current (editing) song step
and these are "global" keys so it doesn't matter what editing window you are in.
I've also totally redesigned the layout of my CHR bank. I'm now able to display text in inverse (I removed redundant letters and stuff so squeezed enough space). I've already added a couple of uses for this already e.g. the line you are currently editing in the song or pattern is highlighted with inverse and it looks smart. I'm going to have a think of how to use this more in the editors.
Something that did become apparent from making the last song was that I needed a real rethink about the ability to copy and paste in the song editor. You've probably seen copy/paste in action for the patterns in some of the old videos but I never really had the same features for the song editor. You could duplicate a step or you could duplicate a whole song but that was it. WIth the newly added inverse characters I had given myself a way to be able to mark sections of the song and paste (overwrite) or insert that section somewhere else in the song.
And that's what I'm in the middle of doing. I've got the marking function working (but it needs more testing) and also the ability to insert an arbitrary number of steps into an existing song (previously you could only do one at a time with the insert/delete song line function). Just need to screw all that together and I should have a pretty nice copy/paste song lines feature.
Then the rewriting of the manual :S
Right, back to the assembler!