-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
magicard.cpp improvements: [Roberto Fresca, Grull Osgo]
- New machine driver for Simply the Best: - Memory map from the scratch after a lot of reverse-engineering. - Inputs and outputs from the scratch. - Added button-lamps support and control panel layout. - Created default signed NVRAM neccessary to boot the game. - Promoted to working with machine unemulated protection flag. Systems promoted to working --------------------------- Simply the Best (CZ750, v1.0) [Roberto Fresca, Grull Osgo, Team Europe]
- Loading branch information
1 parent
2e81e12
commit f0a69f2
Showing
2 changed files
with
413 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,261 @@ | ||
<?xml version="1.0"?> | ||
<!-- | ||
license:CC0-1.0 | ||
copyright-holders: Roberto Fresca | ||
************************************************** | ||
Simply the Best (Kajot). | ||
Realistic clickable buttons-lamps. | ||
************************************************** | ||
--> | ||
<mamelayout version="2"> | ||
|
||
<!-- define basic elements --> | ||
|
||
<element name="hold1" defstate="0"> | ||
<rect state="1"> | ||
<color red="1.0" green="0.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.3" green="0.0" blue="0.0" /> | ||
</rect> | ||
<text string="HOLD 1"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="QUICK GAMBLE"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
<element name="hold2" defstate="0"> | ||
<rect state="1"> | ||
<color red="1.0" green="0.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.3" green="0.0" blue="0.0" /> | ||
</rect> | ||
<text string="HOLD 2"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="......"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
<element name="hold3" defstate="0"> | ||
<rect state="1"> | ||
<color red="1.0" green="0.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.3" green="0.0" blue="0.0" /> | ||
</rect> | ||
<text string="HOLD 3"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="......"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
<element name="hold4" defstate="0"> | ||
<rect state="1"> | ||
<color red="1.0" green="0.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.3" green="0.0" blue="0.0" /> | ||
</rect> | ||
<text string="HOLD 4"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="......"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
<element name="hold5" defstate="0"> | ||
<rect state="1"> | ||
<color red="1.0" green="0.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.3" green="0.0" blue="0.0" /> | ||
</rect> | ||
<text string="HOLD 5"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="PAYTABLE"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
<element name="cancel" defstate="0"> | ||
<rect state="1"> | ||
<color red="1.0" green="0.43" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.3" green="0.14" blue="0.0" /> | ||
</rect> | ||
<text string="CANCEL"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="BET/TAKE"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
<element name="start" defstate="0"> | ||
<rect state="1"> | ||
<color red="0.0" green="1.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.0" green="0.25" blue="0.0" /> | ||
</rect> | ||
<text string="START"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.1" width="1" height="0.4" /> | ||
</text> | ||
<text string="BONUS GAMBLE"> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
<bounds x="0" y="0.5" width="1" height="0.4" /> | ||
</text> | ||
</element> | ||
|
||
|
||
<element name="hold_b" defstate="0"> | ||
<rect state="1"> | ||
<color red="0.7" green="0.0" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.2" green="0.0" blue="0.0" /> | ||
</rect> | ||
</element> | ||
|
||
<element name="cancel_b" defstate="0"> | ||
<rect state="1"> | ||
<color red="0.7" green="0.3" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.25" green="0.10" blue="0.0" /> | ||
</rect> | ||
</element> | ||
|
||
<element name="start_b" defstate="0"> | ||
<rect state="1"> | ||
<color red="0.0" green="0.7" blue="0.0" /> | ||
</rect> | ||
<rect state="0"> | ||
<color red="0.0" green="0.15" blue="0.0" /> | ||
</rect> | ||
</element> | ||
|
||
|
||
<!-- define cpanel degradee elements --> | ||
|
||
<element name="cpanel"> | ||
<rect> | ||
<color red="0.0" green="0.0" blue="0.0" /> | ||
</rect> | ||
</element> | ||
|
||
<element name="cpanel1"> | ||
<rect> | ||
<color red="0.20" green="0.20" blue="0.20" /> | ||
</rect> | ||
</element> | ||
|
||
<element name="cpanel2"> | ||
<rect> | ||
<color red="0.15" green="0.15" blue="0.15" /> | ||
</rect> | ||
</element> | ||
|
||
<element name="cpanel3"> | ||
<rect> | ||
<color red="0.10" green="0.10" blue="0.10" /> | ||
</rect> | ||
</element> | ||
|
||
<element name="cpanel4"> | ||
<rect> | ||
<color red="0.05" green="0.05" blue="0.05" /> | ||
</rect> | ||
</element> | ||
|
||
|
||
<!-- define cpanel layout --> | ||
|
||
<view name="Button Lamps"> | ||
<screen index="0"> | ||
<bounds left="0" top="0" right="4" bottom="3" /> | ||
</screen> | ||
|
||
<element ref="cpanel"> <bounds left="0" right="4" top="3" bottom="3.50" /></element> | ||
<element ref="cpanel1"><bounds left="0" right="4" top="3.01" bottom="3.49" /></element> | ||
<element ref="cpanel2"><bounds left="0" right="4" top="3.02" bottom="3.48" /></element> | ||
<element ref="cpanel3"><bounds left="0" right="4" top="3.03" bottom="3.47" /></element> | ||
<element ref="cpanel4"><bounds left="0" right="4" top="3.04" bottom="3.46" /></element> | ||
<element ref="cpanel"> <bounds left="0" right="4" top="3.05" bottom="3.45" /></element> | ||
|
||
<element name="lamp1" ref="hold_b" inputtag="IN0" inputmask="0x0010"> | ||
<bounds x="0.10" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp1" ref="hold1" inputtag="IN0" inputmask="0x0010"> | ||
<bounds x="0.12" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
<element name="lamp2" ref="hold_b" inputtag="IN0" inputmask="0x0800"> | ||
<bounds x="0.65" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp2" ref="hold2" inputtag="IN0" inputmask="0x0800"> | ||
<bounds x="0.67" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
<element name="lamp3" ref="hold_b" inputtag="IN0" inputmask="0x1000"> | ||
<bounds x="1.20" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp3" ref="hold3" inputtag="IN0" inputmask="0x1000"> | ||
<bounds x="1.22" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
<element name="lamp4" ref="hold_b" inputtag="IN0" inputmask="0x0400"> | ||
<bounds x="1.75" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp4" ref="hold4" inputtag="IN0" inputmask="0x0400"> | ||
<bounds x="1.77" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
<element name="lamp5" ref="hold_b" inputtag="IN0" inputmask="0x0040"> | ||
<bounds x="2.30" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp5" ref="hold5" inputtag="IN0" inputmask="0x0040"> | ||
<bounds x="2.32" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
<element name="lamp6" ref="cancel_b" inputtag="IN0" inputmask="0x0020"> | ||
<bounds x="2.90" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp6" ref="cancel" inputtag="IN0" inputmask="0x0020"> | ||
<bounds x="2.92" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
<element name="lamp7" ref="start_b" inputtag="IN0" inputmask="0x0080"> | ||
<bounds x="3.45" y="3.13" width="0.45" height="0.24" /> | ||
</element> | ||
<element name="lamp7" ref="start" inputtag="IN0" inputmask="0x0080"> | ||
<bounds x="3.47" y="3.15" width="0.41" height="0.20" /> | ||
</element> | ||
|
||
</view> | ||
</mamelayout> |
Oops, something went wrong.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the lack of MCU emulation means you 'always win' as per your video, then I don't think promoting it to working makes sense.
Dropping the NOT WORKING flag will cause it to be listed in the 'new working systems' part of the whatsnew. Nobody would consider a gambling game where the key part of the game (the winning odds calculations) is completely wrong, and always favor the player to be working. It's like a music game with no sound.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cuavas any opinion yourself?
I know Kale will say 'Unemulated protection is a red flag' etc. but the fact is if we remove 'not working' people are going to assume the game works, and when we KNOW there are critical issues caused by protection, the not working flag should remain. It feels like we're lying to users if this appears as a new working game in the whatsnew.
Robbie's own video clearly shows that the game doesn't work properly https://www.youtube.com/watch?app=desktop&v=wXZ90_EjU1A and he even says it in the comments.
If this is a policy issue, it needs clarifying as this is far more significant than a music game which might be a frame off.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Name dropping me over this is really awkward. Also I thought at this point the QA was clear cut about "gamblers that gives a payout of 100% due of unemulated MCU" -> always MNW.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm stating that you've previously expressed an opinion on the use of this flag (most recently with Double Dealer, which really was never a working game until the MCU hookup)
Stop being a meme.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually had people playtesting the game, and they didn't reported anything that was deserving the MNW even with the simulation. Stop being a jerk.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the scoring (required to complete a level!) was broken, the coins didn't work, the sound tempo was entirely incorrect.......
I mean it might even have been my fault in the first place that it got promoted, but it absolutely did still deserve a NOT_WORKING flag.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm still not sure why you are bringing up Double Dealer here, enjoy the lock anyway.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Policy is that if you can’t complete a game as the designers intended, it’s not working. A gambler where you always win is not working.
@mamehaze open a PR to demote it if Robbie doesn’t do it.
f0a69f2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.