mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
model 1 checkpoint (nw)
This commit is contained in:
parent
1046be89db
commit
0d217bb97c
@ -180,12 +180,12 @@ public:
|
||||
DECLARE_TGP_FUNCTION( clear_stack );
|
||||
DECLARE_TGP_FUNCTION( matrix_mul );
|
||||
DECLARE_TGP_FUNCTION( anglev );
|
||||
DECLARE_TGP_FUNCTION( f11 );
|
||||
DECLARE_TGP_FUNCTION( triangle_normal );
|
||||
DECLARE_TGP_FUNCTION( normalize );
|
||||
DECLARE_TGP_FUNCTION( acc_seti );
|
||||
DECLARE_TGP_FUNCTION( track_select );
|
||||
DECLARE_TGP_FUNCTION( f14 );
|
||||
DECLARE_TGP_FUNCTION( f15_swa );
|
||||
DECLARE_TGP_FUNCTION( load_base );
|
||||
DECLARE_TGP_FUNCTION( transpose );
|
||||
DECLARE_TGP_FUNCTION( anglep );
|
||||
DECLARE_TGP_FUNCTION( matrix_ident );
|
||||
DECLARE_TGP_FUNCTION( matrix_read );
|
||||
@ -214,9 +214,9 @@ public:
|
||||
DECLARE_TGP_FUNCTION( xyz2rqf );
|
||||
DECLARE_TGP_FUNCTION( f43 );
|
||||
DECLARE_TGP_FUNCTION( f43_swa );
|
||||
DECLARE_TGP_FUNCTION( f44 );
|
||||
DECLARE_TGP_FUNCTION( track_read_tri );
|
||||
DECLARE_TGP_FUNCTION( matrix_sdir );
|
||||
DECLARE_TGP_FUNCTION( f45 );
|
||||
DECLARE_TGP_FUNCTION( inverse );
|
||||
DECLARE_TGP_FUNCTION( vlength );
|
||||
DECLARE_TGP_FUNCTION( f47 );
|
||||
DECLARE_TGP_FUNCTION( track_read_info );
|
||||
|
@ -247,30 +247,36 @@ TGP_FUNCTION( model1_state::anglev )
|
||||
next_fn();
|
||||
}
|
||||
|
||||
TGP_FUNCTION( model1_state::f11 )
|
||||
TGP_FUNCTION( model1_state::triangle_normal )
|
||||
{
|
||||
float a = fifoin_pop_f();
|
||||
float b = fifoin_pop_f();
|
||||
float c = fifoin_pop_f();
|
||||
float d = fifoin_pop_f();
|
||||
float e = fifoin_pop_f();
|
||||
float f = fifoin_pop_f();
|
||||
float g = fifoin_pop_f();
|
||||
float h = fifoin_pop_f();
|
||||
float i = fifoin_pop_f();
|
||||
(void)a;
|
||||
(void)b;
|
||||
(void)c;
|
||||
(void)d;
|
||||
(void)e;
|
||||
(void)f;
|
||||
(void)g;
|
||||
(void)h;
|
||||
(void)i;
|
||||
logerror("TGP f11 %f, %f, %f, %f, %f, %f, %f, %f, %f (%x)\n", a, b, c, d, e, f, g, h, i, m_pushpc);
|
||||
fifoout_push_f(0);
|
||||
fifoout_push_f(0);
|
||||
fifoout_push_f(0);
|
||||
float p1x = fifoin_pop_f();
|
||||
float p1y = fifoin_pop_f();
|
||||
float p1z = fifoin_pop_f();
|
||||
float p2x = fifoin_pop_f();
|
||||
float p2y = fifoin_pop_f();
|
||||
float p2z = fifoin_pop_f();
|
||||
float p3x = fifoin_pop_f();
|
||||
float p3y = fifoin_pop_f();
|
||||
float p3z = fifoin_pop_f();
|
||||
|
||||
float nx = (p1y-p2y)*(p3z-p2z) - (p3y-p2y)*(p1z-p2z);
|
||||
float ny = (p1z-p2z)*(p3x-p2x) - (p3z-p2z)*(p1x-p2x);
|
||||
float nz = (p1x-p2x)*(p3y-p2y) - (p3x-p2x)*(p1y-p2y);
|
||||
|
||||
float nn = sqrtf(nx*nx + ny*ny + nz*nz);
|
||||
if(nn < 1e-3)
|
||||
nn = 0;
|
||||
else
|
||||
nn = 1/nn;
|
||||
|
||||
nx *= nn;
|
||||
ny *= nn;
|
||||
nz *= nn;
|
||||
|
||||
logerror("TGP triangle_normal %f, %f, %f, %f, %f, %f, %f, %f, %f (%x)\n", p1x, p1y, p1z, p2x, p2y,p2z, p3x, p3y, p3z, m_pushpc);
|
||||
fifoout_push_f(nx);
|
||||
fifoout_push_f(ny);
|
||||
fifoout_push_f(nz);
|
||||
next_fn();
|
||||
}
|
||||
|
||||
@ -304,19 +310,25 @@ TGP_FUNCTION( model1_state::track_select )
|
||||
next_fn();
|
||||
}
|
||||
|
||||
TGP_FUNCTION( model1_state::f14 )
|
||||
TGP_FUNCTION( model1_state::load_base )
|
||||
{
|
||||
m_tgp_vr_base[0] = fifoin_pop_f();
|
||||
m_tgp_vr_base[1] = fifoin_pop_f();
|
||||
m_tgp_vr_base[2] = fifoin_pop_f();
|
||||
m_tgp_vr_base[3] = fifoin_pop_f();
|
||||
|
||||
logerror("TGP load_base %f, %f, %f, %f (%x)\n", m_tgp_vr_base[0], m_tgp_vr_base[1], m_tgp_vr_base[2], m_tgp_vr_base[3], m_pushpc);
|
||||
next_fn();
|
||||
}
|
||||
|
||||
TGP_FUNCTION( model1_state::f15_swa )
|
||||
TGP_FUNCTION( model1_state::transpose )
|
||||
{
|
||||
logerror("TGP f15_swa (%x)\n", m_pushpc);
|
||||
logerror("TGP transpose (%x)\n", m_pushpc);
|
||||
|
||||
float t;
|
||||
t = m_cmat[1]; m_cmat[1] = m_cmat[3]; m_cmat[3] = t;
|
||||
t = m_cmat[2]; m_cmat[2] = m_cmat[6]; m_cmat[6] = t;
|
||||
t = m_cmat[5]; m_cmat[5] = m_cmat[7]; m_cmat[7] = t;
|
||||
|
||||
next_fn();
|
||||
}
|
||||
@ -371,6 +383,8 @@ TGP_FUNCTION( model1_state::matrix_trans )
|
||||
float b = fifoin_pop_f();
|
||||
float c = fifoin_pop_f();
|
||||
|
||||
logerror("TCP matrix_trans %f %f %f (%x)\n", a, b, c, m_pushpc);
|
||||
|
||||
m_cmat[ 9] += m_cmat[0]*a+m_cmat[3]*b+m_cmat[6]*c;
|
||||
m_cmat[10] += m_cmat[1]*a+m_cmat[4]*b+m_cmat[7]*c;
|
||||
m_cmat[11] += m_cmat[2]*a+m_cmat[5]*b+m_cmat[8]*c;
|
||||
@ -504,7 +518,7 @@ TGP_FUNCTION( model1_state::f24_swa )
|
||||
(void)f;
|
||||
(void)g;
|
||||
logerror("TGP f24_swa %f, %f, %f, %f, %f, %f, %x (%x)\n", a, b, c, d, e, f, g, m_pushpc);
|
||||
fifoout_push_f(0);
|
||||
fifoout_push(1);
|
||||
next_fn();
|
||||
}
|
||||
|
||||
@ -514,7 +528,6 @@ TGP_FUNCTION( model1_state::transform_point )
|
||||
float y = fifoin_pop_f();
|
||||
float z = fifoin_pop_f();
|
||||
logerror("TGP transform_point %f, %f, %f (%x)\n", x, y, z, m_pushpc);
|
||||
|
||||
fifoout_push_f(m_cmat[0]*x+m_cmat[3]*y+m_cmat[6]*z+m_cmat[9]);
|
||||
fifoout_push_f(m_cmat[1]*x+m_cmat[4]*y+m_cmat[7]*z+m_cmat[10]);
|
||||
fifoout_push_f(m_cmat[2]*x+m_cmat[5]*y+m_cmat[8]*z+m_cmat[11]);
|
||||
@ -568,7 +581,7 @@ TGP_FUNCTION( model1_state::distance3 )
|
||||
a -= d;
|
||||
b -= e;
|
||||
c -= f;
|
||||
fifoout_push_f((a*a+b*b+c*c)/sqrtf(a*a+b*b+c*c));
|
||||
fifoout_push_f(sqrtf(a*a+b*b+c*c));
|
||||
next_fn();
|
||||
}
|
||||
|
||||
@ -663,9 +676,6 @@ TGP_FUNCTION( model1_state::xyz2rqf )
|
||||
float b = fifoin_pop_f();
|
||||
float c = fifoin_pop_f();
|
||||
float norm;
|
||||
(void)a;
|
||||
(void)b;
|
||||
(void)c;
|
||||
logerror("TGP xyz2rqf %f, %f, %f (%x)\n", a, b, c, m_pushpc);
|
||||
fifoout_push_f((a*a+b*b+c*c)/sqrtf(a*a+b*b+c*c));
|
||||
norm = sqrt(a*a+c*c);
|
||||
@ -732,14 +742,18 @@ TGP_FUNCTION( model1_state::f43_swa )
|
||||
next_fn();
|
||||
}
|
||||
|
||||
TGP_FUNCTION( model1_state::f44 )
|
||||
TGP_FUNCTION( model1_state::track_read_tri )
|
||||
{
|
||||
float a = fifoin_pop_f();
|
||||
(void)a;
|
||||
logerror("TGP f44 %f (%x)\n", a, m_pushpc);
|
||||
fifoout_push_f(0);
|
||||
fifoout_push_f(0);
|
||||
fifoout_push_f(0);
|
||||
const UINT32 *tgp_data = (const UINT32 *)memregion("user2")->base();
|
||||
UINT32 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]);
|
||||
next_fn();
|
||||
}
|
||||
|
||||
@ -793,27 +807,25 @@ TGP_FUNCTION( model1_state::matrix_sdir )
|
||||
next_fn();
|
||||
}
|
||||
|
||||
TGP_FUNCTION( model1_state::f45 )
|
||||
TGP_FUNCTION( model1_state::inverse )
|
||||
{
|
||||
float a = fifoin_pop_f();
|
||||
(void)a;
|
||||
logerror("TGP f45 %f (%x)\n", a, m_pushpc);
|
||||
fifoout_push_f(0);
|
||||
fifoout_push_f(1/a);
|
||||
next_fn();
|
||||
}
|
||||
|
||||
TGP_FUNCTION( model1_state::vlength )
|
||||
{
|
||||
float a = fifoin_pop_f() - m_tgp_vr_base[0];
|
||||
float b = fifoin_pop_f() - m_tgp_vr_base[1];
|
||||
float c = fifoin_pop_f() - m_tgp_vr_base[2];
|
||||
logerror("TGP vlength %f, %f, %f (%x)\n", a, b, c, m_pushpc);
|
||||
float x = fifoin_pop_f();
|
||||
float y = fifoin_pop_f();
|
||||
float z = fifoin_pop_f();
|
||||
logerror("TGP vlength %f, %f, %f (%x)\n", x, y, z, m_pushpc);
|
||||
|
||||
a = (a*a+b*b+c*c);
|
||||
b = 1/sqrt(a);
|
||||
c = a * b;
|
||||
c -= m_tgp_vr_base[3];
|
||||
fifoout_push_f(c);
|
||||
x -= m_tgp_vr_base[0];
|
||||
y -= m_tgp_vr_base[1];
|
||||
z -= m_tgp_vr_base[2];
|
||||
fifoout_push_f(sqrt(x*x + y*y + z*z) - m_tgp_vr_base[3]);
|
||||
next_fn();
|
||||
}
|
||||
|
||||
@ -1581,110 +1593,111 @@ TGP_FUNCTION( model1_state::f103 )
|
||||
next_fn();
|
||||
}
|
||||
|
||||
// Addresses in daytona's TGP program
|
||||
const struct model1_state::function model1_state::ftab_vf[] = {
|
||||
{ &model1_state::fadd, 2 }, /* 0x00 */
|
||||
{ &model1_state::fsub, 2 },
|
||||
{ &model1_state::fmul, 2 },
|
||||
{ &model1_state::fdiv, 2 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::matrix_push, 0 },
|
||||
{ &model1_state::matrix_pop, 0 },
|
||||
{ &model1_state::matrix_write, 12 },
|
||||
{ &model1_state::clear_stack, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::anglev, 2 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::track_select, 1 },
|
||||
{ &model1_state::f14, 4 },
|
||||
{ &model1_state::anglep, 4 },
|
||||
{ &model1_state::fadd, 2 }, /* 0x00 */ // 0b5
|
||||
{ &model1_state::fsub, 2 }, // 0ba
|
||||
{ &model1_state::fmul, 2 }, // 0bf
|
||||
{ &model1_state::fdiv, 2 }, // 0c4
|
||||
{ nullptr, 0 }, // 0d2
|
||||
{ &model1_state::matrix_push, 0 }, // 0e3
|
||||
{ &model1_state::matrix_pop, 0 }, // 0f7
|
||||
{ &model1_state::matrix_write, 12 }, // 106
|
||||
{ &model1_state::clear_stack, 0 }, // 10a
|
||||
{ &model1_state::matrix_mul, 12 }, // 10e
|
||||
{ &model1_state::anglev, 2 }, // 154
|
||||
{ nullptr, 0 }, // 15d
|
||||
{ nullptr, 0 }, // 19f
|
||||
{ &model1_state::track_select, 1 }, // 1b8
|
||||
{ &model1_state::load_base, 4 }, // 1bb
|
||||
{ &model1_state::anglep, 4 }, // 1c1
|
||||
|
||||
{ &model1_state::matrix_ident, 0 }, /* 0x10 */
|
||||
{ &model1_state::matrix_read, 0 },
|
||||
{ &model1_state::matrix_trans, 3 },
|
||||
{ &model1_state::matrix_scale, 3 },
|
||||
{ &model1_state::matrix_rotx, 1 },
|
||||
{ &model1_state::matrix_roty, 1 },
|
||||
{ &model1_state::matrix_rotz, 1 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::track_read_quad, 1 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::transform_point, 3 },
|
||||
{ &model1_state::fsin_m1, 1 },
|
||||
{ &model1_state::fcos_m1, 1 },
|
||||
{ &model1_state::fsinm_m1, 2 },
|
||||
{ &model1_state::fcosm_m1, 2 },
|
||||
{ &model1_state::distance3, 6 },
|
||||
{ &model1_state::matrix_ident, 0 }, /* 0x10 */ // 1d2
|
||||
{ &model1_state::matrix_read, 0 }, // 1d9
|
||||
{ &model1_state::matrix_trans, 3 }, // 1dd
|
||||
{ &model1_state::matrix_scale, 3 }, // 1f3
|
||||
{ &model1_state::matrix_rotx, 1 }, // 20a
|
||||
{ &model1_state::matrix_roty, 1 }, // 223
|
||||
{ &model1_state::matrix_rotz, 1 }, // 23b
|
||||
{ nullptr, 0 }, // 253
|
||||
{ &model1_state::track_read_quad, 1 }, // 2aa
|
||||
{ nullptr, 0 }, // 2b0
|
||||
{ &model1_state::transform_point, 3 }, // 2b2
|
||||
{ &model1_state::fsin_m1, 1 }, // 2cb
|
||||
{ &model1_state::fcos_m1, 1 }, // 2ce
|
||||
{ &model1_state::fsinm_m1, 2 }, // 2d1
|
||||
{ &model1_state::fcosm_m1, 2 }, // 2d7
|
||||
{ &model1_state::distance3, 6 }, // 2dd
|
||||
|
||||
{ nullptr, 0 }, /* 0x20 */
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::acc_set, 1 },
|
||||
{ &model1_state::acc_get, 0 },
|
||||
{ &model1_state::acc_add, 1 },
|
||||
{ &model1_state::acc_sub, 1 },
|
||||
{ &model1_state::acc_mul, 1 },
|
||||
{ &model1_state::acc_div, 1 }, // not used ?
|
||||
{ &model1_state::f42, 3 },
|
||||
{ &model1_state::f43, 6 },
|
||||
{ &model1_state::f44, 1 },
|
||||
{ &model1_state::f45, 1 },
|
||||
{ &model1_state::vlength, 3 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 }, /* 0x20 */ // 2ff
|
||||
{ nullptr, 0 }, // 2ff
|
||||
{ nullptr, 0 }, // 300
|
||||
{ nullptr, 0 }, // 304
|
||||
{ &model1_state::acc_set, 1 }, // 308
|
||||
{ &model1_state::acc_get, 0 }, // 30a
|
||||
{ &model1_state::acc_add, 1 }, // 30c
|
||||
{ &model1_state::acc_sub, 1 }, // 311
|
||||
{ &model1_state::acc_mul, 1 }, // 316
|
||||
{ &model1_state::acc_div, 1 }, // 31b
|
||||
{ &model1_state::f42, 3 }, // 329
|
||||
{ &model1_state::f43, 6 }, // 36c
|
||||
{ &model1_state::track_read_tri, 1 }, // 3c2
|
||||
{ &model1_state::inverse, 1 }, // 3c7
|
||||
{ &model1_state::vlength, 3 }, // 3cf
|
||||
{ nullptr, 0 }, // 3ef
|
||||
|
||||
{ &model1_state::track_read_info, 1 }, /* 0x30 */
|
||||
{ &model1_state::colbox_set, 12 },
|
||||
{ &model1_state::colbox_test, 3 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::track_lookup, 4 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::track_read_info, 1 }, /* 0x30 */ // 410
|
||||
{ &model1_state::colbox_set, 12 }, // 413
|
||||
{ &model1_state::colbox_test, 3 }, // 417
|
||||
{ nullptr, 0 }, // 43b
|
||||
{ nullptr, 0 }, // 44d
|
||||
{ nullptr, 0 }, // 452
|
||||
{ &model1_state::track_lookup, 4 }, // 457
|
||||
{ nullptr, 0 }, // 51a
|
||||
{ nullptr, 0 }, // 521
|
||||
{ nullptr, 0 }, // 52f
|
||||
{ nullptr, 0 }, // 53d
|
||||
{ nullptr, 0 }, // 545
|
||||
{ nullptr, 0 }, // 558
|
||||
{ nullptr, 0 }, // 559
|
||||
{ nullptr, 0 }, // 5c6
|
||||
{ nullptr, 0 }, // 5e9
|
||||
|
||||
{ &model1_state::col_setcirc, 3 }, /* 0x40 */
|
||||
{ &model1_state::col_testpt, 2 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::distance, 4 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::car_move, 4 },
|
||||
{ &model1_state::cpa, 12 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::col_setcirc, 3 }, /* 0x40 */ // 5f3
|
||||
{ &model1_state::col_testpt, 2 }, // 5fa
|
||||
{ nullptr, 0 }, // 615
|
||||
{ &model1_state::distance, 4 }, // 631
|
||||
{ nullptr, 0 }, // 63f
|
||||
{ nullptr, 0 }, // 643
|
||||
{ nullptr, 0 }, // 64b
|
||||
{ &model1_state::car_move, 4 }, // 661
|
||||
{ &model1_state::cpa, 12 }, // 7d9
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::vmat_store, 1 },
|
||||
{ &model1_state::vmat_restore, 1 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::vmat_mul, 2 },
|
||||
{ &model1_state::vmat_read, 1 },
|
||||
{ &model1_state::matrix_unrot, 0 },
|
||||
|
||||
{ &model1_state::f80, 0 }, /* 0x50 */
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::f80, 0 }, /* 0x50 */
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::matrix_rtrans, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::vmat_save, 1 },
|
||||
{ &model1_state::vmat_load, 1 },
|
||||
{ &model1_state::ram_setadr, 1 },
|
||||
{ &model1_state::groundbox_test, 3 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::f89, 4 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::f92, 4 },
|
||||
{ &model1_state::f93, 1 },
|
||||
{ &model1_state::f94, 1 },
|
||||
{ &model1_state::vmat_flatten, 0 },
|
||||
|
||||
{ &model1_state::vmat_load1, 1 }, /* 0x60 */
|
||||
{ &model1_state::vmat_load1, 1 }, /* 0x60 */
|
||||
{ &model1_state::ram_trans, 0 },
|
||||
{ &model1_state::f98, 1 },
|
||||
{ &model1_state::f99, 0 },
|
||||
@ -1695,27 +1708,25 @@ const struct model1_state::function model1_state::ftab_vf[] = {
|
||||
};
|
||||
|
||||
// Used in swa scene 1 and unemulated:
|
||||
// f14
|
||||
// f49_swa
|
||||
// f15_swa
|
||||
|
||||
const struct model1_state::function model1_state::ftab_swa[] = {
|
||||
{ &model1_state::fadd, 2 }, /* 0x00 */
|
||||
{ &model1_state::fsub, 2 },
|
||||
{ &model1_state::fmul, 2 },
|
||||
{ &model1_state::fdiv, 2 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::matrix_push, 0 },
|
||||
{ &model1_state::matrix_pop, 0 },
|
||||
{ &model1_state::matrix_write, 12 },
|
||||
{ &model1_state::clear_stack, 0 },
|
||||
{ &model1_state::matrix_mul, 12 },
|
||||
{ &model1_state::anglev, 2 },
|
||||
{ &model1_state::f11, 9 },
|
||||
{ &model1_state::triangle_normal, 9 },
|
||||
{ &model1_state::normalize, 3 },
|
||||
{ &model1_state::acc_seti, 1 },
|
||||
{ &model1_state::f14, 4 },
|
||||
{ &model1_state::f15_swa, 0 },
|
||||
{ &model1_state::load_base, 4 },
|
||||
{ &model1_state::transpose, 0 },
|
||||
|
||||
{ &model1_state::matrix_ident, 0 }, /* 0x10 */
|
||||
{ &model1_state::matrix_read, 0 },
|
||||
@ -1724,9 +1735,9 @@ const struct model1_state::function model1_state::ftab_swa[] = {
|
||||
{ &model1_state::matrix_rotx, 1 },
|
||||
{ &model1_state::matrix_roty, 1 },
|
||||
{ &model1_state::matrix_rotz, 1 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::f24_swa, 7 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::transform_point, 3 },
|
||||
{ &model1_state::fsin_m1, 1 },
|
||||
{ &model1_state::fcos_m1, 1 },
|
||||
@ -1734,8 +1745,8 @@ const struct model1_state::function model1_state::ftab_swa[] = {
|
||||
{ &model1_state::fcosm_m1, 2 },
|
||||
{ &model1_state::distance3, 6 },
|
||||
|
||||
{ nullptr, 0 }, /* 0x20 */
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 }, /* 0x20 */
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::ftoi, 1 },
|
||||
{ &model1_state::itof, 1 },
|
||||
{ &model1_state::acc_set, 1 },
|
||||
@ -1747,30 +1758,30 @@ const struct model1_state::function model1_state::ftab_swa[] = {
|
||||
{ &model1_state::xyz2rqf, 3 },
|
||||
{ &model1_state::f43_swa, 3 },
|
||||
{ &model1_state::matrix_sdir, 3 },
|
||||
{ &model1_state::f45, 1 },
|
||||
{ &model1_state::inverse, 1 },
|
||||
{ &model1_state::vlength, 3 },
|
||||
{ &model1_state::f47, 3 },
|
||||
|
||||
{ nullptr, 0 }, /* 0x30 */
|
||||
{ nullptr, 0 }, /* 0x30 */
|
||||
{ &model1_state::f49_swa, 6 },
|
||||
{ &model1_state::f50_swa, 4 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::f52, 0 },
|
||||
{ &model1_state::matrix_rdir, 3 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::f56, 7 },
|
||||
{ &model1_state::f57, 0 },
|
||||
{ &model1_state::matrix_readt, 0 },
|
||||
{ &model1_state::acc_geti, 0 },
|
||||
{ &model1_state::f60, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
|
||||
{ &model1_state::push_and_ident, 0 }, /* 0x40 */
|
||||
{ nullptr, 0 },
|
||||
{ nullptr, 0 },
|
||||
{ &model1_state::catmull_rom, 13 }
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user