Nintendo. January 21, 2004 Good Emulators I will place links to all of these emulators on the webpage. Mac OSX The latest version of RockNES

Similar documents
January 21, Nintendo. Bob Rost January 21, 2004

Traditionally video signals have been transmitted along cables in the form of lower energy electrical impulses. As new technologies emerge we are

Ch. 1: Audio/Image/Video Fundamentals Multimedia Systems. School of Electrical Engineering and Computer Science Oregon State University

2.4.1 Graphics. Graphics Principles: Example Screen Format IMAGE REPRESNTATION

iii Table of Contents

Multimedia Systems Video I (Basics of Analog and Digital Video) Mahdi Amiri April 2011 Sharif University of Technology

Designing Custom DVD Menus: Part I By Craig Elliott Hanna Manager, The Authoring House at Disc Makers

VIDEO Muhammad AminulAkbar

Chapter 3 Fundamental Concepts in Video. 3.1 Types of Video Signals 3.2 Analog Video 3.3 Digital Video

Television History. Date / Place E. Nemer - 1

Video Scaler Pro with RS-232

VGA to Video Converter ID# 424 Operation Manual

Digital Media. Daniel Fuller ITEC 2110

INTERLACE CHARACTER EDITOR (ICE) Programmed by Bobby Clark. Version 1.0 for the ABBUC Software Contest 2011

EZwindow4K-LL TM Ultra HD Video Combiner

Video to SXGA Converter Box ID#475

ESI VLS-2000 Video Line Scaler

!"#"$%& Some slides taken shamelessly from Prof. Yao Wang s lecture slides

MULTIMEDIA TECHNOLOGIES

To discuss. Types of video signals Analog Video Digital Video. Multimedia Computing (CSIT 410) 2

ILDA Image Data Transfer Format

AC335A. VGA-Video Ultimate Plus BLACK BOX Back Panel View. Remote Control. Side View MOUSE DC IN OVERLAY

An Overview of Video Coding Algorithms

Design of VGA Controller using VHDL for LCD Display using FPGA

Types of CRT Display Devices. DVST-Direct View Storage Tube

Display Systems. Viewing Images Rochester Institute of Technology

ANTENNAS, WAVE PROPAGATION &TV ENGG. Lecture : TV working

Computer Graphics. Raster Scan Display System, Rasterization, Refresh Rate, Video Basics and Scan Conversion

NAPIER. University School of Engineering. Advanced Communication Systems Module: SE Television Broadcast Signal.

Multimedia. Course Code (Fall 2017) Fundamental Concepts in Video

ILDA Image Data Transfer Format

Fundamentals of Multimedia. Lecture 3 Color in Image & Video

OPERATING GUIDE. HIGHlite 660 series. High Brightness Digital Video Projector 16:9 widescreen display. Rev A June A

BRITE-VIEW BLS-2000 Professional Progressive Scan Video Converter

Watch PC Desktop or Play PC Game on your TV

1. Broadcast television

Module 1: Digital Video Signal Processing Lecture 3: Characterisation of Video raster, Parameters of Analog TV systems, Signal bandwidth

Lecture 2 Video Formation and Representation

10 Digital TV Introduction Subsampling

CS 4451A: Computer Graphics. Why Computer Graphics?

Downloads from:

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 5 CRT Display Devices

User's Manual. Rev 1.0

CS2401-COMPUTER GRAPHICS QUESTION BANK

Design and Implementation of an AHB VGA Peripheral

Audio and Video II. Video signal +Color systems Motion estimation Video compression standards +H.261 +MPEG-1, MPEG-2, MPEG-4, MPEG- 7, and MPEG-21

Learning to Use The VG91 Universal Video Generator

AC334A. VGA-Video Ultimate BLACK BOX Remote Control. Back Panel View. Side View MOUSE DC IN BLACK BOX ZOOM/FREEZE POWER

Understanding Human Color Vision

Understanding Digital Television (DTV)

Spatio-temporal inaccuracies of video-based ultrasound images of the tongue

ELSA WINNER Series M a n u a l

