View Single Post
Old 3rd April 2007, 05:57 AM
zilmar zilmar is offline
Core Team
Alpha Tester
Project Supporter
Join Date: Jun 2005
Posts: 988
Default Castlevania 2 ?Legacy of Darkness

I re-wrote a lot of the internal handling of compiled code a few builds ago. This is one of the few games that came off worse for wear for it. I was debugging in to it today to see if I could understand what was going on with the game and why it behaved worse.
I have worked out why the game is worse off. Where in 1.6 I could use protected memory and the game worked great. I currently have to turn on other self modification methods that slow the game down significantly. What the game is doing is it has 3 buffers with code in memory and one virtual address pointing to these code blocks. It constantly is changing the buffer that it points to, so turning on self mod methods detects this change and constantly recompiles these buffers.
What broke it in latter beta builds is that I found the virtual address and said this code already existed and replaced it with the old one. So it had both virtual locations pointing to the same physical location. I had built the original solution on how games like golden eye and conkers bad fur day used the TLB. I am going to re-write some of the function lookup to make use of Physical address as well as virtual address. I hope I should be able to fix this problem in the next beta build.
Read here to get access to the beta development of pj64
Reply With Quote