Releases: alttpo/sni
v0.0.9
v0.0.8
Changelog
ac03e53 examples: nodejs: wrap SingleRead in 240 iterations for a rough timing test
5b67358 fxpakpro: implement ResetSystem
8ac07b8 snes: fix long-standing bug in rom_test
a1acdbc snes: refactor to remove useless DeviceDriver.Use method; mapping.Detect accepts a UseMemory interface to dynamically require the ReadMemory capability when actual reading memory; moved all capability checks closer to when they are actually used
6fa94a4 snes: refactor to use AddressTuple
64a95a7 sni: consistent formatting for AddressTuples
v0.0.7
Changelog
0661b67 examples: nodejs: simplify promise handling with wrapper function; add DetectMapping invocation example
14f6c5c examples: nodejs: updated per latest changes
9697a0b retroarch: minor cleanup to MultiWriteMemory data formatting
3428681 retroarch: parse READ_CORE_MEMORY error responses and translate to CodeError
520cc99 snes: add ErrUnmappedAddress case for mapping.Translate() to make it obvious when attempting to access unmapped addresses
8576316 snes: define CodedError to pair a codes.Code with an error
37375a0 snes: define new AddressTuple to hole the tuple (Address, Space, Mapping)
18fe49c snes: detect: attempt to read ROM header from 4 possible addresses and collect all errors
12ef443 snes: minor refactor
a6fd75c sni: fix -logtiming reporter again
407fc9e sni: prepare for snes.CodedError to translate into gRPC statuses
93e40b2 udpclient: detect isClosed state before using connection to avoid panics
v0.0.6
Changelog
91e2862 snes: exhirom: 100% coverage
379a9b8 snes: exhirom: complete BusAddressToPak mapping
b148c48 snes: hirom: 100% coverage
ecca4c1 snes: hirom: add missing LowRAM WRAM mappings
1513ec2 snes: hirom: implement BusAddressToPak mapping
d34a7e1 snes: lorom: 100% coverage
8d5da55 snes: lorom: complete BusAddressToPak implementation
5e983df snes: treat Unknown mapping as an error
47d0033 sni: fix up -logtiming per new method names and fields
9fbdbc2 sni: remove MappingGet, MappingSet methods and remove mapping state associated with Device to avoid confusion among multiple clients
v0.0.5
Changelog
5081c87 fxpakpro: catch errors when opening serial port before creating device
e4a38cf fxpakpro: force uri to include a non-empty host so that path is not interpreted as host
470dfcd fxpakpro: log errors while opening serial port
00a7c8d fxpakpro: on error close device
97afa21 sni: log errors going to grpc response with or without -logtiming option
v0.0.4
v0.0.3
Changelog
aa24fa3 examples: add generate.sh script for node.js
ec0fcdd examples: add node.js gRPC client example to list devices
616ab1d examples: created golang client example
2815b96 examples: nodejs: add single read example
7e6495a examples: nodejs: rename namespace from proto to sni in generate.sh
0ca99e2 examples: nodejs: using import_style=commonjs_strict avoids global namespace pollution
fabf63d examples: refactor node.js to use promises and async/await for clarity
13a6077 examples: removed redundant copy of sni.proto and modified generate.sh to point to original copy
0f19045 luabridge: implement MultiReadMemory
1e61a20 luabridge: implement MultiWrite
5b52324 luabridge: introduction of luabridge server for lua bridge scripts to connect to
3df5a9b luabridge: store client and version from Version response and use it in ListDevices response
fdc3d78 snes: moved mapping packages under mapping
v0.0.2
v0.0.1
Changelog
fa82b4a Fix bad uint32 size
2407fb8 Fix nil map access
9eb37a6 Implement kinds filter for ListDevices
b0b8a72 Initial commit
358c64c Initial commit of SNI project, copying all code from o2 and removing irrelevant bits
a5d2135 Move command error to chan
358d911 Rewrite udpclient to not use channels
8b55d77 Split service up; remove error from message response
ad34811 Split up read request into multiple VGET chunks
3fd2298 Swap out individual timing code with general interceptor
7db3e9e Switch to RWMutex for devices map access
a3cda21 Switch to URI without path and just use Opaque
5c602d1 Wait for all batches to complete
4e0e70a build: add goreleaser support with build.sh script, add github workflow actions
91fbb9c build: add release scripts
4d3cbac fxpakpro: implement MultiWriteMemory; remove redundant int32 conversions
753fa18 fxpakpro: implemented MultiReadMemory; snes: refactored BaseDeviceDriver pattern
cef81af gRPC service defined and ListDevices implemented
eb2447f lorom: fix ROM mapping
f979a7a lorom: fix reverse translation which is not used
e813b8a retroarch: detect max read size
4508104 retroarch: dont close queue device on error
8659a3c retroarch: fix to use Host instead of Opaque
ab79275 retroarch: implement MultiReadMemory; fix ReadMemory to remap address
18c403f retroarch: implement ReadMemory in terms of MultiReadMemory
783ec9c retroarch: removed QueueDriver implementation
d3361a5 retroarch: track RAClient/UDPClient IsClosed() status
a499a68 snes: add IsClosed() bool func to Queue
533742b snes: add write responses to MultiWriteMemory; convert mock driver to Device
81339e6 snes: added Kind() to Driver; sni: corrected kind filter in ListDevices
7dc9db0 snes: expose Kind and Capabilities on DeviceDescriptor
158cce2 snes: fix HiROM mapping for SlowROM banks $00-3F
cd6bec7 snes: fixed LoROM ROM access to use banks $80-$FF for consistency; fixed SRAM and WRAM mappings
f6c0995 snes: implement HiROM and ExHiROM mapping from FX Pak Pro space to SNES bus space
dafd48b snes: introduce UseDeviceMemory; introduce ExclusiveUse and BaseDeviceDriver
08f41cc snes: introducing Device and DeviceDriver to deprecate Command Queue
1415163 snes: more tests and fixes for LoROM, HiROM, and ExHiROM
966abdc snes: remove ReadMemory and WriteMemory in favor of Multi interface
dc5890f snes: replaced interface design of DeviceDescriptor with simpler struct design with Uri, DisplayName pairs
3695253 snes: restructure requests/responses to match sni proto
079d933 snes: simplify UseDevice methods
81c3585 snes: switch to using *url.URL for device identifiers
5cb9331 snes: validate required device capabilities before attempting calls
1967e1c snes: walk back the ExclusiveUse to just Use and avoid double-lock problems
8749bfd sni: add -logtiming flag; custom log format for request/responses to avoid showing data
c048bcb sni: add DeviceControl service for Reset/Pause control; retroarch: first implementation of Reset and Pause
8c662e8 sni: add confidence bool to detection response; add internal bug checks for read/write methods
b147d7c sni: added ROM header to detection response
adbcd5b sni: dumb timing instrumentation for gRPC method handlers
7829b25 sni: generated new code from new proto and updated service
7dddf89 sni: implement MultiRead
0734ce7 sni: implement MultiWrite
0b570bb sni: implement memory mapping get. set. detect; implement address translation; TODO: hirom, exhirom address translation logic
205b169 sni: implemented Write gRPC; retroarch: detect -1 response
1fbdea5 sni: introduce UseDevice pattern to allow for releasing device if closed
262beed sni: rewrite sni.proto and regenerate code
9099c2a udpclient: Close on error and track IsClosed() status
ced2f1b udpclient: close client on errors so that reconnection can fix any read/write desyncs
760feb6 udpclient: fix too-small buffer for localhost UDP
15161c1 udpclient: refactored to use deadlines instead of timeouts; retroarch: using context.Deadline() when available
6c6b8df udpclient: rewritten for better debug breakpoint support