Scan Converter Quick Installation Guide

CYPRESS TECHNOLOGY CO., LTD.

Motion Video Compression

TV Character Generator

Computer Graphics Hardware

VIDEO 101: INTRODUCTION:

Introduction & Colour

Communication Theory and Engineering

Mahdi Amiri. April Sharif University of Technology

Digital Media. Daniel Fuller ITEC 2110

PROFESSIONAL D-ILA PROJECTOR DLA-G11

MVP. Instruction Manual MVP-50 MVP-100 MVP-150

EECS150 - Digital Design Lecture 12 Project Description, Part 2

PLUSTV 1680ex USER S MANUAL

Monitor and Display Adapters UNIT 4

decodes it along with the normal intensity signal, to determine how to modulate the three colour beams.

7thSense Design Delta Media Server

Hardcopy. Prerequisites. An understanding of the nature of color and visual communication, and an appreciation of what makes an effective image.

Chrominance Subsampling in Digital Images

Pablo II. The Picasso IV video-encoder. Manual. 18 August Copyright c 1997 Village Tronic Marketing GmbH Mühlenstraße Sarstedt Germany

Part 1: Introduction to Computer Graphics

10. Sample Windows Control Panel Software(RS-232 version only) x 4A battery

COGS 119/219 MATLAB for Experimental Research. Fall 2017 Image Processing in Matlab

Reading. 1. Displays and framebuffers. History. Modern graphics systems. Required

Objectives: Topics covered: Basic terminology Important Definitions Display Processor Raster and Vector Graphics Coordinate Systems Graphics Standards

Video Compression. Representations. Multimedia Systems and Applications. Analog Video Representations. Digitizing. Digital Video Block Structure

STPC Video Pipeline Driver Writer s Guide

Video to 1080i High Definition RGB Component Converter/Scaler ID# 499

MaxView Cinema Kit Quick Install Guide

3. Displays and framebuffers

General Items: Reading Materials: Miscellaneous: Lecture 8 / Chapter 6 COSC1300/ITSC 1401/BCIS /19/2004. Tests? Questions? Anything?

Television System. EE 3414 May 9, Group Members: Jun Wei Guo Shou Hang Shi Raul Gomez

Quick Start Guide Revision 1A

Warranty and Registration. Warranty: One Year. Registration: Please register your product at Port, or. or Windows.

Manual Version Ver 1.0

Essentials of the AV Industry Welcome Introduction How to Take This Course Quizzes, Section Tests, and Course Completion A Digital and Analog World

Why Does it Have to Be So Hard?

Multimedia Systems Video I (Basics of Analog and Digital Video) Mahdi Amiri November 2015 Sharif University of Technology

Presented by: Amany Mohamed Yara Naguib May Mohamed Sara Mahmoud Maha Ali. Supervised by: Dr.Mohamed Abd El Ghany

Formatting Dissertations or Theses for UMass Amherst with MacWord 2008

Instruction Guide. The TV Jockey Computer Monitor TV Tuner with Remote COMP2VGATVGB. The Professionals Source For Hard-to-Find Computer Parts

Instructions when using for the first time 1. Installation (3) 2. Using the Televiewer (4)

Programs. onevent("can", "mousedown", function(event) { var x = event.x; var y = event.y; circle( x, y, 10 ); });

Checkpoint 2 Video Encoder

User Manual. Model 1365 Video Scaler

High-resolution screens have become a mainstay on modern smartphones. Initial. Displays 3.1 LCD

This is a support manual for the GBS-8220 which comes in a one vga port and two port version.

5.1 Types of Video Signals. Chapter 5 Fundamental Concepts in Video. Component video

Transcription:

