Borders are just a consequence of changing monitor standards. If you get an old 4:3 CRT monitor you wouldn't get any borders at all (when stretching the emulator output to cover the whole screen). Or get one of those small 1280x1024 LCD screens that were used for some time; their aspect ratio is 5:4, so a 4:3 image would be 1280x960 and you'd have only 32 pixels of border at the top and at the bottom (6.25% of the height).
Personally I just turn off the lights when playing (late in the evening).
PS: Note that the above "atlas" method is very game-specific and also can't be used for all scenes.
Can you draw the emulator output again without advancing the emulation state? In that case the code would go like this:
1. emulate 1 frame
2. draw outside UI that might get overlapped by the emulator output
3. draw emulator output
4. draw UI that is on top of the emulator output
I can't scroll wherever I want in the disassembly window
The SNES has a native (65816) and emulation (6502) mode that determine the size of certain registers and the availability and functionality of certain opcodes, and games can switch between them basically at any time. So you can't know what a disassembly looks like without first executing it.
ruadath wrote:
I can't step [...] In addition, I think that the disassembler is breaking "near" the place where breakpoints are set rather than exactly on top of them
To speed up emulation, bsnes uses green threads. A component's thread runs for as long as possible until it has no other choice but to sync to another component, which includes the GUI.
ruadath wrote:
is there a different tool I should be using?
There's bsnes-plus, which might allow stepping (I haven't used it myself - building it on Windows is difficult).
Warp: The problem with PC games is you more-or-less have to go by time without loads, otherwise you don't have a level playing field and players could bring down their times by shelling out thousands of dollars on a top-end PC. Then stuff like this is an unfortunate side-effect.
Easy: Add 5* minutes for each loading screen.
*example value
(in 10 years there might be an even more accurate emulator developed, after which all actual realtime-runs could be off again)
bsnes is quite close to the hardware. About the only thing that could be missing afaik is the behavior when a game tries to read uninitialized memory, or using the multiply/divide registers in very unusual ways (here and the following posts).