summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-12-11 08:18:45 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-12-11 08:23:52 -0500
commitf9695c58c0cc5f588b6eb162018c1136414c4193 (patch)
treef3d5f285fb6d0a525514c4d243cc6b42d7fdcb12
parentaedd969c5362d8c44d94d820b8f58bf77d9f62b3 (diff)
jaguar.cpp: Memory-related refactoring (nw)
- Set width and endianness for regions, including cartridges - Make init code safer and more efficient - De-duplicate some memory maps - Separate state class for jaguarcd I've tried to keep this driver from regressing any further than it already has while cleaning up the code and adjusting region usage to comply with the soon-to-be-committed "truth in endianness" requirement. It's possible that some regions should really be 16 bits instead of 32 or vice versa, and/or that DSP endianness may be incorrect.
-rw-r--r--hash/jaguar.xml182
-rw-r--r--src/mame/drivers/jaguar.cpp281
-rw-r--r--src/mame/includes/jaguar.h109
3 files changed, 242 insertions, 330 deletions
diff --git a/hash/jaguar.xml b/hash/jaguar.xml
index 784cef69708..a4a974c274c 100644
--- a/hash/jaguar.xml
+++ b/hash/jaguar.xml
@@ -112,7 +112,7 @@ Unreleased (possibly no prototypes exist):
<year>1997</year>
<publisher>ICD</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<!-- The original dump, released in a custom .j01 format, was the following one
<rom name="air cars.j01" size="2097152" crc="cbfd822a" sha1="9d1ecdb230f94d8145520ba03d187a19d6851a75" offset="000000" />
-->
@@ -129,7 +129,7 @@ Unreleased (possibly no prototypes exist):
<year>1994</year>
<publisher>Midnite Entertainment Group</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="0x200000" width="32" endianness="big" >
+ <dataarea name="rom" size="0x200000" width="32" endianness="big">
<rom name="aircars94.u1" size="0x100000" crc="bbd4c4bd" sha1="4f9c914b43208eb100fb25b8be87dec370fd205d" offset="0x000000" loadflag="load32_word"/>
<rom name="aircars94.u2" size="0x100000" crc="d9958c79" sha1="d7aa26e084b68023076ac025eff819f0e568e2a0" offset="0x000002" loadflag="load32_word"/>
</dataarea>
@@ -143,7 +143,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9008E 800108-022"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="alien vs predator (world).j64" size="4194304" crc="dc187f82" sha1="fd8c89250ebc1e403838b2e589d1f69e3fe2fe02" offset="000000" />
</dataarea>
</part>
@@ -156,7 +156,7 @@ Unreleased (possibly no prototypes exist):
<publisher>B&amp;C Computervision</publisher>
<info name="serial" value="J9003E 800108-006"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="arena football.j64" size="4194304" crc="199b9d83" sha1="542063a5b27659781a85821f61e85cd89ea59ab3" offset="000000" />
</dataarea>
</part>
@@ -168,7 +168,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9091E 705091-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="atari karts (world).j64" size="4194304" crc="e28756de" sha1="9c96e6c2195ce56aa930e677a041b35bd9b8bc7e" offset="000000" />
</dataarea>
</part>
@@ -180,7 +180,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9072E 705072-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="attack of the mutant penguins (world).j64" size="2097152" crc="cd5bf827" sha1="01dc37e7a9d03246a93bcb8c6a3116cb6391ed31" offset="000000" />
</dataarea>
</part>
@@ -192,7 +192,7 @@ Unreleased (possibly no prototypes exist):
<publisher>B&amp;C Computervision</publisher>
<info name="serial" value="J9018E 705018-001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="barkley shut up and jam.j64" size="4194304" crc="aea9d831" sha1="18535f5985c840aefce0fa639131cb83a8a647f9" offset="000000" />
</dataarea>
</part>
@@ -204,7 +204,7 @@ Unreleased (possibly no prototypes exist):
<publisher>ScatoLOGIC</publisher>
<info name="serial" value="J9807E"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="battlesphere.j64" size="4194304" crc="5f2c2774" sha1="8f4c964d2411a52c64eec1d1a3061f77117bb7a6" offset="000000" />
</dataarea>
</part>
@@ -216,7 +216,7 @@ Unreleased (possibly no prototypes exist):
<publisher>ScatoLOGIC</publisher>
<info name="serial" value="J0201G"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="battle sphere gold (world).j64" size="4194304" crc="67f9ab3a" sha1="49716a6a3a4c6abeea36040f26c4e8cf2a545df7" offset="000000" />
</dataarea>
</part>
@@ -228,7 +228,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Telegames</publisher>
<info name="serial" value="J9093E"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="breakout 2000.j64" size="2097152" crc="b5604d40" sha1="fe4c35c24be8df92f867b4fb42eb75a3fcc875e8" offset="000000" />
</dataarea>
</part>
@@ -240,7 +240,7 @@ Unreleased (possibly no prototypes exist):
<publisher>B&amp;C Computervision</publisher>
<info name="serial" value="J9021E 705021-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="brett hull hockey.j64" size="4194304" crc="91095dd3" sha1="7f21c6de18c46629c0d54e68143d619093b4b8d6" offset="000000" />
</dataarea>
</part>
@@ -252,7 +252,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Telegames</publisher>
<info name="serial" value="JA100"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="brutal sports football (world).j64" size="2097152" crc="bcb1a4bf" sha1="cdfefdf28dd9127f7a9425088a1ee3ea88dfb618" offset="000000" />
</dataarea>
</part>
@@ -264,7 +264,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9020E 700720-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="bubsy in fractured furry tales (world).j64" size="2097152" crc="2e17d5da" sha1="752d6e1ed185f9db49230f42319a573a44e32397" offset="000000" />
</dataarea>
</part>
@@ -276,7 +276,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Virgin Interactive</publisher>
<info name="serial" value="02763-00162"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="cannon fodder (world).j64" size="2097152" crc="bda405c6" sha1="0c195676be099f4594ce1d5a38303f6cce899dc5" offset="000000" />
</dataarea>
</part>
@@ -288,7 +288,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9007E 700707-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="checkered flag (world).j64" size="2097152" crc="fa7775ae" sha1="4d0cc8d248a8bd0fc4b8169c5d5772e59c073c59" offset="000000" />
</dataarea>
</part>
@@ -300,7 +300,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9003E 800103-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="club drive (world).j64" size="2097152" crc="eee8d61d" sha1="6588f7d677463d0ef10cf905d44a2581fd9dd055" offset="000000" />
</dataarea>
</part>
@@ -312,7 +312,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9000E 700700-3"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="1048576">
+ <dataarea name="rom" size="1048576" width="32" endianness="big">
<rom name="cybermorph (world) (rev 2).j64" size="1048576" crc="ecf854e7" sha1="c9aa59769df207d85d9212d619c266c793c9063b" offset="000000" />
</dataarea>
</part>
@@ -324,7 +324,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9000E 700700-2"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="cybermorph (world) (rev 1).j64" size="2097152" crc="bde67498" sha1="e00ab55f555fd1fe63b4fce66a9b8ffe3485963e" offset="000000" />
</dataarea>
</part>
@@ -336,7 +336,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9041E 705041-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="defender 2000 (world).j64" size="4194304" crc="27594c6a" sha1="13a4084bd5be1cca21d83d4c26b5b8e5cf1a3e30" offset="000000" />
</dataarea>
</part>
@@ -348,7 +348,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9029E 800129-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="doom (world).j64" size="4194304" crc="5e2cdbc0" sha1="20ddf412e42a50d526cbbb6411bf0ec4516db283" offset="000000" />
</dataarea>
</part>
@@ -360,7 +360,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Tradewest</publisher>
<info name="serial" value="21941"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="double dragon v - the shadow falls (world).j64" size="2097152" crc="348e6449" sha1="d66b4e5f9ac27d53f0d781c741e420698630b9fc" offset="000000" />
</dataarea>
</part>
@@ -372,7 +372,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Virgin Interactibe</publisher>
<info name="serial" value="J9036E 700128-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="dragon - the bruce lee story (world).j64" size="2097152" crc="8fea5ab0" sha1="da7f5dac4317ab0258f54da436abb8d89e530f27" offset="000000" />
</dataarea>
</part>
@@ -384,7 +384,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9006 700706-001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="evolution - dino dudes (world).j64" size="2097152" crc="0ec5369d" sha1="179b511464abcda5a5de9f971bd5cb5775d8c313" offset="000000" />
</dataarea>
</part>
@@ -396,7 +396,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9106E 705106-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="fever pitch soccer (world) (en,fr,de,es,it).j64" size="2097152" crc="3615af6a" sha1="5be3da69a64b779d064d139968fadbe1c475c715" offset="000000" />
</dataarea>
</part>
@@ -408,7 +408,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9037E 705037-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="fight for life (world).j64" size="4194304" crc="b14c4753" sha1="9f5b8844d58bb1c174da4824eabbfd8616ba28d2" offset="000000" />
</dataarea>
</part>
@@ -420,7 +420,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9037E 705037-002"/><!-- could be different -->
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="fight for life (world) (alt).j64" size="4194304" crc="c6c7ba62" sha1="686176f5a7bdaef690d853523a338beb8a93d244" offset="000000" />
</dataarea>
</part>
@@ -432,7 +432,7 @@ Unreleased (possibly no prototypes exist):
<publisher>U.S. Gold</publisher>
<info name="serial" value="43175-79126"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="flashback - the quest for identity (world) (en,fr).j64" size="2097152" crc="de55dcc7" sha1="824613451be0b99020fc02e5dba15c45e76fc8c2" offset="000000" />
</dataarea>
</part>
@@ -444,7 +444,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9040E 700740-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<!-- below dump was mirrored
<rom name="flip out! (world).j64" size="4194304" crc="fae31dd0" sha1="61d4db841c090ae3104eb20b6087160ff80e7a12" offset="000000" />
-->
@@ -459,7 +459,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9009E 700709-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="hover strike (world).j64" size="2097152" crc="4899628f" sha1="94e615e7a57f7c08645322870121bb32310298f5" offset="000000" />
</dataarea>
</part>
@@ -471,7 +471,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Songboard Productions</publisher>
<info name="serial" value="CF3003"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="hyper force (world).j64" size="2097152" crc="f0360db3" sha1="037396347d65d1a8b56e7db361d737ab2070118f" offset="000000" />
</dataarea>
</part>
@@ -483,7 +483,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9043E 705043-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="i-war (world).j64" size="2097152" crc="97eb4651" sha1="3db485aaa28a817f468739a85e3f25741c3855ad" offset="000000" />
</dataarea>
</part>
@@ -495,7 +495,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9026E 700726-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="iron soldier (world) (v1.04).j64" size="2097152" crc="08f15576" sha1="8bdefc60dd1734315e1c145e29abf41800f908cb" offset="000000" />
</dataarea>
</part>
@@ -507,7 +507,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Telegames</publisher>
<info name="serial" value="JA810"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="iron soldier 2 (world).j64" size="2097152" crc="d6c19e34" sha1="47b9580eb9eea121cf080cdbdc4afe7fb7a19ab5" offset="000000" />
</dataarea>
</part>
@@ -519,7 +519,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9012E 700712-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="kasumi ninja (world).j64" size="4194304" crc="0957a072" sha1="2327112b9c6f9b0e49c55def0adb8119ee39ce29" offset="000000" />
</dataarea>
</part>
@@ -532,7 +532,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J8911 700140"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="131072">
+ <dataarea name="rom" size="131072" width="32" endianness="big">
<rom name="memory track.j64" size="131072" crc="fdf37f47" sha1="815d6e8beccc6720ffb8d349587a382409f30042" offset="000000" />
</dataarea>
</part>
@@ -544,7 +544,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9097 705097-001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="missile command 3d (world).j64" size="2097152" crc="da9c4162" sha1="3ea9053a63a3b0165ccec91e85f0e699a998dc0a" offset="000000" />
</dataarea>
</part>
@@ -556,7 +556,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9089E 705089-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="nba jam t.e. (world).j64" size="4194304" crc="0ac83d77" sha1="b9c8ff2d26fe1e91ecd6d59b9f3f76c5b5650f26" offset="000000" />
</dataarea>
</part>
@@ -567,7 +567,7 @@ Unreleased (possibly no prototypes exist):
<year>2002</year>
<publisher>Songbird Productions</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="phase zero.j64" size="2097152" crc="7168b143" sha1="3ec9524921d07647f527e0a82a831f794a7d6d9b" offset="000000" />
</dataarea>
</part>
@@ -579,7 +579,7 @@ Unreleased (possibly no prototypes exist):
<publisher>21st Century Entertainment</publisher>
<info name="serial" value="J0144E 700709-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="pinball fantasies (world).j64" size="2097152" crc="5cff14ab" sha1="4733cf2ede2713467f2a80b052ab94edf6dfe534" offset="000000" />
</dataarea>
</part>
@@ -591,7 +591,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9101 700701-001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="pitfall - the mayan adventure (world).j64" size="4194304" crc="817a2273" sha1="25611b1cff1384db72cc5422dbe70555e5bbd32c" offset="000000" />
</dataarea>
</part>
@@ -603,7 +603,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Time Warner Interactive</publisher>
<info name="serial" value="31763-11153"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="power drive rally (world).j64" size="2097152" crc="1660f070" sha1="75ee0ab0daba31284a1dff27f3c247885f5a427a" offset="000000" />
</dataarea>
</part>
@@ -615,7 +615,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF3004"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="protector.j64" size="2097152" crc="1a20c5c4" sha1="8043e3b521ea00e806d3ab79c6c548a140944db1" offset="000000" />
</dataarea>
</part>
@@ -627,7 +627,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF3004"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="protector - special edition (world).j64" size="2097152" crc="a56d0798" sha1="ddea86820dcaa1a67bd82cf8023f9b3c494357b0" offset="000000" />
</dataarea>
</part>
@@ -639,7 +639,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9005E 700705-2"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="raiden alt.j64" size="2097152" crc="31812799" sha1="50ccf7043a702531a0e9ef86d629d5ede5255c13" offset="000000" />
</dataarea>
</part>
@@ -651,7 +651,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9005 700705-1"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="raiden (world).j64" size="2097152" crc="0509c85e" sha1="9d2f894da3f25944c2f33e3a109ae8d0d951d329" offset="000000" />
</dataarea>
</part>
@@ -663,7 +663,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Ubisoft</publisher>
<info name="serial" value="C3669T"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="rayman (world).j64" size="4194304" crc="a9f8a00e" sha1="d22912992fd966365a1221886e0fc5303ef04a59" offset="000000" />
</dataarea>
</part>
@@ -675,7 +675,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9061 7005061-001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="ruiner pinball (world).j64" size="2097152" crc="5b6bb205" sha1="e0db2fdea7f95743c1ef452b7d289f5fe8158e33" offset="000000" />
</dataarea>
</part>
@@ -688,7 +688,7 @@ Unreleased (possibly no prototypes exist):
<info name="alt_title" value="International Sensible Soccer (box, cart); Soccer (manual)"/>
<info name="serial" value="JA250"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="sensible soccer - international edition (world).j64" size="2097152" crc="5a101212" sha1="f0914be41331e3045bbc04225044dc3c73fd9de1" offset="000000" />
</dataarea>
</part>
@@ -700,7 +700,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF3001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="skyhammer (world).j64" size="4194304" crc="3c044941" sha1="34a9941459e3b66c836f25b3ef55303734b9583e" offset="000000" />
</dataarea>
</part>
@@ -711,7 +711,7 @@ Unreleased (possibly no prototypes exist):
<year>1996</year>
<publisher>ReadySoft</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="soccer kid (world).j64" size="2097152" crc="42a13ec5" sha1="a738a2df47f09c3bfdeddfc01b35f3e8b5c5d99c" offset="000000" />
</dataarea>
</part>
@@ -723,11 +723,11 @@ Unreleased (possibly no prototypes exist):
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF3002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="soccer kid.j64" size="2097152" crc="732ffab6" sha1="b615fe0f229eee89abe4a6fce8e4ce63d2f92c6f" offset="000000" />
</dataarea>
<!-- BIOS blaster -->
- <dataarea name="bios" size="131072">
+ <dataarea name="bios" size="131072" width="32" endianness="big">
<rom name="soccer kid 2.j64" size="131072" crc="41a551b0" sha1="59887e23f23b720a0676ef63a0ec0cf53df7e5dc" offset="000000" />
</dataarea>
</part>
@@ -739,7 +739,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF3002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="soccer kid with universal header.j64" size="2097152" crc="9e265a6e" sha1="9524fa2870865b8433bdba7684861b1ef9092c00" offset="000000" />
</dataarea>
</part>
@@ -750,7 +750,7 @@ Unreleased (possibly no prototypes exist):
<year>2001</year>
<publisher>B&amp;C Computervisions</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="space war 2000.j64" size="2097152" crc="d821f5eb" sha1="6b010477155f30f1ecec7eab2c9a7544242bbd19" offset="000000" />
</dataarea>
</part>
@@ -761,7 +761,7 @@ Unreleased (possibly no prototypes exist):
<year>19??</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<!-- below dump contains 2M of "00"
<rom name="space war 2000 (world).j64" size="4194304" crc="53df6440" sha1="b5da0b1231a6e6532268c4e04f74e56f047dd5a5" offset="000000" />
-->
@@ -776,7 +776,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9052E 700752-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="super burnout (world).j64" size="2097152" crc="6f8b2547" sha1="9a58bc0c8843fd00a2871c01b91fec206408bf80" offset="000000" />
</dataarea>
</part>
@@ -788,7 +788,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9044E 705044-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="supercross 3d (world).j64" size="2097152" crc="ec22f572" sha1="c71e0bc9eeed8670c6e7ccc7a0fe3b815d7bac83" offset="000000" />
</dataarea>
</part>
@@ -800,7 +800,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Ocean</publisher>
<info name="serial" value="L8002-SYNJAG"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="syndicate (world).j64" size="2097152" crc="58272540" sha1="a226086571c857f3796fd664bbc2c8fe99c78224" offset="000000" />
</dataarea>
</part>
@@ -812,7 +812,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9010E 700710-000"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="tempest 2000 (world).j64" size="2097152" crc="6b2b95ad" sha1="3828d2f953224d06b5fe7ab3644d6a75fdfe79e3" offset="000000" />
</dataarea>
</part>
@@ -824,7 +824,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Ocean</publisher>
<info name="serial" value="L8001-TPKJAG"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="theme park (world).j64" size="2097152" crc="47ebc158" sha1="24da4fe776ae9daa86cf643c703ec0f399c77521" offset="000000" />
</dataarea>
</part>
@@ -836,7 +836,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Team Jaguar</publisher>
<info name="serial" value="J6004E 110403-110"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="tiny toon.j64" size="2097152" crc="f4acbb04" sha1="841ce8ae1b71955d9b8df3b80da11fd40308ef5f" offset="000000" />
</dataarea>
</part>
@@ -848,7 +848,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Songbird Productions</publisher>
<info name="serial" value="CF3006"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="total carnage (world).j64" size="4194304" crc="c654681b" sha1="4566b33799a7c65b3e9643383d0282172ff619a5" offset="000000" />
</dataarea>
</part>
@@ -860,7 +860,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Telegames</publisher>
<info name="serial" value="JA256"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<!-- this dump uses the universal header
<rom name="towers ii (world).j64" size="2097152" crc="caf33bd6" sha1="f8c14fab50ab04a025d15c3410a6698f6e4c61d3" offset="000000" />
-->
@@ -875,7 +875,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9001E 700701-2"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="trevor mcfur in the crescent galaxy (world).j64" size="2097152" crc="1e451446" sha1="88e86085932af10dfb8c94032f73a5992a30b55c" offset="000000" />
</dataarea>
</part>
@@ -887,7 +887,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9001E 700701"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="trevor mcfur in the crescent galaxy.j64" size="2097152" crc="95143668" sha1="489b0fe9f070ad27f63a17aa8f0d2afaa4dabdb3" offset="000000" />
</dataarea>
</part>
@@ -899,7 +899,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Williams Entertainment</publisher>
<info name="serial" value="21942"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="troy aikman nfl football (world).j64" size="2097152" crc="38a130ed" sha1="4c6a6432ea0bc198f900f4ebdb8a3a7a34475d84" offset="000000" />
</dataarea>
</part>
@@ -911,7 +911,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9082E 700782-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="ultra vortek (world).j64" size="4194304" crc="0f6a1c2c" sha1="311e41ebba1b78f514bf16789ddb7e7e8dfb47ff" offset="000000" />
</dataarea>
</part>
@@ -923,7 +923,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9082E 700782-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="ultra vortek (world) (v0.94) (beta).j64" size="4194304" crc="a27823d8" sha1="e3bd433bc4a573f3b05652239a6614c3878a04d1" offset="000000" />
</dataarea>
</part>
@@ -935,7 +935,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9060E 700760-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="val d'isere skiing and snowboarding (world).j64" size="2097152" crc="c9608717" sha1="02253d93eef375c8334f1f77a2d8b72fff7a94c6" offset="000000" />
</dataarea>
</part>
@@ -947,7 +947,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9070E 700770-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="white men can't jump (world).j64" size="4194304" crc="14915f20" sha1="4d16596ac2d991435599e1fe03292adfb25c346d" offset="000000" />
</dataarea>
</part>
@@ -959,7 +959,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9028 700128-001"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="wolfenstein 3d (world).j64" size="2097152" crc="e91bd644" sha1="ee553176f0a32683b517b84b12c6fae13c15c3d0" offset="000000" />
</dataarea>
</part>
@@ -971,7 +971,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Telegames</publisher>
<info name="serial" value="JA103"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="worms (world).j64" size="2097152" crc="6eb774eb" sha1="641b07f93e8df03ab8b9bf1e8dc56e2889f247f8" offset="000000" />
</dataarea>
</part>
@@ -983,7 +983,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Telegames</publisher>
<info name="serial" value="J4011"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="zero 5 (world).j64" size="2097152" crc="61c7eec0" sha1="b68de2cd49cb70e92f2415837edfa7ab46770a78" offset="000000" />
</dataarea>
</part>
@@ -995,7 +995,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9042E 700742-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="zool 2 (world).j64" size="2097152" crc="8975f48b" sha1="32ff3811f8f6df8a2bb56165c62227a3a480e55c" offset="000000" />
</dataarea>
</part>
@@ -1007,7 +1007,7 @@ Unreleased (possibly no prototypes exist):
<publisher>Atari</publisher>
<info name="serial" value="J9109E 705109-002"/>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="1048576">
+ <dataarea name="rom" size="1048576" width="32" endianness="big">
<rom name="zoop! (world).j64" size="1048576" crc="c5562581" sha1="52ec786f7536ab043dc24725af94068cad2b0ec3" offset="000000" />
</dataarea>
</part>
@@ -1021,7 +1021,7 @@ These have been converted to j64 format with the universal header -->
<year>1995</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="atari karts (beta).j64" size="4194304" crc="52c996e0" sha1="1bdaaa42b38f4c93a4aba34930e3ca406ac976c9" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1032,7 +1032,7 @@ These have been converted to j64 format with the universal header -->
<year>1994</year>
<publisher>Accolade</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="barkley shut up and jam (prototype).j64" size="2097152" crc="3a3b1fd2" sha1="988897fd517ebd86742971205f3b29f9d70b5686" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1043,7 +1043,7 @@ These have been converted to j64 format with the universal header -->
<year>1995</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="brett hull hockey (cart version).j64" size="4194304" crc="a4b819e4" sha1="77a9277a9b064c2f83c14c101368967ca50a50e4" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1054,7 +1054,7 @@ These have been converted to j64 format with the universal header -->
<year>1996</year>
<publisher>Telegames</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="breakout2000 (prototype) 3-27.j64" size="2097152" crc="20dbff9f" sha1="c8f29d04dacce1a83a1c93ab351737795d0f55db" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1065,7 +1065,7 @@ These have been converted to j64 format with the universal header -->
<year>1993</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="1048576">
+ <dataarea name="rom" size="1048576" width="32" endianness="big">
<rom name="cybermorph (early prototype).j64" size="1048576" crc="9eb389f9" sha1="589efbc772360fa51eddc096a162c8d9fe7838d3" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1076,7 +1076,7 @@ These have been converted to j64 format with the universal header -->
<year>1994</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="cyber golf v.001 (1994).j64" size="2097152" crc="7733f701" sha1="271e9411eb9e6c74240d254bdd7bab9a039bc6d9" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1087,7 +1087,7 @@ These have been converted to j64 format with the universal header -->
<year>199?</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="1048576">
+ <dataarea name="rom" size="1048576" width="32" endianness="big">
<rom name="cyber golf v0.03 (19xx)(atari)[prototype].j64" size="1048576" crc="e20f0eef" sha1="89306ada943c87da740e6166f1f53837566513e2" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1098,7 +1098,7 @@ These have been converted to j64 format with the universal header -->
<year>199?</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="1048576">
+ <dataarea name="rom" size="1048576" width="32" endianness="big">
<rom name="cyber golf v0.04 (19xx)(atari)[prototype].j64" size="1048576" crc="be5e9ef1" sha1="cecec725301d7540f9392618f4fc948def88d398" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1109,7 +1109,7 @@ These have been converted to j64 format with the universal header -->
<year>1996</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="defender 2000 (prototype).j64" size="4194304" crc="952d07f0" sha1="ae497f4839bde6c12c87c651a80633a23d6d0713" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1120,7 +1120,7 @@ These have been converted to j64 format with the universal header -->
<year>1996</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="fight for life (beta 9-7).j64" size="4194304" crc="036a25e6" sha1="c92f1ff8ec83ebbe0f77f5a665169408df53b528" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1131,7 +1131,7 @@ These have been converted to j64 format with the universal header -->
<year>1996</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="4194304">
+ <dataarea name="rom" size="4194304" width="32" endianness="big">
<rom name="fight for life (beta 3-22).j64" size="4194304" crc="59458199" sha1="37fe344383d7991d19bf2c862d29a20eaf1da8ef" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1142,7 +1142,7 @@ These have been converted to j64 format with the universal header -->
<year>2008</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="131072">
+ <dataarea name="rom" size="131072" width="32" endianness="big">
<rom name="gorf 2000 (2008).j64" size="131072" crc="74bdcb91" sha1="cfc87be2e43032ce3902b5073e63e3c6ff0e6018" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1154,7 +1154,7 @@ These have been converted to j64 format with the universal header -->
<year>1995</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="missile command vr (not 3d).j64" size="2097152" crc="5810cadb" sha1="0e95613020d1b3a0ac76d994423c6f15ddfe9703" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1165,7 +1165,7 @@ These have been converted to j64 format with the universal header -->
<year>1995</year>
<publisher>Ubisoft</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="rayman (early prototype).j64" size="2097152" crc="254dd949" sha1="ba34de71a8d278ba76bad19964d2d886ddb94a2e" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1176,7 +1176,7 @@ These have been converted to j64 format with the universal header -->
<year>1994</year>
<publisher>Atari</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="tiny toons plucky duck (unreleased tech demo).j64" size="2097152" crc="4e77a83c" sha1="032aa31cef116bfba8632c14bc2fce5bc44ff137" offset="000000" status="baddump" />
</dataarea>
</part>
@@ -1187,7 +1187,7 @@ These have been converted to j64 format with the universal header -->
<year>199?</year>
<publisher>Crazy Ace</publisher>
<part name="cart" interface="jaguar_cart">
- <dataarea name="rom" size="2097152">
+ <dataarea name="rom" size="2097152" width="32" endianness="big">
<rom name="braingames (unreleased).j64" size="2097152" crc="9aaf8efd" sha1="b0026e73787c7a901f0b7e71418acdaf54981d17" offset="000000" status="baddump" />
</dataarea>
</part>
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 60c80ee87f3..5767804c4de 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -428,17 +428,13 @@ void jaguar_state::machine_reset()
/* 68020 only: copy the interrupt vectors into RAM */
if (!m_is_r3000)
{
- memcpy(m_shared_ram, m_rom_base, 0x400); // do not increase, or Doom breaks
- m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
-
- if(m_is_jagcd)
+ if (m_rom_base.found())
{
- m_shared_ram[0x4/4] = 0x00802000; /* hack until I understand */
-
- m_cd_file = m_cdrom->get_cdrom_file();
- m_butch_cmd_index = 0;
- m_butch_cmd_size = 1;
+ for (offs_t addr = 0; addr < 0x400; addr += 4) // do not increase, or Doom breaks
+ m_shared_ram[addr/4] = m_rom_base[addr/2] << 16 | m_rom_base[addr/2+1];
}
+ else
+ std::copy_n(reinterpret_cast<uint32_t *>(memregion("maincpu")->base()), 0x100, &m_shared_ram[0]);
}
/* reset banks for gfx/sound ROMs */
@@ -476,6 +472,17 @@ void jaguar_state::machine_reset()
}
}
+void jaguarcd_state::machine_reset()
+{
+ jaguar_state::machine_reset();
+
+ m_shared_ram[0x4/4] = 0x00802000; /* hack until I understand */
+
+ m_cd_file = m_cdrom->get_cdrom_file();
+ m_butch_cmd_index = 0;
+ m_butch_cmd_size = 1;
+}
+
/********************************************************************
*
@@ -1084,12 +1091,9 @@ WRITE16_MEMBER(jaguar_state::joystick_w16){ if (!(offset&1)) { joystick_w(space,
READ32_MEMBER(jaguar_state::shared_ram_r){ return m_shared_ram[offset]; }
WRITE32_MEMBER(jaguar_state::shared_ram_w){ COMBINE_DATA(&m_shared_ram[offset]); }
-READ32_MEMBER(jaguar_state::rom_base_r){ return m_rom_base[offset]; }
-WRITE32_MEMBER(jaguar_state::rom_base_w){ /*ROM!*/ }
-READ32_MEMBER(jaguar_state::cart_base_r){ return m_cart_base[offset]; }
-WRITE32_MEMBER(jaguar_state::cart_base_w){ /*ROM!*/ }
-READ32_MEMBER(jaguar_state::wave_rom_r){ return m_wave_rom[offset]; }
-WRITE32_MEMBER(jaguar_state::wave_rom_w){ /*ROM!*/ }
+READ32_MEMBER(jaguar_state::rom_base_r){ return m_rom_base[offset*2+1] << 16 | m_rom_base[offset*2]; }
+READ32_MEMBER(jaguar_state::wave_rom_r){ return m_wave_rom[offset*2+1] << 16 | m_wave_rom[offset*2]; }
+READ32_MEMBER(jaguarcd_state::cd_bios_r){ return m_cd_bios[offset*2+1] << 16 | m_cd_bios[offset*2]; }
READ32_MEMBER(jaguar_state::dsp_ram_r){ return m_dsp_ram[offset]; }
WRITE32_MEMBER(jaguar_state::dsp_ram_w){ COMBINE_DATA(&m_dsp_ram[offset]); }
READ32_MEMBER(jaguar_state::gpu_clut_r){ return m_gpu_clut[offset]; }
@@ -1099,13 +1103,7 @@ WRITE32_MEMBER(jaguar_state::gpu_ram_w){ COMBINE_DATA(&m_gpu_ram[offset]); }
READ16_MEMBER(jaguar_state::shared_ram_r16){ if (!(offset&1)) { return shared_ram_r(space, offset>>1, mem_mask<<16) >> 16; } else { return shared_ram_r(space, offset>>1, mem_mask); } }
WRITE16_MEMBER(jaguar_state::shared_ram_w16){ if (!(offset&1)) { shared_ram_w(space, offset>>1, data << 16, mem_mask << 16); } else { shared_ram_w(space, offset>>1, data, mem_mask); } }
-READ16_MEMBER(jaguar_state::rom_base_r16){ if (!(offset&1)) { return rom_base_r(space, offset>>1, mem_mask<<16) >> 16; } else { return rom_base_r(space, offset>>1, mem_mask); } }
-WRITE16_MEMBER(jaguar_state::rom_base_w16){ if (!(offset&1)) { rom_base_w(space, offset>>1, data << 16, mem_mask << 16); } else { rom_base_w(space, offset>>1, data, mem_mask); } }
-READ16_MEMBER(jaguar_state::cart_base_r16){ if (!(offset&1)) { return cart_base_r(space, offset>>1, mem_mask<<16) >> 16; } else { return cart_base_r(space, offset>>1, mem_mask); } }
-WRITE16_MEMBER(jaguar_state::cart_base_w16){ if (!(offset&1)) { cart_base_w(space, offset>>1, data << 16, mem_mask << 16); } else { cart_base_w(space, offset>>1, data, mem_mask); } }
-READ16_MEMBER(jaguar_state::wave_rom_r16){ if (!(offset&1)) { return wave_rom_r(space, offset>>1, mem_mask<<16) >> 16; } else { return wave_rom_r(space, offset>>1, mem_mask); } }
-WRITE16_MEMBER(jaguar_state::wave_rom_w16){ if (!(offset&1)) { wave_rom_w(space, offset>>1, data << 16, mem_mask << 16); } else { wave_rom_w(space, offset>>1, data, mem_mask); } }
-
+READ16_MEMBER(jaguar_state::cart_base_r16){ if (!(offset&1)) { return m_cart_base[offset>>1] >> 16; } else { return m_cart_base[offset>>1] & 0xffff; } }
READ16_MEMBER(jaguar_state::dsp_ram_r16){ if (!(offset&1)) { return dsp_ram_r(space, offset>>1, mem_mask<<16) >> 16; } else { return dsp_ram_r(space, offset>>1, mem_mask); } }
WRITE16_MEMBER(jaguar_state::dsp_ram_w16){ if (!(offset&1)) { dsp_ram_w(space, offset>>1, data << 16, mem_mask << 16); } else { dsp_ram_w(space, offset>>1, data, mem_mask); } }
READ16_MEMBER(jaguar_state::gpu_clut_r16){ if (!(offset&1)) { return gpu_clut_r(space, offset>>1, mem_mask<<16) >> 16; } else { return gpu_clut_r(space, offset>>1, mem_mask); } }
@@ -1113,12 +1111,10 @@ WRITE16_MEMBER(jaguar_state::gpu_clut_w16){ if (!(offset&1)) { gpu_clut_w(space,
READ16_MEMBER(jaguar_state::gpu_ram_r16){ if (!(offset&1)) { return gpu_ram_r(space, offset>>1, mem_mask<<16) >> 16; } else { return gpu_ram_r(space, offset>>1, mem_mask); } }
WRITE16_MEMBER(jaguar_state::gpu_ram_w16){ if (!(offset&1)) { gpu_ram_w(space, offset>>1, data << 16, mem_mask << 16); } else { gpu_ram_w(space, offset>>1, data, mem_mask); } }
-void jaguar_state::jaguar_map(address_map &map)
+void jaguar_state::console_base_map(address_map &map)
{
- map.global_mask(0xffffff);
map(0x000000, 0x1fffff).mirror(0x200000).rw(FUNC(jaguar_state::shared_ram_r16), FUNC(jaguar_state::shared_ram_w16));
- map(0x800000, 0xdfffff).rw(FUNC(jaguar_state::cart_base_r16), FUNC(jaguar_state::cart_base_w16));
- map(0xe00000, 0xe1ffff).rw(FUNC(jaguar_state::rom_base_r16), FUNC(jaguar_state::rom_base_w16));
+ map(0xe00000, 0xe1ffff).rom().region("mainrom", 0);
map(0xf00000, 0xf003ff).rw(FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w)); // might be reversed endian of the others..
map(0xf00400, 0xf005ff).mirror(0x000200).rw(FUNC(jaguar_state::gpu_clut_r16), FUNC(jaguar_state::gpu_clut_w16));
map(0xf02100, 0xf021ff).mirror(0x008000).rw(FUNC(jaguar_state::gpuctrl_r16), FUNC(jaguar_state::gpuctrl_w16));
@@ -1131,7 +1127,13 @@ void jaguar_state::jaguar_map(address_map &map)
map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r16), FUNC(jaguar_state::dspctrl_w16));
map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r16), FUNC(jaguar_state::serial_w16));
map(0xf1b000, 0xf1cfff).rw(FUNC(jaguar_state::dsp_ram_r16), FUNC(jaguar_state::dsp_ram_w16));
- map(0xf1d000, 0xf1dfff).rw(FUNC(jaguar_state::wave_rom_r16), FUNC(jaguar_state::wave_rom_w16));
+ map(0xf1d000, 0xf1dfff).rom().region("waverom", 0);
+}
+
+void jaguar_state::jaguar_map(address_map &map)
+{
+ console_base_map(map);
+ map(0x800000, 0xdfffff).r(FUNC(jaguar_state::cart_base_r16));
}
void jaguar_state::cpu_space_map(address_map &map)
@@ -1208,10 +1210,10 @@ TODO: this needs to be device-ized, of course ...
*/
-READ16_MEMBER(jaguar_state::butch_regs_r16){ if (!(offset&1)) { return butch_regs_r(space, offset>>1, mem_mask<<16) >> 16; } else { return butch_regs_r(space, offset>>1, mem_mask); } }
-WRITE16_MEMBER(jaguar_state::butch_regs_w16){ if (!(offset&1)) { butch_regs_w(space, offset>>1, data << 16, mem_mask << 16); } else { butch_regs_w(space, offset>>1, data, mem_mask); } }
+READ16_MEMBER(jaguarcd_state::butch_regs_r16){ if (!(offset&1)) { return butch_regs_r(space, offset>>1, mem_mask<<16) >> 16; } else { return butch_regs_r(space, offset>>1, mem_mask); } }
+WRITE16_MEMBER(jaguarcd_state::butch_regs_w16){ if (!(offset&1)) { butch_regs_w(space, offset>>1, data << 16, mem_mask << 16); } else { butch_regs_w(space, offset>>1, data, mem_mask); } }
-READ32_MEMBER(jaguar_state::butch_regs_r)
+READ32_MEMBER(jaguarcd_state::butch_regs_r)
{
switch(offset*4)
{
@@ -1223,7 +1225,7 @@ READ32_MEMBER(jaguar_state::butch_regs_r)
return m_butch_regs[offset];
}
-WRITE32_MEMBER(jaguar_state::butch_regs_w)
+WRITE32_MEMBER(jaguarcd_state::butch_regs_w)
{
COMBINE_DATA(&m_butch_regs[offset]);
@@ -1308,26 +1310,11 @@ WRITE32_MEMBER(jaguar_state::butch_regs_w)
}
}
-void jaguar_state::jaguarcd_map(address_map &map)
+void jaguarcd_state::jaguarcd_map(address_map &map)
{
- map.global_mask(0xffffff);
- map(0x000000, 0x1fffff).mirror(0x200000).rw(FUNC(jaguar_state::shared_ram_r16), FUNC(jaguar_state::shared_ram_w16));
+ console_base_map(map);
map(0x800000, 0x83ffff).rom().region("cdbios", 0);
- map(0xdfff00, 0xdfff3f).rw(FUNC(jaguar_state::butch_regs_r16), FUNC(jaguar_state::butch_regs_w16));
- map(0xe00000, 0xe1ffff).rw(FUNC(jaguar_state::rom_base_r16), FUNC(jaguar_state::rom_base_w16));
- map(0xf00000, 0xf003ff).rw(FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w)); // might be reversed endian of the others..
- map(0xf00400, 0xf005ff).mirror(0x000200).rw(FUNC(jaguar_state::gpu_clut_r16), FUNC(jaguar_state::gpu_clut_w16));
- map(0xf02100, 0xf021ff).mirror(0x008000).rw(FUNC(jaguar_state::gpuctrl_r16), FUNC(jaguar_state::gpuctrl_w16));
- map(0xf02200, 0xf022ff).mirror(0x008000).rw(FUNC(jaguar_state::blitter_r16), FUNC(jaguar_state::blitter_w16));
- map(0xf03000, 0xf03fff).mirror(0x008000).rw(FUNC(jaguar_state::gpu_ram_r16), FUNC(jaguar_state::gpu_ram_w16));
- map(0xf10000, 0xf103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w)); // might be reversed endian of the others..
- map(0xf14000, 0xf14003).rw(FUNC(jaguar_state::joystick_r16), FUNC(jaguar_state::joystick_w16));
- map(0xf14800, 0xf14803).rw(FUNC(jaguar_state::eeprom_clk16), FUNC(jaguar_state::eeprom_w16)); // GPI00
- map(0xf15000, 0xf15003).r(FUNC(jaguar_state::eeprom_cs16)); // GPI01
- map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r16), FUNC(jaguar_state::dspctrl_w16));
- map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r16), FUNC(jaguar_state::serial_w16));
- map(0xf1b000, 0xf1cfff).rw(FUNC(jaguar_state::dsp_ram_r16), FUNC(jaguar_state::dsp_ram_w16));
- map(0xf1d000, 0xf1dfff).rw(FUNC(jaguar_state::wave_rom_r16), FUNC(jaguar_state::wave_rom_w16));
+ map(0xdfff00, 0xdfff3f).rw(FUNC(jaguarcd_state::butch_regs_r16), FUNC(jaguarcd_state::butch_regs_w16));
}
/*************************************
@@ -1362,7 +1349,7 @@ void jaguar_state::r3000_map(address_map &map)
map(0x14000004, 0x14000007).w("watchdog", FUNC(watchdog_timer_device::reset32_w));
map(0x16000000, 0x16000003).w(FUNC(jaguar_state::eeprom_enable_w));
map(0x18000000, 0x18001fff).rw(FUNC(jaguar_state::eeprom_data_r), FUNC(jaguar_state::eeprom_data_w)).share("nvram");
- map(0x1fc00000, 0x1fdfffff).rom().region("maincpu", 0).share("rom");
+ map(0x1fc00000, 0x1fdfffff).rom().region("maincpu", 0);
}
void jaguar_state::r3000_rom_map(address_map &map)
@@ -1376,7 +1363,7 @@ void jaguar_state::r3000_rom_map(address_map &map)
void jaguar_state::m68020_map(address_map &map)
{
map(0x000000, 0x7fffff).ram().share("sharedram");
- map(0x800000, 0x9fffff).rom().region("maincpu", 0).share("rom");
+ map(0x800000, 0x9fffff).rom().region("maincpu", 0);
map(0xa00000, 0xa1ffff).ram().share("mainram");
map(0xa20000, 0xa21fff).rw(FUNC(jaguar_state::eeprom_data_r), FUNC(jaguar_state::eeprom_data_w)).share("nvram");
map(0xa30000, 0xa30003).w("watchdog", FUNC(watchdog_timer_device::reset32_w));
@@ -1443,7 +1430,7 @@ void jaguar_state::dsp_map(address_map &map)
map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
map(0xf1b000, 0xf1cfff).ram().share("dspram");
- map(0xf1d000, 0xf1dfff).r(FUNC(jaguar_state::wave_rom_r)).share("waverom").region("waverom", 0);
+ map(0xf1d000, 0xf1dfff).r(FUNC(jaguar_state::wave_rom_r));
}
void jaguar_state::dsp_rom_map(address_map &map)
@@ -1455,12 +1442,11 @@ void jaguar_state::dsp_rom_map(address_map &map)
/* ToDo, these maps SHOULD be merged with the ones above */
-void jaguar_state::jag_gpu_map(address_map &map)
+void jaguar_state::console_base_gpu_map(address_map &map)
{
map.global_mask(0xffffff);
- map(0x000000, 0x1fffff).ram().mirror(0x200000).share("sharedram").region("maincpu", 0);
- map(0x800000, 0xdfffff).rom().share("cart").region("maincpu", 0x800000);
- map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
+ map(0x000000, 0x1fffff).ram().mirror(0x200000).share("sharedram");
+ map(0xe00000, 0xe1ffff).r(FUNC(jaguar_state::rom_base_r));
map(0xf00000, 0xf003ff).rw(FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
map(0xf02100, 0xf021ff).mirror(0x008000).rw(FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
@@ -1471,66 +1457,20 @@ void jaguar_state::jag_gpu_map(address_map &map)
map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
map(0xf1b000, 0xf1cfff).ram().share("dspram");
- map(0xf1d000, 0xf1dfff).rom().share("waverom").region("waverom", 0);
+ map(0xf1d000, 0xf1dfff).r(FUNC(jaguar_state::wave_rom_r));
}
-void jaguar_state::jag_dsp_map(address_map &map)
+void jaguar_state::jag_gpu_dsp_map(address_map &map)
{
- map.global_mask(0xffffff);
- map(0x000000, 0x1fffff).mirror(0x200000).ram().share("sharedram").region("maincpu", 0);
- map(0x800000, 0xdfffff).rom().share("cart").region("maincpu", 0x800000);
- map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
- map(0xf00000, 0xf003ff).rw(FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
- map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
- map(0xf02100, 0xf021ff).mirror(0x008000).rw(FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
- map(0xf02200, 0xf022ff).mirror(0x008000).rw(FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
- map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
- map(0xf10000, 0xf103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
- map(0xf14000, 0xf14003).rw(FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
- map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
- map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
- map(0xf1b000, 0xf1cfff).ram().share("dspram");
- map(0xf1d000, 0xf1dfff).rom().region("waverom", 0);
-}
-
-void jaguar_state::jagcd_gpu_map(address_map &map)
-{
- map.global_mask(0xffffff);
- map(0x000000, 0x1fffff).ram().mirror(0x200000).share("sharedram").region("maincpu", 0);
- map(0x800000, 0x83ffff).rom().region("cdbios", 0);
- map(0xdfff00, 0xdfff3f).rw(FUNC(jaguar_state::butch_regs_r), FUNC(jaguar_state::butch_regs_w));
- map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
- map(0xf00000, 0xf003ff).rw(FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
- map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
- map(0xf02100, 0xf021ff).mirror(0x008000).rw(FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
- map(0xf02200, 0xf022ff).mirror(0x008000).rw(FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
- map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
- map(0xf10000, 0xf103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
- map(0xf14000, 0xf14003).rw(FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
- map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
- map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
- map(0xf1b000, 0xf1cfff).ram().share("dspram");
- map(0xf1d000, 0xf1dfff).rom().share("waverom").region("waverom", 0);
+ console_base_gpu_map(map);
+ map(0x800000, 0xdfffff).rom().region("cart", 0);
}
-void jaguar_state::jagcd_dsp_map(address_map &map)
+void jaguarcd_state::jagcd_gpu_dsp_map(address_map &map)
{
- map.global_mask(0xffffff);
- map(0x000000, 0x1fffff).mirror(0x200000).ram().share("sharedram").region("maincpu", 0);
- map(0x800000, 0x83ffff).rom().region("cdbios", 0);
- map(0xdfff00, 0xdfff3f).rw(FUNC(jaguar_state::butch_regs_r), FUNC(jaguar_state::butch_regs_w));
- map(0xe00000, 0xe1ffff).rom().share("rom").region("maincpu", 0xe00000);
- map(0xf00000, 0xf003ff).rw(FUNC(jaguar_state::tom_regs_r), FUNC(jaguar_state::tom_regs_w));
- map(0xf00400, 0xf005ff).mirror(0x000200).ram().share("gpuclut");
- map(0xf02100, 0xf021ff).mirror(0x008000).rw(FUNC(jaguar_state::gpuctrl_r), FUNC(jaguar_state::gpuctrl_w));
- map(0xf02200, 0xf022ff).mirror(0x008000).rw(FUNC(jaguar_state::blitter_r), FUNC(jaguar_state::blitter_w));
- map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
- map(0xf10000, 0xf103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
- map(0xf14000, 0xf14003).rw(FUNC(jaguar_state::joystick_r), FUNC(jaguar_state::joystick_w));
- map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
- map(0xf1a140, 0xf1a17f).rw(FUNC(jaguar_state::serial_r), FUNC(jaguar_state::serial_w));
- map(0xf1b000, 0xf1cfff).ram().share("dspram");
- map(0xf1d000, 0xf1dfff).rom().region("waverom", 0);
+ console_base_gpu_map(map);
+ map(0x800000, 0x83ffff).r(FUNC(jaguarcd_state::cd_bios_r));
+ map(0xdfff00, 0xdfff3f).rw(FUNC(jaguarcd_state::butch_regs_r), FUNC(jaguarcd_state::butch_regs_w));
}
/*************************************
@@ -1892,11 +1832,11 @@ void jaguar_state::jaguar(machine_config &config)
JAGUARGPU(config, m_gpu, JAGUAR_CLOCK);
m_gpu->irq().set(FUNC(jaguar_state::gpu_cpu_int));
- m_gpu->set_addrmap(AS_PROGRAM, &jaguar_state::jag_gpu_map);
+ m_gpu->set_addrmap(AS_PROGRAM, &jaguar_state::jag_gpu_dsp_map);
JAGUARDSP(config, m_dsp, JAGUAR_CLOCK);
m_dsp->irq().set(FUNC(jaguar_state::dsp_cpu_int));
- m_dsp->set_addrmap(AS_PROGRAM, &jaguar_state::jag_dsp_map);
+ m_dsp->set_addrmap(AS_PROGRAM, &jaguar_state::jag_gpu_dsp_map);
// MCFG_NVRAM_HANDLER(jaguar)
@@ -1932,16 +1872,14 @@ void jaguar_state::jaguar(machine_config &config)
EEPROM_93C46_16BIT(config, m_eeprom);
}
-void jaguar_state::jaguarcd(machine_config &config)
+void jaguarcd_state::jaguarcd(machine_config &config)
{
jaguar(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &jaguar_state::jaguarcd_map);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jaguarcd_state::jaguarcd_map);
- m_gpu->irq().set(FUNC(jaguar_state::gpu_cpu_int));
- m_gpu->set_addrmap(AS_PROGRAM, &jaguar_state::jagcd_gpu_map);
+ m_gpu->set_addrmap(AS_PROGRAM, &jaguarcd_state::jagcd_gpu_dsp_map);
- m_dsp->irq().set(FUNC(jaguar_state::dsp_cpu_int));
- m_dsp->set_addrmap(AS_PROGRAM, &jaguar_state::jagcd_dsp_map);
+ m_dsp->set_addrmap(AS_PROGRAM, &jaguarcd_state::jagcd_gpu_dsp_map);
CDROM(config, "cdrom").set_interface("jag_cdrom");
}
@@ -1952,60 +1890,27 @@ void jaguar_state::jaguarcd(machine_config &config)
*
*************************************/
-void jaguar_state::fix_endian( uint32_t addr, uint32_t size )
+void jaguar_state::fix_endian( void *base, uint32_t size )
{
- uint8_t j[4];
- uint8_t *ram = memregion("maincpu")->base();
- uint32_t i;
- size += addr;
- logerror("File Loaded to address range %X to %X\n",addr,size-1);
- for (i = addr; i < size; i+=4)
- {
- j[0] = ram[i];
- j[1] = ram[i+1];
- j[2] = ram[i+2];
- j[3] = ram[i+3];
- ram[i] = j[3];
- ram[i+1] = j[2];
- ram[i+2] = j[1];
- ram[i+3] = j[0];
- }
+ uint32_t *mem = reinterpret_cast<uint32_t *>(base);
+
+ for (uint32_t i = 0; i < size; i+=4)
+ mem[i/4] = big_endianize_int32(mem[i/4]);
}
void jaguar_state::init_jaguar()
{
m_hacks_enabled = false;
save_item(NAME(m_joystick_data));
- cart_start();
- m_is_jagcd = false;
- for (int i = 0; i < 0x20000 / 4; i++) // the cd bios is bigger.. check
- {
- m_rom_base[i] = ((m_rom_base[i] & 0xffff0000)>>16) | ((m_rom_base[i] & 0x0000ffff)<<16);
- }
-
- for (int i = 0; i < 0x1000 / 4; i++)
- {
- m_wave_rom[i] = ((m_wave_rom[i] & 0xffff0000)>>16) | ((m_wave_rom[i] & 0x0000ffff)<<16);
- }
+ /* Initialize for no cartridge present */
+ m_using_cart = false;
}
-void jaguar_state::init_jaguarcd()
+void jaguarcd_state::init_jaguarcd()
{
m_hacks_enabled = false;
save_item(NAME(m_joystick_data));
-// cart_start();
- m_is_jagcd = true;
-
- for (int i = 0; i < 0x20000 / 4; i++) // the cd bios is bigger.. check
- {
- m_rom_base[i] = ((m_rom_base[i] & 0xffff0000)>>16) | ((m_rom_base[i] & 0x0000ffff)<<16);
- }
-
- for (int i = 0; i < 0x1000 / 4; i++)
- {
- m_wave_rom[i] = ((m_wave_rom[i] & 0xffff0000)>>16) | ((m_wave_rom[i] & 0x0000ffff)<<16);
- }
}
image_init_result jaguar_state::quickload_cb(device_image_interface &image, const char *file_type, int quickload_size)
@@ -2017,7 +1922,7 @@ image_init_result jaguar_state::quickload_cb(device_image_interface &image, cons
image.fread( &memregion("maincpu")->base()[quickload_begin], quickload_size);
- fix_endian(quickload_begin, quickload_size);
+ fix_endian(&memregion("maincpu")->base()[quickload_begin], quickload_size);
/* Deal with some of the numerous homebrew header systems */
/* COF */
@@ -2062,7 +1967,7 @@ image_init_result jaguar_state::quickload_cb(device_image_interface &image, cons
image.fseek(0, SEEK_SET);
image.fread( &memregion("maincpu")->base()[start-skip], quickload_size);
quickload_begin = start;
- fix_endian((start-skip)&0xfffffc, quickload_size);
+ fix_endian(&memregion("maincpu")->base()[(start-skip)&0xfffffc], quickload_size);
}
@@ -2076,13 +1981,6 @@ image_init_result jaguar_state::quickload_cb(device_image_interface &image, cons
return image_init_result::PASS;
}
-void jaguar_state::cart_start()
-{
- /* Initialize for no cartridge present */
- m_using_cart = false;
- memset(m_cart_base, 0, memshare("cart")->bytes());
-}
-
DEVICE_IMAGE_LOAD_MEMBER( jaguar_state::cart_load )
{
uint32_t size, load_offset = 0;
@@ -2099,25 +1997,24 @@ DEVICE_IMAGE_LOAD_MEMBER( jaguar_state::cart_load )
}
/* Load cart into memory */
- image.fread(&memregion("maincpu")->base()[0x800000 + load_offset], size);
+ image.fread(&m_cart_base[load_offset/4], size);
+ fix_endian(&m_cart_base[load_offset/4], size);
}
else
{
size = image.get_software_region_length("rom");
- memcpy(m_cart_base, image.get_software_region("rom"), size);
+ memcpy(&m_cart_base[0], image.get_software_region("rom"), size);
}
- memset(m_shared_ram, 0, 0x200000);
-
- fix_endian(0x800000+load_offset, size);
+ memset(&m_shared_ram[0], 0, 0x200000);
/* Skip the logo */
m_using_cart = true;
// m_cart_base[0x102] = 1;
/* Transfer control to the bios */
- m_maincpu->set_pc(m_rom_base[1]);
+ m_maincpu->reset();
return image_init_result::PASS;
}
@@ -2134,23 +2031,27 @@ DEVICE_IMAGE_LOAD_MEMBER( jaguar_state::cart_load )
/* Home System */
ROM_START( jaguar )
- ROM_REGION( 0x1000000, "maincpu", 0 ) /* 4MB for RAM at 0 */
- ROM_LOAD16_WORD( "jagboot.rom", 0xe00000, 0x020000, CRC(fb731aaa) SHA1(f8991b0c385f4e5002fa2a7e2f5e61e8c5213356) )
+ ROM_REGION16_BE( 0x20000, "mainrom", 0 )
+ ROM_LOAD16_WORD( "jagboot.rom", 0x00000, 0x20000, CRC(fb731aaa) SHA1(f8991b0c385f4e5002fa2a7e2f5e61e8c5213356) )
+
+ ROM_REGION32_BE( 0x600000, "cart", ROMREGION_ERASE00 )
ROM_REGION16_BE( 0x1000, "waverom", 0 )
ROM_LOAD16_WORD("jagwave.rom", 0x0000, 0x1000, CRC(7a25ee5b) SHA1(58117e11fd6478c521fbd3fdbe157f39567552f0) )
ROM_END
ROM_START( jaguarcd )
- ROM_REGION( 0x1000000, "maincpu", 0 )
- ROM_LOAD16_WORD( "jagboot.rom", 0xe00000, 0x020000, CRC(fb731aaa) SHA1(f8991b0c385f4e5002fa2a7e2f5e61e8c5213356) )
+ ROM_REGION16_BE( 0x20000, "mainrom", 0 )
+ ROM_LOAD16_WORD( "jagboot.rom", 0x00000, 0x20000, CRC(fb731aaa) SHA1(f8991b0c385f4e5002fa2a7e2f5e61e8c5213356) )
+
+ ROM_REGION32_BE( 0x600000, "cart", ROMREGION_ERASE00 )
// TODO: cart needs to be removed (CD BIOS runs in the cart space)
- ROM_REGION(0x40000, "cdbios", 0 )
+ ROM_REGION16_BE(0x40000, "cdbios", 0 )
ROM_SYSTEM_BIOS( 0, "default", "Jaguar CD" )
- ROMX_LOAD( "jag_cd.bin", 0x00000, 0x040000, CRC(687068d5) SHA1(73883e7a6e9b132452436f7ab1aeaeb0776428e5), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(0) )
+ ROMX_LOAD( "jag_cd.bin", 0x00000, 0x040000, CRC(687068d5) SHA1(73883e7a6e9b132452436f7ab1aeaeb0776428e5), ROM_GROUPWORD | ROM_BIOS(0) )
ROM_SYSTEM_BIOS( 1, "dev", "Jaguar Developer CD" )
- ROMX_LOAD( "jagdevcd.bin", 0x00000, 0x040000, CRC(55a0669c) SHA1(d61b7b5912118f114ef00cf44966a5ef62e455a5), ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(1) )
+ ROMX_LOAD( "jagdevcd.bin", 0x00000, 0x040000, CRC(55a0669c) SHA1(d61b7b5912118f114ef00cf44966a5ef62e455a5), ROM_GROUPWORD | ROM_BIOS(1) )
ROM_REGION16_BE( 0x1000, "waverom", 0 )
ROM_LOAD16_WORD("jagwave.rom", 0x0000, 0x1000, CRC(7a25ee5b) SHA1(58117e11fd6478c521fbd3fdbe157f39567552f0) )
@@ -2578,7 +2479,6 @@ ROM_END
void jaguar_state::cojag_common_init(uint16_t gpu_jump_offs, uint16_t spin_pc)
{
m_is_cojag = true;
- m_is_jagcd = false;
/* copy over the ROM */
m_is_r3000 = (m_maincpu->type() == R3041);
@@ -2591,11 +2491,6 @@ void jaguar_state::cojag_common_init(uint16_t gpu_jump_offs, uint16_t spin_pc)
m_gpu->space(AS_PROGRAM).install_read_handler(0xf03000 + gpu_jump_offs, 0xf03003 + gpu_jump_offs, read32_delegate(*this, FUNC(jaguar_state::gpu_jump_r)));
m_gpu_jump_address = &m_gpu_ram[gpu_jump_offs/4];
m_gpu_spin_pc = 0xf03000 + spin_pc;
-
- for (int i=0;i<0x1000/4;i++)
- {
- m_wave_rom[i] = ((m_wave_rom[i] & 0xffff0000)>>16) | ((m_wave_rom[i] & 0x0000ffff)<<16);
- }
}
@@ -2630,7 +2525,7 @@ void jaguar_state::init_maxforce()
cojag_common_init(0x0c0, 0x09e);
/* patch the protection */
- m_rom_base[0x220/4] = 0x03e00008;
+ memregion("maincpu")->as_u32(0x220/4) = 0x03e00008;
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
@@ -2647,7 +2542,7 @@ void jaguar_state::init_area51mx()
cojag_common_init(0x0c0, 0x09e);
/* patch the protection */
- m_rom_base[0x418/4] = 0x4e754e75;
+ memregion("maincpu")->as_u32(0x418/4) = 0x4e754e75;
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
@@ -2663,7 +2558,7 @@ void jaguar_state::init_a51mxr3k()
cojag_common_init(0x0c0, 0x09e);
/* patch the protection */
- m_rom_base[0x220/4] = 0x03e00008;
+ memregion("maincpu")->as_u32(0x220/4) = 0x03e00008;
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
@@ -2733,9 +2628,9 @@ void jaguar_state::init_vcircle()
*
*************************************/
-/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
-CONS( 1993, jaguar, 0, 0, jaguar, jaguar, jaguar_state, init_jaguar, "Atari", "Jaguar (NTSC)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
-CONS( 1995, jaguarcd, jaguar, 0, jaguarcd, jaguar, jaguar_state, init_jaguarcd, "Atari", "Jaguar CD (NTSC)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
+CONS( 1993, jaguar, 0, 0, jaguar, jaguar, jaguar_state, init_jaguar, "Atari", "Jaguar (NTSC)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+CONS( 1995, jaguarcd, jaguar, 0, jaguarcd, jaguar, jaguarcd_state, init_jaguarcd, "Atari", "Jaguar CD (NTSC)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
/* YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME */
GAME( 1996, area51, 0, cojagr3k, area51, jaguar_state, init_area51, ROT0, "Atari Games", "Area 51 (R3000)", 0 )
diff --git a/src/mame/includes/jaguar.h b/src/mame/includes/jaguar.h
index 8e5a2350bfd..50165c04360 100644
--- a/src/mame/includes/jaguar.h
+++ b/src/mame/includes/jaguar.h
@@ -36,9 +36,8 @@ public:
, m_dsp(*this, "dsp")
, m_ldac(*this, "ldac")
, m_rdac(*this, "rdac")
- , m_cdrom(*this, "cdrom")
, m_nvram(*this, "nvram")
- , m_rom_base(*this, "rom")
+ , m_rom_base(*this, "mainrom")
, m_cart_base(*this, "cart")
, m_dsp_ram(*this, "dspram")
, m_wave_rom(*this, "waverom")
@@ -60,6 +59,7 @@ public:
, m_is_cojag(false)
, m_hacks_enabled(false)
, m_using_cart(false)
+ , m_joystick_data(0)
, m_misc_control_data(0)
, m_eeprom_enable(true)
, m_gpu_jump_address(nullptr)
@@ -70,7 +70,6 @@ public:
, m_main_speedup_last_cycles(0)
, m_main_speedup_max_cycles(0)
, m_main_gpu_wait(nullptr)
- , m_joystick_data(0)
, m_eeprom_bit_count(0)
, m_protection_check(0)
, m_eeprom(*this, "eeprom")
@@ -83,11 +82,9 @@ public:
void cojag68k(machine_config &config);
void cojagr3k(machine_config &config);
void cojagr3k_rom(machine_config &config);
- void jaguarcd(machine_config &config);
void jaguar(machine_config &config);
void init_jaguar();
- void init_jaguarcd();
void init_area51mx();
void init_maxforce();
void init_freezeat();
@@ -102,21 +99,31 @@ public:
void init_freezeat2();
void init_area51a();
-private:
+protected:
+ void console_base_map(address_map &map);
+ void console_base_gpu_map(address_map &map);
+
+ // device overrides
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void sound_start() override;
+ virtual void video_start() override;
+ virtual void device_postload();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
// devices
required_device<cpu_device> m_maincpu;
required_device<jaguargpu_cpu_device> m_gpu;
required_device<jaguardsp_cpu_device> m_dsp;
required_device<dac_word_interface> m_ldac;
required_device<dac_word_interface> m_rdac;
- optional_device<cdrom_image_device> m_cdrom;
// memory
optional_shared_ptr<uint32_t> m_nvram; // not used on console
- required_shared_ptr<uint32_t> m_rom_base;
- optional_shared_ptr<uint32_t> m_cart_base; // not used in cojag
+ optional_region_ptr<uint16_t> m_rom_base;
+ optional_region_ptr<uint32_t> m_cart_base; // not used in cojag
required_shared_ptr<uint32_t> m_dsp_ram;
- required_shared_ptr<uint32_t> m_wave_rom;
+ required_region_ptr<uint16_t> m_wave_rom;
required_shared_ptr<uint32_t> m_shared_ram;
required_shared_ptr<uint32_t> m_gpu_ram;
required_shared_ptr<uint32_t> m_gpu_clut;
@@ -139,8 +146,10 @@ private:
bool m_hacks_enabled;
int m_pixel_clock;
bool m_using_cart;
- bool m_is_jagcd;
+ uint32_t m_joystick_data;
+
+private:
uint32_t m_misc_control_data;
bool m_eeprom_enable;
uint32_t *m_gpu_jump_address;
@@ -153,7 +162,6 @@ private:
uint32_t *m_main_gpu_wait;
// driver data
- uint32_t m_joystick_data;
uint8_t m_eeprom_bit_count;
uint8_t m_protection_check; /* 0 = check hasn't started yet; 1= check in progress; 2 = check is finished. */
@@ -173,12 +181,6 @@ private:
pen_t m_pen_table[65536];
uint8_t m_blend_y[65536];
uint8_t m_blend_cc[65536];
- uint32_t m_butch_regs[0x40/4];
- uint32_t m_butch_cmd_response[0x102];
- uint8_t m_butch_cmd_index;
- uint8_t m_butch_cmd_size;
- cdrom_file *m_cd_file;
- const cdrom_toc* m_toc;
static void (jaguar_state::*const bitmap4[8])(uint16_t *, int32_t, int32_t, uint32_t *, int32_t, uint16_t *);
static void (jaguar_state::*const bitmap8[8])(uint16_t *, int32_t, int32_t, uint32_t *, int32_t, uint16_t *);
@@ -222,11 +224,7 @@ private:
DECLARE_READ32_MEMBER(shared_ram_r);
DECLARE_WRITE32_MEMBER(shared_ram_w);
DECLARE_READ32_MEMBER(rom_base_r);
- DECLARE_WRITE32_MEMBER(rom_base_w);
- DECLARE_READ32_MEMBER(cart_base_r);
- DECLARE_WRITE32_MEMBER(cart_base_w);
DECLARE_READ32_MEMBER(wave_rom_r);
- DECLARE_WRITE32_MEMBER(wave_rom_w);
DECLARE_READ32_MEMBER(dsp_ram_r);
DECLARE_WRITE32_MEMBER(dsp_ram_w);
DECLARE_READ32_MEMBER(gpu_clut_r);
@@ -235,22 +233,13 @@ private:
DECLARE_WRITE32_MEMBER(gpu_ram_w);
DECLARE_READ16_MEMBER(shared_ram_r16);
DECLARE_WRITE16_MEMBER(shared_ram_w16);
- DECLARE_READ16_MEMBER(rom_base_r16);
- DECLARE_WRITE16_MEMBER(rom_base_w16);
DECLARE_READ16_MEMBER(cart_base_r16);
- DECLARE_WRITE16_MEMBER(cart_base_w16);
- DECLARE_READ16_MEMBER(wave_rom_r16);
- DECLARE_WRITE16_MEMBER(wave_rom_w16);
DECLARE_READ16_MEMBER(dsp_ram_r16);
DECLARE_WRITE16_MEMBER(dsp_ram_w16);
DECLARE_READ16_MEMBER(gpu_clut_r16);
DECLARE_WRITE16_MEMBER(gpu_clut_w16);
DECLARE_READ16_MEMBER(gpu_ram_r16);
DECLARE_WRITE16_MEMBER(gpu_ram_w16);
- DECLARE_READ16_MEMBER(butch_regs_r16);
- DECLARE_WRITE16_MEMBER(butch_regs_w16);
- DECLARE_READ32_MEMBER(butch_regs_r);
- DECLARE_WRITE32_MEMBER(butch_regs_w);
// from audio/jaguar.cpp
DECLARE_READ16_MEMBER( jerry_regs_r );
@@ -273,19 +262,14 @@ private:
DECLARE_WRITE_LINE_MEMBER( external_int );
image_init_result quickload_cb(device_image_interface &image, const char *file_type, int quickload_size);
- void cart_start();
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( cart_load );
void cpu_space_map(address_map &map);
void dsp_map(address_map &map);
void dsp_rom_map(address_map &map);
void gpu_map(address_map &map);
void gpu_rom_map(address_map &map);
- void jag_dsp_map(address_map &map);
- void jag_gpu_map(address_map &map);
- void jagcd_dsp_map(address_map &map);
- void jagcd_gpu_map(address_map &map);
+ void jag_gpu_dsp_map(address_map &map);
void jaguar_map(address_map &map);
- void jaguarcd_map(address_map &map);
void m68020_map(address_map &map);
void r3000_map(address_map &map);
void r3000_rom_map(address_map &map);
@@ -300,20 +284,12 @@ private:
TID_GPU_SYNC
};
- // device overrides
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void sound_start() override;
- virtual void video_start() override;
- virtual void device_postload();
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
void gpu_suspend() { m_gpu->suspend(SUSPEND_REASON_SPIN, 1); }
void gpu_resume() { m_gpu->resume(SUSPEND_REASON_SPIN); }
void dsp_suspend() { m_dsp->suspend(SUSPEND_REASON_SPIN, 1); }
void dsp_resume() { m_dsp->resume(SUSPEND_REASON_SPIN); }
- void fix_endian( uint32_t addr, uint32_t size );
+ void fix_endian( void *base, uint32_t size );
void cojag_common_init(uint16_t gpu_jump_offs, uint16_t spin_pc);
void init_freeze_common(offs_t main_speedup_addr);
@@ -390,3 +366,44 @@ private:
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
};
+
+class jaguarcd_state : public jaguar_state
+{
+public:
+ jaguarcd_state(const machine_config &mconfig, device_type type, const char *tag)
+ : jaguar_state(mconfig, type, tag)
+ , m_cdrom(*this, "cdrom")
+ , m_cd_bios(*this, "cdbios")
+ {
+ }
+
+ void jaguarcd(machine_config &config);
+
+ void init_jaguarcd();
+
+protected:
+ virtual void machine_reset() override;
+
+private:
+ DECLARE_READ16_MEMBER(butch_regs_r16);
+ DECLARE_WRITE16_MEMBER(butch_regs_w16);
+ DECLARE_READ32_MEMBER(butch_regs_r);
+ DECLARE_WRITE32_MEMBER(butch_regs_w);
+
+ DECLARE_READ32_MEMBER(cd_bios_r);
+
+ void jaguarcd_map(address_map &map);
+ void jagcd_gpu_dsp_map(address_map &map);
+
+ // devices
+ required_device<cdrom_image_device> m_cdrom;
+ required_region_ptr<uint16_t> m_cd_bios;
+
+ uint32_t m_butch_regs[0x40/4];
+ uint32_t m_butch_cmd_response[0x102];
+ uint8_t m_butch_cmd_index;
+ uint8_t m_butch_cmd_size;
+
+ cdrom_file *m_cd_file;
+ //const cdrom_toc* m_toc;
+};