- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
09228 | Misc. | Major | Always | Jul 29, 2025, 21:48 | Aug 8, 2025, 01:09 |
Tester | M.A.S.H. | View Status | Public | Platform | MAME (Self-compiled) |
Assigned To | cuavas | Resolution | Fixed | OS | Windows 32-bit |
Status [?] | Resolved | Driver | |||
Version | 0.278 | Fixed in Version | 0.280 | Build | 32-bit |
Fixed in Git Commit | 9b26298 | Github Pull Request # | |||
Summary | 09228: poosho: Broken collision detection with drcbex86 | ||||
Description | Start game. Ball didn't break the bricks. Broken collision detection or hyperstone E1-16 bug? | ||||
Steps To Reproduce | |||||
Additional Information | |||||
Github Commit | |||||
Flags | 32-bit specific | ||||
Regression Version | 0.277 | ||||
Affected Sets / Systems | poosho | ||||
Attached Files
|
|||||
Relationships
There are no relationship linked to this issue. |
Notes
9
![]() No.23541
Robbbert Moderator
Jul 30, 2025, 00:35
|
Seems to work ok. Perhaps you can give an example? |
---|---|
![]() No.23542
hap Developer
Jul 30, 2025, 09:08
|
Unable to confirm either, on both 0.277 (the one you claim is the regression version) and also on current. Ball breaks the bricks. With either -nodrc or -drc. |
![]() No.23543
M.A.S.H. Senior Tester
Jul 30, 2025, 09:57
|
Didn't test the 64bit version. Changed report to 32bit MAME version. Sorry for that!. |
![]() No.23545
hap Developer
Jul 30, 2025, 12:20
|
Probably a regression with drcbex86.cpp then. Or, does the bug happen with -nodrc as well? |
![]() No.23549
M.A.S.H. Senior Tester
Aug 1, 2025, 01:20
|
@hap The 32bit MAME version worked with mame poosho -nodrc Thx for the info! |
![]() No.23563
Robbbert Moderator
Aug 4, 2025, 08:35
|
I've set it to confirmed, and Vas can decide what he wants to do about it. |
![]() No.23564
cuavas Administrator
Aug 4, 2025, 15:36
|
It’s another case of something that was always broken in the i686 recompiler back-end but wasn’t obviously getting hit by any CPU cores before. Any 64-bit rotate on UML register I1 would nuke the low 32 bits of the result. |
![]() No.23565
M.A.S.H. Senior Tester
Aug 4, 2025, 16:46
|
MAME 32-bit compiled and tested with “Poosho Poosho” – works. Thx hap and Vas! |
![]() No.23571
cuavas Administrator
Aug 7, 2025, 18:09
|
I really shouldn’t have looked at drcbex86.cpp – there are so many cases where it doesn’t correctly clear the upper half of a register after a 32-bit load, but it also clears the upper half of “hot” registers excessively. Its be_parameter class needs to be reworked to fix this, and it needs to track additional state across instructions. Speaking of which, the way it tracks what memory values it’s got in temporary registers is horrible and needs to be completely changed, too. It’s a hot mess and almost not worth trying to fix. At least x86-64 and AArch64 are in better condition. |