Add ability to specify disk image to fruitjam-build
This commit is contained in:
parent
6dce5594c5
commit
0753cef012
1 changed files with 22 additions and 6 deletions
|
|
@ -5,13 +5,15 @@ set -e
|
|||
# ./fruitjam-build.sh -v # vga resolution, no psram, 128KiB
|
||||
# ./fruitjam-build.sh -v -m448 # vga resolution, no psram, 448KiB
|
||||
# ./fruitjam-build.sh -m4096 # 512x342 resolution, psram, 4096KiB
|
||||
# ./fruitjam-build.sh -d disk.img # specify disk image
|
||||
|
||||
DISP_WIDTH=512
|
||||
DISP_HEIGHT=342
|
||||
MEMSIZE=128
|
||||
MEMSIZE=400
|
||||
DISK_IMAGE=""
|
||||
CMAKE_ARGS=
|
||||
|
||||
while getopts "hvm:" o; do
|
||||
while getopts "hvd:m:" o; do
|
||||
case "$o" in
|
||||
(v)
|
||||
DISP_WIDTH=640
|
||||
|
|
@ -21,11 +23,15 @@ while getopts "hvm:" o; do
|
|||
(m)
|
||||
MEMSIZE=$OPTARG
|
||||
;;
|
||||
(d)
|
||||
DISK_IMAGE=$OPTARG
|
||||
;;
|
||||
(h|?)
|
||||
echo "Usage: $0 [-v] [-m KiB]"
|
||||
echo "Usage: $0 [-v] [-m KiB] [-d diskimage]"
|
||||
echo ""
|
||||
echo " -v: Use framebuffer resolution 640x480 instead of 512x342"
|
||||
echo " -m: Set memory size in KiB"
|
||||
echo " -d: Specify disk image to include"
|
||||
echo ""
|
||||
echo "PSRAM is automatically set depending on memory & framebuffer details"
|
||||
exit
|
||||
|
|
@ -34,12 +40,19 @@ while getopts "hvm:" o; do
|
|||
done
|
||||
|
||||
TAG=fruitjam_${DISP_WIDTH}x${DISP_HEIGHT}_${MEMSIZE}k
|
||||
PSRAM=$((MEMSIZE > 448 || DISP_WIDTH != 640))
|
||||
PSRAM=$((MEMSIZE > 448 || DISP_WIDTH > 640))
|
||||
if [ $PSRAM -ne 0 ] ; then
|
||||
TAG=${TAG}_psram
|
||||
CMAKE_ARGS="$CMAKE_ARGS -DUSE_PSRAM=1"
|
||||
fi
|
||||
|
||||
# Append disk name to build directory if disk image is specified
|
||||
if [ -n "$DISK_IMAGE" ] && [ -f "$DISK_IMAGE" ]; then
|
||||
# Extract filename without extension
|
||||
DISK_NAME=$(basename "$DISK_IMAGE" | sed 's/\.[^.]*$//')
|
||||
TAG=${TAG}_${DISK_NAME}
|
||||
fi
|
||||
|
||||
set -x
|
||||
make -C external/umac clean
|
||||
make -C external/umac DISP_WIDTH=${DISP_WIDTH} DISP_HEIGHT=${DISP_HEIGHT} MEMSIZE=${MEMSIZE}
|
||||
|
|
@ -47,12 +60,15 @@ rm -f rom.bin
|
|||
./external/umac/main -r '4D1F8172 - MacPlus v3.ROM' -W rom.bin || true
|
||||
[ -f rom.bin ]
|
||||
xxd -i < rom.bin > incbin/umac-rom.h
|
||||
if [ -n "$DISK_IMAGE" ] && [ -f "$DISK_IMAGE" ]; then
|
||||
xxd -i < "$DISK_IMAGE" > incbin/umac-disc.h
|
||||
fi
|
||||
rm -rf build_${TAG}
|
||||
cmake -S . -B build_${TAG} \
|
||||
-DPICO_SDK_PATH=../pico-sdk \
|
||||
-DBOARD=adafruit_fruit_jam -DPICO_BOARD=pico2 \
|
||||
-DBOARD=adafruit_fruit_jam -DPICO_BOARD=pimoroni_pico_plus2_rp2350 \
|
||||
-DMEMSIZE=${MEMSIZE} \
|
||||
-DUSE_HSTX=1 \
|
||||
-DSD_TX=35 -DSD_RX=36 -DSD_SCK=34 -DSD_CS=39 -DUSE_SD=1 \
|
||||
${CMAKE_ARGS}
|
||||
make -C build_${TAG} -j$(nproc)
|
||||
make -C build_${TAG} -j$(nproc)
|
||||
Loading…
Reference in a new issue