ARC6969 Pt. 2

Writing an emulator / disassembler

Description

The ARC6969 is an old and forgotten architecture used in a military computers during Cold War. Although we don't have the computers anymore, we got CPU manual and a few programs.

182KB
Open
manual_2.pdf
52KB
Open
rom_2.bin

Solution

This is an extension from ARC6969 Pt .1. This time, the GPU is being used.

Each pixel of the GPU is represented by a 6-bit color bitmap:

Since each of the R, G and B colors are represented by only 2 bits, we have to scale this to match the normal 8-bit RGB channels. This means that 0b01 would correspond to 85, 0b10 would correspond to 170, and 0b11 would correspond to 255 on the 0 to 255 scale.

We then build on top of the script from ARC6969 Pt .1, implementing the update_screen function.

Each time the IO_GPU_UPDATE instruction is executed, the frame is added to the output video. The final video contains the flag: YauzaCTF{SW0RDFISH}.

Full emulator script:

Last updated

Was this helpful?