88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
|
|
# 1. Setting Up the Project Directory
|
|
|
|
```
|
|
mkdir gothci
|
|
cd gotchi/
|
|
```
|
|
|
|
# 2. Installing Basic Development Tools
|
|
|
|
```
|
|
sudo apt update && sudo apt upgrade -y
|
|
sudo apt install build-essential git make gcc-mingw-w64 g++-mingw-w64 zip -y
|
|
```
|
|
__Note: gcc-mingw-w64 and g++-mingw-w64 may not be necessary if you're only targeting Linux builds.__
|
|
|
|
# 3. Cloning and setting up the tamatool Repository
|
|
|
|
```
|
|
git clone --recursive https://github.com/jcrona/tamatool.git
|
|
```
|
|
|
|
# 4. Installing SDL2 Dependencies
|
|
|
|
```
|
|
sudo apt install libsdl2-dev libsdl2-image-dev libpng-dev -y
|
|
```
|
|
|
|
# 5. Building tamatool for Windows/Linux (I used Linux)
|
|
|
|
```make linux ``` or ```make windows```
|
|
I used `make linux` because I am using WSL. WSL2 should work since it's using openocd.
|
|
|
|
# 7. Updating System and Installing Cross-Compilation Tools
|
|
|
|
`sudo apt install build-essential git cmake gcc-arm-none-eabi openocd dfu-util`
|
|
|
|
# 8. Cloning the mcugotchi Repository
|
|
|
|
`cd ..`
|
|
`git clone --recursive https://github.com/jcrona/mcugotchi.git`
|
|
__Note: If you don't use recursive you won't get the necessary includes.__
|
|
|
|
# 9. Generating rom.h from a ROM File
|
|
|
|
__Note: These steps are already done in the provided folder__
|
|
|
|
Place the `tama.b` file from the [zip file](https://www.planetemu.net/rom/mame-roms/tama) into mcugotchi/src/ and rename it to `tama.bin`
|
|
|
|
`nano mcugotchi/src/rom.c`
|
|
Remove '//' from //#define ROM_BUILT_IN at line 30.
|
|
|
|
cd tamatool/linux/dist
|
|
./tamatool -r ../mcugotchi/src/tama.bin -H > ../mcugotchi/src/rom_data.h
|
|
__Note: The command in the GitHub repo for Tamatool is wrong, the output file is "rom.h" in the provided command, which literally overrides the header file used for loading the ROM.__
|
|
|
|
# 10. Compiling mcugotchi
|
|
|
|
`cd ../../../mcugotchi`
|
|
`nano Makefile`
|
|
|
|
Edit the makefile, remove the text after `TOOLCHAIN =` and `OPENOCD_BIN =`.
|
|
|
|
```
|
|
# GNU ARM Embedded Toolchain location
|
|
TOOLCHAIN =
|
|
|
|
# OpenOCD location
|
|
OPENOCD_BIN =
|
|
```
|
|
|
|
Then remove `$(TOOLCHAIN)/bin/` from all other lines.
|
|
|
|
```
|
|
CC = arm-none-eabi-gcc
|
|
AS = arm-none-eabi-as
|
|
LN = arm-none-eabi-gcc
|
|
STRIP = arm-none-eabi-strip
|
|
HEX = arm-none-eabi-objcopy -O ihex
|
|
BIN = arm-none-eabi-objcopy -O binary
|
|
```
|
|
|
|
Now we should be able to compile mcugotchi.
|
|
`make`
|
|
|
|
# 11. Flashing mcugotchi
|
|
Inside of mcugotchi folder:
|
|
`make flash` |