bsnes
bsnes copied to clipboard
VOXEL demo regression
The leaked VOXEL rendering game demo doesn't work anymore on the latest version of BSNES (nor on the 2014 libretro core). There's only a single video of it apparently running correctly on BSNES v0.55: https://www.youtube.com/watch?v=hPR-iSnaCuc
However this is how it looks like on the current version.
VOXEL.zip Here's a rom for verification
How does the demo run on real hardware?
According to someone who owns an SD2SNES/FXPAK, it runs just like in the video. I could ask them to record a video of it, if need be, although I don't know how accurate is the FPGA core for SuperFX
I don't know when we'll find somebody who's able and available to investigate this, but it sounds like something we should track down eventually. Thanks for reporting it!
Here's a screenshot from a SNES (unnamed hardware clone) with an SD2SNES
I can confirm at least that this works using SD2SNES on a (real) Super Famicom. Unfortunately that's still not quite good enough confirmation, but it's closer.
Near fixed this in bsnes v0.051 so I think it was known to be hardware accurate.
- corrected ROMBR and PBR SuperFX register masking; fixes Voxel demo [MooglyGuy]
Changelog: https://gitlab.com/higan/bsnes-history-kit/-/blob/master/sources/tukuyomi/misc/bsnes_changelog.txt#L5098 v0.051 source code: https://gitlab.com/higan/bsnes-history-kit/-/blob/master/sources/tukuyomi/emus/bsnes/bsnes_v051.tar.bz2
Okay, when you compare v0.050 with v0.051, you can see two things that changed in the superfx core:
superfx -> opcodes.cpp (left: old, right: new)
superfx->mmio.cpp (left: old, right: new)
These lines are still in the newest bsnes version:
https://github.com/bsnes-emu/bsnes/blob/0ab0ab69572a88be6dcc633662d5e2cda807ea45/bsnes/processor/gsu/instructions.cpp#L378
https://github.com/bsnes-emu/bsnes/blob/0ab0ab69572a88be6dcc633662d5e2cda807ea45/bsnes/sfc/coprocessor/superfx/io.cpp#L93
but the code around that changed. Unfortunately, I can't do more than that. I hope it helped.
You have closed the wrong issue, @Screwtapello.
Whoops, sorry about that!
We updated the copy of SameBoy that bsnes includes, and one of the updates happened to fix SameBoy's issue 123, looks like GitHub got over-eager and marked this one closed.
What's happening here: (it's the same in ares and higan)
-
the game is 384KB, in commit a937f9b79b7756176842e7ac2489450a3d6408fc some refactoring took place, that basically masks every address in bus_read/write() by rom_mask/ram_mask, you can handle non power-of-2 sizes with "addr = Bus::mirror(addr, rom.size());"
-
after 106, icarus was basically rewritten, and some heuristics got changed, Voxel needs at least 64k expansion ram (previously 128k was used), that's hardcoded to 32k in SuperFamicom::expansionRamSize() for roms that don't set the extended header flags (i.e. Star Fox)
It's not really suprising that the heuristics don't really work for a prototype, adding an entry to the database would be sensible here