Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,22 @@ releases
toolchains
libretro-common

# Old per-platform cores (no longer used - migrated to shared cores)
**/cores/src
**/cores/output
workspace/shared/*/cores/

# New shared cores architecture
build/.system/cores/
**/boot/output
**/squashfs/output

# Generated paks (from skeleton/TEMPLATES/)
# Note: Old duplicated paks removed from skeleton/SYSTEM/*/paks/Emus/ and skeleton/EXTRAS/Emus/
# Paks are now generated during build from templates - see docs/PAK-TEMPLATES.md
build/SYSTEM/*/paks/Emus/*.pak
build/EXTRAS/Emus/*/*.pak

**/other/evtest
**/other/jstest
**/other/dtc
Expand Down
40 changes: 39 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,45 @@ make PLATFORM=miyoomini build

### Available Platforms

Active platforms (as of most recent): miyoomini, trimuismart, rg35xx, rg35xxplus, my355, tg5040, zero28, rgb30, m17, gkdpixel, my282, magicmini
Active platforms (as of most recent): miyoomini, trimuismart, rg35xx, rg35xxplus, my355, tg5040, zero28, rgb30, m17, my282, magicmini

### Pak Template System

LessUI uses **two systems** for generating platform-specific `.pak` directories:

**1. MinArch Paks** (`skeleton/TEMPLATES/minarch-paks/`) - Template-based for libretro cores:
- `platforms.json` - Platform metadata (nice prefix, default settings)
- `cores.json` - Core definitions (8 stock + 11 extra cores)
- `launch.sh.template` - Shared launch script template
- `configs/` - Config templates (19 configs generate 228 paks across platforms)

**2. Direct Paks** (`skeleton/TEMPLATES/paks/`) - Copied as-is for special cases:
- PAK.pak - Native application launcher (copied to all platforms)

**Generation:**
```bash
# Automatic during build
make setup # Generates all paks

# Manual generation
./scripts/generate-paks.sh all # All platforms
./scripts/generate-paks.sh miyoomini # Specific platform
./scripts/generate-paks.sh miyoomini GB GBA # Specific cores
```

**Adding a new emulator core:**
1. Add to `skeleton/TEMPLATES/minarch-paks/cores.json`
2. Create `skeleton/TEMPLATES/minarch-paks/configs/<CORE>.cfg`
3. Run `./scripts/generate-paks.sh all`

**Adding a special pak:**
1. Create directory in `skeleton/TEMPLATES/paks/<NAME>.pak/`
2. Add `launch.sh` and any other files
3. Run `./scripts/generate-paks.sh all` (copied to all platforms)

**Key benefit:** One template → 12 platforms (108 SYSTEM + 132 EXTRAS = 240 total paks)

See `docs/PAK-TEMPLATES.md` for comprehensive documentation.

## Development Commands

Expand Down
73 changes: 73 additions & 0 deletions SUPPORTED-CORES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Supported MinArch Cores

This document lists all libretro cores supported by LessUI, organized by base (stock) and extras packages.

## Base Cores (13 systems)

These cores are included in the standard LessUI distribution:

1. **Arcade (MAME)** - Multiple Arcade Machine Emulator
2. **CPS-1 (CPS1)** - Capcom Play System 1
3. **CPS-2 (CPS2)** - Capcom Play System 2
4. **CPS-3 (CPS3)** - Capcom Play System 3
5. **Game Boy (GB)** - Nintendo Game Boy
6. **Game Boy Advance (GBA)** - Nintendo Game Boy Advance
7. **Game Boy Color (GBC)** - Nintendo Game Boy Color
8. **Native Games (PAK)** - Native application launcher
9. **Neo Geo (FBN)** - SNK Neo Geo (FinalBurn Neo)
10. **Nintendo Entertainment System (FC)** - NES/Famicom
11. **Sega Genesis (MD)** - Sega Mega Drive/Genesis
12. **Sony PlayStation (PS)** - Sony PlayStation 1
13. **Super Nintendo Entertainment System (SFC)** - SNES/Super Famicom

## Extras Cores (34 systems)

These cores are available as optional downloads:

1. **Atari 2600 (A2600)** - Atari 2600
2. **Atari 5200 (A5200)** - Atari 5200
3. **Atari 7800 (A7800)** - Atari 7800
4. **Atari Lynx (LYNX)** - Atari Lynx handheld
5. **ColecoVision (COLECO)** - ColecoVision
6. **Commodore 128 (C128)** - Commodore 128
7. **Commodore 64 (C64)** - Commodore 64
8. **Commodore PET (PET)** - Commodore PET
9. **Commodore Plus 4 (PLUS4)** - Commodore Plus/4
10. **Commodore VIC-20 (VIC)** - Commodore VIC-20
11. **Dreamcast (DC)** - Sega Dreamcast
12. **Famicom Disk System (FDS)** - Famicom Disk System
13. **Game Boy Advance (MGBA)** - mGBA core (alternative GBA emulator)
14. **MSX (MSX)** - MSX computer
15. **Neo Geo Pocket (NGP)** - SNK Neo Geo Pocket
16. **Neo Geo Pocket Color (NGPC)** - SNK Neo Geo Pocket Color
17. **Nintendo 64 (N64)** - Nintendo 64
18. **Nintendo DS (NDS)** - Nintendo DS
19. **PC Engine SuperGrafx (SGX)** - NEC SuperGrafx
20. **Pico-8 (P8)** - PICO-8 fantasy console
21. **Pokémon mini (PKM)** - Pokémon mini
22. **PSP (PSP)** - PlayStation Portable
23. **ScummVM (SCUMM)** - SCUMM adventure game engine
24. **Sega 32X (32X)** - Sega 32X
25. **Sega CD (SEGACD)** - Sega CD/Mega CD
26. **Sega Game Gear (GG)** - Sega Game Gear
27. **Sega Master System (SMS)** - Sega Master System
28. **Sega SG-1000 (SG1000)** - Sega SG-1000
29. **Super Game Boy (SGB)** - Super Game Boy
30. **Super Nintendo Entertainment System (SUPA)** - Snes9x 2005 Plus core
31. **TurboGrafx-16 (PCE)** - NEC TurboGrafx-16/PC Engine
32. **Vectrex (VEC)** - Vectrex
33. **Virtual Boy (VB)** - Nintendo Virtual Boy
34. **ZX Spectrum (ZXS)** - Sinclair ZX Spectrum

## Total: 47 Systems

- **Base:** 13 systems (including PAK native launcher)
- **Extras:** 34 systems
- **Total:** 47 supported systems

## Notes

- ROM folder names are shown with their display names and internal codes (e.g., "Game Boy (GB)")
- The internal code in parentheses corresponds to the pak file names in the system
- Some systems have multiple cores available (e.g., GBA has both standard and MGBA cores)
- PAK is not a traditional emulator core but a native application launcher for LessUI
2 changes: 1 addition & 1 deletion docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ See [PAKS.md](PAKS.md) for complete pak development guide.

LessUI supports devices from 320x240 to 1280x720 using a scale factor:

- **1x**: 320x240 devices (trimuismart, gkdpixel)
- **1x**: 320x240 devices (trimuismart)
- **2x**: 640x480 devices (most platforms)
- **3x**: 960x720 devices (tg5040 brick)
- **4x**: 1280x960+ devices (future)
Expand Down
4 changes: 3 additions & 1 deletion docs/DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ Build for one platform:
make PLATFORM=miyoomini
```

Available platforms: `miyoomini`, `my282`, `my355`, `trimuismart`, `rg35xx`, `rg35xxplus`, `rgb30`, `tg5040`, `m17`, `gkdpixel`, `magicmini`, `zero28`
Available platforms: `miyoomini`, `my282`, `my355`, `trimuismart`, `rg35xx`, `rg35xxplus`, `rgb30`, `tg5040`, `m17`, `magicmini`, `zero28`

Deprecated platforms: `gkdpixel` (no longer supported)

### macOS Native Development (Fastest Workflow)

Expand Down
Loading