2020-03-27 06:36:43 +00:00
# DingusPPC
Written by divingkatae and maximumspatium
2019-07-02 02:19:08 +00:00
Be warned the program is highly unfinished and could use a lot of testing. Any feedback is welcome.
2020-03-27 06:36:02 +00:00
## Philosophy of Use
2019-07-02 02:19:08 +00:00
2023-12-01 21:04:26 +00:00
While many other PowerPC emus exist (PearPC, Sheepshaver), none of them currently attempt emulation of PowerPC Macs accurately (except for QEMU).
2019-12-26 22:56:53 +00:00
2023-12-03 09:12:37 +00:00
This program aims to not only improve upon what Sheepshaver, PearPC, and other PowerPC Mac emulators have done, but also to provide a better debugging environment. This currently is designed to work best with PowerPC Old World ROMs, including those of the Power Mac 6100, 7200, and G3 Beige.
2019-12-26 22:56:53 +00:00
2020-03-27 06:36:02 +00:00
## Implemented Features
2022-08-22 06:49:18 +00:00
This emulator has a debugging environment, complete with a disassembler. We also have implemented enough to allow Open Firmware to boot, going so far as to allow audio playback of the boot-up jingles.
2020-03-27 06:36:02 +00:00
## How to Use
2019-07-02 02:19:08 +00:00
2020-01-28 01:20:18 +00:00
This program currently uses the command prompt to work.
2019-07-02 02:19:08 +00:00
2020-01-28 01:20:18 +00:00
There are a few command line arguments one must enter when starting the program.
2019-07-02 02:19:08 +00:00
2020-10-14 14:45:18 +00:00
```
-r, --realtime
```
2019-07-02 02:19:08 +00:00
2019-07-19 06:31:16 +00:00
Run the emulator in runtime.
2019-07-02 02:19:08 +00:00
2020-10-14 14:45:18 +00:00
```
-d, --debugger
```
2019-07-02 02:19:08 +00:00
2019-07-19 06:31:16 +00:00
Enter the interactive debugger.
2019-07-02 02:19:08 +00:00
2020-10-14 14:45:18 +00:00
```
-b, --bootrom TEXT:FILE
```
Specifies the Boot ROM path (optional; looks for bootrom.bin by default)
```
-m, --machine TEXT
```
2020-10-14 15:02:34 +00:00
Specify machine ID (optional; will attempt to determine machine ID from the boot rom otherwise)
2020-10-14 14:45:18 +00:00
2023-11-24 03:59:49 +00:00
As of now, the most complete machines are the Power Mac 6100 (SCSI emulation in progress) and the Power Mac G3 Beige (SCSI + ATA emulation in progress, No ATI Rage acceleration).
2020-03-27 06:36:02 +00:00
## How to Compile
2019-12-26 22:56:53 +00:00
2020-10-14 14:45:18 +00:00
You need to install development tools first.
2019-12-26 22:56:53 +00:00
2023-06-20 05:36:09 +00:00
At least, a C++20 compliant compiler and [CMake ](https://cmake.org ) are required.
2019-12-26 22:56:53 +00:00
2022-08-22 06:49:18 +00:00
You will also have to recursive clone or run
2020-10-14 14:45:18 +00:00
```
2020-11-21 23:17:09 +00:00
git submodule update --init --recursive
2020-10-14 14:45:18 +00:00
```
2024-03-31 22:09:57 +00:00
This is because the CubeB, Capstone, and SDL2 modules are not included by default.
For SDL2, Linux users may also have run:
```
sudo apt install libsdl2-dev
```
CLI11 and loguru are already included in the thirdparty folder and compiled along with the rest of DingusPPC.
2020-10-14 14:45:18 +00:00
For example, to build the project in a Unix-like environment, you will need to run
2019-12-26 22:56:53 +00:00
the following commands in the OS terminal:
```
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
2020-02-10 15:41:40 +00:00
make dingusppc
2019-12-26 22:56:53 +00:00
```
You may specify another build type using the variable CMAKE_BUILD_TYPE.
2019-07-02 02:19:08 +00:00
2020-10-25 23:23:53 +00:00
For Raspbian, you may also need the following command:
```
sudo apt install doxygen graphviz
```
2020-02-10 15:41:40 +00:00
## Testing
DingusPPC includes a test suite for verifying the correctness of its PowerPC CPU
emulation. To build the tests, use the following terminal commands:
```
mkdir build
cd build
2023-11-24 03:59:49 +00:00
cmake -DCMAKE_BUILD_TYPE=Release -DPPC_BUILD_PPC_TESTS=True ..
2020-02-10 15:41:40 +00:00
make testppc
```
2019-07-02 02:19:08 +00:00
## Intended Minimum Requirements
2019-12-26 22:56:53 +00:00
2019-07-02 02:19:08 +00:00
- Windows 7 or newer (64-bit), Linux 4.4 or newer, Mac OS X 10.9 or newer (64-bit)
- Intel Core 2 Duo or better
2019-07-15 00:05:10 +00:00
- 2 GB of RAM
- 2 GB of Hard Disk Space
2019-07-02 02:19:08 +00:00
- Graphics Card with a minimum resolution of 800*600
2019-12-26 22:56:53 +00:00
2019-07-02 02:19:08 +00:00
## Compiler Requirements
2019-12-26 22:56:53 +00:00
2023-11-24 03:59:49 +00:00
- Any C++20 compatible compiler