├── .gitignore
├── README.md
├── SuperTileMapper
├── .vs
│ └── SuperTileMapper
│ │ └── v14
│ │ └── .suo
├── SuperTileMapper.sln
└── SuperTileMapper
│ ├── About.Designer.cs
│ ├── About.cs
│ ├── About.resx
│ ├── App.config
│ ├── Be.Windows.Forms.HexBox
│ ├── AssemblyInfo.cs
│ ├── Be.Windows.Forms.HexBox.csproj
│ ├── BuiltInContextMenu.cs
│ ├── ByteCharConverters.cs
│ ├── ByteCollection.cs
│ ├── BytePositionInfo.cs
│ ├── DataBlock.cs
│ ├── DataMap.cs
│ ├── DynamicByteProvider.cs
│ ├── DynamicFileByteProvider.cs
│ ├── FileByteProvider.cs
│ ├── FileDataBlock.cs
│ ├── FindOptions.cs
│ ├── HexBox.bmp
│ ├── HexBox.cs
│ ├── HexBox.resx
│ ├── HexBox.snk
│ ├── HexCasing.cs
│ ├── IByteProvider.cs
│ ├── MemoryDataBlock.cs
│ ├── NativeMethods.cs
│ ├── Properties
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ └── Util.cs
│ ├── CGRAMEditor.Designer.cs
│ ├── CGRAMEditor.cs
│ ├── CGRAMEditor.resx
│ ├── Data.cs
│ ├── Emulator.cs
│ ├── ExportData.Designer.cs
│ ├── ExportData.cs
│ ├── ExportData.resx
│ ├── ImportData.Designer.cs
│ ├── ImportData.cs
│ ├── ImportData.resx
│ ├── OAMEditor.Designer.cs
│ ├── OAMEditor.cs
│ ├── OAMEditor.resx
│ ├── OBJEditor.Designer.cs
│ ├── OBJEditor.cs
│ ├── OBJEditor.resx
│ ├── PPURegEditor.Designer.cs
│ ├── PPURegEditor.cs
│ ├── PPURegEditor.resx
│ ├── PPURegEditor2.Designer.cs
│ ├── PPURegEditor2.cs
│ ├── PPURegEditor2.resx
│ ├── Program.cs
│ ├── Project.cs
│ ├── Properties
│ ├── AssemblyInfo.cs
│ ├── DataSources
│ │ └── Data.datasource
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
│ ├── SNESGraphics.cs
│ ├── SuperTileMapper.Designer.cs
│ ├── SuperTileMapper.cs
│ ├── SuperTileMapper.csproj
│ ├── SuperTileMapper.csproj.user
│ ├── SuperTileMapper.resx
│ ├── TilemapEditor.Designer.cs
│ ├── TilemapEditor.cs
│ ├── TilemapEditor.resx
│ ├── Util.cs
│ ├── VRAMEditor.Designer.cs
│ ├── VRAMEditor.cs
│ ├── VRAMEditor.resx
│ ├── bin
│ ├── Debug
│ │ ├── SuperTileMapper.exe
│ │ ├── SuperTileMapper.exe.config
│ │ ├── SuperTileMapper.pdb
│ │ ├── SuperTileMapper.vshost.exe
│ │ ├── SuperTileMapper.vshost.exe.config
│ │ └── SuperTileMapper.vshost.exe.manifest
│ └── Release
│ │ ├── SuperTileMapper.exe
│ │ ├── SuperTileMapper.exe.config
│ │ ├── SuperTileMapper.pdb
│ │ ├── SuperTileMapper.vshost.exe
│ │ ├── SuperTileMapper.vshost.exe.config
│ │ └── SuperTileMapper.vshost.exe.manifest
│ └── obj
│ ├── Debug
│ ├── Be.Windows.Forms.HexBox.resources
│ ├── DesignTimeResolveAssemblyReferences.cache
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── SuperTileMapper.About.resources
│ ├── SuperTileMapper.Be.Windows.Forms.HexBox.Properties.Resources.resources
│ ├── SuperTileMapper.CGRAMEditor.resources
│ ├── SuperTileMapper.ExportData.resources
│ ├── SuperTileMapper.ImportData.resources
│ ├── SuperTileMapper.OAMEditor.resources
│ ├── SuperTileMapper.PPURegEditor.resources
│ ├── SuperTileMapper.Properties.Resources.resources
│ ├── SuperTileMapper.SuperTileMapper.resources
│ ├── SuperTileMapper.TilemapEditor.resources
│ ├── SuperTileMapper.VRAMEditor.resources
│ ├── SuperTileMapper.csproj.FileListAbsolute.txt
│ ├── SuperTileMapper.csproj.GenerateResource.Cache
│ ├── SuperTileMapper.csprojResolveAssemblyReference.cache
│ ├── SuperTileMapper.exe
│ ├── SuperTileMapper.pdb
│ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
│ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
│ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
│ └── Release
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── SuperTileMapper.About.resources
│ ├── SuperTileMapper.CGRAMEditor.resources
│ ├── SuperTileMapper.ExportData.resources
│ ├── SuperTileMapper.ImportData.resources
│ ├── SuperTileMapper.OAMEditor.resources
│ ├── SuperTileMapper.PPURegEditor.resources
│ ├── SuperTileMapper.Properties.Resources.resources
│ ├── SuperTileMapper.SuperTileMapper.resources
│ ├── SuperTileMapper.VRAMEditor.resources
│ ├── SuperTileMapper.csproj.FileListAbsolute.txt
│ ├── SuperTileMapper.csproj.GenerateResource.Cache
│ ├── SuperTileMapper.exe
│ ├── SuperTileMapper.pdb
│ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
│ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
│ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
└── testdata
├── bytes.bin
├── empty.bin
├── emulator
├── Bizhawk.State
├── bSNES.bst
├── lsnes.lsmv
├── snes9x.state
└── zsnes.zst
├── mariokart
├── cgram.bin
├── mariokart.stm
├── oam.bin
├── ppuregs.bin
└── vram.bin
├── sd2snes
├── cgram.bin
├── oam.bin
├── ppuregs.bin
├── sd2snes.stm
└── vram.bin
├── smb3battle
├── cgram.bin
├── oam.bin
├── ppuregs.bin
├── smb3battle.stm
└── vram.bin
├── smw
├── cgram.bin
├── oam.bin
├── ppuregs.bin
├── smw.stm
└── vram.bin
├── testOutput.bin
├── tetrisattack
├── cgram.bin
├── oam.bin
├── ppuregs.bin
├── tetrisattack.stm
└── vram.bin
└── words.bin
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Aa][Rr][Mm]/
27 | [Aa][Rr][Mm]64/
28 | bld/
29 | [Bb]in/
30 | [Oo]bj/
31 | [Ll]og/
32 |
33 | # Visual Studio 2015/2017 cache/options directory
34 | .vs/
35 | # Uncomment if you have tasks that create the project's static files in wwwroot
36 | #wwwroot/
37 |
38 | # Visual Studio 2017 auto generated files
39 | Generated\ Files/
40 |
41 | # MSTest test Results
42 | [Tt]est[Rr]esult*/
43 | [Bb]uild[Ll]og.*
44 |
45 | # NUNIT
46 | *.VisualState.xml
47 | TestResult.xml
48 |
49 | # Build Results of an ATL Project
50 | [Dd]ebugPS/
51 | [Rr]eleasePS/
52 | dlldata.c
53 |
54 | # Benchmark Results
55 | BenchmarkDotNet.Artifacts/
56 |
57 | # .NET Core
58 | project.lock.json
59 | project.fragment.lock.json
60 | artifacts/
61 |
62 | # StyleCop
63 | StyleCopReport.xml
64 |
65 | # Files built by Visual Studio
66 | *_i.c
67 | *_p.c
68 | *_h.h
69 | *.ilk
70 | *.meta
71 | *.obj
72 | *.iobj
73 | *.pch
74 | *.pdb
75 | *.ipdb
76 | *.pgc
77 | *.pgd
78 | *.rsp
79 | *.sbr
80 | *.tlb
81 | *.tli
82 | *.tlh
83 | *.tmp
84 | *.tmp_proj
85 | *_wpftmp.csproj
86 | *.log
87 | *.vspscc
88 | *.vssscc
89 | .builds
90 | *.pidb
91 | *.svclog
92 | *.scc
93 |
94 | # Chutzpah Test files
95 | _Chutzpah*
96 |
97 | # Visual C++ cache files
98 | ipch/
99 | *.aps
100 | *.ncb
101 | *.opendb
102 | *.opensdf
103 | *.sdf
104 | *.cachefile
105 | *.VC.db
106 | *.VC.VC.opendb
107 |
108 | # Visual Studio profiler
109 | *.psess
110 | *.vsp
111 | *.vspx
112 | *.sap
113 |
114 | # Visual Studio Trace Files
115 | *.e2e
116 |
117 | # TFS 2012 Local Workspace
118 | $tf/
119 |
120 | # Guidance Automation Toolkit
121 | *.gpState
122 |
123 | # ReSharper is a .NET coding add-in
124 | _ReSharper*/
125 | *.[Rr]e[Ss]harper
126 | *.DotSettings.user
127 |
128 | # JustCode is a .NET coding add-in
129 | .JustCode
130 |
131 | # TeamCity is a build add-in
132 | _TeamCity*
133 |
134 | # DotCover is a Code Coverage Tool
135 | *.dotCover
136 |
137 | # AxoCover is a Code Coverage Tool
138 | .axoCover/*
139 | !.axoCover/settings.json
140 |
141 | # Visual Studio code coverage results
142 | *.coverage
143 | *.coveragexml
144 |
145 | # NCrunch
146 | _NCrunch_*
147 | .*crunch*.local.xml
148 | nCrunchTemp_*
149 |
150 | # MightyMoose
151 | *.mm.*
152 | AutoTest.Net/
153 |
154 | # Web workbench (sass)
155 | .sass-cache/
156 |
157 | # Installshield output folder
158 | [Ee]xpress/
159 |
160 | # DocProject is a documentation generator add-in
161 | DocProject/buildhelp/
162 | DocProject/Help/*.HxT
163 | DocProject/Help/*.HxC
164 | DocProject/Help/*.hhc
165 | DocProject/Help/*.hhk
166 | DocProject/Help/*.hhp
167 | DocProject/Help/Html2
168 | DocProject/Help/html
169 |
170 | # Click-Once directory
171 | publish/
172 |
173 | # Publish Web Output
174 | *.[Pp]ublish.xml
175 | *.azurePubxml
176 | # Note: Comment the next line if you want to checkin your web deploy settings,
177 | # but database connection strings (with potential passwords) will be unencrypted
178 | *.pubxml
179 | *.publishproj
180 |
181 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
182 | # checkin your Azure Web App publish settings, but sensitive information contained
183 | # in these scripts will be unencrypted
184 | PublishScripts/
185 |
186 | # NuGet Packages
187 | *.nupkg
188 | # The packages folder can be ignored because of Package Restore
189 | **/[Pp]ackages/*
190 | # except build/, which is used as an MSBuild target.
191 | !**/[Pp]ackages/build/
192 | # Uncomment if necessary however generally it will be regenerated when needed
193 | #!**/[Pp]ackages/repositories.config
194 | # NuGet v3's project.json files produces more ignorable files
195 | *.nuget.props
196 | *.nuget.targets
197 |
198 | # Microsoft Azure Build Output
199 | csx/
200 | *.build.csdef
201 |
202 | # Microsoft Azure Emulator
203 | ecf/
204 | rcf/
205 |
206 | # Windows Store app package directories and files
207 | AppPackages/
208 | BundleArtifacts/
209 | Package.StoreAssociation.xml
210 | _pkginfo.txt
211 | *.appx
212 | *.appxbundle
213 | *.appxupload
214 |
215 | # Visual Studio cache files
216 | # files ending in .cache can be ignored
217 | *.[Cc]ache
218 | # but keep track of directories ending in .cache
219 | !?*.[Cc]ache/
220 |
221 | # Others
222 | ClientBin/
223 | ~$*
224 | *~
225 | *.dbmdl
226 | *.dbproj.schemaview
227 | *.jfm
228 | *.pfx
229 | *.publishsettings
230 | orleans.codegen.cs
231 |
232 | # Including strong name files can present a security risk
233 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
234 | #*.snk
235 |
236 | # Since there are multiple workflows, uncomment next line to ignore bower_components
237 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
238 | #bower_components/
239 |
240 | # RIA/Silverlight projects
241 | Generated_Code/
242 |
243 | # Backup & report files from converting an old project file
244 | # to a newer Visual Studio version. Backup files are not needed,
245 | # because we have git ;-)
246 | _UpgradeReport_Files/
247 | Backup*/
248 | UpgradeLog*.XML
249 | UpgradeLog*.htm
250 | ServiceFabricBackup/
251 | *.rptproj.bak
252 |
253 | # SQL Server files
254 | *.mdf
255 | *.ldf
256 | *.ndf
257 |
258 | # Business Intelligence projects
259 | *.rdl.data
260 | *.bim.layout
261 | *.bim_*.settings
262 | *.rptproj.rsuser
263 | *- Backup*.rdl
264 |
265 | # Microsoft Fakes
266 | FakesAssemblies/
267 |
268 | # GhostDoc plugin setting file
269 | *.GhostDoc.xml
270 |
271 | # Node.js Tools for Visual Studio
272 | .ntvs_analysis.dat
273 | node_modules/
274 |
275 | # Visual Studio 6 build log
276 | *.plg
277 |
278 | # Visual Studio 6 workspace options file
279 | *.opt
280 |
281 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
282 | *.vbw
283 |
284 | # Visual Studio LightSwitch build output
285 | **/*.HTMLClient/GeneratedArtifacts
286 | **/*.DesktopClient/GeneratedArtifacts
287 | **/*.DesktopClient/ModelManifest.xml
288 | **/*.Server/GeneratedArtifacts
289 | **/*.Server/ModelManifest.xml
290 | _Pvt_Extensions
291 |
292 | # Paket dependency manager
293 | .paket/paket.exe
294 | paket-files/
295 |
296 | # FAKE - F# Make
297 | .fake/
298 |
299 | # CodeRush personal settings
300 | .cr/personal
301 |
302 | # Python Tools for Visual Studio (PTVS)
303 | __pycache__/
304 | *.pyc
305 |
306 | # Cake - Uncomment if you are using it
307 | # tools/**
308 | # !tools/packages.config
309 |
310 | # Tabs Studio
311 | *.tss
312 |
313 | # Telerik's JustMock configuration file
314 | *.jmconfig
315 |
316 | # BizTalk build output
317 | *.btp.cs
318 | *.btm.cs
319 | *.odx.cs
320 | *.xsd.cs
321 |
322 | # OpenCover UI analysis results
323 | OpenCover/
324 |
325 | # Azure Stream Analytics local run output
326 | ASALocalRun/
327 |
328 | # MSBuild Binary and Structured Log
329 | *.binlog
330 |
331 | # NVidia Nsight GPU debugger configuration file
332 | *.nvuser
333 |
334 | # MFractors (Xamarin productivity tool) working folder
335 | .mfractor/
336 |
337 | # Local History for Visual Studio
338 | .localhistory/
339 |
340 | # BeatPulse healthcheck temp database
341 | healthchecksdb
342 |
343 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
344 | MigrationBackup/
345 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SuperTileMapper
2 |
3 | This is a general Super NES Tilemap Editor. It allows you to edit VRAM, CGRAM, OAM, & PPU Registers easily.
4 |
5 | The main goal is to be able to build background tilemaps by pasting together tiles. Eventually, a graphics drawing editor will be included as well. Another possiblity is an HDMA editor and previewer.
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/.vs/SuperTileMapper/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/.vs/SuperTileMapper/v14/.suo
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.23107.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SuperTileMapper", "SuperTileMapper\SuperTileMapper.csproj", "{B09934CC-950B-4C63-8265-463D7CD0A936}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {B09934CC-950B-4C63-8265-463D7CD0A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {B09934CC-950B-4C63-8265-463D7CD0A936}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {B09934CC-950B-4C63-8265-463D7CD0A936}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {B09934CC-950B-4C63-8265-463D7CD0A936}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/About.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Drawing;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 |
10 | namespace SuperTileMapper
11 | {
12 | partial class About : Form
13 | {
14 | public About()
15 | {
16 | InitializeComponent();
17 | this.Text = String.Format("About {0}", AssemblyTitle);
18 | this.labelProductName.Text = AssemblyProduct;
19 | this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
20 | this.labelCopyright.Text = AssemblyCopyright;
21 | this.labelCompanyName.Text = AssemblyCompany;
22 | this.textBoxDescription.Text = AssemblyDescription;
23 | }
24 |
25 | #region Assembly Attribute Accessors
26 |
27 | public string AssemblyTitle
28 | {
29 | get
30 | {
31 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
32 | if (attributes.Length > 0)
33 | {
34 | AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
35 | if (titleAttribute.Title != "")
36 | {
37 | return titleAttribute.Title;
38 | }
39 | }
40 | return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
41 | }
42 | }
43 |
44 | public string AssemblyVersion
45 | {
46 | get
47 | {
48 | return Assembly.GetExecutingAssembly().GetName().Version.ToString();
49 | }
50 | }
51 |
52 | public string AssemblyDescription
53 | {
54 | get
55 | {
56 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
57 | if (attributes.Length == 0)
58 | {
59 | return "";
60 | }
61 | return ((AssemblyDescriptionAttribute)attributes[0]).Description;
62 | }
63 | }
64 |
65 | public string AssemblyProduct
66 | {
67 | get
68 | {
69 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
70 | if (attributes.Length == 0)
71 | {
72 | return "";
73 | }
74 | return ((AssemblyProductAttribute)attributes[0]).Product;
75 | }
76 | }
77 |
78 | public string AssemblyCopyright
79 | {
80 | get
81 | {
82 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
83 | if (attributes.Length == 0)
84 | {
85 | return "";
86 | }
87 | return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
88 | }
89 | }
90 |
91 | public string AssemblyCompany
92 | {
93 | get
94 | {
95 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
96 | if (attributes.Length == 0)
97 | {
98 | return "";
99 | }
100 | return ((AssemblyCompanyAttribute)attributes[0]).Company;
101 | }
102 | }
103 | #endregion
104 | }
105 | }
106 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Security.Permissions;
5 | using System.Runtime.InteropServices;
6 |
7 | //
8 | // General Information about an assembly is controlled through the following
9 | // set of attributes. Change these attribute values to modify the information
10 | // associated with an assembly.
11 | //
12 | [assembly: AssemblyTitle("Be.Windows.Forms.HexBox")]
13 | [assembly: AssemblyDescription("hex edit control (C# DOTNET)")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("Be")]
16 | [assembly: AssemblyProduct("Be.Windows.Forms.HexBox")]
17 | [assembly: AssemblyCopyright("")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 |
21 | //
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Revision and Build Numbers
30 | // by using the '*' as shown below:
31 |
32 | [assembly: AssemblyVersion("1.6.0.*")]
33 |
34 | //
35 | // In order to sign your assembly you must specify a key to use. Refer to the
36 | // Microsoft .NET Framework documentation for more information on assembly signing.
37 | //
38 | // Use the attributes below to control which key is used for signing.
39 | //
40 | // Notes:
41 | // (*) If no key is specified, the assembly is not signed.
42 | // (*) KeyName refers to a key that has been installed in the Crypto Service
43 | // Provider (CSP) on your machine. KeyFile refers to a file which contains
44 | // a key.
45 | // (*) If the KeyFile and the KeyName values are both specified, the
46 | // following processing occurs:
47 | // (1) If the KeyName can be found in the CSP, that key is used.
48 | // (2) If the KeyName does not exist and the KeyFile does exist, the key
49 | // in the KeyFile is installed into the CSP and used.
50 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
51 | // When specifying the KeyFile, the location of the KeyFile should be
52 | // relative to the project output directory which is
53 | // %Project Directory%\obj\. For example, if your KeyFile is
54 | // located in the project directory, you would specify the AssemblyKeyFile
55 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
56 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
57 | // documentation for more information on this.
58 | //
59 | [assembly: AssemblyDelaySign(false)]
60 |
61 | //[assembly: AssemblyKeyFile("../../HexBox.snk")]
62 | //[assembly: AssemblyKeyName("")]
63 |
64 | //[assembly:IsolatedStorageFilePermission(SecurityAction.RequestRefuse, UserQuota=1048576)]
65 | //[assembly:SecurityPermission(SecurityAction.RequestRefuse, UnmanagedCode=true)]
66 | //[assembly:FileIOPermission(SecurityAction.RequestOptional, Unrestricted=true)]
67 |
68 | [assembly:CLSCompliant(true)]
69 |
70 | [assembly:ComVisible(false)]
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/Be.Windows.Forms.HexBox.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Local
5 | 9.0.30729
6 | 2.0
7 | {26C5F25F-B450-4CAF-AD8B-B8D11AE73457}
8 | Debug
9 | AnyCPU
10 |
11 |
12 |
13 |
14 | Be.Windows.Forms.HexBox
15 | HexBox.snk
16 | JScript
17 | Grid
18 | IE50
19 | false
20 | Library
21 | Be.Windows.Forms
22 | OnBuildSuccess
23 |
24 |
25 |
26 |
27 |
28 |
29 | 3.5
30 | true
31 | false
32 | v4.0
33 | publish\
34 | true
35 | Disk
36 | false
37 | Foreground
38 | 7
39 | Days
40 | false
41 | false
42 | true
43 | 0
44 | 1.0.0.%2a
45 | false
46 | true
47 |
48 |
49 |
50 | bin\Debug\
51 | false
52 | 285212672
53 | false
54 |
55 |
56 | DEBUG;TRACE
57 | Be.Windows.Forms.HexBox.xml
58 | true
59 | 4096
60 | false
61 |
62 |
63 | false
64 | false
65 | false
66 | false
67 | 4
68 | full
69 | prompt
70 | AllRules.ruleset
71 | false
72 |
73 |
74 | bin\Release\
75 | false
76 | 285212672
77 | false
78 |
79 |
80 | TRACE
81 |
82 |
83 | false
84 | 4096
85 | false
86 |
87 |
88 | true
89 | false
90 | false
91 | false
92 | 4
93 | none
94 | prompt
95 | BasicCorrectnessRules.ruleset
96 | false
97 |
98 |
99 |
100 | System
101 |
102 |
103 | System.Data
104 |
105 |
106 | False
107 |
108 |
109 |
110 | System.Windows.Forms
111 |
112 |
113 | System.XML
114 |
115 |
116 |
117 |
118 | Code
119 |
120 |
121 | Component
122 |
123 |
124 | Code
125 |
126 |
127 |
128 | Code
129 |
130 |
131 | Code
132 |
133 |
134 | Code
135 |
136 |
137 | Code
138 |
139 |
140 | Code
141 |
142 |
143 | Code
144 |
145 |
146 |
147 | Component
148 |
149 |
150 |
151 |
152 | Code
153 |
154 |
155 | Code
156 |
157 |
158 | Code
159 |
160 |
161 | True
162 | True
163 | Resources.resx
164 |
165 |
166 |
167 |
168 | HexBox.cs
169 | Designer
170 |
171 |
172 | ResXFileCodeGenerator
173 | Resources.Designer.cs
174 |
175 |
176 |
177 |
178 |
179 | False
180 | .NET Framework 3.5 SP1 Client Profile
181 | false
182 |
183 |
184 | False
185 | .NET Framework 2.0 %28x86%29
186 | true
187 |
188 |
189 | False
190 | .NET Framework 3.0 %28x86%29
191 | false
192 |
193 |
194 | False
195 | .NET Framework 3.5
196 | false
197 |
198 |
199 | False
200 | .NET Framework 3.5 SP1
201 | false
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/ByteCharConverters.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// The interface for objects that can translate between characters and bytes.
9 | ///
10 | public interface IByteCharConverter
11 | {
12 | ///
13 | /// Returns the character to display for the byte passed across.
14 | ///
15 | ///
16 | ///
17 | char ToChar(byte b);
18 |
19 | ///
20 | /// Returns the byte to use when the character passed across is entered during editing.
21 | ///
22 | ///
23 | ///
24 | byte ToByte(char c);
25 | }
26 |
27 | ///
28 | /// The default implementation.
29 | ///
30 | public class DefaultByteCharConverter : IByteCharConverter
31 | {
32 | ///
33 | /// Returns the character to display for the byte passed across.
34 | ///
35 | ///
36 | ///
37 | public virtual char ToChar(byte b)
38 | {
39 | return b > 0x1F && !(b > 0x7E && b < 0xA0) ? (char)b : '.';
40 | }
41 |
42 | ///
43 | /// Returns the byte to use for the character passed across.
44 | ///
45 | ///
46 | ///
47 | public virtual byte ToByte(char c)
48 | {
49 | return (byte)c;
50 | }
51 |
52 | ///
53 | /// Returns a description of the byte char provider.
54 | ///
55 | ///
56 | public override string ToString()
57 | {
58 | return "ANSI (Default)";
59 | }
60 | }
61 |
62 | ///
63 | /// A byte char provider that can translate bytes encoded in codepage 500 EBCDIC
64 | ///
65 | public class EbcdicByteCharProvider : IByteCharConverter
66 | {
67 | ///
68 | /// The IBM EBCDIC code page 500 encoding. Note that this is not always supported by .NET,
69 | /// the underlying platform has to provide support for it.
70 | ///
71 | private Encoding _ebcdicEncoding = Encoding.GetEncoding(500);
72 |
73 | ///
74 | /// Returns the EBCDIC character corresponding to the byte passed across.
75 | ///
76 | ///
77 | ///
78 | public virtual char ToChar(byte b)
79 | {
80 | string encoded = _ebcdicEncoding.GetString(new byte[] { b });
81 | return encoded.Length > 0 ? encoded[0] : '.';
82 | }
83 |
84 | ///
85 | /// Returns the byte corresponding to the EBCDIC character passed across.
86 | ///
87 | ///
88 | ///
89 | public virtual byte ToByte(char c)
90 | {
91 | byte[] decoded = _ebcdicEncoding.GetBytes(new char[] { c });
92 | return decoded.Length > 0 ? decoded[0] : (byte)0;
93 | }
94 |
95 | ///
96 | /// Returns a description of the byte char provider.
97 | ///
98 | ///
99 | public override string ToString()
100 | {
101 | return "EBCDIC (Code Page 500)";
102 | }
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/ByteCollection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using System.Collections;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Represents a collection of bytes.
9 | ///
10 | public class ByteCollection : CollectionBase
11 | {
12 | ///
13 | /// Initializes a new instance of ByteCollection class.
14 | ///
15 | public ByteCollection() { }
16 |
17 | ///
18 | /// Initializes a new instance of ByteCollection class.
19 | ///
20 | /// an array of bytes to add to collection
21 | public ByteCollection(byte[] bs)
22 | { AddRange(bs); }
23 |
24 | ///
25 | /// Gets or sets the value of a byte
26 | ///
27 | public byte this[int index]
28 | {
29 | get { return (byte)List[index]; }
30 | set { List[index] = value; }
31 | }
32 |
33 | ///
34 | /// Adds a byte into the collection.
35 | ///
36 | /// the byte to add
37 | public void Add(byte b)
38 | { List.Add(b); }
39 |
40 | ///
41 | /// Adds a range of bytes to the collection.
42 | ///
43 | /// the bytes to add
44 | public void AddRange(byte[] bs)
45 | { InnerList.AddRange(bs); }
46 |
47 | ///
48 | /// Removes a byte from the collection.
49 | ///
50 | /// the byte to remove
51 | public void Remove(byte b)
52 | { List.Remove(b); }
53 |
54 | ///
55 | /// Removes a range of bytes from the collection.
56 | ///
57 | /// the index of the start byte
58 | /// the count of the bytes to remove
59 | public void RemoveRange(int index, int count)
60 | { InnerList.RemoveRange(index, count); }
61 |
62 | ///
63 | /// Inserts a range of bytes to the collection.
64 | ///
65 | /// the index of start byte
66 | /// an array of bytes to insert
67 | public void InsertRange(int index, byte[] bs)
68 | { InnerList.InsertRange(index, bs); }
69 |
70 | ///
71 | /// Gets all bytes in the array
72 | ///
73 | /// an array of bytes.
74 | public byte[] GetBytes()
75 | {
76 | byte[] bytes = new byte[Count];
77 | InnerList.CopyTo(0, bytes, 0, bytes.Length);
78 | return bytes;
79 | }
80 |
81 | ///
82 | /// Inserts a byte to the collection.
83 | ///
84 | /// the index
85 | /// a byte to insert
86 | public void Insert(int index, byte b)
87 | {
88 | InnerList.Insert(index, b);
89 | }
90 |
91 | ///
92 | /// Returns the index of the given byte.
93 | ///
94 | public int IndexOf(byte b)
95 | {
96 | return InnerList.IndexOf(b);
97 | }
98 |
99 | ///
100 | /// Returns true, if the byte exists in the collection.
101 | ///
102 | public bool Contains(byte b)
103 | {
104 | return InnerList.Contains(b);
105 | }
106 |
107 | ///
108 | /// Copies the content of the collection into the given array.
109 | ///
110 | public void CopyTo(byte[] bs, int index)
111 | {
112 | InnerList.CopyTo(bs, index);
113 | }
114 |
115 | ///
116 | /// Copies the content of the collection into an array.
117 | ///
118 | /// the array containing all bytes.
119 | public byte[] ToArray()
120 | {
121 | byte[] data = new byte[this.Count];
122 | this.CopyTo(data, 0);
123 | return data;
124 | }
125 |
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/BytePositionInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Represents a position in the HexBox control
9 | ///
10 | struct BytePositionInfo
11 | {
12 | public BytePositionInfo(long index, int characterPosition)
13 | {
14 | _index = index;
15 | _characterPosition = characterPosition;
16 | }
17 |
18 | public int CharacterPosition
19 | {
20 | get { return _characterPosition; }
21 | } int _characterPosition;
22 |
23 | public long Index
24 | {
25 | get { return _index; }
26 | } long _index;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/DataBlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Be.Windows.Forms
4 | {
5 | internal abstract class DataBlock
6 | {
7 | internal DataMap _map;
8 | internal DataBlock _nextBlock;
9 | internal DataBlock _previousBlock;
10 |
11 | public abstract long Length
12 | {
13 | get;
14 | }
15 |
16 | public DataMap Map
17 | {
18 | get
19 | {
20 | return _map;
21 | }
22 | }
23 |
24 | public DataBlock NextBlock
25 | {
26 | get
27 | {
28 | return _nextBlock;
29 | }
30 | }
31 |
32 | public DataBlock PreviousBlock
33 | {
34 | get
35 | {
36 | return _previousBlock;
37 | }
38 | }
39 |
40 | public abstract void RemoveBytes(long position, long count);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/DynamicByteProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace Be.Windows.Forms
5 | {
6 | ///
7 | /// Byte provider for a small amount of data.
8 | ///
9 | public class DynamicByteProvider : IByteProvider
10 | {
11 | ///
12 | /// Contains information about changes.
13 | ///
14 | bool _hasChanges;
15 | ///
16 | /// Contains a byte collection.
17 | ///
18 | List _bytes;
19 |
20 | ///
21 | /// Initializes a new instance of the DynamicByteProvider class.
22 | ///
23 | ///
24 | public DynamicByteProvider(byte[] data) : this(new List(data))
25 | {
26 | }
27 |
28 | ///
29 | /// Initializes a new instance of the DynamicByteProvider class.
30 | ///
31 | ///
32 | public DynamicByteProvider(List bytes)
33 | {
34 | _bytes = bytes;
35 | }
36 |
37 | ///
38 | /// Raises the Changed event.
39 | ///
40 | void OnChanged(EventArgs e)
41 | {
42 | _hasChanges = true;
43 |
44 | if(Changed != null)
45 | Changed(this, e);
46 | }
47 |
48 | ///
49 | /// Raises the LengthChanged event.
50 | ///
51 | void OnLengthChanged(EventArgs e)
52 | {
53 | if(LengthChanged != null)
54 | LengthChanged(this, e);
55 | }
56 |
57 | ///
58 | /// Gets the byte collection.
59 | ///
60 | public List Bytes
61 | {
62 | get { return _bytes; }
63 | }
64 |
65 | #region IByteProvider Members
66 | ///
67 | /// True, when changes are done.
68 | ///
69 | public bool HasChanges()
70 | {
71 | return _hasChanges;
72 | }
73 |
74 | ///
75 | /// Applies changes.
76 | ///
77 | public void ApplyChanges()
78 | {
79 | _hasChanges = false;
80 | }
81 |
82 | ///
83 | /// Occurs, when the write buffer contains new changes.
84 | ///
85 | public event EventHandler Changed;
86 |
87 | ///
88 | /// Occurs, when InsertBytes or DeleteBytes method is called.
89 | ///
90 | public event EventHandler LengthChanged;
91 |
92 |
93 | ///
94 | /// Reads a byte from the byte collection.
95 | ///
96 | /// the index of the byte to read
97 | /// the byte
98 | public byte ReadByte(long index)
99 | { return _bytes[(int)index]; }
100 |
101 | ///
102 | /// Write a byte into the byte collection.
103 | ///
104 | /// the index of the byte to write.
105 | /// the byte
106 | public void WriteByte(long index, byte value)
107 | {
108 | _bytes[(int)index] = value;
109 | OnChanged(EventArgs.Empty);
110 | }
111 |
112 | ///
113 | /// Deletes bytes from the byte collection.
114 | ///
115 | /// the start index of the bytes to delete.
116 | /// the length of bytes to delete.
117 | public void DeleteBytes(long index, long length)
118 | {
119 | int internal_index = (int)Math.Max(0, index);
120 | int internal_length = (int)Math.Min((int)Length, length);
121 | _bytes.RemoveRange(internal_index, internal_length);
122 |
123 | OnLengthChanged(EventArgs.Empty);
124 | OnChanged(EventArgs.Empty);
125 | }
126 |
127 | ///
128 | /// Inserts byte into the byte collection.
129 | ///
130 | /// the start index of the bytes in the byte collection
131 | /// the byte array to insert
132 | public void InsertBytes(long index, byte[] bs)
133 | {
134 | _bytes.InsertRange((int)index, bs);
135 |
136 | OnLengthChanged(EventArgs.Empty);
137 | OnChanged(EventArgs.Empty);
138 | }
139 |
140 | ///
141 | /// Gets the length of the bytes in the byte collection.
142 | ///
143 | public long Length
144 | {
145 | get
146 | {
147 | return _bytes.Count;
148 | }
149 | }
150 |
151 | ///
152 | /// Returns true
153 | ///
154 | public bool SupportsWriteByte()
155 | {
156 | return true;
157 | }
158 |
159 | ///
160 | /// Returns true
161 | ///
162 | public bool SupportsInsertBytes()
163 | {
164 | return true;
165 | }
166 |
167 | ///
168 | /// Returns true
169 | ///
170 | public bool SupportsDeleteBytes()
171 | {
172 | return true;
173 | }
174 | #endregion
175 |
176 | }
177 | }
178 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/FileByteProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Byte provider for (big) files.
9 | ///
10 | public class FileByteProvider : IByteProvider, IDisposable
11 | {
12 | #region WriteCollection class
13 | ///
14 | /// Represents the write buffer class
15 | ///
16 | class WriteCollection : DictionaryBase
17 | {
18 | ///
19 | /// Gets or sets a byte in the collection
20 | ///
21 | public byte this[long index]
22 | {
23 | get { return (byte)this.Dictionary[index]; }
24 | set { Dictionary[index] = value; }
25 | }
26 |
27 | ///
28 | /// Adds a byte into the collection
29 | ///
30 | /// the index of the byte
31 | /// the value of the byte
32 | public void Add(long index, byte value)
33 | { Dictionary.Add(index, value); }
34 |
35 | ///
36 | /// Determines if a byte with the given index exists.
37 | ///
38 | /// the index of the byte
39 | /// true, if the is in the collection
40 | public bool Contains(long index)
41 | { return Dictionary.Contains(index); }
42 |
43 | }
44 | #endregion
45 |
46 | ///
47 | /// Occurs, when the write buffer contains new changes.
48 | ///
49 | public event EventHandler Changed;
50 |
51 | ///
52 | /// Contains all changes
53 | ///
54 | WriteCollection _writes = new WriteCollection();
55 |
56 | ///
57 | /// Contains the file name.
58 | ///
59 | string _fileName;
60 | ///
61 | /// Contains the file stream.
62 | ///
63 | FileStream _fileStream;
64 | ///
65 | /// Read-only access.
66 | ///
67 | bool _readOnly;
68 |
69 | ///
70 | /// Initializes a new instance of the FileByteProvider class.
71 | ///
72 | ///
73 | public FileByteProvider(string fileName)
74 | {
75 | _fileName = fileName;
76 |
77 | try
78 | {
79 | // try to open in write mode
80 | _fileStream = File.Open(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
81 | }
82 | catch
83 | {
84 | // write mode failed, try to open in read-only and fileshare friendly mode.
85 | try
86 | {
87 | _fileStream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
88 | _readOnly = true;
89 | }
90 | catch
91 | {
92 | throw;
93 | }
94 | }
95 | }
96 |
97 | ///
98 | /// Terminates the instance of the FileByteProvider class.
99 | ///
100 | ~FileByteProvider()
101 | {
102 | Dispose();
103 | }
104 |
105 | ///
106 | /// Raises the Changed event.
107 | ///
108 | /// Never used.
109 | void OnChanged(EventArgs e)
110 | {
111 | if(Changed != null)
112 | Changed(this, e);
113 | }
114 |
115 | ///
116 | /// Gets the name of the file the byte provider is using.
117 | ///
118 | public string FileName
119 | {
120 | get { return _fileName; }
121 | }
122 |
123 | ///
124 | /// Returns a value if there are some changes.
125 | ///
126 | /// true, if there are some changes
127 | public bool HasChanges()
128 | {
129 | return (_writes.Count > 0);
130 | }
131 |
132 | ///
133 | /// Updates the file with all changes the write buffer contains.
134 | ///
135 | public void ApplyChanges()
136 | {
137 | if (this._readOnly)
138 | {
139 | throw new Exception("File is in read-only mode.");
140 | }
141 |
142 | if(!HasChanges())
143 | return;
144 |
145 | IDictionaryEnumerator en = _writes.GetEnumerator();
146 | while(en.MoveNext())
147 | {
148 | long index = (long)en.Key;
149 | byte value = (byte)en.Value;
150 | if(_fileStream.Position != index)
151 | _fileStream.Position = index;
152 | _fileStream.Write(new byte[] { value }, 0, 1);
153 | }
154 | _writes.Clear();
155 | }
156 |
157 | ///
158 | /// Clears the write buffer and reject all changes made.
159 | ///
160 | public void RejectChanges()
161 | {
162 | _writes.Clear();
163 | }
164 |
165 | #region IByteProvider Members
166 | ///
167 | /// Never used.
168 | ///
169 | public event EventHandler LengthChanged;
170 |
171 | ///
172 | /// Reads a byte from the file.
173 | ///
174 | /// the index of the byte to read
175 | /// the byte
176 | public byte ReadByte(long index)
177 | {
178 | if(_writes.Contains(index))
179 | return _writes[index];
180 |
181 | if(_fileStream.Position != index)
182 | _fileStream.Position = index;
183 |
184 | byte res = (byte)_fileStream.ReadByte();
185 | return res;
186 | }
187 |
188 | ///
189 | /// Gets the length of the file.
190 | ///
191 | public long Length
192 | {
193 | get
194 | {
195 | return _fileStream.Length;
196 | }
197 | }
198 |
199 | ///
200 | /// Writes a byte into write buffer
201 | ///
202 | public void WriteByte(long index, byte value)
203 | {
204 | if(_writes.Contains(index))
205 | _writes[index] = value;
206 | else
207 | _writes.Add(index, value);
208 |
209 | OnChanged(EventArgs.Empty);
210 | }
211 |
212 | ///
213 | /// Not supported
214 | ///
215 | public void DeleteBytes(long index, long length)
216 | {
217 | throw new NotSupportedException("FileByteProvider.DeleteBytes");
218 | }
219 |
220 | ///
221 | /// Not supported
222 | ///
223 | public void InsertBytes(long index, byte[] bs)
224 | {
225 | throw new NotSupportedException("FileByteProvider.InsertBytes");
226 | }
227 |
228 | ///
229 | /// Returns true
230 | ///
231 | public bool SupportsWriteByte()
232 | {
233 | return !_readOnly;
234 | }
235 |
236 | ///
237 | /// Returns false
238 | ///
239 | public bool SupportsInsertBytes()
240 | {
241 | return false;
242 | }
243 |
244 | ///
245 | /// Returns false
246 | ///
247 | public bool SupportsDeleteBytes()
248 | {
249 | return false;
250 | }
251 | #endregion
252 |
253 | #region IDisposable Members
254 | ///
255 | /// Releases the file handle used by the FileByteProvider.
256 | ///
257 | public void Dispose()
258 | {
259 | if(_fileStream != null)
260 | {
261 | _fileName = null;
262 |
263 | _fileStream.Close();
264 | _fileStream = null;
265 | }
266 |
267 | GC.SuppressFinalize(this);
268 | }
269 | #endregion
270 | }
271 | }
272 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/FileDataBlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Be.Windows.Forms
4 | {
5 | internal sealed class FileDataBlock : DataBlock
6 | {
7 | long _length;
8 | long _fileOffset;
9 |
10 | public FileDataBlock(long fileOffset, long length)
11 | {
12 | _fileOffset = fileOffset;
13 | _length = length;
14 | }
15 |
16 | public long FileOffset
17 | {
18 | get
19 | {
20 | return _fileOffset;
21 | }
22 | }
23 |
24 | public override long Length
25 | {
26 | get
27 | {
28 | return _length;
29 | }
30 | }
31 |
32 | public void SetFileOffset(long value)
33 | {
34 | _fileOffset = value;
35 | }
36 |
37 | public void RemoveBytesFromEnd(long count)
38 | {
39 | if (count > _length)
40 | {
41 | throw new ArgumentOutOfRangeException("count");
42 | }
43 |
44 | _length -= count;
45 | }
46 |
47 | public void RemoveBytesFromStart(long count)
48 | {
49 | if (count > _length)
50 | {
51 | throw new ArgumentOutOfRangeException("count");
52 | }
53 |
54 | _fileOffset += count;
55 | _length -= count;
56 | }
57 |
58 | public override void RemoveBytes(long position, long count)
59 | {
60 | if (position > _length)
61 | {
62 | throw new ArgumentOutOfRangeException("position");
63 | }
64 |
65 | if (position + count > _length)
66 | {
67 | throw new ArgumentOutOfRangeException("count");
68 | }
69 |
70 | long prefixLength = position;
71 | long prefixFileOffset = _fileOffset;
72 |
73 | long suffixLength = _length - count - prefixLength;
74 | long suffixFileOffset = _fileOffset + position + count;
75 |
76 | if (prefixLength > 0 && suffixLength > 0)
77 | {
78 | _fileOffset = prefixFileOffset;
79 | _length = prefixLength;
80 | _map.AddAfter(this, new FileDataBlock(suffixFileOffset, suffixLength));
81 | return;
82 | }
83 |
84 | if (prefixLength > 0)
85 | {
86 | _fileOffset = prefixFileOffset;
87 | _length = prefixLength;
88 | }
89 | else
90 | {
91 | _fileOffset = suffixFileOffset;
92 | _length = suffixLength;
93 | }
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/FindOptions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Defines the type of the Find operation.
9 | ///
10 | public enum FindType
11 | {
12 | ///
13 | /// Used for Text Find operations
14 | ///
15 | Text,
16 | ///
17 | /// Used for Hex Find operations
18 | ///
19 | Hex
20 | }
21 |
22 | ///
23 | /// Defines all state information nee
24 | ///
25 | public class FindOptions
26 | {
27 | ///
28 | /// Gets or sets whether the Find options are valid
29 | ///
30 | public bool IsValid { get; set; }
31 | ///
32 | /// Gets the Find buffer used for case insensitive Find operations. This is the binary representation of Text.
33 | ///
34 | internal byte[] FindBuffer { get; private set; }
35 | ///
36 | /// Gets the Find buffer used for case sensitive Find operations. This is the binary representation of Text in lower case format.
37 | ///
38 | internal byte[] FindBufferLowerCase { get; private set; }
39 | ///
40 | /// Gets the Find buffer used for case sensitive Find operations. This is the binary representation of Text in upper case format.
41 | ///
42 | internal byte[] FindBufferUpperCase { get; private set; }
43 | ///
44 | /// Contains the MatchCase value
45 | ///
46 | bool _matchCase;
47 | ///
48 | /// Gets or sets the value, whether the Find operation is case sensitive or not.
49 | ///
50 | public bool MatchCase
51 | {
52 | get { return _matchCase; }
53 | set
54 | {
55 | _matchCase = value;
56 | UpdateFindBuffer();
57 | }
58 | }
59 | ///
60 | /// Contains the text that should be found.
61 | ///
62 | string _text;
63 | ///
64 | /// Gets or sets the text that should be found. Only used, when Type is FindType.Hex.
65 | ///
66 | public string Text
67 | {
68 | get { return _text; }
69 | set
70 | {
71 | _text = value;
72 | UpdateFindBuffer();
73 | }
74 | }
75 | ///
76 | /// Gets or sets the hex buffer that should be found. Only used, when Type is FindType.Hex.
77 | ///
78 | public byte[] Hex { get; set; }
79 | ///
80 | /// Gets or sets the type what should be searched.
81 | ///
82 | public FindType Type { get; set; }
83 | ///
84 | /// Updates the find buffer.
85 | ///
86 | void UpdateFindBuffer()
87 | {
88 | string text = this.Text != null ? this.Text : string.Empty;
89 | FindBuffer = ASCIIEncoding.ASCII.GetBytes(text);
90 | FindBufferLowerCase = ASCIIEncoding.ASCII.GetBytes(text.ToLower());
91 | FindBufferUpperCase = ASCIIEncoding.ASCII.GetBytes(text.ToUpper());
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.bmp
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | False
125 |
126 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexBox.snk
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/HexCasing.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Specifies the case of hex characters in the HexBox control
9 | ///
10 | public enum HexCasing
11 | {
12 | ///
13 | /// Converts all characters to uppercase.
14 | ///
15 | Upper = 0,
16 | ///
17 | /// Converts all characters to lowercase.
18 | ///
19 | Lower = 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/IByteProvider.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/IByteProvider.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/MemoryDataBlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Be.Windows.Forms
4 | {
5 | internal sealed class MemoryDataBlock : DataBlock
6 | {
7 | byte[] _data;
8 |
9 | public MemoryDataBlock(byte data)
10 | {
11 | _data = new byte[] { data };
12 | }
13 |
14 | public MemoryDataBlock(byte[] data)
15 | {
16 | if (data == null)
17 | {
18 | throw new ArgumentNullException("data");
19 | }
20 |
21 | _data = (byte[])data.Clone();
22 | }
23 |
24 | public override long Length
25 | {
26 | get
27 | {
28 | return _data.LongLength;
29 | }
30 | }
31 |
32 | public byte[] Data
33 | {
34 | get
35 | {
36 | return _data;
37 | }
38 | }
39 |
40 | public void AddByteToEnd(byte value)
41 | {
42 | byte[] newData = new byte[_data.LongLength + 1];
43 | _data.CopyTo(newData, 0);
44 | newData[newData.LongLength - 1] = value;
45 | _data = newData;
46 | }
47 |
48 | public void AddByteToStart(byte value)
49 | {
50 | byte[] newData = new byte[_data.LongLength + 1];
51 | newData[0] = value;
52 | _data.CopyTo(newData, 1);
53 | _data = newData;
54 | }
55 |
56 | public void InsertBytes(long position, byte[] data)
57 | {
58 | byte[] newData = new byte[_data.LongLength + data.LongLength];
59 | if (position > 0)
60 | {
61 | Array.Copy(_data, 0, newData, 0, position);
62 | }
63 | Array.Copy(data, 0, newData, position, data.LongLength);
64 | if (position < _data.LongLength)
65 | {
66 | Array.Copy(_data, position, newData, position + data.LongLength, _data.LongLength - position);
67 | }
68 | _data = newData;
69 | }
70 |
71 | public override void RemoveBytes(long position, long count)
72 | {
73 | byte[] newData = new byte[_data.LongLength - count];
74 |
75 | if (position > 0)
76 | {
77 | Array.Copy(_data, 0, newData, 0, position);
78 | }
79 | if (position + count < _data.LongLength)
80 | {
81 | Array.Copy(_data, position + count, newData, position, newData.LongLength - position);
82 | }
83 |
84 | _data = newData;
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/NativeMethods.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Runtime.InteropServices;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | internal static class NativeMethods
8 | {
9 | // Caret definitions
10 | [DllImport("user32.dll", SetLastError=true)]
11 | public static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
12 |
13 | [DllImport("user32.dll", SetLastError=true)]
14 | public static extern bool ShowCaret(IntPtr hWnd);
15 |
16 | [DllImport("user32.dll", SetLastError=true)]
17 | public static extern bool DestroyCaret();
18 |
19 | [DllImport("user32.dll", SetLastError=true)]
20 | public static extern bool SetCaretPos(int X, int Y);
21 |
22 | // Key definitions
23 | public const int WM_KEYDOWN = 0x100;
24 | public const int WM_KEYUP = 0x101;
25 | public const int WM_CHAR = 0x102;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.34003
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Be.Windows.Forms.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Be.Windows.Forms.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Be.Windows.Forms.HexBox/Util.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | static class Util
8 | {
9 | ///
10 | /// Contains true, if we are in design mode of Visual Studio
11 | ///
12 | private static bool _designMode;
13 |
14 | ///
15 | /// Initializes an instance of Util class
16 | ///
17 | static Util()
18 | {
19 | // design mode is true if host process is: Visual Studio, Visual Studio Express Versions (C#, VB, C++) or SharpDevelop
20 | var designerHosts = new List() { "devenv", "vcsexpress", "vbexpress", "vcexpress", "sharpdevelop" };
21 | using (var process = System.Diagnostics.Process.GetCurrentProcess())
22 | {
23 | var processName = process.ProcessName.ToLower();
24 | _designMode = designerHosts.Contains(processName);
25 | }
26 | }
27 |
28 | ///
29 | /// Gets true, if we are in design mode of Visual Studio
30 | ///
31 | ///
32 | /// In Visual Studio 2008 SP1 the designer is crashing sometimes on windows forms.
33 | /// The DesignMode property of Control class is buggy and cannot be used, so use our own implementation instead.
34 | ///
35 | public static bool DesignMode
36 | {
37 | get
38 | {
39 | return _designMode;
40 | }
41 | }
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/CGRAMEditor.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | 132, 17
125 |
126 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Data.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 |
10 | namespace SuperTileMapper
11 | {
12 | public static class Data
13 | {
14 | public const int VRAM_SIZE = 2 * 0x8000;
15 | public const int CGRAM_SIZE = 2 * 0x100;
16 | public const int OAM_SIZE = 2 * 0x110;
17 |
18 | private static byte[] VRAM = new byte[VRAM_SIZE];
19 | private static byte[] CGRAM = new byte[CGRAM_SIZE];
20 | private static byte[] OAM = new byte[OAM_SIZE];
21 | private static short[] PPURegs = new short[0x34];
22 |
23 | public static byte[] GetVRAMArray()
24 | {
25 | return VRAM;
26 | }
27 |
28 | public static byte[] GetCGRAMArray()
29 | {
30 | return CGRAM;
31 | }
32 |
33 | public static byte[] GetOAMArray()
34 | {
35 | return OAM;
36 | }
37 |
38 | public static Color GetFixedColor()
39 | {
40 | int r = (PPURegs[0x32] & 0x001F) << 3;
41 | int g = (PPURegs[0x32] & 0x03E0) >> 2;
42 | int b = (PPURegs[0x32] & 0x7C00) >> 7;
43 | return Color.FromArgb(r, g, b);
44 | }
45 |
46 | public static Color GetCGRAMColor(int c)
47 | {
48 | int i = (2 * c) & 0x1FF;
49 | int r = (CGRAM[i] & 0x1F) << 3;
50 | int g = ((CGRAM[i] & 0xE0) >> 2) | ((CGRAM[i + 1] & 0x03) << 6);
51 | int b = (CGRAM[i + 1] & 0x7C) << 1;
52 | return Color.FromArgb(r, g, b);
53 | }
54 |
55 | public static void SetCGRAMColor(int c, Color color)
56 | {
57 | int i = (2 * c) & 0x1FF;
58 | int val = ((color.B >> 3) << 10) | ((color.G >> 3) << 5) | (color.R >> 3);
59 | CGRAM[i] = (byte)val;
60 | CGRAM[i + 1] = (byte)(val >> 8);
61 | Project.unsavedChanges = true;
62 | }
63 |
64 | public static int GetCGRAMByte(int b)
65 | {
66 | return 0xFF & CGRAM[b & 0x1FF];
67 | }
68 |
69 | public static int GetCGRAMWord(int w)
70 | {
71 | int b = (2 * w) & 0x1FF;
72 | return 0xFFFF & (CGRAM[b] | (CGRAM[b + 1] << 8));
73 | }
74 |
75 | public static void SetCGRAMByte(int b, int d)
76 | {
77 | CGRAM[b & 0x1FF] = (byte)d;
78 | Project.unsavedChanges = true;
79 | }
80 |
81 | public static void SetCGRAMWord(int w, int d)
82 | {
83 | int b = (2 * w) & 0x1FF;
84 | CGRAM[b] = (byte)d;
85 | CGRAM[b + 1] = (byte)(d >> 8);
86 | Project.unsavedChanges = true;
87 | }
88 |
89 | public static int GetVRAMByte(int b)
90 | {
91 | return 0xFF & VRAM[b & 0xFFFF];
92 | }
93 |
94 | public static int GetVRAMWord(int w)
95 | {
96 | int b = (2 * w) & 0xFFFF;
97 | return 0xFFFF & (VRAM[b] | (VRAM[b + 1] << 8));
98 | }
99 |
100 | public static void SetVRAMByte(int b, int d)
101 | {
102 | VRAM[b & 0xFFFF] = (byte)d;
103 | Project.unsavedChanges = true;
104 | }
105 |
106 | public static void SetVRAMWord(int w, int d)
107 | {
108 | int b = (2 * w) & 0xFFFF;
109 | VRAM[b] = (byte)d;
110 | VRAM[b + 1] = (byte)(d >> 8);
111 | Project.unsavedChanges = true;
112 | }
113 |
114 | public static int GetOAMByte(int b)
115 | {
116 | int i = b & 0x3FF;
117 | return 0xFF & OAM[i < 0x200 ? i : 0x200 + (i & 0x1F)];
118 | }
119 |
120 | public static int GetOAMWord(int w)
121 | {
122 | int i = (2 * w) & 0x3FF;
123 | int b = i < 0x200 ? i : 0x200 + (i & 0x1F);
124 | return 0xFFFF & (OAM[b] | (OAM[b + 1] << 8));
125 | }
126 |
127 | public static void SetOAMByte(int b, int d)
128 | {
129 | int i = b & 0x3FF;
130 | OAM[i < 0x200 ? i : 0x200 + (i & 0x1F)] = (byte)d;
131 | Project.unsavedChanges = true;
132 | }
133 |
134 | public static void SetOAMWord(int w, int d)
135 | {
136 | int i = (2 * w) & 0x3FF;
137 | int b = i < 0x200 ? i : 0x200 + (i & 0x1F);
138 | OAM[b] = (byte)d;
139 | OAM[b + 1] = (byte)(d >> 8);
140 | Project.unsavedChanges = true;
141 | }
142 |
143 | public static int GetPPUReg(int i)
144 | {
145 | return 0xFFFF & PPURegs[i];
146 | }
147 |
148 | public static void SetPPURegBits(int i, int mask, int d)
149 | {
150 | PPURegs[i] = (short)((PPURegs[i] & ~mask) | (mask & d));
151 | Project.unsavedChanges = true;
152 | }
153 | }
154 | }
155 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/ExportData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace SuperTileMapper
13 | {
14 | public partial class ExportData : Form
15 | {
16 | string name;
17 | byte[] source;
18 | string destination;
19 | int srcOffset = 0;
20 | int len;
21 | int defLen;
22 |
23 | public ExportData(String loc, byte[] arr, int amount = -1, int step = -1, int arrStep = -1, int arrOffset = -1, int endian = -1)
24 | {
25 | name = loc;
26 | source = arr;
27 | defLen = amount;
28 |
29 | InitializeComponent();
30 | groupBox1.Text = groupBox1.Text.Replace("", loc);
31 | label2.Text = label2.Text.Replace("", loc);
32 |
33 | textBox2.Text = "$" + Util.DecToHex(defLen == -1 ? 0 : defLen, 0);
34 | comboBox1.SelectedIndex = step == -1 ? 0 : step;
35 | comboBox2.SelectedIndex = arrStep == -1 ? 1 : arrStep;
36 | textBox3.Text = "$" + Util.DecToHex(arrOffset == -1 ? 0 : arrOffset, 4);
37 | comboBox3.SelectedIndex = endian == -1 ? 0 : endian;
38 | }
39 |
40 | private void button1_Click(object sender, EventArgs e)
41 | {
42 | this.Close();
43 | }
44 |
45 | private void button3_Click(object sender, EventArgs e)
46 | {
47 | DialogResult result = saveFileDialog1.ShowDialog();
48 | if (result == DialogResult.OK && saveFileDialog1.FileName != "")
49 | {
50 | destination = saveFileDialog1.FileName;
51 | try
52 | {
53 | if (defLen < 0)
54 | {
55 | len = source.Length;
56 | textBox2.Text = "$" + Util.DecToHex(len, 0);
57 | }
58 |
59 | textBox1.Text = destination;
60 | textBox2.Enabled = true;
61 | textBox3.Enabled = true;
62 | comboBox1.Enabled = true;
63 | comboBox2.Enabled = true;
64 | comboBox3.Enabled = true;
65 | button2.Enabled = true;
66 | }
67 | catch (Exception)
68 | {
69 |
70 | }
71 | }
72 | }
73 |
74 | private void button2_Click(object sender, EventArgs e)
75 | {
76 | try
77 | {
78 | int transfer = comboBox1.SelectedIndex;
79 | int endian = comboBox3.SelectedIndex;
80 |
81 | if (transfer >= 8) throw new Exception("Must insert 'bytes' or 'words' only!");
82 | if (comboBox2.SelectedIndex >= 2) throw new Exception("Must access 'bytes' or 'words' only from " + name + "!");
83 | if (endian >= 2) throw new Exception("Must use 'little endian' or 'big endian' only!");
84 | if (!Util.TryHexOrDecToDec(textBox2.Text, out len)) throw new Exception("Unknown value for number of bytes or words to extract!");
85 | if (!Util.TryHexOrDecToDec(textBox3.Text, out srcOffset)) throw new Exception("Unknown value for " + name + " offset!");
86 |
87 | if (transfer >= 3) len *= 2;
88 | if (comboBox2.SelectedIndex == 1) srcOffset *= 2;
89 |
90 | if (len > source.Length) throw new Exception("Amount of data to extract exceeds the size of " + name + "!");
91 | if (srcOffset >= source.Length) throw new Exception("The source address exceeds the size of " + name + "!");
92 |
93 | // Trust me on this voodoo, I used k-maps
94 | int srcStep = transfer >= 4 ? 2 : 1;
95 | int destStep = (transfer % 3 >= 1) && (transfer < 6) ? 2 : 1;
96 | bool endianFlip = (endian == 1) && (transfer == 0 || transfer == 3);
97 | if (transfer == 4 || transfer == 6 + endian) srcOffset++;
98 | int destOffset = (transfer % 3 == endian + 1 && transfer < 6) ? 1 : 0;
99 | int destSize = len * (transfer == 1 || transfer == 2 ? 4 : (transfer >= 6 ? 1 : 2)) / 2 + ((endian == 1 && transfer % 3 == 0 && len % 2 == 1) ? 1 : 0);
100 |
101 | byte[] destArr = new byte[destSize];
102 | for (int i = 0, j = 0; i < len; i += srcStep, j += destStep)
103 | {
104 | destArr[j + (endianFlip ? Util.Endianness[j % 2] : 0) + destOffset] = source[(srcOffset + i) % source.Length];
105 | }
106 | File.WriteAllBytes(destination, destArr);
107 |
108 | this.DialogResult = DialogResult.OK;
109 | this.Close();
110 | }
111 | catch (Exception ex)
112 | {
113 | MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
114 | }
115 | }
116 |
117 | private void ExportData_Load(object sender, EventArgs e)
118 | {
119 |
120 | }
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/ExportData.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/ImportData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace SuperTileMapper
13 | {
14 | public partial class ImportData : Form
15 | {
16 | string name;
17 | byte[] destination;
18 | byte[] source;
19 | int destOffset = 0, srcOffset = 0;
20 | int len;
21 | int defLen;
22 |
23 | public ImportData(String loc, byte[] arr, int amount = -1, int step = -1, int fileStep = -1, int fileOffset = -1, int arrStep = -1, int arrOffset = -1, int endian = -1)
24 | {
25 | name = loc;
26 | destination = arr;
27 | defLen = amount;
28 |
29 | InitializeComponent();
30 | groupBox1.Text = groupBox1.Text.Replace("", loc);
31 | label3.Text = label3.Text.Replace("", loc);
32 |
33 | textBox2.Text = "$" + Util.DecToHex(defLen == -1 ? 0 : defLen, 0);
34 | comboBox1.SelectedIndex = step == -1 ? 0 : step;
35 | comboBox2.SelectedIndex = fileStep == -1 ? 0 : fileStep;
36 | textBox3.Text = "$" + Util.DecToHex(fileOffset == -1 ? 0 : fileOffset, 4);
37 | comboBox3.SelectedIndex = arrStep == -1 ? 1 : arrStep;
38 | textBox4.Text = "$" + Util.DecToHex(arrOffset == -1 ? 0 : arrOffset, 4);
39 | comboBox4.SelectedIndex = endian == -1 ? 0 : endian;
40 | }
41 |
42 | private void ImportData_Load(object sender, EventArgs e)
43 | {
44 |
45 | }
46 |
47 | private void button1_Click(object sender, EventArgs e)
48 | {
49 | this.Close();
50 | }
51 |
52 | private void button2_Click(object sender, EventArgs e)
53 | {
54 | try
55 | {
56 | int transfer = comboBox1.SelectedIndex;
57 | int endian = comboBox4.SelectedIndex;
58 |
59 | if (transfer >= 8) throw new Exception("Must insert 'bytes' or 'words' only!");
60 | if (comboBox2.SelectedIndex >= 2) throw new Exception("Must access 'bytes' or 'words' only from file!");
61 | if (comboBox3.SelectedIndex >= 2) throw new Exception("Must access 'bytes' or 'words' only from " + name + "!");
62 | if (endian >= 2) throw new Exception("Must use 'little endian' or 'big endian' only!");
63 | if (!Util.TryHexOrDecToDec(textBox2.Text, out len)) throw new Exception("Unknown value for number of bytes or words to insert!");
64 | if (!Util.TryHexOrDecToDec(textBox3.Text, out srcOffset)) throw new Exception("Unknown value for file offset!");
65 | if (!Util.TryHexOrDecToDec(textBox4.Text, out destOffset)) throw new Exception("Unknown value for " + name + " offset!");
66 |
67 | if (transfer >= 3) len *= 2;
68 | if (comboBox2.SelectedIndex == 1) srcOffset *= 2;
69 | if (comboBox3.SelectedIndex == 1) destOffset *= 2;
70 |
71 | if (len > destination.Length) throw new Exception("Amount of data to insert exceeds the size of " + name + "!");
72 | if (srcOffset >= source.Length) throw new Exception("The source address exceeds the size of the file!");
73 | if (destOffset >= destination.Length) throw new Exception("The destination address exceeds the size of " + name + "!");
74 | if (srcOffset + len + ((endian == 1 && len % 2 == 1) ? 1 : 0) > source.Length) throw new Exception("The amount of data to insert exceeds the size of the file!");
75 | // I don't know why anyone would import an odd amount of bytes via big endian but who knows?
76 |
77 | // Trust me on this voodoo, I used k-maps
78 | int srcStep = transfer >= 4 ? 2 : 1;
79 | int destStep = (transfer % 3 >= 1) && (transfer < 6) ? 2 : 1;
80 | bool endianFlip = (endian == 1) && (transfer == 0 || transfer == 3);
81 | if (transfer == 4 || transfer == 6 + endian) srcOffset++;
82 | if (transfer % 3 == endian + 1 && transfer < 6) destOffset++;
83 |
84 | for (int i = 0, j = 0; i < len; i += srcStep, j += destStep)
85 | {
86 | destination[(destOffset + j) % destination.Length] = source[srcOffset + i + (endianFlip ? Util.Endianness[i % 2] : 0)];
87 | }
88 |
89 | this.DialogResult = DialogResult.OK;
90 | this.Close();
91 | } catch (Exception ex)
92 | {
93 | MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
94 | }
95 | }
96 |
97 | private void button3_Click(object sender, EventArgs e)
98 | {
99 | DialogResult result = openFileDialog1.ShowDialog();
100 | if (result == DialogResult.OK)
101 | {
102 | string file = openFileDialog1.FileName;
103 | try
104 | {
105 | source = File.ReadAllBytes(file);
106 |
107 | if (defLen < 0)
108 | {
109 | len = source.Length >= destination.Length ? destination.Length : source.Length;
110 | textBox2.Text = "$" + Util.DecToHex(len, 0);
111 | }
112 |
113 | textBox1.Text = file;
114 | textBox2.Enabled = true;
115 | textBox3.Enabled = true;
116 | textBox4.Enabled = true;
117 | comboBox1.Enabled = true;
118 | comboBox2.Enabled = true;
119 | comboBox3.Enabled = true;
120 | comboBox4.Enabled = true;
121 | button2.Enabled = true;
122 | } catch (Exception)
123 | {
124 |
125 | }
126 | }
127 | }
128 | }
129 | }
130 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/ImportData.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/OAMEditor.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/OBJEditor.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/PPURegEditor.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/PPURegEditor2.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace SuperTileMapper
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new SuperTileMapper());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Project.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 |
9 | namespace SuperTileMapper
10 | {
11 | public static class Project
12 | {
13 | public static string currentFile = null;
14 | public static bool unsavedChanges = false;
15 | public static byte[] watermark = new byte[] { 0x53, 0x75, 0x70, 0x65, 0x72, 0x54, 0x69, 0x6C, 0x65, 0x4D, 0x61, 0x70, 0x70, 0x65, 0x72 };
16 |
17 | public static void NewProject()
18 | {
19 | for (int i = 0; i < Data.VRAM_SIZE; i++) Data.SetVRAMByte(i, 0);
20 | for (int i = 0; i < Data.CGRAM_SIZE; i++) Data.SetCGRAMByte(i, 0);
21 | for (int i = 0; i < Data.OAM_SIZE; i++) Data.SetOAMByte(i, 0);
22 | for (int i = 0; i < 0x34; i++) Data.SetPPURegBits(i, 0xFFFF, 0);
23 |
24 | Data.SetPPURegBits(0x00, 0x000F, 0x000F); // full brightness
25 | Data.SetPPURegBits(0x1B, 0xFFFF, 0x0100); // identity
26 | Data.SetPPURegBits(0x1E, 0xFFFF, 0x0100); // matrix
27 | Data.SetPPURegBits(0x30, 0x0030, 0x0030); // disable color math
28 |
29 | unsavedChanges = false;
30 | currentFile = null;
31 | }
32 |
33 | public static void SaveProject(string filename)
34 | {
35 | try
36 | {
37 | int headerSize = 0x100;
38 | byte[] data = SaveVersion0();
39 | byte[] everything = new byte[headerSize + data.Length];
40 | everything[0] = 0; // version
41 | watermark.CopyTo(everything, 1);
42 | data.CopyTo(everything, headerSize);
43 |
44 | File.WriteAllBytes(filename, everything);
45 | unsavedChanges = false;
46 | currentFile = filename;
47 | }
48 | catch (Exception e)
49 | {
50 | MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
51 | }
52 | }
53 |
54 | private static byte[] SaveVersion0()
55 | {
56 | byte[] data = new byte[Data.VRAM_SIZE + Data.CGRAM_SIZE + Data.OAM_SIZE + 2 * 0x34];
57 |
58 | int locationVRAM = 0;
59 | int locationCGRAM = locationVRAM + Data.VRAM_SIZE;
60 | int locationOAM = locationCGRAM + Data.CGRAM_SIZE;
61 | int locationPPUReg = locationOAM + Data.OAM_SIZE;
62 |
63 | data[0x10] = (byte)locationVRAM;
64 | data[0x11] = (byte)(locationVRAM >> 8);
65 | data[0x12] = (byte)(locationVRAM >> 16);
66 | data[0x13] = (byte)(locationVRAM >> 24);
67 | data[0x14] = (byte)locationCGRAM;
68 | data[0x15] = (byte)(locationCGRAM >> 8);
69 | data[0x16] = (byte)(locationCGRAM >> 16);
70 | data[0x17] = (byte)(locationCGRAM >> 24);
71 | data[0x18] = (byte)locationOAM;
72 | data[0x19] = (byte)(locationOAM >> 8);
73 | data[0x1A] = (byte)(locationOAM >> 16);
74 | data[0x1B] = (byte)(locationOAM >> 24);
75 | data[0x1C] = (byte)locationPPUReg;
76 | data[0x1D] = (byte)(locationPPUReg >> 8);
77 | data[0x1E] = (byte)(locationPPUReg >> 16);
78 | data[0x1F] = (byte)(locationPPUReg >> 24);
79 |
80 | Data.GetVRAMArray().CopyTo(data, locationVRAM);
81 | Data.GetCGRAMArray().CopyTo(data, locationCGRAM);
82 | Data.GetOAMArray().CopyTo(data, locationOAM);
83 | for (int i = 0; i < 0x34; i++)
84 | {
85 | int val = Data.GetPPUReg(i);
86 | data[locationPPUReg + 2 * i + 0] = (byte)val;
87 | data[locationPPUReg + 2 * i + 1] = (byte)(val >> 8);
88 | }
89 |
90 | return data;
91 | }
92 |
93 | public static bool TryOpenProject(string filename)
94 | {
95 | try
96 | {
97 | byte[] raw = File.ReadAllBytes(filename);
98 |
99 | for (int i = 0; i < watermark.Length; i++)
100 | {
101 | if (raw[i + 1] != watermark[i])
102 | {
103 | throw new Exception("This is not a valid SuperTileMapper file!");
104 | }
105 | }
106 |
107 | byte version = raw[0];
108 |
109 | switch (version)
110 | {
111 | case 0: OpenVersion0(raw); break;
112 | default: throw new Exception("This is not a valid SuperTileMapper file!");
113 | }
114 |
115 | unsavedChanges = false;
116 | currentFile = filename;
117 | return true;
118 | } catch (Exception e)
119 | {
120 | MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
121 | return false;
122 | }
123 | }
124 |
125 | private static void OpenVersion0(byte[] raw)
126 | {
127 | int headerSize = 0x100;
128 | int locationVRAM = headerSize;
129 | int locationCGRAM = locationVRAM + Data.VRAM_SIZE;
130 | int locationOAM = locationCGRAM + Data.CGRAM_SIZE;
131 | int locationPPUReg = locationOAM + Data.OAM_SIZE;
132 |
133 | if (raw.Length != locationPPUReg + 2 * 0x34)
134 | {
135 | throw new Exception("This is not a valid SuperTileMapper file!");
136 | }
137 |
138 | for (int i = 0; i < Data.VRAM_SIZE; i++) Data.SetVRAMByte(i, raw[locationVRAM + i]);
139 | for (int i = 0; i < Data.CGRAM_SIZE; i++) Data.SetCGRAMByte(i, raw[locationCGRAM + i]);
140 | for (int i = 0; i < Data.OAM_SIZE; i++) Data.SetOAMByte(i, raw[locationOAM + i]);
141 | for (int i = 0; i < 0x34; i++)
142 | {
143 | int regLow = 0xFF & raw[locationPPUReg + 2 * i + 0];
144 | int regHigh = 0xFF & raw[locationPPUReg + 2 * i + 1];
145 | int regWord = (regHigh << 8) | regLow;
146 | Data.SetPPURegBits(i, 0xFFFF, regWord);
147 | }
148 | }
149 | }
150 | }
151 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SuperTileMapper")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SuperTileMapper")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("b09934cc-950b-4c63-8265-463d7cd0a936")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Properties/DataSources/Data.datasource:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 | SuperTileMapper.Data, SuperTileMapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SuperTileMapper.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SuperTileMapper.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SuperTileMapper.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/SuperTileMapper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace SuperTileMapper
13 | {
14 | public partial class SuperTileMapper : Form
15 | {
16 | public static VRAMEditor vram;
17 | public static CGRAMEditor cgram;
18 | public static OAMEditor oam;
19 | public static PPURegEditor2 ppu2;
20 | public static TilemapEditor tmap;
21 | public static OBJEditor obj;
22 |
23 | public SuperTileMapper()
24 | {
25 | InitializeComponent();
26 | }
27 |
28 | private void toolStripMenuItem1_Click(object sender, EventArgs e)
29 | {
30 |
31 | }
32 |
33 | private void Form1_Load(object sender, EventArgs e)
34 | {
35 | tmap = new TilemapEditor();
36 | tmap.Close();
37 | obj = new OBJEditor();
38 | obj.Close();
39 | vram = new VRAMEditor();
40 | vram.Close();
41 | cgram = new CGRAMEditor();
42 | cgram.Close();
43 | oam = new OAMEditor();
44 | oam.Close();
45 | ppu2 = new PPURegEditor2();
46 | ppu2.Close();
47 |
48 | Project.NewProject();
49 | RedrawAllWindows();
50 | }
51 |
52 | private void vRAMEditorToolStripMenuItem_Click(object sender, EventArgs e)
53 | {
54 | if (vram.IsDisposed)
55 | {
56 | vram = new VRAMEditor();
57 | }
58 | vram.Show();
59 | }
60 |
61 | private void cGRAMEditorToolStripMenuItem_Click(object sender, EventArgs e)
62 | {
63 | if (cgram.IsDisposed)
64 | {
65 | cgram = new CGRAMEditor();
66 | }
67 | cgram.Show();
68 | }
69 |
70 | private void oAMEditorToolStripMenuItem_Click(object sender, EventArgs e)
71 | {
72 | if (oam.IsDisposed)
73 | {
74 | oam = new OAMEditor();
75 | }
76 | oam.Show();
77 | }
78 |
79 | private void pPURegistersToolStripMenuItem_Click(object sender, EventArgs e)
80 | {
81 | if (ppu2.IsDisposed)
82 | {
83 | ppu2 = new PPURegEditor2();
84 | }
85 | ppu2.Show();
86 | }
87 |
88 | private void tilemapEditorToolStripMenuItem_Click(object sender, EventArgs e)
89 | {
90 | if (tmap.IsDisposed)
91 | {
92 | tmap = new TilemapEditor();
93 | }
94 | tmap.Show();
95 | }
96 |
97 | private void oBJEditorToolStripMenuItem_Click(object sender, EventArgs e)
98 | {
99 | if (obj.IsDisposed)
100 | {
101 | obj = new OBJEditor();
102 | }
103 | obj.Show();
104 | }
105 |
106 | private void exitToolStripMenuItem_Click(object sender, EventArgs e)
107 | {
108 | if (ContinueUnsavedChanges())
109 | {
110 | Application.Exit();
111 | }
112 | }
113 |
114 | private void SuperTileMapper_Resize(object sender, EventArgs e)
115 | {
116 | bool vis = (WindowState != FormWindowState.Minimized);
117 | if (!vram.IsDisposed && vis) vram.Show();
118 | if (!vram.IsDisposed && !vis) vram.Hide();
119 | if (!cgram.IsDisposed && vis) cgram.Show();
120 | if (!cgram.IsDisposed && !vis) cgram.Hide();
121 | if (!oam.IsDisposed && vis) oam.Show();
122 | if (!oam.IsDisposed && !vis) oam.Hide();
123 | if (!ppu2.IsDisposed && vis) ppu2.Show();
124 | if (!ppu2.IsDisposed && !vis) ppu2.Hide();
125 | if (!tmap.IsDisposed && vis) tmap.Show();
126 | if (!tmap.IsDisposed && !vis) tmap.Hide();
127 | if (!obj.IsDisposed && vis) obj.Show();
128 | if (!obj.IsDisposed && !vis) obj.Hide();
129 | }
130 |
131 | private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
132 | {
133 | About about = new About();
134 | about.ShowDialog();
135 | }
136 |
137 | private void RedrawAllWindows()
138 | {
139 | SNESGraphics.UpdateAll();
140 | if (vram != null && vram.Visible) vram.RedrawAll();
141 | if (cgram != null && cgram.Visible) cgram.RedrawAll();
142 | if (oam != null && oam.Visible) oam.RedrawAll();
143 | if (ppu2 != null && ppu2.Visible) ppu2.RedrawAll();
144 | if (tmap != null && tmap.Visible) tmap.RedrawAll();
145 | if (obj != null && obj.Visible) obj.RedrawAll();
146 | }
147 |
148 | private bool ContinueUnsavedChanges()
149 | {
150 | if (Project.unsavedChanges)
151 | {
152 | DialogResult confirm = MessageBox.Show("You have unsaved changes. They will be lost if you continue.", "Unsaved Changes", MessageBoxButtons.OKCancel);
153 | return confirm == DialogResult.OK;
154 | }
155 | return true;
156 | }
157 |
158 | private void newToolStripMenuItem_Click(object sender, EventArgs e)
159 | {
160 | if (ContinueUnsavedChanges())
161 | {
162 | Project.NewProject();
163 | saveProjectToolStripMenuItem.Enabled = false;
164 | RedrawAllWindows();
165 | }
166 | }
167 |
168 | private void openToolStripMenuItem_Click(object sender, EventArgs e)
169 | {
170 | if (ContinueUnsavedChanges())
171 | {
172 | DialogResult result = openFileDialog1.ShowDialog();
173 | if (result == DialogResult.OK)
174 | {
175 | if (Project.TryOpenProject(openFileDialog1.FileName))
176 | {
177 | saveProjectToolStripMenuItem.Enabled = true;
178 | RedrawAllWindows();
179 | }
180 | }
181 | }
182 | }
183 |
184 | private void saveProjectToolStripMenuItem_Click(object sender, EventArgs e)
185 | {
186 | Project.SaveProject(Project.currentFile);
187 | }
188 |
189 | private void saveProjectAsToolStripMenuItem_Click(object sender, EventArgs e)
190 | {
191 | DialogResult result = saveFileDialog1.ShowDialog();
192 | if (result == DialogResult.OK && saveFileDialog1.FileName != "")
193 | {
194 | Project.SaveProject(saveFileDialog1.FileName);
195 | saveProjectToolStripMenuItem.Enabled = true;
196 | }
197 | }
198 |
199 | private void revertUnsavedChangesToolStripMenuItem_Click(object sender, EventArgs e)
200 | {
201 | if (ContinueUnsavedChanges())
202 | {
203 | if (Project.currentFile == null)
204 | {
205 | Project.NewProject();
206 | } else
207 | {
208 | Project.TryOpenProject(Project.currentFile);
209 | }
210 | RedrawAllWindows();
211 | }
212 | }
213 |
214 | private void importEmulatorStateToolStripMenuItem_Click(object sender, EventArgs e)
215 | {
216 | if (ContinueUnsavedChanges())
217 | {
218 | DialogResult result = openFileDialog2.ShowDialog();
219 | if (result == DialogResult.OK)
220 | {
221 | if (Emulator.TryImportEmulator(openFileDialog2.FileName))
222 | {
223 | saveProjectToolStripMenuItem.Enabled = true;
224 | RedrawAllWindows();
225 | }
226 | }
227 | }
228 | }
229 | }
230 | }
231 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/SuperTileMapper.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ShowAllFiles
5 |
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/SuperTileMapper.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 133, 17
122 |
123 |
124 | 288, 17
125 |
126 |
127 | 403, 17
128 |
129 |
130 | 543, 17
131 |
132 |
133 | 679, 17
134 |
135 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/TilemapEditor.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/Util.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace SuperTileMapper
9 | {
10 | public static class Util
11 | {
12 | public static int[] Endianness = new int[] { 1, -1 };
13 |
14 | public static int[,,] OBJsizes = new int[,,] {
15 | { {8,8}, {16,16} },
16 | { {8,8}, {32,32} },
17 | { {8,8}, {64,64} },
18 | { {16,16}, {32,32} },
19 | { {16,16}, {64,64} },
20 | { {32,32}, {64,64} },
21 | { {16,32}, {32,64} },
22 | { {16,32}, {32,32} }
23 | };
24 |
25 | public static int HexOrDecToDec(string val)
26 | {
27 | if (val[0] == '$')
28 | {
29 | return int.Parse(val.Substring(1), System.Globalization.NumberStyles.HexNumber);
30 | } else
31 | {
32 | return int.Parse(val);
33 | }
34 | }
35 |
36 | public static bool TryHexOrDecToDec(string val, out int result)
37 | {
38 | try
39 | {
40 | result = HexOrDecToDec(val);
41 | return true;
42 | } catch (Exception)
43 | {
44 | result = -1;
45 | return false;
46 | }
47 | }
48 |
49 | public static string DecToHex(int val, int digits)
50 | {
51 | int mask = digits == 0 ? -1 : ~(-1 << (4 * digits));
52 | string hex = (val & mask).ToString("X");
53 | int idx = digits - hex.Length;
54 | return "00000000".Substring(0, idx < 0 ? 0 : idx) + hex;
55 | }
56 |
57 | public static int Clamp(int val, int min, int max)
58 | {
59 | return (val < min ? min : (val > max ? max : val));
60 | }
61 |
62 | public static double Clamp(double val, double min, double max)
63 | {
64 | return (val < min ? min : (val > max ? max : val));
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/VRAMEditor.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.exe
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.pdb
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.vshost.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.vshost.exe
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.vshost.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Debug/SuperTileMapper.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.exe
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.pdb
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.vshost.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.vshost.exe
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.vshost.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/bin/Release/SuperTileMapper.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/Be.Windows.Forms.HexBox.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/Be.Windows.Forms.HexBox.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/DesignTimeResolveAssemblyReferences.cache
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.About.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.About.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.Be.Windows.Forms.HexBox.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.Be.Windows.Forms.HexBox.Properties.Resources.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.CGRAMEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.CGRAMEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.ExportData.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.ExportData.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.ImportData.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.ImportData.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.OAMEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.OAMEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.PPURegEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.PPURegEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.Properties.Resources.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.SuperTileMapper.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.SuperTileMapper.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.TilemapEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.TilemapEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.VRAMEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.VRAMEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Debug\SuperTileMapper.exe.config
2 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Debug\SuperTileMapper.exe
3 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Debug\SuperTileMapper.pdb
4 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.Properties.Resources.resources
5 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.csproj.GenerateResource.Cache
6 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.exe
7 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.pdb
8 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.SuperTileMapper.resources
9 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.VRAMEditor.resources
10 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.ImportData.resources
11 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.ExportData.resources
12 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.CGRAMEditor.resources
13 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.About.resources
14 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.OAMEditor.resources
15 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.PPURegEditor.resources
16 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\Be.Windows.Forms.HexBox.resources
17 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.Be.Windows.Forms.HexBox.Properties.Resources.resources
18 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.TilemapEditor.resources
19 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.csprojResolveAssemblyReference.cache
20 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Debug\SuperTileMapper.exe.config
21 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Debug\SuperTileMapper.exe
22 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Debug\SuperTileMapper.pdb
23 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.csprojAssemblyReference.cache
24 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.About.resources
25 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\Be.Windows.Forms.HexBox.resources
26 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.Be.Windows.Forms.HexBox.Properties.Resources.resources
27 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.CGRAMEditor.resources
28 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.ExportData.resources
29 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.ImportData.resources
30 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.OAMEditor.resources
31 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.OBJEditor.resources
32 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.PPURegEditor.resources
33 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.SuperTileMapper.resources
34 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.Properties.Resources.resources
35 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.TilemapEditor.resources
36 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.VRAMEditor.resources
37 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.csproj.GenerateResource.cache
38 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.csproj.CoreCompileInputs.cache
39 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.exe
40 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.pdb
41 | C:\Users\Alex\Documents\Visual Studio 2017\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Debug\SuperTileMapper.PPURegEditor2.resources
42 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.csproj.GenerateResource.Cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.csproj.GenerateResource.Cache
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.exe
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/SuperTileMapper.pdb
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.About.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.About.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.CGRAMEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.CGRAMEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.ExportData.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.ExportData.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.ImportData.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.ImportData.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.OAMEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.OAMEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.PPURegEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.PPURegEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.Properties.Resources.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.SuperTileMapper.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.SuperTileMapper.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.VRAMEditor.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.VRAMEditor.resources
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Release\SuperTileMapper.exe.config
2 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Release\SuperTileMapper.exe
3 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\bin\Release\SuperTileMapper.pdb
4 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.About.resources
5 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.CGRAMEditor.resources
6 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.ExportData.resources
7 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.ImportData.resources
8 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.OAMEditor.resources
9 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.PPURegEditor.resources
10 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.SuperTileMapper.resources
11 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.Properties.Resources.resources
12 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.VRAMEditor.resources
13 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.csproj.GenerateResource.Cache
14 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.exe
15 | C:\Users\Alex\Documents\SuperTileMapper\SuperTileMapper\SuperTileMapper\obj\Release\SuperTileMapper.pdb
16 |
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.csproj.GenerateResource.Cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.csproj.GenerateResource.Cache
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.exe
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/SuperTileMapper.pdb
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
--------------------------------------------------------------------------------
/SuperTileMapper/SuperTileMapper/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/SuperTileMapper/SuperTileMapper/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
--------------------------------------------------------------------------------
/testdata/bytes.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/bytes.bin
--------------------------------------------------------------------------------
/testdata/emulator/Bizhawk.State:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/emulator/Bizhawk.State
--------------------------------------------------------------------------------
/testdata/emulator/bSNES.bst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/emulator/bSNES.bst
--------------------------------------------------------------------------------
/testdata/emulator/lsnes.lsmv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/emulator/lsnes.lsmv
--------------------------------------------------------------------------------
/testdata/emulator/snes9x.state:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/emulator/snes9x.state
--------------------------------------------------------------------------------
/testdata/emulator/zsnes.zst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/emulator/zsnes.zst
--------------------------------------------------------------------------------
/testdata/mariokart/cgram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/mariokart/cgram.bin
--------------------------------------------------------------------------------
/testdata/mariokart/mariokart.stm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/mariokart/mariokart.stm
--------------------------------------------------------------------------------
/testdata/mariokart/oam.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/mariokart/oam.bin
--------------------------------------------------------------------------------
/testdata/mariokart/ppuregs.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/mariokart/ppuregs.bin
--------------------------------------------------------------------------------
/testdata/mariokart/vram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/mariokart/vram.bin
--------------------------------------------------------------------------------
/testdata/sd2snes/cgram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/sd2snes/cgram.bin
--------------------------------------------------------------------------------
/testdata/sd2snes/oam.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/sd2snes/oam.bin
--------------------------------------------------------------------------------
/testdata/sd2snes/ppuregs.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/sd2snes/ppuregs.bin
--------------------------------------------------------------------------------
/testdata/sd2snes/sd2snes.stm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/sd2snes/sd2snes.stm
--------------------------------------------------------------------------------
/testdata/sd2snes/vram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/sd2snes/vram.bin
--------------------------------------------------------------------------------
/testdata/smb3battle/cgram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smb3battle/cgram.bin
--------------------------------------------------------------------------------
/testdata/smb3battle/oam.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smb3battle/oam.bin
--------------------------------------------------------------------------------
/testdata/smb3battle/ppuregs.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smb3battle/ppuregs.bin
--------------------------------------------------------------------------------
/testdata/smb3battle/smb3battle.stm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smb3battle/smb3battle.stm
--------------------------------------------------------------------------------
/testdata/smb3battle/vram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smb3battle/vram.bin
--------------------------------------------------------------------------------
/testdata/smw/cgram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smw/cgram.bin
--------------------------------------------------------------------------------
/testdata/smw/oam.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smw/oam.bin
--------------------------------------------------------------------------------
/testdata/smw/ppuregs.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smw/ppuregs.bin
--------------------------------------------------------------------------------
/testdata/smw/smw.stm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smw/smw.stm
--------------------------------------------------------------------------------
/testdata/smw/vram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/smw/vram.bin
--------------------------------------------------------------------------------
/testdata/testOutput.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/testOutput.bin
--------------------------------------------------------------------------------
/testdata/tetrisattack/cgram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/tetrisattack/cgram.bin
--------------------------------------------------------------------------------
/testdata/tetrisattack/oam.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/tetrisattack/oam.bin
--------------------------------------------------------------------------------
/testdata/tetrisattack/ppuregs.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/tetrisattack/ppuregs.bin
--------------------------------------------------------------------------------
/testdata/tetrisattack/tetrisattack.stm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/tetrisattack/tetrisattack.stm
--------------------------------------------------------------------------------
/testdata/tetrisattack/vram.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/tetrisattack/vram.bin
--------------------------------------------------------------------------------
/testdata/words.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IsoFrieze/SuperTileMapper/9108e7f4eaa8fbe3b2debfdd0d534c4de469a848/testdata/words.bin
--------------------------------------------------------------------------------