and the decompiler has misinterpreted it as a longlong because of the access patterns (64bit pointers). So I think this might be part of an initialization function for some property on top of a object that exists at *param_1. There are three types of high scores to be achieved playing this game: Going round the clock, which means exceeding 1,000,000,000 points. The 0x2b part I'm not sure about myself but it looks like some other kind of similar checks.Īnd actually then thinking about the way it's calling it, i'm wondering if this is actually from some C++ standard library code for doing stuff with a vtable, looking up the vtable entry and checking it's validity before calling it (in this case, location 0x18, and checking some kind of RTTI at 0x28 and 0x2b) and storing that it's been initialized in 0x21. Microsoft Windows Pinball also known as 3D Space Cadet Pinball was introduced in Microsoft Plus 95, it then became so popular that it was included in Microsoft Windows NT 4 by default. o Overview The games story is as such: You are a space cadet attempting to rise through the ranks and save the earth. From my memory, the windows ABI uses the first two bytes of functions for installing hooks/debugging by patching the first two bytes into some kind of jump (while originally being nops). It is a very well designed board, and, despite a lack of the visible transports so prevalent in modern pinball machines, this game is very satisfying. This particular one looks like it's taking a function pointer in and checking if it's a valid function (not null) and then checking the first two bytes of the function. This version of the game is compatible, can be installed and played on newer iterations of the operating system, including Windows 10. It is a classic Windows game introduced by Microsoft and was first included in its Windows 95 operating system back in 1995. The sibling comment covers it a bit more in detail, but it's largely just some guessing and as much an art to figuring out what the types are or could be. 3D Pinball - Space Cadet is a free arcade game for PC. (disclosure: per the child post, my original assumption that OpenRCT2 was copied out of Hex-Rays was inaccurate, since it was originally written in assembler it didn't follow a standard C ABI and the decompiler wouldn't work properly anyway). For example, OpenRCT2 started as a repository full of manually created source with Hex-Rays names and slowly evolved module-by-module into readable source code. Highly manual process, for some files it's just pattern matching / renaming and goes really quickly, for others it's full reimplementation and a bit harder.Īnd, if you look at most "decompiled game" projects, I think this is the industry standard way to do this. When I've done this in the past, it basically consists of:ġ) Decompile project using Ghidra/IDA, first pass.Ģ) Load symbols if present (sounds like there was a PDB for this one, which makes things a lot easier).ģ) Read decompilation/asm for unnamed subs and try to name them based on what they do.Ĥ) Export all decompiled source into an editor and start copy/paste/editing into readable source. There’s also a slight tail behind the ball making it easier to follow, which definitely wasn’t in the original game.I'm not aware of any good general-case automation for this. Thanks to k4zmu2a for the original source code and to iscle for the original Android porting. It was later bundled with Windows NT, Windows 98. Android port of 3D Pinball for Windows Space Cadet, a game bundled with Windows. I knew for a fact the physics were off, as the mobile version was much more fluid and forgiving than I remembered. 3D Pinball for Windows Space Cadet was a digital table released in 1995 as part of the Microsoft Plus upgrade package for Windows 95. ![]() It was great, but Jess thought the sound was a bit off. ![]() ![]() I didn’t have a copy at the time, but as soon as I debarked from that flight I found a rather convincing mobile adaptation. Jess, being the nerd that she is, wouldn’t settle for anything less than the old Windows “3D Pinball Space Cadet” game from the XP days. We were forced back into the dark ages of offline, pre-downloaded mobile games, of which I had a few solid options including a GBA emulator with Pokemon Pinball. As we were flying over the massive dead-zone that is the Pacific, the in-flight wifi wasn’t even an option. Recently, Jess and I got stuck on a 5 hour flight with, through a series of unfortunate events, no cached video streaming content and none of those “irl” books to entertain ourselves. ![]() If you recognize this screen, you’re probably old now…
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |