🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
Yay, I got to play with virtual function tables today at lunch. Relevant thread.
What I found (VC8 specific probably, although it may work on other compilers):
What I found (VC8 specific probably, although it may work on other compilers):
- The vtable pointer is held in the first 4 bytes of a class with virtual functions. That means you can cast the class to a size_t pointer, and…
Meh, I can't be bothered doing my own game coding stuff recently. I tend to open the project file, tinker for 5 minutes, then leave it alone. As such, I've not done much work with my engine at all recently.
I've written a model converter programe, currently it only supports .md2 files. All it does i…
I've written a model converter programe, currently it only supports .md2 files. All it does i…
lol @ work.
lol @ nobody testing the master build till 17:55 on milestone submission day
lol @ nobody testing a non-fastrack (skip past logos to main menu) build till 17:55
lol @ staying till 19:45 because the master ROM build crashes when the release build works fine
lol @ 32-byte char arrays
lol @ cop…
lol @ nobody testing the master build till 17:55 on milestone submission day
lol @ nobody testing a non-fastrack (skip past logos to main menu) build till 17:55
lol @ staying till 19:45 because the master ROM build crashes when the release build works fine
lol @ 32-byte char arrays
lol @ cop…
RRAAAAAAAAAAAAAAAWWWWWWWWWWRRRRRRRRRRR F*CK YOU NINTENDO, GO DIE IN A FIRE
According to this "Unsupported Characters List" that we have to submit for Nintendo Lot Check, Nintendo think that 0x0153 is in the range "[European Characters] 0x00a0--0x00ff". Nice of them to sneak that in there to catch us…
According to this "Unsupported Characters List" that we have to submit for Nintendo Lot Check, Nintendo think that 0x0153 is in the range "[European Characters] 0x00a0--0x00ff". Nice of them to sneak that in there to catch us…
IT IS DONE.
I've finished my API hooking library. Source code is available Here, and an x86 binary is available Here. The binary includes a command line app which will let you list all DLL imports for a running process, hook a DLL import, and optionally wait for you to press a key before unhooking i…
I've finished my API hooking library. Source code is available Here, and an x86 binary is available Here. The binary includes a command line app which will let you list all DLL imports for a running process, hook a DLL import, and optionally wait for you to press a key before unhooking i…
Well, I spent part of the weekend learning how to use MASM. Well, the 64-bit version at least. The end result is that now (finally) my API hooking code works in 32-bit and 64-bit. Time for a random dump:
stub SEGMENT READ WRITE EXECUTE
LoaderStubCode PROC
; Get function base offset to access "local"…
Well, I might as well spew out a large chunk of code. I've been writing an API hooking library, and I'm about halfway through. It works perfectly in x86, but I'd like it to work in x64 too.
Anyway, here we go. I may as well just dump it all here.
Header file (Just structs just now:
Anyway, here we go. I may as well just dump it all here.
Header file (Just structs just now:
//================…
I love the Nintendo WiFi headers. They're full of stuff like:
The function signature isn't the same, but the comment is (NDA crap).
In other news, I've been writing some API hooking code. Currently, I can grab a r…
void ForceShutdown()
{
// Functions that can be forcibly called will be called here.
}
The function signature isn't the same, but the comment is (NDA crap).
In other news, I've been writing some API hooking code. Currently, I can grab a r…
I got distracted at lunch today. I read a bunch of stuff about the Vista kernel in this months TechNet, and I decided to write some API hooking code, just to see what's involved and what cool things I can do.
I never realised how much effort it is to get the base address for another process. Your ow…
I never realised how much effort it is to get the base address for another process. Your ow…
Whee, scripting support is ported over. I also added a debug print function, since the default Lua one prints to stdout, which is useless for a Win32 application. So my version just prints the string(s) passed to it to the debug log, which ends up in the debug output window and in the debug log fil…
I just realised that my list at the top of my journal is was of date. So it's been updated now. Things that have been crossed off:
Dynamic texture creation, locking - this is now working fine. I could do with adding support for a round-robbin style system, but that's an optimisation that can come la…
Yay, memory manager stuff sorted [smile]:
// Ensure the memory manager is constructed extremely early on
#pragma warning(disable:4074) // warning C4074: initializers put in compiler reserved initialization area
#pragma init_seg(compiler)
struct MemoryInitialiser
{
MemoryInitialiser() { PMemory::Crea…
I've been digging around in a lot of low level code today, in order to make my memory manager tidier, faster and more fully featured.
The thing I'm up to my nuts in just now is the 10 memory leaks coming from STL code. Now, I used to have my memory manager as a static variable, but it's now malloc()…
The thing I'm up to my nuts in just now is the 10 memory leaks coming from STL code. Now, I used to have my memory manager as a static variable, but it's now malloc()…
I'm having a week of fail so far. I keep doing retarded things.
Today's retarded thing: If you're going to log referers to your site, for gods sake don't have a publicly viewable page which links to the referers. Because spammers will use it to link to "cheaphomeloans.info" and the like.
Long story s…
Today's retarded thing: If you're going to log referers to your site, for gods sake don't have a publicly viewable page which links to the referers. Because spammers will use it to link to "cheaphomeloans.info" and the like.
Long story s…
Mmm, Sainsbury's Taste The Difference Jalapeno & Monterey Jack Cheese Burgers are AMAZING.
I am satisfied.
Anyway, gamedev stuff. I've done uhm... not much recently. I've lost my motivation to code again, and I'm in the middle of writing my own forum software. So far you can register, login, and …
I am satisfied.
Anyway, gamedev stuff. I've done uhm... not much recently. I've lost my motivation to code again, and I'm in the middle of writing my own forum software. So far you can register, login, and …
Well, it's been a few days since an update so here goes...
All forms registration are 95% complete. There's no activation, E-mail activation, admin activation, and registration disabled. All work fine, although Admin activation posts a moderator alert, but the moderator control panel isn't complete …
All forms registration are 95% complete. There's no activation, E-mail activation, admin activation, and registration disabled. All work fine, although Admin activation posts a moderator alert, but the moderator control panel isn't complete …
I like debug crap. I don't like the number of queries my forum requires though.
User registration:
User registration:
Page required 9 database queries
Query 1: SELECT * FROM users WHERE username='Anonymous' LIMIT 1;
Query 2: SELECT * FROM config WHERE `key`='reuse_emails';
Query 3: SELECT username FROM users WHERE userna…
Ok, this is my 3rd attempt at installing XP. First time, I got a blue screen of death at windows startup, and it automatically restarted, which is exactly what I told it not to do in the Startup and Recovery section in System Properties. It also BSOD'd in safe mode. So I re-installed.
Second time, I…
Second time, I…
It's been a while since I posted in my journal...
I've got my MUD in a semi-reasonable state, and my scripting code now supports arrays, which is needed to get lists of things (users in a room, items a user has, etc), and is generally tidier.
I've got yet another side project though (*sigh*) - some f…
I've got my MUD in a semi-reasonable state, and my scripting code now supports arrays, which is needed to get lists of things (users in a room, items a user has, etc), and is generally tidier.
I've got yet another side project though (*sigh*) - some f…
Pointless update time.
I've not done that much coding recently, I've been working my ass off at work, and it kinda removes the desire to code. I'll hopefully start getting more stuff done when things get more interesting.
Currently, users can log in and register, and that's it. I need a few C++ funct…
I've not done that much coding recently, I've been working my ass off at work, and it kinda removes the desire to code. I'll hopefully start getting more stuff done when things get more interesting.
Currently, users can log in and register, and that's it. I need a few C++ funct…
I've been moving my code more and more into Lua. Instead of having the main user loop in C++ and call Lua functions to check usernames, and so on, I now call a script "Tick" function once for each user. More scriptability = good.
I also found out that I'm using a 4 year old version of Lua (v5.0), wh…
I also found out that I'm using a 4 year old version of Lua (v5.0), wh…
My new method for finding out where these vector-resize memory leaks are coming from:
1. Put a breakpoint somewhere to break to the debugger
2. Open CodeWarrior's memory editor
3. Go to address the leak is at
4. Type "dgfg" over and over until you overwrite all the memoy
5. Remove breakpoint and run cod…
1. Put a breakpoint somewhere to break to the debugger
2. Open CodeWarrior's memory editor
3. Go to address the leak is at
4. Type "dgfg" over and over until you overwrite all the memoy
5. Remove breakpoint and run cod…
Race Driver: Create and Race interview with Jamie Firth. Click "Race Driver: Create & Race Interview 1".
Whee, more publicity.
Whee, more publicity.
God of War post-mortem slides if anyone is interested. I found it quite interesting anyway.
Back in Edinburgh tonight for a piss-up on Saturday night, and since I have no TV in my room (It's in Glasgow), and this PC (my server) is useless for most things, I may as well post here.
Not much to report really, I spent an hour today (my lunch break) adjusting the code for TEH MUD slightly. I ad…
Not much to report really, I spent an hour today (my lunch break) adjusting the code for TEH MUD slightly. I ad…
And now scripting is in. I'm amazed how nice and simple it was, once I got my OOPy stuff working with C closures.
I can run a script that just calls LoadScript("Test2.script") correctly, and call a function from that newly loaded script with the following code:
I can run a script that just calls LoadScript("Test2.script") correctly, and call a function from that newly loaded script with the following code:
// The function:
class LoadScript : pub…
Yay, I get to talk about the project I'm doing at work now. Sort of.
GamesIndustry.Biz link
EDIT: and Eurogamer
GamesIndustry.Biz link
EDIT: and Eurogamer
Advertisement
Popular Blogs
Advertisement