model1.cpp: Rename "user" ROM regions and use pointer finders (nw)

This commit is contained in:
AJR 2018-02-22 23:05:06 -05:00
parent 18541972c0
commit bde5305b2f
4 changed files with 60 additions and 64 deletions

View File

@ -1117,7 +1117,7 @@ static INPUT_PORTS_START( swa )
INPUT_PORTS_END
#define MODEL1_CPU_BOARD \
ROM_REGION( 0xe0000, "user5", 0 ) \
ROM_REGION( 0xe0000, "copro_data", 0 ) \
ROM_LOAD32_WORD("opr14742.bin", 0x000000, 0x20000, CRC(446a1085) SHA1(51b3f4d3a35a36087ea0ba4e26d6e7d17b6418e2) ) \
ROM_LOAD32_WORD("opr14743.bin", 0x000002, 0x20000, CRC(e8953554) SHA1(1499f8e30ac15affc66e6f04ae031bb8680d9260) ) \
ROM_LOAD("opr14744.bin", 0x040000, 0x20000, CRC(730ea9e0) SHA1(651f1db4089a400d073b19ada299b4b08b08f372) ) \
@ -1167,7 +1167,7 @@ ROM_START( vf )
ROM_LOAD( "mpr-16124.4", 0x000000, 0x200000, CRC(45520ba1) SHA1(c33e3c12639961016e5fa6b5025d0a67dff28907) )
ROM_LOAD( "mpr-16125.5", 0x200000, 0x200000, CRC(9b4998b6) SHA1(0418d9b0acf79f35d0f7575c21f1be9a0ea343da) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-16096.26", 0x000000, 0x200000, CRC(a92b0bf3) SHA1(fd3adff5f41f0b0be98df548c848eda04fc0da48) )
ROM_LOAD32_WORD( "mpr-16097.27", 0x000002, 0x200000, CRC(0232955a) SHA1(df934fb6d022032620932571ff5ed176d5dcb017) )
ROM_LOAD32_WORD( "mpr-16098.28", 0x400000, 0x200000, CRC(cf2e1b84) SHA1(f3d16c72344f7f218a792ce7f1dd7cad910a8c97) )
@ -1206,7 +1206,7 @@ ROM_START( vr )
ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-14890.26", 0x000000, 0x200000, CRC(dcbe006b) SHA1(195be7fabec405ca1b4e1338d3b8d7bb4a06dd73) )
ROM_LOAD32_WORD( "mpr-14891.27", 0x000002, 0x200000, CRC(25832b38) SHA1(a8d74538149c92bae661334e327b031eaca2a8f2) )
ROM_LOAD32_WORD( "mpr-14892.28", 0x400000, 0x200000, CRC(5136f3ba) SHA1(ce8312975764db09bbfa2068b99559a5c1798a36) )
@ -1216,7 +1216,7 @@ ROM_START( vr )
ROM_LOAD32_WORD( "mpr-14896.32", 0xc00000, 0x200000, CRC(382091dc) SHA1(efa266f0f6bfe36ad1c365e588fff33b01e166dd) )
ROM_LOAD32_WORD( "mpr-14879.33", 0xc00002, 0x200000, CRC(74873195) SHA1(80705ec577d14570f9bba77cc26766f831c41f42) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-14898.39", 0x000000, 0x80000, CRC(61da2bb6) SHA1(7a12ba522d64a1aeec1ca6f5a87ee063692131f9) )
ROM_LOAD32_BYTE( "mpr-14899.40", 0x000001, 0x80000, CRC(2cd58bee) SHA1(73defec823de4244a387af55fea7210edc1b314f) )
ROM_LOAD32_BYTE( "mpr-14900.41", 0x000002, 0x80000, CRC(aa7c017d) SHA1(0fa2b59a8bb5f5907b2b2567e69d11c73b398dc1) )
@ -1267,7 +1267,7 @@ ROM_START( vformula )
ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-14890.26", 0x000000, 0x200000, CRC(dcbe006b) SHA1(195be7fabec405ca1b4e1338d3b8d7bb4a06dd73) )
ROM_LOAD32_WORD( "mpr-14891.27", 0x000002, 0x200000, CRC(25832b38) SHA1(a8d74538149c92bae661334e327b031eaca2a8f2) )
ROM_LOAD32_WORD( "mpr-14892.28", 0x400000, 0x200000, CRC(5136f3ba) SHA1(ce8312975764db09bbfa2068b99559a5c1798a36) )
@ -1277,13 +1277,13 @@ ROM_START( vformula )
ROM_LOAD32_WORD( "mpr-14896.32", 0xc00000, 0x200000, CRC(382091dc) SHA1(efa266f0f6bfe36ad1c365e588fff33b01e166dd) )
ROM_LOAD32_WORD( "mpr-14879.33", 0xc00002, 0x200000, CRC(74873195) SHA1(80705ec577d14570f9bba77cc26766f831c41f42) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-14898.39", 0x000000, 0x80000, CRC(61da2bb6) SHA1(7a12ba522d64a1aeec1ca6f5a87ee063692131f9) )
ROM_LOAD32_BYTE( "mpr-14899.40", 0x000001, 0x80000, CRC(2cd58bee) SHA1(73defec823de4244a387af55fea7210edc1b314f) )
ROM_LOAD32_BYTE( "mpr-14900.41", 0x000002, 0x80000, CRC(aa7c017d) SHA1(0fa2b59a8bb5f5907b2b2567e69d11c73b398dc1) )
ROM_LOAD32_BYTE( "mpr-14901.42", 0x000003, 0x80000, CRC(175b7a9a) SHA1(c86602e771cd49bab425b4ba7926d2f44858bd39) )
ROM_REGION( 0x20000, "user3", 0 ) /* Comms Board */
ROM_REGION( 0x20000, "commboard", 0 ) /* Comms Board */
ROM_LOAD( "epr-15624.17", 0x00000, 0x20000, CRC(9b3ba315) SHA1(0cd0983cc8b2f2d6b41617d0d0a24cc6c188e62a) )
ROM_REGION( 0x2000, "tgp", 0 ) /* TGP program rom */
@ -1329,7 +1329,7 @@ ROM_START( swa )
ROM_LOAD( "mpr-16514.bin", 0x000000, 0x200000, CRC(3175b0be) SHA1(63649d053c8c17ce1746d16d0cc8202be20c302f) )
ROM_LOAD( "mpr-16515.bin", 0x200000, 0x200000, CRC(3114d748) SHA1(9ef090623cdd2a1d06b5d1bc4b9a07ab4eff5b76) )
ROM_REGION32_LE( 0xc00000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0xc00000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-16476.26", 0x000000, 0x200000, CRC(d48609ae) SHA1(8c8686a5c9ca4837447a7f70ed194e2f1882b66d) )
// original dump (which one is right?)
// ROM_LOAD32_WORD( "mpr-16477.27", 0x000002, 0x200000, CRC(b979b082) SHA1(0c60d259093e987f3856730b57b43bde7e9562e3) )
@ -1340,7 +1340,7 @@ ROM_START( swa )
ROM_LOAD32_WORD( "mpr-16480.30", 0x800000, 0x200000, CRC(3185547a) SHA1(9871937372c2c755717802117a3ad39e1a11410e) )
ROM_LOAD32_WORD( "mpr-16481.31", 0x800002, 0x200000, CRC(ce8d76fe) SHA1(0406f0500d19d6707515627b4143f92a9a5db769) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16472.39", 0x000000, 0x80000, CRC(5a0d7553) SHA1(ba8e08e5a0c6b7fbc10084ad7ad3edf61efb0d70) )
ROM_LOAD32_BYTE( "mpr-16473.40", 0x000001, 0x80000, CRC(876c5399) SHA1(be7e40c77a385600941f11c24852cd73c71696f0) )
ROM_LOAD32_BYTE( "mpr-16474.41", 0x000002, 0x80000, CRC(5864a26f) SHA1(be0c22dfff37408f6b401b1970f7fcc6fc7fbcd2) )
@ -1383,7 +1383,7 @@ ROM_START( wingwar )
ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
@ -1393,7 +1393,7 @@ ROM_START( wingwar )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@ -1433,7 +1433,7 @@ ROM_START( wingwaru )
ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
@ -1443,7 +1443,7 @@ ROM_START( wingwaru )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@ -1485,7 +1485,7 @@ ROM_START( wingwarj )
ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
@ -1495,7 +1495,7 @@ ROM_START( wingwarj )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@ -1539,7 +1539,7 @@ ROM_START( wingwar360 )
ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) )
ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) )
ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) )
ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) )
@ -1549,7 +1549,7 @@ ROM_START( wingwar360 )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
ROM_REGION32_LE( 0x200000, "user2", 0 ) /* TGP data roms */
ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@ -1595,7 +1595,7 @@ ROM_START( netmerc )
ROM_REGION( 0x400000, M1AUDIO_MPCM2_REGION, 0 ) /* Samples */
ROM_LOAD( "mpr-18136.ic4", 0x000000, 0x200000, CRC(2a9c0aaf) SHA1(e8c52a6032ae968afcc41b3d8bfd15065057ea4a) )
ROM_REGION32_LE( 0x1000000, "user1", 0 ) /* TGP model roms */
ROM_REGION32_LE( 0x1000000, "polygons", 0 ) /* TGP model roms */
ROM_LOAD32_WORD( "mpr-18128.ic26", 0x000000, 0x200000, CRC(70d8028c) SHA1(6e55028be778cd246f67e9d8cd69b9f5366bc429) )
ROM_LOAD32_WORD( "mpr-18129.ic27", 0x000002, 0x200000, CRC(134feea3) SHA1(afaf9fa08c5b0ab8c9d5fdef78d829e8582cc61a) )
ROM_LOAD32_WORD( "mpr-18130.ic28", 0x400000, 0x200000, CRC(c7aeae3e) SHA1(4f636178f903cd03e1b9de73a11d1105b7cdb084) )
@ -1603,7 +1603,7 @@ ROM_START( netmerc )
ROM_LOAD32_WORD( "mpr-18132.ic30", 0x800000, 0x200000, CRC(a17e3ac2) SHA1(19827c06ebc3e9de63668ef07675224e169d853e) )
ROM_LOAD32_WORD( "mpr-18133.ic31", 0x800002, 0x200000, CRC(f56354dd) SHA1(2ef1fe8b4995a67b70b565adf8f0ea0ad6e10094) )
ROM_REGION32_LE( 0x200000, "user2", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
ROM_REGION32_LE( 0x200000, "tgp_data", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
ROM_REGION( 0x10000, "ioboard", 0 ) /* IO board */
ROM_LOAD( "epr-18021.ic6", 0x00000, 0x10000, CRC(5551837e) SHA1(bf5b9aad99c0f8f5e262e0855796f39119d11a97) )
@ -1692,7 +1692,7 @@ MACHINE_CONFIG_START(model1_state::model1_vr)
MCFG_MB86233_FIFO_READ_CB(READ32(model1_state,copro_fifoin_pop))
MCFG_MB86233_FIFO_READ_OK_CB(READLINE(model1_state,copro_fifoin_pop_ok))
MCFG_MB86233_FIFO_WRITE_CB(WRITE32(model1_state,copro_fifoout_push))
MCFG_MB86233_TABLE_REGION("user5")
MCFG_MB86233_TABLE_REGION("copro_data")
MCFG_MACHINE_START_OVERRIDE(model1_state,model1)
MCFG_MACHINE_RESET_OVERRIDE(model1_state,model1_vr)

View File

@ -40,6 +40,8 @@ public:
, m_tgp(*this, "tgp")
, m_screen(*this, "screen")
, m_io_timer(*this, "iotimer")
, m_poly_rom(*this, "polygons")
, m_tgp_data(*this, "tgp_data")
, m_mr2(*this, "mr2")
, m_mr(*this, "mr")
, m_display_list0(*this, "display_list0")
@ -213,6 +215,9 @@ private:
required_device<screen_device> m_screen;
required_device<timer_device> m_io_timer;
required_region_ptr<uint32_t> m_poly_rom;
optional_region_ptr<uint32_t> m_tgp_data;
required_shared_ptr<uint16_t> m_mr2;
required_shared_ptr<uint16_t> m_mr;
required_shared_ptr<uint16_t> m_display_list0;
@ -429,7 +434,6 @@ private:
bool m_render_done;
std::unique_ptr<uint16_t[]> m_tgp_ram;
uint32_t *m_poly_rom;
std::unique_ptr<uint32_t[]> m_poly_ram;
// Rendering helper functions

View File

@ -479,32 +479,29 @@ TGP_FUNCTION( model1_state::matrix_rotz )
TGP_FUNCTION( model1_state::track_read_quad )
{
const uint32_t *tgp_data = (const uint32_t *)memregion("user2")->base();
uint32_t a = fifoin_pop();
int offd;
logerror("TGP track_read_quad %d (%x)\n", a, m_pushpc);
offd = tgp_data[0x20+m_tgp_vr_select] + 16*a;
fifoout_push(tgp_data[offd]);
fifoout_push(tgp_data[offd+1]);
fifoout_push(tgp_data[offd+2]);
fifoout_push(tgp_data[offd+3]);
fifoout_push(tgp_data[offd+4]);
fifoout_push(tgp_data[offd+5]);
fifoout_push(tgp_data[offd+6]);
fifoout_push(tgp_data[offd+7]);
fifoout_push(tgp_data[offd+8]);
fifoout_push(tgp_data[offd+9]);
fifoout_push(tgp_data[offd+10]);
fifoout_push(tgp_data[offd+11]);
offd = m_tgp_data[0x20+m_tgp_vr_select] + 16*a;
fifoout_push(m_tgp_data[offd]);
fifoout_push(m_tgp_data[offd+1]);
fifoout_push(m_tgp_data[offd+2]);
fifoout_push(m_tgp_data[offd+3]);
fifoout_push(m_tgp_data[offd+4]);
fifoout_push(m_tgp_data[offd+5]);
fifoout_push(m_tgp_data[offd+6]);
fifoout_push(m_tgp_data[offd+7]);
fifoout_push(m_tgp_data[offd+8]);
fifoout_push(m_tgp_data[offd+9]);
fifoout_push(m_tgp_data[offd+10]);
fifoout_push(m_tgp_data[offd+11]);
next_fn();
}
TGP_FUNCTION( model1_state::intercept )
{
const uint32_t *tgp_data = (const uint32_t *)memregion("user2")->base();
float x1 = fifoin_pop_f();
float y1 = fifoin_pop_f();
float z1 = fifoin_pop_f();
@ -519,19 +516,19 @@ TGP_FUNCTION( model1_state::intercept )
float dy = y2-y1;
float dz = z2-z1;
idx = tgp_data[0x10] + 2*idx;
uint32_t count = tgp_data[idx];
uint32_t adr = tgp_data[idx+1];
idx = m_tgp_data[0x10] + 2*idx;
uint32_t count = m_tgp_data[idx];
uint32_t adr = m_tgp_data[idx+1];
uint32_t ret = 1;
for(unsigned int j=0; j<count; j++) {
float point[4][3];
for(int pt=0; pt<4; pt++)
for(int dim=0; dim<3; dim++)
point[pt][dim] = u2f(tgp_data[adr++]);
point[pt][dim] = u2f(m_tgp_data[adr++]);
float plane[4];
for(int dim=0; dim<4; dim++)
plane[dim] = u2f(tgp_data[adr++]);
plane[dim] = u2f(m_tgp_data[adr++]);
adr++; // 0, 1 or 2...
float den = dx * plane[0] + dy * plane[1] + dz * plane[2];
@ -794,16 +791,15 @@ TGP_FUNCTION( model1_state::f43_swa )
TGP_FUNCTION( model1_state::track_read_tri )
{
const uint32_t *tgp_data = (const uint32_t *)memregion("user2")->base();
uint32_t a = fifoin_pop();
int offd;
logerror("TGP track_read_tri %d (%x)\n", a, m_pushpc);
offd = tgp_data[0x20+m_tgp_vr_select] + 16*a;
fifoout_push(tgp_data[offd+12]);
fifoout_push(tgp_data[offd+13]);
fifoout_push(tgp_data[offd+14]);
offd = m_tgp_data[0x20+m_tgp_vr_select] + 16*a;
fifoout_push(m_tgp_data[offd+12]);
fifoout_push(m_tgp_data[offd+13]);
fifoout_push(m_tgp_data[offd+14]);
next_fn();
}
@ -892,14 +888,13 @@ TGP_FUNCTION( model1_state::f47 )
TGP_FUNCTION( model1_state::track_read_info )
{
const uint32_t *tgp_data = (const uint32_t *)memregion("user2")->base();
uint16_t a = fifoin_pop();
int offd;
logerror("TGP track_read_info %d (%x)\n", a, m_pushpc);
offd = tgp_data[0x20+m_tgp_vr_select] + 16*a;
fifoout_push(tgp_data[offd+15]);
offd = m_tgp_data[0x20+m_tgp_vr_select] + 16*a;
fifoout_push(m_tgp_data[offd+15]);
next_fn();
}
@ -1039,7 +1034,6 @@ static void tri_calc_pq(float ax, float ay, float bx, float by, float cx, float
TGP_FUNCTION( model1_state::track_lookup )
{
const uint32_t *tgp_data = (const uint32_t *)memregion("user2")->base();
float a = fifoin_pop_f();
uint32_t b = fifoin_pop();
float c = fifoin_pop_f();
@ -1052,10 +1046,10 @@ TGP_FUNCTION( model1_state::track_lookup )
logerror("TGP track_lookup %f, 0x%x, %f, %f (%x)\n", a, b, c, d, m_pushpc);
offi = tgp_data[0x10+m_tgp_vr_select] + b;
offd = tgp_data[0x20+m_tgp_vr_select];
offi = m_tgp_data[0x10+m_tgp_vr_select] + b;
offd = m_tgp_data[0x20+m_tgp_vr_select];
len = tgp_data[offi++];
len = m_tgp_data[offi++];
dist = -1;
@ -1065,9 +1059,9 @@ TGP_FUNCTION( model1_state::track_lookup )
for(i=0; i<len; i++) {
int j;
int bpos = tgp_data[offi++];
int bpos = m_tgp_data[offi++];
int posd = offd + bpos*0x10;
const float *pts = (const float *)(tgp_data+posd);
const float *pts = (const float *)&m_tgp_data[posd];
float ax = pts[12];
float ay = pts[14];
float az = pts[13];
@ -1080,7 +1074,7 @@ TGP_FUNCTION( model1_state::track_lookup )
float d = (a-z)*(a-z);
if(dist == -1 || d<dist) {
dist = d;
// behaviour = tgp_data[posd+15];
// behaviour = m_tgp_data[posd+15];
height = z;
entry = bpos+i;
}
@ -1119,11 +1113,10 @@ TGP_FUNCTION( model1_state::f56 )
TGP_FUNCTION( model1_state::int_normal )
{
const uint32_t *tgp_data = (const uint32_t *)memregion("user2")->base();
logerror("TGP int_normal (%x)\n", m_pushpc);
fifoout_push_f(u2f(tgp_data[m_tgp_int_adr+12]));
fifoout_push_f(u2f(tgp_data[m_tgp_int_adr+13]));
fifoout_push_f(u2f(tgp_data[m_tgp_int_adr+14]));
fifoout_push_f(u2f(m_tgp_data[m_tgp_int_adr+12]));
fifoout_push_f(u2f(m_tgp_data[m_tgp_int_adr+13]));
fifoout_push_f(u2f(m_tgp_data[m_tgp_int_adr+14]));
next_fn();
}
@ -2175,5 +2168,5 @@ WRITE16_MEMBER(model1_state::model1_vr_tgp_w)
ADDRESS_MAP_START(model1_state::model1_vr_tgp_map)
AM_RANGE(0x00000000, 0x000007ff) AM_RAM AM_REGION("tgp", 0)
AM_RANGE(0x00400000, 0x00407fff) AM_READWRITE(copro_ram_r, copro_ram_w)
AM_RANGE(0xff800000, 0xff87ffff) AM_ROM AM_REGION("user2", 0)
AM_RANGE(0xff800000, 0xff87ffff) AM_ROM AM_REGION("tgp_data", 0)
ADDRESS_MAP_END

View File

@ -764,7 +764,7 @@ void model1_state::push_object(uint32_t tex_adr, uint32_t poly_adr, uint32_t siz
if (poly_adr & 0x800000)
poly_data = (float *)m_poly_ram.get();
else
poly_data = (float *)m_poly_rom;
poly_data = (float *)m_poly_rom.target();
poly_adr &= 0x7fffff;
#if 0
@ -1566,7 +1566,6 @@ VIDEO_START_MEMBER(model1_state, model1)
{
m_view = auto_alloc_clear(machine(), <model1_state::view_t>());
m_poly_rom = (uint32_t *)memregion("user1")->base();
m_poly_ram = make_unique_clear<uint32_t[]>(0x400000);
m_tgp_ram = make_unique_clear<uint16_t[]>(0x100000-0x40000);
m_pointdb = auto_alloc_array_clear(machine(), model1_state::point_t, 1000000*2);