Home Creators Posts Import Register Favorites Logout
haven't archived this post yet. have a subscription? use the importer!

Content

... or well, on YouTube, but who still watches TV anyway :)

I went to the CppCon conference in Denver last month to give a public talk on blobify, one of Mikage's building blocks. Blobify solves the central emulation problem of data deserialization: Whenever a running game "talks" to the emulated hardware, what Mikage sees is a sequence of raw bytes (i.e. lots of 0s and 1s). This happens for example when decoding GPU command buffers, when reading files, or when emulating system calls. To make sense of the raw data we get, Mikage needs to convert it to C++ data structures, and that can sometimes be rather nontrivial. That's why blobify exists - to make repetitive and error-prone tasks as easy as they ought to be.

As I mentioned in Development Update 4, a lot of time went into developing this library (which is actually open-source and on GitHub, by the way). My talk goes into all the technical details, so if you're keen on programming you'll find some nice C++17 gems in there. Either way, considering the importance to Mikage and the time I spent on this, I figured it's worth a shout-out on this platform.

Meanwhile, there's of course more progress to share on Mikage. Some of the items I've been working on will be summed up in the next Development Update, to be released later this month. Until then, enjoy the video :)

Files

Previews only

CppCon 2019: Tony Wasserka “Reading Binary Data with Style: A Serialization Framework for C++17”

http://CppCon.org — Discussion & Comments: https://www.reddit.com/r/cpp/ — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2019 — Reading structured data from a file or network stream remains cumbersome and error-prone in C++, especially when data validation is required. Existing approaches require too much boilerplate, aren't always portable, and may be restricted to specific data sources. Despite these limitations, there have been few alternatives in the past. This talk introduces blobify, an experimental serialization framework for C++17 designed to convert user-defined structs to binary data blobs and vice-versa. Contrary to similar frameworks, blobify largely automates the process, and it includes an embedded domain specific language to handle data validation. I will describe blobify's API design and usage, explain how it works under the hood, and provide an outlook at what the Reflection TS has in store for future improvements. Link to the library on GitHub: https://github.com/neobrain/blobify — Tony Wasserka Consultant Berlin, Germany Low-level anything: Tony is a consultant and long-term C++ enthusiast who has worked on the console emulator projects Dolphin (GameCube/Wii), PPSSPP (PSP), and Mikage (3DS) since 2010. More recently, he has worked on Vulkan graphics drivers for PowerVR graphics processors. His main interest is exploring C++'s zero-cost abstraction capabilities and applying them to create better software for resource-constrained environments. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com

Comments

No comments found for this post.