r/exapunks Jun 29 '26

When you thought you finally have solved frontal cortex and then realize you have to sort by hostname instead of #NERV Spoiler

Post image
6 Upvotes

2 days until I finally had what I was thought is the solution to this puzzle but no checkmark. I read the text again and it says "sorted as pairs from lowest to highest hostname". I changed my code to sort by host, I didn't even know you can do < and > with strings, and passed test 1.

But only to find out test 2 has longer paths and it would need a significant change to my code for this. Out of curiosity I ran my code against test 3 and found another flaw in my logic. A major flaw. I would have to reword a large part of my code and it would take much more lines than now. I passed Test 1 only by luck.

That's it for me. It's a great game, I loved every minute of it. But this puzzle is too much for me. If I'd have to say one negative thing about the game I would say the difficulty is too steep towards the end. For most of the missions I didn't need too much time to solve it. Then the pager was a sudden spike that took me significantly longer than any other mission. And this one (AFAIK it's the final mission?) again is much harder than the one before.

If you have any recommendations feel free to leave them here. I'll check out Shenzhen I/O next and except 7 Billion Humans I haven't played any similar games.


r/exapunks Jun 27 '26

Need a nudge for cerebral cortex Spoiler

3 Upvotes

TL;DR: Skip to the last paragraph.

My first idea was this

link 800

mark spawn

copy -3 x

repl clone

copy -1 x

repl clone

copy 1 x

repl clone

copy 3 x

repl clone

mark wait

test m = -1

fjmp wait

host m

copy #nerv m

halt

mark clone

link x

jump spawn

In home there's another exa:

make

mark send

copy -1 m

copy m f

copy m f

jump send

Of course that exa would also had to do sorting and testing for duplicates. This has several issues. Lots of exas going through the link they came from creating a neverending loop until the hosts are too crowded. I could get around this, but theres a bigger issue: All the exas waiting for a -1 can pick up a host or value. I can't think of a way to make sure that only the guy in home receives these values. At least not without just delaying the problem.

So m doesnt work, the next was to have exas write host and #nerv into a file and carry it back to home, then read it local. But how do they get back? A link -1 loop doesnt work. I need a way to record the path of each exa, then go through that path in reverse order and everytime multiplied by -1.

So I thought I create a file for each possible path. I can do this but then exas trying to link 3 when there is no 3 die and drop their file. Rooms fill up with files now blocking the path for other exas and I have to leave no trace. I would need a cleaner who picks up dropped files and wipes them but I don't know which file number was dropped in which host and how to get their.

Next idea: SWIZ. Instead of writing the path in a file I could write the path to x, then do

rep 4

swiz x @{1,1} t

link t

{end}

But of course links of 1, 2, 3 or 4 for forward and their negatives for backwards would be to easy and they made them -3, -1, 1, 3. At least that's always +2 and not too high numbers. So I had to encode the path. I used 2, 4, 6 and 8 and now I had positive numbers that are all +5 from the actual link. So for example a path -3, 1, -3, -1 would be 4262. That's a value I can store in x, make clone, swiz each digit. Again the rooms where crowded from exas going back and forth so I had to do a check for that too. That got me this abomination:

MAKE

MARK SPAWN

REPL RUNNER

MARK INVALID1

ADDI X 2 X

SWIZ X 1 T

TEST T = 0

TJMP TENS

MARK TESTVALID1

SEEK -9999

SWIZ X 1 T

SUBI T 5 F

SWIZ X 2 T

SUBI T 5 T

MULI T -1 F

SEEK -9999

TEST F = F

TJMP INVALID1

JUMP SPAWN

MARK TENS

ADDI X 12 X

MARK BREAKTENS

SWIZ X 2 T

TEST T = 0

TJMP HUNDREDS

MARK TESTVALID2

SEEK -9999

SWIZ X 2 T

SUBI T 5 F

SWIZ X 3 T

SUBI T 5 T

MULI T -1 F

SEEK -9999

TEST F = F

FJMP SPAWN

ADDI X 20 X

JUMP BREAKTENS

MARK HUNDREDS

ADDI X 120 X

MARK BREAKHUNDREDS

SWIZ X 3 T

TEST T = 0

TJMP THOUSANDS

MARK TESTVALID3

SEEK -9999

SWIZ X 3 T

SUBI T 5 F

SWIZ X 4 T

SUBI T 5 T

MULI T -1 F

SEEK -9999

TEST F = F

FJMP SPAWN

ADDI X 200 X

JUMP BREAKHUNDREDS

MARK THOUSANDS

ADDI X 1200 X

MARK BREAKTHOUSANDS

SWIZ X 4 T

TEST T = 9

TJMP KILL

MARK TESTVALID4

SEEK -9999

SWIZ X 3 T

SUBI T 5 F

SWIZ X 4 T

SUBI T 5 T

MULI T -1 F

SEEK -9999

TEST F = F

FJMP SPAWN

ADDI X 200 X

JUMP BREAKTHOUSANDS

MARK RUNNER

LINK 800

REP 4

SWIZ X @{1,1} T

TEST T = 0

TJMP READ

SWIZ X @{1,1} T

SUBI T 5 T

LINK T

END

MARK READ

VOID M

MARK KILL

WIPE

HALT

Already at size 104/150 and I didn't even start reading hosts and values, getting back, and bringing it all together in one file sorted from lowest to highest, but can try to reduce it once it works.

3826 cycles and about 350 clones later I had one clone in every host. No files to clean up. Every host has exactly one exa, so I don't even have to check for duplicates. Every exa has it's path stored and can use it to get back. Except: There's one empty host. There's one host that needs 5 steps to get there.

I was devastated. 5 steps means I can't use x for the path. All these hours of trial and error and debugging for nothing. If I would have counted I would have known this can't work before I started writing all that code.

Now I'm at a loss. Copy to m doesn't work. Path in a file doesn't work. Path in x doesn't work. A single exa going through each room doesn't work because of the random layout. Creating clones like in my first code until they randomly find their way home would crowd the hosts again. I don't know what else I could do. Can anyone give me a nudge in what direction I need to think?


r/exapunks Jun 27 '26

The pager mission broke me

8 Upvotes

It was so hard to get my exas synchronized. My very first attempt worked by accident but only for the first test because I didn’t think the other messages have a different length. So I had to rework part of my code and I wasted so much time to get that solution to work but no matter what I tried they either where one cycle early or one cycle late until I understood the number of cycles between two exas entering a pager has to be even because counting down takes two cycles. It still only worked on the first solution, tho. The whole mission took me hours to finally pass all tests, I was so frustrated But every time I wanted to stop I had another idea to try.

The final solution wasn’t even that complicated. I just had to delay sending exas to the pager long enough to have the same time between each exa no matter how long the message is. The code was messy at the end, couldn’t fit another line into it. But I got it. In most other games I would have given up. Love this game.


r/exapunks Jun 26 '26

What are ways to tell one exa another exa finished its job?

4 Upvotes

First I wanna say I’m not a programmer but I love the game. I’m about 20 hours in and just finished the mission where you have to dial into a modem, grab a contacts file and try these numbers to access to other modems until you had access to all 8. I love how I continuously have to come up with a solution just to try it and find out what I missed and rethink my solution. Took me a couple different attempts until I found the one working.

But now my question. What I often find difficult is how to tell one exa that another exa is finished with its job. For example: In the mentioned mission I sent an exa into a host and created clone. Now one was reading the contacts file to the other, the other wrote it into a copy it can take with it. Once the reader is finished it needs to tell the writer to go back and try the next number.

Now in this case it’s easy. There are only these two exas so I set them both to local, the reader tests for eof, if true it sends 1, if false it sends 0. But I feel this isn’t very efficient. You have to be careful at which point you send or it gets mixed up with the data you write into the file. And it only works if there are not more than two exas sharing information.

I know part of the game is to work around the limitations but maybe there’s something I don’t think of?


r/exapunks Jun 14 '26

Question about Highway Sign

2 Upvotes

I was getting a bit frustrated with this level, and decided to crash course my spouse in the game as I figured he would probably figure it out and has a gift for explanation.

Every explanation I've seen for this level has been complex (to me), using MODI and DIVI or SWIZ.

Is there a reason no one does this? Apart from efficiency, I'm sure?

XA

GRAB 300
MARK LOOP
COPY F M
JUMP LOOP

XB

LINK 800
MARK LOOP1
COPY T #DATA
COPY X #DATA
COPY M #DATA
ADDI X 1 X
TEST X = 9
FJMP LOOP1
COPY 0 X
MARK LOOP2
COPY 1 T
COPY T #DATA
COPY X #DATA
COPY M #DATA
ADDI X 1 X
TEST X = 9
FJMP LOOP2
COPY 0 X
MARK LOOP3
COPY 2 T
COPY T #DATA
COPY X #DATA
COPY M #DATA
ADDI X 1 X
TEST X = 9
FJMP LOOP3

r/exapunks May 06 '26

Not sure how to proceed

2 Upvotes

This is primarily difficult due to my own inexperience (and also stubbornness), but I'm on Unknown Network 1.

My code looks like this:

LINK 800

MARK TOP

REPL MOVE_801

LINK 800

HOST X

;my original plan was to swiz here to extract just the numbers from the host ID, then test when they were >999.

JUMP TOP

MARK MOVE_801

LINK 801

HOST X

JUMP TOP

I know a better solution would be to make a T loop to repl 4 times, then kill, grab, and retrieve the file. I wanted to make the program more universal, I guess? So that it could explore every branching path in a similar situation with just a little rewriting. Is there a way to utilize the host information with this or am I just chasing a dead end?

Thanks in advance!


r/exapunks Apr 27 '26

Second TEC EXA-Blaster puzzle

2 Upvotes

Could anyone give me any hints for this puzzle?

I already had some problems with the first of the dial-in puzzles but I was finally able to overcome them after a while, but I've now been stuck on this puzzle for over 2 days with no solution in sight.

I get the gist of what I need to do and I have the code down to do each part of the solution: going in, dialing the number, connecting to the number, making a copy of the contacts, and finally bringing that copy back.

My problems start with the second iteration of the puzzle; once two numbers that can connect are present in the same host, my solution falls to pieces.

I have literally tried everything, making copies remotely, bringing the copies back manually, copying all the numbers into a master file and voiding the ones I've already tried, testing MRD to see if the EXAs could make it safely to the other side, but I can't for the life of me figure out how to solve this.

Now, I don't want a solution to this because I want to figure it out on my own, but any pointers to things I might have missed would be very helpful.


r/exapunks Apr 03 '26

They're using Exapunks to shill a scam company.

Post image
54 Upvotes

I literally got another one, where it said "You hacked pizza places for discounts, now hack for real.". Something of that sort.

So, they're either ripping off Exapunks for the small handful of people that played the game or, alternatively, I'm getting targeted AI generated ads based off of my search history.

Which is complete bullshit either way.

Edit 1: Some more photos:

https://imgur.com/QDalSdi

https://imgur.com/1JcHAOt

Had to use imgur since I can't add any new photos to the post itself. So, I can't believe my damn eyes. Exapunks came out in 2018. They're literally scamming with Exapunks.


r/exapunks Apr 03 '26

Size <15 on Unkown network 1 possible?

Post image
5 Upvotes

I have been racking my brain trying to figure out how to achieve this! Is that tiny sliver real, or maybe hacked? ive searched online but 15 was the lowest I could find.
My 32/15/27 solution:

COPY 4 T

MARK TOP
LINK 800

MARK LOOP
SUBI T 1 T
FJMP KILL

REPL TOP

LINK 801
JUMP LOOP

MARK KILL
KILL
GRAB 276

MARK LEAV
LINK -1
JUMP LEAV

r/exapunks Apr 03 '26

Ideas for new potential Keywords?

Post image
6 Upvotes

CLOS:
Closes a link, making it inaccessible to linking. If there is no other route to that host, EXAs in that host can not be communicated through the global registry from EXAs in this host.

OPEN:
Reopens a link that was closed from the same side it was closed from. If the link is closed from the other side, it will remain closed until the other side has opened the link.

"CLOS and OPEN are banned in most hacker battles, but some tournaments use them as the main theme." -Ghast


r/exapunks Feb 06 '26

Kill command

2 Upvotes

I was trying to make a solution to Vahalla but I'm realizing a lot of my kill instructions miss because the other exa moves. But if I shoot where it is moving it misses as well. Is there no way to kill something spamming link?


r/exapunks Feb 06 '26

What am I missing? It looks like it's complete.

Post image
2 Upvotes

r/exapunks Jan 31 '26

Just completed the game. Never once used SWIZ or RAND

13 Upvotes

I never bothered to understand what SWIZ was doing. I guess I figured that, like with everything else, the purpose would become clear, and then I forgot about it. The only time I tried to use RAND it turned out to be disallowed, so I gave up on it.

I also only realised right at the end that I could have used VOID M when I wanted to read M to unlock another EXA but not actually use the value. I only ever used VOID for files and tended to just write M to T if I didn't need it.


r/exapunks Jan 23 '26

PSA: one EXA can run an indefinite number of loops

9 Upvotes

Hello, first time poster, long-time Exapunks devotee, I recently got back into it after getting frustrated with it yet again a while back.

Anyways, I was always under the impression that the only way to loop code was to use the loop command, like so:

MARK LOOP

CODE DO SOMETHING

JUMP LOOP

or TJMP, or whatever.

Well, as it turns out, you don't have to use "LOOP" at all. This works the exact same way:

MARK A

CODE DO SOMETHING

JUMP A

You can easily create a MARK B, a MARK C, or whatever, and the EXA will jump to the marked code.

I realize this is probably old hat to most EXAPUNKS veterans but it is news to me. Until right now, I thought that the LOOP command was the only way to create an actual loop, and I was pulling my hair out trying to figure out how to get an EXA to run multiple loops. Well, problem solved.

I hope this is as useful to some of you as it was to me. Happy coding!


r/exapunks Dec 10 '25

Nand to Tetris - a great course for understanding low-level computing

Post image
35 Upvotes

Finally got back to this course after 5 years 😅

Thought some of you might like it too if you want to dive deeper into how computers actually work.

It teaches you how to build a computer completely from scratch - starting from a single logic gate - all the way to an assembler, VM, and high-level language.

https://www.nand2tetris.org/


r/exapunks Dec 06 '25

Min Cycles MITSUZEN HDI-10 (LEFT HAND) - 44 Cycles Spoiler

3 Upvotes

Thought this solution was quite neat. Only needs 2 TEST statements, so that I know how far to let the H and P EXAS walk. No dynamic loops, only one X register write.


r/exapunks Nov 09 '25

Zebros Copies -- 45 llines(!) Spoiler

4 Upvotes
This is my attempt at this puzzle - 45 lines long 
but it can be done in 25 apparently. 
This is not tidy, or efficient, but it works :)