98-026 Nintendo. January 21, 2004 Good Emulators I will place links to all of these emulators on the webpage. Mac OSX The latest version of RockNES (2.5.1) has various problems under OSX 1.03 Pather. You may want to use 2.4.0 instead. Nestopia seems to work well, but it requires a fast computer. Windows JNes works rather well, and it has good display options and speed. FCE Ultra has the most accurate emulation I have seen in Windows. Linux FCE Ultra for Linux should work as well as the Windows version Playstation / Playstation 2 imbnes was written by Allan Blomquist, a student in this class. Reports are that it works very well. Dreamcast NesterDC can be used for the Sega Dreamcast. Pixels The basic unit of a computer image. A single dot of color Resolution The number of pixels in an image, or on a display, such as a monitor, television, or projector. Usually written as Width x Height Common screen resolutions 640x480: VGA computers, US television 800x600: SVGA computers, European television 1024x768: SVGA computers NES resolution 248x240 visible From the programmer's perspective, the NES has a resolution of 256x256, but it chops off 8 pixels on each side, and 16 pixels on the bottom. Television NTSC (North America), NTSC-J (Japan) "National Television Standards Committee" 29.97 fps (frames per second), interlaced 640x480 resolution PAL (Europe) "Phase Alternating Line" 25 fps interlaced 800x600 resolution Most displays, including televisions, are drawn one pixel at a time, starting from the upper left corner. The electorn beam inside the display draws one row at a time, then moves down to draw the next row, like written English.

Interlaced displays, such as televisions (but not computers), will draw every second row, then go back to fill in the skipped rows. Each scan of the screen (which draws half the lines) is called a field, and there are two interlaced fields per frame. An interlaced display at 30 frames per second will therefore display 60 fields per second. In standard video, the two fields in a frame occur at slightly different times, 1/60 of a second apart. RF (Radio Frequency), RCA, S-Video RF is a method of connecting older game consoles or VCRs to a television. The video and audio signals are transmitted together, normally on channel 3 or 4, just like television stations broadcasting over airwaves or through cable. RCA connectors are a method of connecting devices to a television that generally yields a better image than RF. The video and each audio channel have their own phono plug that carries signal from the device to the television. By convention, video uses a yellow plug, left audio white, and right audio red. S-Video connectors transmit higher quality video than RCA by separating the brightness and hue components of a video image. The connector itself looks similar to a mouse or keyboard connector from a computer. Audio is usually still transmitted over RCA cables. Color Space CMYK Cyan, Magenta, Yellow, Black A method of subtractive color mixing used in printing magazines and newspapers. The four colors are the inks used in the process. Mixing the inks in varying amounts can create any color in the spectrum. YUV Also called Y'CbCr and YPbPr A method of representing color used by televisions and standard video. Y is the luminance (brightness) of the color, and U and V represent components of the chrominance (hue) of the color. RGB Red, Green, Blue Additive light mixing used in computer monitors and the web. Mixing varying amounts of red, green, and blue light can create any color in the spectrum. Usually, each of these components is represented as a floating point number between 0 and 1, or as an integer from 0 to 255. Graphics Memory (technical) Memory is an array. Computer memory is a list of bytes, very similar to a file on disk. The arrangement of data within this array can determine its use. Graphics cards have a section of memory dedicated to holding image data. A screen buffer is a section of graphics memory that allows a program to modify an image as desired before it is displayed on screen.

