81 lines
2.4 KiB
Text
81 lines
2.4 KiB
Text
_____ ____ ____ __ _ _
|
|
| ___|___ \| ___| / /_ | | |_ ___ __ ___ _ __ ___ ___ ___
|
|
| |_ __) |___ \| '_ \ | | \ \ / / '_ ` _ \ _____| '_ ` _ \ / _ \/ __|
|
|
| _| / __/ ___) | (_) | | | |\ V /| | | | | |_____| | | | | | (_) \__ \
|
|
|_| |_____|____/ \___/ |_|_| \_/ |_| |_| |_| |_| |_| |_|\___/|___/
|
|
|
|
|
|
This repository is my work using llvm-mos with the Foenix F256 line of
|
|
computers. It's a somewhat random collection of things helpful to me and
|
|
will hopefully grow into something helpful to others.
|
|
|
|
-- Scott Duensing (scott@kangaroopunch.com)
|
|
|
|
|
|
REQUIREMENTS
|
|
============
|
|
|
|
I use Linux Mint Cinnamon as my development environment. Any Ubuntu derivative
|
|
should work as well - even under WSL.
|
|
|
|
|
|
INSTALLING
|
|
==========
|
|
|
|
At a minimum, you should run the following:
|
|
|
|
./build-llvm-mos.sh all
|
|
./build-merlin.sh
|
|
./update-defines.sh
|
|
./build-tools.sh
|
|
|
|
|
|
SCRIPTS
|
|
=======
|
|
|
|
build-aesprite.sh - Downloads and builds the latest Aesprite.
|
|
|
|
build-tools.sh - Builds the included header and image conversion tools.
|
|
|
|
build-llvm-mos.sh - Builds the latest llvm-mos toolchain.
|
|
|
|
build-merlin.sh - Builds the Merlin32 assembler.
|
|
|
|
get-foenixmgr.sh - Downloads the latest FoenixMgr and dependencies.
|
|
|
|
pgz-thunk.py - Inspects contents of PGZ files.
|
|
|
|
start-quartus.sh - Runs Intel's Quartus tool (must install manually).
|
|
|
|
update-defines.sh - Updates the Merlin sample code and builds C headers.
|
|
|
|
update-ide-firmware.sh - Packages the latest firmware and copies it to the IDE.
|
|
|
|
|
|
HEADER TOOL
|
|
===========
|
|
|
|
The included header tool allows you to add a KUP, PGX, or PGZ program header to
|
|
a raw binary generated by llvm-mos or Merlin. Look at the examples for samples.
|
|
|
|
|
|
IMAGE CONVERTER
|
|
===============
|
|
|
|
The image converter loads images of various formats and attempts to convert them
|
|
into a format usable by TinyVicky. It's not very smart. Images need to be the
|
|
proper size for your intended use and have 256 or fewer colors. The result of
|
|
the conversion will be a "clut" file with the color lookup table in it as well
|
|
as an "indexed" file of the pixels in your image mapped to the color table.
|
|
|
|
The image converter can also take a bitmap and slice it into 8x8, 16x16, 24x24,
|
|
or 32x32 chunks for use as sprite data.
|
|
|
|
|
|
EXAMPLES
|
|
========
|
|
|
|
The included example code is always in a state of flux. This code is what I'm
|
|
using as I work on this repo. If you find something you think is broken, it
|
|
probably really is. I'm happy to help and answer questions on the Foenix
|
|
Discord server.
|