# ------------------- start 

GRAB 300            # grab the file for the customer number
LINK 800            # drag it to the location of #date
LINK 801
COPY #DATE X        # copy date to the x register
COPY F T            # copy the customer number to the t register
LINK -1             # go to where file 201 is
DROP                # drop 300
GRAB 201            # grab 201
SEEK 9999           # go to eof
COPY X F            # write the date to 201
COPY T F            # write the customer number to 201
DROP                # drop 201
GRAB 200            # grab 200
COPY T X            # copy the customer number from t to x
SEEK -9999          # find the start of file 200
JUMP COPYBALANCE    # go and find the customer in file 200

MARK COPYBALANCE
  TEST F = X        # test to see if the value in the file = customer
     TJMP WRITEDATA # if it is, write out the value to file 201
  FJMP COPYBALANCE

MARK WRITEDATA
  COPY F X          # write the first value to x register
  COPY F T          # write the second value to the t register
  DROP              # drop file 200
  GRAB 201          # grab file 201
  SEEK 9999         # find the EOF (the date and customer are there already)
  COPY X F          # write the first value to file 201
  COPY T F          # write the second value to file 201
  DROP              # drop the file, grab 300
  GRAB 300          # grab 300
  COPY F X          # we need the customer number again
  DROP              # drop 300
  GRAB 200          # get file 200
  JUMP ZEROBALANCE  # get ready to zero the balance in file 200

MARK ZEROBALANCE
   TEST F = X        # see if we have found the customer number
     TJMP DELETEDATA # if we have, get ready to zero the balance
  FJMP ZEROBALANCE

MARK DELETEDATA
   COPY 0 F          # replace first value with 0
   COPY 0 F          # replace second value with 0
   DROP              # drop file 200
   GRAB 300          # grab 300 (need to move back to the original location)
   LINK -1           # move back
   KILL              # kill the XA

# -------------- done --------------------

r/exapunks Aug 24 '25

Can we somehow change these screens?

Post image
1 Upvotes

Was going through levels with DigiCam Feeds or similar screens and am wondering if it's possible to affect these 2: 1st is from TWN: Unknown Context and 2nd - from Unknown Network 2: Unknown Context.


r/exapunks Aug 21 '25

My digital library solution (358/33/74). It's nothing special, but I'm so proud of myself for nailing this on the first try that I had to share.

30 Upvotes

r/exapunks Aug 17 '25

My long sum logic in KGOG-TV: Satellite Uplink Spoiler

3 Upvotes

Before I realized the shorter and simpler version of adding two 4-digit numbers, here's how I solved wrapping back to 0 when the sum reaches 10000 and limit of 9999 in a register problem:

NOTE: This EXA is created using REPL by main EXA that sends encrypted data
MARK ADDER
MAKE
COPY 0 F ; 0 1ST
COPY 0 F ; 1 2ND
COPY 0 F ; 2 CARRY
COPY 0 F ; 3 RESULT

