Show HN: Tetris, but the blocks are ARM instructions that execute in the browser

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Scout Monitoring - Free Django app performance insights with Scout Monitoring
Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.
www.scoutapm.com
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
  • Unicorn Engine

    Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)

  • OFRAK Tetris is a project I started at work about two weeks ago. It's a web-based game that works on desktop and mobile. I made it for my company to bring to events like DEF CON, and to promote our binary analysis and patching framework called OFRAK.

    In the game, 32-bit, little-endian ARM assembly instructions fall, and you can modify the operands before executing them on a CPU emulator. There are two segments mapped – one for instructions, and one for data (though both have read, write, and execute permissions). Your score is a four byte signed integer stored at the virtual address pointed to by the R12 register, and the goal is to use the instructions that fall to make the score value in memory as high as possible. When it's game over, you can download your game as an ELF to relive the glory in GDB on your favorite ARM device.

    The CPU emulator is a version of Unicorn (https://www.unicorn-engine.org/) that has been cross-compiled to WebAssembly (https://alexaltea.github.io/unicorn.js/), so everything on the page runs in the browser without the need for any complicated infrastructure on the back end.

    Since I've only been working on this for a short period of time leading up to its debut at DEF CON, there are still many more features I'd eventually like to implement. These include adding support for other ISAs besides ARM, adding an instruction reference manual, and lots of little cleanups, bug fixes, and adjustments.

    My highest score is 509,644,979, but my average is about 131,378.

    I look forward to feedback, bug reports, feature requests, and strategy discussions!

  • Emu86

    This project will emulate an x86 assembler in Python, as a learning tool for students.

  • ASM years ago. MOV'ing without any initial data feels unnerving. WASM and JupyterLite would be cool, too.

    Category:Instruction_set_listings has x86 but no aarch64: https://en.wikipedia.org/wiki/Category:Instruction_set_listi...

    /? jupyter asm [kernel]:

    - "Introduction to Assembly Language Tutorial.ipynb" w/ the emu86 jupyter kernel which shows register state after ops: https://github.com/gcallah/Emu86/blob/master/kernels/Introdu...

    - it looks like emu86 already also supports RISC, MIPS, and WASM but not yet ARM: https://github.com/gcallah/Emu86/blob/master/assembler/WASM/...

    - DeepHorizons/iarm:

  • Scout Monitoring

    Free Django app performance insights with Scout Monitoring. Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.

    Scout Monitoring logo
  • iarm

    A Jupyter kernel for an ARM assembly intrepreter

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Unicorn – lightweight multi-platform, multi-architecture CPU emulator framework

    1 project | news.ycombinator.com | 3 May 2024
  • Unicorn: Lightweight multi-platform, multi-architecture CPU emulator framework

    1 project | news.ycombinator.com | 19 Nov 2023
  • 86Box v4.0

    1 project | news.ycombinator.com | 13 Sep 2023
  • FOSS Simulator for debugging C code (even better if it supports some MCUs)

    1 project | /r/embedded | 28 Jun 2023
  • Unicorn: Lightweight multi-platform, multi-architecture CPU emulation framework

    1 project | news.ycombinator.com | 21 Jan 2023