Jump to content
Floatplane payments are migrating! Read more... ×
Search In
  • More options...
Find results that contain...
Find results in...

Blogs

 

The AMA

Hi all.   Bet you didn't know this place existed   So I've decided to run an ongoing AMA for no real reason than to let others find out more about me and I feel like I need to open up a bit more in life, and since i spend so much time here, might as well start here. It's hopefully a way to deal with my shyness RL by letting others "as me anything" and help me build confidence, plus i still have some form of anonymity so i'm more likely to share things here that i wouldn't with people work with, are friends with RL Etc. So in effect you're kind of helping me    There's three ways you can do this.  Send me a PM here on the forums if you don't mind the question(s) being attributed to you If you would prefer to remain anonymous with your question(s), you can send an email to Arika.ama@gmail.com. Leave it as a comment at the bottom of this entry. Obviously other people will be able to see your question   I will endeavor to respond to every question as accurately as possible without revealing too much about my identity as I still intend to keep a disconnect between real life and online.   Some questions may be unanswered depending on what was asked, ie too personal. If such a question is received, i will still respond, but just saying that it will not be answered.   So you can ask my Anything, but not everything will receive an answer.
Appropriate questions and answers will be put on this blog. Unless otherwise specified, I will not indicate who asked the question i will just list it and the answer. You can ask as many questions as you like.
~Arika    
Questions and Answers will be listed below.   ------------------ The Basics   Name: Erica S (that's all you're getting)
Age: 27 (At time of posting)
Gender: Female
Nationality: Australian     Answered Questions:   Do you have any pets?: I have 1 cat, and she is a brat, but i love her.   What is your favorite video game genre and how has it impacted your life? Has it taught you a valuable lesson or skill?: Definitely Simulation, and maybe as weird as it sounds, the one that has impacted me the most was Eurotruck Simulator 2. I have a much greater respect for trucks on the road while i'm driving. I used to hate driving around or behind them, but now i understand them a bit more.   What brought you to this forum, and what keeps you here compared to other forum?: It started when i was researching what laptop to purchase. But I do this thing where i research too much and the longer it lakes the less likely i am to pick something and just go with it. So i wanted to get other people's opinions instead of just reading reviews and the manufacturer support forums. I never intended to stick around, but the longer i stayed the more i started learning about different things regarding technology. Plus there's some good people on this forum so i decided to stick around, and 3000 posts later, here i am :D    What’s your occupation ?: My official Job title is "Senior Team Member" which is generic as hell. I work at a fairly large financial institution in a "call centre" department that is specifically for supporting the rest of our staff, mainly the branches, but sometimes we deal with other departments. Basically if the branch doesn't know a process, policy, requirements, guidelines etc, they will generally call us. We're basically Google within our organisation if you could call them up to ask questions and steal less of your information. We don't deal directly with customers.   Biggest fear besides social contact: As cliché as it might be; Death. It's just the uncertainly of it, not the event. How will it happen? When will it happen? What will happen to the loved ones I leave behind? (this being the main one).   You go to the docs, not feeling well. Doc says stage 4 lymph cancer and gives you three months to live. What do you do with the remaining time?how dark. I would probably freak out for the first couple of days, but i would try not to change too much. most people would say "go traveling" or "do <expensive thing>" but i would save as much money as possible so it can all go to my partner after i pass. there isn't really anything that i would say "i have to experience X before i die". i would prepare everything i can so there's nothing my loved ones have to worry about finalising after it. last thing i want to do is give them things that will prolong their mourning.   What's your favourite colour?: Depends on the context. But generally it's Blue or Purple   Do you want to pursue your current career, or blow a hole in the side of the dreary office building in which you are imprisoned, hide for a decade, then return to conquer all civilization and impose a new world order?: Honestly, it's probably my co-workers that are the reason I'm staying in the role i'm in. we have a great team and I don't think i'd have the kind of connections I currently do if i went off to do something else. Some days i do wish i could just get up and leave because i deal with a lot of stupid people everyday. But ultimately it's a fairly easy job, laid back enough that i don't get TOO stressed and the pay makes me happy  

Arika S

Arika S

 

The Chiplet "Problem" with GPUs

UPDATE: I've edited this blog too many times because I always think I'm done, but then another idea comes up. *sigh* But I should be done now.   With AMD's semi-recent announcement of their server processors using the so-called "Chiplet" design, I thought it'd be a good idea to talk about how this could affect other processor types. People have pointed to GPUs being the next logical step, but I've been hesitant to jump on that and this blog is to discuss why.   An Explanation: What is the Chiplet Design? To understand the chiplet design, it's useful to understand how many processors are designed today. Typically they're designed using the so-called monolithic approach, where everything about the processor is built onto a single piece of silicon. The following is an example of a quad core design:   Everything going to the processor has to go through an I/O section of the chip. Primarily this handles talking to main memory, but modern processors also have other I/O built in like PCI Express lanes or display compositors (the GPU would be considered a separate thing). From there, it goes through a typically much faster inter-processor bus where the processor's cores talk among each other and through the I/O.   What the chiplet design does is separate the cores and I/O section into different chips. The advantage here is that one part of the processor as a whole can break, but the entire processor doesn't have to be thrown away. But it doesn't stop here. As long as the I/O section can support more and more processor core chiplets, then you can expand it out however many you want. Or something like this: This is obviously a great design. You need more cores? Just throw on another chiplet!   So what's the problem here with GPUs adopting this? It's the expectations of what each processor is designed to take care of. Their core designs reflect that.   A Comparison Between a CPU Core and a GPU Core At the heart of a processing unit of any sort is the "core", which I will define as a processing unit containing a memory interface, a "front-end" containing an instruction decoder and scheduler, and a "back-end" containing the execution units. A CPU core tends to have a complicated front-end and a back-end with a smaller number of execution units, while a GPU tends to have a simpler or smaller front-end with a much larger back-end. To put it visually:   Block Diagram of an AMD Zen 1 CPU Core   Block Diagram of an AMD Fiji GPU Core. Each "ACE" is a Front-End Unit and Each "Shader Engine" is a Back-End Unit   They are designed this way because of the tasks they're expected to complete. A CPU is expected to perform a randomized set of instructions in the best way it can from various tasks with a small amount of data. A GPU is expected to perform a smaller number of instructions, specifically built and ordered, on a large amount of data.   From the previous section about chiplet design, you might be thinking to yourself: "Well can't the Fiji GPU core have the stuff on the left side (HBM + MC) and the right side (Multimedia Accelerators, Eyefinity, CrossFire XDMA, DMA, PCIe Bus Interface) separated into its own chip?" Well let's take a look at what the Fiji GPU die looks like (taken from https://www.guru3d.com/news-story/amd-radeon-r9-fiji-die-shot-photo.html)       The big part in the middle are all of the ACEs, the Graphics Command Processor, and the Shader Engines from the block diagram. This takes up roughly, if guessing, 72% of the die itself. Not only that, aside from everything on the right side in the block diagram, this GPU core still needs everything from the left side, or all of the HBM and MC parts. Something needs to feed the main bit of the GPU with data and this is a hungry GPU! To put in another way, a two-chiplet design would very similar to the two GPU, single card designs of many years ago, like the R9 Fury Pro Duo: But Wouldn't Going to 7nm Solve This Issue? While it's tempting to think that smaller nodes means smaller sized dies, the thing is with GPUs, adding more execution units increases its performance because the work it solves is what is known as embarrassingly parallel, or it's trivial to split the work up into more units. It's more pixels per second to crunch. This isn't the case with the CPU, where instructions are almost never guaranteed to be orderly and predictable, the basic ingredient for parallel tasks. So while adding more transistors per CPU core hasn't always been viable, it has been for GPUs and so the average die size of a GPU hasn't gone down as transistors get smaller: Transistor count, die size, and fabrication process for the highest-end GPU of a generation for AMD GPUs (Data sourced from Wikipedia)   Since AMD has had weird moments, let's take a look at its competitor, NVIDIA: Transistor count, die size, and fabrication process for the highest-end* GPU of a generation for NVIDIA GPUs (Data sourced from Wikipedia)   Notes: G92 is considered it's own generation due to being in two video card series GTX 280 and GTX 285 were included due to being the same GPU but with a die shrink TITANs were not included since the Ti version is more recognizable and are the same GPU   But the trend is the same: the average die size for the GPUs has remained fairly level.   Unfortunately transistor count for processors isn't straight-forward like it is for GPUs. Over the years, processors have integrated more and more things into it. So we can't even compare say an AMD Bulldozer transistor count to an AMD Ryzen transistor count due to Ryzen integrating more features like extra PCIe lanes, the entirety of what used to be "Northbridge", among other things. However, with that in mind, it's still nice to see some data to see where overall things have gotten: Transistor count, die size, and fabrication process for various processors (Data from Wikipedia)   One just has to keep in mind that at various points, processors started to integrate more features that aren't related to the front-end, back-end, or memory interface, so processors from that point on may actually have a lower transistor count and thus die-size.   How about separating the front-end from the back end? This is a problem because the front-end needs to know how to allocate its resources, which is the back end. This introduces latency due to the increased distance and overhead because of the constant need to figure out what exactly is going on. To put it in another way, is it more efficient to have your immediate supervisor in a building across town or in the same building as you work in? Plus the front-end doesn't take up a lot of space on the GPU anyway.   What About Making Smaller GPUs? So instead of making large GPUs with a ton of execution units, why not build smaller GPUs and use those as the chiplets? As an example, let's take NVIDIA's GTX 1080:   Compare this to the GTX 1050/1050 Ti (left) and the GT 1030 (right):      With this, you could take away the memory and PCI Express controllers and move them to an I/O chip, and just duplicate the rest as many times as you want. Except now you have SLI, which has its problems that need to be addressed.   The Problem with Multi-GPU Rendering The idea of multi-GPU rendering is simple: break up the work equally and have each GPU work on the scene. If it's "embarrassingly" easy to break up the rendering task, wouldn't this be a good idea? Well, it depends on what's really being worked on. For example, let's take this scene: Approximate difficulty to render this scene: Green = Easy, Yellow = Medium, Red = Hard   The areas are color coded more or less to approximate the "difficulty" of rendering it. How would you divide this up evenly so that every GPU has an equal workload? Let's say we have four GPU chiplets.   Obviously splitting this scene up into quadrants won't work because one of the chiplets will be burdened by the large amount of red in the top right while another will be sitting around doing nothing at all taking care of the top left. And because you can't composite the entire image without everything being done, the GPU taking care of the top right portion will be the bottleneck. Another option may be to have each chiplet in succession work on a frame. Though this may be an issue with more chiplets as you can't exactly render ahead too far and this sort of rendering is what causes microstuttering in multi-GPU systems. Lastly, we could have the chiplets render the entire scene at a reduced resolution, but offset a bit. Or divvy this entire scene by say alternating pixels. This could potentially minimize an imbalance of workload, but someone still has to composite the final image and there could be a lot of data passing back and forth between the chiplets, possibly increasing bandwidth requirements more than necessary. This is also not including another aspect that GPUs have taken on lately: general compute tasks. And then there's the question of VR, which is sensitive to latency.   Ultimately the problem with graphics rendering is that it's time sensitive. Whereas tasks for CPUs often have the luxury of "it's done when it's done" and the pieces of data they're working on are independent from beginning to end, graphics rendering doesn't enjoy the same luxuries. Graphics rendering is "the sooner you get it done, the better" and "everyone's writing to the same frame buffer"   What about DirectX 12 and Vulkan's multi-GPU support? With the advent of DirectX 12 and (possibly) Vulkan adding effective multi-GPU support, we may be able overcome the issues described above. However, that requires developer support and not everyone's on board with either API. You may want them to be, but a lot of game developers would probably rather worry more on getting their game done than optimizing it for performance, sadly to say.   Plus it would present issues for backwards compatibility. Up until this point, we've had games designed around the idea of a single GPU and only sometimes more than one. And while some games may perform well enough on multiple GPUs, many others won't, and running those older games on a chiplet design may result in terrible performance. You could relieve this issue perhaps by using tools like NVIDIA Inspector to create a custom SLI profile. But to do this for every game would get old fast. Technology is supposed to help make our lives better, and that certainly won't.   But who knows? Maybe We'll Get Something Yet Only time will tell though if this design will work with GPUs, but I'm not entirely hopeful given the issues.

Mira Yurizaki

Mira Yurizaki

 

The Journey to Health

I have failed traditional weight loss. Mostly as others due to lack of motivation and commitment. Diet is not horrible, but not great. I never took the initiative to learn to cook as a kid, even though my mom cooked constantly. So when college came around and I was free reign, I didn't take care of myself. It's taken years of mistakes to learn to manage myself better, but damage is done.  The reason I'm writing this is two fold.  1. If I expose it to criticism, I have to face it head on. I will be dealing with it, thinking about it, seeing reactions if any. Also it will help me keep up with it in general. 2. I've seen many talk about trying to lose weight and I want to share my experience and hope it helps others   The Current Situation: I'm currently 325 lbs and 6' 2.5". I eat far too much meat, cheese and bread, and barely any veggies and fruits. While my height means I'm not too round looking, it is noticeable and between rashes and chaffing and belt imprints, I am feeling the effects. I have 4 kids and don't feel like I can play with them as much as I should.   The Goal: Ideally I want to get back to 200, but I'd settle for 220. Breaking the goal down, my first goal is to get under 300, then work from there to 275, and so on.   The Methodology: I get bored EASILY. running on a treadmill is very tough to be motivated with. I don't have a lot of time and I have 4 kids at home. Pretty much everything will have to be in house. My current approach is using Beat Saber VR and other vr games whenever I get a rift come tax return. Along with eating healthy, lots of water, and a little pedal that goes under the desk (as soon as I actually remember to take it to work), I hope I can start losing weight slowly but steadily. I will try to post the number daily, but I might just do it weekly. I will be describing any significant choices I've made and how things effect me. I don't know if anyone will be reading all this nonsense, but I want to give as much information as possible.   The Conclusion: *the thought of doing exercise and being motivated and eating healthy gave Jtalk4456 a stroke* The End XD Cya tomorrow (Don't do drugs, kids!)

