and the decompiler has misinterpreted it as a longlong because of the access patterns (64bit pointers). Sign Up for free (or Log In if you already have an account) to be able to post messages, change how messages are displayed, and view media in posts. So I think this might be part of an initialization function for some property on top of a object that exists at *param_1. 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. 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). ![]() 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. 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. (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. as well as a big payoff for the successful. as well as a big payoff for the successful completion of each table, such as slaying a dragon in Dragon's Keep, or creating a black hole in Space. Each board features the usual amount of bumpers, targets, ramps, etc. Space Cadet - Space ship commander theme. Each board features the usual amount of bumpers, targets, ramps, etc. Full Tilt Pinball is the first pinball simulation game developed by Cinematronics, LLC. The game includes three boards: Dragon’s Keep - Medieval Fantasy theme Skulduggery - Pirate theme Space Cadet - Space ship commander theme. 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. Full Tilt Pinball is the first pinball simulation game developed by Cinematronics, LLC. I have a funny feeling that if you do a web search for "3D Pinball - Space Cadet From Microsoft Plus! 95," you might find the files you need.I'm not aware of any good general-case automation for this. WAV sounds) and place them in the same folder as the executable/application. The only catch is that you have to obtain the original 3D Pinball files (like the. There's also an earlier release that has builds for ARM Windows, so you can play it natively on devices like the Surface Pro X. The game was supposedly dropped from Windows because a bug prevented a 64-bit x86 port, but Andrey notes in the readme file that the "decompiled game worked in 圆4 mode on the first try."Īndrey's reverse-engineered port works on modern Windows, Linux, and macOS, and pre-compiled versions are available for both 32-bit and 64-bit Windows. ![]() ![]() The fun started in late 2020, when Muzychenko Andrey ('k4zmu2a' on GitHub) started de-compiling the classic 3D Pinball game for Windows, fixing bugs on modern devices in the process. Related: Why Microsoft Dropped 3D Pinball From Windows (and How to Bring It Back)
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |