Posts for upthorn


upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Chamale wrote:
Aren't those his own albums?
Way to miss the joke :(
How fleeting are all human passions compared with the massive continuity of ducks.
Post subject: Re: Tasvideos blocked! But why? Read on to find out!
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Cardboard wrote:
Wait, what copyrighted material has JXQ been sharing?
Well he keeps linking to some site where you can download the mp3s from some albums called "my voice" and "my words". This is clearly a flagrant violation of copyright.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
N. Harmonik wrote:
Oh. Boy, I feel stupid. And yet, I'll bet there's still improvements to found somewhere in this run. (singsong voice) Oh Nitsuja...!
I've found improvements in Nitsuja's run. (Read the submission thread) Though, my Ice Cap can probably be tightened up a bit.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Warp wrote:
Given that the new one is not worse than the existing one, I see no reason to not to replace it.
Consider that encoding a video for this site takes a minimum of something like three times the length of the movie. Consider that the end result of this would probably be less than 1% different from what we already have on the site. And most people who download it probably wouldn't watch it. (Note that I am not even factoring in the work it takes to make a torrent and publish the movie, because I don't know what all that involves)
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Sir VG wrote:
I, however, think this is a notable game, it's not very long, and enough variety to keep things from getting too dull.
If by variety, you mean "the palette changes a few times" then it is true that the game has variety. All other variety that the game has is negated by the constant usage of the drive offroad trick causing the shape of the track not even to factor in. And although the turns of the track being respected would probably help a little bit, it still probably wouldn't be enough to make me actually enjoy watching the movie.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Weatherton wrote:
Note: sorry if I sound agitated but I really did invest a ridiculous amount of work into this run. Total re-records was likely 30,000+ (possibly way more) and the submitted run uses so few because I started over after determining the optimal path and did a lot of testing on separate movie files.
Movies with higher rerecord counts than that have been rejected before. And this game is a case where no matter how many rerecords you spend, it's, unfortunately, going to be very boring.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Warp wrote:
upthorn wrote:
Pokemon is boring to watch.
It may be boring to watch for someone who hasn't played the game.
I have played this game, as well as a couple of the other pokemons. That is why I bothered to try to watch the first published runs. I was unable to watch pokemon for more than 10 minutes. The games are entertaining to play. Not watch.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
I have got this done. Here is the source diff
diff -rdu c:\Share\old\snes9xw-improvement9-src/resource.h c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/resource.h
--- c:\Share\old\snes9xw-improvement9-src/resource.h	2006-02-12 01:10:00.000000000 -0800
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/resource.h	2007-07-13 15:33:37.859375000 -0700
@@ -483,7 +483,14 @@
 #define ID_TURBO_UP                     40125
 #define ID_TURBO_RIGHT                  40126
 #define ID_TURBO_DOWN                   40127
-
+#define ID_SOUND_TOGGLECHANNEL0			40200
+#define ID_SOUND_TOGGLECHANNEL1			40201
+#define ID_SOUND_TOGGLECHANNEL2			40202
+#define ID_SOUND_TOGGLECHANNEL3			40203
+#define ID_SOUND_TOGGLECHANNEL4			40204
+#define ID_SOUND_TOGGLECHANNEL5			40205
+#define ID_SOUND_TOGGLECHANNEL6			40206
+#define ID_SOUND_TOGGLECHANNEL7			40207
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
diff -rdu c:\Share\old\snes9xw-improvement9-src/snes9x/gfx.cpp c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/gfx.cpp
--- c:\Share\old\snes9xw-improvement9-src/snes9x/gfx.cpp	2006-02-12 14:52:04.000000000 -0800
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/gfx.cpp	2007-03-08 10:10:49.093000000 -0800
@@ -3608,7 +3608,7 @@
 			{
 				int j = KeyOrder[i];
 				int mask = (1 << (j+1));
-				string[strlen("P?: ")+i]= ((IPPU.Joypads[J] & mask)!=0 || (IPPU.Joypads[J+5] & mask)!=0) ? KeyMap[j] : ' ';
+				string[strlen("P?: ")+i]= ((IPPU.Joypads[J] & mask)!=0) ? KeyMap[j] : ' '; // fix the input display for p4 and p5
 			}
 		    
 			len=strlen(string);
diff -rdu c:\Share\old\snes9xw-improvement9-src/snes9x/globals.cpp c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/globals.cpp
--- c:\Share\old\snes9xw-improvement9-src/snes9x/globals.cpp	2004-07-11 21:50:58.000000000 -0700
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/globals.cpp	2007-07-14 02:51:36.468750000 -0700
@@ -130,6 +130,7 @@
 struct SSA1 SA1;
 
 SSoundData SoundData;
+bool8 ChannelEnabled[NUM_CHANNELS] = {1,1,1,1,1,1,1,1};
 
 SnesModel M1SNES={1,3,2};
 SnesModel M2SNES={2,4,3};
diff -rdu c:\Share\old\snes9xw-improvement9-src/snes9x/snapshot.cpp c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/snapshot.cpp
diff -rdu c:\Share\old\snes9xw-improvement9-src/snes9x/soundux.cpp c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/soundux.cpp
--- c:\Share\old\snes9xw-improvement9-src/snes9x/soundux.cpp	2005-03-09 23:43:54.000000000 -0800
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/soundux.cpp	2007-07-14 03:00:49.281250000 -0700
@@ -1149,11 +1149,15 @@
 		
 		if (pitch_mod & (1 << (J + 1)))
 			wave [I / 2] = ch->sample * ch->envx;
-		
-		MixBuffer [I      ^ Settings.ReverseStereo] += VL;
-		MixBuffer [I + (1 ^ Settings.ReverseStereo)] += VR;
-		ch->echo_buf_ptr [I      ^ Settings.ReverseStereo] += VL;
-		ch->echo_buf_ptr [I + (1 ^ Settings.ReverseStereo)] += VR;
+
+		if (ChannelEnabled[J])
+		{
+			MixBuffer [I      ^ Settings.ReverseStereo] += VL;
+			MixBuffer [I + (1 ^ Settings.ReverseStereo)] += VR;
+
+			ch->echo_buf_ptr [I      ^ Settings.ReverseStereo] += VL;
+			ch->echo_buf_ptr [I + (1 ^ Settings.ReverseStereo)] += VR;
+		}
         }
 stereo_exit: ;
     }
@@ -1437,8 +1441,11 @@
 			}
 		}
 		
-		MixBuffer [I] += V;
-		ch->echo_buf_ptr [I] += V;
+		if (ChannelEnabled[J])
+		{
+			MixBuffer [I] += V;
+			ch->echo_buf_ptr [I] += V;
+		}
 		
 		if (pitch_mod & (1 << (J + 1)))
 			wave [I] = ch->sample * ch->envx;
diff -rdu c:\Share\old\snes9xw-improvement9-src/snes9x/soundux.h c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/soundux.h
--- c:\Share\old\snes9xw-improvement9-src/snes9x/soundux.h	2004-07-11 21:51:00.000000000 -0700
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x/soundux.h	2007-07-14 02:51:36.531250000 -0700
@@ -181,6 +181,7 @@
     uint32 dummy [8];
 //	unsigned short last_valid_header;
 } Channel;
