diff --git a/SabreTools.Models/Internal/Machine.cs b/SabreTools.Models/Internal/Machine.cs
index 8de9eb7e..6d619c90 100644
--- a/SabreTools.Models/Internal/Machine.cs
+++ b/SabreTools.Models/Internal/Machine.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
namespace SabreTools.Models.Internal
{
///
- /// Format-agnostic representation of item data
+ /// Format-agnostic representation of game, machine, and set data
///
public class Machine : Dictionary
{
diff --git a/SabreTools.Serialization/Internal.EverdriveSMDB.cs b/SabreTools.Serialization/Internal.EverdriveSMDB.cs
index da274464..ec03d2ad 100644
--- a/SabreTools.Serialization/Internal.EverdriveSMDB.cs
+++ b/SabreTools.Serialization/Internal.EverdriveSMDB.cs
@@ -1,3 +1,5 @@
+using System.Collections.Generic;
+
namespace SabreTools.Serialization
{
///
@@ -7,6 +9,18 @@ namespace SabreTools.Serialization
{
#region Serialize
+ ///
+ /// Convert from to
+ ///
+ public static Models.Internal.Machine ConvertMachineFromEverdriveSMDB(Models.EverdriveSMDB.Row item)
+ {
+ var machine = new Models.Internal.Machine
+ {
+ [Models.Internal.Machine.RomKey] = ConvertFromEverdriveSMDB(item),
+ };
+ return machine;
+ }
+
///
/// Convert from to
///
@@ -28,6 +42,22 @@ namespace SabreTools.Serialization
#region Deserialize
+ ///
+ /// Convert from to an array of
+ ///
+ public static Models.EverdriveSMDB.Row[]? ConvertMachineToEverdriveSMDB(Models.Internal.Machine item)
+ {
+ if (!item.ContainsKey(Models.Internal.Machine.RomKey) || item[Models.Internal.Machine.RomKey] is not Models.Internal.Rom[] roms)
+ return null;
+
+ var fileItems = new List();
+ foreach (var rom in roms)
+ {
+ fileItems.Add(ConvertToEverdriveSMDB(rom));
+ }
+ return fileItems.ToArray();
+ }
+
///
/// Convert from to
///