Jump to content
  • Advertisement

Evil Steve

GDNet Emeritus
  • Content Count

    15897
  • Joined

  • Last visited

Community Reputation

2019 Excellent

1 Follower

About Evil Steve

  • Rank
    Moderator Emeritus

Personal Information

  • Interests
    Programming

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Evil Steve

    True, False, FileNotFound

    Sigh. From the SDK of a certain big-name console: enum GraphicsBoolean Graphics's version of bool-type values. Enumerator: GRAPHICS_FALSE GRAPHICS_TRUE GRAPHICS_DISABLE GRAPHICS_ENABLE That makes me sad. EDIT: Censored the library name
  2. I am drunk. I like muffins. That is all.
  3. Evil Steve

    Preview of the game I'm working on

    And the images seem to be borked. There's images viewable on [url="http://www.facebook.com/media/set/?set=a.10150709689980298.719929.212717370297"]Facebook[/url], however.
  4. Evil Steve

    Preview of the game I'm working on

    IGN has released a preview of the game I'm working on: Need For Speed: The Run on 3DS. Obviously I can't say an awful lot about it, but the preview doesn't do it justice IMO - some of the tracks are much prettier than the screenshots there, and it doesn't cover some fun things like heroic stunts (Which you can see mentioned on the bottom screen in the second screenshot). Anyway. Back to work. I need to tighten up the graphics on level 3.
  5. Evil Steve

    I'm not dead!

    [quote name='Aardvajk' timestamp='1309164011'] Yeah. The one beauty of renting is that you have an exactly fixed outgoing every month and if the boiler explodes or the roof blows off in a freak storm, someone else has to pay for it. But if we ever get out of this recession, I'd imagine a flat in Glasgow would be a pretty hot property really. You could sell it, move into a caravan and buy a computer from Alienware. [/quote] Now THAT sounds like a good idea...
  6. Evil Steve

    I'm not dead!

    Last update was in January, whoops. I've been pretty busy recently, been buying a 3 bedroom flat in Glasgow which is a lot more stressful than I thought it'd be. I finally moved my stuff in at the start of June, after having fun trying to get a certificate of building works for the work that the previous owner did to the property. He moved the kitchen completely, put in an en-suite, and added an air duct to extract air from the en-suite, kitchen and bathroom and spew it into the stairwell. And there's the problem. The building certificate guy said that it can't vent into the stairwell, since it's a fire escape so it's a fire hazard - despite every other flat in the building doing the exact same thing. I was told that it would need to be re-ducted to an exterior wall, and was then told a week later that it'd been done. All this happened about 2 weeks before I was due to move in, after my offer had been accepted, so there wasn't a lot of time for me to argue it or anything like that. So I officially moved in on the Friday, and I went to the flat on Saturday to see what had been done with the ducting. And it hadn't exactly been re-ducted, it'd been blocked up. I spoke with my solicitor who said that basically there's nothing we can do about it, because he has a certificate to say that the building works are carried out to code (They're not functional, but they're to code...). I spoke to the previous owner about it and he said that apparently this is just something that everyone does, and he's happy to unblock it if I want, so it'll vent back into the stairwell - which is against the building regulations and will need blocked up again if I sell the place, but at least it'll be functional. So he came and did that, which took him 5 mins which was good-ish. Other fun things I noticed after moving in is that the floors are a mess. It's laminate flooring, and it was in a reasonable state when I went to view the place in February, but the owner had tenants in during this time, and I stupidly didn't go to see it after they'd moved out. The floors weren't really that bad, but they were worse than when I saw it previously, with big cracks between the pieces of laminate in the hall, and a big spongy bit just as you enter the lounge. There was also a damp patch that wasn't visible before because it was behind a sofa. It was mentioned in the home report, but I assumed it was just a mark on a different wall (Same wall, but on the other side) that the owner said he was taking care of. So, the current state of affairs: I got hardwood flooring from Direct Flooring and got it put in throughout, which is still a work in progress as we speak. It looks considerably better than the laminate, and the guys who put the flooring in (Area Joinery) have done a fantastic job. They've not done the flooring around the damp patch, because it'd just need ripped up again, so the plan is that I get the damp fixed, then they come back and do the rest as a separate, smaller job. I got a quote from one builder for fixing the damp - who quoted GBP640 ex. VAT, so around GBP750 including VAT. The damp patch is pretty small, and is because it's just a plastered-over fireplace which hasn't been properly blocked up, so I think GBP750 is perhaps a bit steep. I also need to get a fireplace trimmed because the large concrete slab base of it is raised up above the floorboards so the flooring guys can't floor over it - thankfully it's the fireplace at the damp patch, so it couldn't be floored over anyway - but I don't think I'll be getting the GBP750 builder to do that somehow... I was due to have another builder come and give me a quote last night, but he "forgot" apparently, and is supposed to phone me today but hasn't yet. So I might end up needing to find another builder instead... On top of that I've been extremely busy at work, I can now say that I'm working on Need For Speed: The Run on the 3DS. And speaking of being extremely busy, now this has FINALLY finished compiling, I'm going to get back to it...
  7. Evil Steve

    What! I need a title now?

    [size="5"]FAQ Well, I'm working on the new DirectX and XNA forum FAQ. The Previous FAQ is pretty massive, and out of date - although I suppose it needs to be quite wordy to cover all of the DirectX API... I'm also beginning to realise how out of date I am, having never used Direct3D 10, 10.1 or 11, or Direct2D or DirectWrite. Which makes the FAQ on those sections a bit lacking... Despite me saying that I'd try and have the FAQ done by Monday (2 days ago), It'll be done "when it's done" - although unlike my tutorial stuff, I'm actively working on the FAQ, and hope to have a first draft done by this weekend (maybe...). [size="5"]Cider! I'm making my own cider at home. Which should be ready soon (might be ready now in fact). It took a bit longer than it was supposed to, due to me adding honey as well as sugar initially (Since I didn't trust the look or smell of it), and it not being at the correct temperature - I don't have anywhere that's a constant 25'C, the closest to that is next to my radiator, which is far from ideal... So anyway, I've brewed it and bottled it (I've been collecting bottles for a while, and I got a bottle capper and bottle caps), it now needs to sit somewhere at ~30'C for 3 days to prime (So I'm leaving it next to the radiator for a week), and then it'll be done. [size="5"]Stag! I have a stag doo for one of my friends on Saturday, so that's Saturday gone and Sunday will probably be spent recovering, so I doubt I'll get anything constructive done at the weekend. Anyway, end of lunch, time for me to get back to work. Joy joy joy...
  8. Evil Steve

    New Gamedev

    I'm also still playing with the features. And I keep getting confused about what's a mod-only feature, what's a GDNet+ feature, and what anyone can do. So, hello Internets, etc
  9. HELLO IS THIS INTERNET? Still trying to work out how to use GDNet++...
  10. I'm not dead! Again. I've not been doing an awful lot of my own stuff recently, I've been particularly busy with work stuff - as usual. We got one of our projects (On two platforms) canned unfortunately, especially since we'd been working on it for over a year. I can't say much more about it for obvious reasons. I'm currently dicking around doing some stuff like Microsoft's Detours library, just because I like doing fun low-level stuff like this. I've gone back to my APIHijack app that I wrote a while ago (Might be linked in a previous entry, PM me if it's not and you especially want the source), that lets me redirect calls to any call made from an EXE (or DLL) to another DLL to my own function. That works by injecting a DLL into a remote process, via the usual CreateRemoteThread method, but the problem is that you can only do any real "work" in DllMain, or when a patched API call is made. Doing stuff in DllMain has several well known problems (The loader lock), and doing stuff in a patched API call might not be practical for various reasons. So, the obvious solution is to use an initialisation function, which is called after the DLL has been loaded. The problem is calling that function, since it needs to be called from within the target process. That means that you need to do a GetProcAddress() in the remote process to get the address of the initialisation function, which isn't directly possible (It rather involved being on the other side of this airtight hatchway). So, I've now written a GetRemoteProcAddress function, which uses ReadProcessMemory to parse the PE header and read the exports section (Which is what GetProcAddress does internally anyway). So, for anyone who cares: FARPROC GetRemoteProcAddress(HANDLE hProcess, HMODULE hDll, const char* szFunc) { // Read and check the DOS and NT headers BYTE* pBaseAddress = (BYTE*)hDll; SIZE_T nBytesToRead = sizeof(IMAGE_DOS_HEADER) + sizeof(IMAGE_NT_HEADERS) + 4096; BYTE* pBuffer = new BYTE[nBytesToRead]; SIZE_T nBytesRead = 0; if(!ReadProcessMemory(hProcess, pBaseAddress, pBuffer, nBytesToRead, &nBytesRead) || nBytesRead != nBytesToRead) { delete[] pBuffer; return NULL; } IMAGE_DOS_HEADER* pDOSHeader = (IMAGE_DOS_HEADER*)pBuffer; if(pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE || pDOSHeader->e_lfanew < 0 || (DWORD)pDOSHeader->e_lfanew > nBytesToRead-sizeof(IMAGE_NT_HEADERS)) { delete[] pBuffer; return NULL; } IMAGE_NT_HEADERS* pNTHeader = (IMAGE_NT_HEADERS*)(pBuffer + pDOSHeader->e_lfanew); if(pNTHeader->Signature != IMAGE_NT_SIGNATURE) { delete[] pBuffer; return NULL; } // Get export data directory IMAGE_OPTIONAL_HEADER& optionalHeader = pNTHeader->OptionalHeader; DWORD dwExportRVA = optionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress; if(optionalHeader.NumberOfRvaAndSizes = exportDirectory.NumberOfFunctions) return NULL; // Read the export RVA in the export table DWORD dwFunctionRVA; if(!ReadProcessMemory(hProcess, pBaseAddress + exportDirectory.AddressOfFunctions + wFunctionIndex*sizeof(DWORD), &dwFunctionRVA, sizeof(dwFunctionRVA), &nBytesRead) || nBytesRead != sizeof(dwFunctionRVA)) { return NULL; } // Convert RVA to FARPROC return (FARPROC)(pBaseAddress + dwFunctionRVA); } Not very well tested, and it could be a bit more optimal, but it does the job - especially if there's only a handful of exports. Anyway, that's enough of my rambling for now. I'm returning to bed - I have the plague. Or flu. But I'm pretty sure it's the plague.
  11. Evil Steve

    Neck hurts...

    Quote:After the isolation had been placed, I started putting plasterboards to the ceiling.Awesome typo [smile]
  12. Evil Steve

    Untitled

  13. Evil Steve

    Reasons not to use DirectInput for Keyboard Input

    I agree - although the point of this journal entry is reasons not to use it for keyboard or mouse input. There's no problem with using DirectInput for other input devices.
  14. Evil Steve

    Gross you out you nerd b*star*ds

    Awesome - I had one of them on my arse fairly recently. Thankfully it went away with some antibiotics and I didn't need to get sliced open...
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!