Any good resampler will filter out stuff above the nyquist frequency while resampling, so they shouldn't affect the DMC encoding process anyway, unless you're using a bad resampler?

EQ is super important for DMC encoding though, since all the frequencies compete for that limited 1-bit bandwidth. It's just not possible to encode sounds with arbitrary spectrums, there's an imposed hierarchy with lower frequencies pushing out higher ones. (I wish RJDMC had an interactive EQ.)

Frequencies above the nyquist rate would produce aliasing; that's not really relevant to the DPCM conversion (which is usually reduced to just the minimal problem of "convert one 8+bit sample in to one 1-bit sample out").

A lot of the problem is that the naïve DPCM conversion accidentally prefers to encode low frequencies and slew rate distortion in preference to higher frequencies; this can be worked around by bandlimiting the input. It doesn't necessarily have to be high- or low- passed, just narrowband.

DPCM is roughly equivalent to a 1-bit DAC that goes through an integrator; this integrator in turn acts as a lowpass with infinitely low corner frequency. (In the NES, DPCM only has a 6-bit range so that's not entirely accurate). I once made a conversion tool that attempted to take this into account (returning the sign of the first backwards difference instead of the naïve "trace the PCM waveform" algorithm), but it had problems with railing.

Originally, I only put level data in the last CHR bank, but I'm getting a little nervous about PRG-ROM space left...I had about 1700 ($6C0) bytes left, but I am going to add another song 500+ bytes and all the logic for enemy moves, and a few other details, sprite definitions... I wasn't sure if it would fit.

Anyway, I put all my RLE files (non-level backgrounds, exported from NES Screen Tool) in the end of the 3rd CHR-ROM bank. Freed up about 1000 bytes. Now I can relax and program all the enemy moves.

Man, I didn't think I would run out of PRG-ROM so fast.

I'd say the game is 80% done.

_________________nesdoug.com -- blog/tutorial on programming for the NES

Here's a preview. I have the hero animations done, and most of the enemy animations done. Here's some tests of the enemy moves.

This is coming together very smoothly, due to some forethought. I wrote a bunch of generalized functions called "collision_down" and "ladder_below" for the hero to use. The enemies are using the same functions to decide if they are on a platform, or over a ladder.

I will probably do a few palette changes in later stages, to indicate that the enemy is a slightly harder version (faster, more aggressive).

Who is online

Users browsing this forum: No registered users and 1 guest

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