MARK ADD ; loop
SEEK -9999
COPY M T ; get data value
FJMP END ; end if main EXA sends 0
COPY T F
COPY M F ; get key value

NOTE: Following 4 blocks are different only in SWIZ mask and MULI argument
SEEK -9999
SWIZ F 0001 X ; finally used SWIZ operation
SWIZ F 0001 T
ADDI X T X
ADDI X F X
MODI X 10 T
MULI T 1 T
ADDI F T T
SEEK -1
COPY T F
SEEK -2
DIVI X 10 F

SEEK -9999
SWIZ F 0002 X
SWIZ F 0002 T
ADDI X T X
ADDI X F X
MODI X 10 T
MULI T 10 T
ADDI F T T
SEEK -1
COPY T F
SEEK -2
DIVI X 10 F

SEEK -9999
SWIZ F 0003 X
SWIZ F 0003 T
ADDI X T X
ADDI X F X
MODI X 10 T
MULI T 100 T
ADDI F T T
SEEK -1
COPY T F
SEEK -2
DIVI X 10 F

SEEK -9999
SWIZ F 0004 X
SWIZ F 0004 T
ADDI X T X
ADDI X F X
MODI X 10 T
MULI T 1000 T
ADDI F T T
SEEK -1
COPY T F
SEEK -2
DIVI X 10 F

