discontinue single character file format

This commit is contained in:
Persephone Bubblegum-Holidy 2025-06-01 13:55:57 -07:00
parent 4ec6533971
commit 5d216840db
23 changed files with 56 additions and 244 deletions

View file

@ -1,4 +1,4 @@
# PINKCONNECTION2 Bit Mappings # UST Bit Mappings
This information was sourced from Cheese-E-Pedia, the Showbiz Pizza Cyberstar Install Manual, and the Chuck E. Cheese 2-Stage Install Manual. This information was sourced from Cheese-E-Pedia, the Showbiz Pizza Cyberstar Install Manual, and the Chuck E. Cheese 2-Stage Install Manual.
@ -6,7 +6,7 @@ This information was sourced from Cheese-E-Pedia, the Showbiz Pizza Cyberstar In
### Rolfe Dewolfe & Earl Schmerle/Chuck E. Cheese ### Rolfe Dewolfe & Earl Schmerle/Chuck E. Cheese
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ | | --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ |
| Mouth | 1 | 1 | 1 | 1-1 | TB1 1-2 H1 | No | | Mouth | 1 | 1 | 1 | 1-1 | TB1 1-2 H1 | No |
| Left Ear | 2 | 2 | 9 | 1-9 | | | | Left Ear | 2 | 2 | 9 | 1-9 | | |
@ -35,7 +35,7 @@ Earl's movements were removed during Concept Unification.
### Mitzi Mozzarella/Helen Henny ### Mitzi Mozzarella/Helen Henny
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ | | --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ |
| Mouth | 1 | 23 | 185 | 2-35 | TB1 1-2 H5 | No | | Mouth | 1 | 23 | 185 | 2-35 | TB1 1-2 H5 | No |
| Left Ear | 2 | 24 | 176 | 2-26 | | | | Left Ear | 2 | 24 | 176 | 2-26 | | |
@ -61,7 +61,7 @@ No movements were removed during Concept Unification.
### Fatz Geronimo/Mr. Munch ### Fatz Geronimo/Mr. Munch
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ | | --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ |
| Mouth | 1 | 42 | 45 | 1-45 | TB1 1-2 H4 | No | | Mouth | 1 | 42 | 45 | 1-45 | TB1 1-2 H4 | No |
| Left Eyelid | 2 | 43 | 41 | 1-41 | TB1 11-12 H4 | Yes | | Left Eyelid | 2 | 43 | 41 | 1-41 | TB1 11-12 H4 | Yes |
@ -84,7 +84,7 @@ No movements were removed during Concept Unification.
### Beach Bear/Jasper T. Jowls ### Beach Bear/Jasper T. Jowls
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------------------- | ------------ | | --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------------------- | ------------ |
| Mouth | 1 | 58 | 166 | 2-16 | TB1 1-2 H2 | No | | Mouth | 1 | 58 | 166 | 2-16 | TB1 1-2 H2 | No |
| Left Eyelid | 2 | 59 | 151 | 2-1 | TB1 11-12 H2 | Yes | | Left Eyelid | 2 | 59 | 151 | 2-1 | TB1 11-12 H2 | Yes |
@ -107,7 +107,7 @@ No movements were removed during Concept Unification.
### Dook Larue/Pasqually ### Dook Larue/Pasqually
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | R12 Bit | R12 Inverted |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ | | --------------- | ------------------------ | ------------------ | ------------- | ----------- | ------------ | ------------ |
| Mouth | 1 | 74 | 30 | 1-30 | TB1 1-2 H3 | No | | Mouth | 1 | 74 | 30 | 1-30 | TB1 1-2 H3 | No |
| Left Ear | 2 | 75 | 23 | 1-23 | | | | Left Ear | 2 | 75 | 23 | 1-23 | | |
@ -131,7 +131,7 @@ Ear movements and Kick Drum were removed during Concept Unification.
### Billy Bob ### Billy Bob
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | | --------------- | ------------------------ | ------------------ | ------------- | ----------- |
| Mouth | 1 | 91 | 196 | 2-46 | | Mouth | 1 | 91 | 196 | 2-46 |
| Left Eyelid | 2 | 92 | 197 | 2-47 | | Left Eyelid | 2 | 92 | 197 | 2-47 |
@ -158,7 +158,7 @@ Entire bot was removed during Concept Unification.
### Looney Bird/Pizzacam ### Looney Bird/Pizzacam
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | Greybox Bit |
| --------------- | ------------------------ | ------------------ | ------------- | ----------- | | --------------- | ------------------------ | ------------------ | ------------- | ----------- |
| Mouth | 1 | 111 | 167 | 2-17 | | Mouth | 1 | 111 | 167 | 2-17 |
| Left Eyelid | 2 | 112 | 191 | 2-41 | | Left Eyelid | 2 | 112 | 191 | 2-41 |
@ -277,7 +277,7 @@ Hand movement was removed during Concept Unification.
### Chuck E. Cheese ### Chuck E. Cheese
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit | | Movement Name | Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit |
| ------------- | ------------------------ | ------------------ | ------------- | ------------ | | ------------- | ------------------------ | ------------------ | ------------- | ------------ |
| Mouth | 1 | 1 | 1 | TB1 1-2 H1 | | Mouth | 1 | 1 | 1 | TB1 1-2 H1 |
| Head Left | 2 | 2 | 2 | TB1 3-4 H1 | | Head Left | 2 | 2 | 2 | TB1 3-4 H1 |
@ -290,7 +290,7 @@ Hand movement was removed during Concept Unification.
### Helen Henny/Guest Star ### Helen Henny/Guest Star
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit |
| ------------- | ------------------------ | ------------------ | ------------- | ------------ | | ------------- | ------------------------ | ------------------ | ------------- | ------------ |
| Mouth | 1 | 9 | 65 | TB1 1-2 H5 | | Mouth | 1 | 9 | 65 | TB1 1-2 H5 |
| Head Left | 2 | 10 | 66 | TB1 3-4 H5 | | Head Left | 2 | 10 | 66 | TB1 3-4 H5 |
@ -303,7 +303,7 @@ Hand movement was removed during Concept Unification.
### Mr. Munch ### Mr. Munch
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit |
| ------------- | ------------------------ | ------------------ | ------------- | ------------ | | ------------- | ------------------------ | ------------------ | ------------- | ------------ |
| Mouth | 1 | 17 | 49 | TB1 1-2 H4 | | Mouth | 1 | 17 | 49 | TB1 1-2 H4 |
| Head Left | 2 | 18 | 50 | TB1 3-4 H4 | | Head Left | 2 | 18 | 50 | TB1 3-4 H4 |
@ -316,7 +316,7 @@ Hand movement was removed during Concept Unification.
### Jasper T. Jowls ### Jasper T. Jowls
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit |
| ------------- | ------------------------ | ------------------ | ------------- | ------------ | | ------------- | ------------------------ | ------------------ | ------------- | ------------ |
| Mouth | 1 | 25 | 17 | TB1 1-2 H2 | | Mouth | 1 | 25 | 17 | TB1 1-2 H2 |
| Head Left | 2 | 26 | 18 | TB1 3-4 H2 | | Head Left | 2 | 26 | 18 | TB1 3-4 H2 |
@ -329,7 +329,7 @@ Hand movement was removed during Concept Unification.
### Pasqually ### Pasqually
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | CCS Bit |
| ------------- | ------------------------ | ------------------ | ------------- | ------------ | | ------------- | ------------------------ | ------------------ | ------------- | ------------ |
| Mouth | 1 | 33 | 33 | TB1 1-2 H3 | | Mouth | 1 | 33 | 33 | TB1 1-2 H3 |
| Head Left | 2 | 34 | 34 | TB1 3-4 H3 | | Head Left | 2 | 34 | 34 | TB1 3-4 H3 |
@ -427,7 +427,7 @@ Hand movement was removed during Concept Unification.
### Chuck E. ### Chuck E.
| Movement Name | UST Single Character Bit | UST Full Stage Bit | RR Engine Bit | DTU Bit | 16M | | Movement Name | UST Character Bit | UST Full Stage Bit | RR Engine Bit | DTU Bit | 16M |
| ----------------- | ------------------------ | ------------------ | ------------- | ------- | --- | | ----------------- | ------------------------ | ------------------ | ------------- | ------- | --- |
| Mouth | 1 | 1 | 21 | 1-21 | Yes | | Mouth | 1 | 1 | 21 | 1-21 | Yes |
| Nose | 2 | 2 | 28 | 1-28 | No | | Nose | 2 | 2 | 28 | 1-28 | No |

