Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,15 @@ jobs:
GROUT_VERSION: ${{ needs.prepare.outputs.version }}

- name: Package ARM64 platforms
run: task package:next package:muos package:knulli package:rocknix package:trimui package:batocera
run: task package:next package:muos package:knulli package:rocknix package:arkos package:trimui package:batocera

- name: Create distributions
run: |
cd dist/Grout.pak && zip -r ../Grout.pak.zip . && cd ../..
cd dist/muOS && zip -r Grout.muxapp Grout && mv Grout.muxapp ../Grout.muxapp && cd ../..
cd dist/Knulli && zip -r ../Grout-Knulli.zip Grout && cd ../..
cd dist/ROCKNIX && zip -r ../Grout-ROCKNIX.zip Grout.sh Grout && cd ../..
cd dist/ArkOS && zip -r ../Grout-ArkOS.zip Grout.sh Grout && cd ../..
cd dist/Trimui && zip -r ../Grout-Trimui.zip Grout && cd ../..
cd dist/Batocera-arm64 && zip -r ../Grout-Batocera-arm64.zip Grout.sh Grout && cd ../..

Expand All @@ -113,6 +114,7 @@ jobs:
dist/Grout.muxapp
dist/Grout-Knulli.zip
dist/Grout-ROCKNIX.zip
dist/Grout-ArkOS.zip
dist/Grout-Trimui.zip
dist/Grout-Batocera-arm64.zip
build64/grout
Expand Down Expand Up @@ -300,6 +302,7 @@ jobs:
**/Grout-Onion.zip
**/Grout-Koriki.zip
**/Grout-Knulli.zip
**/Grout-ArkOS.zip
**/Grout-ROCKNIX.zip
**/Grout-Trimui.zip
**/Grout-MinUI.zip
Expand Down Expand Up @@ -379,6 +382,7 @@ jobs:
"Grout-Allium.zip"
"Grout-Onion.zip"
"Grout-Koriki.zip"
"Grout-ArkOS.zip"
"Grout-MinUI.zip"
"Grout-Batocera-arm64.zip"
"Grout-Batocera-amd64.zip"
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
A RomM Client for your retro doo-dad.
</h3>

[Allium][allium] · [Batocera][batocera] · [Knulli][knulli] · [Koriki][koriki] · [MinUI][minui] · [muOS][muos] · [NextUI][nextui] · [Onion][onion] · [ROCKNIX][rocknix] · [Spruce][spruce] · [SprigUI][sprigui] · [TwigUI][twigui] · [TrimUI][trimui]
[Allium][allium] · [ArkOS][arkos] · [Batocera][batocera] · [dArkOS][darkos] · [Knulli][knulli] · [Koriki][koriki] · [MinUI][minui] · [muOS][muos] · [NextUI][nextui] · [Onion][onion] · [ROCKNIX][rocknix] · [Spruce][spruce] · [SprigUI][sprigui] · [TwigUI][twigui] · [TrimUI][trimui]

<br>

Expand Down Expand Up @@ -87,6 +87,8 @@ If you enjoy using Grout and feel inclined to pay it forward, go do something ni
<!-- CFW Links -->

[allium]: https://github.com/goweiwen/Allium
[arkos]: https://github.com/christianhaitian/arkos
[darkos]: https://github.com/christianhaitian/dArkOS
[batocera]: https://batocera.org
[knulli]: https://knulli.org
[koriki]: https://github.com/Rparadise-Team/Koriki
Expand Down
3 changes: 3 additions & 0 deletions app/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"grout/cache"
"grout/cfw"
"grout/cfw/allium"
"grout/cfw/arkos"
"grout/cfw/koriki"
"grout/cfw/minui"
"grout/cfw/muos"
Expand Down Expand Up @@ -91,6 +92,8 @@ func setupInputMapping(currentCFW cfw.CFW) {
mappingBytes, mappingErr = spruce.GetInputMappingBytes()
case cfw.ROCKNIX:
mappingBytes, mappingErr = rocknix.GetInputMappingBytes()
case cfw.ArkOS:
mappingBytes, mappingErr = arkos.GetInputMappingBytes()
}

if mappingBytes != nil && mappingErr == nil {
Expand Down
54 changes: 54 additions & 0 deletions cfw/arkos/arkos.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package arkos

import (
"embed"
"grout/internal/jsonutil"
"os"
"path/filepath"
)

//go:embed data/*.json
var embeddedFiles embed.FS

var (
Platforms = jsonutil.MustLoadJSONMap[string, []string](embeddedFiles, "data/platforms.json")
)

func GetBasePath() string {
if basePath := os.Getenv("BASE_PATH"); basePath != "" {
return basePath
}
return "/roms"
}

func GetRomDirectory() string {
return GetBasePath()
}

func GetBIOSDirectory() string {
return filepath.Join(GetBasePath(), "bios")
}

func GetBaseSavePath() string {
return GetRomDirectory()
}

func GetArtDirectory(romDir string) string {
return filepath.Join(romDir, "images")
}

func GetGroutGamelist() string {
return filepath.Join(GetRomDirectory(), "ports", "gamelist.xml")
}

func GetVideoDirectory(romDir string) string {
return filepath.Join(romDir, "videos")
}

func GetManualDirectory(romDir string) string {
return filepath.Join(romDir, "manuals")
}

func GetBezelDirectory(romDir string) string {
return filepath.Join(romDir, "bezels")
}
254 changes: 254 additions & 0 deletions cfw/arkos/data/platforms.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
{
"3do": [
"3do"
],
"3ds": [
"3ds"
],
"acpc": [
"amstradcpc"
],
"amiga": [
"amiga",
"amigacd32"
],
"arcade": [
"arcade",
"mame",
"fbneo",
"neogeo"
],
"arduboy": [
"arduboy"
],
"atari-st": [
"atarist"
],
"atari2600": [
"atari2600"
],
"atari5200": [
"atari5200"
],
"atari7800": [
"atari7800"
],
"atari800": [
"atari800"
],
"c128": [
"c128"
],
"c16": [
"c16"
],
"c64": [
"c64"
],
"cave-story": [],
"colecovision": [
"coleco"
],
"cpet": [
"pet"
],
"dc": [
"dreamcast"
],
"dos": [
"pc"
],
"fairchild-channel-f": [
"channelf"
],
"famicom": [
"famicom"
],
"fds": [
"fds"
],
"g-and-w": [
"gameandwatch"
],
"galaksija": [],
"gamegear": [
"gamegear"
],
"gb": [
"gb"
],
"gba": [
"gba"
],
"gbc": [
"gbc"
],
"genesis": [
"megadrive"
],
"intellivision": [
"intellivision"
],
"j2me": [
"j2me"
],
"jaguar": [
"atarijaguar"
],
"lynx": [
"atarilynx"
],
"mega-duck-slash-cougar-boy": [
"megaduck"
],
"msx": [
"msx",
"msx2"
],
"n64": [
"n64"
],
"nds": [
"nds",
"ndsiware"
],
"neo-geo-cd": [
"neocd"
],
"neo-geo-pocket": [
"ngp"
],
"neo-geo-pocket-color": [
"ngpc"
],
"neogeoaes": [
"neogeo"
],
"neogeomvs": [
"neogeo"
],
"nes": [
"nes"
],
"ngc": [
"gamecube"
],
"odyssey": [
"odyssey"
],
"openbor": [
"openbor"
],
"pc-8000": [
"pc88"
],
"pc-9800-series": [
"pc98"
],
"pc-fx": [
"pcfx"
],
"philips-cd-i": [
"cdi"
],
"pico": [
"pico-8"
],
"pico-8": [
"pico-8"
],
"pokemon-mini": [
"pokemini"
],
"ps2": [
"ps2"
],
"ps3": [
"ps3"
],
"psp": [
"psp"
],
"psx": [
"psx"
],
"saturn": [
"saturn"
],
"sega32": [
"sega32x"
],
"segacd": [
"segacd"
],
"sfam": [
"snes"
],
"sg1000": [
"sg-1000"
],
"sharp-x68000": [
"x68000"
],
"sms": [
"mastersystem"
],
"snes": [
"snes"
],
"supergrafx": [
"sgfx"
],
"supervision": [
"supervision"
],
"tg16": [
"pcengine",
"tg16",
"tg16cd"
],
"tic-80": [
"tic-80"
],
"turbografx-cd": [
"pcenginecd"
],
"vectrex": [
"vectrex"
],
"vic-20": [],
"vic20": [
"vic20"
],
"videopac": [
"videopac"
],
"virtualboy": [
"virtualboy"
],
"wii": [
"wii",
"wiiware"
],
"wiiu": [
"wiiu"
],
"windows": [
"windows"
],
"wonderswan": [
"wonderswan"
],
"wonderswan-color": [
"wonderswancolor"
],
"x1": [
"x1"
],
"zx81": [
"zx81"
],
"zxs": [
"zxspectrum"
]
}
Loading