+extern bool8 ChannelEnabled[NUM_CHANNELS];
 
 typedef struct
 {
diff -rdu c:\Share\old\snes9xw-improvement9-src/snes9x.rc c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x.rc
--- c:\Share\old\snes9xw-improvement9-src/snes9x.rc	2006-02-12 01:09:58.000000000 -0800
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/snes9x.rc	2007-07-13 15:47:02.234375000 -0700
@@ -1436,6 +1436,17 @@
             MENUITEM "&320ms",                      ID_SOUND_1S, GRAYED
             MENUITEM "64&0ms",                      ID_SOUND_2S, GRAYED
         END
+        POPUP "&Channels"
+        BEGIN
+            MENUITEM "Channel &0",					ID_SOUND_TOGGLECHANNEL0, CHECKED
+            MENUITEM "Channel &1",					ID_SOUND_TOGGLECHANNEL1, CHECKED
+            MENUITEM "Channel &2",					ID_SOUND_TOGGLECHANNEL2, CHECKED
+            MENUITEM "Channel &3",					ID_SOUND_TOGGLECHANNEL3, CHECKED
+            MENUITEM "Channel &4",					ID_SOUND_TOGGLECHANNEL4, CHECKED
+            MENUITEM "Channel &5",					ID_SOUND_TOGGLECHANNEL5, CHECKED
+            MENUITEM "Channel &6",					ID_SOUND_TOGGLECHANNEL6, CHECKED
+			MENUITEM "Channel &7",					ID_SOUND_TOGGLECHANNEL7, CHECKED
+        END
         MENUITEM "&16-Bit Sound",               ID_SOUND_16BIT
         MENUITEM "&Stereo",                     ID_SOUND_STEREO
         MENUITEM "&Reverse Stereo\tAlt+R",      ID_SOUND_REVERSE_STEREO
diff -rdu c:\Share\old\snes9xw-improvement9-src/wsnes9x.cpp c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/wsnes9x.cpp
--- c:\Share\old\snes9xw-improvement9-src/wsnes9x.cpp	2006-02-12 16:30:28.000000000 -0800
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/wsnes9x.cpp	2007-07-14 03:02:32.265625000 -0700
@@ -113,6 +113,7 @@
 #include "snes9x/movie.h"
 #include "AVIOutput.h"
 #include "InputCustom.h"
+#include "snes9x/soundux.h"
 #include <vector>
 
 #include <TCHAR.H>
@@ -473,6 +474,14 @@
 	 {0,0}, // Select save slot 7
 	 {0,0}, // Select save slot 8
 	 {0,0}}, // Select save slot 9
+	{{0,0}, // Toggle sound channel 0
+	 {0,0}, // Toggle sound channel 1
+	 {0,0}, // Toggle sound channel 2
+	 {0,0}, // Toggle sound channel 3
+	 {0,0}, // Toggle sound channel 4
+	 {0,0}, // Toggle sound channel 5
+	 {0,0}, // Toggle sound channel 6
+	{0,0}}, // Toggle sound channel 7
 };
 
 
@@ -1241,6 +1250,20 @@
 						hitHotKey = true;
 					}
 				}
+				for(int i = 0 ; i < 8 ; i++)
+				{
+					if(wParam == CustomKeys.ToggleSound[i].key && modifiers == CustomKeys.ToggleSound[i].modifiers)
+					{
+						ChannelEnabled[i] =! ChannelEnabled[i];
+
+						static char str [64];
+						sprintf(str, "Sound Channel %d %sabled", i, (ChannelEnabled[i])?"en":"dis");
+						CheckMenuItem(GUI.hMenu, ID_SOUND_TOGGLECHANNEL0 + i, (ChannelEnabled[i])?MFS_CHECKED:MFS_UNCHECKED);
+//						S9xSetInfoString(str);
+
+						hitHotKey = true;
+					}
+				}
 
 				if(wParam == CustomKeys.Transparency.key
 				&& modifiers == CustomKeys.Transparency.modifiers)
@@ -1803,7 +1826,21 @@
             SetupSound (Settings.SoundPlaybackRate, 
 				Settings.SixteenBitSound, Settings.Stereo);
             break;
