fpgacraft2 has quit [Quit: ZNC 1.7.x-git-709-1bb0199 - http://znc.in]
fpgacraft2 has joined ##openfpga
amclain has quit [Quit: Leaving]
<cr1901>
Guess what time it is?! :D
<cr1901>
It's "Time To Update Yosys!" Everyone's favorite compiling game where you try to be productive while your underpowered computer becomes a toaster
<rqou>
cr1901: dowwnload my precompiled one?
<cr1901>
I actually do need to follow development this time around I'm afraid
<rqou>
what do you mean by follow? the last build should be from a few hours ago
<cr1901>
Meaning I intend to hack on it
<rqou>
ah
digshadow1 has quit [Ping timeout: 246 seconds]
<pie_>
you guys think theres any point to trying to fuzz the ISA of GPUs?
<pie_>
youll probably get started in a day and ill be trying to for a month...but yeah :P
<rqou>
plz go and fuzz some iommus too
<rqou>
:P
<rqou>
(btw google did that and did not find any bugs)
<rqou>
unfortunately for us hackers, iommus tend to not be nearly as complicated
<pie_>
cuz i was thinking gpus and stuff are probs gonna be pretty good verified
<pie_>
but i dunno
<lain>
gpu /drivers/ on the other hand...
<pie_>
sure but thats no fun
<pie_>
:P
<rqou>
gpus themselves might very well have bugs
GenTooMan has quit [Quit: Leaving]
<rqou>
but unfortunately that doesn't lead to the system IOMMU having a bug :(
<lain>
hmm I thought there were some pretty serious iommu bugs a while back?
<lain>
or maybe I'm confused
<rqou>
there were plenty of serious bugs of "herp derp, how do i turn on the IOMMU"
<rqou>
but afaik none in the iommu once it's been set up correctly
<rqou>
there have been things like "every device is grouped together" or "bootloader turns on pcie but not iommu"
<cr1901>
I don't think I could code an MMU in Verilog. It looks simple in theory though (check associative array for a match, send signal back whether there was a march)
<rqou>
start with a trivial one
<rqou>
if address not in range, access is invalid
<rqou>
except remember to make the range configurable and correct, unlike nintendo
<lain>
lol
<cr1901>
range?
<rqou>
who knew they needed an iommu, added a trivial base+bound one, and managed to not cover 100% of the kernel heap
<cr1901>
Oh you mean IOMMU
<cr1901>
I'm tired tonight I was thinking regular MMU
<pie_>
how do i google ISA fuzzing
<rqou>
i mean, base+bound works for a regular IOMMU too
<pie_>
i.e. how do i get actual results
<rqou>
except most OS devs will hate you
<rqou>
*regular MMU
<rqou>
a step up from a base+bound MMU/IOMMU would be a TLB-only MMU
<rqou>
any mips devs here? :P
<rqou>
azonenberg?
<pie_>
so IOMMU would stop me from doind anything actually useful with bad code
<rqou>
assuming someone programmed it right
<rqou>
and that there aren't any not-yet-found bugs
<pie_>
there has to be previous work on fuzzing ISAs...google plz :I
<cr1901>
rqou: Did yosys alaways default to clang?
<pie_>
also if i do manage to do this
<rqou>
cr1901: idk, git blame it?
<pie_>
-> lots of gpu hangs -> how do i get more than 0.3 iterations per second throughput
<rqou>
gcc still works
<azonenberg>
What about mips?
<cr1901>
Oh I know, I'm just worried that my Makefile.config was lost
<pie_>
<bwidawsk> if you're hanging the GPU while fuzzing, which is likely, you're going to get *way* fewer than .3
<cr1901>
b/c I didn't have one before tonight, but I know for certain I compiled yosys w/ gcc on here before
<pie_>
oh boy
<rqou>
azonenberg: how do you feel about a software-managed TLB?
<azonenberg>
Not a huge fan
<rqou>
even though you like mips? :P
<azonenberg>
I have never used a mips that had a tlb :p
<rqou>
wait really?
<azonenberg>
all of my dev was on the M4K
<azonenberg>
with a fixed mapping mmu
<azonenberg>
it had user-kernel isolation
<azonenberg>
but no virtual memory and no protection between userspace processes
<rqou>
is that "that KSEG thing?"
<azonenberg>
Yes
<azonenberg>
Which is why i got fed up with it
<azonenberg>
switched to FPGA softcores
<azonenberg>
if pic32mz had existed in 2010 i might not have ended up in fpgas :p
<rqou>
be glad you're not dealing with (certain) PPC cores with both MMU and "BAT" (some trivial base+bound mapping thing)
<cyrozap>
I didn't buy them because this reeked of a scam, but I'm not sure what the scam would have actually been, since PayPal would have likely refunded the cost of the items in that case.
<cyrozap>
Really what surprised me was the KC705 listing, because the description was along the lines of "bought this and only used it a little", which is crazy because who would buy a $1600 kit and then sell it later for only $330?
<rqou>
hmm i'm starting to suspect the devboards are stolen
<cyrozap>
rqou: That would make sense for the VC709, but the KC705 wasn't being sold as-is, so by eBay rules it has to be fully functional to be sold as "New (other)".
<cyrozap>
Yeah, that was my thought, too.
<cyrozap>
Because that's the only thing that would explain why they were so cheap.
<cyrozap>
But then, if he'd tested the KC705, why not also test the VC709 and then sell that for a lot more? Am I over-estimating the intelligence of (alleged) criminals?
<rqou>
random-ass guess: "obtained" from a university because of "connections"
<cyrozap>
I was sorely tempted to buy the $110 VC709, but while my wallet could take the loss if it was a scam, I don't think my pride would have fared as well :P
<cyrozap>
But then _why so cheap_? Like, the VC709 is $5000 new, he could have asked for a lot more and still been able to sell it that quickly.
<cyrozap>
And then what's with the keylogger listing? And the infrequent eBay buyer is now suddenly selling a bunch of items? Bizarre.
<pie_>
my main problem right now with the whole gpu fuzzing thing is how in the world could it be made practical
<pie_>
y'all fpga people could do some fancyass pcie card shit :P
<qu1j0t3>
pie_: i stumbled on an fpga pci prototyping card the other day.
<qu1j0t3>
pie_: at a surplus place
<rqou>
heh, this reminds me of a (secret, internal) project at BRCM
<rqou>
didn't get anywhere though
<pie_>
*pcie middleman
<pie_>
qu1j0t3, yeah?
<qu1j0t3>
pie_: but i left it there
<qu1j0t3>
pie_: i could see if it's still there
<pie_>
its probably nothing fancy but it could still be cool
<pie_>
soon: pie_ cooks some mobos
<pie_>
preliminary research suggests i could actually do some original work here
<pie_>
to bad i havent the faintest clue what im doing and someone is going to publish results within the year, i bet you a beet
<pie_>
beer
<pie_>
*within a year
<cyrozap>
pie_: Have you seen the PS4 hacking presentation that was at last year's CCC?
<cyrozap>
They did PCIe-over-UART :P
<rqou>
pcie 0.00005x :P
<rqou>
oh yeah, that's an example of "have iommu and f*cked it up anyways"
<pie_>
no i havent seen it
<rqou>
lesson: don't open stack pages in the IOMMU map
<pie_>
so now that im talking to everyone about this, there goes my chance of stashing some 0days ;P
<pie_>
inb4 i brick gpus from software, inb4 unrecoverable crashes, inb4 topkek
<pie_>
pi(p)e dreams
<rqou>
ugh, i still haven't done anything useful today
<pie_>
well, im off, 5am isnt the time to start reading GPU ISA documentation
<pie_>
i always go to bed right before i start doing anything useful :P
<pie_>
anyone wanna buy me hardware? :P
<qu1j0t3>
what kind
<rqou>
i would start with just fuzzing drivers for pcie devices
<rqou>
pure software
<pie_>
qu1j0t3, just a couple video cards xP
<pie_>
rqou, well yeah it would certainly help to be familiar with fuzzing
<rqou>
i've run afl-fuzz before
<rqou>
it actually found a bug
<cyrozap>
pie_: Shader fuzzing on embedded systems is especially fun because GPU memory is almost always shared with the main system memory, and there's generally either no IOMMU or it's disabled/misconfigured, so they're generally pretty easily exploitable, and this is made worse by the fact that the kernel drivers for the proprietary userspace drivers generally don't do much (if any) bounds checking on the
<cyrozap>
shader programs themselves, because userspace wouldn't send malicious shaders to the kernel... right? :P
<pie_>
cyrozap, you sound like youve done this before
<rqou>
still waiting for a webgl/stagefright->EL3 exploit chain
<pie_>
cyrozap, also thats one of the things i was thinking about basically :D
<pie_>
rqou, el3?
<pie_>
stagefright?
<rqou>
the aarch64 name for trustzone (most privileged mode)
<rqou>
stagefright is the shitty android media file parser
<rqou>
the one where you could pwn people by sending them a text message or something
<pie_>
aha 0.o
<pie_>
cyrozap, so yeah....you sound like youve done this before :P
<rqou>
cyrozap: my favorite is still nintendo's "userspace _might_ cause the gpu to issue malicious DMA requests, so we'll block it except where we don't (beginning of kernel heap)"
<cyrozap>
pie_: Not personally, but I'm aware of the theoretical possibility, and have seen others add mitigations in Linux for some FOSS GPU drivers: http://anholt.livejournal.com/48404.html
<pie_>
" For 3D, there's no need (in GL 2.1) to do general write back to system memory, so the kernel reads your shader code and rejects shaders if they try to do it. " im guessing this means no self-modifying code as wel
<pie_>
alternatively, dont stop reading in the middle of the article
<cyrozap>
This is one of the reasons why proprietary GPU drivers are a lot more dangerous than most people realize, since they both 1. have DMA and 2. can execute arbitrary code.
<pie_>
i still dont get why there havent been any mass exploitations of multiplayer games
<pie_>
well theres always time for a first
<rqou>
what kind of exploitation?
<pie_>
idk, exploit the game client, install malware
<rqou>
you would have to take over the server for that
<pie_>
not necessarily?
<pie_>
alternatively, thats probably not much harder than exploiting the game client. though that depends
<pie_>
then again its probably not very effective for a large botnet, noone cares about small botnets
<pie_>
and people paying games are probably not going to be high value targets?
<rqou>
i love hearing about logic bugs and cheating in video games though
<pie_>
yup
<rqou>
always makes me wonder "how the f*ck is that possible?"
<pie_>
or "why didnt i discover that!"? :P
<rqou>
e.g. the old maplestory "lol, i just ignored your attempt to cause me damage, and so no damage happens"
<rqou>
which was eventually fixed
<rqou>
after fixing it, it was immediately replaced with "ok, i'll take damage, but it was 1 point always"
<rqou>
combined with "knockback? no thanks"
<pie_>
also i figured demoscene people would be more into shader assembly fuckery but they were like nah thats dumb
<rqou>
my "favorite" part of maplestory cheating though has got to be "CRC bypass"
<rqou>
somehow the server has a command that asks the client to checksum it's code segment
<rqou>
*its
<rqou>
if the crc mismatched you were kicked automatically
<rqou>
so the solution is to make a copy of the code segment before you patched anything
<rqou>
and then redirect the checksum function to read from the copy
<pie_>
keeps out the noob haxors for a day or two :P
<pie_>
b&
<lain>
VAC banned
<rqou>
another great hack that existed for forever (eventually fixed?) was nicknamed the "client-side EAX" hack
<rqou>
basically there was a part of the code that handled where enemies were supposed to be located
<rqou>
and that code stored the x-coordinate in the EAX register
<rqou>
so the "client-side EAX" hack just patched it to be a constant
<rqou>
so all the enemies would appear to bunch up in a column, but only on your client
<lain>
hahahahah
<rqou>
now you use an AoE attack on the cluster, and your client tells the server "yup, i attacked all these enemies"
<rqou>
and the server says "oh? ok!"
<rqou>
meanwhile everybody else on the map sees enemies getting hit for no reason
<rqou>
there was another hack called as a misnomer "server-side EAX"
<rqou>
which has nothing to do with affecting EAX, but somehow managed to _convince the server_ that all enemies were indeed bunched up in a column
<rqou>
file this into the "how the f*ck is that possible?" category
<rqou>
at some point someone broke the encryption on the network packets and figured out their basic structure
<rqou>
and then wrote tools to inject/modify arbitrary packets
<rqou>
maplestory became pwned as f*ck for quite a while after that :P
<pie_>
top kek
<pie_>
if youre ever in a dire need of increasing your publication count write a paper summarizing maplestory hacks :P
<rqou>
i actually don't know them that well
<pie_>
i wish someone would fix the flash decompiler debugger line numbering bug...i cant because i dont understand the code :P
<rqou>
meanwhile for one of the other MMOs that lots of people played, runescape seemed to have a reasonably small number of these types of bugs
<pie_>
maybe they figured out stuff is supposed to happen server side
<rqou>
the worst bugs i know of are the ancient "modify packets to dupe items" bug and the "fishing trawler" bug
<rqou>
yeah, the devs seem to actually understand what is a client and what is a server
<pie_>
i never actually did find places to find out about those
<rqou>
these are documented as legend/across various ancient forums
<rqou>
the "fishing trawler" bug was pretty interesting
<rqou>
there is a minigame in runescape called the fishing trawler
<rqou>
it's time-limited
<rqou>
somehow it was possible to escape the minigame
<rqou>
but the "time expires" logic assumed this was impossible, and kicked you out of the minigame by moving you a fixed offset from your current location
<rqou>
so once you escaped the minigame, you would set yourself up in just the right spot, and the "time expires" logic would clip you through obstacles
<pie_>
huh. sounds like you might be able to do some interesting stuff with that
<rqou>
you could, because every location in the game is logically on the same 2d map
<pie_>
yeah
<rqou>
and then there's the pile of "smuggle items out of minigame" bugs that kept cropping up
<rqou>
that were all eventually fixed by making the item check if you are in the minigame state before applying their effects
<rqou>
did you know that global state is hard? :P
<pie_>
xD
<pie_>
i had a global state bug today
<rqou>
from what i've seen in hacks/speedruns/etc., the hardest parts of video games seems to be:
<pie_>
iwas storing a number in a variable called i
<rqou>
* saving
<rqou>
* pausing
<pie_>
then i used i as an iterator later
<rqou>
* minigames/menus/demos/cutscenes
<pie_>
and then i used i in a function as a global variable, which had been overwritten by the iterator (a much smaller numbr)
<rqou>
pausing seems to somehow be universally difficult to get right :P
<pie_>
and i was like, why isnt this working? then i checked its value ... "oh..."
<azonenberg>
Characterization setup is coming together
<pie_>
:D
<pie_>
so coool
<azonenberg>
have some other code to write before i do firmware for it
<rqou>
nice
<azonenberg>
but hoping to play with this later today
<rqou>
more useful than discussing how to cheat at vidya :P
<azonenberg>
So that's the level shifter board and the thermal breakout
<azonenberg>
gonna start by bringing up the temp/current sensors on the breakout
<azonenberg>
The respun breakout wont be here till end of month but it's the same schematic, just a fixed layout... so i should have the measurement code all ready to go
<azonenberg>
then i have to write a bit of code to control the i2c io expander i used on the level shifter board
<rqou>
SEM pics of the fried coolrunner? :P
<pie_>
azonenberg, you are doing all this outside of work?
<azonenberg>
to control the direction of each signal
<azonenberg>
rqou: i decapped it
<azonenberg>
nothing obvious visible on top metal optically
<azonenberg>
did a planar fib delayer of one row of the ZIA, nothing jumped out at me
<azonenberg>
gonna do a cross section of the ZIA later
<pie_>
then again given the whole cloud stuff and the nature of GPUs in relation to that...i doubt noones seriously looked into this yes
<pie_>
thats a context in which this would be particularly interesting
<qu1j0t3>
that's why gpu instances are dedicated tenancy no doubt :D
<rqou>
now what happens when azonenberg goes and fries an F1 instance? :P
<pie_>
rqou, i was about to mention that it looks like the fpga instances have gone live
<azonenberg>
rqou: actually had some chats with a guy at work about the possibility but i dont know enough about their setup to even begin to guess if it's possible
<pie_>
honestly i didnt even consider clouds other than amazon exist
Lord_Nightmare has quit [Ping timeout: 260 seconds]
Lord_Nightmare has joined ##openfpga
digshadow has joined ##openfpga
Hootch has joined ##openfpga
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
eduardo__ has quit [Ping timeout: 240 seconds]
eduardo__ has joined ##openfpga
m_w has quit [Quit: leaving]
<cyrozap>
I'm beginning to think that JTAG may be locked out/disabled on this modem... :(
<rqou>
hmm, that sounds unlikely
<rqou>
actually, maybe
<rqou>
if anything though, it's only disabled externally
<rqou>
oh wtf?!
<rqou>
this is a first
<rqou>
i bought some "10gtek" brand 1g media converters from amazon
<rqou>
they're implemented with a qca8334
<rqou>
which is a _switch_
<cyrozap>
What do you mean by "disabled externally"?
<azonenberg>
cyrozap: as in like TMS jumpered high
<azonenberg>
or TRST
<azonenberg>
or something like that
<cyrozap>
But there's nothing between the chip and the test points, other than those series resistors...
<cyrozap>
You saw the photos I took, right?
<rqou>
i meant that the jtag interface going to the pins might be disabled, but inside the soc itself, "interesting" things might exist
<rqou>
hmm, looking at this leaked qca8334 datasheet, this switch chip is _weird_
<rqou>
2x 10/100/1000 base-t interfaces, one rgmii/rmii/mii interface, one sgmii/base-x interface
<rqou>
the board has unpopulated space for a second rj-45 jack
<cyrozap>
But how would an internal JTAG interface be useful? I don't have a FIB :P
<rqou>
ask azonenberg for help? :P
<openfpga-github>
[openfpga] azonenberg pushed 1 new commit to master: https://git.io/v7vsZ
<openfpga-github>
openfpga/master fb63552 Andrew Zonenberg: Implemented bitstream loading support for DCMPREF and SYSRST
<rqou>
hey, go test my udev removal PR already :P
<rqou>
heh, the qca8334 part is really really weird
<rqou>
it has igmp snooping
<rqou>
this is a 4-port device
<cyrozap>
New riddle: When I unplug the power from my STM32 board, but leave all the modem JTAG lines connected, I start to see noise on 4 of the 5 lines. The one line that is still high is one of the two with the 33-ohm resistors. Does this tell me anything?
<rqou>
that line might be TDO
<azonenberg>
That sounds right
<rqou>
my guess is that your off stm32 is somehow pulling power off of the data lines
<rqou>
which is dragging the inputs low
<rqou>
azonenberg: what is the point of a semi-managed switch with only 4 ports? why does this part exist?
<rqou>
why would someone put this in a media converter?
<rqou>
(as opposed to tp-link's which is a marvell alaska)
<cyrozap>
rqou: Regarding your switch question, someone might put it in a router/switch to add ports to a SoC/CPU (since they typically only have 1-2 built-in).
<rqou>
yeah, that is listed as an intended use case
<rqou>
hence the one RGMII interface (that also has access to the registers)
<rqou>
but then you end up with 2 base-t interfaces and a base-x/sgmii interface
<rqou>
that doesn't seem very useful
<rqou>
ooh
<rqou>
it's a cut-down qca8337 which has more ports
pie_ has quit [Read error: Connection reset by peer]
pie_ has joined ##openfpga
pie__ has joined ##openfpga
pie__ has quit [Remote host closed the connection]
qu1j0t3 has joined ##openfpga
indy has joined ##openfpga
digshadow has quit [Ping timeout: 276 seconds]
digshadow has joined ##openfpga
<cr1901>
rqou: What cmake version do you use on openfpga (rust code won't compile on Ubuntu 14.04 LTS)? I can do the patch later, but perhaps there should be a cmake version guard? Ditto with libudev
scrts has quit [Ping timeout: 260 seconds]
scrts has joined ##openfpga
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
m_w has joined ##openfpga
amclain has joined ##openfpga
azonenberg_work has joined ##openfpga
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
digshadow has quit [Quit: Leaving.]
mifune has joined ##openfpga
mifune has joined ##openfpga
scrts has quit [Ping timeout: 255 seconds]
scrts has joined ##openfpga
<azonenberg>
cr1901: There is a version guard
<azonenberg>
if the guard is not sufficiently strict, that's a bug
<azonenberg>
Soooo hmm
<azonenberg>
the greenpak RC oscillator can be bypassed and you can feed an external clock into the clock tree
<azonenberg>
Do you think this makes sense to do as part of the RCOSC primitive?
<azonenberg>
or should I create a CLKMUX primitive instead?
Hootch has quit [Read error: Connection reset by peer]
<openfpga-github>
[openfpga] azonenberg pushed 1 new commit to master: https://git.io/v7JqG
<openfpga-github>
openfpga/master 47c3e85 Andrew Zonenberg: Implemented bitstream loading for MuxedClockBuffer, RCOscillator, SPI
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
Ellied has quit [Quit: WeeChat 1.0.1]
Ellied has joined ##openfpga
digshadow has joined ##openfpga
nulquen has joined ##openfpga
<lain>
OT: can anyone recommend a good registrar? namecheap's weirdness is starting to really irk me.
<lain>
(specifically namecheap keeps sending me notices that my stuff is "about to expire" and requires "IMMEDIATE ACTION" because I have "insufficient funds," yet I have a CC tied to the account and it seems like sometimes it auto-renews using the CC and other times it just .. doesn't. I don't appreciate the uncertainty or manual interaction this causes, if I give them a valid payment method and tell them to
<lain>
auto-renew, I expect it to just work.)
<azonenberg>
i've been looking to leave godaddy myself
<azonenberg>
so if you find anything good let me know :p
<lain>
eugh godaddy is the worst
<lain>
I moved from godaddy to namecheap
<azonenberg>
I need to find a new email host
<azonenberg>
right now i have my mail hosted w/ GD
<azonenberg>
which is the big thing holding me back
<lain>
I use google apps
<azonenberg>
i could easily migrate the domains, the mailbox would be more of a pain in the butt
<lain>
but I'm on the free tier, which I don't think exists anymore
<azonenberg>
yeah i'm paying a few bucks a year for actual hosted godaddy mail
<azonenberg>
i need to leave but i havent cared enough to do anything about it :p
<lain>
omg what, there was a vuln in Source game engine that allowed remote code exec by killing you in a Source game?!?!?
<azonenberg>
So looks like only exploitable on community maps?>
<lain>
>not using ASLR
<azonenberg>
official maps not exploitable?
<azonenberg>
and lol yes that is pretty absurd
<azonenberg>
"Gaming machines should be moved to an untrusted network"
<lain>
:3
<azonenberg>
yeah i virtualize due to lack of a machine i can dedicate to this
<azonenberg>
But as soon as i buy a new computer this one will probably become a dedicated gaming rig
<lain>
and yeah I think it's just custom assets
<lain>
but it's not totally clear to me
<azonenberg>
Either way, i'm not surprised in the least
<azonenberg>
Which is why even when native steam came out, i didn't use it :p
<azonenberg>
Running it in a vm is better than nothing
<lain>
aye
<azonenberg>
My goal has never been to keep NSA out of my box, i dont have the time or resources to fight a full cyberwar
<azonenberg>
My goal is to be a tougher target than the guy next to me
<azonenberg>
I have not yet seen garden-variety malware using VM escapes
<azonenberg>
in fact, if anything they have VM detection and then shut down
<rqou>
wtf i thought pie_ yesterday wasn't being super serious
<azonenberg>
b/c they think they are being analyzed
<rqou>
turns out vidya are worse than i though
nulquen has quit []
<pie_>
rqou, i was being super serious
<pie_>
but in what regard do zou mean
<rqou>
<lain> omg what, there was a vuln in Source game engine that allowed remote code exec by killing you in a Source game?!?!?
<pie_>
oh, maybe i should read scroll
<pie_>
holz shit lol
<pie_>
how recent is this
<lain>
yesterday ish
<pie_>
rqou, i didnt actually know of anything
<pie_>
just an educated guess
<rqou>
how the f*ck does this happen?
<rqou>
why does it seem like gamedevs all suck at programming?
<azonenberg>
Same reason EEs suck at programming
<rqou>
i should try writing a vidya
<azonenberg>
Also, in addition to it not being their real focus/calling
<azonenberg>
think about the dumbest guy you know in the CS/EE program at berkeley
<azonenberg>
now realize he's a lot smarter than the average CS graduate
<rqou>
goddammit :P
<rqou>
btw azonenberg thoughts on my claim that the hardest parts of writing a vidya are 1) pausing and 2) saving? :P
<pie_>
apparently dying is also hard :P
<azonenberg>
Networked multiplayer sync is hard
scrts has quit [Ping timeout: 255 seconds]
<rqou>
oh yeah, that too
<azonenberg>
:p
<rqou>
right, i was thinking singleplayer
<rqou>
basically every time i watch games done quick, a huge percentage of bugs are related to either pausing or saving
<azonenberg>
really? pausing doesnt seem hard
<azonenberg>
just have the timer tick function return before doing anything
<rqou>
if you structured it correctly
<rqou>
to even have such a concept
scrts has joined ##openfpga
<azonenberg>
isnt that event loop where baiscally everything happens in the typical simple game?
<lain>
so re: registrars; I've heard good things about gandi and hover. hover seems to be really well-liked.
<rqou>
right, but then extra functions get duct-taped on like "after enemy is hit, be invincible for <x> time"
<lain>
also yeah wan multiplayer is hilarious
<azonenberg>
that should just be state mutated in the timer tick
<rqou>
and then you end up with the classic bug of "shoot projectile at boss and then pause/unpause repeatedly"
<lain>
you should see the shit that happens in the ghost in the shell: first assault game
<rqou>
what about modded minecraft? :P
<rqou>
or even unmodded minecraft with boats/horses?
<lain>
minecraft netcode is good comparatively
<rqou>
is it?
<lain>
hang on lemme find some clips I've saved
<rqou>
i guess the only major problem is rubberbanding
<rqou>
although the pre-netty versions were hilarious
<lain>
in fairness, gits has improved a lot over time, but it's still got some major issues (also in fairness these are issues I have no personal experience solving, they might just be that hard, I don't know)
<rqou>
i seem to remember that minecraft somehow used to have "send immediately, with PSH" enabled everywhere
<rqou>
and you would end up with one packet containing one byte of the packet type
<rqou>
then one or more packets containing the payloat
<azonenberg>
that isnt a problem as long as you buffer your data before calling sendto()
<azonenberg>
... but yeah if you do THAT
<azonenberg>
:p
<rqou>
so afaik the netty rewrite fixed this
<rqou>
i haven't looked at what happens now
<rqou>
a lot of people are glad that Packet255Modloader went away :P :P
<rqou>
what happened here was that people who wanted mods had a framework called Modloader
<rqou>
somebody else hacked this into a framework called ModloaderMp to work for multiplayer
<rqou>
but there's a global (immutable?) registry of packet types in minecraft
<rqou>
so ModloaderMp created a packet type called Packet255Modloader
<rqou>
which contained a second ID byte
<rqou>
and then (iirc) an array of ints, an array of floats, and an array of strings
<rqou>
and then all mods had to manually serialize/deserialize their state through that
<rqou>
and yes, you could get secondary id conflicts too
<rqou>
it's hilarious how many types of conflicts you could get in modded minecraft before the modding people rewrote all of this code
<rqou>
GUI ID conflicts were lots of fun (and one of the last to be fixed iirc)
<rqou>
right-click item from mod A, random GUI from mod B shows up
<rqou>
but all the items might still be there, just in random slots
mifune has quit [Ping timeout: 240 seconds]
<pie_>
rqou, people keep stealing my ideas ;PPP
<pie_>
independently stealing my ideas.
<pie_>
definitely.
<rqou>
come to silicon valley so you can market your ideas better :P :P
<pie_>
my ideas are great.
<rqou>
the BEST ideas
<pie_>
make my ideas great again.
<pie_>
You know what. You know what I need?
<rqou>
build a wall to keep out the idea thieves
<pie_>
I need an idea WALL.
<pie_>
Shit.
<pie_>
Stop stealing my ideas.
<azonenberg>
Woooo
<azonenberg>
new thermal characterization boards have shipped
<rqou>
hmm, i'm curious what people in hungary think about trump
<pie_>
rqou, idk im bad at politics
<rqou>
i read that there's currently a lot of anti-immigrant sentiment in hungary
<pie_>
you could say its at least somewhat well-founded
<pie_>
label me a racist _____ _____ ____ whatever, but you have to admit there are large cultural differences and probably na unwillingness to conform to the society thats accepting them
<pie_>
also inb4 the whole thing got started because the US wanted to economically downgrade europe because it was competition
<pie_>
im just saying things i heard thoguh
* pie_
dons a couple tinfoil hats
<pie_>
id be all about making sure people can live a proper life without bombs falling on their heads
<lain>
the game loves to just "predictively" move a character forward... by maintaining their exact movement vector, regardless of physics and collision detection
<lain>
drop pakkitz -> get all the kills
<lain>
it's a winning strat
<lain>
especially since the game won't auto-kick even players with >1 SECOND of ping
<lain>
also sorry if those load slow, level3's chicago PoP is saturated as /shit/ lately as best I can tell, and it's just difficult to push packets through :/
<rqou>
wait, is this related to the cheating i remember in some other vidya that involved "unplug router, shoot target, plug router back in"?
<lain>
rqou: the mechanism is probably the same, I don't know if this specifically is lag switching though (which is the term I always heard for that)
<lain>
I knew people who actually had a physical button that would disconnect their ethernet line to the modem, connected to a footswitch
<lain>
so they could lagswitch really rapidly :P
<lain>
jerks.
<rqou>
networking is hard
<rqou>
something something byzantine generals
<lain>
the running joke in the gits:fa community is koreans all have fiber internet with like sub-ms pings and just have no concept of wan timings :P
<lain>
(it's made by a korean studio)
<rqou>
oooh i remember one of my housemates saying that
<rqou>
probably about this same game
<lain>
but the real issue is that the game is way over-tolerant of poor connections, packet loss, and even people connecting from the wrong regions. often people from brazil or australia will connect to the US servers. that's always great.
<lain>
early on something like that actually seemed to cause issues on the server side, such that even if you and your target both had low ping and low/no packet loss, you still experienced issues due to the mere presence of a lagger
<lain>
they seemed to resolve that, now it's mainly just issues with normal vs. lag users
<lain>
as best I can tell, the server doesn't care what the victim sees, only what the shooter sees. so if you're lagging so bad you're seeing stuff 1 second in the past, and someone is in front of you even though /they can't see you and you're long gone from their perspective/, if you shoot them, that's a valid kill
<lain>
meanwhile the person without lag will shoot at the lagger, but miss, because they're "not actually there"
<lain>
so it's like.. a very one-sided system
<lain>
it might be better now, has been a few months since I really played
<rqou>
i'm amazed this doesn't lead to insane cheats
<lain>
and they're gearing up for a huge redo with a "2.0" release
<lain>
rqou: for a long time just playing on a region where you had between 100 and 175 ms ping was effectively a cheat lol
scrts has quit [Ping timeout: 255 seconds]
<rqou>
hmm azonenberg i just had an idea for a feature i want in yosys (which it can probably already do)
<azonenberg>
oh?
<rqou>
given a "brute-force" result from a small-enough programmable logic device, convert that into equations
<rqou>
e.g. if i brute-forced a 22V10 or a xc2c32a
<rqou>
this should be more-or-less normal logic simplification
<rqou>
an xc2c32a might actually be harder because it has bidirectional pins
<azonenberg>
Yes, you should be able to just create a if(din0 && din1 && !din2 && din3) dout = 8'hcc
<azonenberg>
type thing from your bruteforcer
<azonenberg>
it wouldnt work on anything stateful though
<rqou>
stateful seems like it should be possible too
<rqou>
you need a smarter bruteforcer that can figure out when it has successfully affected the internal state
<azonenberg>
eh, if there's hidden state that doesnt affect output immediately
<azonenberg>
it'd be hard
<rqou>
so a 22V10 is much easier because only one pin can be CLK
<rqou>
digshadow told me that PAL/GAL bruteforcers do actually exist
<rqou>
but idk what type of output they produce
<rqou>
azonenberg: we really should turn yosys into a generic "digital logic playground"
<rqou>
it seems to be the natural place to dump all sorts of logic-related algorithms for both synthesis and RE
<rqou>
actually, thinking about what you mentioned you wanted to do
<rqou>
azonenberg: imagine a unified framework for synthesis, RE, and formal verification
<azonenberg>
That would be nice
<rqou>
alright, time to go do some useful work today
<rqou>
since i did nothing yesterday
scrts has joined ##openfpga
<pie_>
<rqou> azonenberg: imagine a unified framework for synthesis, RE, and formal verification
<pie_>
sounds like my kind of thing
digshadow has quit [Remote host closed the connection]
digshadow has joined ##openfpga
<awygle>
re: domains - i like hover
pie_ has quit [Ping timeout: 255 seconds]
<lain>
awygle: thanks
<lain>
I've just transferred a number of domains to hover, so far it's not bad
<lain>
I'm a little miffed they didn't verify my email address on account creation, but that's sorta par for the course for websites these days.
<rqou>
i've transferred to name.com, but afaik all registrars suck
<lain>
they *do* support TOTP 2FA, which is a win. SMS 2FA needs to die
<rqou>
i agree with that
<lain>
I wonder how long this transfer is going to take
<rqou>
my "favorite" though was HKDNR, which lets you add TOTP 2FA _without_ the normal "confirm a code first" step
<lain>
it's been like an hour
<lain>
probably going to take days :P
<rqou>
i had one take days because i initiated the transfer after the domain had just expired
<rqou>
don't be me :P
<lain>
haha
<lain>
one of my domains turned out to not even be transfer locked
<lain>
thanks, namecheap
<lain>
I sure as fuck didn't unlock it
<rqou>
it's fine because there's a grace window
<awygle>
my one experience with hover transfer was super painless actually, i was impressed
pie_ has joined ##openfpga
<lain>
yeah, the transfer in was really painless, just waiting for it to finish :P