Repository navigation
feat(overlays): 50 pure-C ports, plus #69, #70 and #71 merged - #72
Merged
Merged
Conversation
Moves a moby along its facing by the given scale and pushes it back out of walls, then optionally snaps it to its path. Adapted from Lombyte's FUN_L06_002e9b60. The wall check is called through a second name with Lombyte's argument order, which sets up the call as retail does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The draw callback of the fading sprite effect that func_L06_0030D2A0 registers: projects the moby to the screen and draws one textured quad that grows and fades with its timer. Adapted from Lombyte's FUN_L06_0030bfa8. Its declaration now takes the moby. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tests whether the segment from start to end crosses the path with the given index, in the plane of the segment's direction. Adapted from Lombyte's FUN_L00_00261968, with the file's own vector type and second names for the callees, whose prototypes the file declares later with its own types. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Spawns a class 0x1A1 moby at a random angle and radius around an origin, moving along a direction, sized and slowed by how far the angle is from that direction. Adapted from Lombyte's FUN_L09_002efe48, with the parameters in this file's declared order and the moby fields under their names in include/moby.h. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A draw callback that covers the screen with 32-pixel tiles of a random part of effect texture 30, faded in by the moby's timer. Adapted from Lombyte's FUN_L01_00302438, with the screen size read through D_0013E15A + 0x4A6 as other files here do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Finds the first of the level's ledge spots whose sphere holds a point and whose owner reports a hit within reach of the hero, the reach depending on the hero's control mode, and returns the spot's owner, kind and hit. Adapted from Lombyte's FUN_L00_0020cd08. The parameters keep the types the file declares and take their real types inside. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Spawns one moby from the owner's spawn class at a position, sets it up from its class header, splits the owner's unkB4 count with it and returns it. When no moby is free it reports the owner's save id instead. Adapted from Lombyte's FUN_L09_0030a778, with the moby fields Lombyte names under their unkXX names in include/moby.h. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tilting platform on Pokitaru: its rot.y springs back through a damped spin, the hero standing on it tilts it toward his side, and a tilt past the level's limit knocks him into the falling state. Adapted from Lombyte's FUN_L11_0030eb90. Level 11's constants sit 0x90 above their US addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The draw callback of an Oltanis racer: two glow quads at its lamp (pvars 0xE0) and its tail (pvars 0x200), each turned toward a fixed point of the level. Adapted from Lombyte's FUN_L14_002d71f0. Its declaration now takes the moby. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The update of a spinning pickup on Oltanis: it removes itself when its mission slot is unset, otherwise floats and turns in place, and when the hero touches it starts a cutscene, then saves, queues its dialogue and a help message and removes itself. Adapted from Lombyte's FUN_L14_00305758. PAL shows dialogue 0x53E5 where the US build shows 0x53E0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The update of the Oltanis mine cart: a hit stops it, bursts it, and on the third one in level 14 plays a voice line once; then it either starts on its path, runs it, or waits out its timer and restarts at the path's first point. Adapted from Lombyte's FUN_L14_002fc0f0. PAL plays dialogue 0x53DB where the US build plays 0x53D6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bursts sparks around a moby: for each of the level's burst count, a random start near the moby and a random velocity along the given direction, then a level-defined number of sparks with random sizes, colours, lifetimes and fades. Adapted from Lombyte's FUN_L01_002ef770. Level 1's constants sit 0x90 above their US addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Picks the nearest box or mine (classes 0x3B1, 0x400, 0x515, 0x516) within 12 units and at the moby's height, from its target group or else the level's moby list, skipping ones already used, and marks the search done. Adapted from Lombyte's FUN_L06_002f2910, with its moby and vars types cut down to the fields this function reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Draws three nested glow quads around a point on Veldin's second visit, facing a fixed position, after resetting the point's rotation on the frame its timer comes due. Adapted from Lombyte's FUN_L18_002f9780. Level 18's data sits 0x80 to 0x90 above its US addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Draws a Gemlik beam from a point of the moby to the target in its pvars as a chain of textured quads one step apart, scrolling with the frame counter and fading over its last ten units. Adapted from Lombyte's FUN_L13_002ea8c8, with a plain field for the quad's reserved word. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…unctions The fifteen functions of this branch are exact now: their near misses and functional files go, with their rows in functional.tsv. nonmatching/README.md is regenerated with tools/nonmatching.py's index(). It also catches up with main on three rows: func_L09_00306DD8's staged file is gone, and func_L05_00317B68 and func_L00_001F8750 moved to functional/ and game/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerated with gen_progress_report.py --no-build after build_sn.sh, and --check says it is current. The fifteen functions of this branch are new. Main's totals said 4372 while its units already summed to 4374, so the total moves by 17. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The C as adapted used volatile to steer the compiler, which says nothing about what the original source did. Each matches as plain C: - func_L18_002FABE0: the four floats at D_L18_001625E0 are one vector, written in turn and passed by address, so they are an array. - func_L09_0030BB28: the three stores to the returned object go in the order 0x94, 0x68, 0x6C, and m needs no forced reload. - func_L01_00303810: coordinate needs no volatile at all. overlay_file_check: 3 files, 0 problems. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A moby on Aridia that rolls back and forth along its heading: state 0 starts it, states 1 and 2 speed it up to the level's limit and slow it down before turning, state 3 moves at full speed, and every state moves it through func_L00_002617B0. Adapted from Lombyte's FUN_L02_002dc6b0, written as a switch where Lombyte dispatches with gotos. Level 2's constants sit 0x90 above their US addresses, and frame_time_sq is read with MACRO_ADDR rather than through its literal address. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Draws a HUD panel that slides open with its element's open counter: a three-part frame, an animated icon, and a label whose colour pulses with the frame counter. It draws nothing while the hero is in vehicle mode 2 or state 50. Adapted from Lombyte's FUN_L00_0023a2d0, without its volatile on the display flag and with the two candidate heights as plain locals. Level 0's data sits 0xD4 to 0xE4 above its US addresses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Carried by OpenRAC tools/port.py from Lombyte's matched C (identical code at other addresses), each checked EXACT against its whole file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s matched now Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The hero's periodic probes on Rilgar: every third frame the wall in front of him (distance, angle, and whether it is a moby that blocks), every fifth frame a ledge in front while he is on the ground, and while he carries an object in control modes 0x15 and 0x16 it moves the object to his hands. Adapted from Lombyte's FUN_L05_0024bdc0, with the hero's fields under their names in include/hero.h and the ledge distance as a plain statement rather than a comma expression in the condition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The damage step of a Pokitaru chain enemy: links hit this frame wear down its health, and each time the health crosses a link's share the last link dies, takes the hit link's place, and the following links shift up in the chain. When no link is left it bursts, spawns three debris pieces and removes itself. Adapted from Lombyte's FUN_L11_00317c98, without the assignments Lombyte hides in a call's argument, which the bytes do not need. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An Orxon moby that shuffles a ten-entry order from the level's table on spawn and keeps it in its pvars, then while active draws through func_L10_002DBA50 when the hero's view reaches it and keeps its looping voice alive; state 2 releases the voice. Adapted from Lombyte's FUN_L10_002da2c8. The shuffle buffer and state 2's position share one stack slot in retail, which Lombyte's union reproduces. Separate arrays come within 8 bytes but place the position elsewhere, and arrays scoped to their case blocks change the size, so the union stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A breakable Novalis object: when something hits it with force, it plays its sound, throws 200 dust particles and 40 debris chunks in one of three colours around itself, and removes itself. Adapted from Lombyte's FUN_L01_002f9810. The first loop's locals sit in a block of their own, which lets the second loop reuse their stack slots as retail does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…unctions The six functions of this branch are exact now: their near misses and functional files go, with their rows in functional.tsv. nonmatching/README.md is regenerated with tools/nonmatching.py's index(). It also catches up with main on three rows: func_L09_00306DD8's staged file is gone, and func_L05_00317B68 and func_L00_001F8750 moved to functional/ and game/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerated with gen_progress_report.py --no-build after build_sn.sh, and --check says it is current. The six functions of this branch are new. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Plain C only: no __asm__ symbol aliases, SDATA or qcopy/qzero. Joins added for six split heads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Report for SCES_509.16 (e1ee2ee - 6da18e1)📈 Matched code: 83.46% (+1.07%, +39600 bytes) ✅ 80 new matches
...and 50 more new matches 🥀 4 broken matches
|
# Conflicts: # nonmatching/README.md # nonmatching/functional.tsv # progress/report.json # src/overlays/l18_veldin2/vendor_002F9D48.c # src/overlays/shared/help_0020CDF0.c # src/overlays/shared/vendor_002F7700.c
# Conflicts: # nonmatching/README.md # nonmatching/functional.tsv # nonmatching/shared/func_L06_0030D3E8.c # progress/report.json # src/overlays/l04_eudora/vuchain_00293490.c # src/overlays/l06_blarg/vendor_002FE5D0.c # src/overlays/l15_quartu/vendor_0029C1D0.c # src/overlays/shared/mobyutil_00261B00.c # src/overlays/shared/vendor_002B2A28.c # src/overlays/shared/vendor_002C96D0.c # src/overlays/shared/vendor_002D1168.c
# Conflicts: # THIRD_PARTY_NOTICES.md # nonmatching/README.md # nonmatching/functional.tsv # progress/report.json # src/overlays/l01_novalis/vendor_002FABE8.c # src/overlays/l10_orxon/vendor_00296BD8.c # src/overlays/shared/hud_00235960.c # src/overlays/shared/vendor_002A5218.c
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
One PR for today's overlay work.
__asm__symbol aliases,SDATA()orqcopy/qzero); joins added for six split heads.overlay_file_checkclean on all 41 changed files; progress 4482/5109 functions, 84.35% code.🤖 Generated with Claude Code