Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05934 Gameplay Minor Always May 6, 2015, 00:03 May 8, 2015, 01:46
Tester Tafoid View Status Public Platform MAME (Official Binary)
Assigned To Resolution Bugs That Aren't Bugs OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver
Version 0.161 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 05934: mappy, mappyj: Microwave points do not add to player score correctly in a specific case
Description If you are lucky enough to score a 6000 x 2 (which is only possible by microwaving all cats (all mewkies + goro) on level 16 or higher on default difficulty), you should get 12,000 points. When playing, the game doesn't add 12,000 to score, but only 1,010.
 
Steps To Reproduce Fastest way is to Rack Skip (F1) to Level 16 and attempt to play and capture all the cats.
I've added a savestate showing my score a moment before the incorrect tally is added to your score. 1010 points is added shortly after game starts after load and as "6000 X 2" scrolls across the screen.
Additional Information I've tested back to MAME 0.61 (first version with -rompath support) and I was able to duplicate this there as well.
Github Commit
Flags
Regression Version
Affected Sets / Systems mappy, mappyj
Attached Files
zip file icon 2.zip (25,557 bytes) May 6, 2015, 00:03 Uploaded by Tafoid
Unzip, put in STA/MAPPY. Use F7 "Load State" with MAME 0.161 and "2" to load.
png file icon score_before.png (2,942 bytes) May 6, 2015, 00:07 Uploaded by Tafoid
Snap of score before 6000 x 2 score add (MAME 0.161)
Tafoid
png file icon score_after.png (3,118 bytes) May 6, 2015, 00:07 Uploaded by Tafoid
Snap of score after 6000 x 2 add (MAME 0.161)
Tafoid
Relationships
There are no relationship linked to this issue.
Notes
4
User avatar
No.11651
AWJ
Developer
May 6, 2015, 03:47
edited on: May 6, 2015, 03:50
This is a bug in the original game. The PSP Namco Museum has an unlockable "Maniac Option" to play with the bug fixed, according to this Japanese blog post:

http://remember.livedoor.biz/archives/50046751.html

It'd be interesting to have stephh look into exactly what causes it, though!
User avatar
No.11653
Tafoid
Administrator
May 6, 2015, 12:41
And getting 6000 x 2 in the heat of the game was always a big boost mentally for me and it turns out to be a psyche :)
Setting as BTANB. A cheat fix or patch would be great for this.
User avatar
No.11661
cmonkey
Tester
May 8, 2015, 00:24
I've found the bug that causes this.

There's a couple of bonus score lookup tables at $d49e and $d4b2 which are used to calculate your bonus score for microwaving meowkies and goro. The table at $d49e is used when you microwave just meowkies and the table at $d4b2 is used when you microwave meowkies AND goro (for double bonus points).

The table at $d49e looks like this :-

; bonus points for microwaving just meowkies (score awarded is 10x these values)
D49E: 0000 ; 0 points
D4A0: 0020 ; 200 points (1 meowky)
D4A2: 0040 ; 400 points (2 meowkies)
D4A4: 0080 ; 800 points (3 meowkies)
D4A6: 0120 ; 1200 points (4 meowkies)
D4A8: 0160 ; 1600 points (5 meowkies)
D4AA: 0200 ; 2000 points (6 meowkies)
D4AC: 0300 ; 3000 points (7 meowkies)
D4AE: 0400 ; 4000 points (8 meowkies)
D4B0: 0500 ; 5000 points (9 meowkies)

The table at $d4b2 looks like this :-

; bonus points for microwaving meowkies AND goro together (score awarded is 10x these values)
D4B2: 0000 ; 0 points
D4B4: 0040 ; 400 points (just goro)
D4B6: 0080 ; 800 points (1 meowky+goro)
D4B8: 0160 ; 1600 points (2 meowkies+goro)
D4BA: 0240 ; 2400 points (3 meowkies+goro)
D4BC: 0320 ; 3200 points (4 meowkies+goro)
D4BE: 0400 ; 4000 points (5 meowkies+goro)
D4C0: 0600 ; 6000 points (6 meowkies+goro)
D4C2: 0800 ; 8000 points (7 meowkies+goro)
D4C4: 1000 ; 10000 points (8 meowkies+goro)

The problem is, that in the later levels, there are 9 meowkies + goro on screen and if you're lucky enough to microwave them all together then there isn't an entry in the second table to handle 9 meowkies + goro so the code overflows to the next 2 bytes in rom (which is data that is completely unrelated to the bonus score routine) :-

D4C6: 0101

As you can see, $0101 x 10 = 1010

That's why you get 1010 bonus points instead of 12000. Namco didn't build a big enough bonus points table for microwaving 9 meowkies + goro. What's strange though is that they remembered to create the "6000 x 2" sprite that glides across the screen when you achieve such a momentous task!!

The code which does the calculation of the bonus score based on number of meowkies microwaved starts around $c912. Memory location $2200 will contain a value of $12 if you've microwaved goro. Register B contains the number of meowkies (including goro) that you've microwaved.

It would be possible to fix this bug by re-locating the second bonus point lookup table to an area of unused rom space (e.g. $bfa0 or $dfa0), adding an entry to handle 9 meowkies + goro and then adjusting the pointer to the table at $c924.

Great game btw!
User avatar
No.11662
Robbbert
Senior Tester
May 8, 2015, 01:46
Excellent investigation :)