mirror of
https://codeberg.org/virtualxt/virtualxt.git
synced 2026-10-22 14:34:45 +00:00
Pi 3 bare-metal improvements: - Offload CRT filter to Core 2 via CRT_FILTER_EXTERNAL compile flag. Core 1 queues frames; Core 2 worker (RenderThread) processes asynchronously with 1-frame latency. Trampoline pattern in crt.c/h. - Add 4:3 letterboxed scaling on Core 2 render thread. HW framebuffer created once at physical display resolution (CBcmFrameBuffer auto-detect); largest centered 4:3 rect computed, black bars cleared once, nearest-neighbor scale into target rect. - Raise KERNEL_MAX_SIZE to 0x1400000 (20 MB) across Circle Config.mk, kernel Makefile, and package-rpi.sh to accommodate ~19 MB .bss. - Add vxt_peripheral_print_status() in src/vxt/peripheral.c that logs CPU type (8088/V20), frequency, installed peripherals, IO map ranges, and memory map ranges. Called from retro_load_game() in core.c. Refs: docs/STATUS.md
40 lines
1.3 KiB
Makefile
40 lines
1.3 KiB
Makefile
# VirtualXT -- Circle baremetal kernel Makefile
|
|
#
|
|
# Builds a Raspberry Pi kernel image that loads VirtualXT as a libretro core.
|
|
# Requires Circle to be built first (see ../circle/README).
|
|
#
|
|
# Usage:
|
|
# make -C tools/circle/kernel
|
|
#
|
|
# This builds the Circle frontend objects and links them with
|
|
# virtualxt_libretro.o (produced by `make rpi` from the project root).
|
|
|
|
ifeq ($(CIRCLEHOME),)
|
|
CIRCLEHOME = ../../../../circle
|
|
endif
|
|
|
|
# VirtualXT core object and include paths.
|
|
VXT_HOME = ../../..
|
|
CFLAGS = -I$(VXT_HOME)/src -I$(VXT_HOME)/tools/libretro
|
|
|
|
# VirtualXT's static .bss footprint (~14.8 MB) exceeds Circle's default
|
|
# KERNEL_MAX_SIZE of 2 MB, which would trigger the silent halt in
|
|
# circle/lib/sysinit.cpp before any output is initialized. The matching
|
|
# define MUST also be present in $(CIRCLEHOME)/Config.mk so that libcircle
|
|
# itself is built with the larger value. See docs/STATUS.md.
|
|
DEFINE += -DKERNEL_MAX_SIZE=0x1400000 -DCRT_FILTER_EXTERNAL
|
|
|
|
OBJS = main.o kernel.o emuloop.o $(VXT_HOME)/virtualxt_libretro.o
|
|
|
|
LIBS = $(CIRCLEHOME)/lib/libcircle.a \
|
|
$(CIRCLEHOME)/lib/usb/libusb.a \
|
|
$(CIRCLEHOME)/lib/sound/libsound.a \
|
|
$(CIRCLEHOME)/lib/input/libinput.a \
|
|
$(CIRCLEHOME)/lib/fs/libfs.a \
|
|
$(CIRCLEHOME)/addon/fatfs/libfatfs.a \
|
|
$(CIRCLEHOME)/addon/SDCard/libsdcard.a
|
|
|
|
include $(CIRCLEHOME)/Rules.mk
|
|
|
|
-include $(DEPS)
|