MAMEWorld Central >> EmuChat
View all threads Index   Flat Mode Flat  

dkongjr
MAME Fan
Reged: 03/25/16
Posts: 45
Send PM
Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation
04/15/16 03:50 AM


1. Function f47 - autopilot speed/own torpedo something

https://www.youtube.com/watch?v=PLwvVmx3XxQ
https://www.youtube.com/watch?v=EX82HhCRfVU

Upon careful investigation of these two videos... It turns out while the cockpit gauge shows only speeds up to 200 units, the actual speed can be much greater, which can be deduced from increased length of the flyby debris lines.


Code:


static void f47(void)
{
float a = fifoin_pop_f();
float b = fifoin_pop_f();
float c = fifoin_pop_f();

//-- own torpedo: c= 0.0
//-- entrance stage 1: c= 427 -> 110
//-- entrance stage 2: c= 51 -> 1427 -> 70 -> 925 -> 105

//-- entrance stage 3: maybe complex, like c= -(a+b+c)?
if(activecpu_get_pc() == 878671)
c+= 140;

fifoout_push_f(0); //unknown
fifoout_push_f(c); //speed

next_fn();
}


I am now confident the second output for own torpedoes as well as for speed upon entering stage 1 and 2 is just the third input "c". For entrance to stage 3 this is not the case, but c+140 is kind of close enough. Oddly, for entrance to stage 4 this function is not used. All things known and unknown considered I think at this point this is satisfactory implementation.



2. Function f50_swa - geometry culling/target lock release

Code:


static float Lx, Ly, Lz;
static float Qx, Qy, Qz;
static void f14(void)
{
tgp_vr_base[0] = fifoin_pop_f();
tgp_vr_base[1] = fifoin_pop_f();
tgp_vr_base[2] = fifoin_pop_f();
tgp_vr_base[3] = fifoin_pop_f();

//-- grab own ship coordinates
if(activecpu_get_pc() == 818922)
{
Lx= Qx;
Ly= Qy;
Lz= Qz;

Qx= tgp_vr_base[0];
Qy= tgp_vr_base[1];
Qz= tgp_vr_base[2];
}

next_fn();
}

static void f50_swa(void)
{
float DST, x,y,z, x1,y1,z1;

float a = fifoin_pop_f();
float b = fifoin_pop_f();
float c = fifoin_pop_f();
float d = fifoin_pop_f();

x1= a-Qx;
y1= b-Qy;
z1= c-Qz;

DST= sqrtf(x1*x1 + y1*y1 + z1*z1);
x1= x1/DST;
y1= y1/DST;
z1= z1/DST;

x= Qx-Lx;
y= Qy-Ly;
z= Qz-Lz;

DST= sqrtf(x*x + y*y + z*z);
x= x/DST;
y= y/DST;
z= z/DST;

//-- dot product: heading * bearing vector
DST = x1*x + y1*y + z1*z;

if((a+b+c) != 0 && d>35 && d<62 && DST < 0.5)
DST= -1; else DST= 1;

fifoout_push_f(DST);
next_fn();
}


Not knowing better I hack out current (Qx,Qy,Qz) and previous (Lx,Ly,Lz) own ship coordinates from function f14. In function f15_swa, dot product of own heading vector and bearing vector to the object currently evaluated will give us a number from -1 to 1, where -1 means the object is directly behind, 1 means it is directly in front, and 0.5 means it is just a little bit outside field of view.

The reason my previous implementation was not working on stage 2 and for some objects on stage 3 is because their coordinates are (0,0,0) which I guess means they are not meant to be processed at all, hence objects are now skipped unless "(a+b+c) != 0".

This implementation is not concerned with culling any geometry, but only to make torpedo target acquisition system release target lock from tie fighters that move out of FOV, hence objects are skipped unless "d>35 && d<62", which is size range or some kind of ID for tie fighters.



3. ../driver/model1.cpp - throttle input

From those two videos and Genesis 32X port of this game it looks like throttle input should be auto-centering at the middle. Since IPT_PEDAL seems unable to do that I redefine it as IPT_AD_STICK_Z:

PORT_BIT( 0xff, 128, IPT_AD_STICK_Z ) PORT_MINMAX(28,228) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_REVERSE