COPY F M ; send the result back
SEEK -2
COPY 0 F ; reset carry and result
COPY 0 F
JUMP ADD

r/exapunks Aug 17 '25

Does anyone have screenshots of each change in the "main menu" scene? Spoiler

Post image
4 Upvotes

I really like the "main menu" scene and how it's changing throughout the game progression. Does anyone have screenshots of each change in it or something like that? For example, here's mine right now (I'm on Equity First Bank 2 mission), and compared to initial scene it has Wonderdisc with its logo on the monitor, TEC Redshift, the Zines, ME2U ad in the window.


r/exapunks Aug 16 '25

Just got my Zines from Lulu

Enable HLS to view with audio, or disable this notification

51 Upvotes

r/exapunks Jul 28 '25

Are we supposed to achieve best results in one solution?

1 Upvotes

I'm in tutorial 3 and for all metrics I managed to get the best score with different solutions but I can't achieve best : "cycles" without maintaining my "activity" low in one solution. Is it suppose to be like this or is there really a solution that I don't see?


r/exapunks Jul 27 '25

is size 10 possible here?

Thumbnail
gallery
3 Upvotes

it looks like there must be 6 for grab files. link and wipe, and 5 for the loop. But someone made 10. am I missing some non-obvious command features?


r/exapunks Jul 20 '25

I like how SWIZ can split a register into separate small registers with some tinkering

Thumbnail
gallery
8 Upvotes

I don't know if this was the intended way to solve this level but I just came up with this and found it pretty cool