Double Buffering is a method that uses a screen buffer to prevent flickering during games. Often, the game has two pages, or screen buffers. One buffer is shown on screen while the other is updated with the next frame. When the new frame is ready, the pages are flipped, and the game player doesn t see any artifacts that would otherwise occur while calculating the new frame. Usually, this flip is done in between refreshes of the monitor or television, to prevent tearing, which is the result of swapping pages in the middle of a screen redraw. The visual result of tearing is that the top portion of the screen shows the previous frame, and the bottom portion shows the new frame. 16-bit RGB. In 16-bit displays, 16 bits (2 bytes) of data are used for each pixel on the screen to define the color. 5 bits of color information are used for Red, 6 bits for Green, and 5 bits for Blue. Because the human eye is most sensitive to green, the extra bit is used to allow twice as much detail for that hue. The 5 bits for red or blue allow 32 different brightness levels to be defined, and the 6 bits for green allow 64 brightness levels. 24-bit RGB. Most modern 2d displays use 24-bit color. This allows 8 bits of color information (256 brightness levels) each for the red, green, and blue components of each pixel s color. 32-bit RGBA. Modern 3d displays, and some 2d displays, add an Alpha channel to the color, and 8 bits of information are used for each of the four channels in the color. The alpha channel defines the opacity of a color, where 0 is completely transparent, and 255 is completely opaque. This extra opacity information is useful for 3d games, or in layered graphical applications such as Photoshop. Color planes are screen buffers that hold the information for one color component of an entire image. Some computers, for example, have a plane (screen buffer) containing all the red data for the image, a plane for blue data, and a plane for green. Combining these three planes together will create a full-color image for display on the monitor. Bit planes, very similar to color planes, are used by the Nintendo for its color information. Colors in the NES are defined by 2 bits. Each small portion of graphics memory (8x8 pixels) is stored as a plane containing the first bit of color for each pixel, and then a second plane containing the second bit of color for each pixel. Color Palettes On systems with limited graphics memory (such as the NES), color palettes can be used to save memory. For example, in a system with a 16-color palette, only 16 colors at a time are available for display. However, each of these 16 colors can generally be set to any color of the spectrum. This allows each pixel s color to be defined by 4 bits of data (16 colors), instead of 24 (16 million colors). This has obvious drawbacks for visual quality, which is why modern systems have gobs of graphics memory. Color index is a number used to tell which color of a palette a pixel should have. Generally, indices begin at 0. So in a 16-color palette, the first color would have index 0, and the last would have index 15. Bit Depth is the number of bits of color available for each pixel. This may refer to either 16/24/32 bit RGB displays, or to indexed palette displays. The bit depth determines how many colors may be in an indexed palette. 1-bit: 2 colors (usually black and white) 2-bit: 4 colors (NES sprites and background) 4-bit: 16 colors 6-bit: 64 colors (NES global palette)

8-bit: 256 colors (VGA displays) Rather than being able to set each palette index to any color of the spectrum, the NES has a global palette, which contains the only colors displayable on the NES. The palette contains 64 colors; however, some of the blacks should not be used because of ill effects they may have on some televisions. Photoshop A popular graphics application for personal computers. Artists use this to create or edit graphics for many uses. We will be able to use this application for NES graphics as well. 2d Game Graphics Image planes Most game systems have at least two image planes, similar to screen buffers. One plane is used to store the background image. This image is made up of many small pieces of an image, which are copied multiple times in various locations on the screen to create background scenery. In most 2d game systems, such as the NES, the background image may only contain aligned squares of image data, which are copied from other aligned squares of image data. The foreground image plane generally holds characters, enemies, powerups, and other items that may need to move anywhere on the screen. Pattern table, Background tiles The NES pattern table is a region of graphics memory from which background tiles and sprites are copied to the screen. Each of the two pattern tables is split into 256 graphics regions (8x8 pixels each) called tiles. Similarly, the background image plane is split into many 8x8 pixel tiles. Any tile from the pattern table may be copied into any one of these background tiles. The source and destination tiles must always lie on the 8x8 pixel boundaries, however. They may not be placed willy-nilly all over the screen. Sprites, however, may take their images from any tile in the pattern table and place the image anywhere on the screen. A sprite s destination location does not have any boundary alignment requirements. The NES may have two active pattern tables at a time. One must be used for the background, and one must be used for the foreground. It is not required, however, that the foreground and background use different pattern tables. Sprites are images that can be placed anywhere on the screen. These are often used for main characters, enemies, and other game elements that move individually. Sprite Animation is a technique used to create a sense of movement that doesn t actually exist in the game. Imagine we have a sprite that is an image of a man with his hand in the air and to the right. We also have an image of him with the same hand directly above, and a third image with the hand above and to the left. Now, if we show the first image, and then a few frames later replace it with the second image in the same location, then the third, then the second again, we have a short animation. By repeating this image loop (first, second, third, second), we have created an animation of the man waving. This is often used in games for characters running, rolling, jumping, throwing, or performing various other movements.

