mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2025-02-16 15:30:37 +00:00
Move build system to Meson
This is so, so mucher nicer than CMake. Unfortunately, SDL2 doesn't compile, so I have to go fix that now.
This commit is contained in:
parent
514add67d8
commit
b5d3c3ef05
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ bld
|
|||||||
*.pdb
|
*.pdb
|
||||||
build/
|
build/
|
||||||
.vs/*
|
.vs/*
|
||||||
|
make/
|
||||||
|
222
CMakeLists.txt
222
CMakeLists.txt
@ -1,222 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.1)
|
|
||||||
|
|
||||||
if(${CMAKE_VERSION} VERSION_LESS 3.15)
|
|
||||||
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
|
|
||||||
else()
|
|
||||||
cmake_policy(VERSION 3.15)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
project(
|
|
||||||
microvmac
|
|
||||||
VERSION 0.37.0
|
|
||||||
DESCRIPTION "68k Macintosh emulator"
|
|
||||||
LANGUAGES C
|
|
||||||
)
|
|
||||||
|
|
||||||
# For now, only target WIN32; just to make sure everything still works
|
|
||||||
#set(TARGET_PLATFORM AUTO CACHE STRING "Set platform to compile for")
|
|
||||||
#set_property(CACHE TARGET_PLATFORM PROPERTY STRINGS WINDOWS SDL2)
|
|
||||||
|
|
||||||
# Git submodule libraries
|
|
||||||
add_library(incbin INTERFACE)
|
|
||||||
target_include_directories(incbin INTERFACE src/incbin/)
|
|
||||||
|
|
||||||
# Hardware libraries
|
|
||||||
# Some are temporarily disabled while I get CMake up and running
|
|
||||||
|
|
||||||
#add_library(
|
|
||||||
# hw_adb OBJECT
|
|
||||||
# src/HW/ADB/ADBEMDEV.c
|
|
||||||
#)
|
|
||||||
#target_include_directories(hw_adb PRIVATE src/ cfg/)
|
|
||||||
#target_include_directories(hw_adb PRIVATE src/HW/ADB/)
|
|
||||||
#target_compile_definitions(hw_adb PUBLIC EmADB=1)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_disk OBJECT
|
|
||||||
src/HW/DISK/IWMEMDEV.c
|
|
||||||
src/HW/DISK/SONYEMDV.c
|
|
||||||
src/PATCHES/SONYDRV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_disk PRIVATE src/ cfg/ rsrc/)
|
|
||||||
target_include_directories(hw_disk PRIVATE src/HW/DISK/)
|
|
||||||
configure_file(rsrc/SONYDRV.bin SONYDRV.bin COPYONLY)
|
|
||||||
configure_file(rsrc/SONYICO.bin SONYICO.bin COPYONLY)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_kbrd OBJECT
|
|
||||||
src/HW/KBRD/KBRDEMDV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_kbrd PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_kbrd PRIVATE src/HW/KBRD/)
|
|
||||||
target_compile_definitions(hw_kbrd PUBLIC EmClassicKbrd=1)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_m68k OBJECT
|
|
||||||
# src/HW/M68K/DISAM68K.c
|
|
||||||
src/HW/M68K/M68KITAB.c
|
|
||||||
src/HW/M68K/MINEM68K.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_m68k PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_m68k PUBLIC src/HW/M68K/)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_mouse OBJECT
|
|
||||||
src/HW/MOUSE/MOUSEMDV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_mouse PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_mouse PRIVATE src/HW/MOUSE/)
|
|
||||||
|
|
||||||
#add_library(
|
|
||||||
# hw_powerman OBJECT
|
|
||||||
# src/HW/POWERMAN/PMUEMDEV.c
|
|
||||||
#)
|
|
||||||
#target_include_directories(hw_powerman PRIVATE src/ cfg/)
|
|
||||||
#target_include_directories(hw_powerman PRIVATE src/HW/POWERMAN/)
|
|
||||||
#target_compile_definitions(hw_powerman PUBLIC EmPMU=1)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_rtc OBJECT
|
|
||||||
src/HW/RTC/RTCEMDEV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_rtc PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_rtc PRIVATE src/HW/RTC/)
|
|
||||||
target_compile_definitions(hw_rtc PUBLIC EmRtc=1)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_scc OBJECT
|
|
||||||
src/HW/SCC/SCCEMDEV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_scc PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_scc PRIVATE src/HW/SCC/)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_screen OBJECT
|
|
||||||
src/HW/SCREEN/SCRNEMDV.c
|
|
||||||
src/PATCHES/SCRNHACK.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_screen PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_screen PRIVATE src/HW/SCREEN/)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_scsi OBJECT
|
|
||||||
src/HW/SCSI/SCSIEMDV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_scsi PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_scsi PRIVATE src/HW/SCSI/)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_sound OBJECT
|
|
||||||
# src/HW/SOUND/ASCEMDEV.c
|
|
||||||
src/HW/SOUND/SNDEMDEV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_sound PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_sound PRIVATE src/HW/SOUND/)
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
hw_via1 OBJECT
|
|
||||||
src/HW/VIA/VIAEMDEV.c
|
|
||||||
)
|
|
||||||
target_include_directories(hw_via1 PRIVATE src/ cfg/)
|
|
||||||
target_include_directories(hw_via1 PRIVATE src/HW/VIA/)
|
|
||||||
|
|
||||||
#add_library(
|
|
||||||
# hw_via2 OBJECT
|
|
||||||
# src/HW/VIA/VIA2EMDV.c
|
|
||||||
#)
|
|
||||||
#target_include_directories(hw_via2 PRIVATE src/ cfg/)
|
|
||||||
#target_include_directories(hw_via2 PRIVATE src/HW/VIA/)
|
|
||||||
#target_compile_definitions(hw_via2 PUBLIC EmVIA2=1)
|
|
||||||
|
|
||||||
#add_library(
|
|
||||||
# hw_vidcard OBJECT
|
|
||||||
# src/HW/VIDCARD/VIDEMDEV.c
|
|
||||||
#)
|
|
||||||
#target_include_directories(hw_vidcard PRIVATE src/ cfg/)
|
|
||||||
#target_include_directories(hw_vidcard PRIVATE src/HW/VIA/)
|
|
||||||
#target_compile_definitions(hw_vidcard PUBLIC EmVidCard=1)
|
|
||||||
#target_compile_definitions(hw_vidcard PUBLIC IncludeVidMem=1)
|
|
||||||
|
|
||||||
# Macintosh definitions
|
|
||||||
add_library(tgt_macbase INTERFACE) # things every Mac has
|
|
||||||
target_link_libraries(
|
|
||||||
tgt_macbase INTERFACE
|
|
||||||
hw_disk
|
|
||||||
hw_m68k
|
|
||||||
hw_rtc
|
|
||||||
hw_sound
|
|
||||||
hw_via1
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(tgt_macplus INTERFACE) # Macintosh Plus
|
|
||||||
target_link_libraries(
|
|
||||||
tgt_macplus INTERFACE
|
|
||||||
tgt_macbase
|
|
||||||
hw_screen
|
|
||||||
hw_mouse
|
|
||||||
hw_kbrd
|
|
||||||
)
|
|
||||||
target_compile_definitions(tgt_macplus INTERFACE CurEmMd=kEmMd_Plus)
|
|
||||||
|
|
||||||
#add_library(tgt_macii INTERFACE) # Macintosh II
|
|
||||||
#target_link_libraries(tgt_macii INTERFACE tgt_macbase hw_vidcard hw_adb)
|
|
||||||
#target_compile_definitions(tgt_macii INTERFACE CurEmMd=kEmMd_Plus)
|
|
||||||
|
|
||||||
# User interface definitions
|
|
||||||
|
|
||||||
add_library(
|
|
||||||
ui_win32 OBJECT
|
|
||||||
src/UI/COMOSGLU.c
|
|
||||||
src/UI/CONTROLM.c
|
|
||||||
src/UI/WIN32/DBGLOG.c
|
|
||||||
src/UI/WIN32/INTLKBRD.c
|
|
||||||
src/UI/WIN32/KEYBOARD.c
|
|
||||||
src/UI/WIN32/OSGLUWIN.c
|
|
||||||
src/UI/WIN32/SOUND.c
|
|
||||||
src/UI/WIN32/TIMEDATE.c
|
|
||||||
rsrc/WIN32/main.rc
|
|
||||||
)
|
|
||||||
target_include_directories(ui_win32 PRIVATE cfg/ src/ rsrc/)
|
|
||||||
target_include_directories(ui_win32 PRIVATE src/UI/ src/UI/WIN32/)
|
|
||||||
configure_file(rsrc/WIN32/ICONAPPW.ico ICONAPPW.ico COPYONLY)
|
|
||||||
configure_file(rsrc/WIN32/ICONDSKW.ico ICONDSKW.ico COPYONLY)
|
|
||||||
configure_file(rsrc/WIN32/ICONROMW.ico ICONROMW.ico COPYONLY)
|
|
||||||
target_link_libraries(ui_win32 PUBLIC winmm ole32 uuid)
|
|
||||||
|
|
||||||
#add_library(
|
|
||||||
# ui_sdl2 OBJECT
|
|
||||||
# src/UI/COMOSGLU.c
|
|
||||||
# src/UI/CONTROLM.c
|
|
||||||
# src/UI/SDL2/OSGLUSD2.c
|
|
||||||
#)
|
|
||||||
#target_include_directories(ui_sdl2 PUBLIC src/UI/ src/UI/SDL2/)
|
|
||||||
|
|
||||||
## Final compiled program definition
|
|
||||||
|
|
||||||
add_executable(
|
|
||||||
microvmac WIN32
|
|
||||||
src/PROGMAIN.c
|
|
||||||
src/GLOBGLUE.c
|
|
||||||
src/PATCHES/ROMEMDEV.c
|
|
||||||
src/UTIL/DATE2SEC.c
|
|
||||||
)
|
|
||||||
target_include_directories(microvmac PRIVATE cfg/ src/)
|
|
||||||
set_target_properties(microvmac PROPERTIES C_STANDARD 99 C_STANDARD_REQUIRED True)
|
|
||||||
#target_link_libraries(microvmac INTERFACE tgt_macplus) # temporary
|
|
||||||
target_link_libraries(microvmac PRIVATE incbin ui_win32)
|
|
||||||
|
|
||||||
# temporary, because "INTERFACE" isn't working how I expect it to
|
|
||||||
target_link_libraries(
|
|
||||||
microvmac PRIVATE
|
|
||||||
hw_disk
|
|
||||||
hw_m68k
|
|
||||||
hw_rtc
|
|
||||||
hw_sound
|
|
||||||
hw_via1
|
|
||||||
hw_screen
|
|
||||||
hw_mouse
|
|
||||||
hw_kbrd
|
|
||||||
hw_scc
|
|
||||||
hw_scsi
|
|
||||||
)
|
|
||||||
target_compile_definitions(microvmac PUBLIC CurEmMd=kEmMd_Plus)
|
|
@ -29,8 +29,6 @@
|
|||||||
#define IncludeSonyNew 1
|
#define IncludeSonyNew 1
|
||||||
#define IncludeSonyNameNew 1
|
#define IncludeSonyNameNew 1
|
||||||
|
|
||||||
#define kROM_Size 0x00020000
|
|
||||||
|
|
||||||
#define IncludePbufs 1
|
#define IncludePbufs 1
|
||||||
#define NumPbufs 4
|
#define NumPbufs 4
|
||||||
|
|
||||||
|
@ -1,81 +0,0 @@
|
|||||||
/*
|
|
||||||
Configuration options used by platform specific code.
|
|
||||||
|
|
||||||
Hopefully, one day, we can remove this file entirely.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CNFGRAPI_H
|
|
||||||
#define CNFGRAPI_H
|
|
||||||
|
|
||||||
// TODO: replace below with struct of variable options
|
|
||||||
#define RomFileName "vMac.ROM"
|
|
||||||
#define kCheckSumRom_Size 0x00020000
|
|
||||||
#define kRomCheckSum1 0x4D1EEEE1
|
|
||||||
#define kRomCheckSum2 0x4D1EEAE1
|
|
||||||
#define kRomCheckSum3 0x4D1F8172
|
|
||||||
|
|
||||||
// Keybindings
|
|
||||||
// TODO: Make these variable
|
|
||||||
#define MKC_formac_Control MKC_CM
|
|
||||||
#define MKC_formac_Command MKC_Command
|
|
||||||
#define MKC_formac_Option MKC_Option
|
|
||||||
#define MKC_formac_Shift MKC_Shift
|
|
||||||
#define MKC_formac_CapsLock MKC_CapsLock
|
|
||||||
#define MKC_formac_Escape MKC_Escape
|
|
||||||
#define MKC_formac_BackSlash MKC_BackSlash
|
|
||||||
#define MKC_formac_Slash MKC_Slash
|
|
||||||
#define MKC_formac_Grave MKC_Grave
|
|
||||||
#define MKC_formac_Enter MKC_Enter
|
|
||||||
#define MKC_formac_PageUp MKC_PageUp
|
|
||||||
#define MKC_formac_PageDown MKC_PageDown
|
|
||||||
#define MKC_formac_Home MKC_Home
|
|
||||||
#define MKC_formac_End MKC_End
|
|
||||||
#define MKC_formac_Help MKC_Help
|
|
||||||
#define MKC_formac_ForwardDel MKC_ForwardDel
|
|
||||||
#define MKC_formac_F1 MKC_Option
|
|
||||||
#define MKC_formac_F2 MKC_Command
|
|
||||||
#define MKC_formac_F3 MKC_F3
|
|
||||||
#define MKC_formac_F4 MKC_F4
|
|
||||||
#define MKC_formac_F5 MKC_F5
|
|
||||||
#define MKC_formac_RControl MKC_CM
|
|
||||||
#define MKC_formac_RCommand MKC_Command
|
|
||||||
#define MKC_formac_ROption MKC_Option
|
|
||||||
#define MKC_formac_RShift MKC_Shift
|
|
||||||
#define MKC_UnMappedKey MKC_Control
|
|
||||||
|
|
||||||
// Options (please remove / make variable as many as possible!)
|
|
||||||
#define RomStartCheckSum 1 // Let emu verify ROM chksum on startup
|
|
||||||
#define EnableDragDrop 1 // Enable drag+drop of disk images
|
|
||||||
#define SaveDialogEnable 1 // Allow user to choose loc. for new disks
|
|
||||||
|
|
||||||
#define WantInitFullScreen 0 // Start with full-screen mode on
|
|
||||||
#define MayFullScreen 1 // Full screen is an option
|
|
||||||
#define MayNotFullScreen 1 // Windowed is an option
|
|
||||||
|
|
||||||
#define WantInitMagnify 0 // Start magnified (boolean)
|
|
||||||
#define WindowScale 2 // Magnification power (TODO: make a var!!!)
|
|
||||||
|
|
||||||
#define WantInitRunInBackground 1 // Start running in background (boolean)
|
|
||||||
#define WantInitSpeedValue 0 // Initial clock multiplier (0 = 1x)
|
|
||||||
#define WantEnblCtrlInt 1 // Enable interrupt key (from prog. switch)
|
|
||||||
#define WantEnblCtrlRst 1 // Enable reset key (from prog. switch)
|
|
||||||
#define WantEnblCtrlKtg 1 // Emulated control key toggle via Ctrl+K
|
|
||||||
|
|
||||||
#define NeedRequestIthDisk 0 // Use Ctrl+num to insert "./disk#.dsk"
|
|
||||||
#define NeedRequestInsertDisk 1 // Disk open dialog on Ctrl+O
|
|
||||||
#define NeedDoMoreCommandsMsg 1 // Special > More Commands tutorial message
|
|
||||||
#define NeedDoAboutMsg 1 // About mini vMac message
|
|
||||||
#define UseControlKeys 1 // Enable Control Mode (options mode)
|
|
||||||
#define NeedIntlChars 0 // Include int'l chars for Control Mode
|
|
||||||
#define ItnlKyBdFix 1 // force keyboard to match Mac layout
|
|
||||||
|
|
||||||
/* version and other info to display to user */
|
|
||||||
#define kStrAppName "micro vMac"
|
|
||||||
#define kAppVariationStr "uvmac-0.37.0-wx64"
|
|
||||||
#define kStrCopyrightYear "2020"
|
|
||||||
#define kMaintainerName "InvisibleUp"
|
|
||||||
#define kStrHomePage "https://github.com/invisibleup/minivmac"
|
|
||||||
|
|
||||||
#define kBldOpts "obsolete"
|
|
||||||
|
|
||||||
#endif
|
|
@ -10,6 +10,35 @@
|
|||||||
#ifndef EMCONFIG_H
|
#ifndef EMCONFIG_H
|
||||||
#define EMCONFIG_H
|
#define EMCONFIG_H
|
||||||
|
|
||||||
|
// Keybindings
|
||||||
|
// TODO: Make these variable
|
||||||
|
#define MKC_formac_Control MKC_CM
|
||||||
|
#define MKC_formac_Command MKC_Command
|
||||||
|
#define MKC_formac_Option MKC_Option
|
||||||
|
#define MKC_formac_Shift MKC_Shift
|
||||||
|
#define MKC_formac_CapsLock MKC_CapsLock
|
||||||
|
#define MKC_formac_Escape MKC_Escape
|
||||||
|
#define MKC_formac_BackSlash MKC_BackSlash
|
||||||
|
#define MKC_formac_Slash MKC_Slash
|
||||||
|
#define MKC_formac_Grave MKC_Grave
|
||||||
|
#define MKC_formac_Enter MKC_Enter
|
||||||
|
#define MKC_formac_PageUp MKC_PageUp
|
||||||
|
#define MKC_formac_PageDown MKC_PageDown
|
||||||
|
#define MKC_formac_Home MKC_Home
|
||||||
|
#define MKC_formac_End MKC_End
|
||||||
|
#define MKC_formac_Help MKC_Help
|
||||||
|
#define MKC_formac_ForwardDel MKC_ForwardDel
|
||||||
|
#define MKC_formac_F1 MKC_Option
|
||||||
|
#define MKC_formac_F2 MKC_Command
|
||||||
|
#define MKC_formac_F3 MKC_F3
|
||||||
|
#define MKC_formac_F4 MKC_F4
|
||||||
|
#define MKC_formac_F5 MKC_F5
|
||||||
|
#define MKC_formac_RControl MKC_CM
|
||||||
|
#define MKC_formac_RCommand MKC_Command
|
||||||
|
#define MKC_formac_ROption MKC_Option
|
||||||
|
#define MKC_formac_RShift MKC_Shift
|
||||||
|
#define MKC_UnMappedKey MKC_Control
|
||||||
|
|
||||||
#define CurEmMd kEmMd_Plus
|
#define CurEmMd kEmMd_Plus
|
||||||
|
|
||||||
#define MaxATTListN 32
|
#define MaxATTListN 32
|
||||||
|
@ -19,6 +19,13 @@
|
|||||||
#define IncludeVidMem 0
|
#define IncludeVidMem 0
|
||||||
#define EmVidCard 0
|
#define EmVidCard 0
|
||||||
|
|
||||||
|
#define RomFileName "vMac.ROM"
|
||||||
|
#define kCheckSumRom_Size 0x00020000
|
||||||
|
#define kRomCheckSum1 0x4D1EEEE1
|
||||||
|
#define kRomCheckSum2 0x4D1EEAE1
|
||||||
|
#define kRomCheckSum3 0x4D1F8172
|
||||||
|
#define kROM_Size 0x00020000
|
||||||
|
|
||||||
/* the Wire variables are 1/0, not true/false */
|
/* the Wire variables are 1/0, not true/false */
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
191
meson.build
Normal file
191
meson.build
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
# Project definition
|
||||||
|
project('microvmac', 'c')
|
||||||
|
|
||||||
|
# Configuration data
|
||||||
|
conf = configuration_data({
|
||||||
|
# verify ROM checksum on startup?
|
||||||
|
'RomStartCheckSum': 1,
|
||||||
|
# Enable drag/drop of disk images?
|
||||||
|
'EnableDragDrop': 1,
|
||||||
|
# Allow user to choose location for new disks?
|
||||||
|
'SaveDialogEnable': 1,
|
||||||
|
# Start in full-screen mode?
|
||||||
|
'WantInitFullScreen': 0,
|
||||||
|
# Full screen is an option?
|
||||||
|
'MayFullScreen': 1,
|
||||||
|
# Windowed is an option?
|
||||||
|
'MayNotFullScreen': 1,
|
||||||
|
# Start magnified?
|
||||||
|
'WantInitMagnify': 0,
|
||||||
|
# Magnificaton power
|
||||||
|
'WindowScale': 2,
|
||||||
|
# Allow background running by default?
|
||||||
|
'WantInitRunInBackground': 1,
|
||||||
|
# Initial clock multiplied (0 = 1x)
|
||||||
|
'WantInitSpeedValue': 0,
|
||||||
|
# Enable interrupt key? (on prog. switch)
|
||||||
|
'WantEnblCtrlInt': 1,
|
||||||
|
# Enable reset key? (on prog. switch)
|
||||||
|
'WantEnblCtrlRst': 1,
|
||||||
|
# Emulated control key toggle via Ctrl+K?
|
||||||
|
'WantEnblCrtlKtg': 1,
|
||||||
|
# Use Ctrl+num to insert "./disk#.dsk"
|
||||||
|
'NeedRequestIthDisk': 0,
|
||||||
|
# Disk open dialog on Ctrl+O
|
||||||
|
'NeedRequestInsertDisk': 1,
|
||||||
|
# Special > More Commands tutorial message
|
||||||
|
'NeedDoMoreCommandsMsg': 1,
|
||||||
|
# Enable about dialog
|
||||||
|
'NeedDoAboutMsg': 1,
|
||||||
|
# Enable Control Mode (options menu)
|
||||||
|
'UseControlKeys': 1,
|
||||||
|
# Include international characters for Control Mode
|
||||||
|
'NeedIntlChars': 0,
|
||||||
|
# Force keyboard to match Mac layout on Windows
|
||||||
|
'ItnlKyBdFix': 1,
|
||||||
|
# Version information
|
||||||
|
'kStrAppName': '"micro vMac"',
|
||||||
|
'kAppVariationStr': '"0.37.0"',
|
||||||
|
'kStrCopyrightYear': '"2020"',
|
||||||
|
'kMaintainerName': '"InvisibleUp"',
|
||||||
|
'kStrHomePage': '"https://github.com/invisibleup/minivmac/"',
|
||||||
|
'kBldOpts': '"obsolete"'
|
||||||
|
})
|
||||||
|
configure_file(
|
||||||
|
output: 'CNFGRAPI.h',
|
||||||
|
configuration: conf
|
||||||
|
)
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
lSDL2 = dependency('SDL2')
|
||||||
|
|
||||||
|
# Hardware libraries
|
||||||
|
# Some are temporarily disabled while I get CMake up and running
|
||||||
|
|
||||||
|
HW_SRC = {
|
||||||
|
'ADB': [
|
||||||
|
'src/HW/ADB/ADBEMDEV.c'
|
||||||
|
],
|
||||||
|
'DISK': [
|
||||||
|
'src/HW/DISK/IWMEMDEV.c',
|
||||||
|
'src/HW/DISK/SONYEMDV.c',
|
||||||
|
'src/PATCHES/SONYDRV.c'
|
||||||
|
],
|
||||||
|
'KBRD': [
|
||||||
|
'src/HW/KBRD/KBRDEMDV.c',
|
||||||
|
],
|
||||||
|
'M68K': [
|
||||||
|
# 'src/HW/M68K/DISAM68K.c',
|
||||||
|
'src/HW/M68K/M68KITAB.c',
|
||||||
|
'src/HW/M68K/MINEM68K.c',
|
||||||
|
],
|
||||||
|
'MOUSE': [
|
||||||
|
'src/HW/MOUSE/MOUSEMDV.c',
|
||||||
|
],
|
||||||
|
'POWERMAN': [
|
||||||
|
'src/HW/POWERMAN/PMUEMDEV.c',
|
||||||
|
],
|
||||||
|
'RTC': [
|
||||||
|
'src/HW/RTC/RTCEMDEV.c',
|
||||||
|
],
|
||||||
|
'SCC': [
|
||||||
|
'src/HW/SCC/SCCEMDEV.c',
|
||||||
|
],
|
||||||
|
'SCREEN': [
|
||||||
|
'src/HW/SCREEN/SCRNEMDV.c',
|
||||||
|
'src/PATCHES/SCRNHACK.c',
|
||||||
|
],
|
||||||
|
'SCSI': [
|
||||||
|
'src/HW/SCSI/SCSIEMDV.c',
|
||||||
|
],
|
||||||
|
'SOUND': [
|
||||||
|
# 'src/HW/SOUND/ASCEMDEV.c',
|
||||||
|
'src/HW/SOUND/SNDEMDEV.c',
|
||||||
|
],
|
||||||
|
'VIA1': [
|
||||||
|
'src/HW/VIA/VIAEMDEV.c',
|
||||||
|
],
|
||||||
|
'VIA2': [
|
||||||
|
'src/HW/VIA/VIA2EMDV.c',
|
||||||
|
],
|
||||||
|
'VIDCARD': [
|
||||||
|
'src/HW/VIDCARD/VIDEMDEV.c',
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
MAC_SRC_COMMON = HW_SRC['DISK'] + HW_SRC['M68K'] + HW_SRC['RTC'] + HW_SRC['SOUND'] + HW_SRC['VIA1']
|
||||||
|
|
||||||
|
# Macintosh definitions
|
||||||
|
MAC_SRC = {
|
||||||
|
'Plus':
|
||||||
|
MAC_SRC_COMMON +
|
||||||
|
HW_SRC['SCREEN'] +
|
||||||
|
HW_SRC['MOUSE'] +
|
||||||
|
HW_SRC['KBRD'],
|
||||||
|
'II':
|
||||||
|
MAC_SRC_COMMON +
|
||||||
|
HW_SRC['VIDCARD'] +
|
||||||
|
HW_SRC['ADB'],
|
||||||
|
}
|
||||||
|
|
||||||
|
# User interface definitions
|
||||||
|
UI_SRC = {
|
||||||
|
'WIN32': [
|
||||||
|
'src/UI/COMOSGLU.c',
|
||||||
|
'src/UI/CONTROLM.c',
|
||||||
|
'src/UI/WIN32/DBGLOG.c',
|
||||||
|
'src/UI/WIN32/INTLKBRD.c',
|
||||||
|
'src/UI/WIN32/KEYBOARD.c',
|
||||||
|
'src/UI/WIN32/OSGLUWIN.c',
|
||||||
|
'src/UI/WIN32/SOUND.c',
|
||||||
|
'src/UI/WIN32/TIMEDATE.c',
|
||||||
|
'rsrc/WIN32/main.rc',
|
||||||
|
],
|
||||||
|
'SDL2': [
|
||||||
|
'src/UI/COMOSGLU.c',
|
||||||
|
'src/UI/CONTROLM.c',
|
||||||
|
'src/UI/SDL2/OSGLUSD2.c'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
EMU_SRC = [
|
||||||
|
'src/PROGMAIN.c',
|
||||||
|
'src/GLOBGLUE.c',
|
||||||
|
'src/PATCHES/ROMEMDEV.c',
|
||||||
|
'src/UTIL/DATE2SEC.c',
|
||||||
|
'src/incbin/incbin.c',
|
||||||
|
]
|
||||||
|
|
||||||
|
EMU_INC = include_directories([
|
||||||
|
'cfg/',
|
||||||
|
'src/',
|
||||||
|
'src/HW/ADB',
|
||||||
|
'src/HW/DISK',
|
||||||
|
'src/HW/KBRD',
|
||||||
|
'src/HW/M68K',
|
||||||
|
'src/HW/MOUSE',
|
||||||
|
'src/HW/POWERMAN',
|
||||||
|
'src/HW/RTC',
|
||||||
|
'src/HW/SCC',
|
||||||
|
'src/HW/SCREEN',
|
||||||
|
'src/HW/SCSI',
|
||||||
|
'src/HW/SOUND',
|
||||||
|
'src/HW/VIA',
|
||||||
|
'src/HW/VIDCARD',
|
||||||
|
'src/LANG',
|
||||||
|
'src/UI',
|
||||||
|
'src/UI/SDL2',
|
||||||
|
# 'src/UI/WIN32',
|
||||||
|
'src/UTIL',
|
||||||
|
'src/incbin',
|
||||||
|
])
|
||||||
|
|
||||||
|
## Final compiled program definition
|
||||||
|
# Just gonna do an SDL2 Mac Plus for now
|
||||||
|
executable(
|
||||||
|
'microvmac',
|
||||||
|
sources: MAC_SRC['Plus'] + UI_SRC['SDL2'] + EMU_SRC,
|
||||||
|
dependencies: [lSDL2],
|
||||||
|
include_directories: EMU_INC,
|
||||||
|
)
|
||||||
|
|
@ -4,9 +4,7 @@
|
|||||||
Included in the resource file for WIN32 builds
|
Included in the resource file for WIN32 builds
|
||||||
*/
|
*/
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#ifdef _WINDOWS
|
#include <string.h>
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
#include "incbin/incbin.h"
|
#include "incbin/incbin.h"
|
||||||
|
|
||||||
#include "EMCONFIG.h"
|
#include "EMCONFIG.h"
|
||||||
@ -17,44 +15,20 @@
|
|||||||
#include "PATCHES/SCRNHACK.h"
|
#include "PATCHES/SCRNHACK.h"
|
||||||
|
|
||||||
// Include binaries
|
// Include binaries
|
||||||
#ifndef _WINDOWS
|
INCBIN(SonyDriver, "rsrc/SONYDRV.bin");
|
||||||
INCBIN(SonyDriver, "SONYDRV.bin");
|
INCBIN(SonyIcon, "rsrc/SONYICO.bin");
|
||||||
INCBIN(SonyIcon, "SONYICO.bin");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void Sony_LoadDriver(uint8_t *pto, int *size)
|
void Sony_LoadDriver(uint8_t *pto, int *size)
|
||||||
{
|
{
|
||||||
#if defined(gSonyDriverData)
|
|
||||||
memcpy(pto, gSonyDriverData, gSonyDriverSize);
|
memcpy(pto, gSonyDriverData, gSonyDriverSize);
|
||||||
*size = gSonyDriverSize;
|
*size = gSonyDriverSize;
|
||||||
#elif defined(_WINDOWS)
|
|
||||||
HRSRC hDrvInfo = FindResource(NULL, "SONY_DRV", RT_RCDATA);
|
|
||||||
HGLOBAL hDrv = LoadResource(NULL, hDrvInfo);
|
|
||||||
DWORD sDrv = SizeofResource(NULL, hDrvInfo);
|
|
||||||
void *pDrv = LockResource(hDrv);
|
|
||||||
memcpy(pto, pDrv, sDrv);
|
|
||||||
*size = sDrv;
|
|
||||||
#else
|
|
||||||
#error("Unsupported platform/compiler")
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sony_LoadIcon(uint8_t *pto, int *icoSize)
|
void Sony_LoadIcon(uint8_t *pto, int *icoSize)
|
||||||
{
|
{
|
||||||
disk_icon_addr = (pto - ROM) + kROM_Base;
|
disk_icon_addr = (pto - ROM) + kROM_Base;
|
||||||
#if defined(gSonyIconData)
|
memcpy(pto, gSonyIconData, gSonyIconSize);
|
||||||
memcpy(pto, gSonyIcon, gSonyIconSize;
|
|
||||||
*icoSize = gSonyIconSize;
|
*icoSize = gSonyIconSize;
|
||||||
#elif defined(_WINDOWS)
|
|
||||||
HRSRC hIcoInfo = FindResource(NULL, "SONY_ICO", RT_RCDATA);
|
|
||||||
HGLOBAL hIco = LoadResource(NULL, hIcoInfo);
|
|
||||||
DWORD sIco = SizeofResource(NULL, hIcoInfo);
|
|
||||||
void *pIco = LockResource(hIco);
|
|
||||||
memcpy(pto, pIco, sIco);
|
|
||||||
*icoSize = sIco;
|
|
||||||
#else
|
|
||||||
#error("Unsupported platform/compiler")
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sony_TwiggyPatch(uint8_t *pto)
|
void Sony_TwiggyPatch(uint8_t *pto)
|
||||||
|
@ -169,9 +169,7 @@ LOCALPROC dbglog_close0(void)
|
|||||||
#define WantColorTransValid 0
|
#define WantColorTransValid 0
|
||||||
|
|
||||||
#include "UI/COMOSGLU.h"
|
#include "UI/COMOSGLU.h"
|
||||||
|
#include "UTIL/PBUFSTDC.h"
|
||||||
#include "UTILS/PBUFSTDC.h"
|
|
||||||
|
|
||||||
#include "UI/CONTROLM.h"
|
#include "UI/CONTROLM.h"
|
||||||
|
|
||||||
/* --- text translation --- */
|
/* --- text translation --- */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user