Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Droniu/tic-tac-toe
Browse files Browse the repository at this point in the history
  • Loading branch information
Droniu committed Jun 8, 2021
2 parents 467ab26 + 6d98f08 commit d39ddaa
Showing 1 changed file with 45 additions and 2 deletions.
47 changes: 45 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,45 @@
# tic-tac-toe
Tic-Tac-Toe game written in assembler
# Tic-Tac-Toe game written in 6502 assembly for the NES.

After over a thousad lines of code in a language I hate, I thnk the project is ready.

## Requirements:
* [Compiler - cc65](https://cc65.github.io/getting-started.html) (not necessary if you download the package)
* [Emulator - FCEUX](http://fceux.com/web/download.html)

After cloning the repo we type `./make.bat` on Windows or `make` on Linux/macOS. Then, we open **main.nes** file.
If you downloaded the package, there is no need to use make. Just open the file in FCEUX.

## Controls
* Start - begin the game (works only in the title screen)
* Arrows - movement of selection arrow on the board
* A - place X or O

## Screenshots
![Title Screen](./docs/1.jpg)
![Gameplay](./docs/2.jpg)

## Missing features
Win counter only works up to ten wins - after that it breaks. I wanted to fix it at first but implementing sprite update based on decimal value sounds crazy hard and I'm really tired of assembly.

Another thing is that after detecting a winning position, the board is cleared almost immediately. There should be some pause, maybe animation and information about who won. But I belive the counter is enough in this case.


## Sources

Materials I used for learning while making the project:
* [6502 instruction set](http://www.6502.org/tutorials/6502opcodes.html#STA)
* [Nes Dev Wiki](https://wiki.nesdev.com/)
* [Zero Pages video series by Michael Chiaramonte](https://www.youtube.com/watch?v=JgdcGcJga4w&list=PL29OkqO3wUxzOmjc0VKcdiNPqwliHEuEk)
* [FCEUX Debugger documentation](http://fceux.com/web/help/Debugger.html)
* A lot of googling and finding answers on [Nes Dev Forum](https://forums.nesdev.com/)

For anyone interested in editing graphical files, excellent choices are:
* [Nesst - for editing nametables and graphics](https://shiru.untergrund.net/software.shtml)
* [YY-CHR - for editing graphics](https://www.romhacking.net/utilities/119/)

This software is made for Windows, but can be opened on MacOS and Linux using Wine.

## Contact
If you want to use my code or creeate a similar project - wheter it is for university or for hobby, feel free to contact me. I'm no expert on this, but I know the learning curve of assembly is really steep, so I can definitely help get you started.

*Project made as a part of the "Computer Architecture 2" course organized by Wroclaw University of Science and Technology.*

0 comments on commit d39ddaa

Please sign in to comment.