Most 2d game systems allow Sprite Flipping. This allows us to create a sprite of a character facing to the right, and if the game requires that the character run to the left, then we can simply tell the game to flip the image around. The same image reversed will look like the character facing left. Of course, if our character has a distinguishing asymmetrical characteristic, such as an eyepatch over one eye, then flipping the sprite will put the patch over the over the other eye. But most games don t bother with addressing such issues. Scrolling and Parallax Scrolling The NES has enough graphics memory to store more than one screen of background image data. This allows the game to have usually two screens of the world drawn and ready. As the player moves through the world, the NES simply has to slide the viewable area along the background buffer, to create the appearance of moving through the world. As the player approaches the edge of the buffer, off-screen portions are updated so that they will be ready when they must be shown on screen. Parallax Scrolling is a technique that is usually not handled by the NES, but is handled well by later game systems, such as the SNES and the Sega Genesis. Usually for this technique, multiple background image planes are used. One of these background planes would hold normal level graphics for the world. The other plane, shown behind the first, would display far-off landscape, such as a mountain. As can be demonstrated by looking out your car window while riding in the passenger seat (not while driving!), objects that are closer appear to move faster than farther away objects as you pass by them. By scrolling the two background planes at different rates, you can create this same effect in a game. NES Color Palettes 64 Colors in the system palette 16 Colors in the background palette 16 Colors in the foreground palette The background and foreground image planes of the NES may each have their own palette of 16 colors. Each of these colors is taken from the global system palette. NES Sub Palettes The background and foreground palettes are split into sub palettes of 4 colors. This allows graphics data to use half as much memory, by allocating 2 bits of color for each pixel, instead of 4 bits. Whenever a sprite or background tile is placed on the screen, a sub palette is associated with it, to tell which set of four colors to use when drawing that piece of the image. Aside from certain restrictions on the background, any sprite or background tile may use any of its four available sub palettes, regardless of what other sub palettes are used by other sprites or tiles. The first entry in each background sub palette is the same primary background color. This primary background color is usually used for the sky color, but it can also be used as the transparent color, in the rare event that you may wish to draw a sprite behind the background. The first entry in each foreground sub palette is transparent. When a sprite is drawn on the screen, the background image will show through any sprite pixel whose color index is 0. The game is allowed to change the palettes and sub palettes during play, and sprites and tiles may change which sub palette they use for drawing.

A total of 25 unique colors may be shown on screen at any time. 3 unique colors per sub palette, with 4 sub palettes each for background and foreground. The 25th color is the global background color. NES Sprites Sprites may be 8x8 or 8x16 pixels. However, only one size may be active at a time. To draw an 8x8 image while in 8x16 mode, a sprite must be defined to include blank space. Often, characters are drawn larger than these sizes, such as 16x16 or 16x32. To accomplish this, multiple sprites may be drawn next to each other. May be flipped horizontally or vertically. Each sprite may have 3 colors, plus transparency, due to the sub palette limitations. However, you may cleverly draw multiple sprites on top of each other, to create the appearance of a single sprite with more colors. Usually used for main character, enemies, Tetris pieces, and any other moving objects. The NES has a limit of 64 sprites on screen at once. There is a hardware limit of 8 sprites per television scan line. If the game tries to draw more than 8 sprites in a single row, then the overlapping portions of any sprite past the 8th simply will not be drawn. This creates a problem in many games where in some situations an enemy will disappear. Be aware that some emulators allow more than 8 sprites per scan line. A game that looks good in these emulators may not look correct in more accurate ones. Assignment 1 Graphics Draw text as tiles on the background layer Why lowercase letters didn't work The pattern table font I provided with the assignment only contained upper case letters. Any lowercase letters that the assignment tried to print would simply reference a blank tile. Many people found that a name such as Bob Rost would only show up as B R. Why might you not want mixed case? Only one pattern table at a time may be used for the background. If you wish to have both text and graphics on screen at the same time, then both need to be in your pattern table. More characters for the text means fewer tiles left for the graphics. How can we make the text move? Since the text is drawn on the background, we can simply scroll the background. By changing the vertical and horizontal scroll values each frame, you can create various effects, such as scrolling or bouncing text.