nesgodisasm
所属分类:collect
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2023-08-14 23:00:14
上 传 者:
sh-1993
说明: 用Golang编写的任天堂娱乐系统ROM反汇编程序
(Nintendo Entertainment System ROM disassembler written in Golang)
文件列表:
.codecov.yml (105, 2024-01-06)
.golangci.yml (4826, 2024-01-06)
.goreleaser.yaml (894, 2024-01-06)
CHANGELOG.md (1175, 2024-01-06)
LICENSE (11357, 2024-01-06)
Makefile (1150, 2024-01-06)
go.mod (123, 2024-01-06)
go.sum (470, 2024-01-06)
internal/ (0, 2024-01-06)
internal/assembler/ (0, 2024-01-06)
internal/assembler/asm6/ (0, 2024-01-06)
internal/assembler/asm6/external.go (771, 2024-01-06)
internal/assembler/asm6/file.go (5688, 2024-01-06)
internal/assembler/asm6/param.go (270, 2024-01-06)
internal/assembler/assembler.go (342, 2024-01-06)
internal/assembler/ca65/ (0, 2024-01-06)
internal/assembler/ca65/external.go (1657, 2024-01-06)
internal/assembler/ca65/file.go (5556, 2024-01-06)
internal/assembler/ca65/mapper.go (1207, 2024-01-06)
internal/assembler/ca65/param.go (272, 2024-01-06)
internal/assembler/nesasm/ (0, 2024-01-06)
internal/assembler/nesasm/bank.go (3238, 2024-01-06)
internal/assembler/nesasm/external.go (790, 2024-01-06)
internal/assembler/nesasm/file.go (5125, 2024-01-06)
internal/assembler/nesasm/param.go (271, 2024-01-06)
internal/bank.go (605, 2024-01-06)
internal/code.go (3918, 2024-01-06)
internal/const.go (2436, 2024-01-06)
internal/data.go (1473, 2024-01-06)
... ...
# nesgodisasm - a tracing disassembler for NES ROMs
[![Build status](https://github.com/retroenv/nesgodisasm/actions/workflows/go.yaml/badge.svg?branch=main)](https://github.com/retroenv/nesgodisasm/actions)
[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/retroenv/nesgodisasm)
[![Go Report Card](https://goreportcard.com/badge/github.com/retroenv/nesgodisasm)](https://goreportcard.com/report/github.com/retroenv/nesgodisasm)
[![codecov](https://codecov.io/gh/retroenv/nesgodisasm/branch/main/graph/badge.svg?token=NS5UY28V3A)](https://codecov.io/gh/retroenv/nesgodisasm)
nesgodisasm allows you to disassemble programs for the Nintendo Entertainment System (NES).
## Features
* Outputs [asm6](https://github.com/freem/asm6f)/[ca65](https://github.com/cc65/cc65)/[nesasm](https://github.com/ClusterM/nesasm)
compatible .asm files that can be used to reproduce the same original NES ROM
* Translates known RAM addresses to aliases
* Traces the program execution flow to differentiate between code and data
* Supports undocumented 6502 CPU opcodes
* Supports branching into opcode parts of an instruction
* Does not output trailing zero bytes of banks by default
* Batch processing mode to disassembling multiple ROMs at once
* Flexible architecture that allows it to create output modules for other assemblers
Support for mappers that use banking is currently experimental.
## Installation
The tool uses a modern software stack that does not have any system dependencies beside requiring a somewhat modern
operating system to run:
* Linux: 2.6.32+
* Windows: 10+
* macOS: 10.15 Catalina+
There are 2 options to install nesgodisasm:
1. Download and unpack a binary release from [Releases](https://github.com/retroenv/nesgodisasm/releases)
or
2. Compile the latest release from source:
```
go install github.com/retroenv/nesgodisasm@latest
```
Compiling the tool from source code needs to have a recent version of [Golang](https://go.dev/) installed.
To use the `-verify` option, the chosen assembler needs to be installed.
## Usage
Disassemble a ROM:
```
nesgodisasm -a ca65 -o example.asm example.nes
```
The generated assembly file content will look like:
```
...
Reset:
sei ; $8000 78
cld ; $8001 D8
lda #$10 ; $8002 A9 10
sta PPU_CTRL ; $8004 8D 00 20
ldx #$FF ; $8007 A2 FF
txs ; $8009 9A
_label_800a:
lda PPU_STATUS ; $800A AD 02 20
bpl _label_800a ; $800D 10 FB
...
.segment "VECTORS"
.addr NMI, Reset, IRQ
```
Assemble an .asm file back to a ROM:
```
ca65 example.asm -o example.o
ld65 example.o -t nes -o example.nes
```
## Options
```
usage: nesgodisasm [options]
-a string
Assembler compatibility of the generated .asm file (asm6/ca65/nesasm)
-batch string
process a batch of given path and file mask and automatically .asm file naming, for example *.nes
-cdl string
name of the .cdl Code/Data log file to load
-debug
enable debugging options for extended logging
-nohexcomments
do not output opcode bytes as hex values in comments
-nooffsets
do not output offsets in comments
-o string
name of the output .asm file, printed on console if no name given
-q perform operations quietly
-verify
verify the generated output by assembling with ca65 and check if it matches the input
-z output the trailing zero bytes of banks
```
近期下载者:
相关文件:
收藏者: