private void Init()
        {
            Mem.SetBigEndian();
            string gameName = GI.GetRomName();

            switch (gameName)
            {
            case "ECCO - The Tides of Time (J) [!]":
                _tool = new Ecco2Tool(this, GameRegion.J);
                break;

            case "ECCO - The Tides of Time (U) [!]":
                _tool = new Ecco2Tool(this, GameRegion.U);
                break;

            case "ECCO - The Tides of Time (E) [!]":
                _tool = new Ecco2Tool(this, GameRegion.E);
                break;

            case "ECCO The Dolphin (J) [!]":
            case "ECCO The Dolphin (UE) [!]":
            /*_tool = new EccoTool(this, GameRegion.UE);*/
            default:
                Close();
                break;
            }
        }
        public override void UpdateValues(ToolFormUpdateType type)
        {
            if (Mem == null || Gui == null || Emu == null || GI?.GetRomName() == "Null")
            {
                return;
            }

            switch (type)
            {
            case ToolFormUpdateType.PreFrame:
                UpdateFog();
                break;

            case ToolFormUpdateType.PostFrame:
                if (CbxEnableControlsSection.Checked)
                {
                    ReportControls();
                }
                ReportAngles();
                ReportPosition();
                if (CbxEnableOverlayCameraReporting.Checked)
                {
                    ReportOverlayInfo();
                }
                //ReportMisc();
                Gui.WithSurface(DisplaySurfaceID.EmuCore, DrawStuff);
                if (CbxStats.Checked)
                {
                    ReportStats();
                }
                //GetRegisterTest();
                if (CbxTriggersAutoUpdate.Checked)
                {
                    CheckForUpdatedTriggers();
                }
                break;

            default:
                break;
            }
        }