Skip to content

Commit

Permalink
Merge pull request #21 from SM64-STROOP/Development
Browse files Browse the repository at this point in the history
STROOP 0.3.0
  • Loading branch information
danebou authored Dec 11, 2017
2 parents bd25e29 + eff9329 commit 378e0ef
Show file tree
Hide file tree
Showing 391 changed files with 131,091 additions and 9,143 deletions.
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@
# STROOP
*SuperMario64 Technical Run-time Observer and Object Processor*
*SuperMario64 Technical Runtime Observer and Object Processor*

STROOP is a overly complicated diagnostic tool for Super Mario 64 which allows for complicated mario stuff and manipulation.
STROOP is a diagnostic tool for Super Mario 64 which displays and allows for simple editing of various game values and information. It can connect to a running emulator and update values in real time. Some core features include viewing of loaded/unloaded objects, Mario structure variables, camera + HUD values, an overhead map display, and many more.

*(...I'll rewrite this description later - Dane)*
*(...I finally rewrote this description... later - Dane)*

## Downloading Stroop

The latest release of Stroop can be downloaded from our [Releases Page](https://github.com/SM64-STROOP/STROOP/releases). From here .zip files of recent builds can be found. The files can then be extracted and Stroop.exe can be opened.

Latest development builds with the newest features, bug fixes (...I mean bug introductions) can be found on the [Development Branch](https://github.com/SM64-STROOP/STROOP/tree/Development). Likewise, Stroop.exe can be found under (Windows Build) and ran.

## Requirements

As if the current build, Stroop has the following system requirements:
* Windows 10 / Windows 8 / Windows 7 / Windows Vista 64-bit or 32-bit
* OpenGL 3.0 or greater (requirement for map tab only)
* .NET Framework 4.6 (See [.NET Framework System Requirements](https://msdn.microsoft.com/en-us/library/8z6watww(v=vs.110).aspx) for more information)
* [Mupen 0.5 rerecording](http://adelikat.tasvideos.org/emulatordownloads/mupen64-rr/Mupen64%20v8%20installer.zip) (0.5.1 will not work)
* Windows 10 / Windows 8.1 / Windows 7 64-bit or 32-bit
* OpenGL 3.0 or greater (3.0 requirement for map tab, 1.0 requirement for model tab only)
* .NET Framework 4.7 (See [.NET Framework System Requirements](https://msdn.microsoft.com/en-us/library/8z6watww(v=vs.110).aspx) for more information)
* [Mupen 0.5 rerecording](http://adelikat.tasvideos.org/emulatordownloads/mupen64-rr/Mupen64%20v8%20installer.zip) (0.5.1 will not work) (Bizhawk + Nemu partially supported on Development branch)
* 64 Marios (Must be super)
* Marios must be American (No PAL or JAP just yet)
* Marios must be American, Japanese or PAL

## Status

Stroop is currently under a development phase, however, pre-releases have been made. Current priorities include various new features and high-priority bug fixes. Prior Release 1.0, minor bug fixes will be addressed, and after code cleanlup will be focused on.
Stroop is currently under a development phase, however, pre-releases have been made. Current priorities include various new features and high-priority bug fixes. Prior Release 1.0, minor bug fixes will be addressed, and after code cleanup will be focused on.

## Building

Requirements:
* Visual Studio *(2015 recommended)*
* Visual Studio *(2017 recommended)*
* OpenTK 1.1 *(Version 1.1.1589.5942 used, others may work)*

Before building Stroop, OpenTK is a prerequisite. This is easiest installed by using the NuGet package manager. Stroop can be easily build from the source code by opening up the solution file in Visual Studio and performing a build.
10 changes: 8 additions & 2 deletions Source/SM64 Diagnostic.sln
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
# Visual Studio 15
VisualStudioVersion = 15.0.26228.9
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM64 Diagnostic", "SM64 Diagnostic\SM64 Diagnostic.csproj", "{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Windows Build|Any CPU = Windows Build|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}.Release|Any CPU.Build.0 = Release|Any CPU
{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}.Windows Build|Any CPU.ActiveCfg = Windows Build|Any CPU
{D309A4ED-54AF-4BC7-83CA-BCD38543AEB3}.Windows Build|Any CPU.Build.0 = Windows Build|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(Performance) = preSolution
HasPerformanceSessions = true
EndGlobalSection
EndGlobal
2 changes: 1 addition & 1 deletion Source/SM64 Diagnostic/App.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
</configuration>
44 changes: 44 additions & 0 deletions Source/SM64 Diagnostic/Config/ActionsData.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<ActionsData>
<Data type="uint" address="0x0C" offset="Mario" useHex="true">Action</Data>
<Data offset="Special" specialType="ActionDescription">Action Description</Data>
<Data type="uint" address="0x10" offset="Mario" useHex="true">Previous Action</Data>
<Data offset="Special" specialType="PrevActionDescription">Prev. Action Desc.</Data>
<Data type="short" address="0x18" offset="Mario">Action Phase</Data>
<Data type="short" address="0x1A" offset="Mario">Action Timer</Data>
<Data type="short" address="0x38" offset="MarioObj">Animation</Data>
<Data offset="Special" specialType="MarioAnimationDescription">Animation Description</Data>
<Data type="short" address="0x40" offset="MarioObj">Animation Timer</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x80000000">b00 throwing?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x40000000">b01 (never)</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x20000000">b02 water stuff?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x10000000">b03 water/twirl?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x08000000">b04 pause exit</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x04000000">b05 ground stuff?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x02000000">b06 jumps?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x01000000">b07 air?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00800000">b08 attacking</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00400000">b09 standing still</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00200000">b10 hanging on ceiling</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00100000">b11 holding pole</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00080000">b12 horizontal</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00040000">b13 sitting/sliding</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00020000">b14 hurt</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00010000">b15 riding shell</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00008000">b16 small hitbox?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00004000">b17 metal</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00002000">b18 water</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00001000">b19 no control</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000800">b20 invincible2?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000400">b21 transitioning?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000200">b22 invincible?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000100">b23 using hands?</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000080">b24</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000040">b25</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000020">b26</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000010">b27</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000008">b28</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000004">b29</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000002">b30</Data>
<Data type="uint" address="0x0C" offset="Mario" isBool="true" mask="0x00000001">b31</Data>
</ActionsData>
15 changes: 15 additions & 0 deletions Source/SM64 Diagnostic/Config/CamHackData.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<CamHackData>
<Data type="int" address="0x00" offset="CamHack">Mode</Data>
<Data type="ushort" address="0x1C" offset="CamHack" isBool="true">Absolute Angle</Data>
<Data type="uint" address="0x28" offset="CamHack" useHex="true" isObject="true">Object to Follow</Data>
<Data type="float" address="0x04" offset="CamHack">Camera X</Data>
<Data type="float" address="0x08" offset="CamHack">Camera Y</Data>
<Data type="float" address="0x0C" offset="CamHack">Camera Z</Data>
<Data type="float" address="0x10" offset="CamHack">Focus X</Data>
<Data type="float" address="0x14" offset="CamHack">Focus Y</Data>
<Data type="float" address="0x18" offset="CamHack">Focus Z</Data>
<Data type="float" address="0x20" offset="CamHack">Radius</Data>
<Data type="short" address="0x1E" offset="CamHack" isAngle="true">Theta</Data>
<Data type="float" address="0x24" offset="CamHack">Relative Height</Data>
</CamHackData>
64 changes: 37 additions & 27 deletions Source/SM64 Diagnostic/Config/CameraData.xml
Original file line number Diff line number Diff line change
@@ -1,30 +1,40 @@
<?xml version="1.0" encoding="utf-8" ?>
<CameraData>
<Data type="byte" address="0x00C28106" absoluteAddress="true" isBool="true" mask="0x0004">Mario Cam Possible</Data>
<Data type="byte" address="0x00C28106" absoluteAddress="true" isBool="true" mask="0x0001">Mario Cam</Data>
<Data type="byte" address="0x00C2810E" absoluteAddress="true" isBool="true" mask="0x0020">Fixed Cam</Data>
<Data type="byte" address="0x00C282CA" absoluteAddress="true" isBool="true" mask="0x0002">Far Cam</Data>
<Data type="byte" address="0x00C282CB" absoluteAddress="true" isBool="true" mask="0x0020">Close Cam</Data>
<Data type="float" address="0xc28124" absoluteAddress="true">Camera X</Data>
<Data type="float" address="0xc28128" absoluteAddress="true">Camera Y</Data>
<Data type="float" address="0xc2812c" absoluteAddress="true">Camera Z</Data>
<Data type="float" address="0xc2813c" absoluteAddress="true">Camera Target X</Data>
<Data type="float" address="0xc28140" absoluteAddress="true">Camera Target Y</Data>
<Data type="float" address="0xc28144" absoluteAddress="true">Camera Target Z</Data>
<Data type="ushort" address="0xc28164" absoluteAddress="true" isAngle="true">Camera Yaw</Data>
<Data type="ushort" address="0xc28166" absoluteAddress="true" isAngle="true">Camera Pitch</Data>
<Data type="ushort" address="0xc281fa" absoluteAddress="true" isAngle="true">Fixed Cent Angle</Data>
<Data type="ushort" address="0xc28194" absoluteAddress="true" isAngle="true">Target Cent Angle</Data>
<Data type="ushort" address="0xc28196" absoluteAddress="true" isAngle="true">Cent Angle</Data>
<Data type="float" address="0xc28118" absoluteAddress="true">Focus X</Data>
<Data type="float" address="0xc2811c" absoluteAddress="true">Focus Y</Data>
<Data type="float" address="0xc28120" absoluteAddress="true">Focus Z</Data>
<Data type="float" address="0xc281fc" absoluteAddress="true">Focus Veer Dist</Data>
<Data type="float" address="0xc28160" absoluteAddress="true">Cam Dist from Focus</Data>
<Data type="float" address="0xc28024" absoluteAddress="true">Zoom Dist</Data>
<Data type="short" address="0xc2816e" absoluteAddress="true">Yaw Shake</Data>
<Data type="short" address="0xc28168" absoluteAddress="true">Pitch Shake</Data>
<Data type="short" address="0xc2816c" absoluteAddress="true">Roll Shake</Data>
<Data type="short" address="0xc28156" absoluteAddress="true">Camera Mode</Data>
<Data type="uint" address="0x00C199B0" absoluteAddress="true" useHex="true" isObject="true">Secondary Object</Data>
<Data type="byte" address="0x6D" offset="Camera" isBool="true" mask="0x04">Mario Cam Possible</Data>
<Data type="byte" address="0x6D" offset="Camera" isBool="true" mask="0x01">Mario Cam</Data>
<Data type="byte" address="0x75" offset="Camera" isBool="true" mask="0x20">Fixed Cam</Data>
<Data type="byte" address="0x231" offset="Camera" isBool="true" mask="0x02">Far Cam</Data>
<Data type="byte" address="0x230" offset="Camera" isBool="true" mask="0x20">Close Cam</Data>
<Data type="float" address="0x8C" offset="Camera">Camera X</Data>
<Data type="float" address="0x90" offset="Camera">Camera Y</Data>
<Data type="float" address="0x94" offset="Camera">Camera Z</Data>
<Data type="float" address="0xA4" offset="Camera">Camera Target X</Data>
<Data type="float" address="0xA8" offset="Camera">Camera Target Y</Data>
<Data type="float" address="0xAC" offset="Camera">Camera Target Z</Data>
<Data type="ushort" address="0xCE" offset="Camera" isAngle="true">Camera Yaw</Data>
<Data type="ushort" address="0xCC" offset="Camera" isAngle="true">Camera Pitch</Data>
<Data type="ushort" address="0x160" offset="Camera" isAngle="true">Fixed Cent Angle</Data>
<Data type="ushort" address="0xFE" offset="Camera" isAngle="true">Target Cent Angle</Data>
<Data type="ushort" address="0xFC" offset="Camera" isAngle="true">Cent Angle</Data>
<Data type="float" address="0x80" offset="Camera">Camera Focus X</Data>
<Data type="float" address="0x84" offset="Camera">Camera Focus Y</Data>
<Data type="float" address="0x88" offset="Camera">Camera Focus Z</Data>
<Data type="float" address="0x164" offset="Camera">Focus Veer Dist</Data>
<Data type="float" address="0xC8" offset="Camera">Cam Dist from Focus</Data>
<Data offset="Special" specialType="DistanceToMario">Cam Dist from Mario</Data>
<Data type="float" addressUS="0x8033C5A4" addressJP="0x8033B234" offset="Relative">Zoom Dist</Data>
<Data type="short" address="0xD4" offset="Camera">Yaw Shake</Data>
<Data type="short" address="0x120" offset="Camera">Yaw Shake Speed</Data>
<Data type="short" address="0x122" offset="Camera">Yaw Shake Decrease</Data>
<Data type="short" address="0x11E" offset="Camera">Yaw Shake Osc.</Data>
<Data type="short" address="0xD2" offset="Camera">Pitch Shake</Data>
<Data type="short" address="0xDA" offset="Camera">Pitch Shake Speed</Data>
<Data type="short" address="0xDC" offset="Camera">Pitch Shake Decrease</Data>
<Data type="short" address="0xD8" offset="Camera">Pitch Shake Osc.</Data>
<Data type="short" address="0xD6" offset="Camera">Roll Shake</Data>
<Data type="short" address="0x11A" offset="Camera">Roll Shake Speed</Data>
<Data type="short" address="0x11C" offset="Camera">Roll Shake Decrease</Data>
<Data type="short" address="0x118" offset="Camera">Roll Shake Osc.</Data>
<Data type="short" address="0xBC" offset="Camera">Camera Mode</Data>
<Data type="uint" addressUS="0x8032DF30" addressJP="0x8032CFD0" offset="Relative" useHex="true" isObject="true">Secondary Object</Data>
</CameraData>
Loading

0 comments on commit 378e0ef

Please sign in to comment.