Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pinobatch/snrom-template
NES UNROM, UOROM, SGROM, SNROM project template for ca65 assembler
https://github.com/pinobatch/snrom-template
Last synced: 4 days ago
JSON representation
NES UNROM, UOROM, SGROM, SNROM project template for ca65 assembler
- Host: GitHub
- URL: https://github.com/pinobatch/snrom-template
- Owner: pinobatch
- Created: 2016-11-17T00:09:15.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-11-15T21:46:12.000Z (12 months ago)
- Last Synced: 2023-11-15T22:42:39.195Z (12 months ago)
- Language: Assembly
- Homepage:
- Size: 33.2 KB
- Stars: 22
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.txt
Awesome Lists containing this project
README
IF THIS FILE HAS NO LINE BREAKS: View it in a web browser.
(Some text editors do not understand UNIX-style line breaks.)SNROM template
==============![Screenshot: a figure in a red vest and newsboy cap scooting on his hands and bottom on a ground of grass and dirt between two yellow crates](docs/screenshot.png)
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[nrom-template]: https://github.com/pinobatch/nrom-template
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-PPUGreets
------* [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[NESdev Wiki]: http://wiki.nesdev.com/
[FCEUX]: http://fceux.com/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.