groundzeros2015 I opened a file at random:void Em1eWeaponSet(cEm10* em)
{
Em10Work* w = EM10_WK(em); w->mot[41] = 0;
w->mot[42] = 0;
w->mot[43] = 0;
w->mot[44] = 0;
w->mot[45] = 0;
w->mot[46] = 0;
w->mot[47] = 0;
w->mot[48] = 0;
w->mot[49] = 0;
w->mot[50] = 0;
w->mot[51] = 0;
w->mot[52] = 0;
...
w->mot[62] = 0;
w->mot[63] = ARC(0x26C);
w->mot[64] = ARC(0x26D);
w->mot[65] = ARC(0x276);
w->mot[66] = ARC(0x277);
w->mot[67] = 0;
w->mot[68] = 0;
w->mot[69] = ARC(0x26A);
w->mot[70] = ARC(0x26B);
w->mot[71] = ARC(0x270);
w->mot[72] = ARC(0x271);
w->mot[73] = ARC(0x272);
w->mot[74] = ARC(0x273);
w->mot[75] = ARC(0x274);
w->mot[76] = ARC(0x275);
w->mot[77] = 0;
w->mot[78] = 0;
|
ricardobeat "byte-identical" is one of Claude's favorite expressions
|
> Tiberium The whole readme is extremely Claude-written, its
dense Claudish style leaks from every sentence ;)
|
> ronnier And what's wrong with that? Nothing. AI is an amazing
tool that has made me and many other more productive.
It'll only get better and stronger.
|
> > mikeweiss Yes and at some point it won't even need YOU
anymore.
|
wk_end From a preservation perspective, this is one of the least
useful decomps ever, given how committed Capcom is to
making sure RE4 is ported absolutely everywhere
(kidding!)Made using the leaked debug build and its
symbols, which shows how meaningful the work the game
preservation community that acquires and distributes these
things is.OTOH this is pretty off-putting:> Where the
compiler needed a particular source shape to reproduce a
register choice or a schedule and no natural spelling was
found, the construct is marked with a // COMPILER-DIFF:
comment (644 of them: dead tests, empty asm("") launders
and anchors, register T x asm("rN") pins, padding
statements).To me the value of a decomp isn't reproducing
the original bytes per se (we already have the original
bytes after all) - it's about reconstructing the
understanding of the original game as represented by
human-readable source code; getting byte-for-byte is just
an indication that you've gotten it right. Needing to add
a bunch of slop to force the compiler to match the
original output is actually just an indication that you've
gotten it wrong - and it's a demonstration of the danger
of Goodhart's law, especially as it applies to AI.
|
> brandonpelfrey You might find it interesting that I am working on
AI-driven decomp of a PS1 game not by matching bytes
but by having agents produce C code and test code.
Agents submit a C proposal to the harness, the harness
compiles their C proposal for the original function,
then the test suite provided by the implementer runs
against the original machine code and the compiled C
code version. The line and branch coverage of both
must be 100% and given identical inputs and starting
RAM, the function return value and RAM state and
RAM/MMIO read write sequence must be identical. This
is done with a small MIPS simulator which can run all
the tests extremely fast.The reason I'm finding this
is much faster than a traditional decomp is that while
it'd be nice for the bytes to match, finding the
perfect blend of compiler version, compiler args,
permitting variables etc to try and find the perfect
register assignments, etc is all very time consuming.
My ultimate goal is not a byte for byte match, that's
just one way to ensure correctness. I've found agents
are much faster and effective at reading the original
assembly and understanding what's going on then
writing semantically equivalent C.
|
> > Tiberium That's a great approach, I think byte matching is
just popular because it's extremely easy to test
in the end: are the bytes the same? While your
approach requires putting far more trust into the
tests.
|
> Pannoniae Correct, this is just hacks for stuff you didn't
manage to match exactly. Either that or your build
environment isn't the same. Sadly, there are things
which aren't really possible to reproduce in a
byte-identical manner, things like exact file layout
or variable declaration order, compilation order and
that kinda stuff. And they might cause small but
equivalent changes like different
inlining/optimisation decisions, so it's really tricky
to get it byte-exact.
|
> ErroneousBosh > given how committed Capcom is to making sure RE4 is
ported absolutely everywhereHeh. I was just looking at
the RE family on Steam. Nothing over a fiver.I guess
they really did make it more convenient than piracy.
|
> toast0 Certainly, it's better if you don't have these. But if
I was working on something like this, I think you
release when you have something that covers most of
the territory, and then refine it over time.Maybe
someone else comes and helps out here and there.
|
mikae1 I'm so emotionally torn about all the awesome
decompilation work done.Too bad all the cool decompilation
is happening for games on early 3D centric consoles. I say
this a Quake fanatic. Low res textures combined with that
blurry bilinear style filtering is a look that's not easy
to love. It's just a generational thing I guess.
|
> chocochunks RE4 isn't really an early 3D game. It was a late
GameCube title almost a decade after Quake.There has
been some 2D decomps too, Pokemon Red/Blue being the
biggest I can think of. I can also imagine they make
more sense for the 3D consoles where games tended to
be written in higher level languages than raw
assembly.
|
> toast0 I'm pretty curmudgeony on 3D games. The gamecube and
friends were the 2nd generation of 3D first game
systems and most games that sold well were not simply
am existing genre game but with 3D objects that will
poke your eyes out.Doesn't mean I liked them, or that
they wouldn't have been better as a 2D game. But IMHO
the graphics stopped distracting from fun games...
OTOH, I played plenty of games on the Atari 2600 were
the player character wasn't much more than a chonky
pixel :p
|
> saturn8601 Those games like for N64 never really emulated great.
I can see the motivation for those games to finally
get nice gameplay on other platforms.
|
sharktheone I hope that the CC0 license doesn't make any problems. It
might though since decompilation does not remove the
copyright of Capcom. Maybe just hope that they just don't
care anymore
|
LaurensBER Despite all "hate" against AI in the (retro)-gaming scene
I'm genuinely excited to see these kind of projects (not
sure if this one involved any kind of AI) and
emulation.From a technical perspective emulation is
absolutely amazing, it requires deep technical knowledge,
an excellent understanding of the source system and the
optimisations are on another level.
|
> qwerpy I browsed through a few random files in that repo.
There are high-quality code comments everywhere I
looked. AI is the perfect tool to do this sort of
thing. Can you imagine a human sitting down and
documenting a million lines of decompiled code from a
dev team 20 years ago?Boggles my mind that there is
hate for AI in retro-gaming. It's all about making
existing things work. If it works and plays well, who
cares if Claude did it in an afternoon or some human
who spent a year of his life. In fact, I'd rather have
Claude do it. Humans will get bored, get involved in
community drama, disappear, etc. Unfortunate for the
humans who are seeing their life's contribution to the
scene made obsolete by a few kilowatt-hours in a
datacenter, but good for the rest of us.
|
> ronnier I really think the hate is just masked jealousy, now
project managers, tpms and line managers can submit
rather substantial code. That wasn't possible before
and it took away some value from devs (I say this as a
dev of more than 25 years). I watch PM fix issues now
instead of waiting for a dev. I understand the anger
but these tools are not going away
|
> > 12397 Of course it was possible before.You could put an
Einstein paper on a photocopier, mask the author,
put your name in the place and publish. Except
everyone would have thought you are an idiot.You
could clone the Linux kernel, erase all copyrights
and release under Idiux. Except everyone would
have thought you are an idiot.Now that there are
laundering machines financed with unlimited
printed and previously stolen money a large number
of developers affirms and praises the idiots.
|
davikr How many tokens and which models were used?
|