-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
400 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
install: | ||
- wget http://libsdl.org/release/SDL2-2.0.3.tar.gz -O - | tar xz | ||
- cd SDL2-2.0.3 && ./configure && make -j && sudo make install && cd .. | ||
before_script: ./bootstrap | ||
script: "./configure && make" | ||
after_success: sudo make install | ||
language: c | ||
compiler: | ||
- clang | ||
- gcc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Reporting bugs.- | ||
|
||
If you find a bug on the emulator, you can report it at the issue | ||
tracker for this project, which is located on GitHub, at | ||
|
||
http://github.com/danirod/chip8 | ||
|
||
Please, only report bugs that can be reproduced. Report the steps | ||
required to reproduce the bug, as well as the environment (operating | ||
system, processor) you are running the emulator in. If you are | ||
able to tell which ROM you were playing when the bug popped out | ||
that would be better too. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,44 @@ | ||
2015-02-27 | ||
* Define data structure for CHIP-8 CPU. | ||
* Create project structure. | ||
2015-03-12 Hugo Martin <hugomartin89@gmail.com> | ||
|
||
* src/sdl.c: Drop SDL_WINDOW_OPENGL so that SDL can decide | ||
the best graphics backend based on the user platform. | ||
* src/sdl.c: Remove unrequired SDL_Surface. | ||
|
||
2015-03-11 Dani Rodríguez <danirod@outlook.com> | ||
|
||
* src/chip8.c: Fix bug where return status from SDL | ||
and context initialization functions was not checked for | ||
errors. (Bug#2) | ||
* src/sdl.c: Rename error tags to exception tags to make | ||
them sound more pleasant. | ||
|
||
2015-03-10 Dani Rodríguez <danirod@outlook.com> | ||
|
||
* src/sdl.c: Fix bug where SDL surface was freed twice, | ||
second time failing. (Bug#3) | ||
|
||
2015-03-09 Dani Rodríguez <danirod@outlook.com> | ||
|
||
* Version 0.1.0 released. | ||
* src/Makefile.in: Code was splitted to multiple files. | ||
|
||
2015-03-07 Dani Rodríguez <danirod@outlook.com> | ||
|
||
* chip8.c: Implement DRW opcode. This opcode will now plot | ||
pixels to the emulator screen, managed by an SDL window. | ||
* chip8.c: Implement opcodes related to keyboard. CHIP-8 | ||
keyboard has 16 keys and they have been mapped to | ||
1234/QWER/ASDF/ZXCV. | ||
|
||
2015-03-03 Dani Rodríguez <danirod@outlook.com> | ||
|
||
Implement CHIP-8 opcodes exception keyboard input and screen | ||
output. The emulator now supports every opcode related to ALU | ||
and memory. | ||
* configure.ac: SDL 2.0 is now required to build the project. | ||
|
||
2015-02-27 Dani Rodríguez <danirod@outlook.com> | ||
|
||
Define CPU data structure and implement the main loop with | ||
placeholders that print to stdout each opcode dissassembled. | ||
* configure.ac: Create project structure. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,103 @@ | ||
To install this software, download the source code and extract it into a | ||
folder on your computer. Then run the following: | ||
chip8 emulator: Installation instructions | ||
Copyright (C) 2015 Dani Rodríguez | ||
|
||
./configure | ||
make && make install | ||
In order to compile this software, download the sources from the project | ||
web site and extract them into a software folder. Source code packages | ||
can be downloaded from the releases directory. These packages already | ||
contains a `configure` script generated by the GNU Autotools System. | ||
|
||
To install the software. | ||
As an alternative, you may download the sources by cloning the Git | ||
repository for this project. However, these sources cannot be directly | ||
compiled, as the `configure` script has to be manually created. See below | ||
for more information. | ||
|
||
To uninstall the software, run the following: | ||
Compiling the project. | ||
|
||
make uninstall | ||
To compile this software, cd to the folder where you have extracted | ||
your source code and run the following commands using your terminal | ||
|
||
./configure | ||
make | ||
|
||
Alternatively, you may prefer to build this package on a separate | ||
directory from the directory where your sources are located. In that | ||
case you must invoke `configure` script as | ||
|
||
$PATH_TO_SOURCES/configure | ||
make | ||
|
||
Where $PATH_TO_SOURCES is the destination where the package sources | ||
are located. For instance, if you are compiling the project from a | ||
subfolder you may invoke `configure` as `../configure`. | ||
|
||
Installing the project | ||
|
||
After successfully running `make`, run `make install`. This will | ||
copy generated output by `make` into the preferred destination. By | ||
default they will be installed to /usr/local. You can change this | ||
directory by invoking `configure` as | ||
|
||
./configure --prefix=$FOLDER | ||
|
||
where $FOLDER is the folder where you want to install the program | ||
to. Please note that binaries are not directly installed to $FOLDER | ||
but to $FOLDER/bin. For instance, to install the package into your | ||
home directory, run | ||
|
||
./configure --prefix=$HOME | ||
|
||
The emulator will be installed at ~/bin/chip8. | ||
|
||
Uninstalling the project | ||
|
||
If you haven't still delete files generated by ./configure script, | ||
you can uninstall this software by running | ||
|
||
make uninstall | ||
|
||
If you have already deleted the output files generated by ./configure | ||
or even the entire sources distribution, you must invoke again | ||
`./configure` using the same prefix than the one you provided when | ||
installing the software. | ||
|
||
Compiling on Windows | ||
|
||
This project can be build on Windows provided you have a compatible | ||
system. MinGW has been tested and it works. You must install into your | ||
MSYS system SDL2 if you want the code to compile. Cygwin hasn't been | ||
tested although it is expected to work. | ||
|
||
To successfully compile the emulator on Windows you must provide | ||
some linker flags when compiling it. You must either execute the | ||
following commands: | ||
|
||
LDFLAGS='-lmingw32 -lSDL2main -lSDL2' ./configure | ||
make | ||
|
||
Or the following | ||
|
||
./configure | ||
LDFLAGS='-lmingw32 -lSDL2main -lSDL2' make | ||
|
||
Generating compile script from bootstrap | ||
|
||
If you download a source code distribution from the releases page | ||
you may get a tarball with a `configure` script that generates a | ||
valid Makefile to compile the project using make. | ||
|
||
If you instead clone or pull the Git repository, you won't get | ||
that `configure` script since it's generated by GNU Autotools. | ||
You must run the bootstrap script first: | ||
|
||
./bootstrap | ||
./configure | ||
make | ||
|
||
Please note that `bootstrap` requires GNU Autotools installed to work. | ||
You must have GNU Autoconf and GNU Autoheader installed and working. | ||
The bootstrap script will execute `autoreconf`, which automatically | ||
executes every program from the GNU Autotools suite that is required | ||
to generate the configuration scripts. | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,14 @@ | ||
No relevant news for users yet. | ||
CHIP-8 news - History of user visible changes | ||
Copyright (C) 2015 Dani Rodríguez <danirod@outlook.com> | ||
|
||
This file is about relevant changes for CHIP-8 users. Developers: Check | ||
ChangeLog for an overview on relevant changes about the source code. | ||
|
||
Version 0.1.0 - 2015-03-09 by Dani Rodríguezd | ||
|
||
* First release with initial emulation capabilities. | ||
|
||
* All the opcodes for a standard CHIP-8 machine have been implemented. | ||
|
||
* Graphical capabilities for the CHIP-8 emulator are provided using SDL2. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,25 @@ | ||
chip8 is a CHIP-8 emulator. | ||
chip8 is a CHIP-8 emulator developed in C using the SDL2 multimedia library. | ||
It emulates a standard CHIP-8 machine and implements all the opcodes that | ||
the specification provides. | ||
|
||
This emulator was initially developed by Dani Rodríguez, danirod at GitHub. | ||
It's developed as part of his live coding streaming series on YouTube where | ||
a program is developed in a live streaming. | ||
|
||
In the subdirectory 'examples' you may find a few public domain ROMs that | ||
can be emulated using this emulator as well as any other emulator you can | ||
find on the Internet. | ||
|
||
See 'COPYING' for copying conditions. | ||
See 'INSTALL' for compilation and installation instructions. | ||
See 'NEWS' for a list of changes in latest releases. | ||
See 'ChangeLog' for a list of technical changes in the source code. | ||
See 'BUGS' for information on how to report bugs you may find. | ||
See 'AUTHORS' for the names of the maintainers of the source code. | ||
See 'THANKS' for a list of contributors and other helpful people. | ||
|
||
In order to compile this project you will need to have SDL 2.0 headers and | ||
libraries in your machine. Head to www.libsdl.org to get those in case | ||
you still haven't got them or get them using your package manager if your | ||
operating system has any. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# chip8 | ||
|
||
[![Build Status](https://travis-ci.org/danirod/chip8.svg)](https://travis-ci.org/danirod/chip8) | ||
|
||
## Introduction | ||
|
||
chip8 is a CHIP-8 emulator developed in C using the SDL2 multimedia library. | ||
It emulates a standard CHIP-8 machine and implements all the opcodes that | ||
the specification provides. | ||
|
||
This emulator was initially developed by Dani Rodríguez, danirod at GitHub. | ||
It's developed as part of his [live coding streaming series on YouTube](https://www.youtube.com/playlist?list=PLTd5ehIj0goNh89DWAjXKCYxJQO0ZMxaE) where | ||
a program is developed in a live streaming. | ||
|
||
## Screenshots | ||
|
||
GNU/Linux: | ||
|
||
![CHIP-8 Emulator on GNU/Linux](https://cloud.githubusercontent.com/assets/1568690/6553708/eba9d684-c653-11e4-867d-4f8406897809.png) | ||
|
||
MacOS X: | ||
|
||
![CHIP-8 Emulator on MacOS X](https://cloud.githubusercontent.com/assets/1568690/6557044/50d409b2-c672-11e4-9b28-f84546f00612.png) | ||
|
||
|
||
Windows: | ||
|
||
![CHIP-8 Emulator on Windows](https://cloud.githubusercontent.com/assets/1568690/6553101/5e538d44-c64d-11e4-9efd-cfef8e9a9a3b.png) | ||
|
||
## Files | ||
|
||
In the subdirectory 'examples' you may find a few public domain ROMs that | ||
can be emulated using this emulator as well as any other emulator you can | ||
find on the Internet. | ||
|
||
* See 'COPYING' for copying conditions. | ||
* See 'INSTALL' for compilation and installation instructions. | ||
* See 'NEWS' for a list of changes in latest releases. | ||
* See 'ChangeLog' for a list of technical changes in the source code. | ||
* See 'BUGS' for information on how to report bugs you may find. | ||
* See 'AUTHORS' for the names of the maintainers of the source code. | ||
* See 'THANKS' for a list of contributors and other helpful people. | ||
|
||
## Dependencies | ||
|
||
In order to compile this project you will need to have SDL 2.0 headers and | ||
libraries in your machine. Head to www.libsdl.org to get those in case | ||
you still haven't got them or get them using your package manager if your | ||
operating system has any. | ||
|
||
## License | ||
|
||
This project is available under a GNU General Public License v3 license. See COPYING for copying conditions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
chip8 Thanks file | ||
|
||
This emulator is develoepd and maintained by Dani Rodríguez and maybe other | ||
authors described in AUTHORS file. However, many people have further | ||
contributed to this project by reporting problems, suggesting improovements | ||
or sending source code. Here is a list that I'm trying to keep up to date. | ||
|
||
* Hugo Martin <hugomartin89@gmail.com> | ||
|
||
Aditionally, since this project was built as part of a streaming series on | ||
my YouTube channel, I would like to thank to the audience that has been | ||
following this project since its birth. Here is a list with those people | ||
that have been following the project on YouTube. I try to keep this list | ||
up to date, but there are already so many hours or recorded video that I | ||
haven't completely reviewed all the comments so I may have skipped some | ||
names. Drop me a line if you miss your YouTube alias here. Also, if instead | ||
you don't want to see your YouTube alias here, drop me a line too and I'll | ||
remove your name from this list. This list is sorted alphabetically. | ||
|
||
* aitor killer. | ||
* ArcRoaR. | ||
* Iovictor29. | ||
* J D Gambin. | ||
* JoacoGamer100. | ||
* Luis Perez. | ||
* Marcos Sanchess | ||
* Matías. | ||
* nexus0709. | ||
* Omega36R. | ||
* Sergio CM. | ||
* Skillath. | ||
* zhexirox. | ||
|
||
Thanks to all of you. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.