libertyernie / brawltools

BrawlBox and BrawlLib
http://forums.kc-mm.com/index.php?topic=67847.0
143 stars 31 forks source link

System.OutOfMemoryException when opening large BRSAR files from DDR II and DDR Hottest Party 5 #216

Closed ghost closed 5 years ago

ghost commented 5 years ago

I am not sure if there is a maximum size restriction on opening BRSAR files. Opening BRSAR files from DDR Hottest Party 1 and 2 works OK, but those are 210-211MB. DDR II and Hottest Party 5 have a 990MB BRSAR file. BrawlBox crashes when attempting to open these larger BRSAR files with the attached stack trace.

outofmemory

I verified I have both physical and virtual memory free and available. Error occurred on a Windows 10 1809 x64 system.

As an FYI, these BRSAR files can be partially extracted using ripping_mama, but it skips a good chunk of files with a message "I don't get it **SKIPPING**". Unfortunately, one of the files I am interested in cannot be extracted.

I also attached the result of using ripping_mama against these BRSAR files, hoping they might shed more light on issue.

rippingmama_result.txt

ghost commented 5 years ago

Footnote: I have not changed the processModel / memoryLimit setting in my machine.config.

libertyernie commented 5 years ago

I wonder if it would be possible to get around this by editing the source code of RWAVNode.OnInitialize, and having it skip every file except the ones you're interested in. Which files are you trying to extract?

ghost commented 5 years ago

@libertyernie I am interested in PLY_VO_NAR/GRP_VO_CHAR/VO_NAR_NAOKI in particular. I was able to workaround this issue and get the needed clip by simply removing the disc from a real Wii system to stop the background music, then re-inserting the disc and hovering over the Naoki character to get the soundbite to play before the music had a chance to be loaded again.

libertyernie commented 5 years ago

BrawlBox (skip most RWAV).zip

Try this version. It'll skip most of the RWAV nodes except for those. Maybe that will help.

ghost commented 5 years ago

BrawlBox (skip most RWAV).zip

Try this version. It'll skip most of the RWAV nodes except for those. Maybe that will help.

Good news: The BRSAR file can now be opened! Bad news: I get the following error when trying to right click > Export DDRHP5_SOUND\VO\NAR\NAOKI. However, I was able to get the needed clip using the workaround mentioned above, so we can close this issue if no further action is possible.

0 78debug

Stack trace:

RSARSoundNode cannot be exported to WAV. at BrawlLib.SSBB.ResourceNodes.RSARSoundNode.Export(String outPath) at BrawlBox.NodeWrappers.GenericWrapper.OnExport(String outPath, Int32 filterIndex) in C:\Users\admin\Documents\Visual Studio 2017\Projects\brawltools\BrawlBox\NodeWrappers\GenericWrapper.cs:line 122 at BrawlBox.NodeWrappers.GenericWrapper.Export() in C:\Users\admin\Documents\Visual Studio 2017\Projects\brawltools\BrawlBox\NodeWrappers\GenericWrapper.cs:line 118 at BrawlBox.NodeWrappers.GenericWrapper.ExportAction(Object sender, EventArgs e) in C:\Users\admin\Documents\Visual Studio 2017\Projects\brawltools\BrawlBox\NodeWrappers\GenericWrapper.cs:line 31 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)

ghost commented 5 years ago

Here is a link to the BRSAR file (Konami will sue, etc.): https://www.dropbox.com/s/b3nqnq42s7s7xu4/DDRHP5_SOUND.zip?dl=0

libertyernie commented 5 years ago

Got it, thanks. I'll take a look.

libertyernie commented 5 years ago

No luck - I get an out of memory error even trying to open the file on my computer. Maybe if BrawlBox had been written for 64-bit Windows it might have worked, but oh well :/