RetroSharp.Portable2D 0.0.646

dotnet add package RetroSharp.Portable2D --version 0.0.646
                    
NuGet\Install-Package RetroSharp.Portable2D -Version 0.0.646
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RetroSharp.Portable2D" Version="0.0.646" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RetroSharp.Portable2D" Version="0.0.646" />
                    
Directory.Packages.props
<PackageReference Include="RetroSharp.Portable2D" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RetroSharp.Portable2D --version 0.0.646
                    
#r "nuget: RetroSharp.Portable2D, 0.0.646"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RetroSharp.Portable2D@0.0.646
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RetroSharp.Portable2D&version=0.0.646
                    
Install as a Cake Addin
#tool nuget:?package=RetroSharp.Portable2D&version=0.0.646
                    
Install as a Cake Tool

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-level import, 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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`)