xemu-project / xemu

Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
https://xemu.app
Other
2.78k stars 279 forks source link

Beyond Good & Evil gets glGetError() == GL_NO_ERROR after first wave of enemies #492

Closed MattPonton closed 2 years ago

MattPonton commented 3 years ago

Title

https://xemu.app/titles/55530018/#Beyond-Good-Evil

NTSC US-024 v1.02

Bug Description

After starting a new game and reaching first playable state, defeating the enemies will pop an assertion:

File: ../hw/xbox/nv2a/pgraph.c
Line: 752

Expression: glGetError() == GL_NO_ERROR

Steps to reproduce this issue:

  1. Insert Disk
  2. Select New Game
  3. Defeat the wave of enemies.

Expected Behavior

Player should be given a cutscene.

xemu Version

0.6.1-20-g21718399f2

System Information

OS: Windows 10 Pro v20H2 build 19042.1052 CPU: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz 3.79GHz Graphics Device: NVIDIA GeForce RTX 3080 Ti Graphics Driver: 472.12

Additional Context

No response

Triticum0 commented 2 years ago

@MattPonton Could you retest it should be fixed

raintrija commented 2 years ago

@MattPonton Could you retest it should be fixed

Hi, I have test this game on the new version v0.7.21 on May 26, 2022, This game still crashes after the first wave of enemies. MY PC Spec Intel core I5 10500, Amd R9290 card.

I hope Xemu's developers will continue to improve this wonderful project. I really appreciate your hard work. Because of your effort, These Xbox games and memories about them in many of us will continue to exist and maybe the younger generation will appreciate these games just like their father and brother have had.

Triticum0 commented 2 years ago

@abaire This issue wasn't fixed by #738

Games Fixed

https://xemu.app/titles/45410091/#Half-Life-2 https://xemu.app/titles/545100f8/#Full-Spectrum-Warrior-Ten-Hammers https://xemu.app/titles/45410066/#TimeSplitters-Future-Perfect

Not Fixed #635

https://xemu.app/titles/55530018/#Beyond-Good-Evil https://xemu.app/titles/5451001a/#Nickelodeon-SpongeBob-SquarePants-in-Battle-for-Bikini-Bottom

Unsure

https://github.com/mborgerson/xemu/issues/288 has'nt been retested

abaire commented 2 years ago

@Triticum0 thanks. For the glGetError asserts we really have to treat each game individually since that error is generic and can be caused by a lot of different issues.

We will need to test each failure with a debugger to figure out what the actual error is and then group by that.

Triticum0 commented 2 years ago

I Agree when I look at the code I think there are multiple GlGetErrors which you can Hit. But I think it might be similar to This issue https://github.com/mborgerson/xemu/issues/387 and #373 I think if he presses ignore he might hit a different assertion.

Triticum0 commented 2 years ago

@raintrija Dont worry someone else has retested it

abaire commented 2 years ago

Yeah, the problem is that bypassing the glGetError means you're in a very broken state, so ignoring it doesn't necessarily tell us anything useful about what happened.

I asked @revix-0 to test with my https://github.com/abaire/xemu/tree/debug/log_gl_errors branch, which adds more gl debug output when DEBUG_NV2A_GL is enabled.

Fabxx commented 2 years ago

Testing after the battle on Linux i get this assert instead: xemu: ../hw/xbox/nv2a/pgraph.c:2828: pgraph_NV097_SET_BEGIN_END_handler: asserzione "pg->color_binding || pg->zeta_binding"

Triticum0 commented 2 years ago

It this issue #635 then

abaire commented 2 years ago

I think this bug is distinct from the issue @revix-0 hit and the difference is that the glError may only pop up on Windows or with that specific nvidia driver. We should see if we can get a confirmation of the bug on Windows before closing it.

MattPonton commented 2 years ago

This bug no longer occurs as of latest version:

Version:      0.7.36
Branch:       master
Commit:       daa2748a2fd1df07df0a18de273b71e9320191f5
Date:         Wed Jun 15 01:37:59 UTC 2022
mborgerson commented 2 years ago

Thanks