I need a way to run NES games FASTER

or maybe just more in parallel.

it's taking 15 seconds to run this TAS, with unthrottled/no-display bizhawk. I have half a million runs to do

I switched to a computer that's less in my lap, but that's still ~7s a run.

40 days?

maybe I should just set up some kind of orchestration so I can run it on all my spare computing power. just a lot of simultaneous NES TASes running everywhere
or I could get smarter. I don't want to do that. but it's an option
it turns out being smarter also involves waiting for several hundred NES TASes to finish
man either this game is very resilient to corruption or my script isn't working and I'm corrupting nothing.
or both

the files are identical.

MOTHERFUCKER

yeah I left in one line from an earlier version which broke it. it was carefully calculating the corrupted ROM and then it overwrote the in-memory copy with the original ROM, then wrote that out as the corrupted version

so my plan is that I'm taking an NES ROM and corrupting a kilobyte of it at a time. I'm then running it to a set point, and taking a screenshot.

Every 1k chunk that results in the same screenshot? is uninteresting to my corruption. Everything that breaks or changes? interesting.

Then I'll go through and randomly corrupt those 1k chunks that were found in the interesting pass

the idea is to skip corrupting any chunk that I know can't affect the screen I'm looking at

https://github.com/fhoedemakers/pico-infonesPlus

hmmm. NES emulator for the Pico. I have like 10-15 picos. I could parallelize this and build a dedicated NES emulation cluster

GitHub - fhoedemakers/pico-infonesPlus: NES Emulator with SD card and menu support for the Raspberry PI Pico, Pico 2 and other RP2040/RP2350 based microcontrollers. Play your games from SD card on a HDMI display.

NES Emulator with SD card and menu support for the Raspberry PI Pico, Pico 2 and other RP2040/RP2350 based microcontrollers. Play your games from SD card on a HDMI display. - fhoedemakers/pico-inf...

GitHub
yeah that looks like an Interesting chunk.
These two even moreso
I should automate this completely.
just randomly pick NES roms, figure out how much of them is PRG vs CHR, then randomly corrupt the PRG and take screenshots. if the screenshot doesn't match an unmodified screenshot, post it somewhere
the real trick would be to figure out how to do it to DOS games.
lemme see if TASVideos has a better solution for a DOS emulator since I last did a TAS 15 years ago...
nope
(technically not true: they now also support using libtas+PCem! A horrible hack that scares me!)
I think I made the game orgasm
I found that if you change byte 50647 to 97 in the ROM, bizhawk gets confused and tries to load it as a Playstation ISO
2048 gibberishings later and I think these two are the closest I got to a useful result
automating windows programs is always a nightmare. what does your command line tool do when the command line program calls MessageBox?
when I was automating some visual studio build machines a decade ago I had some code that checked every 60 seconds for unexpected dialog boxes being open, and if found it spammed ESC on the keyboard to close them.
okay out of 2048 gibberishings on the target chunk (1 kilobyte) I got 166 examples of changes that made a visual difference
none of which are useful
I already knew I wasn't smart enough to hack this game, but apparently I'm not stupid enough either
maybe I can make a bot to play the game for me and just make it exhaustively check every possible route
you know a project is serious when you need two different hex editors
@foone I have 2 hex editors... I like HxD's UI more, but ImHex binary format descriptions are also valuable.
@cr1901 yeah! I use HxD as my main one, but I use WindHex as my backup because HxD doesn't have TBL support
@cr1901 I tried to load ImHex once and it hurt my eyes. I'm on a high-DPI screen (against my will) and ImHex doesn't like it
@foone look kid you need to step up your game and start using an octal editor
@gloriouscow @foone fire up the Honeywell GCOS box
@foone you’re literally describing The Travelling Salesman computational problem
@foone you had me trying to figure out what "studio enough" meant
@habbie I'm all too stupid to spell correctly
@foone nah, just not studio enough
@foone I used xdotool and ran the program in wine. Then automating it was so easy.
@foone I need this script, I’ll bake it into everything. It is still a problem today, some websites have been known to defeat the browser defenses against pop-ups, not sure if with delays or what but it’s annoying.

@foone

(Windows 7 opening blocking dialog boxes »behind« every other window)

@foone Snarky reply: It uses Brick or debconf-frontend-readline to give a TUI experience?

From there you can use expect (or tintin!) to automate replies.

@foone this is a cool way to do this

@foone
ees
yes
yees!
yess!

The ground is very affirmative and enthusiastic.

@foone "I'll have what she's running."
@foone i spent a few hours making their hacked PCem version compile (only to be met with "obviously, use an undocumented second branch from 4 years ago" as a solution). then i discovered that libTAS uses horrible gnu hacks and won't ever work on musl

every time i try to get into speedrunning...
@foone this could make for an amazing art installation, especially if it could generate corrupted screenshots or gameplay in real time
@foone what game is this?
@CowboyWho Clash at Demonhead
@foone I loved that game even though I was never good at it.