Open hotzenplotz3000 opened 7 years ago
Base on Xbe.txt file and the exception address. I can verify it is missing a patch inside DSound section.
@RadWolfie I've created issue #725 for an extension to your research
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
---------------------------
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
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.
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
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.
@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...
I've ran the debug build. that's the log: KrnlDebug_debug.txt memory.log
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.
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.
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...
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.
It became this new issue : https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/788
@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
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.
sounds promising 😄 keep up the great work 👍
How's progress for this game going? It's the only game I want to play from the original xbox lol
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.
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
---------------------------
here is also the memory.log the game creates: memory.log
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.
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.
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
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
From #689:
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
---------------------------
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
https://i.imgur.com/lL4U0BC.png https://i.imgur.com/RwwUhXM.png https://i.imgur.com/jjoi6R8.png
Game now doesn't allow user input (such as pressing A / start to skip intro cutscenes)
@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)
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.
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
New error when launching into game (by repeatedly pressing A or something in main menu), dump:
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
---------------------------
Game no longer crashes. Summary of the current state of the game:
Game displays splash screen and intro videos perfectly with audio. Crashes just before main menu/copyright info:
Screenshots from the latest two posts from different users above give the matching title ID: [US-005] [v1.02].
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
Additional Information