Working with Audio and Video

Managing Media Files


brew install ffmpeg mediainfo mkvtoolnix mp4box

Handbrake Subler

mv SublerCLI /usr/local/bin/SublerCLI

Identifying Problems in Files

mediainfo source.mkv

Convert Audio

Extract AC3 / DTS

ffmpeg -i video.mkv -acodec copy audio.ac3

Convert ...

Working with VRAM - Initializing Tiles and Tile Maps

Now in this part of the series, we'll actually be.. Working with VRAM. :)

What We're Covering

Now we're going to actually upload data to the Video RAM. Now, there's 2 things that need to go to VRAM, and that's the tile data itself, and the tile map, which says where specific tiles will be displayed on the screen. Now let's do it.

!!VERY IMPORTANT!! Each address in VRAM is A WORD IN ...

Schematics, Ports, and Pinouts

This is a document intended to describe the various hardware ports on the SNES. It will not describe how these ports are used by what may be plugged into them.

In the doc below, "active", "1", "logic-1", and so forth all mean the same thing. Note that "1" does not necessarily correspond to either high or low voltage. (BTW, i could use some help here: if anyone know ...

Using the NMI-VBLANK

Earlier we made an interrupt table which assigned addresses for the SNES interrupts. We assigned the address to an empty handler that just returned for every interrupt except the NMI (VBLANK) interrupt. This interrupt occurs whenever the T.V.'s tracer is not tracing to the screen, making it safe to edit data in VRAM and update the screen. Not waiting for VBLANK can create awful results on the scre ...

Making a Small Game - Tic-Tac-Toe

When you have finished this tutorial, you will have written a small game. Things you have to know before you start:

  • 65816 assembly
  • Interrupts (What are NMI and VBlank)
  • What is VRAM, CGRAM, and their basic structures
  • What is DMA and how to use it
  • Video modes (mode 0), using backgrounds
  • How to get information on player input
  • Optional: Using 16x16 tiles

If you have problems ...

Satellaview AV selector

Satellaview AV Selector

The satellaview AV selector was conceived in order to prepare the decoded satellite signal for the satellaview, prevent the super famicom from monopolizing the TV's AV input, and allow for the use of a second BS decoder along with the one provided by ST. Giga. As is evident in the following diagram, the selector's internal circuit can be divided in three discrete units, ...

ikari_01's SNES Debugging - Drakkhen II Text Compression

The text is taken from the video pages.

Part 1

This is just a little experiment and totally unrelated to sd2snes.

I was asked to figure out the text compression used in Dragon View (Drakkhen II). Another user suggested that I record the process to show him the way I approach something like that. So I started a screen recorder and got to work.

Part 1 covers poking around in the RAM ...

Kiddo and Seru-kun's Satellaview Homebrew convo logs (Header, Registers, etc.)

<Seru-kun> Anyway, want to see a working Satellaview homebrew on video ? <Kiddo> Sure, although the ROM'd probably be quicker. <Seru-kun> -Seru-kun- DCC Send SatellaviewTest2Working.rar (

  • Seru-kun has offered SatellaviewTest2Working.rar (1076 bytes)
  • DCC RECV connection established to Seru-kun []
  • DCC RECV Satel ...


Address Bus B Registers

TODO: note on fast access time

Register Address Name Style Access Timing
Screen Display Register $2100 INIDISP single write any time
Object Size and ...