Compare commits

...

5 commits

Author SHA1 Message Date
Jarrod Norwell
52ac8a20f3 Added latest update 2025-07-21 19:08:38 +08:00
Jarrod Norwell
f55cc74b55 Updated latest changes 2025-07-02 11:19:21 +08:00
Jarrod Norwell
4f68b1eb37 Updated website to include latest changes and remove downloads 2025-06-24 02:57:15 +07:00
Jarrod Norwell
33f5808d8f Updated to v1.0.15 2025-03-25 20:27:43 +08:00
Jarrod Norwell
43e9d5aeee
Update App.tsx 2025-02-07 02:04:40 +08:00
5 changed files with 5034 additions and 5298 deletions

1513
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "^7.13.1", "@typescript-eslint/eslint-plugin": "^7.13.1",
"@typescript-eslint/parser": "^7.13.1", "@typescript-eslint/parser": "^7.13.1",
"@vanilla-extract/vite-plugin": "^4.0.11", "@vanilla-extract/vite-plugin": "^5.0.7",
"@vitejs/plugin-react": "^4.3.1", "@vitejs/plugin-react": "^4.3.1",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-hooks": "^4.6.2",
@ -33,7 +33,7 @@
"postcss-preset-mantine": "1.15.0", "postcss-preset-mantine": "1.15.0",
"postcss-simple-vars": "^7.0.1", "postcss-simple-vars": "^7.0.1",
"typescript": "^5.5.2", "typescript": "^5.5.2",
"vite": "^5.3.1" "vite": "^6.3.5"
}, },
"packageManager": "yarn@4.3.1" "packageManager": "yarn@4.3.1"
} }

View file

@ -1,7 +1,7 @@
import "@mantine/core/styles.css"; import "@mantine/core/styles.css";
import { import {
Accordion, Anchor, Badge, Button, Container, Accordion,
Flex, Anchor, Badge, Button, Center, Flex,
Group, Group,
List, List,
MantineProvider, MantineProvider,
@ -12,11 +12,263 @@ import { theme } from "./theme";
export default function App() { export default function App() {
const changes = [ const changes = [
{
text: 'Latest Changes',
secondaryText: 'Updated 2nd July 2025',
details: [
{
header: 'Added',
items: [
{
title: 'Added missing functions to IAudioController to include FW 19.0.0+ support',
subtitle: ''
},
{
title: 'Added missing functions to IParentalControlService to include FW 18.0.0+ support',
subtitle: ''
},
{
title: 'Added missing functions to IProfile and IProfileEditor to include FW 15.0.0 and 18.0.0+ support',
subtitle: ''
}
]
},
{
header: 'Changed',
items: []
},
{
header: 'Deprecated',
items: []
},
{
header: 'Fixed',
items: []
},
{
header: 'Removed',
items: []
},
{
header: 'Security',
items: []
}
]
},
{
text: 'Older Changes',
secondaryText: 'Updated 20th June 2025',
details: [
{
header: 'Added',
items: [
{
title: 'Added missing master_key_* identifiers from 0x0B to 0x13 to include FW 18.0.0+ support',
subtitle: ''
},
{
title: 'Added AliasRegionExtraSize to Kernel, ProgramMetadata and SVC to include FW 18.0.0+ support',
subtitle: ''
}
]
},
{
header: 'Changed',
items: [
{
title: 'Rewrote the AppletAE, MM:U and NVMEMP services to improve accuracy',
subtitle: ''
},
{
title: 'Rewrote the RawNACP structure to improve accuracy and include FW 20.0.0+ support',
subtitle: ''
}
]
},
{
header: 'Deprecated',
items: []
},
{
header: 'Fixed',
items: [
{
title: 'Fixed compilation errors and issues with Mbed-TLS',
subtitle: ''
}
]
},
{
header: 'Removed',
items: []
},
{
header: 'Security',
items: []
}
]
}
]
const items = changes.map((item) => {
return (
<Accordion.Item key={item.text} value={item.text}>
<Accordion.Control>
<Group justify={'space-between'} mr={'sm'}>
<Text>
{item.text}
</Text>
<Text c={'dimmed'}>
{item.secondaryText}
</Text>
</Group>
</Accordion.Control>
<Accordion.Panel mr={'md'}>
{
item.details.map((detail, index) => (
<>
<Title order={2}>
{detail.header}
</Title>
<List>
{
detail.items.length == 0 ? (
<Text c={'dimmed'}>Unchanged</Text>
) : (
detail.items.map((item) => (
<List.Item>
<Text c={'dimmed'}>
{item.title}
</Text>
</List.Item>
))
)
}
</List>
<Space h={index == item.details.length - 1 ? 0 : 'md'} />
</>
))
}
</Accordion.Panel>
</Accordion.Item>
)
})
const date = new Date()
return (
<MantineProvider theme={theme} forceColorScheme={date.getHours() >= 7 && date.getHours() <= 19 ? 'light' : 'dark'}>
<Flex align={'center'} h={'100vh'} justify={'center'} mx={'md'}>
<Stack>
<Anchor href='https://twitter.com/getsudachiemu' target={'_blank'}>
<Text c={theme.primaryColor} ta={'center'}>
@getsudachiemu
</Text>
</Anchor>
<Title order={1} ta={'center'}>
Sudachi, a Nintendo Switch emulator
</Title>
<Center>
<Badge variant={'dot'}>
#a-new-beginning
</Badge>
</Center>
<Text c={'dimmed'} ta={'center'}>
Nintendo Switch emulation focusing on accuracy, performance and support
</Text>
<Space h={'md'} />
<Accordion radius={'lg'} variant={'contained'}>
{items}
</Accordion>
<Space h={'md'} />
<Center>
<Stack>
<Text c={'dimmed'} ta={'center'}>
Sudachi is no longer in-development and won't be for some time due to my required commitment to my paid project, Folium<br />For a fork that also provides real, significant changes, check out Eden below
</Text>
<Flex justify={'center'}>
<Button color={'violet'} component={'a'} href={'https://eden-emu.dev'} radius={'xl'} target={'_blank'} variant={'light'}>
Check out Eden
</Button>
</Flex>
</Stack>
</Center>
</Stack>
</Flex>
</MantineProvider>
)
}
/*export default function App() {
const changes = [
{
version: 'v1.0.15',
sha: 'c7431bd',
isLatest: true,
isUpcoming: false,
details: [
{
title: 'Added support for XCX:DE by stubbing ssl:s',
subtitles: [
'Currently the menu and a small section of the game has been tested'
]
},
{
title: 'Changed how MoltenVK is obtained for macOS to get newer versions',
subtitles: [
'Artifacts are now used which can now be updated more frequently'
]
},
{
title: 'Changed from SDL2 to SDL3 bringing over its improvements',
subtitles: []
},
{
title: 'Fixed issues related to caps by reverting the rewrite temporarily',
subtitles: []
},
{
title: 'Fixed several compilation errors on macOS',
subtitles: []
},
{
title: 'Updated vcpkg to the latest version',
subtitles: []
},
],
downloads: [
{
color: 'green',
platform: 'Android',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.15/app-mainline-release.apk'
},
{
color: 'orange',
platform: 'Linux',
url: ''
},
{
color: 'violet',
platform: 'macOS',
url: ''
},
{
color: 'blue',
platform: 'Windows',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.15/sudachi-windows-v1.0.15.7z'
},
{
color: 'gray',
platform: 'Source Code',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.15/latest.zip'
}
]
},
{ {
version: 'v1.0.14', version: 'v1.0.14',
sha: '...', sha: '6178075',
isLatest: false, isLatest: false,
isUpcoming: true, isUpcoming: false,
details: [ details: [
{ {
title: 'Added support for booting the initial setup screen via -setup', title: 'Added support for booting the initial setup screen via -setup',
@ -27,7 +279,9 @@ export default function App() {
}, },
{ {
title: 'Added several missing functions to allow the initial setup screen to be launched', title: 'Added several missing functions to allow the initial setup screen to be launched',
subtitles: [] subtitles: [
'Fixes an issue where some newer games would not boot'
]
}, },
{ {
title: 'Fixed an issue with mm:u where Get and GetOld would not return after pushing a found session\'s minimum value', title: 'Fixed an issue with mm:u where Get and GetOld would not return after pushing a found session\'s minimum value',
@ -42,12 +296,12 @@ export default function App() {
{ {
color: 'green', color: 'green',
platform: 'Android', platform: 'Android',
url: '' url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.14/app-mainline-release.apk'
}, },
{ {
color: 'orange', color: 'orange',
platform: 'Linux', platform: 'Linux',
url: '' url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.14/sudachi-linux-v1.0.14.7z'
}, },
{ {
color: 'violet', color: 'violet',
@ -57,55 +311,12 @@ export default function App() {
{ {
color: 'blue', color: 'blue',
platform: 'Windows', platform: 'Windows',
url: '' url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.14/sudachi-windows-v1.0.14.7z'
}, },
{ {
color: 'gray', color: 'gray',
platform: 'Source Code', platform: 'Source Code',
url: '' url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.14/latest.zip'
}
]
},
{
version: 'v1.0.13',
sha: 'c5aff15',
isLatest: true,
isUpcoming: false,
details: [
{
title: 'Changed mm:u to be more accurate to documentation',
subtitles: []
},
{
title: 'Removed ability to install games to the NAND',
subtitles: []
}
],
downloads: [
{
color: 'green',
platform: 'Android',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.13/app-mainline-release.apk'
},
{
color: 'orange',
platform: 'Linux',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.13/sudachi-linux-v1.0.13.7z'
},
{
color: 'violet',
platform: 'macOS',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.13/sudachi-macos-v1.0.13.7z'
},
{
color: 'blue',
platform: 'Windows',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.13/sudachi-windows-v1.0.13.7z'
},
{
color: 'gray',
platform: 'Source Code',
url: 'https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.13/latest.zip'
} }
] ]
} }
@ -187,4 +398,4 @@ export default function App() {
</Container> </Container>
</MantineProvider> </MantineProvider>
) )
} }*/

View file

@ -2,6 +2,6 @@ import { createTheme } from "@mantine/core";
import { themeToVars } from "@mantine/vanilla-extract"; import { themeToVars } from "@mantine/vanilla-extract";
export const theme = createTheme({ export const theme = createTheme({
primaryColor: 'violet' primaryColor: 'green'
}); });
export const vars = themeToVars(theme); export const vars = themeToVars(theme);

812
yarn.lock

File diff suppressed because it is too large Load diff