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.14k stars 380 forks source link

SNES9x needs a System Bus memory domain #943

Closed Trivial-Man closed 7 years ago

Trivial-Man commented 7 years ago

...or at least some sort of memory domain that allows access to the ROM itself and not just the RAM.

zeromus commented 7 years ago

Do you think you're going to edit the ROM? That won't work right now. The ROM is read only. File On Disk should work. You probably wouldnt be able to edit the ROM through the sysbus memdomain anyway, it would certainly be read-only mounted through there.

Trivial-Man commented 7 years ago

Not for editing, no. This would allow me to read values with the RAM search tool and lua's memory.readbyte function (and readfloat, readbyterange, etc). If File on Disk is a valid option for those I wasn't aware.

Specifically, the reason I want this is so I can have a script that (among other things) looks up the initial carrying capacity for bombs and arrows in randomized LttP ROMs. It's at location 0x308034 using the system bus with the bsnes core, or 0x180034 using the cartROM.

vadosnaprimer commented 7 years ago

System bus for scripts makes sense, because the game can indeed read from rom in its algos one might want to simulate. The only question is, why not bsnes core itself? snes9x core is for casual gaming.

Trivial-Man commented 7 years ago

Essentially because the script I'm writing is for casual gaming. It's just a visual tracker for certain items/events. Helpful for a novice (like myself) or a streamer's audience but useless for an advanced speedrunner or TASer.

For the record I do use bsnes, but this one instance of reading values from the ROM is the only part of the code that behaves differently between the 2 cores. And since a system bus or a similar domain is present in at least a good number of the emulation cores I tested, I thought this was more of a standard feature that just hadn't been implemented yet and wanted to make the devs aware that it was wanted.