Jtalk4456

Jtalk4456

 

AMA that's totally not copying anyone

this totally isn't an idea i stole from rorznz and arika s   ok so basically you guys ask me a question and i'll answer it if i don't answer your question chances are i don't feel comfortable answering (i'll only ignore very personal questions)   some info: my name is sam i'm british i like computers  

1kv

1kv

 

Selling and Buying.

Soo to make this more clear, the rants to do with my experiance on multiple places for buying and selling. These include Ebay, LTT classified thread and Facebook/ Direct messeging.   Buying: So as a buyer their are things expected of ya, being able to purchase the product, be intrested in the product and be able to communicate with the seller if needed.   As being a buyer on Ebay three times now (positive n Negative) and a buyer here on the LTT forums i tend to be understanding,    Ebay- first purchase was two monitors going for £55 total, a steal right? Well it was a complicated one. It never arrived the currior never arrived at our door yet it was signed for? I went around my estate and to the area that a GPS would take you to if following it asking if they have recieved a large package sent to this address. Sadly no. Contacted the Seller who said he will contact the currior on this and try to find out. Done what he could so just told me to request the refund and all that would happen is i pay the return fee £12.50 total (could be how he got money without sending an actual package who knows) but lo and behold the same delivery company is seen coming bacl into my estate and stopping infront of one of the houses a retrieving packages.   So this turned out negative as this could have been a fault on the delivery service, lies from neaghbours or just a none existant package.   Purchase other products on ebay (wifi card and GPU) both came with no issue bar the GPU having a coil whine under load (never mentioned in listing).    LTT Forum: So cant say much here dealt with the same person each time who was willing enough to low prices down if reasonable and would keep me up to date on the status of the items along with being a good seller and seeing if they had any other products i would be interested in.   All came in good condition and no hassle what so ever bar name of reciever due to goin to a uni accomodation that wont give parcels to a sibling if it not addressed to them.   Selling:   I have sold two thing that required postage & packaging   One being a halloween costume and the other being a Ps2 bundle.   Halloween costume was odd it got bought, sent and recieved without a single word from the buyer. Bear in mind this is with me informing them on whem it would be posted, and when it was posted so they could expect it soon.   Now the PS2 how ever is a whole different story, bought, sent and recieved with contact to the buyer. Answering queries and when they should recieve it.   Item was posted on ebay with everything checked. Controller, Buzzers, Mic, games, eye toy and console.    Listed with what all was working. (Bar a game that i dunno why i listed)   Got contacted by the buyer that the product was recieved and that some of the games where not reading.    I responded saying that it could be a problem with the reader lense and suggested cleaning the lense or doing a reset of the disc reader lense with a link to a guide. (Console never had this done before so could have resolved the read disc error)   Got back saying they didnt want to make it worse (assuming they never opened the console or cleaned the lense) and requested a refund.   So before i decided to request the refund i asked for the info of all the discs that where not reading, image of which one are reading and proof.    Got a response saying that one set of the buzzers aren't working along with the discs.   And later then got a response saying what discs where not working, that a set of buzzers aint working, a usb isnt working and that i had the eye toy pluged into the none working usb port (no photos had any additions plugged in during the listing) and questioned why a guitar hero mic was in it and not a kareoke mic that i had listed (was added at a later date with no cost increase) but thought due to it being a guitar hero mic they thought thatw as the fault with it.    Now i could he wrong and the console deteriorated during the original post and the purchase of the item.   So it felt off as the refund request came in saying it was not working as hoped and discs not reading or taking long loading times. Then came the response of oh this is not working and then the list of faults along with a fault that i never had with the console since it use and that was the disc tray getting stuck. I have had many consoles, xbox 1(like the first one) the PS2 , xbox 360 and the xbox one. Ony the 360 was the one with disc tray issues.   So ya, currently not havin positive effects with ebay. Anyway if i get it returned and the device isnt working as it left, addditions have been changed or games been swapped out.  

Alex Colson

Alex Colson

 

The BSD 3-Clause License

Lately I've been working on a light temporal sampling algorithm that might be able to avoid some aliasing by adjusting the sampling rate. I usually do things like this strictly in MatLab, because it makes it overwhelmingly easy to build and run these kind of simulations, and then explore the results in potentially interactive graphs. But there are a few problems with that approach: The MatLab IDE is overwhelmingly slow to startup and to compile and run programs on every machine I have ever run it on. MatLab, while somewhat popular in certain fields, is rather esoteric in that I couldn't share my code widely and expect people to readily understand what it does. MatLab is rather expensive, at $149 USD initial cost for the "Home" version, $45 USD for additional "toolboxes" (which are just libraries), and a $100 USD yearly fee if you want updates.   So I set out to find a cheaper alternative, with a much wider user base, that includes similar tools and libraries, and is built on a widely known language. Of course, I turned to Python. Problems with the open source community having multiple, disjoint, and sometimes incompatible solutions to the same problems aside, I happened to stumble upon Anaconda and it's repository, an IDE called Spyder (which openly seeks to be similar to MatLab), a group of visualization libraries organized under the PyViz group, and a light and fast IDE for quick experiments; VS Code.

Well, after retouching my Python skills after years of neglect (version 3.6 was on the horizon the last time I used Python), I installed VS Code and started working on some personal project. Today, while installing Conda to get ready to set up a full environment to replace MatLab, I started reading through their repository listings. In their table of libraries, they have a column for "License". So, after years of refusing to care about license agreements, I did what any person who's waiting on something to install would do: I started reading.

The BSD 3-clause license   The license, which has the text: Is a rather common open source license agreement which would allow users of the product to freely distribute it provided that some conditions are met: Any distribution of source code must also share your license Any distribution of an executable must also contain the BSD 3-clause. You cannot claim that the creators of the product endorse your product.   Well, I have a few gripes with this. And some of these gripes are common across many licenses. I'm not sure of the best way to go about stating them, so I'll just list them below. If you want your code to be actually useful, don't demand that users of your library maintain a list of license agreements for what's presumably sharable software. The second clause is ambiguous. Does it mean "Your binaries must contain metadata that describes this license", or does it mean that, upon running the executable, a reasonable attempt has been made to inform the user that they are using the product under this license? That ambiguity alone is enough to merit it's own gripe. If the first, what is the point? Very few people go around downloading executables and then reading the binary files associated with them. This is a useless requirement. If the latter, that's just conceited. If you expect someone who uses your code in their product to go around advertising you, you will surely be saddened when you find that no useful products use your code. The third clause is kind of a weird one. Clauses one and two are all about how you are required to give the creators of the software credit in your application. But the third clause is all about how the creators of the software don't want anything to do with your application. Presumably, what this actually means is "If your product is popular and agreed with, I want to be tied to it. But if, on the other hand, your product is a matter of public contention, I would like to be able to distance myself from it."   Which brings me to the major point of this post: Sharable software shouldn't be restricted in use. Don't force your users into some ethical contract hidden behind notions of "freely sharing" useful applications.

For your reference, this is, in my opinion, the only useful license to use on projects that you wish to be usable by others. It is a modified version of the MIT License:  

straight_stewie

straight_stewie

 

My Top Waifu

@Cyberspirit ok, so there's my top by looks, my top by personality, and there's my first waifu that will forever hold a spot. My first waifu was Hinata Hyuuga My top by personality is a tie between Sakie Satou and Hinata Looks are a tie between later Hinata and Zero Two There are other contenders that I can't remember off hand, but those are my top right now Edit: I can't believe I left out Hestia under the personality section! that is now a three way tie

Jtalk4456

Jtalk4456

 

First PC Build

When did you build your first PC and what were the specs? @iLostMyXbox21 As for a fresh build from scratch it hasn't happened yet. I did frankenstein a prebuilt ACER into a full ATX gaming case with corsair 750W power supply I got for free. Don't know all the models, but it's a 4th gen i5 with 12 gb ddr3 and 1 tb ssd. Last year I tossed in a 120 gb ssd and a rx580 4gb gpu for an upgrade

Jtalk4456

Jtalk4456

 

AMA for fun - Post Q's Here

Not piggybacking off ANY of my peeps here, but I figured I'd do an AMA for sh*&s and giggles. Rules 1. No TOPIC is a problem, though I can't guarantee everything will be answered if it gets too personal 2. While no TOPIC is a problem, respect is required and as such, please tone down any language, no harrassment, no abusive language. Just questions and answers in nice english. 3. Do your worst! Or not, if you do it's probably too personal and won't get answered 4. I'm not talking politicians here. You can ask my opinion on an issue, but no trump this hillary that.   Comment your questions and I will make a topic for each answer

Jtalk4456

Jtalk4456

 

AMA

Hi,  I've decided to make an AMA in a blog. If you've followed me on LTT for a while you might have known the blogs space exists as I've made blogs in the past .   I'm going with a very similar format to  @Arika S except with some minor differences.   I'll post Questions asked and the answers here.    I will try my best to answer questions that don't reveal too much about my identity although I may not answer some questions if they are too personal.  I will be including a list of questions here if I decide I won't answer them.   You can PM me questions, leave a comment below, leave a question on my profile, or send me a message on Discord (I'm AluminiumTech#4980 on Discord) and I'll include it here. I won't be revealing who asked each question.   You can ask as many questions as you'd like. - AluminiumTech   Basic info about me: Height: 6'4 Name: Alastair (That's all you're getting) Gender: Male   Questions and Answers:   Question: how are ya doin? Answer: I'm doing okay. Thanks for asking. you've slowed down recently. but there was a time when most of the news subforum was threads created by you. how did you come across so many news stories? do you actively look for them to post here or just stumble into them while just browsing? Question: What keeps you engaged and interested in information technology?  Answer: For quite a while I've found technology to be really cool although I've not always been super interested in technology. I love to understand how things work and I find new technology really exciting. I also really like to create things and technology enables that.   Question: you've slowed down recently. but there was a time when most of the news subforum was threads created by you. how did you come across so many news stories? do you actively look for them to post here or just stumble into them while just browsing? Answer: A lot of it was myself actively looking for in news stories although some of them were just me stumbling upon something whilst browsing and then making a tech news post. Actively looking isn't a bad idea if you want to make a lot of tech news posts but sometimes you have to decide which posts are worth posting because you don't have time to post all the ones you see and also you need to decide what websites to look at when actively checking and check them every so often. I'd say for people on LTT wanting to post frequently in tech news then a mix of both is a good choice.   Questions I won't answer: Question: social security and mothers maiden name?

AluminiumTech

AluminiumTech

 

Why you might consider the new P600S over the Define R and S Series

I was gonna do a status update but this started getting sorta long, so...   After watching Paul's review of the case which went into much more detail than other reviews I've seen so far, I drew a strikingly large amount of similarities between this and the Define R6/S2 cases from Fractal (some of my personal favorite cases) with some notable differences. The P600S is basically the Evolv X with (different (IMO better) exterior paneling. Some stats were taken from the Evolv X spec page since the P600S doesnt have an official one yet.     Case Comparison Feature Define R6 Define S2  Eclipse P600S Notes MSRP $150 $150 $150 Price in USD Motherboard Max Size E-ATX E-ATX E-ATX   360mm rad support Y Y Y   420mm rad support Y Y Y Top for Define, Front for P600S 140mm Rad Variant Motherboard Clearance 35mm 35mm 50mm Max Height of RAM/Mobo heatsinks
before interference with RAD occurs Foam for Silence Y Y Y   Side ventilation For airflow Y Y Y   Front Openable for Best airflow Y N Y   3.5" HDD Support 6 (up to 11) (2) 3 4 (10) (#) is max possible config,
R6 Optional max is 2 Dedicated SSD Support 2 (4) 2 (4) 3 (#) is max possible config Type A ports (3.0), (2.0) 2, 2 2, 2 2, 0   3.1 gen 2 Type C Y Y Y Define series with specific SKU or addon Black, Gray, White Color Options Y Y Y   5.25" Legacy Bay Y N N   Hinged  Side Doors N N Y   Fan Hub Incuded Y Y Y   Top panel Removable for Airflow Y Y Y   Vertical GPU Bracket Included N N Y   Vertical GPU Cable Included N N N   GPU Anti-Sag Bracket Included N N Y Mounts in rear PCI-E tabs mITX dual config support N N Y Not included by default Custom Watercool Fill Port Y Y Y Located on top radiator bracket,
removable Custom Watercool Drain Port N N Y Access requires front panel removed Good cable management Y Y Y   PSU bracket for easy install Y Y Y   Full length dust filter (front access) Y Y N   PSU Showoff Cutout N N Y Subjective Aesthetic Dedicated Reservoir mount N Y N   Optional Pump Mount Y Y Y   140mm Fans Included 3 3 3   Top Panel Air Cover  N N Y For unused air fan/RAD locations   I could have easily gone in further like how both fan controllers can do 4 pwm and 3 DC voltage control, but at this point it's pretty clear that the cases trade blow for blow upon many of the categories. Many of the included accessories were welcome including the included Vertical GPU bracket (I'm not sure if only first party cables will work with this though) and Anti Sag Bracket. We have to praise Phanteks here from learning from their past mistake of making too much of the $200+ case "DLC" (Not including SSD trays? Vert GPU Bracket?)   RGB Not included. Not Sorry.

TVwazhere

TVwazhere

 

Second followup to the airflow mod

I had two burning questions in my head: What happens if the fan is pointing down? Are the intake fans creating much of a difference? The new configs are: Intake at 30% with the other fans at a custom fan curve Fan pointing down, not running CAM Fan pointing down, running with CAM at 50% fans So here's all the data compiled. Regarding the charts, instead of using maximum clock speed (which all of them were within 1% of each other), I used maximum temperature instead which is a far more useful statistic. I also found a better way to represent the performance cap data. Instead of showing bars and counts, the counts are normalized to 100% and all of the performance cap reasons take a chunk of this. This makes it much easier to visualize how often the GPU spent in that reason.   Spoiler alert: Running with the fan pointing down without CAM running performed the worst, even running into Thermal performance caps. However, using CAM to turn the fans on to 50% seemed to help a lot. The 30% intake fans performed very well. Which makes me wonder if this is just a problem with air circulation within the case rather than a problem of trying to push air in.   Why bother with gathering this data? One could think that this affects just my configuration, but I think it affects any micro-ATX case with a tempered glass side panel and a PSU shroud. If anything, the results from this data gathering could be generalized for other people who want to tweak with getting the best cooling performance.            

Mira Yurizaki

Mira Yurizaki

 

What is a computer?

Let's start with the most basic of questions when it comes to programming a computer: What is a computer? It seems a silly question for a device we take for granted but it's important to understand what it is if you want to program for one.   To put simply, a computer is a calculating machine. That's it. Its sole purpose is to compute things. A computer need not be electronic either, as there were mechanical calculating machines such as Charles Babbage's Analytical Engine, with even programmable machines around as early as the 19th century. Before the advent of fast calculating machines that we're used to, there were actually teams of people called computers to produce math tables. And much like electronic computers of today, human computers were simply given a set of instructions and were not allowed to deviate from them.   While I won't go into a deep dive into the history of machine computers, even with the advent of fully electronic, then fully digital computers (analog computers were a thing!), the computer's job for a while was primarily to handle computation. Everything from military artillery tables, accounting information, to even predicting who would win the 1952 US presidential election. Eventually this evolved into allowing computers to control machines, instead of showing a value to a human and having them control the machine itself. This was mostly useful in aerospace where many minute inputs in a small period time could often correct either an airplane or spacecraft better than a human could based on feel. But as computers became more powerful, eventually it grew to controlling more things, until finally we have our modern, electronic, digital computer.

Mira Yurizaki

Mira Yurizaki

 

Welcome to the programming guides!

After stewing on it for a while, I decided to start a blog of guides for the budding programmer. This will be covering the basics and some intermediate topics, and if I feel like sharing something more advanced then that may crop up once in a while. This series is intended more to give a crash course on programming and concepts in general and while I may use a programming language for examples, I must emphasize the language does not matter here. The programming language is the means with which to get things done.   Please note that this blog isn't purely for software based topics. This will include some hardware based topics as well because understanding hardware influences how you should design software at times, even if you have an OS that theoretically takes care of everything for you.   As some background of myself: My educational background is in Computer Engineering. For those that don't know, the simplified explanation is Computer Engineering is a combined discipline of both Computer Science and Electrical Engineering. Where the Computer Scientist focuses mostly on software and Electrical Engineer focuses mostly on hardware, the Computer Engineer looks at both in a way to develop computer systems.

So basically that means I have at least a basic background in electrical engineering on top of my software development skills. And while I haven't had a need for it to hash out circuit designs, just knowing the basics of electronics helped me understand computer systems better.
  I'm entering the 10th year of my career as a software engineer/developer/whatever they call it these days. My development experience is in embedded systems  (or from a high level view, simple computer systems, often not running an OS) and application software.   While I do have a list of topics in mind, feel free to suggest something in this post as a comment and I'll see what I can do.

Mira Yurizaki

Mira Yurizaki

 

Follow-up to the Airflow Mod

This is a follow-up to my blog on the airflow mod I made. It was brought to my attention that the sound card might play a role in affecting how well my video card remains cool. My presumption is that it's not doing much to affect the cooling potential because the issue was moving hot air away from the video card area and that while the video card is sucking air from the rear, there was enough airflow that it wouldn't make much of a difference.   So today I decided to test whether or not the sound card had an impact along with retesting whether or not the airflow mod had an impact. The numbers I got earlier I pondered about and wondered if another factor had something to do with it: the intake from the front and the exhaust in the rear and top. The Setup Taking all of these combinations together, I've narrowed down the parameters to: Fan speed of the top and rear of the case (they're both tied to the same fan controller channel) Fan speed of the two front intake fans If NZXT CAM was running or not If EVGA Precision XOC was running or not Whether or not the airflow mod fan was installed Whether or not the sound card was installed To avoid having a bajillion combinations to test, I've eliminated the following variables by setting them to a default If NZXT CAM is running, both the exhaust and intake fans are at 50% If NZXT CAM is not running, then it's likely the controller keeps them fixed at a lower RPM range. Due to my observation the other day with the new LED fans "blinking", I can tell without NZXT CAM running they're not being varied because no blinking occurs. EVGA Precision XOC will always be running with a custom fan profile Basically, the only variables I'm testing then are: NZXT CAM is running or not Airflow mod fan is installed or not Sound card is installed or not The following is the software setup when EVGA Precision XOC and NZXT CAM running:   Also of note, the ambient air temperature in the room was about 68°F or 20°C   What I'll be doing Run the Final Fantasy XIV Stormblood Benchmark three times. Between each run, there will be about a 10 second delay before the next. The logging captures each configuration, but not each test. i.e., the same log file will be used for all three runs. This benchmark is used because this game is a frequent use case. It lasts for about 4-5 minutes per run. I did not want to run something like FurMark because that's not a realistic test and I'm not interested in workloads I won't be subjecting the video card to. Use GPU-Z to log GPU clock speed, temperature, and performance cap reason And the results Table Format (Note that some of the formatting didn't carry over)   Charts of Interest   Average Clock Speed (higher is better) Maximum Clock Speed (higher is better) Average GPU temperature (lower is better) Performance Cap Reason Counts This one needs explaining. The goal is to have 0 thermal hits. Vmax should not be encountered because I've not allowed the card to push past default voltage limits. Util just means the GPU was not given a hard enough workload. The other two then, Power and Vrel, are for hitting the TDP and not being able to clock faster due to hitting the stock voltage limit. Now the question becomes is one better than the other? And for the purposes of this test, actually, there is! Power delivery circuitry becomes less efficient as it heats up. It's not by much, but when you have hardware that's being pushed to the edge, that "not by much" becomes "actually an appreciable amount" This is why it's important to cool off your VRM if you plan on pushing the overclocks.   tl;dr, better is: 0 Thermal Lower Power Higher Vrel This chart only has Power and Vrel, as no Thermal reasons were hit and the other two, Vmax and Util, don't matter.   Conclusions Despite my initial presumption, having no sound card is effective in decreasing the temperature of the video card as much as having the airflow fan mod. So this means there could be more air flow coming into the rear video card fan. Having both the air flow mod and no sound card however, resulted in significantly better cooling. I'm not sure if having NZXT CAM was a factor or not since in some cases it helped a lot and in others it didn't seem to help at all.   Some other conclusions I can make regarding this: microATX cases, at least ones of this size and configuration, are not ideal for having an "open air" style cooler video card if you are planning to use another expansion card. Though this may be mitigated if you don't mind turning your intake fans up higher if you don't want to lose the expansion card or do a airflow mod. Having a mid-case air circulator helps regardless. They make L brackets for case fans!  

Mira Yurizaki

Mira Yurizaki

 

Simple mod to increase video card airflow in my build

Update time to my experiments with improving GPU temperatures and case airflow. So as a recap: I've noticed that my video card was hitting thermal limits on workloads that normally didn't in the last case it was in, a Silverstone FTZ-02 After looking at the case and thinking of the airflow pattern, I came up to this conclusion:



The idea was that the case fans on the top and rear would draw the hot air (marked red) up and out. But there wasn't much airflow going there. So I stuck a case fan on the video card to draw some air up. I also did see some improvement so I decided to pursue this route. The temporary solution looked like this:
Deciding to make this a more permanent and elegant solution, I ordered an L brackets meant for mounting case fans to something (https://www.amazon.com/Coolerguys-Mount-Stand-Bracket-Black/dp/B0195FW4LI). This would mount to the case itself through the rear fan so I could mount another case fan above the video card. I also decided to remove the shroud on my video card because I feel like the direction the air needs to go past the fans was constrained by it. The end result is this:     I also happened to be at Fry's and they had white LED versions of Corsair's AF120/AF140s, so why not? The only problem I found though is they need to run at a fixed RPM through my fan controller, otherwise the light pulses occasionally which I'm guessing is the fan controller "kicking" the motor and the LEDs are powered by the same power-in line as the motor.   So was it worth it? Well, I'll let the numbers speak for themselves. The workload I used to test this was https://na.finalfantasyxiv.com/benchmark/   Before the mod (probably, I forgot when I gathered this data) After the mod   So basically: The GPU was able to sustain higher clock speeds for longer, indicated by the higher average clock speed. The average and maximum temperature dropped The GPU's performance was not limited by thermals. Power and VRel are expected to be hit.

Mira Yurizaki

Mira Yurizaki

 

A taste of python automation in networking

A few personal projects I've been working on, mainly just putting together a load of useful functions in python along with the netmiko library to pull specific data from Cisco IOS devices (mainly ISRs and Catalyst, not been designed for Nexus, ASAs, other vendors yet etc..)   I've mainly been testing some open source IPAM solutions such as netbox and PHPIPAM to see if I can do some neat little tricks and I've created a few things for both solutions on the side of my job because I want to expand my programming knowledge (have been doing a lot of python + c# lately)   Here is a basic example to connect to a cisco switch, pull the data into a kind of JSON format to be used when creating a new vlan using Netbox's API + python API module. (Beware, I'm also using a module that I have on github over at https://github.com/BSpendlove/BCPTools (follow the readme to install the library and use some of the basic functions I use in this netbox example)   from pprint import pprint from netbox import NetBox from BCPTools.BCPTFunctions import bcp_create_session from BCPTools.BCPTFunctions import bcp_show_vlans #Cisco Switch connection details for Netmiko/BCPTools conn = { 'device_type': 'cisco_ios', 'ip': '192.168.1.109', 'username': 'hume', 'password': 'cisco', 'secret': 'cisco' } ##---------------------- NETBOX API Login details ------------------------------## myToken = 'mytoken123mytoken123mytoken123mytoken123' api_login = NetBox(host='192.168.1.9', port=80, use_ssl=False, auth_token=myToken) ##------------------------------------------------------------------------------## class bcp_vlan_functions(object): def create_vlan_group(self, netbox, name, slug, checkExists=True): if checkExists == True: vlan_group = netbox.ipam.get_vlan_groups(name=name) if not vlan_group: results = netbox.ipam.create_vlan_group(name=name, slug=slug) return results if name in vlan_group[0]['name']: print(name.lower() + " has already been configured as a VLAN Group... checkExist must be False if you would like to create a duplicate VLAN Group...") print("Local Database ID for vlan group: {0} is {1}\n".format(name,str(vlan_group[0]['id']))) else: results = netbox.ipam.create_vlan_group(name=name,slug=slug) return results else: print("Create vlan function without simple duplication...\n") results = netbox.ipam.create_vlan_group(name=name,slug=slug) return results def create_vlan(self, netbox, name, vlanid, groupid): vlan_check = netbox.ipam.get_vlans(name=name) if not vlan_check: results = netbox.ipam.create_vlan(vlan_name=name,vid=vlanid,group=groupid) print("VLAN{0} ({1}) has been created...\n".format(vlanid, name)) return results if name in vlan_check[0]['name']: if not vlan_check[0]['group']: print("VLAN{0} exists in the Netbox Database although is not registered with VLAN Group: {1}... Have not performed any action...\n".format(vlanid, groupid)) #netbox.ipam.create_vlan(vlan_name=name,vid=vlanid,group=groupid) elif groupid == vlan_check[0]['group']['id']: print("VLAN{0} ({1}) is already configured in VLAN Group: {2}\n".format(vlanid, name, vlan_check[0]['group']['name'])) def get_vlan_group(self, netbox, vlanname): #Try to use either id or name to filter through VLAN groups, obviously ID is better if you have duplicate vlan group names, but with some common practice, you shouldn't configure 2 sites with the same 'VLAN group name'!!! return netbox.ipam.get_vlan_groups(name=vlanname) def save_vlans_to_netbox(self, netbox, groupname): session = bcp_create_session(conn) vlans = bcp_show_vlans(session) vlangroup = self.get_vlan_group(netbox, groupname) if not vlangroup: print("VLAN Group {0} can not be found...".format(groupname)) else: vlangroupid = vlangroup[0]['id'] for vlan in vlans: self.create_vlan(netbox, vlan['name'], vlan['vlan_id'],vlangroupid) bcp_vlan_functions().create_vlan_group(api_login,"PYTHON-TEST-NETBOX","python-test-netbox") bcp_vlan_functions().save_vlans_to_netbox(api_login, "PYTHON-TEST-NETBOX") For example, I have a switch at 192.168.1.109 with the following as the 'show vlan' output: W17BS-SW01#show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa1/0/1, Fa1/0/2, Fa1/0/3 Fa1/0/4, Fa1/0/6, Fa1/0/7 Fa1/0/8, Fa1/0/9, Fa1/0/10 Fa1/0/11, Fa1/0/12, Fa1/0/13 Fa1/0/14, Fa1/0/15, Fa1/0/16 Fa1/0/17, Fa1/0/18, Fa1/0/19 Fa1/0/20, Fa1/0/21, Fa1/0/22 Fa1/0/23, Fa1/0/24, Gi1/0/1 Gi1/0/2 10 IT active Fa1/0/5 20 ACCOUNTS active 30 SALES active 40 HR active 50 INTERNAL active 100 CAMERAS active 101 GUEST-WIFI active I've amended some interfaces to go in the other vlans so now my function from my BCPTools library on github will return this data as:   and now from the Netbox point of view: after running the netbox function I've created to pull the vlans from a cisco switch, and then use the API to create these vlans in the VLAN group called 'Python-test-netbox': (virtualenvironment) brandon@ubuntu:~/brandon_scripts/NETBOX_API_EXAMPLES$ python3 netbox_cisco_switch_vlans.py python-test-netbox has already been configured as a VLAN Group... checkExist must be False if you would like to create a duplicate VLAN Group... Local Database ID for vlan group: PYTHON-TEST-NETBOX is 7 VLAN1 (default) has been created... VLAN10 (IT) has been created... VLAN20 (ACCOUNTS) has been created... VLAN30 (SALES) has been created... VLAN40 (HR) has been created... VLAN50 (INTERNAL) has been created... VLAN100 (CAMERAS) has been created... VLAN101 (GUEST-WIFI) has been created... VLAN1002 (fddi-default) has been created... VLAN1003 (token-ring-default) has been created... VLAN1004 (fddinet-default) has been created... VLAN1005 (trnet-default) has been created... (obviously filtering out VLAN1 and 1002-1005 would be best but this is a just a quick dirty function to show some basics with python automation and networking/inventory purposes)  

BSpendlove

BSpendlove

 

The actual post

I can't think straight today (dumped a page worth of text after going on a tangent on EFI and eGPUs) so I'll just start straight with how to install Windows, OSX, and have one more partition.   Normally it's pretty straightforward to add partitions (not sure why would anyone need to slice a disk into quarters these days with a regular windows PC), but when it comes to Bootcamp's default method of installing windows, partitioning becomes tricky because Windows Disk Management would say that this Master Boot Record disk has run out of partitions and can not add any more. Which it's technically correct despite only having 2 usable partitions out of the theoretical limit of 4 partitions.   Spoilerbox for what I think is going on: All being said, whatever is being dealt with here, with the term Hybrid-MBR, is considered to be a hack-on-a-hack that, in worst cases, will cause data loss when any system tries to adjust the partition tables without being aware, especially when it involves Logical partitions in the MBR part.   (and here's a rant from the guy who did the GPT fdisk tool: https://www.rodsbooks.com/gdisk/hybrid.html )   So adding a partition for both OSes to be able to access within the single disk in the MBP seems impossible without needing to resort to another disk somehow. But there's a workaround.     This is all about the oldest (and plebbiest) MBP to support Mojave (it's a 15" Mid-2012 non-retina), so anything else I can't guarantee that this will help (2011 versions could just follow through up to the point of not being able to upgrade to Mojave; newer versions after Late-2013 doesn't have to deal with this nonsense)     Goal: Actually mine this time.   Is this safe? Kinda.   Are there issues? the exFAT partition has had the whole partition go "you need to format this partition before using" in Windows and "this is a RAW partition" in OSX between OSX version upgrades (none since El Capitan though), but this is fixable when running checkdisk in windows on the exFAT drive, so it's not exactly a problem   How reliable is this? I've been on this setup since about 2013(?). With the above caveat, I'd say it's done good for a secondary system.   can something be done about the 128MB holes? I think so? I had to do the partitioning from OSX Lion Recovery (because I forgot to make a Mojave USB install stick) so maybe it might be different when the exFAT disk is partitioned from Disk Management instead?   ------------- Prerequisites: Windows 7 DVD (path of least resistance here. not going to deal with USB 3 drivers) (Save this to a USB stick) Windows Bootcamp 5.x drivers from here: https://support.apple.com/kb/DL1720?locale=en_US
https://support.apple.com/HT205016 any OSX version already installed, or a Bootable USB installer of the current OSX version if starting from a blank disk
(internet recovery returns Lion, but it's still doable. just that I'll be installing  side note: if OSX in on an APFS partition due to it being High Sierra or above (Space Sierra), the volume would not be readable in Windows as Apple has not released an APFS partition driver for windows yet (unlike Apple HFS where they do provide a read-only driver in the Bootcamp Installer). A Time Machine Backup or a copy of the OSX volume elsewhere. Better safe than sorry For maxing out the OSes: THE LATEST VERSION of the Windows 10 Installer (DVD or just the installer file. we'd be running this in windows anyway)
get the ISO or whatnot from the Media Creation Tool.
https://www.microsoft.com/software-download/windows10 Don't use an old installer because (from using a 2016-based installer) I've encountered Feature Update failing and messing up the Windows bootloader This assumes you have already activated Windows 7. The Windows 10 installer will ask for a W10 key if it's not activated, unless you have one...
The reason for not installing from a boot disk/disc is because this MBP does not present the internal disk as an MBR disk for W10 installers, and only does so for a W7 installation environment. Yes it's this kind of old. (Save this to a USB stick) Windows Bootcamp 6.0 drivers from OSX Mojave
(driver 6.0 is only downloadable through the assistant on Mojave. I tried in High Sierra and the Apple servers refused my connection ,_,)
start Bootcamp Assistant and go straight to Actions > Download
  Steps for installing Windows 10 is via Windows 7 (I'll explain on the way), so if I were to already have a windows 7 install, I'd still HAVE to run the W10 installer while in W7.   I'll adapt the log from the point when everything started falling into their proper place, but anything I found prior to that I'll add on the way. Step 0 Step 1 Step 2 for OSX Partition C Step 3 for Windows Partition A After booting to the Windows 7 desktop proper, plug in the Bootcamp driver (the 5.x one) and install it. This is more or less it for using it for Windows 7 (one more step though: boot to OSX and "Erase" Partition B to exFAT. Then it's done.) (and windows update)     Step 4 This is for installing Windows 10 in this loadout. If you have a sane 2-partition 2-OS deal (installed by Bootcamp Assistant's way), run the installer in Windows 7. Step 5 The cleanup, for Storage Partition B And that should be it.   image summary:       Now after all these mess: how about Linux distros? Unfortunately I don't dabble as much in that area to make educated guesses about the partition orders, which is especially frustrating given that OSX seem to not need to have the System Partition next to itself. If the distro can handle Apple's hardware-based EFI handoffs, then the hybrid MBR thing isn't necessary   -------------   There are alternatives to installing an extra partition while in the limits of an MBR partition table. Mostly just avoiding the problem at all, like switching out the DVD drive with a 2.5" disk adapter, or just plain using a USB disk (or a bone-big (micro)SD card (adapter) with an outline shorter than a regular SD card). But the idea of having nothing dangling while still keeping a DVD drive (not used as much today but moreso when I got it) and a quick inbetween partition to move files between OSes (there's only 2 USB3 ports by the way, so losing one to a USB disk would be pretty limited)   there's also subsystem programs like Parallels but realistically that's a yearly recurring thing   -------------   I'm trying to not phrase this as a tutorial but more of a museum piece. Partially because (as mentioned earlier) all this applies to the last Macs that predate UEFI 2.0 and always presented Windows installs with a BIOS-MBR restriction, that's allowed to run macOS Mojave. And once this falls off there's no modern Macs that would really have to deal with this nonsense.   Also because I only recently got to figuring out how to get Windows 10 onto it. Maybe in UEFI, but alas that's not possible. And then afterward I had to rediscover how to go about doing this again.   so yeah. possibly pointless, but here it is.   ------------- PS: if anyone's looking to match the trackpad direction: look into this link https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/reverse-the-scroll-of-mouse/334669c3-8a45-4600-830a-8df628d7415e there shouldn't be a need to make new registry DWORDS. there were two that appeared for me, that had both FlipFlopWheel and FlipFlopHScroll off the bat. change both keys from 0 to 1 and restart (if it didn't work, reverse and try the other device)

VegetableStu

VegetableStu

 

Apple Fails Again

For nothing my Iphone XS Max wouldn't charge, I tried multiple different lighting chargers and even wireless charging but still nothing. only when the battery is completely drained then it accepts charge and as soon as i enter my password to verify that i restarted the phone it stops accepting charge. any solutions?

gidz_ali

gidz_ali

 

AMA

Always wanted to do an AMA. Am impatient so will do so now.    Just as in Arika.S' AMA, 3 ways to ask a question: 1) PM me on here 2) E-mail me at rorznz@gmail.com 3) Post as a reply to this Blog entry   All questions are welcome.    Basics: Height; 6'2 Weight; 85 but trying to lose.  Age; 22 Wherabouts; NZ   Cheers, Rory.

RorzNZ

RorzNZ

 

Clever anti-piracy schemes

Many companies like to protect the sales of their software by incorporating anti-piracy schemes. A lot of them fall flat, being annoying and inconvenient to use to outright dangerous and perhaps legally dubious. However, there were a few that I thought were pretty clever in that not only was it transparent to people who purchased the game legitimately, but served as frustration to pirates at the same time.   Sony's "Wobble" Detection Mechanism On the PlayStation 1 Most of this is really from Technology Connection's video on the subject:   The gist of it is that as the laser is trying to read the disc, there are smarts in the reader in order to keep it on target with the data on disc. The way Sony did this was to use a couple of electromagnets in a flat X-Y plane configuration. The thing is that in the PlayStation, the reader also detected whenever the laser head moved around or "wobbled." In a particular part of the CD, an imperfection was pressed to induce a deliberate, specific wobble that the console understood. So if the wobble happened on startup, the console knew the disc was legitimate. Whenever a person tried to copy a PS1 game, the CD drive would read this data just fine. However, when it came to burning the disc, the burner wrote the data without the imperfections to induce the wobble. This meant that unless you had the actual CD press from Sony, you couldn't create a copy of a PS1 disc that the PS1 liked.   It was defeated by mod chips by pausing the disk after the initial verification was done, but certain games also were aware of mod chips installed on the system.   Insomniac's "Checksumception" on Spyro: Year of the Dragon Insomniac faced a problem after the release of Spyro 2, it was heavily pirated. They didn't want this happening again with their new game and thought of a way to solve the problem. They came to one conclusion: You can't. But, what they did find out is that most of the time, a majority of sales of games happen within the first few months. So rather than try to stop pirates, they wanted to delay them from releasing a fully playable version of the game. Rather than try to do copy protection, the developers decided on crack protection.   The way they did this was sprinkled through the game were routines that calculated the checksum of the code as a means of integrity checking. But this wasn't enough. If a hacker can find where the routine to calculate the checksum is, they can just modify what's expected after making changes to the code. So Insonmiac decided another layer of checksum calculation was in order, using the checksum itself as part of the calculation. So effectively, checksums on checksums on checksums. And if you changed anything and tried to modify one of them, you'd have a ripple effect that would make all the rest invalid. Essentially, it was impractical at the time to modify anything in the code and still have the checksums line up.   But it didn't stop there. If the game detected an incorrect checksum was encountered, it would only break the game in subtle ways like removing collectibles used to advance to the next part of the game. This meant that when the hackers thought they broke the game's protections, they'd call it victory, release it, and then find out nope, they actually didn't. (from what it sounds like, people who make cracks are likely don't test it completely because in the world of making cracks, speed gets you cred)   The problem was that this method required 10 seconds or so of disc access. Obviously this can't do while you're playing the game so they limited it to just when the game is booting and masking it with showing logos and such. Another problem was this increased the development effort. But as a result of this method, it took over two months before the game was cracked in a time when a week was considered long. And the developers don't even think it was defeated, just bypassed.   Also if any of this sounds familiar to another DRM's method of protection, it's very likely that Denuvo runs on the same principle. Just using encryption instead.   You can read about the whole thing at https://www.gamasutra.com/view/feature/131439/keeping_the_pirates_at_bay.php   Breaking the Game If You Pirated It A few studios also took Insomniac's approach to piracy. Only they left out the "Checksumception" and used the "break the game" method. The ones that stood out to me over the years are: Earthbound's difficulty spike, getting booted to a PSA, and if you managed to get to the end, file erasure. The Immortal Pink Scorpion in Serious Sam 3: BFE Screwing up Batman's ability to glide in Batman: Arkham Asylum And my favorite because of its poetic justice, people pirating your game and causing your studio to go bankrupt in Game Dev Tycoon

Mira Yurizaki

Mira Yurizaki

×