- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
05478 | Gameplay | Minor | Have not tried | Mar 17, 2014, 03:36 | Mar 25, 2014, 18:00 |
Tester | Jason Shearer | View Status | Public | Platform | MAMEUI |
Assigned To | Resolution | Bugs That Aren't Bugs | OS | Windows Vista/7/8 (64-bit) | |
Status [?] | Resolved | Driver | |||
Version | 0.152 | Fixed in Version | Build | 64-bit | |
Fixed in Git Commit | Github Pull Request # | ||||
Summary | 05478: mk: Not receiving the full 10,000,000 points after defeating Reptile | ||||
Description | The 10,000,000 points the player is supposed to receive for defeating Reptile are not being added to the player's score correctly. | ||||
Steps To Reproduce |
How to fight Reptile: * Must be on The Pit stage. * Just before the fight begins, a silhouette must fly past the moon (see details below). This means you have the opportunity to fight Reptile. * Defeat your opponent with a Double Flawless without using Block (this also means you can’t use Kano’s knives or Sub-Zero’s slide). * Finish your opponent with a Fatality (uppercutting your opponent into The Pit does NOT count as a Fatality). Do not use Block in Scorpion’s case — instead, jump up and tap Up twice, timing the second Up as you land; Sonya can fight Reptile as of Revision 4.0. Note that Reptile only appears in Revisions 3.0 and above and must be finished with a Fatality in order to receive the bonus points. A note about moon silhouettes: According to the MK devs, a silhouette will only appear on The Pit stage after every 40 matches of play. The machine has an internal counter that keeps track of how many matches have been played (a match is a complete two- or three-round battle). Once the counter reaches 40, a silhouette will appear the next time a player reaches The Pit, at which time the counter will reset to zero. |
||||
Additional Information | Originally found in 0.138. Needs to be tested on real hardware. | ||||
Github Commit | |||||
Flags | |||||
Regression Version | |||||
Affected Sets / Systems | mk | ||||
Attached Files
|
before.png (289,255 bytes) Mar 17, 2014, 03:36 Uploaded by Jason Shearer
| ||||
after.png (290,892 bytes) Mar 17, 2014, 03:37 Uploaded by Jason Shearer
| |||||
1.zip (1,740,014 bytes) Mar 19, 2014, 16:59 Uploaded by Jason Shearer
| |||||
MK REPTILE SCORE BUG.txt (1,707 bytes) Mar 25, 2014, 10:52 Uploaded by Phil Bennett Disassembly [Show Content] [Hide Content]; ; ADD POINTS FOR DEFEATING REPTILE ; FFCAC9F0: MOVE @10519E0h,A1,0 ; GET WINNING PLAYER NUM FFCACA20: DEC A1 ; 0=P1, 1=P2 FFCACA30: MOVI 20001h,B0 ; 2,000,000 POINTS FFCACA60: CALLA FFC82F80h ; ADD TO SCORE 5 TIMES TO AWARD 10,000,000 FFCACA90: CALLA FFC82F80h FFCACAC0: CALLA FFC82F80h FFCACAF0: CALLA FFC82F80h FFCACB20: CALLA FFC82F80h ; ; ADD TO PLAYER SCORE PER-DIGIT (8-BIT BCD) ; ; PARAMETERS ; ; A1[00] = PLAYER NUMBER (0=P1, 1=P2) ; B0[03:00] = DIGIT INDEX (0=MOST SIGNIFICANT, 7=LEAST SIGNIFICANT) ; B0[19:16] = BCD DIGIT ; FFC82F80: MOVE B0,A0 FFC82F90: JREQ FFC831B0h ; BRANCH IF NOTHING TO ADD FFC82FA0: MOVI 10512A0h,A2 ; P1 SCORE ADDRESS (MOST SIGNIFICANT DIGIT) FFC82FD0: MOVE A1,A1 ; TEST PLAYER NUM AND CHOOSE ADDRESS FFC82FE0: JREQ FFC83020h FFC82FF0: MOVI 1051580h,A2 ; P2 SCORE ADDRESS FFC83020: MOVE A2,A3 FFC83030: MOVE A0,A1 FFC83040: SLL 10h,A1 ; GET DIGIT INDEX FFC83050: SRL Dh,A1 FFC83060: ADD A1,A2 ; FORM DIGIT ADDRESS FFC83070: SRL 10h,A0 FFC83080: MOVB *A2,A1 ; READ CURRENT VALUE AT THIS DIGIT FFC83090: ADD A0,A1 ; ADD POINT VALUE TO DIGIT FFC830A0: CMPI Ah,A1 ; CHECK FOR BCD OVERFLOW FFC830C0: JRC FFC831A0h ; OTHERWISE WRITE NEW DIGIT FFC830D0: SUBK Ah,A1 FFC830E0: MOVB A1,*A2 ; CARRY TO HIGHER DIGIT FFC830F0: SUBK 8h,A2 FFC83100: MOVK 1h,A0 FFC83110: CMP A3,A2 ; CHECK FOR SCORE OVERFLOW FFC83120: JRNC FFC83080h FFC83130: MOVI 9090909h,A0 ; CLAMP TO MAXIMUM SCORE (99999999) FFC83160: MOVE A0,*A3,1 FFC83170: MOVE A0,*A3(20h),1 FFC83190: RETS FFC831A0: MOVB A1,*A2 ; WRITE NEW DIGIT FFC831B0: RETS | |||||
Relationships
There are no relationship linked to this issue. |
Notes
9
No.10364
AWJ Developer
Mar 17, 2014, 16:32
|
I don't see how this can possibly be an emulation error and not a bug in the original game. |
---|---|
No.10365
Jason Shearer Tester
Mar 17, 2014, 18:31
|
I'd love to know for certain. I haven't been able to find anyone performing this on real hardware to confirm, nor can I find any mention of it happening on real hardware. I actually noticed this back in 2010. Figured I'd report it in the hopes that it would give someone an incentive to find out. ;) |
No.10366
NekoEd Senior Tester
Mar 17, 2014, 18:57
edited on: Mar 17, 2014, 18:59 |
I'll set this acknowledged while it's looked into. Wonder if this isn't one of those infamous MK red herrings again.... Anyway, thanks for the report. If you could perhaps post a savestate or IMP, that might help. Particularly a save state, given the ridiculous means to achieve this. |
No.10368
Osso Moderator
Mar 18, 2014, 07:06
|
Also please use the newest MAME release available, if possible. 0.138 is from 2010, a lot of things may have changed since that time. |
No.10369
NekoEd Senior Tester
Mar 18, 2014, 18:23
|
That's true. As of this posting (18 MAR 2014) the current official MAME release is 0.152 |
No.10373
Jason Shearer Tester
Mar 19, 2014, 17:07
edited on: Mar 19, 2014, 19:10 |
Per your request, I included a save state. It begins once the text for finding Reptile appears. All you have to do is beat him. Make sure you finish him with a Fatality, else you won't get the bonus points (which registers as 2,000,000). I can also confirm that it still occurs on 0.152, which is what I created the save state with. |
No.10509
Phil Bennett Developer
Mar 25, 2014, 10:52
|
It's a bug in the original game. See the uploaded text file for a disassembly of the Reptile bonus code. After the first call to award 2,000,000 points, the register holding the winning player number parameter (A1) will have been overwritten with a non-zero value. If you're player 1, the subsequent score updates will erroneously award a total of 8,000,000 points to player 2. It looks like you'll only receive the full 10,000,000 points if you're playing as player 2. |
No.10510
NekoEd Senior Tester
Mar 25, 2014, 17:12
|
Looks like this is an original bug. Closing as such. (Closed/BTANB) |
No.10511
Jason Shearer Tester
Mar 25, 2014, 18:00
|
You're the man, Phil. There's no disputing that. Thanks for the info. |