2020-03-26 23:36:43 -07:00
# DingusPPC
Written by divingkatae and maximumspatium
2019-07-01 19:19:08 -07:00
Be warned the program is highly unfinished and could use a lot of testing. Any feedback is welcome.
2020-03-26 23:36:02 -07:00
## Philosophy of Use
2019-07-01 19:19:08 -07:00
2023-12-01 14:04:26 -07: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 23:56:53 +01:00
2023-12-03 01:12:37 -08: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 23:56:53 +01:00
2020-03-26 23:36:02 -07:00
## Implemented Features
2022-08-21 23:49:18 -07: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-26 23:36:02 -07:00
## How to Use
2019-07-01 19:19:08 -07:00
2020-01-28 02:20:18 +01:00
This program currently uses the command prompt to work.
2019-07-01 19:19:08 -07:00
2020-01-28 02:20:18 +01:00
There are a few command line arguments one must enter when starting the program.
2019-07-01 19:19:08 -07:00
2020-10-14 07:45:18 -07:00
```
-r, --realtime
```
2019-07-01 19:19:08 -07:00
2019-07-18 23:31:16 -07:00
Run the emulator in runtime.
2019-07-01 19:19:08 -07:00
2020-10-14 07:45:18 -07:00
```
-d, --debugger
```
2019-07-01 19:19:08 -07:00
2019-07-18 23:31:16 -07:00
Enter the interactive debugger.
2019-07-01 19:19:08 -07:00
2020-10-14 07:45:18 -07:00
```
-b, --bootrom TEXT:FILE
```
Specifies the Boot ROM path (optional; looks for bootrom.bin by default)
```
-m, --machine TEXT
```
2020-10-14 08:02:34 -07:00
Specify machine ID (optional; will attempt to determine machine ID from the boot rom otherwise)
2020-10-14 07:45:18 -07:00
2023-11-23 20:59:49 -07: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-26 23:36:02 -07:00
## How to Compile
2019-12-26 23:56:53 +01:00
2020-10-14 07:45:18 -07:00
You need to install development tools first.
2019-12-26 23:56:53 +01:00
2023-06-19 22:36:09 -07:00
At least, a C++20 compliant compiler and [CMake ](https://cmake.org ) are required.
2019-12-26 23:56:53 +01:00
2022-08-21 23:49:18 -07:00
You will also have to recursive clone or run
2020-10-14 07:45:18 -07:00
```
2020-11-22 00:17:09 +01:00
git submodule update --init --recursive
2020-10-14 07:45:18 -07:00
```
2024-03-31 15:09:57 -07:00
This is because the CubeB, Capstone, and SDL2 modules are not included by default.
2024-04-01 15:19:12 -07:00
For SDL2, Linux users may also have to run:
2024-03-31 15:09:57 -07:00
```
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 07:45:18 -07:00
For example, to build the project in a Unix-like environment, you will need to run
2019-12-26 23:56:53 +01:00
the following commands in the OS terminal:
```
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
2020-02-10 16:41:40 +01:00
make dingusppc
2019-12-26 23:56:53 +01:00
```
You may specify another build type using the variable CMAKE_BUILD_TYPE.
2019-07-01 19:19:08 -07:00
2020-10-25 16:23:53 -07:00
For Raspbian, you may also need the following command:
```
sudo apt install doxygen graphviz
```
2020-02-10 16:41:40 +01: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
2024-11-28 23:25:57 +01:00
cmake -DCMAKE_BUILD_TYPE=Release -DDPPC_BUILD_PPC_TESTS=True ..
2020-02-10 16:41:40 +01:00
make testppc
```
2019-07-01 19:19:08 -07:00
## Intended Minimum Requirements
2019-12-26 23:56:53 +01:00
2019-07-01 19:19:08 -07: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-14 17:05:10 -07:00
- 2 GB of RAM
- 2 GB of Hard Disk Space
2019-07-01 19:19:08 -07:00
- Graphics Card with a minimum resolution of 800*600
2019-12-26 23:56:53 +01:00
2019-07-01 19:19:08 -07:00
## Compiler Requirements
2019-12-26 23:56:53 +01:00
2023-11-23 20:59:49 -07:00
- Any C++20 compatible compiler