-			
+		case ID_SOUND_TOGGLECHANNEL0:
+		case ID_SOUND_TOGGLECHANNEL1:
+		case ID_SOUND_TOGGLECHANNEL2:
+		case ID_SOUND_TOGGLECHANNEL3:
+		case ID_SOUND_TOGGLECHANNEL4:
+		case ID_SOUND_TOGGLECHANNEL5:
+		case ID_SOUND_TOGGLECHANNEL6:
+		case ID_SOUND_TOGGLECHANNEL7:
+			ChannelEnabled[wParam - ID_SOUND_TOGGLECHANNEL0] = !ChannelEnabled[wParam - ID_SOUND_TOGGLECHANNEL0];
+			static char str [64];
+			sprintf(str, "Sound Channel %d %sabled", wParam - ID_SOUND_TOGGLECHANNEL0, ((ChannelEnabled[wParam - ID_SOUND_TOGGLECHANNEL0])?"en":"dis"));
+			CheckMenuItem(GUI.hMenu, wParam, (ChannelEnabled[wParam - ID_SOUND_TOGGLECHANNEL0])?MFS_CHECKED:MFS_UNCHECKED);
+//			S9xSetInfoString(str);
+			break;
+
         case ID_SOUND_STEREO:
             Settings.Stereo = !Settings.Stereo;
             SetupSound (Settings.SoundPlaybackRate, 
@@ -8477,6 +8514,10 @@
 		for(int i = 0 ; i < 10 ; i++)
 			SendDlgItemMessage(hDlg,IDC_HOTKEY1+i,WM_USER+44,CustomKeys.SelectSave[i].key,CustomKeys.SelectSave[i].modifiers);
 		break;
+	case 4:
+		for(int i = 0 ; i < 8 ; i++)
+			SendDlgItemMessage(hDlg,IDC_HOTKEY1+i,WM_USER+44,CustomKeys.ToggleSound[i].key,CustomKeys.ToggleSound[i].modifiers);
+		break;
 	}
 
 	SendDlgItemMessage(hDlg,IDC_SLOTPLUS,WM_USER+44,CustomKeys.SlotPlus.key,CustomKeys.SlotPlus.modifiers);
@@ -8548,6 +8589,17 @@
 			SetDlgItemText(hDlg,IDC_LABEL_HK1+i,INPUTCONFIG_LABEL_UNUSED);
 		
 		break;
+	case 4:
+		for(int i = 0 ; i < 8 ; i++)
+		{
+			char temp [128];
+			sprintf(temp, "Toggle Sound %d", i);
+			SetDlgItemText(hDlg,IDC_LABEL_HK1+i,temp);
+		}
+		for(int i = 8 ; i < 13 ; i++)
+			SetDlgItemText(hDlg,IDC_LABEL_HK1+i,INPUTCONFIG_LABEL_UNUSED);
+		
+		break;
 	}
 }
 
@@ -8577,7 +8629,7 @@
 		SetWindowText(hDlg,HOTKEYS_TITLE);
 
 		// insert hotkey page list items
