Posts for FractalFusion


Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Patashu wrote:
FractalFusion wrote:
I guess somewhere in the past 24 hours is when most sensible people realized that this project had outdone itself. The largest number of viewers at one time was once close to 80K; enjoy it while it lasts, since it's not going back there anymore.
Too early to claim such things, when the effects of time of day, time zones, time of week, etc all have a huge impact on viewer counts rising and declining.
I stand corrected. The streamer did a real good job of going for the best system possible in spite of all the circumstances going on. And somehow the masses ended up getting the Lift Key. Something that I thought would have taken forever.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
And now back to the old system. Mob rule wins again. This is turning into a comedy show. I guess somewhere in the past 24 hours is when most sensible people realized that this project had outdone itself. The largest number of viewers at one time was once close to 80K; enjoy it while it lasts, since it's not going back there anymore.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
IronSlayer wrote:
Warp wrote:
IronSlayer wrote:
Scepheo wrote:
divisable
divisable
You keep using that word...
?
I think Warp means that it is supposed to be "divisible", rather than "divisable".
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Warp wrote:
It's interesting how the "hive mind" works. Everybody was saying that getting Eevee is a bad idea. They go it anyway. Now they are spending countless hours trying to get rid of it... (with too many people sabotaging the plan.)
To add to that, I have followed their progress on-and-off, and I noticed a remarkable deterioration in objective unity after getting the fourth gym badge from Celadon Gym and cutting the trees to escape the gym. Things like getting the Eevee, getting items from the department store, entering Saffron (from either the west or east) vs. going to Lavender, doing the Pokemon Tower in Lavender right away (which they can't even do now since they threw away all their Pokedolls), daycare (which is "guarded" by a dreaded ledge) vs. PC (which may accidentally result in release of Pokemon), etc. "Hive mind" in name only. I mean, it took them hours to get into Celadon Gym, win, and leave, but at least everyone aimed for that objective, and part of the fun was where everyone was mashing buttons trying to get the right inputs to cut trees down. This new plot in comparison seems so directionless. I wish they had been stuck for 10 hours in the "tree garden" in Celadon Gym after beating Erika to drive the tree-cutting ridiculousness home. It would have been funnier that way. Current viewership has dropped to less than 35K, down from about 55K at the time they got the fourth gym badge from Celadon Gym. Edit: Judging from comments on the chat, they just released two Pokemon by accident. This is going to be awesome.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I have a couple movies I did a long time ago using Chimchar. I'll try to dig them up if I can. mkdasher, do you already know how to get Pokemon stats in this game? I've made Lua scripts in the past, but I think they are of no use to you. Edit: Here are the files. The first one with Chimchar does not use Hidden Power (and does not get optimal IVs) and goes up to just past the 8th gym (also, it is not optimized, especially near the end). It requires DeSmuME 0.9.6. The second one with Chimchar uses Hidden Power Fighting 70 and gets optimal IVs, and goes up to just past the 2nd gym. That one requires DeSmuME 0.9.7.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Warp wrote:
Could someone explain to the initiated what it means
Not hard to explain to the initiated. More like we need an explanation for the uninitiated, which most of us are. Anyway, I don't get this topic and I don't see why I should care about this issue.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I'm sure they will eventually beat this game. It's just a matter of how many are left. Since obviously the ability to progress is inversely proportional to the number of users playing this game.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Once execution reaches while true do ... end, it will never leave (unless you use break or something). So the first while true do ... end and everything before it should not be there. It should be more like this:
local buttons = {"Start"} 
local keyinput={} 

while true do 
  r=math.random(1000)
  for key,value in pairs(buttons) do
   if r==1 then
    keyinput[value]=true
   else
    keyinput[value]=false    
   end
  end 
  joypad.set(keyinput) 
  emu.frameadvance() 
end
Note: math.random(n), where n is an integer, returns a random integer from 1 to n.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
void joypad.set(table buttons, int/string controller = null)
"controller" is which controller to set key input. Game Boy requires controller to be null or nil (but for, say, NES, a value of 1 means player 1 and a value of 2 means player 2). "buttons" is a Lua table specifying the key input which to send to the controller. The keys are "A", "B", etc, and their values (true/false) determine whether they are pressed or not. For example, to press start on the Game Boy controller, you would do
local keyinput={}
keyinput["Start"]=true
joypad.set(keyinput,nil)
or alternatively,
local keyinput={}
keyinput.Start=true
joypad.set(keyinput)
The code which does what I think you intend is below:
local buttons = {"A","B","Start","Select","Up","Left","Down","Right"}
local state = {true,false}
local keyinput={}

while true do
  for key,value in pairs(buttons) do
    keyinput[value]=state[math.random(2)]
  end
  joypad.set(keyinput)
  emu.frameadvance()
end
Edit: You also need to check "Allow UDLR" in controllers if you want it to be truly random (enables up+down and left+right).
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I'm currently testing out BizHawk's Lua functions. The function
luatable mainmemory.readbyterange(int address, length)
returns a table with string keys and string values (e.g. if emulator RAM address 0x7AB holds the value 0xCD, then in the returned Lua table, s["7AB"] holds the string value "CD"). However,
void mainmemory.writebyterange(luatable memoryblock)
requires, for input Lua table, integer keys and integer values (e.g. if s[0x7AB] holds the value 0xCD, then in emulator RAM, address 0x7AB will gain the new value of 0xCD). Is this functionality a bug?
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
You can use Lua scripting as well. For a one-time memory poke:
memory.writeword(0xCE600,0xFFFF)
memory.writeword(0xCE602,0xFFFF)
memory.writeword(0x41F74,0x270F)
memory.writeword(0x41F76,0x2403)
Or for fixing value persistently:
while true do
memory.writeword(0xCE600,0xFFFF)
memory.writeword(0xCE602,0xFFFF)
memory.writeword(0x41F74,0x270F)
memory.writeword(0x41F76,0x2403)
emu.frameadvance()
end
Note: memory.writedword is bugged and must not be used (inputted values greater than 0x80000000 will write 0x80000000).
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Could you post your whole script? (You can use pastebin.com if you need).
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I have de-embedded all images from rphaven.org in posts. I have also removed the avatars of the two users who use images from rphaven.org, and sent PMs. Please post here if there are any other problems with Google Chrome giving malware warnings.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
nfq wrote:
it only took 11.5 hours, while Maian SOS took 19 hours.
How much time did you spend making the whole TAS (all levels)?. I can't imagine wanting to spend 10 hours TASing a single level.
nfq wrote:
Rerecords: http://www.youtube.com/watch?v=SiMHTK15Pik&t=0m5s
Haha.
Post subject: Re: Start Problems ( First Time Use =) )
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
ChrillePan wrote:
When i press the B or A Button, then the Emulator press also the other Button ( B, if you press A, and A if you press B ). The same problem for X and Y. Thats quite stressful to play Mega Man X with it :P ( EDIT: Using my XBOX Controller does not have this problem :/ ) Every other Button works well, i see that by looking @ the input display from the emu.
Hm. I see in SNES controller configuration: - X1 X -> P1 Y - X1 Y -> P1 X - X1 A -> P1 B - X1 B -> P1 A Perhaps this might be the problem? I don't know if the key configuration can be changed here. NES and Game Boy controller configuration also have: - X1 A -> P1 B - X1 B -> P1 A Sega Master System controller configuration also has: - X1 B -> P1 B1 - X1 A -> P1 B2 but I don't know if this is correct or not.
ChrillePan wrote:
2. How can i rewind? If I press the rewing button, the game starts over ^^ I just want to try to have another chance by taking mistakes :D
The default rewind key is Shift+R. Ctrl+R is reset (reboot core). It can be changed in Configure Hotkeys.
ChrillePan wrote:
4. How do i disable the white/black "crizzle" screen, if no rom loaded?
There is no option to disable this screen. See also http://tasvideos.org/forum/viewtopic.php?t=13361 .
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Bobo the King wrote:
(2n2 + 3n + 1)/6. How interesting! The average is always an integer! Who'd've thunk it!?
What? No. The sum is always an integer. Doesn't mean the average is.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Hm. I only get the warning if I try to visit rphaven.org (such as, view the avatar in its own window or something). If I merely look at the tasvideos.org page with the rphaven.org embed, I don't get a warning. Which version of Google Chrome are you using? I'm using "Version 32.0.1700.107 m". Edit: Never mind. I do get the warning now. Edit 2: Also, there are at least two users with avatars from rphaven.org.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Could someone give me an example of a page on tasvideos.org for which Google Chrome gives the malware warning? I've tried going over pages on tasvideos.org with embeds from rphaven.org, but I don't get the warning.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
The only other memory domains with size not a multiple of 16 that I know of are: N64 PI Register (says 0x34 addresses, displays 0x00-0x2F). N64 VI Register (says 0x3C addresses, displays 0x00-0x2F). N64 AI Register (says 0x28 addresses, displays 0x00-0x1F). I also found another bug. While Hex Editor is open, if File -> Close ROM is selected, then the following error is displayed:
************** Exception Text **************
System.ArgumentOutOfRangeException: Value of '0' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'.
Parameter name: Value
   at System.Windows.Forms.ScrollBar.set_Value(Int32 value)
   at BizHawk.Client.EmuHawk.HexEditor.ResetScrollBar()
   at BizHawk.Client.EmuHawk.HexEditor.SetMemoryDomain(Int32 pos)
   at BizHawk.Client.EmuHawk.HexEditor.SetMemoryDomainMenu()
   at BizHawk.Client.EmuHawk.HexEditor.Restart()
   at BizHawk.Client.EmuHawk.ToolManager.<Restart>b__a(IToolForm x)
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at BizHawk.Client.EmuHawk.ToolManager.Restart()
   at BizHawk.Client.EmuHawk.MainForm.CloseRom(Boolean clearSram)
   at BizHawk.Client.EmuHawk.MainForm.CloseRomMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
