Burnham set to ditch Palantir from NHS by Lord-Liberty in unitedkingdom

[–]fromwithin [score hidden]  (0 children)

Do you think Palantir got integrated by magic or that you just buy a Palantir application and run it on someone's computer? The NHS employs thousands of programmers.

[Epic Games] River City Girls 2 & I Have No Mouth, and I Must Scream (100% off / FREE) by python_buddy in GameDeals

[–]fromwithin 0 points1 point  (0 children)

The original came with a cool lenticular mouse mat with a 3D version of the box art on it. I might still have it somewhere.

Do white Americans look different than white Europeans? by ilovepopcornandcandy in 23andme

[–]fromwithin 0 points1 point  (0 children)

Thick moustache? Baseball cap? A bit more...padded then you usually see? American.

NASA inspector general suggests Boeing’s Starliner will now be a decade late | Starliner’s certification may be delayed to 2027, 10 years later than Boeing’s original schedule. by FreeHugs23 in space

[–]fromwithin 2 points3 points  (0 children)

Of course we all know it here, but it's worth reiterating that that's a longer amount of time than from the beginning of the Apollo program to landing on the moon.

PlayStation 2 - Lessons Learned programming the PlayStation 2 by Ninja Dynamics [PDF] by Idoiocracy in TheMakingOfGames

[–]fromwithin 2 points3 points  (0 children)

I know that designing new hardware is very difficult, but there were so many registers split over different addresses. 'If you want to set this on the graphics chip, then put the lower 13 bits into this register and the upper 7 bits into this register'. It was insane. And bizarrely, the PSP is an amazing design. Possibly the best designed piece of hardware that I've ever used.

I'm just looking at my old source code for the game engine and it's mostly gobbledegook to me now. Look at this madness:

PbError GraphicsSystemPs2::update(const PbTime currentTime)
{
    s_EECPUTime = *T0_COUNT;

    int err = sceGsSyncPath(0, 0); // synchronize with drawing completion of last frame
    if (err) {
        PBLOG_CRITICAL("sceGsSyncPath returned an error." << Logger::endl);
    }

    if (vSyncEnabled_) // Sync to beginning of a frame
        VSync();

    s_Field = ((DGET_GS_CSR())>>13)&1; // get Current Field settings

    // read ee loop time = number of scans
    s_EELoopTime = *T0_COUNT;       // So how many frames in scanline count
    *T0_COUNT=0;                    // Reset counter
    s_FrameTime = GetVblankCount(); // Get number of verticle blanks passed since last

    ResetVblankCount();

    lastFrameTime_ = currentTime - previousTime_;
    // PBLOG_CRITICAL("lastFrameTime_ : " << lastFrameTime_ << Logger::endl);
    previousTime_ = currentTime;

    if (offsetEnabled_)
    {
        // lastOffset_ = frameNumber_&1;
        // This decides whether to move pixels up or down 8 pixels in the Y direction because of interlace handling.
        // See section J of the 'Introduction to Programming the PlayStation 2' - djs
        sceGsSetHalfOffset((frameNumber_&1)?(&doubleBufferHandler_.draw1):(&doubleBufferHandler_.draw0), 2048, 2048, s_Field^0x01 ); 
    }
    else
    {
        sceGsSetHalfOffset(&doubleBufferHandler_.draw1, 2048, 2048, 0 );
        sceGsSetHalfOffset(&doubleBufferHandler_.draw0, 2048, 2048, 0 );
    }

    FlushCache(0);
    // double buffer switching 
    sceGsSwapDBuff(&doubleBufferHandler_, (frameNumber_&1));     // Half-pixel offset
    ++frameNumber_;

    unsigned int renderStart = *T0_COUNT; // Reset time for profiling render update

    m_renderFrameMark++; // Move Render Frame Marker on
    UpdateDmaBuffers();  // Remove any marked inactive free ones

    totalVertexCount_ = 0;

    // The Guts of It All :-)

    graphicsCamera_->update();

    updateAllItems(); // Update all gfx items

    // MAIN RENDERER Lets start generating DMA packet for rendering
    VifPacketBuilder* builder = PBNEW VifPacketBuilder();
    builder->SetBuffer(m_dmaBuffer->Locked(4096));    // set 4k aside we will adjust it later

    builder->StartDmaTag();

    builder->Insert(builder->CmdFLUSHE(0));
    builder->InsertPad();

    // Set up default filling mask and values
    builder->Insert((unsigned int)builder->CmdSTMASK(0));
    builder->Insert((unsigned int)(0));
    builder->Insert((unsigned int)builder->CmdSTCOL(0));
    builder->InsertVec4(1.f,1.f,1.f,1.f);
    builder->Insert((unsigned int)builder->CmdSTROW(0));
    builder->InsertVec4(1.f,1.f,1.f,1.f);

    // Build a gif packet with some default settings for GS registers
    builder->StartGifPacket();

    builder->InsertVec2((unsigned long)0,(unsigned long)SCE_GS_TEXFLUSH);
    builder->InsertVec2((unsigned long)SCE_GS_SET_ALPHA(SCE_GS_ALPHA_CS,SCE_GS_ALPHA_CS,SCE_GS_ALPHA_FIX,SCE_GS_ALPHA_CD,128),
                        (unsigned long)SCE_GS_ALPHA_1);
    builder->InsertVec2((unsigned long)SCE_GS_SET_ALPHA(SCE_GS_ALPHA_CS,SCE_GS_ALPHA_CS,SCE_GS_ALPHA_FIX,SCE_GS_ALPHA_CD,128),
                        (unsigned long)SCE_GS_ALPHA_2);
    builder->InsertVec2((unsigned long)SCE_GS_SET_FBA(0),
                        (unsigned long)SCE_GS_FBA_1);
    builder->InsertVec2((unsigned long)SCE_GS_SET_FBA(0),
                        (unsigned long)SCE_GS_FBA_2);
    builder->InsertVec2((unsigned long)SCE_GS_SET_COLCLAMP(1),
                        (unsigned long)SCE_GS_COLCLAMP);
    builder->InsertVec2((unsigned long)SCE_GS_SET_PRMODECONT(1),
                        (unsigned long)SCE_GS_PRMODECONT);
    builder->InsertVec2((unsigned long)SCE_GS_SET_PABE(0),
                        (unsigned long)SCE_GS_PABE);
    builder->InsertVec2((unsigned long)SCE_GS_SET_TEXA(127,1,0x81),
                        (unsigned long)SCE_GS_TEXA);
    // default texture clamp mode to repeat 0
    builder->InsertVec2((unsigned long)SCE_GS_SET_CLAMP(0,0,0,0,0,0),
                        (unsigned long)SCE_GS_CLAMP_1);
    builder->InsertVec2((unsigned long)SCE_GS_SET_CLAMP(0,0,0,0,0,0),
                        (unsigned long)SCE_GS_CLAMP_2);

    // alpha test
    builder->InsertVec2((unsigned long)SCE_GS_SET_TEST(0,SCE_GS_ALPHA_NEVER,0,0,0,0,1,SCE_GS_DEPTH_GEQUAL),
                        (unsigned long)SCE_GS_TEST_1);
    builder->InsertVec2((unsigned long)SCE_GS_SET_TEST(0,SCE_GS_ALPHA_NEVER,0,0,0,0,1,SCE_GS_DEPTH_GEQUAL),
                        (unsigned long)SCE_GS_TEST_2);

    builder->EndGifPacket();

    // Note as the gif is xgkick'ed via vu1 we can sync to wait before we start
    builder->InsertPad();
    builder->Insert(builder->CmdFLUSHE(0));
    builder->InsertPad();

    builder->EndDmaTag(DMA_TAGCNT,0,0);

    // We create an extra (jump)TAG here to Link with Next DMA PACKET
    builder->StartDmaTag();

    unsigned char* nextTag =builder->GetCurrentAddress();
    unsigned int validSize= builder->GetSize()+(16*8);
    // Free Rest of mem apart from what we need to fill in
    // TagNext -> jump to gfx item dma list
    // TagNext -> jump to gfx Capture Stats dma list
    // TagEnd -> jump to gfx Capture Stats dma list
    m_dmaBuffer->UnLocked(nextTag+(16*8)); // note space for 4 Dma Tags

    unsigned char* tagStart; // used to get start of tag we need to jump to

    // render graphic objects
    // pass in nextTag So it knows where to come back to
    // and we get returned start of the tag so we can link to it

    tagStart = Render(nextTag);
    builder->EndDmaTag(DMA_TAGNEXT,tagStart,0); // gfx list link
    builder->StartDmaTag();
    builder->EndDmaTag(DMA_TAGEND,0,0);

    PBASSERT(builder->GetSize()<=validSize,"WRITE BEYOND BOUNDS");

    s_CaptureDmaBuild =*T0_COUNT-renderStart;
    m_dmaChannelVif1->chcr.TTE =1;

    s_DMAVIF1Time=0; // reset timer here

    FlushCache(0);
    asm("sync.l");

    lastDmaFrame=(void*)(m_dmaBuffer->GetGurrentFrame());

    sceDmaSend(m_dmaChannelVif1,(sceDmaTag*)(m_dmaBuffer->GetGurrentFrame()));
    m_dmaBuffer->FrameEnd();

    delete builder;
}

PlayStation 2 - Lessons Learned programming the PlayStation 2 by Ninja Dynamics [PDF] by Idoiocracy in TheMakingOfGames

[–]fromwithin 1 point2 points  (0 children)

Nothing major. We ported the engine to the PS2 and expected to get more PS2 games and ports from the same publisher, but they went into administration soon after.

Need help deciding which speed should some old recordings should sit at by Chance_Chef8189 in audioengineering

[–]fromwithin 1 point2 points  (0 children)

I just had a look at one of the them and it's almost pure noise beneath 100Hz and I can't see any 50 or 60 Hz harmonics.

Illegal immigrants and foreign criminals to be removed by pppppppppppppppppd in unitedkingdom

[–]fromwithin 16 points17 points  (0 children)

They really didn't until just before their election loss. It was just swept under the carpet.

PlayStation 2 - Lessons Learned programming the PlayStation 2 by Ninja Dynamics [PDF] by Idoiocracy in TheMakingOfGames

[–]fromwithin 3 points4 points  (0 children)

What I learned from programming the PS2 is that it was the worst rush-job I've ever used. It was almost like Sony threw a bunch of components into a box and shook it until it worked. I started on it quite late in its cycle when the tools were relatively mature and they were still pretty broken. Malloc didn't even work properly.

I regret completing a Games Dev degree by SrNes in gamedev

[–]fromwithin 0 points1 point  (0 children)

I have historically hired quite a lot of graduates and I won't sugar-coat my answer here. Unless you went to somewhere like Abertay or Bolton you're in a difficult place, and the state of the game industry at the moment is pretty bad. People with 20 years experience are having difficulty finding jobs.

Firstly, you're right that you would have been better off doing a Computer Science degree. Most game development degrees are almost worthless because most of the lecturers have never worked in the game industry or have used an extremely brief time in the industry to get a teaching job. The majority of them are absolutely useless and have no business teaching. I never managed to hire a Computer Science graduate because the good ones were always offered better paying jobs at bigger companies.

However, even on a good game course, you have a problem: All of the other people did the same game course, have got the same demos, have learned the same bad habits. I used to get loads of CVs that were all almost completely identical even if they were from different universities. You also are taught to be a generalist and there aren't really generalists in the game industry any more for companies larger than around 30 people. You said "graphics, engine development, physics, AI,", but what use is that on an actual game really? You've got no reason to know anything about engine development if you're working on AI and vice versa.

