TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.13k stars 380 forks source link

Streaming from GBC Virtual Memory #3443

Closed GHRoss closed 1 year ago

GHRoss commented 1 year ago

Hey all,

I'm looking for a way to read (and ideally write) live memory data of virtual RAM of a Game Boy Colour running Tetris DX. Is this the right place to ask that question?

I've tried RALibretro but it doesn't have an interface with any programming languages.

But it got me this far!!

YoshiRulz commented 1 year ago

Not sure what you mean by "streaming", but you can certainly read memory programmatically with Lua (memory lib) or C# (IMemoryApi).

GHRoss commented 1 year ago

Not sure what you mean by "streaming", but you can certainly read memory programmatically with Lua (memory lib) or C# (IMemoryApi).

What I mean by that is reading it in real time, I guess. I don't suppose you have an example of the C# method? I've been looking online and couldn't find anything.

YoshiRulz commented 1 year ago

https://github.com/TASEmulators/BizHawk-ExternalTools/wiki/Development-quickstart

CasualPokePlayer commented 1 year ago

https://tasvideos.org/Bizhawk/LuaFunctions if you wish to instead use lua.

GHRoss commented 1 year ago

https://github.com/TASEmulators/BizHawk-ExternalTools/wiki/Development-quickstart

Nice, thank you. Is there also a APIs.Memory.SetByteRange() method?

CasualPokePlayer commented 1 year ago

https://github.com/TASEmulators/BizHawk/blob/84e195659c47fdf8b617777a1504efe5cffb169e/src/BizHawk.Client.Common/Api/Interfaces/IMemoryApi.cs#L33

GHRoss commented 1 year ago

Wow, nice! Do you have any examples? Sorry to ask, I'm a very rookie programmer.

YoshiRulz commented 1 year ago

I'm going to suggest that a "very rookie programmer" should not attempt to use ApiHawk. Consider the Lua option, though IMO Lua is a much worse choice for first language than C#. Developing for ApiHawk just requires older and more obscure tooling/features than a modern C# hello world project does.

I don't know of an example for IMemoryApi.WriteByteRange specifically, but you can check out these sample projects: HelloWorld, Bk2ExporterToolForm

GHRoss commented 1 year ago

That's a fair comment. I'm keen to learn though.

I'm going through the development quickstart and getting this error when running...

requested ext. tool dll MyTool could not be loaded

This is on Ubuntu 22.04. BizHawk does open but it doesn't do anything. And yes, the ROM is present and works when loaded in manually to BizHawk.

Here's a list of files, perhaps I'm missing something?

