Git Product home page Git Product logo

nm-cc65's Introduction

IF THIS FILE HAS NO LINE BREAKS: View it in a web browser.

SNROM template

This is a minimal working program for the Nintendo Entertainment System using the SGROM, SNROM, UNROM, or UOROM board. It assumes familiarity with nrom-template.

Additional concepts illustrated:

  • initializing the MMC1
  • loading tile data into CHR RAM
  • calls from one PRG bank to another

Setting up the build environment

Building this demo requires cc65, Python, Pillow, GNU Make, and GNU Coreutils. For detailed instructions to set up a build environment, see nrom-template.

Organization of the program

Include files

  • nes.inc: Register definitions and useful macros
  • global.inc: Global variable and function declarations

Source code files

  • mmc1.s: iNES header and driver for MMC1
  • unrom.s: iNES header and driver for UNROM/UOROM
  • init.s: PPU and CPU I/O initialization code
  • main.s: Main program
  • bankcalltable.s: List of entry points called through a far call (one that goes from one bank to another)
  • chrram.s: CHR RAM data setup
  • bg.s: Background graphics setup
  • player.s: Player sprite graphics setup and movement
  • pads.s: Read the controllers in a DPCM-safe manner
  • ppuclear.s: Useful subroutines for interacting with the S-PPU

Greets

  • NESdev Wiki and forum contributors
  • FCEUX team
  • Joe Parsell (Memblers) for getting me into NESdev in the first place
  • Jeremy Chadwick (koitsu) for more code organization tips

Legal

The demo is distributed under the following license, based on the GNU All-Permissive License:

Copyright 2011-2016 Damian Yerrick

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved in all source code copies. This file is offered as-is, without any warranty.

nm-cc65's People

Contributors

cluckfox avatar

Watchers

 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.