gonetz / GLideN64

A new generation, open-source graphics plugin for N64 emulators.
Other
771 stars 179 forks source link

A Bug's Life: Exit sign stick invisible #2765

Open oddMLan opened 1 year ago

oddMLan commented 1 year ago

Okay this is a very weird issue. It happens across ALL plugins I've tried (LLE or HLE) except Angrylion. The leaf isn't supposed to be floating by itself here. There is a stick to where is attached to.

GLideN64_A_Bug's_Life_000

This is how it looks using latest angrylion-plus. A Bug s Life_0002

Hardware footage: https://youtu.be/G1_-keeFi9g?t=300

Note that the texture itself seems kind of glitchy. Might be a texture with wrong parameters that happens to work by pure luck in real hardware.

Tested with Project64 Dev-3.0.1-5670-400f110 (latest stable release) GLideN64 rev. 1f4d04f

Savestate: A Bug's Life (U).pj.zip

gonetz commented 1 year ago

Thanks for the report and save! Yes, I can see that stick in wireframe mode: Glide64_A_Bug's_Life_01 I didn't find yet why it is invisible in normal mode.

gonetz commented 1 year ago

seems to be a problem with texture load. The branch is visible with "inaccurate texture coordinates" enabled, but color is wrong. The game uses 16bit RGBA texture and sets tile size to 64x64. Max tile size, which fits TMEM is 64x32. The plugin wraps TMEM address when it loads such texture, but vertex texture coordinates are probably not wrapped. I hacked the tile size and got this: GLideN64_A_Bug's_Life_000 better, but still incorrect.

oddMLan commented 1 year ago

Seems like a programming oversight from the game developer. The game was ported over from the PlayStation. If you try to move the camera around when using angrylion, you'll see that the texture is a weird glitchy reddish brown color and has holes in it. There is an identical exit sign at the end of the Anthill level, and that one looks more like the hacked version you show here (albeit a darker shade of brown).

gonetz commented 1 year ago

Seems like a programming oversight from the game developer.

Yes. The texture looks like that: ABL

It does not look like as a valid texture. It looks the same with AL RDP: ABL-AL

With the input like that the result is unpredictable.