dir tree ``` /home/ross/Documents/Code/MyTool/BizHawk /home/ross/Documents/Code/MyTool/src /home/ross/Documents/Code/MyTool/build_and_run.sh /home/ross/Documents/Code/MyTool/MyTool.cs /home/ross/Documents/Code/MyTool/src/bin /home/ross/Documents/Code/MyTool/src/obj /home/ross/Documents/Code/MyTool/src/MyTool.csproj /home/ross/Documents/Code/MyTool/src/bin/Debug /home/ross/Documents/Code/MyTool/src/bin/Debug/net48 /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.BizInvoke.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.Bizware.BizwareGL.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.Client.Common.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.Common.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.Emulation.Common.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.Emulation.Cores.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.Emulation.DiscSystem.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/BizHawk.WinForms.Controls.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/Cyotek.Drawing.BitmapFont.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/EmuHawk.exe /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/FlatBuffers.Core.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/FlatBuffers.GenOutput.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/ISOParser.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/MyTool.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/MyTool.pdb /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/Newtonsoft.Json.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/SharpCompress.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Buffers.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Collections.Immutable.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Data.SQLite.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Drawing.Common.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Memory.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Numerics.Vectors.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/System.Runtime.CompilerServices.Unsafe.dll /home/ross/Documents/Code/MyTool/src/bin/Debug/net48/Virtu.dll /home/ross/Documents/Code/MyTool/src/obj/Debug /home/ross/Documents/Code/MyTool/src/obj/MyTool.csproj.nuget.dgspec.json /home/ross/Documents/Code/MyTool/src/obj/MyTool.csproj.nuget.g.props /home/ross/Documents/Code/MyTool/src/obj/MyTool.csproj.nuget.g.targets /home/ross/Documents/Code/MyTool/src/obj/project.assets.json /home/ross/Documents/Code/MyTool/src/obj/project.nuget.cache /home/ross/Documents/Code/MyTool/src/obj/Debug/net48 /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.AssemblyInfo.cs /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.AssemblyInfoInputs.cache /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.assets.cache /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.csproj.AssemblyReference.cache /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.csproj.CopyComplete /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.csproj.CoreCompileInputs.cache /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.csproj.FileListAbsolute.txt /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.dll /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.GeneratedMSBuildEditorConfig.editorconfig /home/ross/Documents/Code/MyTool/src/obj/Debug/net48/MyTool.pdb /home/ross/Documents/Code/MyTool/BizHawk/dll /home/ross/Documents/Code/MyTool/BizHawk/ExternalTools /home/ross/Documents/Code/MyTool/BizHawk/gamedb /home/ross/Documents/Code/MyTool/BizHawk/NES /home/ross/Documents/Code/MyTool/BizHawk/BizHawk.Client.Common.dll /home/ross/Documents/Code/MyTool/BizHawk/config.ini /home/ross/Documents/Code/MyTool/BizHawk/EmuHawk.exe /home/ross/Documents/Code/MyTool/BizHawk/EmuHawkMono_laststderr.txt /home/ross/Documents/Code/MyTool/BizHawk/EmuHawkMono_laststdout.txt /home/ross/Documents/Code/MyTool/BizHawk/EmuHawkMono.sh /home/ross/Documents/Code/MyTool/BizHawk/gamedb/game.db /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_a2600.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_a7800.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_amstradcpc_disks.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_amstradcpc.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_appleII.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_channelf.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_coleco.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_e_cards.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_gb.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_gba.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_gbc.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_goodnes.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_intv.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_lynx.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx_msx1_cas.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx_msx1_dsk.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx_msx1_rom.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx_msx2_cas.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx_msx2_dsk.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx_msx2_rom.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx1-L.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_msx2-L.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_n64.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_nds.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_nes.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_neshomebrew.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_ngp_nointro.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_ngp_tosec.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_ngp.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_Odyssey2.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_pce_cd.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_pce_hucards.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_psx.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_sega_gg.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_sega_md.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_sega_sg1000.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_sega_sms.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_snes.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_vectrex_nointro.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_vectrex_tosec.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_vectrex.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_vs.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_ws.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_wsc.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_zxspectrum_disks.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_zxspectrum_tapes.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb_zxspectrum.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/gamedb.txt /home/ross/Documents/Code/MyTool/BizHawk/gamedb/NesCarts.xml /home/ross/Documents/Code/MyTool/BizHawk/NES/State /home/ross/Documents/Code/MyTool/BizHawk/ExternalTools/MyTool.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/nlua /home/ross/Documents/Code/MyTool/BizHawk/dll/7z.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/ares64.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.BizInvoke.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Bizware.BizwareGL.deps.json /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Bizware.BizwareGL.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Bizware.DirectX.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Bizware.OpenTK3.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Client.Common.deps.json /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Client.Common.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Common.deps.json /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Common.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Emulation.Common.deps.json /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Emulation.Common.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Emulation.Cores.deps.json /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Emulation.Cores.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Emulation.DiscSystem.deps.json /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.Emulation.DiscSystem.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/BizHawk.WinForms.Controls.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/bizlynx.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/bizswan.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/blip_buf.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/bsnes.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/Cyotek.Drawing.BitmapFont.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/dobie.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/faust.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/FlatBuffers.Core.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/FlatBuffers.GenOutput.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/freetype26.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/GongShell.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/gpgx.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/hyper.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/ISOParser.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libares64.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libares64.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libbizlynx.dll.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libbizswan.dll.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libblip_buf.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libdarm.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libdarm.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libemu83.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libemu83.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libfwunpack.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libfwunpack.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libgambatte.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libgambatte.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libgcc_s_seh-1.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libmgba.dll.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libMSXHawk.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libpng16.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libquicknes.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libquicknes.dll.so.0.7.0 /home/ross/Documents/Code/MyTool/BizHawk/dll/LibretroBridge.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/LibretroBridge.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libsameboy.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libsameboy.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libsnes.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/libspeexdsp.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libstdc++-6.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/libwaterboxhost.so /home/ross/Documents/Code/MyTool/BizHawk/dll/libwinpthread-1.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/lua51.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/LuaInterface.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/melonDS.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/mgba.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/MSXHawk.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-audio-bkm.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-input-bkm.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-rsp-hle.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-video-glide64.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-video-glide64mk2.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-video-GLideN64.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus-video-rice.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/mupen64plus.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/Newtonsoft.Json.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/ngp.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/octoshock.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/OpenAL32.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/OpenTK.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/OpenTK.dll.config /home/ross/Documents/Code/MyTool/BizHawk/dll/OpenTK.GLControl.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/pcfx.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/PcxFileTypePlugin.HawkQuantizer.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/picodrive.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/SDL.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/SDL2.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/SharpCompress.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/shock.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/SlimDX.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/snes9x.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/ss.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Buffers.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Collections.Immutable.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.ComponentModel.Annotations.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Data.SQLite.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Drawing.Common.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Memory.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Numerics.Vectors.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Resources.Extensions.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Runtime.CompilerServices.Unsafe.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/System.Text.Encoding.CodePages.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/turbo.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/uzem.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/vb.wbx.gz /home/ross/Documents/Code/MyTool/BizHawk/dll/Virtu.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/waterboxhost.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/wrap_oal.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/zlib.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/zlib1.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/nlua/KopiLua.dll /home/ross/Documents/Code/MyTool/BizHawk/dll/nlua/NLua.dll ```
GHRoss commented 1 year ago

