xenia-project / xenia

Xbox 360 Emulator Research Project
https://xenia.jp
Other
8.13k stars 1.12k forks source link

GL4 Translator: ADDs/MULs/SUBs issues #473

Closed JohnGodgames closed 6 years ago

JohnGodgames commented 8 years ago

Unfortunately, it is not correct too or there is an error somewhere else.

https://github.com/benvanik/xenia/pull/273/files#r32895357

Tested Games:

Eternal Sonata Dead or Alive 5 Ultimate Deadliest Catch - Alaskan Storm Looney Tunes: Acme Arsenal Madagascar Kartz Rogue Warrior Way of the Samurai 3

Current state:

GL4ShaderTranslator::TranslateALU_ADDs ---> Append(".y"); GL4ShaderTranslator::TranslateALU_MULs ---> Append(".y"); GL4ShaderTranslator::TranslateALU_SUBs ---> Append(".y");

Eternal Sonata eternal sonata y

Dead or Alive 5 Ultimate dead or alive 5 ultimate y

Deadliest Catch - Alaskan Storm deadliest catch - alaskan storm y

Looney Tunes: Acme Arsenal looney tunes acme arsenal y

Madagascar Kartz madagascar kartz y

Rogue Warrior rogue warrior translatealu_adds y

Way of the Samurai 3 way of the samurai 3 y

Previous state:

GL4ShaderTranslator::TranslateALU_ADDs ---> Append(".z"); GL4ShaderTranslator::TranslateALU_MULs ---> Append(".z"); GL4ShaderTranslator::TranslateALU_SUBs ---> Append(".z");

Eternal Sonata eternal sonata z

Dead or Alive 5 Ultimate dead or alive 5 ultimate z

Deadliest Catch - Alaskan Storm deadliest catch - alaskan storm z

Looney Tunes: Acme Arsenal looney tunes acme arsenal z

Madagascar Kartz madagascar kartz z

Rogue Warrior rogue warrior translatealu_adds z

Way of the Samurai 3 way of the samurai 3 z

dbz400 commented 8 years ago

Humm .Looks like .y or .z works correct in certain games and vice versa.Wondering if

GL4ShaderTranslator::TranslateALU_ADDs ---> Append(".y"); GL4ShaderTranslator::TranslateALU_MULs ---> Append(".z"); GL4ShaderTranslator::TranslateALU_SUBs ---> Append(".z");

JohnGodgames commented 8 years ago

GL4ShaderTranslator::TranslateALU_ADDs ---> Append(".y"); and vice versa affects:

GL4ShaderTranslator::TranslateALU_MULs ---> Append(".y"); and vice versa affects:

GL4ShaderTranslator::TranslateALU_SUBs ---> Append(".y"); and vice versa affects:

JohnGodgames commented 8 years ago

@benvanik seems to have a interactive round-tripping tool for shader assembly to verify identical bytecode: https://imgur.com/2oA3ACl and also saw why a lot of dariosama's loop code in the shader translator never worked (taken from xenia-dev irc).It can be a solution for this issues I hope...

dbz400 commented 8 years ago

GL4ShaderTranslator::TranslateALU_ADDs ---> Append(".z"); also fixes the intro violet issues in the game - I'm Alive too

TranzRail commented 8 years ago

@benvanik

It's worth noting that Madagascar Karts has its shaders in HLSL in addition to the cache version within the games data directory. Useful for additional troubleshooting. It's also not the first game I've come across that has HLSL files available for inspection. Rayman 3 is another (which has serious graphical issues).

JohnGodgames commented 8 years ago

.hlsl files also in games:

America's Army - True Soldiers Blood Bowl Brave - A Warrior's Tale Cars Cloudy with a Chance of Meatballs Deadliest Catch - Alaskan Storm Janline (JPN) MindJack Minute to Win It Mobile Suit Gundam - Operation Troy (JPN) Need for Speed Shift Need for Speed Shift 2 Unleashed NCIS: The Game Operation Darkness Rayman Raving Rabbids Sonic & SEGA All-Stars Racing with Banjo Kazooie Splatterhouse Surf's Up Test Drive Ferrari Racing Legends Tom Clancy's Ghost Recon - Advanced Warfighter Tom Clancy's Ghost Recon - Advanced Warfighter 2 Tom Clancy's Rainbow Six - Vegas Tom Clancy's Rainbow Six - Vegas 2

benvanik commented 8 years ago

Awesome listing! I'm reworking the shader translation now and that will come in handy! Thank you both!

benvanik commented 8 years ago

This is likely to have gotten a lot better (or at least hopefully not worse!) with https://github.com/benvanik/xenia/compare/295c62c7a4b4...083f936bbcb4

JohnGodgames commented 8 years ago

Eternal Sonata is broken now :(

eternal sonata new glsl 1 eternal sonata new glsl 2 eternal sonata new glsl 3

JohnGodgames commented 8 years ago

Next...

Dead or Alive 5 Ultimate doa 5 new glsl 1

Deadliest Catch - Alaskan Storm deadliest catch as new glsl 1

Rogue Warrior rogue warrior new glsl 1

benvanik commented 8 years ago

I'll check Eternal Sonata - there's one or two features I'm missing and it may be using them. On Sun, Dec 6, 2015 at 05:52 John Godgames notifications@github.com wrote:

Next...

Dead or Alive 5 Ultimate

[image: doa 5 new glsl 1] https://cloud.githubusercontent.com/assets/11453507/11613634/4c901a12-9c28-11e5-869e-7b6b6d34ac1a.PNG

Deadliest Catch - Alaskan Storm

[image: deadliest catch as new glsl 1] https://cloud.githubusercontent.com/assets/11453507/11613655/f9b57714-9c28-11e5-9e1e-720e65ae5259.PNG

Rogue Warrior [image: rogue warrior new glsl 1] https://cloud.githubusercontent.com/assets/11453507/11613644/8f30b566-9c28-11e5-956d-055d10f331c1.PNG

— Reply to this email directly or view it on GitHub https://github.com/benvanik/xenia/issues/473#issuecomment-162319443.

benvanik commented 8 years ago

Looks like Eternal Sonata may be caused by unimplemented flow control. I'll get started on jumps now to see if it helps.

JohnGodgames commented 8 years ago

Diamond at title screen now seems to be a correct, but alpha issues are still there.

eternal sonata glsl 1 eternal sonata glsl 2 eternal sonata glsl 3 eternal sonata glsl 4

dbz400 commented 8 years ago

Madagascar Kartz 's car in title screen still in black color .

JohnGodgames commented 8 years ago

Something wrong in glsl shader translator propably. @benvanik @raven02

DrChat commented 6 years ago

GL4 is now gone. Closed.