Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mssola/ntools
Utilities for NES/Famicom development.
https://github.com/mssola/ntools
6502 6502-assembly assembler famicom mos6502 nes
Last synced: 23 days ago
JSON representation
Utilities for NES/Famicom development.
- Host: GitHub
- URL: https://github.com/mssola/ntools
- Owner: mssola
- License: gpl-3.0
- Created: 2024-10-07T12:40:03.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-18T09:27:07.000Z (23 days ago)
- Last Synced: 2024-12-18T09:27:53.166Z (23 days ago)
- Topics: 6502, 6502-assembly, assembler, famicom, mos6502, nes
- Language: Rust
- Homepage:
- Size: 154 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Utilities for NES/Famicom development. Note that this repository is under heavy
development and it's **not** currently usable.## `nasm`
`nasm` is an assembler specifically tailored for the NES/Famicom. Build it and
run it with cargo, or you can install it somewhere in your `$PATH` and simply:```
$ nasm awesome.s
```This will produce an `out.nes` file placed under the same working directory. You
can change the name of the file with the `-o/--output` flag. Hence, you can call
it like so:```
$ nasm -o awesome.nes awesome.s
```Last but not least, you can actually tell `nasm` to redirect the output to
stdout instead with the `--stdout` flag. This is useful when debugging the
binary format with another CLI tool. For example:```
$ nasm --stdout awesome.s | hexdump -C
```By default it will assume the configuration for an `NROM` mapper, but this can
be changed with the `-c/--configuration` flag, which accepts the following
values:- `empty`: just `HEADER` and `CODE`. Useful for one-liners (e.g. "how is this
instruction encoded in binary?").
- `nrom`: the default configuration. It has the following segments: `HEADER`,
`CODE`, `VECTORS`, and `CHARS`.
- `nrom65`: same as `nrom` but it also has `STARTUP` for compatibility with the
default linker configuration from [cc65](https://github.com/cc65/cc65).## `readrom`
The `readrom` reads a given ROM file and shows all the information that can be
gathered from it. For now this only applies to information on the header, but in
the future we might want to add disassembling user-specified segments, for
example.