OK, so I found it in the menu and this was the error...

The assembly doesn't contain a class implementing IExternalToolForm and annotated with [ExternalTool].

But it is in the code...

YoshiRulz commented 1 year ago

MyTool.cs needs to be in src edit: updated guide

GHRoss commented 1 year ago

I did that but now I get this other error too...

Error: NullHawk does not implement memory domains requested ext. tool dll MyTool could not be loaded

YoshiRulz commented 1 year ago

I think that's because you're launching from the command-line without specifying a rom (or enabling autoload last rom). If you launch EmuHawk manually, the menu item should be greyed-out with the same error message in a tooltip.

GHRoss commented 1 year ago

OK, seems to be working now, although the text in the SMB Autosave window only ever shows anything when I have the controller configuration open? Otherwise it's just a blank white window?

It also doesn't automatically load the tool still, I get the same error, but it loads if I go into the External Tools menu and select it from there..?

YoshiRulz commented 1 year ago

I've not heard of any rendering problems with WinForms before, are you still struggling with that? You can join the ApiHawk Discord server or message me directly if you would prefer IM.

GHRoss commented 1 year ago

I've not heard of any rendering problems with WinForms before, are you still struggling with that? You can join the ApiHawk Discord server or message me directly if you would prefer IM.

Messaged on DIscord. :)

CasualPokePlayer commented 1 year ago

I'd take it this issue doesn't need to stay open now?

YoshiRulz commented 1 year ago

Never did figure out why the ext. tool's Form was rendering strangely, CNR even on the same distro. But yes, original question was answered.