Exemplo n.º 1
0
        public Killzone1PS3(IntPtr ipc) : base(ipc)
        {
            var baseChain = DerefChain.CreateDerefChain(ipc, BaseAddress, 0x78, 0x220, 0xD8);

            m_vert = baseChain.Chain(0x14c);
            m_hor  = baseChain.Chain(0x31C).Chain(0x78);
        }
Exemplo n.º 2
0
        public Killzone2PS3(IntPtr ipc) : base(ipc)
        {
            var baseChain = DerefChain.CreateDerefChain(ipc, BaseAddress, 0x0);

            m_vert = baseChain.Chain(0x80).Chain(0x5c).Chain(0x11c).Chain(0x78);
            m_hor  = baseChain.Chain(0x78).Chain(0x0).Chain(0x68).Chain(0xc).Chain(0x90);
        }
Exemplo n.º 3
0
        public NierPS3(IntPtr ipc) : base(ipc)
        {
            var baseChain = DerefChain.CreateDerefChain(ipc, BaseAddress, 0x7c);

            m_hor  = baseChain.Chain(0x1a8);
            m_vert = baseChain.Chain(0x1c4);
        }
Exemplo n.º 4
0
        public Persona5PS3(IntPtr ipc) : base(ipc)
        {
            var baseChain = DerefChain.CreateDerefChain(ipc, BaseAddress, 0x34, 0xD8, 0x34);

            m_hor  = baseChain.Chain(0x170);
            m_vert = baseChain.Chain(0x174);
        }
Exemplo n.º 5
0
        public Killzone3PS3(IntPtr ipc, string version) : base(ipc)
        {
            var baseChain = version switch
            {
                "01.00" => DerefChain.CreateDerefChain(ipc, 0x1587880 + 0x760, 0x38, 0x0, 0x68),
                "01.14" => DerefChain.CreateDerefChain(ipc, 0x15fcf80 + 0x770, 0x40, 0x68),
                _ => throw new NotImplementedException($"{nameof(Killzone3PS3)} with version '{version}' not implemented"),
            };

            m_vert = baseChain.Chain(0x150).Chain(0xA0);
            m_hor  = baseChain.Chain(0xFC).Chain(0x14).Chain(0xB0);
        }
Exemplo n.º 6
0
 public override void UpdateCamera(int diffX, int diffY)
 {
     if (DerefChain.VerifyChains(m_hor, m_vert))
     {
         m_camera.HorY = IPCUtils.ReadFloat(m_ipc, (uint)m_hor.Value);
         m_camera.HorX = IPCUtils.ReadFloat(m_ipc, (uint)(m_hor.Value + 4));
         m_camera.Vert = IPCUtils.ReadFloat(m_ipc, (uint)m_vert.Value);
         m_camera.Update(diffX * SensModifier, -diffY * SensModifier);
         IPCUtils.WriteFloat(m_ipc, (uint)m_hor.Value, m_camera.HorY);
         IPCUtils.WriteFloat(m_ipc, (uint)(m_hor.Value + 4), m_camera.HorX);
         IPCUtils.WriteFloat(m_ipc, (uint)m_vert.Value, m_camera.Vert);
     }
 }
Exemplo n.º 7
0
        public override void UpdateCamera(int diffX, int diffY)
        {
            if (DerefChain.VerifyChains(m_hor, m_vert))
            {
                // the values are in degrees, so they need a deg -> rad conversion
                m_camera.Hor  = (float)(IPCUtils.ReadFloat(m_ipc, (uint)m_hor.Value) * (Math.PI / 180));
                m_camera.Vert = (float)(IPCUtils.ReadFloat(m_ipc, (uint)m_vert.Value) * (Math.PI / 180));

                // the vertical value needs to be clamped, these values seemed reasonable
                m_camera.Update(-diffX * SensModifier, diffY * SensModifier);
                m_camera.Vert = (float)Math.Clamp(m_camera.Vert, -60f * (Math.PI / 180), 75f * (Math.PI / 180));

                // the new values are in radians, so they need a rad -> deg conversion
                IPCUtils.WriteFloat(m_ipc, (uint)m_hor.Value, (float)(m_camera.Hor * (180 / Math.PI)));
                IPCUtils.WriteFloat(m_ipc, (uint)m_vert.Value, (float)(m_camera.Vert * (180 / Math.PI)));
            }
        }
Exemplo n.º 8
0
 public Xillia1(IntPtr ipc) : base(ipc)
 {
     m_addr = DerefChain.CreateDerefChain(ipc, BaseAddress, 0x78);
 }