Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08247 Graphics Minor Always Mar 10, 2022, 03:27 Mar 13, 2022, 22:47
Tester Kale View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10/11 (64-bit)
Status [?] Confirmed Driver
Version 0.241 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 08247: gogomile: [possible] Misaligned tilemap GFXs
Description Tilemaps in Fuuki's Susume! Mile Smile are a bit offsetted.
This is particularly noticeable in stage 9, where the underlying cards in tilemap 2 should be fully covered by tilemap 3.
Steps To Reproduce Get to stage 9 (cheat available for skipping a level), save state provided.
Additional Information
Github Commit
Flags Possible
Regression Version
Affected Sets / Systems gogomile
Attached Files
png file icon 0002.png (15,181 bytes) Mar 10, 2022, 03:27 Uploaded by Kale
zip file icon (13,016 bytes) Mar 10, 2022, 03:28 Uploaded by Kale
MAME 0.238 save state
png file icon gogo0000.png (14,992 bytes) Mar 10, 2022, 20:08 Uploaded by Tafoid
MAME 0.61 snapshot of offset
There are no relationship linked to this issue.
User avatar
Mar 10, 2022, 20:07
All testing I've done at various points support the assumption that this may be a possible bug and likely is this way on the original PCB. I tried all the way back to MAME 0.61 (made in 2002, not long after its inclusion into MAME) and the same offset is observed there as well.

Short of original PCB play (which I'm still looking for) we may never know if this is a legit issue or BTANB.
User avatar
Senior Tester
Mar 11, 2022, 14:35
vertical scroll offset issues are generally uncommon, as they're more difficult to explain in terms of hardware

that said they're not unheard of, and if the driver is just assuming scroll values are to be taken at face value then yes, it will always have been this way.

I guess a good test would be to see if any other scenes change either here, or in the other FG2/3 games if this is modified.

If other games break when this is fixed, it's more likely BTNAB
User avatar
Mar 13, 2022, 22:47
edited on: Mar 13, 2022, 22:58
It has this:
	const u16 scrolly_offs = m_vregs[0xc / 2] - (flip_screen() ? 0x103 : 0x1f3);
	const u16 scrollx_offs = m_vregs[0xe / 2] - (flip_screen() ? 0x2a7 : 0x3f6);

	const u16 layer0_scrolly = m_vregs[0x0 / 2] + scrolly_offs;
	const u16 layer0_scrollx = m_vregs[0x2 / 2] + scrollx_offs;
	const u16 layer1_scrolly = m_vregs[0x4 / 2] + scrolly_offs;
	const u16 layer1_scrollx = m_vregs[0x6 / 2] + scrollx_offs;

	const u16 layer2_scrolly = m_vregs[0x8 / 2];
	const u16 layer2_scrollx = m_vregs[0xa / 2];

	m_tilemap[0]->set_scrollx(0, layer0_scrollx);
	m_tilemap[0]->set_scrolly(0, layer0_scrolly);
	m_tilemap[1]->set_scrollx(0, layer1_scrollx);
	m_tilemap[1]->set_scrolly(0, layer1_scrolly);

	m_tilemap[2]->set_scrollx(0, layer2_scrollx + 0x10);
	m_tilemap[2]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
Per-layer DX, DY origins aren't all that uncommon, mid-90s Seibu games does it too.
Also pbancho (the only other fuukifg2.cpp game) just uses the layer 2 for credit display. doesn't seem to use the layer 2 at all ("credit" display coming from sprites) while gfx4 isn't even decoded properly.