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
Maxim Poliakovski
ad5f3a9435
Move PPC emulation code into /cpu/ppc subdirectory.
2019-12-23 10:38:16 +01:00
Maxim Poliakovski
c220a2e87b
Simplify CMakeLists.txt using file wildcards.
2019-12-16 16:31:33 +01:00