summaryrefslogtreecommitdiff
path: root/emulators/gens/patches/patch-aq
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/gens/patches/patch-aq')
-rw-r--r--emulators/gens/patches/patch-aq112
1 files changed, 112 insertions, 0 deletions
diff --git a/emulators/gens/patches/patch-aq b/emulators/gens/patches/patch-aq
new file mode 100644
index 00000000000..36597893820
--- /dev/null
+++ b/emulators/gens/patches/patch-aq
@@ -0,0 +1,112 @@
+$NetBSD: patch-aq,v 1.1 2004/08/15 12:13:53 dillo Exp $
+
+--- src/gens/sdllayer/g_sdldraw.c.orig 2004-08-15 11:46:04.000000000 +0200
++++ src/gens/sdllayer/g_sdldraw.c
+@@ -462,7 +462,11 @@ Update_Emulation (void)
+ Write_Sound_Buffer (NULL);
+ }
+
+- Update_Controllers ();
++ if (MoviePlaying)
++ MoviePlayingStuff();
++ else
++ Update_Controllers();
++ FrameCount++;
+
+ if (Frame_Number++ < Frame_Skip)
+ {
+@@ -487,7 +491,12 @@ Update_Emulation (void)
+ //{
+ Write_Sound_Buffer (NULL);
+ //WP = (WP + 1) & (Sound_Segs - 1);
+- Update_Controllers ();
++ if (MoviePlaying)
++ MoviePlayingStuff();
++ else
++ Update_Controllers();
++ FrameCount++;
++
+
+ //if (WP != RP)
+ //{
+@@ -518,13 +527,21 @@ Update_Emulation (void)
+
+ for (; Frame_Number > 1; Frame_Number--)
+ {
+- Update_Controllers ();
++ if (MoviePlaying)
++ MoviePlayingStuff();
++ else
++ Update_Controllers();
++ FrameCount++;
+ Update_Frame_Fast ();
+ }
+
+ if (Frame_Number)
+ {
+- Update_Controllers ();
++ if (MoviePlaying)
++ MoviePlayingStuff();
++ else
++ Update_Controllers();
++ FrameCount++;
+ Update_Frame ();
+ Flip ();
+ }
+@@ -540,7 +557,12 @@ Update_Emulation (void)
+ int
+ Update_Emulation_One (void)
+ {
+- Update_Controllers ();
++ if (MoviePlaying)
++ MoviePlayingStuff();
++ else
++ Update_Controllers();
++ FrameCount++;
++
+ Update_Frame ();
+ Flip ();
+
+@@ -686,3 +708,42 @@ Take_Shot ()
+ surface->h, surface->w * 2);
+ return 0;
+ }
++
++void
++MoviePlayingStuff()
++{
++ char PadData[3]; //Modif
++
++ if(FrameCount >= MovieLastFrame)
++ {
++ MoviePlaying=0;
++ sprintf(Str_Tmp, "Movie finished", Current_State);
++ Put_Info(Str_Tmp, 2000);
++ return;
++ }
++ ReadInMovie(FrameCount,&PadData[0],&PadData[1],&PadData[2]);
++ Controller_1_Up=(PadData[0]&1);
++ Controller_1_Down=(PadData[0]&2)>>1;
++ Controller_1_Left=(PadData[0]&4)>>2;
++ Controller_1_Right=(PadData[0]&8)>>3;
++ Controller_1_A=(PadData[0]&16)>>4;
++ Controller_1_B=(PadData[0]&32)>>5;
++ Controller_1_C=(PadData[0]&64)>>6;
++ Controller_1_Start=(PadData[0]&128)>>7;
++ Controller_2_Up=(PadData[1]&1);
++ Controller_2_Down=(PadData[1]&2)>>1;
++ Controller_2_Left=(PadData[1]&4)>>2;
++ Controller_2_Right=(PadData[1]&8)>>3;
++ Controller_2_A=(PadData[1]&16)>>4;
++ Controller_2_B=(PadData[1]&32)>>5;
++ Controller_2_C=(PadData[1]&64)>>6;
++ Controller_2_Start=(PadData[1]&128)>>7;
++ Controller_1_X=(PadData[2]&1);
++ Controller_1_Y=(PadData[2]&2)>>1;
++ Controller_1_Z=(PadData[2]&4)>>2;
++ Controller_1_Mode=(PadData[2]&8)>>3;
++ Controller_2_X=(PadData[2]&16)>>4;
++ Controller_2_Y=(PadData[2]&32)>>5;
++ Controller_2_Z=(PadData[2]&64)>>6;
++ Controller_2_Mode=(PadData[2]&128)>>7;
++}