Cxbx-Reloaded / game-compatibility

Cxbx-Reloaded game compatibilty list, using GitHub issues
GNU General Public License v2.0
115 stars 29 forks source link

Ghost Recon 2 [Tom Clancy's Ghost Recon 2] [US-005] [1.02] #337

Open hotzenplotz3000 opened 7 years ago

hotzenplotz3000 commented 7 years ago

Tom Clancy's Ghost Recon 2

Description

Game shows splash screen and crashes with "CMemoryManager_PoolAlloc+0xdc1"

Dumps

Xbe.txt KrnlDebug.txt hlecache.txt

Status

Previous behavior: -

Current behavior: booting

Screenshots

capture20170910180539162 capture20170910180547745

Additional Information

RadWolfie commented 7 years ago

Base on Xbe.txt file and the exception address. I can verify it is missing a patch inside DSound section.

PatrickvL commented 7 years ago

@RadWolfie I've created issue #725 for an extension to your research

hotzenplotz3000 commented 7 years ago

retested the game with build 131ce6da now it crashes with folowing error:

---------------------------
Cxbx-Reloaded
---------------------------
Received Exception Code 0xC0000005 @ EIP := 0x004EBEBC(=CHRTFSource_SetFullHRTF5Channel+0x2c8)

  Press "OK" to terminate emulation.
  Press "Cancel" to debug.
---------------------------
OK   Abbrechen   
---------------------------

Dump KrnlDebug_131ce6da.txt hlecache_v2.txt

hotzenplotz3000 commented 7 years ago

can conform some progress with the new PR https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/785 it seems, that it has issues with intros and textures Intros are only playing a looping sound, but no picture It hangs eventually and won't proceed

KrnlDebug_f2acc6e9.txt hlecache_f2acc6e9.txt

2017-11-03 22_05_23-cxbx-reloaded 5f8c1d91 nov 3 2017 _ emulating ghost recon 2 - fps_ 57 53 ms_

RadWolfie commented 7 years ago

Did you tried press start button? It may progress to different audio output. I'm noticing some titles after 5558 has similar result with visual output and different audio output.

hotzenplotz3000 commented 7 years ago

Yes I've tried it while testing. You can skip some videos. but that's the point where it just hangs and plays distorted music. It sounds like it's hanging on the "press start" screen. Strange thing is, you shouldn't be able to skip any video on real hardware 😄

also noticed, this game creates a memory.log looks like it's a memory allocation logfile. I've added one from cxbx-r and from real-hw. Maybe a test case for you? memory_cxbxr.log memory_og_hw.log

RadWolfie commented 7 years ago

I'm pretty sure one of @Cxbx-Reloaded/developers or contributor can get this memory allocate fix sooner. Thanks for letting us know for this title do create a memory.log file. I do believe the way Cxbx setup the memory is not working by design.

PatrickvL commented 7 years ago

@hotzenplotz3000 Could you run a DEBUG build and attach the KrnlDebug from that? I'm curious for how the memory.log gets filled; If it's using NtQueryVirtualMemory, MmIsAddressValid, MmQueryAllocationSize or MmQueryStatistics to get the numbers it's dumping...

hotzenplotz3000 commented 7 years ago

I've ran the debug build. that's the log: KrnlDebug_debug.txt memory.log

PatrickvL commented 7 years ago

Thanks. I still miss a lot of debugging information, but luckily, this is enough to establish memory statistics are retrieved using MmQueryStatistics, and by the looks of it, the VirtualMemoryBytesCommitted member is read.

RadWolfie commented 7 years ago

Yeah, I notice MemoryStatistics is giving same size over time from Cxbx-R.

What it should do is read the processor's memory in used then start with maximum size of 64/128 MB limitation. This way, it should provide accurate given memory sizes info back to xbox. To this day, we all have more than 4GB of RAM.

From memory_og_hw.log file, at the end of the each line seem to be showing total RAM in used. And the beginning of each line is how much memory it request to reserve part of the RAM.

PatrickvL commented 7 years ago

We are in dire need of memory page handling, modelled as close as possible to the real thing (thus: keep page table entries, page directory entries, protection flags, allocation statistics, bidirectional mapping of physical to virtual memory, and then some).

I wish I had some time to implement something like that - plenty of ideas, next to no available time...

PatrickvL commented 7 years ago

I'll see if there's an issue for this already, if not create it, and/or extend it with the ideas I have about this.

PatrickvL commented 7 years ago

It became this new issue : https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/788

hotzenplotz3000 commented 6 years ago

@PatrickvL I've tested the game with your Loader mentioned here https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/769 Memory log is looking more consistent now and is almost the same every time running the emulation. Here some logs: KrnlDebug_loader.zip memory.log

PatrickvL commented 6 years ago

Thanks for testing that. It's an encouraging start, but we'll need an actual implementation for virtual memory management to really reap the benefits of this new setup.

Luckily, there's already some work being done on that behind the scenes. Don't know yet when that will become available, but I've already (privately) seen the first few test results and those look promising.

hotzenplotz3000 commented 6 years ago

sounds promising 😄 keep up the great work 👍

dudefrom531 commented 6 years ago

How's progress for this game going? It's the only game I want to play from the original xbox lol

ObiKKa commented 6 years ago

Actually, someone is building the Virtual Memory Manager functions into the emulator right now. You can refer to Patrick's last comment above about that issue. Read the comments over there. But they've discovered new problem(s) DUE to implementing MORE code behind the scenes so they'll have to trouble-shoot and fix new bugs.

hotzenplotz3000 commented 6 years ago

checked current state with build 984e2bd5

The game now crashes after pressing "start" on main screen with following error:

---------------------------
Cxbx-Reloaded
---------------------------
Received Fatal Message:

* Unknown IVB Register : 5

---------------------------
OK   
---------------------------

KrnlDebug.txt

here is also the memory.log the game creates: memory.log

PatrickvL commented 6 years ago

This IVB stands for Independent Vertex Buffer. Meaning, graphics are being drawn by sending each vertex to the GPU individually. That's not very efficient, and already emulated to some extend. We'll have to debug this register 5 to get further.

PatrickvL commented 6 years ago

The memory log is quite interesting too; I'm curious to how it compares when running on real hardware... Right now I still see lots of zeroes, which could mean it reads at least one statistic not populated yet.

hotzenplotz3000 commented 6 years ago

I've uploaded the memory log from real hardware in a comment above memory_og_hw.log

and here is a debug log from current master build: KrnlDebug_dbg.zip

dudefrom531 commented 6 years ago

The game kinda loads now. It shows the top diagonal of the splashscreens, then once it loads the main menu it shows the background animation, without showing the menu. The speed is very inconsistent

CakeLancelot commented 6 years ago

From #689:

Description

The game boots into the main menu, without showing main menu selections. Continuing to press A will boot into the game, but will crash with the error. Only the top left diagonal is shown, and speed is very inconsistent, glitchy, and fast in the main menu.

---------------------------
Cxbx-Reloaded
---------------------------
Received Exception Code 0xC0000005 @ EIP := 0x04070CF3

  Press "OK" to terminate emulation.
  Press "Cancel" to debug.
---------------------------
OK   Cancel   
---------------------------

Dumps

KrnlDebug.txt Xbe.txt

Status

Previous behavior:

Game shows splash screen and crashes with "CMemoryManager_PoolAlloc+0xdc1"

Current behavior:

Boots into main menu without showing main menu selection reel, glitchy speed, crashes when pressing A to get into game

Screenshots

https://i.imgur.com/lL4U0BC.png https://i.imgur.com/RwwUhXM.png https://i.imgur.com/jjoi6R8.png

Additional Information

dudefrom531 commented 6 years ago

Game now doesn't allow user input (such as pressing A / start to skip intro cutscenes)

PatrickvL commented 6 years ago

@LukeUsher this last comment could mean input did work before, meaning a bisect on this title could lead to something (if you deem it worthwhile)

dudefrom531 commented 6 years ago

MAJOR progress. The entire game's intro sequence is no longer glitching / twitching etc. The game no longer shows the animated menu, but the menu is somewhat interactive when pressing random buttons (that seem to not really be correlated with the actual game controls). It's almost convinced me that the game is getting into an ingame state, but I kept pressing a button until the game initialized with the first mission, and it crashed, just like before.

Edit - The animated menu shows when pressing a certain button, but it only shows the background, not the menu items. Random noises play when pressing certain buttons.

dudefrom531 commented 6 years ago

The game can now boot into campaign when in the invisible main menu (by repeatedly pressing whatever button acts as "select"/"action", probably A; try a bunch of random buttons to see what it is). When in campaign, there are no visuals, but audio is normal and clear. Before, the game crashed when booting into campaign, instead of booting into a black screen with audio.

Edit - It only sometimes does this

dudefrom531 commented 6 years ago

New error when launching into game (by repeatedly pressing A or something in main menu), dump:

Xbe.txt

NZJenkins commented 5 years ago

Crash on boot, can't get to main menu Xbe.txt

---------------------------
Cxbx-Reloaded
---------------------------
Received Exception Code 0xC0000005 @ EIP := 0x00000000(=unknown+0x0)

  Press "OK" to terminate emulation.
  Press "Cancel" to debug.
---------------------------
OK   Cancel   
---------------------------
ss4up commented 5 years ago

Game no longer crashes. Summary of the current state of the game:

image

Tiger151 commented 4 years ago

Game displays splash screen and intro videos perfectly with audio. Crashes just before main menu/copyright info:

image

ObiKKa commented 4 years ago

Screenshots from the latest two posts from different users above give the matching title ID: [US-005] [v1.02].