whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.irclog.whitequark.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
notgull has joined #glasgow
<jn> rcombs[m]: is there one TAS-community-wide format for N64 TAS? and is there a spec for it somewhere?
<rcombs[m]> there are a couple formats (one from mupen64 and one from bizhawk), but only the mupen64 format is suitable for console playback; it's documented here: https://tasvideos.org/EmulatorResources/Mupen/M64
<rcombs[m]> a lot of TAS communities use bizhawk these days, and the tasvideos folks generally prefer it, but the Mario 64 community continues to use the mupen64 one for its console compatibility
<_whitenotifier-5> [glasgow] neuschaefer reviewed pull request #548 commit - https://github.com/GlasgowEmbedded/glasgow/pull/548#discussion_r1543904091
redstarcomrade has quit [Read error: Connection reset by peer]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
<jamie3456[m]> yay, all tests pass :)
<jamie3456[m]> s/tests/selftests/
redstarcomrade has quit [Read error: Connection reset by peer]
<jamie3456[m]> noo, re-broke it lol
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
parahola has joined #glasgow
notgull has quit [Ping timeout: 252 seconds]
notgull has joined #glasgow
notgull has quit [Ping timeout: 268 seconds]
<esden[m]> ok, here is the next batch of 260 ready to be dropped off at UPS tomorrow 😄
notgull has joined #glasgow
<omnitechnomancer> Wooo!
<omnitechnomancer> What makes the bizhawk one unsuitable?
<rcombs[m]> it's times in video frames instead of input polls
<rcombs[m]> so even in a hypothetical idealized world, you'd need to either use an LM1881 to measure video timing or keep your own clock and pray you don't drift
notgull has quit [Ping timeout: 256 seconds]
<rcombs[m]> but in reality that's a non-starter because emulators don't perfectly match console timing wrt lag
<rcombs[m]> they fundamentally _can't_, because lag is nondeterministic
<rcombs[m]> the same input on the same console can result in different timings on different attempts
<sorear> what exactly does this mean?
<omnitechnomancer> Mhmm
<sorear> are the number of video frames and the number of input polls per frame both deterministic?
<rcombs[m]> (the N64 has multiple separate oscillators driving the CPU and GPU; some other consoles have similar situations; Smash 64 even measures this to drive its RNG)
trh has quit [Quit: weg]
<sorear> do n64 games normally run without caring about vsync at all?
trh has joined #glasgow
<rcombs[m]> in SM64, output video fields per poll is nondeterministic, but there's exactly 1 poll per in-game non-lag frame
<rcombs[m]> some games instead poll on every output video field; those games generally don't console-verify reliably
mmerkel has quit [Ping timeout: 272 seconds]
<sorear> so there's a game main loop which usually runs once per input poll and is designed to finish in less than 1/vsync, and waits for vsync when it does finish early, but if the loop runs for more than one frame that's "lag" and nondeterministic?
<omnitechnomancer> Yea I was just thinking this makes it possible to write a game that will poll inconsitently
<rcombs[m]> in SM64, the main game loop usually takes 2 vsyncs (it's a 30fps game) and the input poll is part of it; sometimes the loop takes 3 or more vsyncs
<rcombs[m]> most other games poll during the vsync interrupt
<tpw_rules> (60fps games were very rare on n64)
<rcombs[m]> in those games, the mupen and bizhawk formats are largely equivalent (apart from bizhawk's being text and mupen's being binary), but neither syncs on console with any reliability
<rcombs[m]> (or, well, not without a whole lot of very careful synchronization work)
<rcombs[m]> there are some setups that analyze the video output to determine whether the game loop has advanced or not
<rcombs[m]> meanwhile, I'm going to try fabricating a cursed N64 controller <-> GBA link port cable
<rcombs[m]> and see if I can get TAS playback running on a Pocket
<tpw_rules> with a gba rom or custom fpga logic
<rcombs[m]> FPGA logic
<rcombs[m]> GBA ROM would also be fun though
<tpw_rules> ah fun, have you seen mcc111's work?
<rcombs[m]> tired: "does it run doom"
<rcombs[m]> wired: "can it beat mario 64 in under 5 minutes"
<rcombs[m]> yes! I'll probably use that as a starter template
<rcombs[m]> since amaranth seems a lot easier to work with than analogue's suggested toolchain
<tpw_rules> you still have to install the toolchain
<tpw_rules> you just don't have to write verilog
<rcombs[m]> ah, well, nevertheless
<rcombs[m]> yeah that part seems nice
<tpw_rules> it is. i tell people amaranth is the 3% of verilog that's actually useful
<rcombs[m]> that has SD card I/O and some massive chunks of RAM, so I shouldn't have too much trouble with space or I/O
<tpw_rules> what OS/system do you run?
<tpw_rules> the SD card i/o is hellish
<rcombs[m]> macOS
<rcombs[m]> M1M MBP
<tpw_rules> i think some people in the analogue discord have docker recipes for quartus or something
<tpw_rules> i have probably the same SKU as you but break out linux x86_64 + nix when i need that. i've had it working under rosetta but it was kind of unreliable
<rcombs[m]> oh I should join that
<tpw_rules> this was the last thing i did with my pocket lol: https://github.com/tpwrules/pocket_linux
<rcombs[m]> lol amazing
<tpw_rules> i should revive it now that amaranth is getting back on track
<tpw_rules> i wanted to do stuff like wire up the joystick as an evdev driver
<tpw_rules> or joypad
redstarcomrade has quit [Read error: Connection reset by peer]
parahola has quit [Remote host closed the connection]
<whitequark[cis]> <rcombs[m]> "since amaranth seems a lot..." <- so, i actually have a pocket, and some amount of interest in porting the analogue gateware to it
<rcombs[m]> I saw mcc'd posted about you having poked at it a bit
<rcombs[m]> I'd offer to contribute if I thought I was remotely competent enough
<rcombs[m]> though maybe that's just a matter of doing it more :shrugko:
<gruetzkopf> i need to dig up my N64<->GC cables (both directions). and build qsfp breakouts (to win "largest FPGA to play back a TAS" :D)
ar-jan has joined #glasgow
bvernoux has joined #glasgow
notgull has joined #glasgow
notgull has quit [Ping timeout: 272 seconds]
gsuberland has quit [Remote host closed the connection]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
bvernoux has quit [Quit: Leaving]
jn has quit [Ping timeout: 255 seconds]
jn has joined #glasgow
Chips4MakersakaS has quit [Quit: Idle timeout reached: 172800s]
redstarcomrade has quit [Read error: Connection reset by peer]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
alen6060[m] has quit [Quit: Idle timeout reached: 172800s]
smkz has quit [Quit: smkz]
smkz has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
<_whitenotifier-5> [glasgow] colinoflynn closed pull request #547: applets: Remove a few unicode characters that caused problems on Windows mingw terminal - https://github.com/GlasgowEmbedded/glasgow/pull/547
<_whitenotifier-5> [glasgow] colinoflynn commented on pull request #547: applets: Remove a few unicode characters that caused problems on Windows mingw terminal - https://github.com/GlasgowEmbedded/glasgow/pull/547#issuecomment-2027505619
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
Attie[m] has quit [Quit: Idle timeout reached: 172800s]
esden[cis] has quit [Quit: Idle timeout reached: 172800s]
ar-jan has quit [Ping timeout: 260 seconds]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
bvernoux has joined #glasgow
josuah has joined #glasgow
galibert[m] has quit [Quit: Idle timeout reached: 172800s]
bvernoux has quit [Read error: Connection reset by peer]
redstarcomrade has quit [Read error: Connection reset by peer]
<chipb> gruetzkopf: if you're going that route, perhaps you should make it "most number of simultaneous TAS playback pipelines supported" instead?
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow