mirror of
https://github.com/libretro/same_cdi.git
synced 2026-11-08 08:10:21 -10:00
Add the 22ER9141 Digital Video Cartridge as fitted to the Mono-I, and as built into the CD-i 490: an MCD251 video decoder and a DSP56001 doing MPEG-1 audio in software, driven by the fmvdrv/madriv modules in the cartridge ROM. Titles that need it for full motion video, such as The Firm, Mutant Rampage and Monty Python's Invasion from the Planet Skyron, now play. The register file, interrupt behaviour, program stream demultiplexer and DMA handshake are ported from the CDi_MiSTer VMPEG core by Andre Zeps, which reverse-engineered the cartridge. CDi_MiSTer is GPL-3.0, so cdidvc.cpp/.h and mpeg1demux.cpp/.h carry that license and the README says so. The MPEG-1 video and Layer I/II audio decoders are new code under BSD-3-Clause; their tables follow pl_mpeg, whose MIT notice is reproduced in both. The cartridge is fitted to cdimono1 unconditionally, but its driver ROM, vmpega.rom, is optional. Without it the boot code's cartridge probe finds nothing and the machine behaves exactly as before, so existing BIOS sets keep working. With it, the cartridge decodes d00000-efffff: 1MB of extra system RAM, the register file, the ROM, and 512KB of MPEG working RAM that bus-errors until the driver unlocks it, so that the OS-9 memory crawler does not claim it. IRQ level 4 is shared between the CDIC and the cartridge. A flip-flop on the board gives the line to whichever device raised it first and routes the interrupt acknowledge to it; the driver now arbitrates the same way instead of wiring the CDIC straight to the CPU. The picture reaches the screen through the MCD212's External Video backdrop. The cartridge's display window keys the CD-i planes away where region flags select it, so a title that frames its video with a border drawn in a plane keeps the border. Outside the window, or with no cartridge, the backdrop is the CD-i's 16-level black rather than 0. The software list no longer filters out DVC titles. Co-Authored-By: Claude Opus 5.5 <[email protected]>
451 lines
18 KiB
Makefile
451 lines
18 KiB
Makefile
##############################################################################
|
|
# Makefile.common -- static source lists for same_cdi (MAME 0.239, cdi.cpp)
|
|
#
|
|
# All build system generation (GENie/regenie) has been removed. Sources,
|
|
# defines and include paths below were extracted from the project files GENie
|
|
# produced for TARGET=mame SUBTARGET=mess SOURCES=src/mame/drivers/cdi.cpp
|
|
# OSD=retro, and are now maintained by hand.
|
|
#
|
|
# Formerly-generated files (driver list, layouts, fonts, version) are
|
|
# committed under gen/.
|
|
#
|
|
# Expects from includer: CORE_DIR, CORE_OBJ_DIR, and OS selection vars
|
|
# (platform_is_windows/linux/macosx/android = 1/empty).
|
|
##############################################################################
|
|
|
|
GEN_DIR := $(CORE_DIR)/gen
|
|
|
|
INCFLAGS := \
|
|
-I$(CORE_DIR)/src/osd \
|
|
-I$(CORE_DIR)/src/emu \
|
|
-I$(CORE_DIR)/src/devices \
|
|
-I$(CORE_DIR)/src/mame \
|
|
-I$(CORE_DIR)/src/frontend/mame \
|
|
-I$(CORE_DIR)/src/lib \
|
|
-I$(CORE_DIR)/src/lib/util \
|
|
-I$(CORE_DIR)/src/lib/netlist \
|
|
-I$(CORE_DIR)/src/osd/modules/render \
|
|
-I$(CORE_DIR)/src/osd/libretro \
|
|
-I$(CORE_DIR)/src/osd/libretro/libretro-internal \
|
|
-I$(CORE_DIR)/src/osd/libretro/libretro-common/include \
|
|
-I$(GEN_DIR) \
|
|
-I$(GEN_DIR)/emu \
|
|
-I$(GEN_DIR)/emu/layout \
|
|
-I$(GEN_DIR)/mame/layout \
|
|
-I$(CORE_DIR)/3rdparty \
|
|
-I$(CORE_DIR)/3rdparty/utf8proc
|
|
|
|
ifeq ($(platform_is_windows), 1)
|
|
INCFLAGS += -I$(CORE_DIR)/src/osd/windows -I$(CORE_DIR)/3rdparty/compat/mingw -I$(CORE_DIR)/3rdparty/compat/winsdk-override
|
|
endif
|
|
|
|
# Defines common to every translation unit
|
|
COREDEFINES := -D__LIBRETRO__ -DNDEBUG -DFLAC__NO_DLL
|
|
|
|
ifeq ($(platform_is_windows), 1)
|
|
COREDEFINES += -DCRLF=3 -DUNICODE -D_UNICODE -Dmain=utf8_main -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0501
|
|
else
|
|
COREDEFINES += -DCRLF=2
|
|
endif
|
|
|
|
ifneq ($(BIGENDIAN), 1)
|
|
COREDEFINES += -DLSB_FIRST
|
|
endif
|
|
|
|
# Every TU is compiled with the retro prefix header, as under the old system
|
|
COREDEFINES += -include $(CORE_DIR)/src/osd/libretro/retroprefix.h
|
|
|
|
# OSD layer defines (osd_retro/ocore_retro groups only, as before)
|
|
OSDDEFS := -DRETROMAME -DOSD_RETRO
|
|
ifneq ($(platform_is_windows), 1)
|
|
OSDDEFS += -DSDLMAME_UNIX -DRETROMAME_UNIX
|
|
endif
|
|
ifeq ($(platform_is_linux), 1)
|
|
ifneq ($(DONT_USE_NETWORK), 1)
|
|
OSDDEFS += -DUSE_NETWORK
|
|
endif
|
|
endif
|
|
ifeq ($(platform_is_macosx), 1)
|
|
OSDDEFS += -DSDLMAME_MACOSX -DSDLMAME_DARWIN
|
|
endif
|
|
|
|
|
|
##############################################################################
|
|
# mess
|
|
##############################################################################
|
|
MESS_SRC_CXX := \
|
|
$(CORE_DIR)/gen/mame/mess/drivlist.cpp \
|
|
$(CORE_DIR)/gen/version.cpp \
|
|
$(CORE_DIR)/src/mame/mess.cpp \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-internal/libretro.cpp \
|
|
$(CORE_DIR)/src/osd/libretro/retromain.cpp
|
|
|
|
MESS_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(MESS_SRC_CXX:.cpp=.o))
|
|
$(MESS_OBJS): GRPFLAGS :=
|
|
OBJECTS += $(MESS_OBJS)
|
|
|
|
##############################################################################
|
|
# mame_mess
|
|
##############################################################################
|
|
MAME_MESS_SRC_CXX := \
|
|
$(CORE_DIR)/src/mame/drivers/cdi.cpp \
|
|
$(CORE_DIR)/src/mame/machine/cdicdic.cpp \
|
|
$(CORE_DIR)/src/mame/machine/cdidvc.cpp \
|
|
$(CORE_DIR)/src/mame/machine/cdislavehle.cpp \
|
|
$(CORE_DIR)/src/mame/machine/mpeg1audio.cpp \
|
|
$(CORE_DIR)/src/mame/machine/mpeg1demux.cpp \
|
|
$(CORE_DIR)/src/mame/machine/mpeg1video.cpp \
|
|
$(CORE_DIR)/src/mame/video/mcd212.cpp
|
|
|
|
MAME_MESS_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(MAME_MESS_SRC_CXX:.cpp=.o))
|
|
$(MAME_MESS_OBJS): GRPFLAGS :=
|
|
OBJECTS += $(MAME_MESS_OBJS)
|
|
|
|
##############################################################################
|
|
# frontend
|
|
##############################################################################
|
|
FRONTEND_SRC_CXX := \
|
|
$(CORE_DIR)/src/frontend/mame/audit.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/cheat.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/clifront.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/infoxml.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/iptseqpoll.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/language.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/mame.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/mameopts.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/media_ident.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/pluginopts.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/about.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/analogipt.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/auditmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/cheatopt.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/confswitch.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/custui.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/datmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/devopt.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/dirmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/filecreate.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/filemngr.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/filesel.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/icorender.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/imgcntrl.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/info.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/info_pty.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/inifile.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/inputmap.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/keyboard.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/mainmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/menu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/miscmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/moptions.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/optsmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/pluginopt.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/quitmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/selector.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/selgame.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/selmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/selsoft.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/simpleselgame.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/sliders.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/slotopt.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/sndmenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/state.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/submenu.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/swlist.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/systemlist.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/text.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/textbox.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/ui.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/utils.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/videoopt.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/viewgfx.cpp \
|
|
$(CORE_DIR)/src/frontend/mame/ui/widgets.cpp
|
|
|
|
FRONTEND_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(FRONTEND_SRC_CXX:.cpp=.o))
|
|
$(FRONTEND_OBJS): GRPFLAGS :=
|
|
OBJECTS += $(FRONTEND_OBJS)
|
|
|
|
##############################################################################
|
|
# emu
|
|
##############################################################################
|
|
EMU_SRC_CXX := \
|
|
$(CORE_DIR)/src/emu/addrmap.cpp \
|
|
$(CORE_DIR)/src/emu/attotime.cpp \
|
|
$(CORE_DIR)/src/emu/bookkeeping.cpp \
|
|
$(CORE_DIR)/src/emu/config.cpp \
|
|
$(CORE_DIR)/src/emu/crsshair.cpp \
|
|
$(CORE_DIR)/src/emu/debug/express.cpp \
|
|
$(CORE_DIR)/src/emu/debug/textbuf.cpp \
|
|
$(CORE_DIR)/src/emu/debugger.cpp \
|
|
$(CORE_DIR)/src/emu/devcb.cpp \
|
|
$(CORE_DIR)/src/emu/devcpu.cpp \
|
|
$(CORE_DIR)/src/emu/devdelegate.cpp \
|
|
$(CORE_DIR)/src/emu/devfind.cpp \
|
|
$(CORE_DIR)/src/emu/device.cpp \
|
|
$(CORE_DIR)/src/emu/diexec.cpp \
|
|
$(CORE_DIR)/src/emu/digfx.cpp \
|
|
$(CORE_DIR)/src/emu/diimage.cpp \
|
|
$(CORE_DIR)/src/emu/dimemory.cpp \
|
|
$(CORE_DIR)/src/emu/dinetwork.cpp \
|
|
$(CORE_DIR)/src/emu/dinvram.cpp \
|
|
$(CORE_DIR)/src/emu/dipalette.cpp \
|
|
$(CORE_DIR)/src/emu/dipty.cpp \
|
|
$(CORE_DIR)/src/emu/dirtc.cpp \
|
|
$(CORE_DIR)/src/emu/dislot.cpp \
|
|
$(CORE_DIR)/src/emu/disound.cpp \
|
|
$(CORE_DIR)/src/emu/distate.cpp \
|
|
$(CORE_DIR)/src/emu/divideo.cpp \
|
|
$(CORE_DIR)/src/emu/drawgfx.cpp \
|
|
$(CORE_DIR)/src/emu/drivenum.cpp \
|
|
$(CORE_DIR)/src/emu/driver.cpp \
|
|
$(CORE_DIR)/src/emu/drivers/empty.cpp \
|
|
$(CORE_DIR)/src/emu/emucore.cpp \
|
|
$(CORE_DIR)/src/emu/emumem.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_aspace.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedp.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedr0.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedr1.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedr2.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedr3.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedw0.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedw1.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedw2.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hedw3.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hem.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_hep.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_het.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_heu.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_heun.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_mud.cpp \
|
|
$(CORE_DIR)/src/emu/emumem_mview.cpp \
|
|
$(CORE_DIR)/src/emu/emuopts.cpp \
|
|
$(CORE_DIR)/src/emu/emupal.cpp \
|
|
$(CORE_DIR)/src/emu/fileio.cpp \
|
|
$(CORE_DIR)/src/emu/hashfile.cpp \
|
|
$(CORE_DIR)/src/emu/image.cpp \
|
|
$(CORE_DIR)/src/emu/input.cpp \
|
|
$(CORE_DIR)/src/emu/inputdev.cpp \
|
|
$(CORE_DIR)/src/emu/ioport.cpp \
|
|
$(CORE_DIR)/src/emu/machine.cpp \
|
|
$(CORE_DIR)/src/emu/main.cpp \
|
|
$(CORE_DIR)/src/emu/mconfig.cpp \
|
|
$(CORE_DIR)/src/emu/memarray.cpp \
|
|
$(CORE_DIR)/src/emu/natkeyboard.cpp \
|
|
$(CORE_DIR)/src/emu/network.cpp \
|
|
$(CORE_DIR)/src/emu/output.cpp \
|
|
$(CORE_DIR)/src/emu/parameters.cpp \
|
|
$(CORE_DIR)/src/emu/recording.cpp \
|
|
$(CORE_DIR)/src/emu/render.cpp \
|
|
$(CORE_DIR)/src/emu/rendfont.cpp \
|
|
$(CORE_DIR)/src/emu/rendlay.cpp \
|
|
$(CORE_DIR)/src/emu/rendutil.cpp \
|
|
$(CORE_DIR)/src/emu/romentry.cpp \
|
|
$(CORE_DIR)/src/emu/romload.cpp \
|
|
$(CORE_DIR)/src/emu/save.cpp \
|
|
$(CORE_DIR)/src/emu/schedule.cpp \
|
|
$(CORE_DIR)/src/emu/screen.cpp \
|
|
$(CORE_DIR)/src/emu/softlist.cpp \
|
|
$(CORE_DIR)/src/emu/softlist_dev.cpp \
|
|
$(CORE_DIR)/src/emu/sound.cpp \
|
|
$(CORE_DIR)/src/emu/speaker.cpp \
|
|
$(CORE_DIR)/src/emu/tilemap.cpp \
|
|
$(CORE_DIR)/src/emu/uiinput.cpp \
|
|
$(CORE_DIR)/src/emu/validity.cpp \
|
|
$(CORE_DIR)/src/emu/video.cpp \
|
|
$(CORE_DIR)/src/emu/video/rgbsse.cpp \
|
|
$(CORE_DIR)/src/emu/xtal.cpp
|
|
|
|
EMU_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(EMU_SRC_CXX:.cpp=.o))
|
|
$(EMU_OBJS): GRPFLAGS :=
|
|
$(EMU_OBJS): GRPINCS := $(INCFLAGS) -I$(CORE_DIR)/src/lib/util/rxml
|
|
OBJECTS += $(EMU_OBJS)
|
|
|
|
##############################################################################
|
|
# optional
|
|
##############################################################################
|
|
OPTIONAL_SRC_CXX := \
|
|
$(CORE_DIR)/src/devices/cpu/m68000/m68kcpu.cpp \
|
|
$(CORE_DIR)/src/devices/cpu/m68000/m68kops.cpp \
|
|
$(CORE_DIR)/src/devices/cpu/m6805/m6805.cpp \
|
|
$(CORE_DIR)/src/devices/cpu/m6805/m68hc05.cpp \
|
|
$(CORE_DIR)/src/devices/imagedev/chd_cd.cpp \
|
|
$(CORE_DIR)/src/devices/machine/scc68070.cpp \
|
|
$(CORE_DIR)/src/devices/machine/timekpr.cpp \
|
|
$(CORE_DIR)/src/devices/sound/dmadac.cpp \
|
|
$(CORE_DIR)/src/devices/video/vector.cpp
|
|
|
|
OPTIONAL_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(OPTIONAL_SRC_CXX:.cpp=.o))
|
|
$(OPTIONAL_OBJS): GRPFLAGS :=
|
|
OBJECTS += $(OPTIONAL_OBJS)
|
|
|
|
##############################################################################
|
|
# utils
|
|
##############################################################################
|
|
UTILS_SRC_CXX := \
|
|
$(CORE_DIR)/src/lib/util/aviio.cpp \
|
|
$(CORE_DIR)/src/lib/util/bitmap.cpp \
|
|
$(CORE_DIR)/src/lib/util/cdrom.cpp \
|
|
$(CORE_DIR)/src/lib/util/chd.cpp \
|
|
$(CORE_DIR)/src/lib/util/chdcd.cpp \
|
|
$(CORE_DIR)/src/lib/util/corefile.cpp \
|
|
$(CORE_DIR)/src/lib/util/corestr.cpp \
|
|
$(CORE_DIR)/src/lib/util/coreutil.cpp \
|
|
$(CORE_DIR)/src/lib/util/delegate.cpp \
|
|
$(CORE_DIR)/src/lib/util/hash.cpp \
|
|
$(CORE_DIR)/src/lib/util/hashing.cpp \
|
|
$(CORE_DIR)/src/lib/util/ioprocs.cpp \
|
|
$(CORE_DIR)/src/lib/util/ioprocsfilter.cpp \
|
|
$(CORE_DIR)/src/lib/util/jedparse.cpp \
|
|
$(CORE_DIR)/src/lib/util/language.cpp \
|
|
$(CORE_DIR)/src/lib/util/msdib.cpp \
|
|
$(CORE_DIR)/src/lib/util/nanosvg.cpp \
|
|
$(CORE_DIR)/src/lib/util/opresolv.cpp \
|
|
$(CORE_DIR)/src/lib/util/options.cpp \
|
|
$(CORE_DIR)/src/lib/util/palette.cpp \
|
|
$(CORE_DIR)/src/lib/util/png.cpp \
|
|
$(CORE_DIR)/src/lib/util/strformat.cpp \
|
|
$(CORE_DIR)/src/lib/util/timeconv.cpp \
|
|
$(CORE_DIR)/src/lib/util/un7z.cpp \
|
|
$(CORE_DIR)/src/lib/util/unicode.cpp \
|
|
$(CORE_DIR)/src/lib/util/unzip.cpp \
|
|
$(CORE_DIR)/src/lib/util/vecstream.cpp \
|
|
$(CORE_DIR)/src/lib/util/wavwrite.cpp \
|
|
$(CORE_DIR)/src/lib/util/xmlfile.cpp \
|
|
$(CORE_DIR)/src/lib/util/zippath.cpp
|
|
|
|
UTILS_SRC_C := \
|
|
$(CORE_DIR)/src/lib/util/rxml/rxml.c
|
|
|
|
UTILS_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(UTILS_SRC_CXX:.cpp=.o)) \
|
|
$(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(UTILS_SRC_C:.c=.o))
|
|
$(UTILS_OBJS): GRPFLAGS := -DUTF8PROC_STATIC
|
|
$(UTILS_OBJS): GRPINCS := $(INCFLAGS) -I$(CORE_DIR)/src/lib/util/rxml
|
|
OBJECTS += $(UTILS_OBJS)
|
|
|
|
##############################################################################
|
|
# osd_retro
|
|
##############################################################################
|
|
OSD_RETRO_SRC_CXX := \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-internal/retro_init.cpp \
|
|
$(CORE_DIR)/src/osd/libretro/video.cpp \
|
|
$(CORE_DIR)/src/osd/libretro/window.cpp \
|
|
$(CORE_DIR)/src/osd/modules/debugger/none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/diagnostics/none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/font/font_none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/input/input_common.cpp \
|
|
$(CORE_DIR)/src/osd/modules/input/input_none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/input/input_retro.cpp \
|
|
$(CORE_DIR)/src/osd/modules/lib/osdobj_common.cpp \
|
|
$(CORE_DIR)/src/osd/modules/midi/none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/monitor/monitor_common.cpp \
|
|
$(CORE_DIR)/src/osd/modules/monitor/monitor_retro.cpp \
|
|
$(CORE_DIR)/src/osd/modules/netdev/none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/osdwindow.cpp \
|
|
$(CORE_DIR)/src/osd/modules/output/none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/render/drawretro.cpp \
|
|
$(CORE_DIR)/src/osd/modules/sound/none.cpp \
|
|
$(CORE_DIR)/src/osd/modules/sound/retro_sound.cpp \
|
|
$(CORE_DIR)/src/osd/osdnet.cpp \
|
|
$(CORE_DIR)/src/osd/watchdog.cpp
|
|
|
|
OSD_RETRO_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(OSD_RETRO_SRC_CXX:.cpp=.o))
|
|
$(OSD_RETRO_OBJS): GRPFLAGS := $(OSDDEFS) -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_CONSTANT_MACROS -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DNO_USE_MIDI
|
|
OBJECTS += $(OSD_RETRO_OBJS)
|
|
|
|
##############################################################################
|
|
# ocore_retro
|
|
##############################################################################
|
|
OCORE_RETRO_SRC_CXX := \
|
|
$(CORE_DIR)/src/osd/modules/lib/osdlib_retro.cpp \
|
|
$(CORE_DIR)/src/osd/modules/osdmodule.cpp \
|
|
$(CORE_DIR)/src/osd/osdcore.cpp \
|
|
$(CORE_DIR)/src/osd/osdsync.cpp \
|
|
$(CORE_DIR)/src/osd/strconv.cpp
|
|
|
|
OCORE_RETRO_SRC_CXX += \
|
|
$(CORE_DIR)/src/osd/libretro/vfsfile.cpp
|
|
|
|
LRC_VFS_SRC_C := \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/compat/compat_posix_string.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/compat/compat_strl.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/compat/fopen_utf8.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/encodings/encoding_utf.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/file/file_path.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/file/file_path_io.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/file/retro_dirent.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/streams/file_stream.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/string/stdstring.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/time/rtime.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/vfs/vfs_implementation.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/encodings/encoding_crc32.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/encodings/encoding_deflate.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/encodings/encoding_huffman.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/encodings/encoding_rzstd.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/features/features_cpu.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/flac/rflac.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/chd/rchd.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/jpeg/rjpeg.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/7z/r7z_archive.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/7z/r7z_bcj2.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/7z/r7z_filters.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/7z/r7z_lzma.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/7z/r7z_lzma2.c \
|
|
$(CORE_DIR)/src/osd/libretro/libretro-common/formats/7z/r7z_lzma_stream.c
|
|
|
|
LRC_VFS_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(LRC_VFS_SRC_C:.c=.o))
|
|
$(LRC_VFS_OBJS): GRPINCS := -I$(CORE_DIR)/src/osd/libretro/libretro-common/include -I$(CORE_DIR)/src/osd/libretro/libretro-internal
|
|
$(LRC_VFS_OBJS): GRPFLAGS := -DHAVE_RFLAC -DHAVE_RZSTD
|
|
OBJECTS += $(LRC_VFS_OBJS)
|
|
|
|
OCORE_RETRO_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(OCORE_RETRO_SRC_CXX:.cpp=.o))
|
|
$(OCORE_RETRO_OBJS): GRPFLAGS := $(OSDDEFS)
|
|
OBJECTS += $(OCORE_RETRO_OBJS)
|
|
|
|
##############################################################################
|
|
# utf8proc
|
|
##############################################################################
|
|
UTF8PROC_SRC_C := \
|
|
$(CORE_DIR)/3rdparty/utf8proc/utf8proc.c
|
|
|
|
UTF8PROC_OBJS := $(patsubst $(CORE_DIR)/%,$(CORE_OBJ_DIR)/%,$(UTF8PROC_SRC_C:.c=.o))
|
|
$(UTF8PROC_OBJS): GRPFLAGS := -DUTF8PROC_STATIC
|
|
OBJECTS += $(UTF8PROC_OBJS)
|
|
|
|
##############################################################################
|
|
# Link layout
|
|
#
|
|
# The old system linked the mess "exe" objects against per-project static
|
|
# archives; archive members are only pulled in when referenced. Several
|
|
# compiled objects (legscsi, mfmhd, ...) reference devices that are not part
|
|
# of this build and are never pulled. A flat object link would fail on those
|
|
# dangling references, so the archive structure is preserved.
|
|
##############################################################################
|
|
|
|
# Objects linked directly (the old "mess" exe project)
|
|
LINK_OBJS := $(MESS_OBJS)
|
|
|
|
# Archives, in the old LIBDEPS order
|
|
CORE_ARCHIVES := \
|
|
$(CORE_OBJ_DIR)/libmame_mess.a \
|
|
$(CORE_OBJ_DIR)/libfrontend.a \
|
|
$(CORE_OBJ_DIR)/libemu.a \
|
|
$(CORE_OBJ_DIR)/liboptional.a \
|
|
$(CORE_OBJ_DIR)/libutils.a \
|
|
$(CORE_OBJ_DIR)/libosd_retro.a \
|
|
$(CORE_OBJ_DIR)/libocore_retro.a \
|
|
$(CORE_OBJ_DIR)/libutf8proc.a
|
|
|
|
$(CORE_OBJ_DIR)/libmame_mess.a: $(MAME_MESS_OBJS)
|
|
$(CORE_OBJ_DIR)/libfrontend.a: $(FRONTEND_OBJS)
|
|
$(CORE_OBJ_DIR)/libemu.a: $(EMU_OBJS)
|
|
$(CORE_OBJ_DIR)/liboptional.a: $(OPTIONAL_OBJS)
|
|
$(CORE_OBJ_DIR)/libutils.a: $(UTILS_OBJS)
|
|
$(CORE_OBJ_DIR)/libosd_retro.a: $(OSD_RETRO_OBJS)
|
|
$(CORE_OBJ_DIR)/libocore_retro.a: $(OCORE_RETRO_OBJS) $(LRC_VFS_OBJS)
|
|
$(CORE_OBJ_DIR)/libutf8proc.a: $(UTF8PROC_OBJS)
|
|
|
|
$(CORE_ARCHIVES):
|
|
@echo "AR $@"
|
|
@rm -f $@
|
|
@$(AR) rcs $@ $^
|