Documentation
¶
Index ¶
- func DiffRomRegion(baseOffset int, region RomRegion, first *zip.ReadCloser, ...) (*[]RomPatch, error)
- func GenerateMraPatches(patches *[]RomPatch) []string
- func ParseRoms() error
- func PatchRomRegionWithMra(romZip *zip.ReadCloser, mra MraXml, romRegion RomRegion, ...) error
- func ProcessRegionFromZip(romZip *zip.ReadCloser, region RomRegion) ([]uint8, error)
- func SplitRegionToFiles(romRegion RomRegion, binary []byte, zipPath string) error
- func ValidateRomZip(romDefinition RomDefinition, zip *zip.ReadCloser) error
- func WriteModifiedRegionToZip(outputFilepath string, romZip *zip.ReadCloser, ...) error
- type MraXml
- type RomDefinition
- type RomPatch
- type RomRegion
- type RomRegionOperation
- type Roms
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DiffRomRegion ¶ added in v1.0.0
func DiffRomRegion(baseOffset int, region RomRegion, first *zip.ReadCloser, second *zip.ReadCloser) (*[]RomPatch, error)
func GenerateMraPatches ¶ added in v0.2.0
func PatchRomRegionWithMra ¶ added in v0.3.0
func ProcessRegionFromZip ¶ added in v0.2.0
func ProcessRegionFromZip(romZip *zip.ReadCloser, region RomRegion) ([]uint8, error)
func SplitRegionToFiles ¶ added in v0.3.0
func ValidateRomForRegion(romRegion RomRegion, zip *zip.ReadCloser) error {
requiredFiles := make([]string, 0, len(romRegion.Operations))
if len(romRegion.Operations) > 0 {
for _, operation := range romRegion.Operations {
if operation.Filename != "" {
requiredFiles = append(requiredFiles, operation.Filename)
}
}
}
hasFiles := make(map[string]bool)
for _, filename := range requiredFiles {
hasFiles[filename] = false
}
for _, file := range zip.File {
var name = file.Name
_, ok := hasFiles[name]
if ok {
hasFiles[name] = true
}
}
numMissingFiles := 0
missingFiles := make([]string, 0, len(requiredFiles))
for filename, hasFile := range hasFiles {
if !hasFile {
numMissingFiles = numMissingFiles + 1
missingFiles = append(missingFiles, filename)
}
}
if numMissingFiles > 0 {
return fmt.Errorf("missing %d files: %s", numMissingFiles, Resources.LogText.Bold(strings.Join(missingFiles, ", ")))
}
return nil
}
func ValidateRomZip ¶
func ValidateRomZip(romDefinition RomDefinition, zip *zip.ReadCloser) error
func WriteModifiedRegionToZip ¶ added in v0.4.0
func WriteModifiedRegionToZip(outputFilepath string, romZip *zip.ReadCloser, modifiedRegionZip *zip.ReadCloser, region RomRegion) error
Types ¶
type MraXml ¶ added in v0.3.0
type MraXml struct {
XMLName xml.Name `xml:"misterromdescription"`
Text string `xml:",chardata"`
About struct {
Text string `xml:",chardata"`
Author string `xml:"author,attr"`
Webpage string `xml:"webpage,attr"`
Source string `xml:"source,attr"`
Twitter string `xml:"twitter,attr"`
} `xml:"about"`
Name string `xml:"name"`
Setname string `xml:"setname"`
Rbf string `xml:"rbf"`
Mameversion string `xml:"mameversion"`
Year string `xml:"year"`
Manufacturer string `xml:"manufacturer"`
Players string `xml:"players"`
Joystick string `xml:"joystick"`
Rotation string `xml:"rotation"`
Region string `xml:"region"`
Platform string `xml:"platform"`
Category string `xml:"category"`
Catver string `xml:"catver"`
Rom []struct {
Text string `xml:",chardata"`
Index string `xml:"index,attr"`
Zip string `xml:"zip,attr"`
Type string `xml:"type,attr"`
Md5 string `xml:"md5,attr"`
Address string `xml:"address,attr"`
Part []struct {
Text string `xml:",chardata"`
Name string `xml:"name,attr"`
Crc string `xml:"crc,attr"`
Length string `xml:"length,attr"`
} `xml:"part"`
Patch []struct {
Data string `xml:",chardata"`
Offset string `xml:"offset,attr"`
} `xml:"patch"`
Interleave []struct {
Text string `xml:",chardata"`
Output string `xml:"output,attr"`
Part []struct {
Text string `xml:",chardata"`
Name string `xml:"name,attr"`
Crc string `xml:"crc,attr"`
Map string `xml:"map,attr"`
} `xml:"part"`
} `xml:"interleave"`
} `xml:"rom"`
Nvram struct {
Text string `xml:",chardata"`
Index string `xml:"index,attr"`
Size string `xml:"size,attr"`
} `xml:"nvram"`
Buttons struct {
Text string `xml:",chardata"`
Names string `xml:"names,attr"`
Default string `xml:"default,attr"`
Count string `xml:"count,attr"`
} `xml:"buttons"`
}
type RomDefinition ¶
type RomDefinition struct {
Maincpu RomRegion `json:"maincpu,omitempty"`
Gfx RomRegion `json:"gfx,omitempty"`
Audiocpu RomRegion `json:"audiocpu,omitempty"`
Qsound RomRegion `json:"qsound,omitempty"`
Key RomRegion `json:"key,omitempty"`
}
func GetRomDefinition ¶ added in v0.4.0
func GetRomDefinition(romSetName string) RomDefinition
func ParseRomZip ¶ added in v0.4.0
func ParseRomZip(file_path string, romSetName string) (*zip.ReadCloser, *RomDefinition, error)
type RomRegion ¶
type RomRegion struct {
Size int `json:"size,omitempty"`
Operations []RomRegionOperation `json:"operations,omitempty"`
}
type RomRegionOperation ¶
type RomRegionOperation struct {
Offset int `json:"offset,omitempty"`
Length int `json:"length,omitempty"`
Type string `json:"type,omitempty"`
GroupSize int `json:"groupSize,omitempty"`
Skip int `json:"skip,omitempty"`
Reverse bool `json:"reverse,omitempty"`
Filename string `json:"filename,omitempty"`
FillValue int `json:"fillValue,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.