Commit Graph

57 Commits

Author SHA1 Message Date
dingusdev 9db53a4e3f Updating CMakeLists file 2024-02-21 06:32:24 -07:00
Mihai Parparita ec155bf7ba Remap Cocoa/macOS menu item key modifiers
As part of adding ADB keyboard support (#56), we're now running into
conflicts between the guest and host OS keyboard shortcuts when running
on macOS hosts.

SDL2 unconditionally adds some menu items to the "Window" menu, and
there are built-in ones too. As a workaround, we now iterate over all
menu items are swap out command for control, since the the latter is
generally unused in classic Mac OS.
2023-10-29 12:16:01 -07:00
Mihai Parparita 1f7edfdb3b Make Emscripten build not depend on SDL2 or cubeb
While Emscripten has an SDL compabtility layer, it assumes that the
code is executing in the main browser process (and thus has access to
them DOM). The Infinite Mac project runs emulators in a worker thread
(for better performance) and has a custom API for the display, sound,
input, etc. Similarly, it does not need the cross-platform sound support
from cubeb, there there is a sound API as well.

This commit makes SDL (*_sdl.cpp) and cubeb-based (*_cubeb.cpp) code be
skipped when targeting Emscripten, and instead *_js.cpp files are used
instead (this is the cross-platform convention used by Chromium[^1], and
could be extended for other targets).

For hostevents.cpp and soundserver.cpp the entire file was replaced,
whereas for videoctrl.cpp there was enough shared logic that it was
kept, and the platform-specific bits were moved behind a Display class
that can have per-platform implementations. For cases where we need
additional private fields in the platform-specific classes, we use
a PIMPL pattern.

The *_js.cpp files with implementations are not included in this
commit, since they are closely tied to the Infinite Mac project, and
will live in its fork of DingusPPC.

[^1]: https://www.chromium.org/developers/design-documents/conventions-and-patterns-for-multi-platform-development/
2023-10-25 22:25:53 -07:00
Mihai Parparita 732977db27 Minimal changes to get an Emscripten build
Disable stack traces in loguru (excinfo.h is not available in Emscripten)
and set Emscripten linker flags.
2023-08-30 23:12:43 -07:00
dingusdev d11d693b52 Compilation fix for VS 2023-06-19 22:36:09 -07:00
dingusdev f181e721b0 Fixed compilation for Visual Studio 2023-03-19 07:55:26 -07:00
Maxim Poliakovski 0118b347f3 Clean up build scripts. 2023-01-08 23:29:25 +01:00
Maxim Poliakovski 101a8d33b0 Manage Windows build dependencies with vcpkg. 2023-01-08 22:27:13 +01:00
Maxim Poliakovski eb3f978c7b Update Capstone and fix its compilation. 2022-12-30 22:31:51 +01:00
dingusdev fd3ff7b703 Initial attempt at terminal support for Windows 2022-05-22 17:46:40 -07:00
dingusdev 86bc91028d Removed non-functioning interpreter code 2022-03-02 19:22:13 -07:00
Maxim Poliakovski 604b4bc2e5 Fix main CMakeLists.txt to include core for all targets. 2022-01-19 22:18:00 +01:00
Maxim Poliakovski 339db4a078 Add timers management. 2022-01-10 17:56:24 +01:00
Maxim Poliakovski d70adac564 Better name for 68k debugger build control option. 2021-10-23 21:51:16 +02:00
Maxim Poliakovski 9329d56d83 Move devices into dedicated subdirectories. 2021-10-23 20:17:47 +02:00
Maxim Poliakovski 331b93d4d6 Fix compilation with Clang 11. 2021-10-17 23:41:53 +02:00
Maxim Poliakovski de8d6487f9 Add forgotten include path for CLI11. 2021-09-17 13:27:49 +02:00
dingusdev 1c77057860 Fixed building through CMake 2021-09-12 08:08:22 -07:00
Maxim Poliakovski ea5b0d9f52 atirage: framebuffer rendering and various improvements. 2021-09-11 21:02:46 +02:00
Maxim Poliakovski 31b5290ac9 New profiler API. 2021-04-14 01:27:07 +02:00
Maxim Poliakovski 2f8694e57c Revert enabling PPC tests by default. 2021-01-24 11:45:12 +01:00
dingusdev 680b437b74 Fixed disassembly for fctiwz, frsp, and fctiw 2021-01-23 21:30:29 -07:00
Maxim Poliakovski b230299076 Make building of tests and benchmarks optional. 2021-01-08 20:38:40 +01:00
dingusdev 5cba9c1dae Merge branch 'cpu-refactor' 2020-12-04 11:01:34 -07:00
Maxim Poliakovski 180cb0d25f Make 68k debugger optional and disabled by default. 2020-12-03 02:18:13 +01:00
Maxim Poliakovski df39a59190 Build Capstone as static library. 2020-12-03 01:39:39 +01:00
Maxim Poliakovski f0315e98ee Add Capstone submodule. 2020-12-03 00:53:28 +01:00
Maxim Poliakovski 2be8e7b542 Set minimum Capstone version to 4.0.2
This version has fixed a bug with Capstone's main header.
2020-11-28 02:23:47 +01:00
Maxim Poliakovski 0e83ffe435 Fix broken CMakeLists.txt to work on MacOS. 2020-11-28 01:08:34 +01:00
dingusdev f417df0630 Fixes Issue #18
Courtesy of webspacecreations
2020-10-25 16:23:53 -07:00
Maxim Poliakovski 599659495b Initial CLI11 integration. 2020-09-26 02:38:22 +02:00
Maxim Poliakovski 6b74e358dc WIP: basic 68k debugging environment. 2020-07-15 02:19:05 +02:00
Waqar Ahmed 59da71884e Fix linux build 2020-06-04 13:29:36 +05:00
Maxim Poliakovski ae78a1f04f Fix AWACs sound playback with WASAPI. 2020-05-18 03:02:30 +02:00
Maxim Poliakovski e59939541e WIP: initial Cubeb integration. 2020-05-15 02:44:00 +02:00
Waqar Ahmed 286897398c Fix build on linux 2020-05-12 21:20:57 +05:00
Maxim Poliakovski d4c39f13af Changes related to Windows build. 2020-05-09 14:29:37 +02:00
Maxim Poliakovski ba81094fa2 CMakeLists.txt: enable static linkage to libsoundio. 2020-05-08 23:48:02 +02:00
Maxim Poliakovski f7d67a91e0 New AWAC and sound server implementation. 2020-05-08 23:12:04 +02:00
Maxim Poliakovski 7154e51d86 Make debugger standalone component. 2020-04-20 20:32:09 +02:00
dingusdev 60ffa5bfac Initial attempt at fixing SDL2 building for Windows 2020-03-22 20:15:12 -07:00
Maxim Poliakovski 945e63bdb2 Implement DMA push method for sound. 2020-03-19 15:09:24 +01:00
Maxim Poliakovski 14156dd32b Introduce subdevices interface. 2020-03-14 15:39:34 +01:00
Maxim Poliakovski 822f6cafd2 Create machine factory.
It manages various hardware configurations referred to as machines.
2020-03-13 23:09:36 +01:00
dingusdev c8611dc293 Code cleanup + procedures for cleanup 2020-02-27 21:03:01 -07:00
Maxim Poliakovski 24652de392 Integrate disassembler tests. 2020-02-12 22:58:24 +01:00
Maxim Poliakovski a06fb88324 Make dingusppc and testppc independent targets. 2020-02-10 16:41:40 +01:00
Maxim Poliakovski 4e4d0370be Modularize build system.
This way object files can be shared accross multiple executables.
2020-02-03 14:36:37 +01:00
Maxim Poliakovski 7d7b0b7de3 Initial PPC emulation tests. 2020-01-31 04:10:53 +01:00
Maxim Poliakovski b311cea4e5 Remove optimization options from CMakeLists.txt.
Update the COMPILE section in the README.
2019-12-26 23:57:04 +01:00