View file

@ -1,18 +1,15 @@
# Future Goals # Future Goals
## PC2Converter ## USTConverter
- .SHW (ProgramBlue) input format - .SHW (ProgramBlue) input format
- .3ST/.R12/.C&R (APS) input format - .3ST/.R12/.C&R (APS) input format
- Biphase (Pianocorder and Cyberstar) from tape input format - Biphase (Pianocorder and Cyberstar) from tape input format
- Studio C from Floppy Disk input format - Studio C from Floppy Disk input format
- UST Full Stage to Single Character Stripper
## PC2Player ## PC2Player
- ~~make the program~~ done!! - burn the damn thing to the ground and start over
- fix memory leak issue
- make audio player work on windows
## Firmwares ## Firmwares

View file

@ -1,7 +1,7 @@
using System; using System;
using Eto.Forms; using Eto.Forms;
namespace PC2Converter.Gtk namespace USTConverter.Gtk
{ {
class Program class Program
{ {

View file

@ -7,7 +7,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\PC2Converter\PC2Converter.csproj" /> <ProjectReference Include="..\USTConverter\USTConverter.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -3,11 +3,11 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>PC2Converter</string> <string>USTConverter</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.example.PC2Converter</string> <string>me.kawaiizenbo.USTConverter</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.0</string> <string>1.3</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.15</string> <string>10.15</string>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>

View file

@ -1,7 +1,7 @@
using System; using System;
using Eto.Forms; using Eto.Forms;
namespace PC2Converter.Mac namespace USTConverter.Mac
{ {
class Program class Program
{ {

View file

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\PC2Converter\PC2Converter.csproj" /> <ProjectReference Include="..\USTConverter\USTConverter.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -1,7 +1,7 @@
using System; using System;
using Eto.Forms; using Eto.Forms;
namespace PC2Converter.Wpf namespace USTConverter.Wpf
{ {
class Program class Program
{ {

View file

@ -7,7 +7,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\PC2Converter\PC2Converter.csproj" /> <ProjectReference Include="..\USTConverter\USTConverter.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -1,19 +1,17 @@
using System;
using System.Collections; using System.Collections;
using System.Diagnostics; using System.Diagnostics;
using System.Numerics;
using System.IO; using System.IO;
using System.Numerics;
using Eto.Forms; using Eto.Forms;
using Eto.Drawing; using Eto.Drawing;
namespace PC2Converter namespace USTConverter
{ {
public partial class MainForm : Form public partial class MainForm : Form
{ {
DropDown InputTypeSelector = new DropDown(); DropDown InputTypeSelector = new DropDown();
DropDown OutputTypeSelector = new DropDown(); DropDown OutputTypeSelector = new DropDown();
DropDown CharacterSelector = new DropDown();
TextBox FilePathTextBox = new TextBox(); TextBox FilePathTextBox = new TextBox();
Button BrowseFileButton = new Button { Text = "Browse", Width = 100 }; Button BrowseFileButton = new Button { Text = "Browse", Width = 100 };
Button ConvertButton = new Button { Text = "Convert", Width = 100 }; Button ConvertButton = new Button { Text = "Convert", Width = 100 };
@ -24,49 +22,12 @@ namespace PC2Converter
"3ST File (APS)", "ROA/R12/C&R File (APS)"*/ "3ST File (APS)", "ROA/R12/C&R File (APS)"*/
}; };
string[] RAE3stOutputTypes = { "UST 32 Bits (Single Bot RAE/3st)", "UST 8 Bits (Single Bot Cybers Rosetta)", "UST 256 Bits (Full RAE/3st)" , "UST 256 Bits (Full Cybers Rosetta)" }; string[] RAE3stOutputTypes = { "UST (Rock-afire Explosion/3-Stage)" , "UST (Cyberamics Rosetta)" };
string[] CyberOutputTypes = { "UST 8 Bits (Single Bot Cybers)", "UST 256 Bits (Full Cybers)" }; string[] CyberOutputTypes = { "UST (Cyberamics)" };
string[] StudioCOutputTypes = { "UST 32 Bits (Single Bot Studio C)", "UST 256 Bits (Full Studio C)" }; string[] StudioCOutputTypes = { "UST (Studio C)" };
string[] RAE3stCharacters = { "Rolfe/Chuck E.", "Mitzi/Helen", "Fatz/Munch", "Beach Bear/Jasper", "Dook/Pasqually", "Billy Bob", "Looney Bird/PizzaCam"};
string[] CyberCharacters = { "Chuck E.", "Helen/Guest Star", "Munch", "Jasper", "Pasqually" };
string[] StudioCCharacters = { "Chuck E." };
int[][] SC_CyberBitMap = int[] CyberBitMap = {
{
/* chuck */ new int[]{ 1, 2, 3, 4, 8, 5, 6, 7 },
/* helen */ new int[]{ 65, 66, 67, 68, 72, 69, 70, 71 },
/* munch */ new int[]{ 49, 50, 51, 56, 53, 54, 55, 52 },
/* jasper */ new int[]{ 17, 18, 19, 20, 24, 21, 22, 23 },
/* pasqually */ new int[]{ 33, 34, 35, 40, 37, 38, 39, 36 }
};
int[][] SC_CyberBitMapRosetta =
{
/* chuck */ new int[]{ 1, 6, 7, 8, 4, 5, 2, 19 },
/* helen */ new int[]{ 185, 178, 179, 180, 183, 184, 181, 169 },
/* munch */ new int[]{ 45, 54, 55, 43, 44, 41, 58, 59 },
/* jasper */ new int[]{ 166, 156, 157, 158, 156, 157, 151, 163 },
/* pasqually */ new int[]{ 30, 25, 21, 28, 29, 26, 31, 35 }
};
int[][] SC_RAE3stBitMap =
{
/* rolfe/chuck */ new int[]{ 1, 9, 10, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 17, 18, 19, 14, 15, 16, 20, 36, 37 },
/* mitzi/helen */ new int[]{ 185, 176, 177, 181, 182, 183, 184, 178, 179, 180, 173, 175, 174, 168, 170, 169, 186, 187, 188 },
/* fatz/munch */ new int[]{ 45, 41, 42, 43, 44, 54, 55, 51, 52, 53, 57, 59, 58, 60, 61, 62 },
/* beach bear/jasper */ new int[]{ 166, 151, 152, 153, 156, 157, 158, 161, 162, 163, 164, 154, 155, 159, 160, 165 },
/* dook/pasqually */ new int[]{ 30, 23, 24, 26, 27, 28, 29, 25, 21, 22, 33, 35, 34, 31, 32, 63, 64 },
/* billy bob */ new int[]{ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 189, 190, 194, 211, 212, 213 },
/* looney/pizzacam */ new int[]{ 167, 191, 192, 193, 171, 172, 48 }
};
int[][] SC_StudioCBitMap =
{
/* chuck e. */ new int[]{ 21, 28, 25, 24, 26, 27, 29, 30, 31, 18, 19, 23, 22, 20, 6, 7, 11, 8, 9, 10, 1, 2, 17, 3, 4, 5, 12, 16, 15, 13, 14, 32 }
};
int[] FS_CyberBitMap = {
1, 2, 3, 4, 8, 5, 6, 7, 1, 2, 3, 4, 8, 5, 6, 7,
65, 66, 67, 68, 72, 69, 70, 71, 65, 66, 67, 68, 72, 69, 70, 71,
49, 50, 51, 56, 53, 54, 55, 52, 49, 50, 51, 56, 53, 54, 55, 52,
@ -81,7 +42,7 @@ namespace PC2Converter
103, 105, 125, 121, 126, 99, 124, 122, 97, 98 103, 105, 125, 121, 126, 99, 124, 122, 97, 98
}; };
int[] FS_CyberBitMapRosetta = { int[] CyberBitMapRosetta = {
1, 6, 7, 8, 4, 5, 2, 19, 1, 6, 7, 8, 4, 5, 2, 19,
185, 178, 179, 180, 183, 184, 181, 169, 185, 178, 179, 180, 183, 184, 181, 169,
45, 54, 55, 43, 44, 41, 58, 59, 45, 54, 55, 43, 44, 41, 58, 59,
@ -96,7 +57,7 @@ namespace PC2Converter
220, 244, 245, 225, 77, 241, 240, 87, 222, 0 220, 244, 245, 225, 77, 241, 240, 87, 222, 0
}; };
int[] FS_RAE3stBitMap = { int[] RAE3stBitMap = {
1, 9, 10, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 17, 18, 19, 14, 15, 16, 20, 36, 37, 1, 9, 10, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 17, 18, 19, 14, 15, 16, 20, 36, 37,
185, 176, 177, 181, 182, 183, 184, 178, 179, 180, 173, 175, 174, 168, 170, 169, 186, 187, 188, 185, 176, 177, 181, 182, 183, 184, 178, 179, 180, 173, 175, 174, 168, 170, 169, 186, 187, 188,
45, 41, 42, 43, 44, 54, 55, 51, 52, 53, 57, 59, 58, 60, 61, 62, 45, 41, 42, 43, 44, 54, 55, 51, 52, 53, 57, 59, 58, 60, 61, 62,
@ -114,7 +75,7 @@ namespace PC2Converter
220, 244, 245, 225, 230, 241 220, 244, 245, 225, 230, 241
}; };
int[] FS_StudioCBitMap = { int[] StudioCBitMap = {
21, 28, 25, 24, 26, 27, 29, 30, 31, 18, 19, 23, 22, 20, 6, 7, 11, 8, 9, 10, 1, 2, 17, 3, 4, 5, 12, 16, 15, 13, 14, 32, 21, 28, 25, 24, 26, 27, 29, 30, 31, 18, 19, 23, 22, 20, 6, 7, 11, 8, 9, 10, 1, 2, 17, 3, 4, 5, 12, 16, 15, 13, 14, 32,
33, 36, 34, 35, 40, 160, 161, 33, 36, 34, 35, 40, 160, 161,
177, 178, 177, 178,
@ -130,12 +91,12 @@ namespace PC2Converter
bool FullStage = false; bool FullStage = false;
bool Rosetta = false; bool Rosetta = false;
const int USTVersion = 1; const int USTVersion = 2;
public MainForm() public MainForm()
{ {
Title = "PinkConnection2 Showtape Converter"; Title = "UST Showtape Converter";
Size = new Size(512, 384); Size = new Size(500, 300);
Maximizable = false; Maximizable = false;
Resizable = false; Resizable = false;
@ -143,7 +104,6 @@ namespace PC2Converter
ConvertButton.Command = new Command((sender, e) => { Event_ConvertFileButton(); }); ConvertButton.Command = new Command((sender, e) => { Event_ConvertFileButton(); });
InputTypeSelector.SelectedValueChanged += (sender, e) => Event_ChangeInputType(); InputTypeSelector.SelectedValueChanged += (sender, e) => Event_ChangeInputType();
OutputTypeSelector.SelectedValueChanged += (sender, e) => Event_ChangeOutputType();
foreach (string s in InputTypes) foreach (string s in InputTypes)
{ {
@ -173,14 +133,6 @@ namespace PC2Converter
layout.BeginHorizontal(); layout.BeginHorizontal();
layout.Add(OutputTypeSelector, true); layout.Add(OutputTypeSelector, true);
layout.EndHorizontal(); layout.EndHorizontal();
layout.BeginHorizontal();
layout.Add(new Label { Text = "Character" });
layout.EndHorizontal();
layout.BeginHorizontal();
layout.Add(CharacterSelector, true);
layout.EndHorizontal();
layout.EndVertical(); layout.EndVertical();
layout.BeginVertical(); layout.BeginVertical();
@ -209,51 +161,24 @@ namespace PC2Converter
return layout; return layout;
} }
string MakeHeader(string showName, string outputType, string character) string MakeHeader(string showName, string outputType)
{ {
string headerOut = $"UST,{USTVersion.ToString()},{showName.Replace(",", "_").Replace(";", "_")},"; string headerOut = $"UST,{USTVersion.ToString()},{showName.Replace(",", "_").Replace(";", "_")},";
bool fullStage = false;
switch (outputType) switch (outputType)
{ {
case "UST 32 Bits (Single Bot RAE/3st)": case "UST (Rock-afire Explosion/3-Stage)":
headerOut += "32,"; headerOut += "Rockafire Explosion/3-Stage;";
headerOut += "Rockafire Explosion/3-Stage (Single Character),";
break; break;
case "UST 8 Bits (Single Bot Cybers Rosetta)": case "UST (Cyberamics Rosetta)":
headerOut += "8,"; headerOut += "Cyberamics;";
headerOut += "Cyberamics (Single Character),";
break; break;
case "UST 256 Bits (Full RAE/3st)": case "UST (Cyberamics)":
headerOut += "256,"; headerOut += "Cyberamics;";
headerOut += "Rockafire Explosion/3-Stage (Full Stage),";
fullStage = true;
break; break;
case "UST 256 Bits (Full Cybers Rosetta)": case "UST (Studio C)":
headerOut += "256,"; headerOut += "Studio C;";
headerOut += "Cyberamics (Full Stage),";
fullStage = true;
break;
case "UST 8 Bits (Single Bot Cybers)":
headerOut += "8,";
headerOut += "Cyberamics (Single Character),";
break;
case "UST 256 Bits (Full Cybers)":
headerOut += "256,";
headerOut += "Cyberamics (Full Stage),";
fullStage = true;
break;
case "UST 32 Bits (Single Bot Studio C)":
headerOut += "32,";
headerOut += "Studio C (Single Character),";
break;
case "UST 256 Bits (Full Studio C)":
headerOut += "256,";
headerOut += "Studio C (Full Stage),";
fullStage = true;
break; break;
} }
if (fullStage) headerOut += "All,";
else headerOut += character + ";";
return headerOut; return headerOut;
} }
@ -263,7 +188,6 @@ namespace PC2Converter
{ {
case 0: case 0:
OutputTypeSelector.Items.Clear(); OutputTypeSelector.Items.Clear();
CharacterSelector.Items.Clear();
foreach (string s in RAE3stOutputTypes) foreach (string s in RAE3stOutputTypes)
{ {
OutputTypeSelector.Items.Add(s); OutputTypeSelector.Items.Add(s);
@ -271,7 +195,6 @@ namespace PC2Converter
break; break;
case 1: case 1:
OutputTypeSelector.Items.Clear(); OutputTypeSelector.Items.Clear();
CharacterSelector.Items.Clear();
foreach (string s in CyberOutputTypes) foreach (string s in CyberOutputTypes)
{ {
OutputTypeSelector.Items.Add(s); OutputTypeSelector.Items.Add(s);
@ -279,7 +202,6 @@ namespace PC2Converter
break; break;
case 2: case 2:
OutputTypeSelector.Items.Clear(); OutputTypeSelector.Items.Clear();
CharacterSelector.Items.Clear();
foreach (string s in StudioCOutputTypes) foreach (string s in StudioCOutputTypes)
{ {
OutputTypeSelector.Items.Add(s); OutputTypeSelector.Items.Add(s);
@ -288,92 +210,6 @@ namespace PC2Converter
} }
} }
void Event_ChangeOutputType()
{
switch(InputTypeSelector.SelectedIndex)
{
case 0:
switch(OutputTypeSelector.SelectedIndex)
{
case 0:
CharacterSelector.Items.Clear();
foreach (string s in RAE3stCharacters)
{
CharacterSelector.Items.Add(s);
}
CharacterSelector.Enabled = true;
Rosetta = false;
FullStage = false;
break;
case 1:
CharacterSelector.Items.Clear();
foreach (string s in CyberCharacters)
{
CharacterSelector.Items.Add(s);
}
CharacterSelector.Enabled = true;
Rosetta = true;
FullStage = false;
break;
case 2:
CharacterSelector.Items.Clear();
CharacterSelector.Enabled = false;
Rosetta = false;
FullStage = true;
break;
case 3:
CharacterSelector.Items.Clear();
CharacterSelector.Enabled = false;
Rosetta = true;
FullStage = true;
break;
}
break;
case 1:
switch(OutputTypeSelector.SelectedIndex)
{
case 0:
CharacterSelector.Items.Clear();
foreach (string s in CyberCharacters)
{
CharacterSelector.Items.Add(s);
}
CharacterSelector.Enabled = true;
Rosetta = false;
FullStage = false;
break;
case 1:
CharacterSelector.Items.Clear();
CharacterSelector.Enabled = false;
Rosetta = false;
FullStage = true;
break;
}
break;
case 2:
switch(OutputTypeSelector.SelectedIndex)
{
case 0:
CharacterSelector.Items.Clear();
foreach (string s in StudioCCharacters)
{
CharacterSelector.Items.Add(s);
}
CharacterSelector.Enabled = true;
Rosetta = false;
FullStage = false;
break;
case 1:
CharacterSelector.Items.Clear();
CharacterSelector.Enabled = false;
Rosetta = false;
FullStage = true;
break;
}
break;
}
}
void Event_BrowseFileButton() void Event_BrowseFileButton()
{ {
OpenFileDialog fileDialog = new OpenFileDialog(); OpenFileDialog fileDialog = new OpenFileDialog();
@ -399,11 +235,6 @@ namespace PC2Converter
MessageBox.Show("Fatal: You must select an output type."); MessageBox.Show("Fatal: You must select an output type.");
return; return;
} }
if (CharacterSelector.SelectedIndex == -1 && !FullStage)
{
MessageBox.Show("Fatal: You must select a character.");
return;
}
if (FilePathTextBox.Text.Trim() == "") if (FilePathTextBox.Text.Trim() == "")
{ {
MessageBox.Show("Fatal: You must select an input file."); MessageBox.Show("Fatal: You must select an input file.");
@ -470,37 +301,22 @@ namespace PC2Converter
int[] targetBits = { 0 }; int[] targetBits = { 0 };
switch (outputType) switch (outputType)
{ {
case "UST 32 Bits (Single Bot RAE/3st)": case "UST (Rock-afire Explosion/3-Stage)":
bitsCount = 32;
targetBits = SC_RAE3stBitMap[Array.IndexOf(RAE3stCharacters, CharacterSelector.SelectedKey)];
break;
case "UST 8 Bits (Single Bot Cybers Rosetta)":
bitsCount = 8;
targetBits = SC_CyberBitMapRosetta[Array.IndexOf(CyberCharacters, CharacterSelector.SelectedKey)];
break;
case "UST 256 Bits (Full RAE/3st)":
bitsCount = 256; bitsCount = 256;
targetBits = FS_RAE3stBitMap; targetBits = RAE3stBitMap;
break; break;
case "UST 256 Bits (Full Cybers Rosetta)": case "UST (Cyberamics Rosetta)":
bitsCount = 256; bitsCount = 256;
targetBits = FS_CyberBitMapRosetta; targetBits = CyberBitMapRosetta;
Rosetta = true;
break; break;
case "UST 8 Bits (Single Bot Cybers)": case "UST (Cyberamics)":
bitsCount = 8;
targetBits = SC_CyberBitMap[Array.IndexOf(CyberCharacters, CharacterSelector.SelectedKey)];
break;
case "UST 256 Bits (Full Cybers)":
bitsCount = 256; bitsCount = 256;
targetBits = FS_CyberBitMap; targetBits = CyberBitMap;
break; break;
case "UST 32 Bits (Single Bot Studio C)": case "UST (Studio C)":
bitsCount = 32;
targetBits = SC_StudioCBitMap[Array.IndexOf(StudioCCharacters, CharacterSelector.SelectedKey)];
break;
case "UST 256 Bits (Full Studio C)":
bitsCount = 256; bitsCount = 256;
targetBits = FS_StudioCBitMap; targetBits = StudioCBitMap;
break; break;
} }
@ -535,7 +351,7 @@ namespace PC2Converter
File.Delete("tmp.mp3"); File.Delete("tmp.mp3");
} }
File.WriteAllText(outFilePath, MakeHeader(Path.GetFileNameWithoutExtension(outFilePath), outputType, CharacterSelector.SelectedKey)+String.Join(",", writeOut.ToArray())+";"+Convert.ToBase64String(audioOut)); File.WriteAllText(outFilePath, MakeHeader(Path.GetFileNameWithoutExtension(outFilePath), outputType)+String.Join(",", writeOut.ToArray())+";"+Convert.ToBase64String(audioOut));
} }
MessageBox.Show("Conversion complete!"); MessageBox.Show("Conversion complete!");
} }

View file

@ -1,4 +1,3 @@
using System.IO;
using System.Reflection; using System.Reflection;
using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization.Formatters.Binary;