Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dolphin support in RALibretro #353

Open
rosefloase opened this issue Dec 19, 2022 · 4 comments
Open

Dolphin support in RALibretro #353

rosefloase opened this issue Dec 19, 2022 · 4 comments

Comments

@rosefloase
Copy link

Heyo peoples..

Currently,, the Dolphin emulator is not displayed in the "Manage Cores" window in settings.
I'm pretty sure that RALibretro uses normal Libretro cores.. if they dont,, then it would just be something nice to have in the future..
I'm also kinda new to RALibretro,, if that wasn't obvious enough

image
This image is a screenshot of the context menu within the Manage Cores window

@RALordAndrew
Copy link

Only cores that support achievements are available in the Manage Cores window. The Dolphin core is not supported. According to our documention, it does not generate video in RALibretro.

@Jcw87
Copy link
Contributor

Jcw87 commented Feb 20, 2023

I've figured out why it doesn't generate video using RenderDoc.

image

The Dolphin OpenGL renderer binds a sampler that uses a filtering type that expects mipmaps, and the texture that Dolphin renders to doesn't have mipmaps, so the render to the screen fails. I added some code to reset the sampler. This is the result.

image

@Jamiras Jamiras linked a pull request Feb 20, 2023 that will close this issue
@Jamiras Jamiras removed a link to a pull request Feb 20, 2023
@Jamiras
Copy link
Member

Jamiras commented Feb 20, 2023

#365 fixes the rendering issue, but we still need to define the memory map and hashing algorithm.

Also, the core seems to be exposing one big chunk of internal memory, where the extended RAM for the Wii is disconnected from the main RAM. The stuff in between won't be in the memory map, so the core will be expected to implement RETRO_ENVIRONMENT_SET_MEMORY_MAPS. The big chunk should be okay for GameCube games as the GameCube RAM is the first region within the big chunk.

@CasualPokePlayer
Copy link

CasualPokePlayer commented Feb 20, 2023

Something to consider is exposing ARAM (Auxiliary RAM) for GC. ARAM is an extra 16 MB of RAM used mainly by the DSP for audio but sometimes used for other things by games. It's not connected to the main CPU bus, so it wouldn't be exposed in Memmap.cpp, but the pointer can be obtained in DSP.cpp. On the Wii this is just an alias to its Extended RAM.

Another thing to consider is Dolphin's ability to give "more RAM" to the game. This is a dangerous hack, most games do not query for the amount of RAM available and this just does nothing, some games do but end up immediately crashing sometime after bootup, or otherwise just become very unstable, and for a few games this has some benefits (for preventing some OOM crashes). It mainly is used for randos and other kinds of hacks which need more memory. If it is decided to allow this setting, then the memory map would need to be made to account for the maximum values given here, 24 -> 64 MB for main RAM and 64 -> 128 MB for the Wii's extended RAM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants