RetroSharp.Portable2D
0.0.646
dotnet add package RetroSharp.Portable2D --version 0.0.646
NuGet\Install-Package RetroSharp.Portable2D -Version 0.0.646
<PackageReference Include="RetroSharp.Portable2D" Version="0.0.646" />
<PackageVersion Include="RetroSharp.Portable2D" Version="0.0.646" />
<PackageReference Include="RetroSharp.Portable2D" />
paket add RetroSharp.Portable2D --version 0.0.646
#r "nuget: RetroSharp.Portable2D, 0.0.646"
#:package RetroSharp.Portable2D@0.0.646
#addin nuget:?package=RetroSharp.Portable2D&version=0.0.646
#tool nuget:?package=RetroSharp.Portable2D&version=0.0.646
RetroSharp.Portable2D
RetroSharp.Portable2D is the bundled portable 2D SDK. The CLI pairs this
RetroSharp source library with the Portable2D plugin descriptor, which owns
portable policies and compile-time source transformations. Neither introduces
a managed runtime dependency into a cartridge.
Quick Start
Projects normally load it from a project manifest:
{
"target": "gb",
"sources": [ "src/main.rs" ],
"libraries": [ "RetroSharp.Portable2D" ]
}
Standalone source can use the transition import form:
import RetroSharp.Portable2D;
void Main() {
Video.WaitVBlank();
}
External source-only packages use the same resolver through libraryPaths in a
project manifest or repeated --lib-path CLI options.
Package Shape
This package is declared by retrosharp-library.json. The manifest lists the
source files under src/, enables physical namespaces, and gates the package to
the target ids it supports.
The public facade source lives in files such as src/runtime.rs,
src/camera.rs, src/sprite.rs, and src/world.rs. These files define ordinary
RetroSharp classes and inline helpers over target intrinsics and compiler-known
portable operations.
Contract
This package:
- Provides the public portable SDK facade used by game source.
- Uses fixed storage and statically specialized source after lowering.
- Can be loaded through
libraries, source-levelimport, or package paths. - Uses target intrinsics and resource metadata that the compiler already knows.
The paired plugin is a compile-time dependency. Native register writes,
streaming, memory layout, and instruction emission remain target-owned; see
docs/SdkArchitecture.md and docs/SdkPluginBoundary.md.
World.BeginActivate(WorldAsset) / World.AdvanceActivation() provide bounded
world activation on supported native profiles; see docs/WorldActivation.md.
For automatic scrolling, implement ICameraTarget with pure i16 X() and
i16 Y() methods and register a stable target once with Camera.Follow(target)
in Main. Keep the existing Video.WaitVBlank() game loop. The SDK follows both
axes, reads Tiled bounds, and supplies Camera.ScreenX/Y projection. Manual
Camera.SetPosition pauses following; Camera.ResumeFollow() resumes it.
The public reference documents registration and lifecycle restrictions.
See docs/SdkArchitecture.md and docs/Portable2DSdkV1.md for the broader
architecture and public API reference.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- RetroSharp.Sdk.Plugin.Abstractions (>= 0.0.646)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.646 | 0 | 9/22/2026 |
| 0.0.644 | 74 | 9/21/2026 |
| 0.0.643 | 76 | 9/21/2026 |
| 0.0.642 | 77 | 9/21/2026 |
| 0.0.641 | 68 | 9/21/2026 |
| 0.0.639 | 73 | 9/21/2026 |
| 0.0.638 | 74 | 9/21/2026 |
| 0.0.637 | 73 | 9/21/2026 |
| 0.0.636 | 73 | 9/21/2026 |
| 0.0.635 | 80 | 9/21/2026 |
| 0.0.634 | 80 | 9/21/2026 |
| 0.0.633 | 78 | 9/21/2026 |
| 0.0.632 | 77 | 9/20/2026 |
| 0.0.631 | 78 | 9/20/2026 |
| 0.0.624 | 82 | 9/19/2026 |
| 0.0.623 | 79 | 9/19/2026 |
| 0.0.622 | 92 | 9/15/2026 |
| 0.0.621 | 83 | 9/14/2026 |
# Changelog 0.0.646
## Changes (initial history)
- Separate runner-lift Mario assets for Game Boy and NES (#963) (`dee5be20`)
- Plugins: preflight declarative compatibility before loading (#962) (`3d67bb88`)
- CLI: restore locked NuGet source libraries (#961) (`efe3d5d0`)
- docs: decide SDK plugin distribution and ABI compatibility (#907) (#960) (`d66fd890`)
- Convert runner-lift theme to Game Boy DMG (#959) (`1f77b4b2`)
- Refactor Game Boy WorldPack runtime emitters (#953) (#958) (`6727e3f5`)
- Revert "Delete azure-pipelines.yml" (`c081316f`)
- Refactor NES WorldPack runtime emitters (#952) (#957) (`69d5e335`)
- Delete azure-pipelines.yml (`21273c71`)
- SDK: centralize generated source validation (#955) (`b44bef74`)
- Eliminar cinco residuos Tiled de runner y alinear documentación (#486) (#954) (`5ca2defd`)
- Move CPU-work calibrations to target owners (#942) (`4f7be674`)
- Preserve typed SDK storage identity through target resolution (#941) (`dd884bd9`)
- fix(gameboy): initialize camera queues for animation (#940) (`882c4485`)
- NES: relajar ramas fixed mediante el linker (#939) (`518d158c`)
- fix: repair GB cadence acceptance oracle (#938) (`fa7d6a8b`)
- Make games/update_roms scripts executable (#937) (`5972ea39`)
- Separate playable games into games/ and add update_roms script (#936) (`63693620`)
- fix: restore smooth NES runner-lift scrolling (#935) (`3849ea0c`)
- feat: support Tiled background colors on NES (#933) (`1b505e88`)
- docs: declutter agent context and prioritize fluid gameplay (#932) (`cb12e053`)
- perf: smooth GB/NES scrolling and gameplay (#930) (`23ca1305`)
- refactor: remove verified dead code and enforce full solution builds (#929) (`051dc42c`)
- Replace reflection in NesRuntimeMemoryLayout with static descriptors (#926) (#928) (`65befe75`)
- refactor(parser): rename SomeParser to RetroSharpParser (#927) (`a4d392be`)
- feat(portable2d): add automatic camera follow (`108852f9`)
- feat: add playable RetroSharp templates (`37955930`)
- Tune runner-lift thrown enemy momentum (`979dec76`)
- Fix runner-lift B carry and throw flow (`73a4c940`)
- fix(runner-lift): stabilize idle gameplay cadence (`bfa9d904`)
- fix(nes): support DPCM sound-effect priority (#912) (`b3887173`)
- feat(samples/runner-lift): integrate pull and throw sfx for NES and Game Boy (#911) (`a965565e`)
- feat(runner-lift): implement staged enemy lifting animation (#910) (`7b7157ab`)
- build: migrate CI/CD configuration to DotnetDeployer.Fleet (#906) (#909) (`1794afdd`)
- GitHub: remove PR/issue templates and PR workflow (`9e348e63`)
- SDK: complete portable defaults and final audit guards (#905) (`0461f830`)
- SDK: decouple Actor storage from compiler (#902) (`8721967f`)
- SDK: move Projectile pool defaults into PRODUCT (#901) (`4f64f448`)
- SDK: make Enemies.Def defaults and validation PRODUCT-owned (#900) (`bdb73157`)
- Integrate custom Mario sprite sheet with carrying and throwing animations (#899) (`4b6488db`)
- fix(tests): harden optimized test infrastructure (#898) (`e939fb0d`)
- feat(samples): add runner-lift sample with SMB2-style mechanics (#897) (`869d99db`)
- chore(samples): regenerate Runner and Snow Bros Jr ROMs and runtime ABIs (#893) (`9ac39625`)
- ARCH: audit and close Portable2D residual coupling and frozen-consumer invariants (#891) (`91592762`)
- SDK: externalize Portable2D core actor-pool transformation (#889) (#890) (`084781f0`)
- docs: qualify Portable2D Actor and Tiled transformation extraction boundary (#888) (`bc183052`)
- perf: cache compiler-only/bundled builds and Roslyn plugin variants in acceptance tests (#887) (`b6175f3b`)
- SDK: externalize Portable2D Sfx.Play through typed target port (#882) (`dbfee47a`)
- test: leave concurrency to xUnit and remove manual Parallel.ForEach (`1343822a`)
- docs: clarify test concurrency and owning-suite execution in AGENTS.md (`ca03f703`)