ares
ares copied to clipboard
[32X] Yet Another Tilemap and Super Scaler Demo Bugs
I came across two bugs from the homebrew/demo https://github.com/viciious/yatssd: 1 - Horizontal scrolling is very choppy, vertical scrolling is fine. 2 - After commit md: fix sync logic - 2ed64ef, the demo freezes shortly after moving the camera and/or activating sprites.
ROM works fine on hardware, I tested on my Model 2 Sega Genesis with 32X.
Rom Information Specify the impacted rom filename and any associated hashes (sha256 preferred)
file: yatssd.32x
sha256: 53e38c7ae5f44f5c6d8419c1d37ec5589b51a7ef138569c67de3eca2aa89e0a4
Once compiled, the ROM above will be generated with the specified hash based on the latest commit done by the author.
The demo works in v132, but horizontal scrolling is still very choppy.
Also, the screen shift register seems to be bugged: quite often the leftmost column is missing (see the pic below). I believe both issues are related.
I fixed the scrolling issue by replacing the scanlineMode1 from m32x vdp.cpp with this code in my offline version of the code.
auto M32X::VDP::scanlineMode1(u32 pixels[1280], u32 y) -> void { u16 address = fbram[y]; for(u32 x : range(320)) { u8 color = fbram[address + (x + dotshift >> 1) & 0xffff].byte(!(x + dotshift & 1)); plot(&pixels[x * 4], cram[color]);
fixed in 1c876d8bf6
(x + dotshift >> 1) & 0xffff
this code construct looks a bit iffy to me, typically it'd cause a compiler warning due to the missing parenthesis
same for !(x + dotshift & 1)
Re-opening as this demo still appears to have issues, although the line scrolling (far left) aspect is fixed