-		for(i=1 ; i <= 4 ; i++)
+		for(i=1 ; i <= 5 ; i++)
 		{
 			char temp[256];
 			sprintf(temp,HOTKEYS_HKCOMBO,i);
@@ -8633,48 +8685,56 @@
 			if(index == 1) CustomKeys.BGL1.key = wParam,    CustomKeys.BGL1.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboA.key = wParam,    CustomKeys.TurboA.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[0].key = wParam,	CustomKeys.SelectSave[0].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[0].key = wParam,	CustomKeys.ToggleSound[0].modifiers = modifiers;	
 			break;
 		case IDC_HOTKEY2:
 			if(index == 0) CustomKeys.SpeedDown.key = wParam, CustomKeys.SpeedDown.modifiers = modifiers;
 			if(index == 1) CustomKeys.BGL2.key = wParam,      CustomKeys.BGL2.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboB.key = wParam,    CustomKeys.TurboB.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[1].key = wParam,	CustomKeys.SelectSave[1].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[1].key = wParam,	CustomKeys.ToggleSound[1].modifiers = modifiers;
 			break;
 		case IDC_HOTKEY3:
 			if(index == 0) CustomKeys.Pause.key = wParam, CustomKeys.Pause.modifiers = modifiers;
 			if(index == 1) CustomKeys.BGL3.key = wParam,  CustomKeys.BGL3.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboY.key = wParam,    CustomKeys.TurboY.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[2].key = wParam,	CustomKeys.SelectSave[2].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[2].key = wParam,	CustomKeys.ToggleSound[2].modifiers = modifiers;	
 			break;
 		case IDC_HOTKEY4:
 			if(index == 0) CustomKeys.FrameAdvance.key = wParam, CustomKeys.FrameAdvance.modifiers = modifiers;
 			if(index == 1) CustomKeys.BGL4.key = wParam,         CustomKeys.BGL4.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboX.key = wParam,    CustomKeys.TurboX.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[3].key = wParam,	CustomKeys.SelectSave[3].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[3].key = wParam,	CustomKeys.ToggleSound[3].modifiers = modifiers;	
 			break;
 		case IDC_HOTKEY5:
 			if(index == 0) CustomKeys.FastForward.key = wParam, CustomKeys.FastForward.modifiers = modifiers;
 			if(index == 1) CustomKeys.BGL5.key = wParam,        CustomKeys.BGL5.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboL.key = wParam,    CustomKeys.TurboL.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[4].key = wParam,	CustomKeys.SelectSave[4].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[4].key = wParam,	CustomKeys.ToggleSound[4].modifiers = modifiers;	
 			break;
 		case IDC_HOTKEY6:
 			if(index == 0) CustomKeys.SkipUp.key = wParam,          CustomKeys.SkipUp.modifiers = modifiers;
 			if(index == 1) CustomKeys.ClippingWindows.key = wParam, CustomKeys.ClippingWindows.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboR.key = wParam,    CustomKeys.TurboR.modifiers = modifiers;
-			if(index == 3) CustomKeys.SelectSave[5].key = wParam,	CustomKeys.SelectSave[5].modifiers = modifiers;	
+			if(index == 3) CustomKeys.SelectSave[5].key = wParam,	CustomKeys.SelectSave[5].modifiers = modifiers;
+			if(index == 4) CustomKeys.ToggleSound[5].key = wParam,	CustomKeys.ToggleSound[5].modifiers = modifiers;	
 			break;
 		case IDC_HOTKEY7:
 			if(index == 0) CustomKeys.SkipDown.key = wParam, CustomKeys.SkipDown.modifiers = modifiers;
 			if(index == 1) CustomKeys.BGLHack.key = wParam,  CustomKeys.BGLHack.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboStart.key = wParam,    CustomKeys.TurboStart.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[6].key = wParam,	CustomKeys.SelectSave[6].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[6].key = wParam,	CustomKeys.ToggleSound[6].modifiers = modifiers;	
 			break;
 		case IDC_HOTKEY8:
 			if(index == 0) CustomKeys.ScopeTurbo.key = wParam,  CustomKeys.ScopeTurbo.modifiers = modifiers;
 			if(index == 1) CustomKeys.Transparency.key = wParam, CustomKeys.Transparency.modifiers = modifiers;
 			if(index == 2) CustomKeys.TurboSelect.key = wParam,    CustomKeys.TurboSelect.modifiers = modifiers;
 			if(index == 3) CustomKeys.SelectSave[7].key = wParam,	CustomKeys.SelectSave[7].modifiers = modifiers;	
+			if(index == 4) CustomKeys.ToggleSound[7].key = wParam,	CustomKeys.ToggleSound[7].modifiers = modifiers;	
 			break;		
 		case IDC_HOTKEY9:
 			if(index == 0) CustomKeys.ScopePause.key = wParam, CustomKeys.ScopePause.modifiers = modifiers;
diff -rdu c:\Share\old\snes9xw-improvement9-src/wsnes9x.h c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/wsnes9x.h
--- c:\Share\old\snes9xw-improvement9-src/wsnes9x.h	2006-02-12 00:39:10.000000000 -0800
+++ c:\Share\snes9xw-improvement9-src\snes9xw-improvement9-src/wsnes9x.h	2007-07-13 15:08:14.734375000 -0700
@@ -270,6 +270,7 @@
 	SCustomKey SwitchControllers;
 	SCustomKey TurboA, TurboB, TurboY, TurboX, TurboL, TurboR, TurboStart, TurboSelect, TurboLeft, TurboUp, TurboRight, TurboDown;
 	SCustomKey SelectSave [10];
+	SCustomKey ToggleSound [8];
 };
 
 struct SJoypad {
And a link to the executables http://jxq.skuzz.com/tas/snes9x-soundmod.zip
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Pokemon is boring to watch. Considering the movie length, this improvement is quite minimal. Certainly not enough to warrant watching pokemon for an hour plus... again. I vote Meh and propose some sort of minimum improvement ratio be determined so that judges and encoders don't have to waste an hour of their life everytime someone shaves another few seconds off pokemon. PS: I would vote No, but I would have to watch this movie first.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Green Grove 1 Green Grove 2 Rusty Ruin 1 Rusty Ruin 2 Spring Stadium 1 Spring Stadium 2 Diamond Dust 1 Diamond Dust 2 Volcano Valley 1 Volcano Valley 2 Gene Gadget 1 Gene Gadget 2 Panic Puppet 1 Panic Puppet 2 Also:
comicalflop wrote:
Would the player coordinates be useful for me to TAS with to know what is pixel-wise faster? I sort of have to work with pixel optimizations without knowing the exact pixel numbers... (for example, Sonic's running speed with speed shoes ranges from 99-103, and I jump and roll to try and preserve the 103 speed as much as possible, which doesn't seem to save frames in short distances.)
Player X position (or position on the \ axis): FFC1EC (4 bytes unsigned) Player Y position (or position on the | axis): FFC1F0 (4 bytes unsigned) Player Z position (or position on the / axis): FFC1F4 (4 bytes unsigned) Player X Display position (or display position on the - axis): FFC21E (2 bytes unsigned) Player Y Display position (or display position on the | axis): FFC220 (2 bytes unsigned)
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
JarrardKO wrote:
Eminem is the only talented commercialized rapper who doesn't rap about bling and hoes.
Rappers who have talent are never commercialized. Because rappers with talent sound different from what the record companies know will sell. And record companies don't take many risks like that these days.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
The run is very fast, and looks pretty optimized, I guess. But I really don't think this game is good TAS material. At all. Voting no, for the game. Clarification: Watching the background scroll at a constant rate, and a car move from side to side at the bottom of the screen is not entertaining no matter how fast the background is scrolling, or how much the car moves from side to side. There is nothing that can be done that could make this game worth watching.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
OgreSlayeR wrote:
I just started over on the newest version dega and beat the mummy dragon boss. Grab the movie Here. I improved a few minor things and I got the exact amount of coins I needed instead of getting extra that I won't need. One thing I know for sure is that the boomerang(s) is essential for a TAS if want to kill things while still moving. Also taking damage is a no no as it just slows you down. It seems to only be useful so far for getting knocked up which seems only useful in the falling block platform part in the intro stage.
Just watched this run. It syncs correctly for me, but I have a couple of questions about possible time savers 1) I'm pretty sure I defeated the mummy dragon faster, in real time, on my first (successful) try. The trick is to get arrows (an attack spell that flies straight up) so you can hit him when he's too high for you to jump and hit him. I believe they also do more than 4 damage each. I know that the drops in this game can be manipulated, have you tried seeing if you can make them drop arrows? Also, wouldn't it be faster to collect some of the gold you need from enemy drops, instead of waiting for all that time after defeating the Mekadragon?
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Map hack is progressing, but is encountering minor technical difficulties. As you can see... The problem is, player position seems to factor into its decisions on what graphics to load for the camera. The other problem is that Camera operates on standard X Y axes, but player coordinates operate on 45 degree rotated XZ and ZX axes. Basically, Camera coordinates are relative to a cross in the shape of a + and player coordinates are relative to a cross in the shape of an X So fixing it so the player moves with the camera, in order to make it load the correct graphics, is not very easy.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
moozooh wrote:
I have an idea. Upthorn and Nitsuja have been making custom mods of Gens for various purposes (having something to do with Sonic for the most part, though that's unrelated). So why not include all the additions and modifications into the main package?
Actually I have something two steps better planned, as I explained to you on IRC. But I'm refraining from making a public announcement until I'm sure I know how to do it.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Bock wrote:
moozooh: It's not much of a problem about the file format - of course, I intend to add some kind of versionning and extension possibility to it. The problem is about subtle emulation change that could affect playback. I know that some non-determinism code in the emulation of certain inputs (analog paddle control, sports pad, etc.) would certainly affect playback. Not mentionning switching Z80 core as I plan to, and a single opcode emulation change might affect playback (not in all cases).
Bock, there have been upgrades to snes9x's emulation core which break movie sync on multiple occasions, including a large on just recently, so that should not be a huge concern. TASers tend to update their emulators every few months in order to keep current. Additionally, it is likely that the standard SMS 2 button pad is the only control that most TASers will ever use.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Rridgway. You seem to have failed to understand that this thread is for reasons people actually use at this site. Not for jokes.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
in #nesvideos on July 04.
[17:46:39] <Bisqwit> Time to delete >600 users
[17:47:13] <Soulrivers> Bisqwit what are those users?
[17:47:14] <Bisqwit> First, a database backup
[17:47:28] <Bisqwit> Soulrivers: Users who have never posted a post, rated any movie, etc
[17:47:36] <Soulrivers> ok
[17:48:08] <Raiscan> is this past a certain date?
[17:49:10] <Bisqwit> Yes
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
DDRKhat wrote:
upthorn wrote:
DDRKhat wrote:
0:14 I notice a little loss of speed on it. As for your special stage, your route is shorter but mine (when done right) is faster to get into the Emerald.
I am not sure what you mean about speed loss at 0:14. I might not be totally optimal in how I do it, but I'm reasonably sure that strategy of using the motobug to stop and do a spindash is good.
Before that you do several thwaps and do not go anywhere, you do not sound to get any speed from doing it, where as sticking to the floor would be faster. Run along into rings, use light-dash, go up the hill and at the last frame, jump through the motorbug and thwap. ("Thwap" being the air-attack, titled "Thwap" from what it sounds like)
Airdash speed: 10 pixels per frame Spindash speed: 12 pixels per frame The spindash takes longer, but the extra speed is necessary in order to make the jump earlier, where I do.
ddrkhat wrote:
upthorn wrote:
For special stage one, your route might be faster, I'm not sure, because I haven't timed how long it takes those diamond things to lose one hp. Though I suppose I could just compare the special stage demos to each other and see which of the two routes is fastest.
That wouldn't quite be smart as my route wasn't done optimally, you would have to sit and master my route to get a fair comparison, I admit on the 2nd special stage your route was faster.
I mean the demos. Like, the "don't touch anything for 60 seconds and a demo starts" demos. There's a different set for each character, but all three of the special stage demos complete the first one.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
DDRKhat wrote:
0:14 I notice a little loss of speed on it. As for your special stage, your route is shorter but mine (when done right) is faster to get into the Emerald. As for that GENs version, looks sexy, could I get a sneak-peek at that? I wanna give the current Megamix a better temporary TAS if you wouldn't mind? Also is there any tips you can suggest for doing TASes? like how to spot exploits etc? You guys seem to do it easily and I have no idea how you find these exploits so well.
I am not sure what you mean about speed loss at 0:14. I might not be totally optimal in how I do it, but I'm reasonably sure that strategy of using the motobug to stop and do a spindash is good. For special stage one, your route might be faster, I'm not sure, because I haven't timed how long it takes those diamond things to lose one hp. Though I suppose I could just compare the special stage demos to each other and see which of the two routes is fastest. I probably won't be releasing the gens version, more because of perfectionism than anything else -- it works well enough for me to use, but I would feel guilty about releasing it publically in its current state.
r0xm2n wrote:
I'm surprised the Midair speed dash wasn't used more, I though the SuperPeelOut would be useless for a tas (obviously not!!). But then, why was the spindash used in other spots? Also, I thought when having the speedshoes powerup, using the midair speeddash would be faster in gaining lost momentum as opposed to stopping for a superpeelout.
Here's a list of values that might help you understand why I did what I did.
  • normal acceleration: 3/64ths pixels per frame per frame
  • Speed-shoe acceleration: 3/16ths pixels per frame per frame
  • normal top speed: 6 pixels per frame
  • Speed-shoe top speed: 12 pixels per frame
  • Airdash speed: 10 pixels per frame (note, this is not a boost, but a constant speed)
  • Perfect Spindash speed: 12 pixels per frame
  • Super peel out speed: 12 pixels per frame
  • Super peel out speed with super shoes: 16 pixels per frame
  • Super peel out charge time: ~18 frames
So basically, while you are correct that it would be to use airdash to regain lost momentum, as compared to stopping and charging a super peel out, I would be stuck at 12 pixels per frame max, instead of 16. Though you are correct that I probably do not use peel out optimally in that video, at least for as far as act 1.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
I suppose I didn't document multi-track recording very well. the hotkeys are listed in Gens_9.5_QuickRef.txt and here, for your convenience:
  • "Ctrl-Shift-0", Record all players
  • "Ctrl-Shift-1", Record Player 1 only
  • "Ctrl-Shift-2", Record Player 2 only
  • "Ctrl-Shift-3", Record Player 3 only
  • "Ctrl-Shift-4", Record Players 1 and 2
  • "Ctrl-Shift-5", Record Players 1 and 3
  • "Ctrl-Shift-6", Record Players 2 and 3
To use it, make a savestate before a segment you plan to record, then hit the hotkey which records the player you wish. When you are done recording that player, hit the hotkey for one of the other players, and reload the savestate. Note: I have, as yet, been unable to test multitrack recording extensively, so let me know how it works (or fails) for you.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
[post was a reply to a bug report which has been redacted]
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
IMPblackbelt wrote:
Woah. Found some sort of wierd glitch at the start of Misty Maze act 3. That first really long slide at the top of the level, if you continue to hold down after you're about to land on the ground, you'll pretty much warp through the ground and be able clip through the floor. Maybe someone can see if they can manipulate this?
That can actually be done easily in real time. Part of the reason the current release is far from finished.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Bisqwit wrote:
upthorn wrote:
Warp wrote:
http://warp.povusers.org/snaps/desktop.jpg
Warp that is a screenshot of your browser, not your desktop. Please try again.
It's quite valid a desktop screenshot...
What I am getting at is that desktop screenshots are supposed to have most applications closed minimized, so that the desktop is visible, even if the desktop behind them is boring. But that is the distinguishing feature of what makes them desktop screenshots, as opposed to browser, IRC, or other application screenshots.
How fleeting are all human passions compared with the massive continuity of ducks.
upthorn
He/Him
Emulator Coder, Experienced Forum User, Published Author, Active player (388)
Joined: 3/24/2006
Posts: 1802
Since I noticed that there is a gmv linked from the first post now, I have done this video to demonstrate what a proper TAS of the first zone, with the same goals and preferences, might look like. http://www.youtube.com/watch?v=TWawwJDUAOg ( GMV here, for dialup users or people who just don't like youtube) Might, but probably wouldn't, since I was still somewhat sloppy, and didn't explore other possible routes much. Also, for those of you who are having desyncs (which is probably most of you), it is because the GMV linked in the first post, and the GMV linked here, too) require the camera scrolling to be set to "extended" in preferences.
How fleeting are all human passions compared with the massive continuity of ducks.