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 @cr1901 plugging my own project here... have you tried https://github.com/solemnwarning/rehex ?

I don't have a high DPI screen, but I'm told it scales fine on them.

GitHub - solemnwarning/rehex: Reverse Engineers' Hex Editor

Reverse Engineers' Hex Editor. Contribute to solemnwarning/rehex development by creating an account on GitHub.

GitHub
@solemnwarning @foone Well, I have it starred on GH, so at some point I intended to try it out. Does it have hex patterns similar to imhex to describe file formats (Lua scripting fine)?
@cr1901 @foone It has a template language based on the one in 010 editor, I've only written one example template so far: https://github.com/solemnwarning/rehex/blob/master/plugins/binary-template/templates/riff.bt
rehex/plugins/binary-template/templates/riff.bt at master · solemnwarning/rehex

Reverse Engineers' Hex Editor. Contribute to solemnwarning/rehex development by creating an account on GitHub.

GitHub
@solemnwarning @foone The UI is def better than ImHex (for me anyway). Is it possible to color a range of bytes using binary templates, or would that need to be paired with a _complementary_ Lua script (i.e. binary template does most of the work, Lua does the extra goodies)?
@cr1901 @foone There's no API for assigning highlight colours from Lua scripts (or by extension, templates), I'll add one in the next version.
@foone What's TBL? :o
@cr1901 translation tables. useful for NES games and such, which don't use ASCII
@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