Mia emulates the Sony Ericsson T68i handset in C# with Avalonia and .NET. It runs the original AVR handset firmware and its ARM modem firmware. The project includes desktop, browser, and command-line front ends.
This repository does not include handset firmware, modem firmware, a GDFS image, or service documentation. You must supply those files from hardware or media that you can lawfully use.
The front ends use these default paths:
flat.binfor the AVR handset firmwareimages/T68i_Default_GDFS.rawfor the GDFS imageimages/t68i_R8A015_125326_Modem.bihfor the R8A015 ARM modem firmware
The desktop head also accepts images/T68i_Full_GDFS.raw and
images/T68i_Full_GDFS.compact.raw. You can use command-line options to select
files at other locations.
Install the .NET SDK version in global.json. Then build the
emulation core:
dotnet build src/Mia.Emulator/Mia.Emulator.csproj -c ReleaseThe desktop and browser projects use Avalonia 12.1.1 packages from NuGet.org.
Install the wasm-tools workload to build the browser project.
Build the complete solution:
dotnet build Mia.slnx -c ReleaseRun the desktop head from the repository root:
dotnet run -c Release --project src/Mia.Desktop -- \
--firmware-file path/to/flat.bin \
--gdfs-file path/to/T68i_Full_GDFS.raw \
--modem-file path/to/t68i_R8A015_125326_Modem.bihThe desktop head starts the handset and provides a keypad, a live LCD, and a loopback automation interface.
The command-line emulator exposes trace and capture options:
dotnet run -c Release --project src/Mia.Emulator.Cli -- \
path/to/flat.bin \
--gdfs-file path/to/T68i_Full_GDFS.raw \
--modem-file path/to/t68i_R8A015_125326_Modem.bih \
--virtual-simRun the command with --help to see all options.
The ARM and AVR core tests do not need the proprietary firmware files:
dotnet test tests/Arm7Core.Tests/Arm7Core.Tests.csproj -c Release
dotnet test tests/AvrCore.Tests/AvrCore.Tests.csproj -c ReleaseThe application tests use the same public Avalonia packages as the shared UI.
src/Arm7Corecontains the ARM7TDMI interpreter.src/AvrCorecontains the AVR interpreter and assembler.src/Mia.Emulatorcontains the handset, modem, ASIC, SIM, and GSM models.src/Mia.Appcontains the shared cross-platform Avalonia UI.src/Mia.Desktopcontains the thin desktop head and its platform services.src/Mia.Browsercontains the thin WebAssembly head and its browser services.src/Mia.Emulator.Clicontains the command-line head.src/Mia.Androidandsrc/Mia.iOSare stubs. They do not launch applications.testscontains the automated tests.toolscontains analysis, conversion, probe, and build utilities.
The project code uses the MIT License. See LICENSE.
Ported and third-party code has separate terms in
THIRD-PARTY-NOTICES.md.
The license does not cover proprietary handset files or marks. See
TRADEMARKS.md.