If the emulator used NES, SNES, or N64 and was unpaused at the time this happens, then the emulator will also crash. If it does not crash, then additional bugs may occur upon loading a new ROM: After clicking the up arrow on the scrollbar or otherwise dragging the scroll bar down, then up to the top, then either the address "FFFFFF0" appears at the top, or else another error is thrown, at least in the case of N64:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at BizHawk.Client.EmuHawk.HexEditor.<SetMemoryDomain>b__a(Int32 i)
   at BizHawk.Client.EmuHawk.HexEditor.MakeValue(Int32 address)
   at BizHawk.Client.EmuHawk.HexEditor.GenerateMemoryViewString()
   at BizHawk.Client.EmuHawk.HexEditor.UpdateValues()
   at BizHawk.Client.EmuHawk.HexEditor.HexScrollBar_ValueChanged(Object sender, EventArgs e)
   at System.Windows.Forms.ScrollBar.OnValueChanged(EventArgs e)
   at System.Windows.Forms.ScrollBar.set_Value(Int32 value)
   at System.Windows.Forms.ScrollBar.DoScroll(ScrollEventType type)
   at System.Windows.Forms.ScrollBar.WmReflectScroll(Message& m)
   at System.Windows.Forms.ScrollBar.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I'm currently investigating what to do.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Tseralith wrote:
