void UpdateLimbsDlists()
        {
            _dlistError = null;
            _limbDlists = new List <F3DZEX.Command.Dlist>();

            foreach (var limb in _limbs)
            {
                F3DZEX.Command.Dlist dlist = null;
                try
                {
                    if (limb.DListSeg.VAddr != 0)
                    {
                        dlist = _renderer.GetDlist(limb.DListSeg);
                    }
                }
                catch (Exception ex)
                {
                    if (_dlistError == null)
                    {
                        _dlistError = $"Error while decoding dlist 0x{limb.DListSeg.VAddr:X8} : {ex.Message}";
                    }
                }
                _limbDlists.Add(dlist);
            }
        }
        void DecodeDlists()
        {
            _renderer.ClearErrors();
            _dlistError = null;

            foreach (RenderRoutine routine in _routines)
            {
                try
                {
                    routine.Dlist = _renderer.GetDlist(routine.Address);
                }
                catch (Exception ex)
                {
                    _dlistError = $"Error while decoding dlist 0x{routine.Address:X8} : {ex.Message}";
                    return;
                }
            }
        }