GithubHelp home page GithubHelp logo

nes-audio-tests's Introduction

nes-audio-tests

Test ROMs and NSFs for NES and Famicom expansion audio. This collection is for testing various details of audio, and verifying emulator implementation. Pre-built ROMs can be found in the build/ folder.

Relative volume tests:

  • db_apu - Full volume APU square vs. APU triangle.

  • db_vrc6 - Full volume APU square vs. full volume VRC6 square. Hotswap.

  • db_vrc7 - Full volume APU square vs. full volume VRC7 pseudo-square (2:1 modulator at 50%, full feedback). Hotswap.

  • db_fds - Full volume APU square vs. full volume FDS square. Hotswap.

  • db_mmc5 - Full volume APU square vs. full volume MMC5 square. Hotswap.

  • db_n163 - Full volume APU square vs. full volume N163 square, 1 channel mode. Hotswap.

  • db_5b - Full volume APU square vs. volume 12 5B square. Hotswap.

    I am collecting results from these volume tests for a survey. Information is available here:

Hotswap test ROMs are to be loaded on a suitable dev cart. On reset they copy their code to RAM and begin executing there. A buzz will be played through the DMC channel to indicate it is ready, and it will wait ~4 seconds for you to pull out the cartridge, then insert an appropriate expansion audio cartridge. Another buzz will indicate the code is still running before the test begins. After completing the cart will repeat the test. (Hotswapping frequently causes a crash, so it may take multiple attempts.) NROM versions of the hotswap ROMs may be used if the dev cart does not support the original mapper.

Some people are uncomfortable with the idea of hotswapping cartridges. It has been safe in my experience, doing it hundreds of times, but I cannot guarantee it's a 100% safe procedure. All I can say is that it's been worth the risk for me to be able to test these things. Do not hotswap your cartridges if you don't accept this risk.

Other tests: (these are not survey tests, merely part of my personal ongoing investigations)

  • patch_vrc7 - Comparison of prospective VRC7 built-in patch set against the actual set. (reference recording)
  • clip_vrc7 - Demonstration of clipping in the VRC7 amplifier. (commentary)
  • clip_5b - Demonstration of nonlinearity in the 5B amplifier. (commentary)
  • noise_vrc7 - White noise to characterize the VRC7 filters.
  • noise_5b - White noise to characterize the 5B filters, other frequency tests.
  • sweep_5b - Frequency sweep and noise to characterize the 5B filters. (Good for APU too. commentary)
  • envelope_5b - Frequency and phase reset verification for 5B envelope, other frequency verification.
  • phase_5b - Tone phase behaviour for 5B.
  • nsf_init_y - 8 bit beep readout of Y register value passed to INIT.
  • tri_silence - Tests various ways of silencing the triangle, clarifies interaction between $4008/400B and linear counter.
  • test_vrc7 - Examines properties of the VRC7 "test" register $0F.
  • test_n163_longwave - Tests long period values of N163 often neglected by emulators.
  • dac_square - Tests the linearity of the square channel DAC. (commentary)
  • dac_tnd0,1,2,3 - Tests the linearity of the triangle/noise/DMC channel DAC. (commentary)

NSF2 tests: (to test NSF players for NSF2 support)

  • nsf2_init_play - The non-returning INIT and NMI-driven PLAY feature.
  • nsf2_init_no_play - The non-returning INIT and suppressed PLAY feature.
  • nsf2_irq - The IRQ feature.
  • nsf2_saw_song - DMC IRQ saw wave test by Blargg

Notes:

  • swap.s - common code for hotswap tests
  • lfo_vrc7.s - retracted test using VRC7 chip reset, which did reset tremolo LFO but not vibrato. Test register at $0F can do this better, see test_vrc7.s instead.
  • NESDev Forums: Famicom expansion hardware recordings - old thread with some hardware recordings still available.

Building:

License:

  • These files may be freely redistributed and modified for any purpose. Credit to the original author and/or a link to the original source would be appreciated, but is not required.

nes-audio-tests's People

Contributors

bbbradsmith avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.