mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
-snes: Differentiate between SuperFX 1 and SuperFX 2. Fixes game speed in Star Fox, Stunt Race FX, Vortex, and others. [Ryan Holtz]
This commit is contained in:
parent
747f27c600
commit
8a280aba9c
@ -2297,7 +2297,7 @@ Beyond that last category are the roms waiting to be classified.
|
||||
<feature name="u5" value="U5 CIC(F411)" />
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="unknown" /> <!-- similar to SHVC-006 -->
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="921222 pm2355 sns fo ver. 02 f6b9.u1" size="1048576" crc="0bae0941" sha1="1f5355534ccfaf26ae6c8f055f3e4768f9d72a7e" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -2325,7 +2325,7 @@ Beyond that last category are the roms waiting to be classified.
|
||||
<!-- end of epoxy version -->
|
||||
<feature name="cart_model" value="SNS-006" />
|
||||
<feature name="cart_back_label" value="" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="sns-fu-0.u1" size="1048576" crc="cd1f04b8" sha1="2ba5f446dcb56d1164e28b337ae7b4833278b6d9" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -2410,7 +2410,7 @@ Beyond that last category are the roms waiting to be classified.
|
||||
<feature name="lockout" value="" />
|
||||
<feature name="battery" value="BT1" />
|
||||
<feature name="cart_model" value="n/a" /> <!-- similar to SNSP-006 -->
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="snsp p-cq.u1" size="1048576" crc="24935769" sha1="de21be64fde447d9c6a2f1b063d2f2e0d4034ca0" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -2756,7 +2756,7 @@ Beyond that last category are the roms waiting to be classified.
|
||||
<feature name="dipswitch" value="SW3" />
|
||||
<feature name="battery" value="BT1" />
|
||||
<feature name="cart_model" value="n/a" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="sns-p yi 0.u1" size="524288" crc="7581f685" sha1="8e16f2ae29d0b2ba709a2d4fe401daa09e2f9d60" offset="0x000000" />
|
||||
<rom name="sns-p yi 1.u2" size="524288" crc="b64aaba4" sha1="c25aebc384f3ee2867b84a57826e762a08aa8e5e" offset="0x080000" />
|
||||
@ -3620,7 +3620,7 @@ Beyond that last category are the roms waiting to be classified.
|
||||
<feature name="lockout" value="" />
|
||||
<feature name="battery" value="BT1" />
|
||||
<feature name="cart_model" value="unknown" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="powerslide sfx 12-4-94 rn 0010.u1" size="524288" crc="65ce3729" sha1="30115db2558060d9293684f3d5810d063a0c710e" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -10486,7 +10486,7 @@ more investigation needed...
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-EUR" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="spal-adip-0.u1" size="524288" crc="0354f4b1" sha1="5e38dd23cdd68754b6469da0725688d0af34f867" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -10512,7 +10512,7 @@ more investigation needed...
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-EUR" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="spal-af9p-0.u1" size="524288" crc="9dbc2330" sha1="d2940767de799fcd7a2ee0995f072930475ab88f" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -10892,7 +10892,7 @@ more investigation needed...
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-FAH, SNSP-NOE" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="spal-ad8p-0.u1" size="2097152" crc="360243e4" sha1="3ffb94cdd6a47683980999d723a93bee9ba156f8" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -23790,7 +23790,7 @@ more investigation needed...
|
||||
-->
|
||||
<feature name="cart_model" value="SHVC-006" />
|
||||
<feature name="cart_back_label" value="920214" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="shvc-fo-0.u1" size="1048576" crc="41a60b3f" sha1="a2dceab341ef20c836d4d3426f37f0ec396bbdcb" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -23828,7 +23828,7 @@ more investigation needed...
|
||||
<!-- end of epoxy version -->
|
||||
<feature name="cart_model" value="SNS-006" />
|
||||
<feature name="cart_back_label" value="" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="sns-fo-0.u1" size="1048576" crc="0bae0941" sha1="1f5355534ccfaf26ae6c8f055f3e4768f9d72a7e" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -23857,7 +23857,7 @@ more investigation needed...
|
||||
<feature name="cart_revision" value="B" />
|
||||
<feature name="cart_model" value="SNS-006" />
|
||||
<feature name="cart_back_label" value="" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="sns-fo-2.u1" size="1048576" crc="8fc4e6d0" sha1="cf08148cd8f26d51f8c67c956179dfc594e7a4f1" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -23930,7 +23930,7 @@ more investigation needed...
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006(-02)" />
|
||||
<feature name="cart_back_label" value="02-SNSP-FAH" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="spal-fo-0.u1" size="1048576" crc="865f1a71" sha1="7ba89019f33f690715bdbd52e13d888228ee4b9c" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -23956,7 +23956,7 @@ more investigation needed...
|
||||
<feature name="cart_revision" value="A" />
|
||||
<feature name="cart_model" value="SNSP-006(-02)" />
|
||||
<feature name="cart_back_label" value="02-SNSP-FAH" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="spal-fo-1.u1" size="1048576" crc="ba64da2b" sha1="0510647f8cf9b87fac1c08a7009932ceeae1e0bd" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -23981,7 +23981,7 @@ more investigation needed...
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-NOE" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="sfrg-fo-0.u1" size="1048576" crc="b48ca238" sha1="7c365c325b3ce27a17fc88744b6928741fab1996" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -24422,7 +24422,7 @@ more investigation needed...
|
||||
<feature name="battery" value="BATT CR2032" />
|
||||
<feature name="cart_model" value="SNSP-006(-03)" />
|
||||
<feature name="cart_back_label" value="03-SNSP-FAH" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="spal-cq-0.u1" size="1048576" crc="24935769" sha1="de21be64fde447d9c6a2f1b063d2f2e0d4034ca0" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -27040,7 +27040,7 @@ more investigation needed...
|
||||
<feature name="battery" value="BATT CR2032" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-NOE" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="spal-yi-0.u1" size="2097152" crc="857980b2" sha1="512e0b2ab74081fda5ff5459162948d28226fc0b" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -27069,7 +27069,7 @@ more investigation needed...
|
||||
<feature name="battery" value="BATT CR2032" />
|
||||
<feature name="cart_model" value="SNS-006, SNSN-006" />
|
||||
<feature name="cart_back_label" value="SNS-USA/CAN-1, SNSN-HKG" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="sns-y1-1.u1" size="2097152" crc="cf98ddaa" sha1="34612a93741f156d6e497462ab7f253cb8a959a0" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -27099,7 +27099,7 @@ more investigation needed...
|
||||
<feature name="battery" value="BATT CR2032" />
|
||||
<feature name="cart_model" value="SHVC-006" />
|
||||
<feature name="cart_back_label" value="920214" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="shvc-yi-0.u1" size="2097152" crc="343e0dfb" sha1="abacca9b1be88b082e7dd8a50e809aef6ab4d0ef" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -30749,7 +30749,7 @@ Alternate board (XL-1)
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-EUR" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="spal-4v-0.u1" size="524288" crc="c6867604" sha1="92daba15d422654c29c01457b572c07f06a2c1bc" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -30777,7 +30777,7 @@ Alternate board (XL-1)
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SHVC-006" />
|
||||
<feature name="cart_back_label" value="920214" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="shvc-4v-0.u1" size="524288" crc="51e8a19c" sha1="1479432ea185db8ecb109f6e5422e1464b5bdf3c" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -31070,7 +31070,7 @@ Alternate board (XL-1)
|
||||
<feature name="cart_revision" value="Ø" />
|
||||
<feature name="cart_model" value="SHVC-006" />
|
||||
<feature name="cart_back_label" value="920214" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="shvc-cq-1.u1" size="1048576" crc="017c68c5" sha1="b51199fa2afb0a161d6afdabfa0575513913dde1" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -31239,7 +31239,7 @@ Alternate board (XL-1)
|
||||
<feature name="battery" value="none" />
|
||||
<feature name="cart_model" value="SNSP-006(-03)" />
|
||||
<feature name="cart_back_label" value="SNSP-EUR" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="spal-axsp-0.u1" size="2097152" crc="0f8378a6" sha1="dc7f33e6bb587d7290f6a2587bb31af15724dfa3" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -33500,7 +33500,7 @@ Alternate board (XL-1)
|
||||
<publisher>Nintendo</publisher>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-1" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="shvc-fo-1.ic20" size="1048576" crc="ad668a41" sha1="39ff7354a7fa02295c899b7a7ec3556998ac2636" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -37471,7 +37471,7 @@ List of unclassified roms
|
||||
<info name="release" value="199511xx" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-1" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="dirt trax fx (usa).sfc" size="524288" crc="61a86c7f" sha1="d36e3e949c46939029c82b19b2f99a098efdab76" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -37642,7 +37642,7 @@ List of unclassified roms
|
||||
<info name="alt_title" value="ドゥーム" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="doom (japan).sfc" size="2097152" crc="e5d722b2" sha1="78d3f9346dc861f216063e2259ed17a9dbd85087" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -37658,7 +37658,7 @@ List of unclassified roms
|
||||
<info name="release" value="199509xx" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="doom (usa).sfc" size="2097152" crc="09e85ea6" sha1="736b9b994f506de0893ceb181f942739da089b05" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -45852,7 +45852,7 @@ List of unclassified roms
|
||||
<publisher>Sunsoft</publisher>
|
||||
<info name="release" value="199203xx" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="lemmings (usa) (rev 1).sfc" size="1048576" crc="51e3d566" sha1="10fcf1268cf9bc53e7815c843ea506a77d5e1a9e" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -45865,7 +45865,7 @@ List of unclassified roms
|
||||
<publisher>Sunsoft</publisher>
|
||||
<info name="release" value="199203xx" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="lemmings (usa).sfc" size="1048576" crc="7f8b51a1" sha1="385152eba550e19a15f691f77f7880bf359ec209" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -55718,7 +55718,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<publisher><homebrew></publisher>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="star fox 2 (japan) (proto) (alt 1).sfc" size="1048576" crc="79f3433d" sha1="aea7a00c52c0f4e102b98cd5fa6710e6282e0dee" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -55735,7 +55735,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<publisher>Argonaut</publisher> <!-- cancelled -->
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="binary" size="1048576" crc="1fb1cf76" sha1="60f45d5ca95247294120080359639eb3a7e505c3" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -55751,7 +55751,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<publisher>Argonaut</publisher> <!-- cancelled -->
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="1046983">
|
||||
<rom name="binary-a" size="1046983" crc="1b3bc708" sha1="6669899a6c9c3bb71c41d90c36932ddfc1f4f208" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -55923,7 +55923,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<info name="serial" value="SNSP-FU-EEC" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-1" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="starwing (europe) (super weekend competition).sfc" size="1048576" crc="17c8fe56" sha1="c7d4f1a7a5261fc3b95280f302056226fd8aa68a" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -55939,7 +55939,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<info name="serial" value="SNSP-FU-EEC" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-1" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="starwing (germany) (competition edition).sfc" size="1048576" crc="b25f606a" sha1="daf6c7bdbf8c9733705b1c586c85be9edd864a23" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -56130,7 +56130,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<sharedfeat name="compatibility" value="NTSC"/>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-1" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="stunt race fx (usa) (rev 1).sfc" size="1048576" crc="380c2635" sha1="781e376ff453a83c7bcf72339abe6b842efd9c86" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -58131,7 +58131,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<sharedfeat name="compatibility" value="NTSC"/>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="super mario - yossy island (japan) (rev 1).sfc" size="2097152" crc="0f66698b" sha1="e1279e5701e4880b666982c9c056419500835952" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -58150,7 +58150,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<sharedfeat name="compatibility" value="NTSC"/>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="super mario - yossy island (japan) (rev 2).sfc" size="2097152" crc="f1063fad" sha1="53188bc4623f5b8c9df5c1c54bd187347a2ad969" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -58200,7 +58200,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<sharedfeat name="compatibility" value="PAL"/>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="super mario world 2 - yoshi's island (europe) (en,fr,de) (rev 1).sfc" size="2097152" crc="07e01ef9" sha1="1e1dc02c684652f9e927f3873af65ea4b374bb80" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -58217,7 +58217,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<sharedfeat name="compatibility" value="NTSC"/>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-2" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu2" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="super mario world 2 - yoshi's island (usa).sfc" size="2097152" crc="d138f224" sha1="c807f2856f44fb84326fac5b462340dcdd0471f8" offset="0x000000" />
|
||||
</dataarea>
|
||||
@ -62404,7 +62404,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
<info name="release" value="199409xx" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="enhancement" value="GSU-1" />
|
||||
<feature name="slot" value="lorom_sfx" />
|
||||
<feature name="slot" value="lorom_gsu1" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="vortex (usa) (en,es).sfc" size="524288" crc="31b1ad00" sha1="3a71b63605ddecf827d60554c2ddaccdd85b9624" offset="0x000000" />
|
||||
</dataarea>
|
||||
|
@ -14,15 +14,26 @@
|
||||
// sns_rom_superfx_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
DEFINE_DEVICE_TYPE(SNS_LOROM_SUPERFX, sns_rom_superfx_device, "sns_rom_superfx", "SNES Cart (LoROM) + SuperFX")
|
||||
DEFINE_DEVICE_TYPE(SNS_LOROM_SUPERFX1, sns_rom_superfx1_device, "sns_rom_superfx1", "SNES Cart (LoROM) + SuperFX 1")
|
||||
DEFINE_DEVICE_TYPE(SNS_LOROM_SUPERFX2, sns_rom_superfx2_device, "sns_rom_superfx2", "SNES Cart (LoROM) + SuperFX 2")
|
||||
|
||||
|
||||
sns_rom_superfx_device::sns_rom_superfx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: sns_rom_device(mconfig, SNS_LOROM_SUPERFX, tag, owner, clock)
|
||||
sns_rom_superfx_device::sns_rom_superfx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||
: sns_rom_device(mconfig, type, tag, owner, clock)
|
||||
, m_superfx(*this, "superfx")
|
||||
{
|
||||
}
|
||||
|
||||
sns_rom_superfx1_device::sns_rom_superfx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: sns_rom_superfx_device(mconfig, SNS_LOROM_SUPERFX1, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
sns_rom_superfx2_device::sns_rom_superfx2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: sns_rom_superfx_device(mconfig, SNS_LOROM_SUPERFX2, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void sns_rom_superfx_device::device_start()
|
||||
{
|
||||
save_item(NAME(sfx_ram));
|
||||
@ -85,11 +96,18 @@ WRITE_LINE_MEMBER(sns_rom_superfx_device::snes_extern_irq_w)
|
||||
}
|
||||
|
||||
|
||||
void sns_rom_superfx_device::device_add_mconfig(machine_config &config)
|
||||
void sns_rom_superfx1_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
SUPERFX(config, m_superfx, DERIVED_CLOCK(1, 1)); /* 21.48MHz */
|
||||
m_superfx->set_addrmap(AS_PROGRAM, &sns_rom_superfx_device::sfx_map);
|
||||
m_superfx->irq().set(FUNC(sns_rom_superfx_device::snes_extern_irq_w)); /* IRQ line from cart */
|
||||
SUPERFX1(config, m_superfx, DERIVED_CLOCK(1, 1)); /* 21.48MHz, with internal /2 divider */
|
||||
m_superfx->set_addrmap(AS_PROGRAM, &sns_rom_superfx1_device::sfx_map);
|
||||
m_superfx->irq().set(FUNC(sns_rom_superfx1_device::snes_extern_irq_w)); /* IRQ line from cart */
|
||||
}
|
||||
|
||||
void sns_rom_superfx2_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
SUPERFX2(config, m_superfx, DERIVED_CLOCK(1, 1)); /* 21.48MHz */
|
||||
m_superfx->set_addrmap(AS_PROGRAM, &sns_rom_superfx2_device::sfx_map);
|
||||
m_superfx->irq().set(FUNC(sns_rom_superfx2_device::snes_extern_irq_w)); /* IRQ line from cart */
|
||||
}
|
||||
|
||||
uint8_t sns_rom_superfx_device::chip_read(offs_t offset)
|
||||
|
@ -14,15 +14,13 @@ class sns_rom_superfx_device : public sns_rom_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
sns_rom_superfx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
sns_rom_superfx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
virtual DECLARE_WRITE_LINE_MEMBER(snes_extern_irq_w);
|
||||
|
||||
// additional reading and writing
|
||||
@ -40,7 +38,6 @@ protected:
|
||||
void superfx_w_bank2(offs_t offset, uint8_t data);
|
||||
void superfx_w_bank3(offs_t offset, uint8_t data);
|
||||
|
||||
private:
|
||||
required_device<superfx_device> m_superfx;
|
||||
|
||||
uint8_t sfx_ram[0x200000];
|
||||
@ -48,8 +45,28 @@ private:
|
||||
void sfx_map(address_map &map);
|
||||
};
|
||||
|
||||
class sns_rom_superfx1_device : public sns_rom_superfx_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
sns_rom_superfx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
};
|
||||
|
||||
class sns_rom_superfx2_device : public sns_rom_superfx_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
sns_rom_superfx2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(SNS_LOROM_SUPERFX, sns_rom_superfx_device)
|
||||
DECLARE_DEVICE_TYPE(SNS_LOROM_SUPERFX1, sns_rom_superfx1_device)
|
||||
DECLARE_DEVICE_TYPE(SNS_LOROM_SUPERFX2, sns_rom_superfx2_device)
|
||||
|
||||
#endif // MAME_BUS_SNES_SFX_H
|
||||
|
@ -32,7 +32,8 @@ void snes_cart(device_slot_interface &device)
|
||||
device.option_add_internal("lorom_obc1", SNS_LOROM_OBC1);
|
||||
device.option_add_internal("lorom_sa1", SNS_LOROM_SA1); // Cart + SA1 - unsupported
|
||||
device.option_add_internal("lorom_sdd1", SNS_LOROM_SDD1);
|
||||
device.option_add_internal("lorom_sfx", SNS_LOROM_SUPERFX);
|
||||
device.option_add_internal("lorom_gsu1", SNS_LOROM_SUPERFX1);
|
||||
device.option_add_internal("lorom_gsu2", SNS_LOROM_SUPERFX2);
|
||||
device.option_add_internal("lorom_sgb", SNS_LOROM_SUPERGB); // SuperGB base cart - unsupported
|
||||
device.option_add_internal("lorom_sgb2", SNS_LOROM_SUPERGB2); // SuperGB2 base cart - unsupported
|
||||
device.option_add_internal("lorom_st010", SNS_LOROM_SETA10);
|
||||
|
@ -268,7 +268,8 @@ static const sns_slot slot_list[] =
|
||||
{ SNES_OBC1, "lorom_obc1"},
|
||||
{ SNES_SA1, "lorom_sa1"},
|
||||
{ SNES_SDD1, "lorom_sdd1"},
|
||||
{ SNES_SFX, "lorom_sfx"},
|
||||
{ SNES_GSU1, "lorom_gsu1"},
|
||||
{ SNES_GSU2, "lorom_gsu2"},
|
||||
{ SNES_Z80GB, "lorom_sgb"},
|
||||
{ SNES_ST010, "lorom_st010"},
|
||||
{ SNES_ST011, "lorom_st011"},
|
||||
@ -522,9 +523,9 @@ static uint32_t snes_find_hilo_mode(const device_t *device, const uint8_t *buffe
|
||||
}
|
||||
|
||||
|
||||
static int snes_find_addon_chip( const uint8_t *buffer, uint32_t start_offs )
|
||||
static int snes_find_addon_chip(const uint8_t *buffer, uint32_t start_offs, uint32_t len)
|
||||
{
|
||||
/* Info mostly taken from http://snesemu.black-ship.net/misc/hardware/-from%20nsrt.edgeemu.com-chipinfo.htm */
|
||||
/* Info mostly taken from http://black-ship.net/~tukuyomi/snesemu/misc/hardware/-from%20nsrt.edgeemu.com-chipinfo.htm */
|
||||
switch (buffer[start_offs + 0x16])
|
||||
{
|
||||
case 0x00:
|
||||
@ -558,7 +559,12 @@ static int snes_find_addon_chip( const uint8_t *buffer, uint32_t start_offs )
|
||||
case 0x15: // GSU-x
|
||||
case 0x1a: // GSU-1 (21 MHz at start)
|
||||
if (buffer[start_offs + 0x15] == 0x20)
|
||||
return ADDON_SFX;
|
||||
{
|
||||
if (len > 1048576)
|
||||
return ADDON_GSU2;
|
||||
else
|
||||
return ADDON_GSU1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x25:
|
||||
@ -868,7 +874,7 @@ void base_sns_cart_slot_device::setup_nvram()
|
||||
if (!loaded_through_softlist())
|
||||
{
|
||||
int hilo_mode = snes_find_hilo_mode(this, ROM, m_cart->get_rom_size());
|
||||
uint8_t sram_size = (m_type == SNES_SFX) ? (ROM[0x00ffbd] & 0x07) : (ROM[hilo_mode + 0x18] & 0x07);
|
||||
uint8_t sram_size = (m_type == SNES_GSU1 || m_type == SNES_GSU2) ? (ROM[0x00ffbd] & 0x07) : (ROM[hilo_mode + 0x18] & 0x07);
|
||||
if (sram_size)
|
||||
{
|
||||
uint32_t max = (hilo_mode == 0x007fc0) ? 0x80000 : 0x20000; // MODE20 vs MODE21
|
||||
@ -944,7 +950,7 @@ void base_sns_cart_slot_device::get_cart_type_addon(const uint8_t *ROM, uint32_t
|
||||
// check for add-on chips...
|
||||
if (len >= hilo_mode + 0x1a)
|
||||
{
|
||||
addon = snes_find_addon_chip(ROM, hilo_mode);
|
||||
addon = snes_find_addon_chip(ROM, hilo_mode, len);
|
||||
if (addon != -1)
|
||||
{
|
||||
// m_type handles DSP1,2,3 in the same way, but snes_add requires them to be separate...
|
||||
@ -976,8 +982,11 @@ void base_sns_cart_slot_device::get_cart_type_addon(const uint8_t *ROM, uint32_t
|
||||
case ADDON_SDD1:
|
||||
type = SNES_SDD1;
|
||||
break;
|
||||
case ADDON_SFX:
|
||||
type = SNES_SFX;
|
||||
case ADDON_GSU1:
|
||||
type = SNES_GSU1;
|
||||
break;
|
||||
case ADDON_GSU2:
|
||||
type = SNES_GSU2;
|
||||
break;
|
||||
case ADDON_SPC7110:
|
||||
type = SNES_SPC7110;
|
||||
@ -1294,7 +1303,7 @@ void base_sns_cart_slot_device::internal_header_logging(uint8_t *ROM, uint32_t l
|
||||
}
|
||||
}
|
||||
|
||||
addon = snes_find_addon_chip(ROM, hilo_mode);
|
||||
addon = snes_find_addon_chip(ROM, hilo_mode, len);
|
||||
if (addon != -1)
|
||||
{
|
||||
if (type == SNES_MODE20 && addon == SNES_DSP)
|
||||
|
@ -40,7 +40,8 @@ enum
|
||||
SNES_OBC1,
|
||||
SNES_SA1,
|
||||
SNES_SDD1,
|
||||
SNES_SFX,
|
||||
SNES_GSU1,
|
||||
SNES_GSU2,
|
||||
SNES_SPC7110,
|
||||
SNES_SPC7110_RTC,
|
||||
SNES_SRTC,
|
||||
@ -88,7 +89,8 @@ enum
|
||||
ADDON_OBC1,
|
||||
ADDON_SA1,
|
||||
ADDON_SDD1,
|
||||
ADDON_SFX,
|
||||
ADDON_GSU1,
|
||||
ADDON_GSU2,
|
||||
ADDON_SPC7110,
|
||||
ADDON_SPC7110_RTC,
|
||||
ADDON_ST010,
|
||||
|
@ -5,10 +5,12 @@
|
||||
#include "superfx.h"
|
||||
|
||||
|
||||
DEFINE_DEVICE_TYPE(SUPERFX, superfx_device, "superfx", "Nintendo SuperFX")
|
||||
DEFINE_DEVICE_TYPE(SUPERFX1, superfx1_device, "superfx1", "Nintendo SuperFX 1")
|
||||
DEFINE_DEVICE_TYPE(SUPERFX2, superfx2_device, "superfx2", "Nintendo SuperFX 2")
|
||||
|
||||
superfx_device::superfx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: cpu_device(mconfig, SUPERFX, tag, owner, clock)
|
||||
superfx_device::superfx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cpi)
|
||||
: cpu_device(mconfig, type, tag, owner, clock)
|
||||
, m_cycles_per_insn(cpi)
|
||||
, m_program_config("program", ENDIANNESS_LITTLE, 8, 32, 0)
|
||||
, m_out_irq_func(*this), m_pipeline(0), m_ramaddr(0), m_sfr(0), m_pbr(0), m_rombr(0), m_rambr(0), m_cbr(0), m_scbr(0), m_scmr(0), m_colr(0), m_por(0)
|
||||
, m_bramr(0), m_vcr(0), m_cfgr(0), m_clsr(0), m_romcl(0), m_romdr(0), m_ramcl(0), m_ramar(0), m_ramdr(0), m_sreg(nullptr), m_sreg_idx(0), m_dreg(nullptr)
|
||||
@ -16,6 +18,16 @@ superfx_device::superfx_device(const machine_config &mconfig, const char *tag, d
|
||||
{
|
||||
}
|
||||
|
||||
superfx1_device::superfx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: superfx_device(mconfig, SUPERFX1, tag, owner, clock, 2)
|
||||
{
|
||||
}
|
||||
|
||||
superfx2_device::superfx2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: superfx_device(mconfig, SUPERFX2, tag, owner, clock, 1)
|
||||
{
|
||||
}
|
||||
|
||||
device_memory_interface::space_config_vector superfx_device::memory_space_config() const
|
||||
{
|
||||
return space_config_vector {
|
||||
@ -1441,7 +1453,7 @@ void superfx_device::execute_run()
|
||||
//printf( " r8:%04x r9:%04x r10:%04x r11:%04x r12:%04x r13:%04x r14:%04x r15:%04x\n", m_r[8], m_r[9], m_r[10], m_r[11], m_r[12], m_r[13], m_r[14], m_r[15] );
|
||||
//printf( "sfr:%04x\n", m_sfr );
|
||||
|
||||
--m_icount;
|
||||
m_icount -= m_cycles_per_insn;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ class superfx_device : public cpu_device, public superfx_disassembler::config
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
superfx_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock);
|
||||
superfx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int cpi);
|
||||
|
||||
// configuration helpers
|
||||
auto irq() { return m_out_irq_func.bind(); }
|
||||
@ -112,8 +112,6 @@ protected:
|
||||
virtual void device_reset() override;
|
||||
|
||||
// device_execute_interface overrides
|
||||
virtual uint32_t execute_min_cycles() const override { return 1; }
|
||||
virtual uint32_t execute_max_cycles() const override { return 1; }
|
||||
virtual uint32_t execute_input_lines() const override { return 0; }
|
||||
virtual void execute_run() override;
|
||||
|
||||
@ -127,6 +125,9 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
// helpers
|
||||
int m_cycles_per_insn;
|
||||
|
||||
private:
|
||||
address_space_config m_program_config;
|
||||
|
||||
@ -210,7 +211,31 @@ private:
|
||||
inline void superfx_dreg_sfr_sz_update();
|
||||
};
|
||||
|
||||
class superfx1_device : public superfx_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
superfx1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
DECLARE_DEVICE_TYPE(SUPERFX, superfx_device)
|
||||
protected:
|
||||
// device_execute_interface overrides
|
||||
virtual uint32_t execute_min_cycles() const override { return m_cycles_per_insn; }
|
||||
virtual uint32_t execute_max_cycles() const override { return m_cycles_per_insn; }
|
||||
};
|
||||
|
||||
class superfx2_device : public superfx_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
superfx2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
// device_execute_interface overrides
|
||||
virtual uint32_t execute_min_cycles() const override { return m_cycles_per_insn; }
|
||||
virtual uint32_t execute_max_cycles() const override { return m_cycles_per_insn; }
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(SUPERFX1, superfx1_device)
|
||||
DECLARE_DEVICE_TYPE(SUPERFX2, superfx2_device)
|
||||
|
||||
#endif // MAME_CPU_SUPERFX_SUPERFX_H
|
||||
|
@ -1249,7 +1249,8 @@ void snes_console_state::machine_start()
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
|
||||
break;
|
||||
case SNES_SFX:
|
||||
case SNES_GSU1:
|
||||
case SNES_GSU2:
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessfx_lo_r),this), write8_delegate(FUNC(snes_console_state::snessfx_lo_w),this));
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessfx_hi_r),this), write8_delegate(FUNC(snes_console_state::snessfx_hi_w),this));
|
||||
m_maincpu->set_5a22_map();
|
||||
|
Loading…
Reference in New Issue
Block a user