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 ```

近期下载者

相关文件


收藏者