-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More debugging / hacking functionality #337
Comments
Sorry, I just realized after looking at the code a bit more that there is already functionality for a program counter breakpoint, awesome! I guess to re-phrase my issue as simpler question. Is there currently a way for a library consumer to write to the gameboy's memory and registers? |
Hello! Sorry for the super late reply! I was out last week for vacation, and then been catching up on open source things 😄
Ah yes! I haven't worked on WasmBoy for a while due to lack of time. But I noticed a lot of emulators were implementing that feature! I think it's super rad! 😄
Oh yeah! Totally, the API is a bit wacky, but I think there is a way to set breakpoints, because I know I am doing it for the debugger, using the WasmBoy API.
Totally not out of scope! Would be happy to review and merge some PRs! 😄
No worries! 😄 I think there should be! All the memory for the ROM and things, should be in Wasm Memory. So as long as your 3P script, or modifying script writes to the Wasm memory should be good to go! 😄 |
Thank you for the reply! I started trying to figure out some of this stuff, but as a non-web developer it was a bit overwhelming to follow everything (between WASM, web workers, JS in general..), and I found that BizHawk has a plugin system that pretty much exactly matches what I need. |
@eliasreid Ah yeah! This project definitely isn't a completed, end-user ready library. Definitely, I'd reccomend using something like BizHawk if you aren't too familiar with a Modern JS web Development stack (and possibly even some of the rough edges with Wasm 😄 ) Cool! Glad you found something that works for you! 😄 👍 Again, thank you for reaching out! 😄 |
I experimenting with some in-RAM / register game hacking (ex. In Pokemon, change the move a trainer will use before they use it, etc). Emulators like BGB (https://bgb.bircd.org/) and Bizhawk (https://github.com/TASVideos/BizHawk) are helpful because they allow for things like breaking on address execution, or adding Lua scripts that are executed on certain conditions.
I think it would be really cool (at least for a project I have in mind) to add API to the wasmboy lib, to allow for executing callbacks on certain conditions, and modifying the internal state (registers, memory, etc). Right now from what I can tell (I'm a JavaScript / Web noob), the lib only allows for a single read and write breakpoint. I think it would be possible to extend the current "plugins" functionality to achieve some of these things?
I'm curious if this is way out of scope for the goals of this project, and if you have a sense of how hard this would be. I would be interested in attempting to contribute some of these features.
The text was updated successfully, but these errors were encountered: