Skip to content

Commit

Permalink
Readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Senryoku committed Jan 15, 2025
1 parent dc0a207 commit ab22087
Showing 1 changed file with 10 additions and 18 deletions.
28 changes: 10 additions & 18 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@ Videos: [Soul Calibur](https://www.youtube.com/watch?v=IuY1Qi1YygM) (May 2024),

## Build and Run

Install the correct zig version (see `.zigversion`, I try to keep up with [Mach nominated version](https://machengine.org/docs/nominated-zig/)). You can use [zigup](https://github.com/marler8997/zigup) to manage your installed zig versions, or get it from https://machengine.org/docs/nominated-zig/.
Install the correct zig version (see `.zigversion`, I try to keep up with [Mach nominated version](https://machengine.org/docs/nominated-zig/)).
You can use [zigup](https://github.com/marler8997/zigup) to manage your installed zig versions, or get it from https://machengine.org/docs/nominated-zig/.
```sh
zigup 0.14.0-dev.2577+271452d22
```

Clone and build. Zig will fetch all dependencies automatically.
```sh
git clone https://github.com/Senryoku/Deecy # Clone the repo
cd Deecy
Expand All @@ -28,49 +29,38 @@ You will also need to provide copies of `dc_boot.bin` and `dc_flash.bin` files i

### Linux

Linux isn't fully supported yet.
nfd-zig (native file dialog) needs these additional dependencies on Linux:
`nfd-zig` (native file dialog) needs these additional dependencies on Linux:
```sh
sudo apt install libgtk-3-dev
```

## Things I know I have to do

- Debug, debug, debug.
- Better low level emulation: Most games do not work as well when not using the HLE'd syscalls.
- ch0-DMA and ch1-DMA?
- What's "Maple V blank over interrupt"?
"This interrupt is generated when a Maple interface transmission/reception operation spans V-Blank_In."
- MMU: Only supported for store queue writes using the pref intruction (used by Ikaruga for example)
- AICA:
- Stereo debugging
- DSP
- More debug
- Renderer:
- Framebuffer:
- Somehow detect writes to framebuffer and display it.
- Improve detection of writes to framebuffer (false positives?)
- Write back for games that need it.
- Modifier Volumes.
- Implemented: Inclusion volumes and shadow bit over opaque and transparent geometry.
- Missing: Exclusion volumes.
- "Region Array Data Configuration" (written by the CPU directly to VRAM) are completely ignored. I don't know if it's actually used much.
- Fog LUT Mode 2.
- Secondary accumulate buffer (very low priority, not sure if many games use this feature).
- User Tile Clip, only the simplest version is supported.
- Bump mapping.
- Mipmaps for palette textures?
- Sort-DMA?
- User Tile Clip, only the simplest version is supported.
- Follow ISP_FEED_CFG discard mode flag? (Find a game that turns it off)
- MMU: Only supported for store queue writes using the pref intruction (used by Ikaruga for example)

### Nice to have

- Some (rendering) performance metrics directly in the emulator?
- GDROM-DMA: Uses a superfluous memcpy (gdrom -> dma-queue -> ram). Not a huge deal on my main system, but I bet it's noticeable on lower end devices.

## Things I don't know I have to do

- A lot more than the previous list

## Some sources

- http://www.shared-ptr.com/sh_insns.html
Expand All @@ -83,7 +73,9 @@ sudo apt install libgtk-3-dev

## Dependencies

- Multiple libraries from https://github.com/michal-z/zig-gamedev (MIT), included in libs/ as a submodule.
Dependencies are managed by the `build.zig.zon` file.

- Multiple libraries from https://github.com/zig-gamedev (MIT)
- ndf-zig: https://github.com/fabioarnold/nfd-zig (MIT)
- zig-lz4: https://github.com/SnorlaxAssist/zig-lz4 (MIT), bindings for LZ4 https://github.com/lz4/lz4 (BSD 2-Clause)

Expand Down

0 comments on commit ab22087

Please sign in to comment.