Entire thread
Subject Posted by Posted on
* Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr 03/25/16 01:15 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/20/16 12:08 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Roman  04/20/16 12:55 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/20/16 01:23 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/20/16 04:06 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation SailorSat  06/25/16 09:03 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation John IV  04/20/16 05:24 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/20/16 09:15 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation jonwil  04/08/16 02:23 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation jonwil  04/05/16 01:28 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/05/16 05:15 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation AaronGiles  04/05/16 06:59 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/05/16 02:33 PM
. * May the Force be with you SmitdoggAdministrator  03/30/16 03:27 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/26/16 04:40 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation drewcifer  03/27/16 09:19 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/27/16 02:35 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation gregf  03/27/16 07:55 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  03/28/16 10:31 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/29/16 03:28 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  03/29/16 03:13 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/29/16 06:24 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  03/29/16 06:35 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Osso1  03/29/16 06:43 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/30/16 07:15 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation MooglyGuy  03/30/16 08:28 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/30/16 09:23 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  03/30/16 04:46 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  03/30/16 09:59 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/30/16 12:30 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  03/30/16 03:11 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  03/31/16 12:22 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Traso  04/07/16 05:37 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/02/16 06:52 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/04/16 02:53 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  04/04/16 05:37 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/04/16 09:26 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/04/16 10:55 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 07:15 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/05/16 10:39 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/06/16 05:57 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/06/16 07:48 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/07/16 11:42 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  04/07/16 05:28 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/07/16 09:04 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/07/16 11:16 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/08/16 06:32 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/08/16 07:05 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/08/16 11:22 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/09/16 12:03 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/10/16 07:50 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  04/11/16 07:45 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/11/16 08:36 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  04/11/16 08:50 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/11/16 10:42 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/15/16 03:50 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/15/16 11:35 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/19/16 07:39 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/20/16 12:49 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Haze  04/20/16 01:00 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/20/16 04:38 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/20/16 09:35 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/20/16 10:20 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/21/16 12:39 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/28/16 10:35 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/28/16 04:26 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation uman  04/29/16 01:12 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation lettuce  05/02/16 04:14 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/10/16 05:29 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation MooglyGuy  05/10/16 05:52 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/10/16 06:07 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Artman99  06/15/16 05:48 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  06/15/16 07:36 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  06/16/16 07:28 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  06/16/16 07:47 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Artman99  06/16/16 02:44 AM
. * Hi Bart Simo *nt* MooglyGuy  06/16/16 06:19 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  06/16/16 05:14 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Artman99  06/16/16 08:24 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation gamez fan  05/11/16 12:28 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation MooglyGuy  05/10/16 06:27 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/10/16 07:01 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/10/16 11:48 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  05/11/16 05:49 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  05/11/16 04:14 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  05/11/16 05:37 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation DarthMarino  05/11/16 02:57 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/11/16 02:18 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Anonymous  05/11/16 01:19 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  05/12/16 04:52 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/14/16 04:10 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Vas Crabb  05/11/16 04:25 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Anonymous  05/11/16 07:16 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Envisaged0ne  05/11/16 06:55 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Anonymous  05/11/16 07:34 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation terminento  05/11/16 08:36 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/22/16 05:16 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation LensLarque  04/15/16 11:47 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/11/16 09:40 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/13/16 07:40 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/13/16 09:33 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/13/16 10:34 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation R. Belmont  04/14/16 05:02 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/14/16 05:57 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation MooglyGuy  04/14/16 01:41 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/14/16 06:22 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Master O  04/14/16 04:44 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ziggy100  04/15/16 10:23 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Master O  04/15/16 11:42 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation joey35car  04/12/16 12:46 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/08/16 12:10 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/08/16 08:17 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/08/16 01:11 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 11:17 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  04/05/16 11:45 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 11:53 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 11:45 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 03:21 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  04/05/16 07:00 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 11:18 AM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Ville Linde  04/05/16 01:23 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  04/05/16 02:46 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation MooglyGuy  04/04/16 03:41 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation Olivier Galibert  03/25/16 02:17 PM
. * Re: Star Wars Arcade (SEGA, 1993): fixing model1 emulation dkongjr  03/25/16 06:18 PM

Extra information Permissions
Moderator:  redk9258, URherenow, Tafoid 
0 registered and 42 anonymous users are browsing this forum.
You cannot start new topics
You cannot reply to topics
HTML is enabled
UBBCode is enabled
Thread views: 14102