Please see the "Projects" section for an overview of the current status of this project!
Please see the "Wiki" section for the technical details of the serial communication protocol!
This project aims to create an easy-to-use, multi-system TAS replay device to be used on actual consoles. The name of this project comes from the fact that it is powered by a STM32F4 microcontroller.
First clone or download this repository
Install the latest Python 3 release
(You may need to log out/log in to refresh the PATH variable)
Then install the required python modules with the following command:
python3 -m pip install -r python/requirements.txt
apt install gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
OR the equivalent in your distribution.
Then :
make v3
Or :
make v4
Depending on if you have a v3 or v4 board. (v4s came out around July 2021)
- Right-click on the project > Build Configurations > Set Active, then click "Release v3" or "Release v4" depending on your board version. (v4s came out around July 2021)
- Project > Build Project and check that the console shows no errors. The last line before "build finished" should be "arm-atollic-eabi-objcopy -O ihex TAStm32.elf TAStm32.hex".
apt install dfu-util
OR the equivalent in your distribution
make flash
- Install Atollic TrueStudio
- Install STM32CubeProgrammer
- Open up the command prompt
- Run setenv.bat included in the root directory
- Run update.bat included in the root directory
Dumped TAS movies are available in the TASBot projects repo
Scripts to dump your own TASes
Once you've prepared a movie dump, use it with the TAStm32. Here is one example example is here:
python3 tastm32.py --console snes --players 1,5 --dpcm --clock 14 --transition 2123 A --blank 1 smb3_agdq.r16m
TheMas3212 - Aided with all things python, designing the serial communication protocol, helping with PCB design, and debugging throughout the whole process.
Skippy - Pretty much helped a little bit with everything: including software, hardware, advice on proper tools, and more!
dwangoAC (@dwangoac) - warmly accepting me into the TASBot community
micro500 (@micro500) - spent a lot of time teaching me how console replay devices work at a low level
true - for teaching me hardware concepts, helping me choose the perfect MCU for the job, and explaining a lot of low-level things to me
Tien Majerle (@MaJerle) - the owner of https://stm32f4-discovery.net/ helped me with the function which jumps to the DFU bootloader code
Ilari - for being an extraordinary wealth of knowledge on most topics
Serisium (@serisium) - helped with debugging and PCB design
rcombs (@rcombs) - helped with optimizing the N64 protocol
Sauraen (@sauraen) - Linux setup and installation notes, multiplayer GC/N64 support, misc. GC/N64 improvements
Derf - worked on debugging the genesis protocol together
sspx (@SuperSpyTX) - For help with finding a bug in the N64 controller identity code.
- Ownasaurus