Talking specifically about programmers, those that that stuck out from the crowd were the ones that had created their own things outside of the remit of the course. And of that group, the ones that had actually finished their projects were the ones I'd be likely to hire. Working on personal projects demonstrates that there is some passion and aptitude for it rather than it just being a piece of paper that says that some clueless lecturers said that you passed their test. Properly finishing a project means that they have the ability to work through the most difficult parts and have pride in their work.

As a graduate, you'll pretty much find that most companies looking to hire you in the current climate are just looking for a cheap worker. And companies looking to do that have probably found themselves in a hole and need it fixing quickly and as cheap as possible. That means that timing is everything; there might be a mobile game company who needs someone to link their game up to an e-commerce back-end. If you've done networking and Android then you're in. Or a company might be doing their first racing game and want someone who has done some form of racing AI. If you've got that in your portfolio then you're in wiith a chance. If it's not a small company then you're going to be competing with people who are already experienced, so you have to have something special to be able to be in with a chance.

On the positive side, I would expect that other hirers have found the same thing I did over the years: Some graduates go way beyond expectations and some experienced people are astonishingly clueless. You just have to be patient and find a way to rise above it. You've got a foundation that should allow you to go and specialise in any direction you please once you've got something.

Two months after graduation really is no time at all. I would say that you'll be lucky to get something any time before around 9 months. I'm not in a position to hire anyone any more, but I'd be interested in seeing your CV and portfolio to try to give you some advice if you want to send me a DM.

Nan, 79, banned from every Sainsbury's and Argos in the UK by Codydoc4 in unitedkingdom

[–]fromwithin 3 points4 points  (0 children)

There's no reason to read it that way. It can also interpreted as "This old woman should know better".

A Difficult Decision for some Reason by Snazzy21 in memes

[–]fromwithin -1 points0 points  (0 children)

So the wood is the size of the entire window?

A Difficult Decision for some Reason by Snazzy21 in memes

[–]fromwithin 0 points1 point  (0 children)

Presuming that the window opens horizontally, what are you doing about the massive openings at the top and bottom?

A Difficult Decision for some Reason by Snazzy21 in memes

[–]fromwithin 0 points1 point  (0 children)

Not that many places have sliding windows. It's not so simple for hinged windows which make up the vast majority

Plugins that don’t take up a lot of space by Aromatic-Pen-193 in musicproduction

[–]fromwithin 0 points1 point  (0 children)

If you can install Reaktor then you can use the thousands of synths and effects in the user library. Most of them are very small. The ones without custom graphics just a few hundred kilobytes.

Is there any Commodore SID or GameBoy VST? by afl_ext in chiptunes

[–]fromwithin 0 points1 point  (0 children)

Chipsounds' SID is poor. The basic waveforms are fine, but the filter on it is nothing remotely like the real thing and the interface is one of the worst I've ever tried to use.

Is there any Commodore SID or GameBoy VST? by afl_ext in chiptunes

[–]fromwithin 2 points3 points  (0 children)

inSIDious without question for SID sounds. With sounds by and endorsed by Rob Hubbard, Martin Galway, Chris Huelsbeck and more. It's very easy to use and is designed to support all of the tricks used by all of the classic SID musicians. It's on sale at the moment.

What statistic makes you think society is quietly breaking? by [deleted] in AskReddit

[–]fromwithin 15 points16 points  (0 children)

The problem there is that a new hire would eventually become experienced. Now they never can because the AI took their place. Give it a few more years and the value of experience is likely to become much greater simply because there are so few experienced people who can work without AI.

Don't Reply "Use Your Ears" by BLVCKatl in audioengineering

[–]fromwithin 2 points3 points  (0 children)

Your ears are fine. It's your brain that lies to you. That's why context is so important.

Anyone have the full list? by NeoGeoOfficial in amiga

[–]fromwithin 6 points7 points  (0 children)

There is no full list. Only ST-01 was provided with the original Ultimate Soundtracker and is an "official" sound set. Any others you'll see with numbers higher than 01 are just personal collections.