mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-25 19:55:50 +00:00
more stuff
This commit is contained in:
commit
3d37682722
11 changed files with 481 additions and 45 deletions
45
.github/workflows/linux.yml
vendored
Normal file
45
.github/workflows/linux.yml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
|
name: Linux CI
|
||||||
|
|
||||||
|
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||||
|
# events but only for the master branch
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
|
jobs:
|
||||||
|
# This workflow contains a single job called "build"
|
||||||
|
build:
|
||||||
|
# The type of runner that the job will run on
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
|
steps:
|
||||||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
# Setup CMake
|
||||||
|
- name: Setup CMake
|
||||||
|
uses: Symbitic/install-cmake@v0.1.1
|
||||||
|
with:
|
||||||
|
platform: linux
|
||||||
|
# Setup Packages
|
||||||
|
- name: Setup Packages
|
||||||
|
run: sudo apt update && sudo apt upgrade && sudo apt install curl ffmpeg git libao-dev libasound-dev libavcodec-dev libavformat-dev libbluetooth-dev libevdev-dev libgtk2.0-dev libhidapi-dev libmbedtls-dev libminiupnpc-dev libopenal-dev libpangocairo-1.0-0 libpulse-dev libsfml-dev libswscale-dev libudev-dev libusb-1.0-0-dev libwxbase3.0-dev libwxgtk3.0-dev libxrandr-dev qt5-default qtbase5-private-dev
|
||||||
|
# Run CMake
|
||||||
|
- name: Run CMake
|
||||||
|
run: mkdir build && cd build && cmake .. -G Ninja -DLINUX_LOCAL_DEV=true
|
||||||
|
# Build Project
|
||||||
|
- name: Run Make
|
||||||
|
run: cd build && ninja -j4
|
||||||
|
# Configure Dolphin
|
||||||
|
- name: Configure Dolphin
|
||||||
|
run: cd build && cp -r ../Data/Sys/ Binaries/ && cp -r ../Data/User/ Binaries/ && cp -r ../Data/dolphin-emu.png Binaries/ && touch Binaries/portable.txt
|
||||||
|
# Upload Artifact
|
||||||
|
- name: Upload Build Artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: DolphinMPN-Linux
|
||||||
|
path: /home/runner/work/dolphin-mpn-advanced-src/dolphin-mpn-advanced-src/build/Binaries/
|
48
.github/workflows/macos.yml
vendored
Normal file
48
.github/workflows/macos.yml
vendored
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
|
name: macOS CI
|
||||||
|
|
||||||
|
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||||
|
# events but only for the master branch
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
|
jobs:
|
||||||
|
# This workflow contains a single job called "build"
|
||||||
|
build:
|
||||||
|
# The type of runner that the job will run on
|
||||||
|
runs-on: macos-latest
|
||||||
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
|
steps:
|
||||||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
# Setup CMake
|
||||||
|
- name: Setup CMake
|
||||||
|
uses: Symbitic/install-cmake@v0.1.1
|
||||||
|
with:
|
||||||
|
platform: mac
|
||||||
|
# Setup Packages
|
||||||
|
- name: Setup Packages
|
||||||
|
run: brew install qt5 pkgconfig
|
||||||
|
# Use Static ZSTD
|
||||||
|
- name: Remove ZSTD
|
||||||
|
run: brew uninstall zstd curl php --force --ignore-dependencies
|
||||||
|
# Run CMake
|
||||||
|
- name: Run CMake
|
||||||
|
run: mkdir -p build && cd build && cmake .. -G Ninja -DCMAKE_CXX_FLAGS="-Xclang -fcolor-diagnostics" -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
|
||||||
|
# Build Project
|
||||||
|
- name: Run Ninja
|
||||||
|
run: cd build && ninja -j4
|
||||||
|
# Configure Dolphin
|
||||||
|
- name: Configure Dolphin
|
||||||
|
run: cd build && cp -r ../Data/Sys/ Binaries/ && cp -r ../Data/User/ Binaries/ && cp -r ../Data/dolphin-emu.png Binaries/ && touch Binaries/portable.txt
|
||||||
|
# Upload Artifact
|
||||||
|
- name: Upload Build Artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: DolphinMPN-macOS
|
||||||
|
path: /Users/runner/work/dolphin-mpn-advanced-src/dolphin-mpn-advanced-src/build/Binaries/
|
4
.github/workflows/windows.yml
vendored
4
.github/workflows/windows.yml
vendored
|
@ -31,10 +31,10 @@ jobs:
|
||||||
vs-version: '16.6.2'
|
vs-version: '16.6.2'
|
||||||
# Run MSBuild
|
# Run MSBuild
|
||||||
- name: Build Solution
|
- name: Build Solution
|
||||||
run: msbuild "D:\a\dolphin-mpn-src\dolphin-mpn-src\Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64
|
run: msbuild "D:\a\dolphin-mpn-advanced-src\dolphin-mpn-advanced-src\Source\dolphin-emu.sln" /verbosity:minimal /property:Configuration=Release /property:Platform=x64
|
||||||
# Upload Artifact
|
# Upload Artifact
|
||||||
- name: Upload Build Artifact
|
- name: Upload Build Artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: DolphinMPN-win32
|
name: DolphinMPN-win32
|
||||||
path: D:\a\dolphin-mpn-src\dolphin-mpn-src\Binary\x64
|
path: D:\a\dolphin-mpn-advanced-src\dolphin-mpn-advanced-src\Binary\x64
|
Binary file not shown.
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 445 KiB |
|
@ -43,8 +43,9 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_unpause_emulation"
|
android:id="@+id/menu_unpause_emulation"
|
||||||
android:text="@string/unpause_emulation"
|
|
||||||
style="@style/InGameMenuOption"
|
style="@style/InGameMenuOption"
|
||||||
|
android:letterSpacing="0"
|
||||||
|
android:text="@string/unpause_emulation"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
@ -55,26 +56,30 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_quicksave"
|
android:id="@+id/menu_quicksave"
|
||||||
android:text="@string/emulation_quicksave"
|
|
||||||
style="@style/InGameMenuOption"
|
style="@style/InGameMenuOption"
|
||||||
|
android:letterSpacing="0"
|
||||||
|
android:text="@string/emulation_quicksave"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_quickload"
|
android:id="@+id/menu_quickload"
|
||||||
android:text="@string/emulation_quickload"
|
|
||||||
style="@style/InGameMenuOption"
|
style="@style/InGameMenuOption"
|
||||||
|
android:letterSpacing="0"
|
||||||
|
android:text="@string/emulation_quickload"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_emulation_save_root"
|
android:id="@+id/menu_emulation_save_root"
|
||||||
android:text="@string/emulation_savestate"
|
|
||||||
style="@style/InGameMenuOption"
|
style="@style/InGameMenuOption"
|
||||||
|
android:letterSpacing="0"
|
||||||
|
android:text="@string/emulation_savestate"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_emulation_load_root"
|
android:id="@+id/menu_emulation_load_root"
|
||||||
android:text="@string/emulation_loadstate"
|
|
||||||
style="@style/InGameMenuOption"
|
style="@style/InGameMenuOption"
|
||||||
|
android:letterSpacing="0"
|
||||||
|
android:text="@string/emulation_loadstate"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|
318
Source/Core/Common/GLideN64.custom.ini
Normal file
318
Source/Core/Common/GLideN64.custom.ini
Normal file
|
@ -0,0 +1,318 @@
|
||||||
|
; Custom game settings
|
||||||
|
[General]
|
||||||
|
version=13
|
||||||
|
|
||||||
|
[TWINE]
|
||||||
|
Good_Name=007 - The World Is Not Enough (E)(U)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[40%20WINKS]
|
||||||
|
Good_Name=40 Winks (E) (M3) (Prototype)
|
||||||
|
graphics2D\enableNativeResTexrects=1
|
||||||
|
|
||||||
|
[BIOFREAKS]
|
||||||
|
Good_Name=Bio F.R.E.A.K.S. (E)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[BioHazard%20II]
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[52150A67]
|
||||||
|
Good_Name=Bokujou Monogatari 2 (J)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[67000C2B]
|
||||||
|
Good_Name=Eikou no Saint Andrews (J)
|
||||||
|
frameBufferEmulation\forceDepthBufferClear=1
|
||||||
|
|
||||||
|
[CAL%20SPEED]
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
|
||||||
|
[CASTLEVANIA2]
|
||||||
|
Good_Name=Castlevania - Legacy Of Darkness (E)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[DMPJ]
|
||||||
|
Good_Name=Mario Artist Paint Studio (J) (64DD)
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
frameBufferEmulation\nativeResFactor=1
|
||||||
|
generalEmulation\rdramImageDitheringMode=0
|
||||||
|
|
||||||
|
[DMTJ]
|
||||||
|
Good_Name=Mario Artist Talent Studio (J) (64DD)
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[DINO%20PLANET]
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[DONKEY%20KONG%2064]
|
||||||
|
Good_Name=Donkey Kong 64 (E)(J)(U)
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=1
|
||||||
|
frameBufferEmulation\N64DepthCompare=0
|
||||||
|
|
||||||
|
[DR.MARIO%2064]
|
||||||
|
Good_Name=Dr. Mario 64 (U)
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
|
||||||
|
[EXTREME_G]
|
||||||
|
Good_Name=Extreme-G (E)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[EXTREME-G]
|
||||||
|
Good_Name=Extreme-G (J)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[EXTREMEG]
|
||||||
|
Good_Name=Extreme-G (U)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[EXTREME%20G%202]
|
||||||
|
Good_Name=Extreme-G XG2 (E) (U)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[208E05CD]
|
||||||
|
Good_Name=Extreme-G XG2 (J)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[F1%20POLE%20POSITION%2064]
|
||||||
|
Good_Name=F-1 Pole Position 64 (E)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[FLAPPYBIRD64]
|
||||||
|
Good_Name=FlappyBird64
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
|
||||||
|
[GOEMON2%20DERODERO]
|
||||||
|
Good_Name=Ganbare Goemon - Dero Dero Douchuu Obake Tenkomori (J)
|
||||||
|
graphics2D\enableNativeResTexrects=1
|
||||||
|
|
||||||
|
[GOEMONS%20GREAT%20ADV]
|
||||||
|
Good_Name=Goemons Great Adventure (U)
|
||||||
|
graphics2D\enableNativeResTexrects=1
|
||||||
|
|
||||||
|
[HARVESTMOON64]
|
||||||
|
Good_Name=Harvest Moon 64 (U)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[5CFA0A2E]
|
||||||
|
Good_Name=Heiwa Pachinko World 64 (J)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[HEXEN]
|
||||||
|
Good_Name=Hexen (E)(F)(G)(J)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[HUMAN%20GRAND%20PRIX]
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[I%20S%20S%2064]
|
||||||
|
Good_Name=International Superstar Soccer 64 (E) (U)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[JET%20FORCE%20GEMINI]
|
||||||
|
Good_Name=Jet Force Gemini (E)(U)
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[J%20F%20G%20DISPLAY]
|
||||||
|
; See Jet Force Gemini for notes
|
||||||
|
Good_Name=Jet Force Gemini Kiosk Demo (U)
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[J%20WORLD%20SOCCER3]
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[301E07CC]
|
||||||
|
Good_Name=Mahjong Master (J)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[DMGJ]
|
||||||
|
Good_Name=Mario Artist Polygon Studio (J)
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[KEN%20GRIFFEY%20SLUGFEST]
|
||||||
|
Good_Name=Ken Griffey Jr.'s Slugfest
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
|
||||||
|
[KIRBY64]
|
||||||
|
Good_Name=Kirby 64 - The Crystal Shards (E)(J)(U)
|
||||||
|
graphics2D\enableNativeResTexrects=1
|
||||||
|
|
||||||
|
[MARIOGOLF64]
|
||||||
|
Good_Name=Mario Golf (E)(J)(U)
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[MARIOKART64]
|
||||||
|
Good_Name=Mario Kart 64 (E)(J)(U)
|
||||||
|
graphics2D\enableNativeResTexrects=1
|
||||||
|
graphics2D\enableTexCoordBounds=1
|
||||||
|
|
||||||
|
[MARIO%20STORY]
|
||||||
|
Good_Name=Mario Story (J)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[MEGA%20MAN%2064]
|
||||||
|
Good_Name=Mega Man 64 (U)
|
||||||
|
graphics2D\correctTexrectCoords=2
|
||||||
|
|
||||||
|
[MEGAMAN%2064]
|
||||||
|
Good_Name=Mega Man 64 (Proto)
|
||||||
|
graphics2D\correctTexrectCoords=2
|
||||||
|
|
||||||
|
[MLB%20FEATURING%20K%20G%20JR]
|
||||||
|
Good_Name=Major League Baseball Featuring Ken Griffey Jr.
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
|
||||||
|
[MYSTICAL%20NINJA2%20SG]
|
||||||
|
Good_Name=Mystical Ninja 2 Starring Goemon (E)
|
||||||
|
graphics2D\enableNativeResTexrects=1
|
||||||
|
|
||||||
|
[NASCAR%202000]
|
||||||
|
Good_Name=NASCAR 2000 (U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[NASCAR%2099]
|
||||||
|
Good_Name=NASCAR 99 (U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[NUD-DMPJ-JPN_convert]
|
||||||
|
Good_Name=Mario Paint Studio (cart hack)
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
|
||||||
|
[NUD-DMTJ-JPN_convert]
|
||||||
|
Good_Name=Mario Artist Talent Studio (cart hack)
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[OGREBATTLE64]
|
||||||
|
Good_Name=Ogre Battle 64 - Person of Lordly Caliber (U)
|
||||||
|
graphics2D\enableTexCoordBounds=1
|
||||||
|
|
||||||
|
[OLYMPIC%20HOCKEY]
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
|
||||||
|
[PAPER%20MARIO]
|
||||||
|
Good_Name=Paper Mario (E)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
graphics2D\enableTexCoordBounds=1
|
||||||
|
|
||||||
|
[PENNY%20RACERS]
|
||||||
|
Good_Name=Penny Racers (E)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
|
||||||
|
[PERFECT%20STRIKER]
|
||||||
|
Good_Name=Jikkyou J.League Perfect Striker (J)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[POKEMON%20SNAP]
|
||||||
|
Good_Name=Pokemon Snap (U)
|
||||||
|
generalEmulation\rdramImageDitheringMode=1
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
|
||||||
|
[POKEMON%20STADIUM]
|
||||||
|
Good_Name=Pokemon Stadium (U)
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[POKEMON%20STADIUM%202]
|
||||||
|
Good_Name=Pokemon Stadium 2 (E)(F)(G)(I)(J)(S)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[POKEMON%20STADIUM%20G%26S]
|
||||||
|
Good_Name=Pokemon Stadium Kin Gin (J)
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[PUZZLE%20LEAGUE%20N64]
|
||||||
|
Good_Name=Pokemon Puzzle League (E)(F)(G)(U)
|
||||||
|
texture\enableHalosRemoval=1
|
||||||
|
|
||||||
|
[RAT%20ATTACK]
|
||||||
|
Good_Name=Rat Attack
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
|
||||||
|
[RESIDENT%20EVIL%20II]
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[ROCKMAN%20DASH]
|
||||||
|
Good_Name=Rockman Dash - Hagane no Boukenshin (J)
|
||||||
|
graphics2D\correctTexrectCoords=2
|
||||||
|
|
||||||
|
[RUSH%202]
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
graphics2D\correctTexrectCoords=2
|
||||||
|
|
||||||
|
[SAN%20FRANCISCO%20RUSH]
|
||||||
|
Good_Name=San Francisco Rush Extreme Racing (U)
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
graphics2D\enableNativeResTexrects=2
|
||||||
|
|
||||||
|
[S.F.RUSH]
|
||||||
|
Good_Name=San Francisco Rush Extreme Racing (E)
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
graphics2D\enableNativeResTexrects=2
|
||||||
|
|
||||||
|
[S.F.%20RUSH]
|
||||||
|
Good_Name=San Francisco Rush Extreme Racing (U)
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
graphics2D\enableNativeResTexrects=2
|
||||||
|
|
||||||
|
[SHADOWMAN]
|
||||||
|
Good_Name=Shadow Man (B)(E)(F)(G)(U)
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=0
|
||||||
|
|
||||||
|
[SPACE%20INVADERS]
|
||||||
|
Good_Name=Space Invaders (U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=0
|
||||||
|
|
||||||
|
[STAR%20TWINS]
|
||||||
|
; See Jet Force Gemini for notes
|
||||||
|
Good_Name=Star Twins (J)
|
||||||
|
frameBufferEmulation\fbInfoDisabled=0
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
|
||||||
|
[TEST]
|
||||||
|
Good_Name=Mario Artist Paint Studio (J) (1999-02-11 Prototype) (64DD)
|
||||||
|
frameBufferEmulation\copyAuxToRDRAM=1
|
||||||
|
frameBufferEmulation\copyFromRDRAM=1
|
||||||
|
generalEmulation\rdramImageDitheringMode=0
|
||||||
|
|
||||||
|
[TETRISPHERE]
|
||||||
|
Good_Name=Tetrisphere (U)
|
||||||
|
generalEmulation\correctTexrectCoords=2
|
||||||
|
|
||||||
|
[TIGGER%27S%20HONEY%20HUNT]
|
||||||
|
Good_Name=Tiggers Honey Hunt (E)(U)
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
||||||
|
|
||||||
|
[TONIC%20TROUBLE]
|
||||||
|
Good_Name=Tonic Trouble (E)(U)
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[TG%20RALLY%202]
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[TOP%20GEAR%20RALLY%202]
|
||||||
|
frameBufferEmulation\copyToRDRAM=1
|
||||||
|
|
||||||
|
[TUROK_DINOSAUR_HUNTE]
|
||||||
|
Good_Name=Turok - Dinosaur Hunter (E)(G)(U)(J)
|
||||||
|
frameBufferEmulation\copyDepthToRDRAM=1
|
||||||
|
|
||||||
|
[W.G.%203DHOCKEY]
|
||||||
|
frameBufferEmulation\bufferSwapMode=1
|
||||||
|
|
||||||
|
[MARIOPARTY3]
|
||||||
|
frameBufferEmulation\N64DepthCompare=1
|
|
@ -113,7 +113,13 @@ private:
|
||||||
void* m_address_VirtualAlloc2 = nullptr;
|
void* m_address_VirtualAlloc2 = nullptr;
|
||||||
void* m_address_MapViewOfFile3 = nullptr;
|
void* m_address_MapViewOfFile3 = nullptr;
|
||||||
#else
|
#else
|
||||||
|
#ifdef ANDROID
|
||||||
int fd;
|
int fd;
|
||||||
|
#else
|
||||||
|
int m_shm_fd;
|
||||||
|
void* m_reserved_region;
|
||||||
|
std::size_t m_reserved_region_size;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,30 +28,39 @@ MemArena::~MemArena() = default;
|
||||||
void MemArena::GrabSHMSegment(size_t size)
|
void MemArena::GrabSHMSegment(size_t size)
|
||||||
{
|
{
|
||||||
const std::string file_name = "/dolphin-emu." + std::to_string(getpid());
|
const std::string file_name = "/dolphin-emu." + std::to_string(getpid());
|
||||||
fd = shm_open(file_name.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600);
|
m_shm_fd = shm_open(file_name.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600);
|
||||||
if (fd == -1)
|
if (m_shm_fd == -1)
|
||||||
{
|
{
|
||||||
ERROR_LOG_FMT(MEMMAP, "shm_open failed: {}", strerror(errno));
|
ERROR_LOG_FMT(MEMMAP, "shm_open failed: {}", strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
shm_unlink(file_name.c_str());
|
shm_unlink(file_name.c_str());
|
||||||
if (ftruncate(fd, size) < 0)
|
if (ftruncate(m_shm_fd, size) < 0)
|
||||||
ERROR_LOG_FMT(MEMMAP, "Failed to allocate low memory space");
|
ERROR_LOG_FMT(MEMMAP, "Failed to allocate low memory space");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemArena::ReleaseSHMSegment()
|
void MemArena::ReleaseSHMSegment()
|
||||||
{
|
{
|
||||||
close(fd);
|
close(m_shm_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* MemArena::CreateView(s64 offset, size_t size)
|
void* MemArena::CreateView(s64 offset, size_t size)
|
||||||
{
|
{
|
||||||
return MapInMemoryRegion(offset, size, nullptr);
|
void* retval = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_SHARED, m_shm_fd, offset);
|
||||||
|
if (retval == MAP_FAILED)
|
||||||
|
{
|
||||||
|
NOTICE_LOG_FMT(MEMMAP, "mmap failed");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemArena::ReleaseView(void* view, size_t size)
|
void MemArena::ReleaseView(void* view, size_t size)
|
||||||
{
|
{
|
||||||
UnmapFromMemoryRegion(view, size);
|
munmap(view, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
u8* MemArena::ReserveMemoryRegion(size_t memory_size)
|
u8* MemArena::ReserveMemoryRegion(size_t memory_size)
|
||||||
|
@ -63,19 +72,23 @@ u8* MemArena::ReserveMemoryRegion(size_t memory_size)
|
||||||
PanicAlertFmt("Failed to map enough memory space: {}", LastStrerrorString());
|
PanicAlertFmt("Failed to map enough memory space: {}", LastStrerrorString());
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
munmap(base, memory_size);
|
m_reserved_region = base;
|
||||||
|
m_reserved_region_size = memory_size;
|
||||||
return static_cast<u8*>(base);
|
return static_cast<u8*>(base);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemArena::ReleaseMemoryRegion()
|
void MemArena::ReleaseMemoryRegion()
|
||||||
{
|
{
|
||||||
|
if (m_reserved_region)
|
||||||
|
{
|
||||||
|
munmap(m_reserved_region, m_reserved_region_size);
|
||||||
|
m_reserved_region = nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void* MemArena::MapInMemoryRegion(s64 offset, size_t size, void* base)
|
void* MemArena::MapInMemoryRegion(s64 offset, size_t size, void* base)
|
||||||
{
|
{
|
||||||
void* retval = mmap(base, size, PROT_READ | PROT_WRITE,
|
void* retval = mmap(base, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, m_shm_fd, offset);
|
||||||
MAP_SHARED | ((base == nullptr) ? 0 : MAP_FIXED), fd, offset);
|
|
||||||
|
|
||||||
if (retval == MAP_FAILED)
|
if (retval == MAP_FAILED)
|
||||||
{
|
{
|
||||||
NOTICE_LOG_FMT(MEMMAP, "mmap failed");
|
NOTICE_LOG_FMT(MEMMAP, "mmap failed");
|
||||||
|
@ -89,6 +102,8 @@ void* MemArena::MapInMemoryRegion(s64 offset, size_t size, void* base)
|
||||||
|
|
||||||
void MemArena::UnmapFromMemoryRegion(void* view, size_t size)
|
void MemArena::UnmapFromMemoryRegion(void* view, size_t size)
|
||||||
{
|
{
|
||||||
munmap(view, size);
|
void* retval = mmap(view, size, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
|
||||||
|
if (retval == MAP_FAILED)
|
||||||
|
NOTICE_LOG_FMT(MEMMAP, "mmap failed");
|
||||||
}
|
}
|
||||||
} // namespace Common
|
} // namespace Common
|
||||||
|
|
|
@ -508,10 +508,10 @@ void NetPlaySetupDialog::UpdateListBrowser()
|
||||||
|
|
||||||
auto* hor_header = m_table_widget->horizontalHeader();
|
auto* hor_header = m_table_widget->horizontalHeader();
|
||||||
hor_header->setSectionResizeMode(0, QHeaderView::Stretch);
|
hor_header->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||||
|
hor_header->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||||
hor_header->setSectionResizeMode(1, QHeaderView::Stretch);
|
hor_header->setSectionResizeMode(1, QHeaderView::Stretch);
|
||||||
hor_header->setSectionResizeMode(2, QHeaderView::ResizeToContents);
|
hor_header->setSectionResizeMode(2, QHeaderView::ResizeToContents);
|
||||||
hor_header->setSectionResizeMode(3, QHeaderView::ResizeToContents);
|
hor_header->setSectionResizeMode(3, QHeaderView::ResizeToContents);
|
||||||
|
|
||||||
hor_header->setHighlightSections(false);
|
hor_header->setHighlightSections(false);
|
||||||
|
|
||||||
m_table_widget->setRowCount(session_count);
|
m_table_widget->setRowCount(session_count);
|
||||||
|
|
|
@ -944,9 +944,9 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos
|
||||||
(!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) ||
|
(!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) ||
|
||||||
uid_data->useDstAlpha);
|
uid_data->useDstAlpha);
|
||||||
const bool use_shader_blend =
|
const bool use_shader_blend =
|
||||||
!use_dual_source && (uid_data->useDstAlpha && host_config.backend_shader_framebuffer_fetch);
|
!use_dual_source && uid_data->useDstAlpha && host_config.backend_shader_framebuffer_fetch;
|
||||||
const bool use_shader_logic_op =
|
const bool use_shader_logic_op = !host_config.backend_logic_op && uid_data->logic_op_enable &&
|
||||||
!host_config.backend_logic_op && host_config.backend_shader_framebuffer_fetch;
|
host_config.backend_shader_framebuffer_fetch;
|
||||||
|
|
||||||
if (api_type == APIType::OpenGL || api_type == APIType::Vulkan)
|
if (api_type == APIType::OpenGL || api_type == APIType::Vulkan)
|
||||||
{
|
{
|
||||||
|
@ -1948,8 +1948,6 @@ static void WriteFog(ShaderCode& out, const pixel_shader_uid_data* uid_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WriteLogicOp(ShaderCode& out, const pixel_shader_uid_data* uid_data)
|
static void WriteLogicOp(ShaderCode& out, const pixel_shader_uid_data* uid_data)
|
||||||
{
|
|
||||||
if (uid_data->logic_op_enable)
|
|
||||||
{
|
{
|
||||||
static constexpr std::array<const char*, 16> logic_op_mode{
|
static constexpr std::array<const char*, 16> logic_op_mode{
|
||||||
"int4(0, 0, 0, 0)", // CLEAR
|
"int4(0, 0, 0, 0)", // CLEAR
|
||||||
|
@ -1973,7 +1971,6 @@ static void WriteLogicOp(ShaderCode& out, const pixel_shader_uid_data* uid_data)
|
||||||
out.Write("\tint4 fb_value = iround(initial_ocol0 * 255.0);\n");
|
out.Write("\tint4 fb_value = iround(initial_ocol0 * 255.0);\n");
|
||||||
out.Write("\tprev = {};\n", logic_op_mode[uid_data->logic_op_mode]);
|
out.Write("\tprev = {};\n", logic_op_mode[uid_data->logic_op_mode]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void WriteColor(ShaderCode& out, APIType api_type, const pixel_shader_uid_data* uid_data,
|
static void WriteColor(ShaderCode& out, APIType api_type, const pixel_shader_uid_data* uid_data,
|
||||||
bool use_dual_source)
|
bool use_dual_source)
|
||||||
|
|
|
@ -196,7 +196,9 @@ void BlendingState::ApproximateLogicOpWithBlending()
|
||||||
blendenable = true;
|
blendenable = true;
|
||||||
subtract = approximations[u32(logicmode.Value())].subtract;
|
subtract = approximations[u32(logicmode.Value())].subtract;
|
||||||
srcfactor = approximations[u32(logicmode.Value())].srcfactor;
|
srcfactor = approximations[u32(logicmode.Value())].srcfactor;
|
||||||
|
srcfactoralpha = approximations[u32(logicmode.Value())].srcfactor;
|
||||||
dstfactor = approximations[u32(logicmode.Value())].dstfactor;
|
dstfactor = approximations[u32(logicmode.Value())].dstfactor;
|
||||||
|
dstfactoralpha = approximations[u32(logicmode.Value())].dstfactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SamplerState::Generate(const BPMemory& bp, u32 index)
|
void SamplerState::Generate(const BPMemory& bp, u32 index)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue