Panda3DS icon indicating copy to clipboard operation
Panda3DS copied to clipboard

Artifact, on open in linux without ROM

Open GabrielBRDeveloper opened this issue 1 year ago • 17 comments

OS: LinuxMint 21.1 Kernel: 5.15.0-76-generic

image

GabrielBRDeveloper avatar Jul 17 '23 20:07 GabrielBRDeveloper

How did you install this? Maybe try compiling from source?

wheremyfoodat avatar Jul 17 '23 20:07 wheremyfoodat

Builded from source

GabrielBRDeveloper avatar Jul 17 '23 22:07 GabrielBRDeveloper

Does it work if you load a ROM eg Ocarina of Time? What's your GPU?

wheremyfoodat avatar Jul 17 '23 22:07 wheremyfoodat

in the precompiled version, it doesn't even display the window.

GabrielBRDeveloper avatar Jul 17 '23 22:07 GabrielBRDeveloper

Yeah the precompiled builds aren't really portable because shipping software on Linux is not a fun experience

wheremyfoodat avatar Jul 17 '23 22:07 wheremyfoodat

Potentially fixed in #259?

wheremyfoodat avatar Sep 05 '23 16:09 wheremyfoodat

Not resolved.

image

image

GabrielBRDeveloper avatar Sep 05 '23 23:09 GabrielBRDeveloper

Could you try loading a ROM? Also please post your specs and any important information if possible.

wheremyfoodat avatar Sep 05 '23 23:09 wheremyfoodat

My system:

image

I will test Zelda Ocarina, and return with a feedback

GabrielBRDeveloper avatar Sep 05 '23 23:09 GabrielBRDeveloper

Thanks!

wheremyfoodat avatar Sep 05 '23 23:09 wheremyfoodat

did error:

image

Unhandled SIGSEGV at rip 0x00007f62d19a9c9d Falha de segmentação (imagem do núcleo gravada)

GabrielBRDeveloper avatar Sep 05 '23 23:09 GabrielBRDeveloper

Uh that's bad. Does this ROM run on Citra?

wheremyfoodat avatar Sep 05 '23 23:09 wheremyfoodat

too crash in recent citra version, i go to check the rom file.

GabrielBRDeveloper avatar Sep 06 '23 01:09 GabrielBRDeveloper

image

GabrielBRDeveloper avatar Sep 06 '23 01:09 GabrielBRDeveloper

It's working.

GabrielBRDeveloper avatar Sep 06 '23 01:09 GabrielBRDeveloper

The artifact is caused because is not none rendering in moment, on edit code in emulator.cpp:


void Emulator::runFrame() {
	if (running) {
		cpu.runFrame(); // Run 1 frame of instructions
		gpu.display();  // Display graphics

		// Send VBlank interrupts
		ServiceManager& srv = kernel.getServiceManager();
		srv.sendGPUInterrupt(GPUInterrupt::VBlank0);
		srv.sendGPUInterrupt(GPUInterrupt::VBlank1);

		// Run cheats if any are loaded
		if (cheats.haveCheats()) [[unlikely]] {
			cheats.run();
		}
	} else if (romType != ROMType::None) {
		// If the emulator is not running and a game is loaded, we still want to display the framebuffer otherwise we will get weird
		// double-buffering issues
		gpu.display();
	}
}


removing the if (romType != ROMType::None)


} else {
		// If the emulator is not running and a game is loaded, we still want to display the framebuffer otherwise we will get weird
		// double-buffering issues
		gpu.display();
	}

The artifact fades aways.

GabrielBRDeveloper avatar Sep 06 '23 03:09 GabrielBRDeveloper

OK then I am likely forgetting to clear a texture somewhere. I'll check it out. Though thankfully the emu still works itself.

wheremyfoodat avatar Sep 06 '23 06:09 wheremyfoodat