Compare commits

...

5 commits
v1.3 ... master

Author SHA1 Message Date
e04fab8004
Update README.md 2020-06-06 12:55:15 -05:00
06697f5d36
Update .gitignore 2020-05-20 21:29:10 -05:00
f1cb59c789
Update README.md 2020-05-19 15:27:30 -05:00
34fd828c38
Update README.md 2020-05-19 15:13:44 -05:00
f75f7eb618
Update README.md 2020-05-19 15:12:54 -05:00
2 changed files with 37 additions and 32 deletions

11
.gitignore vendored
View file

@ -1,9 +1,6 @@
.sconsign.dblite
badnes
*.o
roms
*.nes
build
LaiNES
.vscode
*.exe
badnes
badnes.exe
roms
*.nes

View file

@ -5,10 +5,10 @@
| _ < / _` |/ _` | . ` | __| \___ \
| |_) | (_| | (_| | |\ | |____ ____) |
|____/ \__,_|\__,_|_| \_|______|_____/
EMULATOR
EMULATOR
```
A nearly complete NES emulator in a single 700-line C++ source file, based on [LaiNES](https://github.com/AndreaOrru/LaiNES).
A nearly complete NES emulator in a single 750-line C++ source file, based on [LaiNES](https://github.com/AndreaOrru/LaiNES).
```
cloc main.cpp
@ -26,27 +26,15 @@ C++ 1 6 60 757
## Features
- Cycle accurate
- Savestates (beta, expect bugs)
- Extremely compact: only 700 lines in one source file with no dependencies
## Requirements
- C++11
- SDL2
## Building
### *nix systems
```sh
git clone --recursive https://github.com/Ta180m/BadNES && cd BadNES
g++ main.cpp -o badnes -std=c++11 -lSDL2main -lSDL2 -O3
```
### Windows
```sh
git clone --recursive https://github.com/Ta180m/BadNES && cd BadNES
g++ main.cpp -o badnes -std=c++11 -IC:\mingw\include\SDL2 -LC:\mingw\lib -w -Wl,-subsystem,windows -lmingw32 -lSDL2main -lSDL2 -O3
```
- Savestates (Beta, expect bugs!)
- Supports Mappers 0, 1, 2, 3, 4, and 7
- Extremely minimal: only 750 lines in one source file with no dependencies
## Usage
First, head over to the release tab and grab a release. Releases marked as `beta` may be unstable!
If a release doesn't work, you can also build it yourself, as described below.
### *nix systems
```sh
./badnes [path to ROM]
@ -79,11 +67,28 @@ BadNES implements the most common mappers, which should be enough for a good per
- UxROM (Mapper 002)
- CNROM (Mapper 003)
- MMC3, MMC6 / TxROM (Mapper 004)
- AxROM (Mapper 007) (Not well supported, expect bugs!)
- AxROM (Mapper 007) (Beta, expect bugs!)
You can check the compatibility for each ROM in the following list:
http://tuxnes.sourceforge.net/nesmapper.txt
## Building
### Requirements
- C++11
- SDL2
### *nix systems
```sh
git clone --recursive https://github.com/Ta180m/BadNES && cd BadNES
g++ main.cpp -o badnes -std=c++11 -lSDL2main -lSDL2 -O3
```
### Windows
```sh
git clone --recursive https://github.com/Ta180m/BadNES && cd BadNES
g++ main.cpp -o badnes -std=c++11 -IC:\mingw\include\SDL2 -LC:\mingw\lib -w -Wl,-subsystem,windows -lmingw32 -lSDL2main -lSDL2 -O3
```
## FAQ
### Why the name?
http://www.usaco.org/index.php?page=viewproblem2&cpid=1041
@ -92,13 +97,16 @@ http://www.usaco.org/index.php?page=viewproblem2&cpid=1041
I really like LaiNES: it's very minimal and compact — but it has several dependencies, so I try to write the shortest NES emulator possible, in a single source file.
### There's no sound!
I'm working on it right now.
I'm working on it right now. You can also check out the `sound` branch, although it's still in a very early stage right now.
### What do you mean by "nearly complete"?
I'll say it's complete once I finish implementing the APU.
### This game doesn't work!
Check to make sure BadNES implements its mapper. Also, Mapper 7 is known to be especially buggy.
Check to make sure BadNES implements its mapper.
### Mapper 7 / Savestates / etc. doesn't work!
Those features are still in `beta` right now so expect bugs.
## Credits
Special thanks to [Andrea Orru](https://github.com/AndreaOrru) for creating [LaiNES](https://github.com/AndreaOrru/LaiNES), the emulator that this project derives much of its code from.
Special thanks to [Andrea Orru](https://github.com/AndreaOrru) for creating [LaiNES](https://github.com/AndreaOrru/LaiNES), the emulator that this project derives much of its code from.