Skip to content

Commit ff1af7e

Browse files
Merge pull request #224 from pawndev/feat/cfw/add-arkos-darkos-support
feat(cfw): support for arkos and darkos
2 parents d23839e + 951f2e2 commit ff1af7e

19 files changed

Lines changed: 619 additions & 10 deletions

File tree

.github/workflows/release.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,15 @@ jobs:
9393
GROUT_VERSION: ${{ needs.prepare.outputs.version }}
9494

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

9898
- name: Create distributions
9999
run: |
100100
cd dist/Grout.pak && zip -r ../Grout.pak.zip . && cd ../..
101101
cd dist/muOS && zip -r Grout.muxapp Grout && mv Grout.muxapp ../Grout.muxapp && cd ../..
102102
cd dist/Knulli && zip -r ../Grout-Knulli.zip Grout && cd ../..
103103
cd dist/ROCKNIX && zip -r ../Grout-ROCKNIX.zip Grout.sh Grout && cd ../..
104+
cd dist/ArkOS && zip -r ../Grout-ArkOS.zip Grout.sh Grout && cd ../..
104105
cd dist/Trimui && zip -r ../Grout-Trimui.zip Grout && cd ../..
105106
cd dist/Batocera-arm64 && zip -r ../Grout-Batocera-arm64.zip Grout.sh Grout && cd ../..
106107
@@ -113,6 +114,7 @@ jobs:
113114
dist/Grout.muxapp
114115
dist/Grout-Knulli.zip
115116
dist/Grout-ROCKNIX.zip
117+
dist/Grout-ArkOS.zip
116118
dist/Grout-Trimui.zip
117119
dist/Grout-Batocera-arm64.zip
118120
build64/grout
@@ -300,6 +302,7 @@ jobs:
300302
**/Grout-Onion.zip
301303
**/Grout-Koriki.zip
302304
**/Grout-Knulli.zip
305+
**/Grout-ArkOS.zip
303306
**/Grout-ROCKNIX.zip
304307
**/Grout-Trimui.zip
305308
**/Grout-MinUI.zip
@@ -379,6 +382,7 @@ jobs:
379382
"Grout-Allium.zip"
380383
"Grout-Onion.zip"
381384
"Grout-Koriki.zip"
385+
"Grout-ArkOS.zip"
382386
"Grout-MinUI.zip"
383387
"Grout-Batocera-arm64.zip"
384388
"Grout-Batocera-amd64.zip"

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
A RomM Client for your retro doo-dad.
1010
</h3>
1111

12-
[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]
12+
[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]
1313

1414
<br>
1515

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

8989
[allium]: https://github.com/goweiwen/Allium
90+
[arkos]: https://github.com/christianhaitian/arkos
91+
[darkos]: https://github.com/christianhaitian/dArkOS
9092
[batocera]: https://batocera.org
9193
[knulli]: https://knulli.org
9294
[koriki]: https://github.com/Rparadise-Team/Koriki

app/setup.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"grout/cache"
66
"grout/cfw"
77
"grout/cfw/allium"
8+
"grout/cfw/arkos"
89
"grout/cfw/koriki"
910
"grout/cfw/minui"
1011
"grout/cfw/muos"
@@ -92,6 +93,8 @@ func setupInputMapping(currentCFW cfw.CFW) {
9293
mappingBytes, mappingErr = spruce.GetInputMappingBytes()
9394
case cfw.ROCKNIX:
9495
mappingBytes, mappingErr = rocknix.GetInputMappingBytes()
96+
case cfw.ArkOS:
97+
mappingBytes, mappingErr = arkos.GetInputMappingBytes()
9598
}
9699

