What map-making feature would you like emulators to have?

Started by ReyVGM, August 23, 2026, 06:29:44 PM

Previous topic - Next topic

mechaskrom and 3 Guests are viewing this topic.

ReyVGM

Quote from: Guard Master on August 27, 2026, 07:55:01 PMSome features I'd like to have in an emulator in use for map-making are:


-The ability to directly copy to clipboard, whether the emulation screen, the tilemap viewer, sprite viewer, or tile viewer. You can even copy multiple images to clipboard and select them via WIN+V.


This will be available on the next release. You can use a hotkey to copy to clipboard the game screen and the viewers. You can even copy multiple images to clipboard and select them via WIN+V.




mechaskrom

Quote from: ReyVGM on October 17, 2026, 11:38:46 AMI'll add it to the requests, but it can be a bit complicated to grasp especially since none of us use those tools. Could you make a short video showing how it works and how you want that canvas thing to work? Although, it feels like this is getting a bit to close to image-editor territory.
There are already quite a lot of guides and videos for emulator scripting. Some examples:
How to Write Lua Scripts for Video Games with the BizHawk Emulator
Bizhawk: Intro to Lua Scripting
CPS2/3 Romhacking: The basics of LUA
Scripting is basically an interface (API) the emulator provides that makes it possible to programmatically interact with the emulator and the emulated game. Lua is commonly used as the programming language in these scripts.

The in memory canvas thing would only need these four script functions for my use cases:
canvas = create(width, height) //New canvas with specified dimensions in pixels.
canvas.clear(color) //Clear whole canvas with specified color.
canvas.copyFromScreen(screenX, screenY, width, height, canvasX, canvasY) //Copy rectangular part of screen to canvas.
canvas.saveToFile(filepath) //Save canvas as a PNG-file.
The canvas is just a 2D array of RGB pixels. A big screenshot made up of many normal screenshots you could say. This is where the screenshots are stitched together into a map.

So it's not really an image editor. However you probably want/need some basic graphic functions in the script API so you can display text and other things. I often make scripts that show info about tilemaps, sprites and hidden items in the emulator's screen (script overlay) for example. A canvas window is useful for displaying more complicated stuff. Like this script for SimCity that displays the whole city in a canvas:
SimCity SNES map viewer script


Quote from: ReyVGM on October 17, 2026, 11:38:46 AMQuestion, if SuperSNES9x adds LUA support, is there a script you can use or does the emu author have to write its own script?
Users write the scripts (they are just txt-files the emulator can open). You can probably even get an AI to help write one for you today. There exists many scripts, but unfortunately they are generally not compatible between different emulators. You often have to rewrite them a bit to get them working in another emulator.


Quote from: ReyVGM on October 17, 2026, 11:38:46 AMThere is a debugger in the works and once that's added, scripting can also be added.
As SuperSNES9X is a fork of Snes9X, maybe it's possible to copy the lua scripting implementation from Snes9X Rerecording (snes9x rr)?
https://github.com/gocha/snes9x-rr


Quote from: ReyVGM on October 17, 2026, 11:38:46 AMI see you've written tools too. Can't you write your own tool and add it to SS9X once scripting is available? That way you can make the tool exactly how you (and other mappers) would like it.
Probably depends on how much functionality the emulator exposes in its scripting API. With enough functionality you could probably write most tools, like a debugger, in scripts if you wanted too.

You can do a lot of crazy stuff with emulator scripting and that's why I love it :). Like give Mega Man laser eyes or Mario a jetpack:
Best Scripts for Nintendo NES Emulator FCEUX!
Some tools and other stuff I've made:
https://github.com/mechaskrom