About the encoding, is the sound encoded in 48000 Hz or in 44100 Hz? I forgot to mention I've been playing the game with the default 44100 Hz sound format, so encoding it in 48000 Hz will eventually cause the sound to desynch (if this really is the problem that is). I've done that mistake as well earlier and all those encodes had their audio desynch near the end.
The downloadables have sound at 48000 Hz. I cannot tell the sound rate of the original encodes that were uploaded to Youtube.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I think I found a couple more bugs in Hex Editor. - When typing letters A-F to poke memory addresses in the Hex Editor, it instead comes out as 1-6 (e.g. "BC" -> 0x23). Furthermore, typing G,H,I give 7,8,9 respectively, and typing J gives an error:
************** Exception Text **************
System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Byte.Parse(String s, NumberStyles style, NumberFormatInfo info)
   at System.Byte.Parse(String s, NumberStyles style)
   at BizHawk.Client.EmuHawk.HexEditor.HexEditor_KeyPress(Object sender, KeyPressEventArgs e)
   at System.Windows.Forms.Control.OnKeyPress(KeyPressEventArgs e)
   at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
   at System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
- When a GB game is loaded (in my case, Pokemon Yellow), then in Hex Editor, when selecting HRAM memory domain (Options -> Memory Domains -> HRAM), it says that there are "0x7F addresses", but only 0x70 addresses are listed below (0x00-0x6F). Neither of these bugs were in BizHawk 1.5.3.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
For me, both the MP4 Compatibility archive.org link and the Youtube video seem to have a little audio/video desync near the end. It is more obvious during the "Arctic Thunder" phase of the final boss, and the ending cutscene. Edit: 40.018fps video seems to give a better sync than 40.00fps.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
What I was saying was that, since different emulators handle core functions (e.g. resets, savestates, etc.) in different ways, it is likely to cause divergence in Lua functionality (this might even be the only suitable option). For example, if emulator X handles savestates in one way, and emulator Y handles savestates in a very different way, then likely savestate.load version X will handle differently compared to savestate.load version Y. It is possible though that there are some needless Lua inconsistencies, but that has been mostly because emulators are independent, and so it is easy to write independent Lua systems for each of them (this is where inconsistency happens).