97100
if mappingBytes != nil && mappingErr == nil {

cfw/arkos/arkos.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package arkos
2+
3+
import (
4+
"embed"
5+
"grout/internal/jsonutil"
6+
"os"
7+
"path/filepath"
8+
)
9+
10+
//go:embed data/*.json
11+
var embeddedFiles embed.FS
12+
13+
var (
14+
Platforms = jsonutil.MustLoadJSONMap[string, []string](embeddedFiles, "data/platforms.json")
15+
)
16+
17+
func GetBasePath() string {
18+
if basePath := os.Getenv("BASE_PATH"); basePath != "" {
19+
return basePath
20+
}
21+
return "/roms"
22+
}
23+
24+
func GetRomDirectory() string {
25+
return GetBasePath()
26+
}
27+
28+
func GetBIOSDirectory() string {
29+
return filepath.Join(GetBasePath(), "bios")
30+
}
31+
32+
func GetBaseSavePath() string {
33+
return GetRomDirectory()
34+
}
35+
36+
func GetArtDirectory(romDir string) string {
37+
return filepath.Join(romDir, "images")
38+
}
39+
40+
func GetGroutGamelist() string {
41+
return filepath.Join(GetRomDirectory(), "ports", "gamelist.xml")
42+
}
43+
44+
func GetVideoDirectory(romDir string) string {
45+
return filepath.Join(romDir, "videos")
46+
}
47+
48+
func GetManualDirectory(romDir string) string {
49+
return filepath.Join(romDir, "manuals")
50+
}
51+
52+
func GetBezelDirectory(romDir string) string {
53+
return filepath.Join(romDir, "bezels")
54+
}

cfw/arkos/data/platforms.json

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
{
2+
"3do": [
3+
"3do"
4+
],
5+
"3ds": [
6+
"3ds"
7+
],
8+
"acpc": [
9+
"amstradcpc"
10+
],
11+
"amiga": [
12+
"amiga",
13+
"amigacd32"
14+
],
15+
"arcade": [
16+
"arcade",
17+
"mame",
18+
"fbneo",
19+
"neogeo"
20+
],
21+
"arduboy": [
22+
"arduboy"
23+
],
24+
"atari-st": [
25+
"atarist"
26+
],
27+
"atari2600": [
28+
"atari2600"
29+
],
30+
"atari5200": [
31+
"atari5200"
32+
],
33+
"atari7800": [
34+
"atari7800"
35+
],
36+
"atari800": [
37+
"atari800"
38+
],
39+
"c128": [
40+
"c128"
41+
],
42+
"c16": [
43+
"c16"
44+
],
45+
"c64": [
46+
"c64"
47+
],
48+
"cave-story": [],
49+
"colecovision": [
50+
"coleco"
51+
],
52+
"cpet": [
53+
"pet"
54+
],
55+
"dc": [
56+
"dreamcast"
57+
],
58+
"dos": [
59+
"pc"
60+
],
61+
"fairchild-channel-f": [
62+
"channelf"
63+
],
64+
"famicom": [
65+
"famicom"
66+
],
67+
"fds": [
68+
"fds"
69+
],
70+
"g-and-w": [
71+
"gameandwatch"
72+
],
73+
"galaksija": [],
74+
"gamegear": [
75+
"gamegear"
76+
],
77+
"gb": [
78+
"gb"
79+
],
80+
"gba": [
81+
"gba"
82+
],
83+
"gbc": [
84+
"gbc"
85+
],
86+
"genesis": [
87+
"megadrive"
88+
],
89+
"intellivision": [
90+
"intellivision"
91+
],
92+
"j2me": [
93+
"j2me"
94+
],
95+
"jaguar": [
96+
"atarijaguar"
97+
],
98+
"lynx": [
99+
"atarilynx"
100+
],
101+
"mega-duck-slash-cougar-boy": [
102+
"megaduck"
103+
],
104+
"msx": [
105+
"msx",
106+
"msx2"
107+
],
108+
"n64": [
109+
"n64"
110+
],
111+
"nds": [
112+
"nds",
113+
"ndsiware"
114+
],
115+
"neo-geo-cd": [
116+
"neocd"
117+
],
118+
"neo-geo-pocket": [
119+
"ngp"
120+
],
121+
"neo-geo-pocket-color": [
122+
"ngpc"
123+
],
124+
"neogeoaes": [
125+
"neogeo"
126+
],
127+
"neogeomvs": [
128+
"neogeo"
129+
],
130+
"nes": [
131+
"nes"
132+
],
133+
"ngc": [
134+
"gamecube"
135+
],
136+
"odyssey": [
137+
"odyssey"
138+
],
139+
"openbor": [
140+
"openbor"
141+
],
142+
"pc-8000": [
143+
"pc88"
144+
],
145+
"pc-9800-series": [
146+
"pc98"
147+
],
148+
"pc-fx": [
149+
"pcfx"
150+
],
151+
"philips-cd-i": [
152+
"cdi"
153+
],
154+
"pico": [
155+
"pico-8"
156+
],
157+
"pico-8": [
158+
"pico-8"
159+
],
160+
"pokemon-mini": [
161+
"pokemini"
162+
],
163+
"ps2": [
164+
"ps2"
165+
],
166+
"ps3": [
167+
"ps3"
168+
],
169+
"psp": [
170+
"psp"
171+
],
172+
"psx": [
173+
"psx"
174+
],
175+
"saturn": [
176+
"saturn"
177+
],
178+
"sega32": [
179+
"sega32x"
180+
],
181+
"segacd": [
182+
"segacd"
183+
],
184+
"sfam": [
185+
"snes"
186+
],
187+
"sg1000": [
188+
"sg-1000"
189+
],
190+
"sharp-x68000": [
191+
"x68000"
192+
],
193+
"sms": [
194+
"mastersystem"
195+
],
196+
"snes": [
197+
"snes"
198+
],
199+
"supergrafx": [
200+
"sgfx"
201+
],
202+
"supervision": [
203+
"supervision"
204+
],
205+
"tg16": [
206+
"pcengine",
207+
"tg16",
208+
"tg16cd"
209+
],
210+
"tic-80": [
211+
"tic-80"
212+
],
213+
"turbografx-cd": [
214+
"pcenginecd"
215+
],
216+
"vectrex": [
217+
"vectrex"
218+
],
219+
"vic-20": [],
220+
"vic20": [
221+
"vic20"
222+
],
223+
"videopac": [
224+
"videopac"
225+
],
226+
"virtualboy": [
227+
"virtualboy"
228+
],
229+
"wii": [
230+
"wii",
231+
"wiiware"
232+
],
233+
"wiiu": [
234+
"wiiu"
235+
],
236+
"windows": [
237+
"windows"
238+
],
239+
"wonderswan": [
240+
"wonderswan"
241+
],
242+
"wonderswan-color": [
243+
"wonderswancolor"
244+
],
245+
"x1": [
246+
"x1"
247+
],
248+
"zx81": [
249+
"zx81"
250+
],
251+
"zxs": [
252+
"zxspectrum"
253+
]
254+
}

0 commit comments

Comments
 (0)