Compare commits
No commits in common. "develop" and "master" have entirely different histories.
|
@ -1,3 +0,0 @@
|
||||||
src/chars.bin
|
|
||||||
src/*.o
|
|
||||||
target/
|
|
24
LICENSE
24
LICENSE
|
@ -1,24 +0,0 @@
|
||||||
Super Mario Bros. Optimized is published with no license. It is distributed as is in the hope that it will be useful, but WITHOUT ANY WARRANTY.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Credits:
|
|
||||||
* Original work on Super Mario Bros.: Copyright 1985 Nintendo
|
|
||||||
* Original work on disassembly: Copyright 2012, 2015 doppelganger
|
|
||||||
* Additional work: Copyright 2024 Christophe Parent
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Original words from doppelganger (doppelheathen@gmail.com):
|
|
||||||
|
|
||||||
There are so many people I have to thank for this, and without their help this would
|
|
||||||
probably not be possible. So I thank all the peeps in the nesdev scene whose insight into
|
|
||||||
the 6502 and the NES helped me learn how it works (you guys know who you are, there's no
|
|
||||||
way I could have done this without your help), as well as the authors of x816 and SMB
|
|
||||||
Utility, and the reverse-engineers who did the original Super Mario Bros. Hacking Project,
|
|
||||||
which I compared notes with but did not copy from. Last but certainly not least, I thank
|
|
||||||
Nintendo for creating this game and the NES, without which this disassembly would
|
|
||||||
only be theory.
|
|
||||||
|
|
||||||
Update: removed residual note under ChkStart label. Thanks to ShaneM for pointing out
|
|
||||||
the error.
|
|
55
README.md
55
README.md
|
@ -1,54 +1,3 @@
|
||||||
# Super Mario Bros. Optimized
|
# super-mario-bros-optimized
|
||||||
|
|
||||||
Super Mario Bros. technically optimized as much as possible.
|
Super Mario Bros. technically optimized as much as possible.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### Requirements
|
|
||||||
|
|
||||||
cc65 must be installed on your system; the oldest supported version is `2.18`. No other dependencies are required.
|
|
||||||
|
|
||||||
Additionally a file containing the graphics for the original Super Mario Bros. game must be present on your system. This file is not provided.
|
|
||||||
|
|
||||||
### Installing
|
|
||||||
|
|
||||||
Clone this repository locally:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ git clone https://forge.thatspaceandtime.org/ooxie/super-mario-bros-optimized.git super_mario_bros_optimized
|
|
||||||
$ cd super_mario_bros_optimized
|
|
||||||
```
|
|
||||||
|
|
||||||
Copy the graphics file:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ cp <path_to_the_graphics_file> src/chars.bin
|
|
||||||
```
|
|
||||||
|
|
||||||
Create the target directory:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ mkdir target
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building
|
|
||||||
|
|
||||||
To build the binary, execute:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ cl65 -t nes -o target/super_mario_bros_optimized.nes -C src/linker.cfg src/main.asm
|
|
||||||
```
|
|
||||||
|
|
||||||
### Running
|
|
||||||
|
|
||||||
To run the game, open the file `target/super_mario_bros_optimized.nes` in your favorite NES emulator. Alternatively you can run it on original hardware.
|
|
||||||
|
|
||||||
### Playing
|
|
||||||
|
|
||||||
Refer to the original manual for Super Mario Bros.
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
The source code of this project is not licensed, as the original work it is based on is not (see [LICENSE](/ooxie/super-mario-bros-optimized/src/branch/master/LICENSE)).
|
|
|
@ -1,19 +0,0 @@
|
||||||
MEMORY {
|
|
||||||
ZP: file = "", start = $0000, size = $0100;
|
|
||||||
OAM: file = "", start = $0200, size = $0100, define = yes;
|
|
||||||
RAM: file = "", start = $0300, size = $0500;
|
|
||||||
HDR: file = %O, start = $0000, size = $0010, fill = yes;
|
|
||||||
PRG0: file = %O, start = $8000, size = $7FFA, fill = yes, fillval = $FF;
|
|
||||||
PRGV: file = %O, start = $FFFA, size = $0006, fill = yes, fillval = $FF;
|
|
||||||
CHR: file = %O, start = $0000, size = $2000, fill = yes, fillval = $FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
SEGMENTS {
|
|
||||||
ZEROPAGE: load = ZP, type = zp, optional = yes;
|
|
||||||
SPRITE: load = OAM, type = bss, optional = yes;
|
|
||||||
BSS: load = RAM, type = bss, optional = yes;
|
|
||||||
HEADER: load = HDR, type = ro;
|
|
||||||
STARTUP: load = PRG0, type = ro;
|
|
||||||
VECTORS: load = PRGV, type = ro;
|
|
||||||
CHARS: load = CHR, type = ro, optional = yes;
|
|
||||||
}
|
|
17193
src/main.asm
17193
src/main.asm
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue