Posts for gngbng

Experienced Forum User
Joined: 11/7/2012
Posts: 23
approx_access_time = magical_seek_coeff * abs(dest_offset - cur_offset) + 30 / rpm ? Just an idea. I'm not a rotational media scientist.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
RachelB wrote:
Dolphin has a widescreen hack that makes games render at 16:9 (or any other AR) without stretching, but it doesn't work in every game.
Last time I checked, TTYD was one of the few games that worked really well with the widescreen hack, but this was before the hack was even part of Dolphin and I didn't do nearly enough testing.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Slowking wrote:
That graph shows the velocity while charging up a superswim, not while superswimming. While superswimming the speed decreases linearly.
Ah, that's what I meant. I was a little mixed up about the semantics.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
z1mb0bw4y wrote:
I'd MUCH MUCH MUCH rather someone actually start and finish a run of this game than have it forever in limbo while we wait for someone to program a "superswim bot".
That reminds me. There's something I've been curious about in regards to frames spent superswimming vs. velocity. As far as I know, that graph represents the velocity while superswimming. But what about the velocity after superswimming (e.g. a frame or so)? Is it more or less the same? Is it easier to model?
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Slowking wrote:
Abahbob wrote:
The time the door cancel saves is minimal, but it's so much cooler to spend a lot of time in fadeout, and maybe it'll mean the TAS will get a fadeout-less encode. Even though I doubt it because I don't know how TASVideos handles that situation.
99% sure the default encode here can be one without fadeout. The N64 encodes look way better than those games ought to look due to quite some upscaling, anti-aliasing, etc. So visual trickery is allowed in encodes.
We're talking about hacking out drawing functions here, not upscaling or AA.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Blunderstab wrote:
Not to be impatient, but how close to complete would you estimate this run is right now?
If you go by run time, at least 8%.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Game app emulation wouldn't be particularly difficult. Stuff like graphics and audio can be handled through HLE of OpenGL/AL calls, from what I can tell.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Abahbob wrote:
What is the symbol for door cancel mode? I can't seem to find it myself.
daPy_lk_c::dProcDoorOpen_init() modifies an instance variable (which has no symbol) that contains collision/movement flags for the player. See the code I posted earlier.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Abahbob wrote:
I mean, I want to know how you can tell what they do. Like how do you check the code at all. Where is it, what program, etc.
Oh whoops. Dolphin's debugger and IDA Pro. I'm using the symbol maps (function and static variable names) that the game ships with which makes it significantly easier to figure out what's going on.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Abahbob wrote:
How are you able to tell this? I would definitely be interested in looking into this type of thing.
Both functions share the following code for setting the player collision flags.
lwz       r0, 0x494(r31)
ori       r0, r0, 4
stw       r0, 0x494(r31)
lwz       r0, 0x494(r31)
ori       r0, r0, 0x4000
stw       r0, 0x494(r31)

; this.collision_flags |= 0x4004
Provided you could somehow trigger this type of "large damage" arbitrarily, barrier skip would be trivial.
One thing I want to look into is superswims. The swimming pattern is starting to look like it's based off the animation, which is based off the speed. I'm thinking it's a natural function to create the flow with big and small strokes normally.
I'm not entirely sure how the swim movement code works. There's definitely some vaguely-sinusoidal "stroking" to the velocity though, and the period of the stroking is based on the velocity (faster is shorter).
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Also, there are only two functions that enable this "low-collide" mode: door open (of course) and an unknown case of "large damage". Not very promising in the barrier skip department.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Not sure if this is very useful, but here's a Gecko code that forces broken door physics mode:
82200000 003CA410 # 003BD910 on JPN
86000000 00000494
86210000 00004004 # 00000004 for broken slopes only
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Abahbob wrote:
6166 frames of continual superswimming: https://docs.google.com/spreadsheet/ccc?key=0AmVhHgQ1lALLdExsMTdrTDJTUnRpZFU1ajVHVGdTMFE#gid=0
Is this only velocity on one axis? Getting the magnitude of velocity would be more useful.
Post subject: Amazing Penguin
Experienced Forum User
Joined: 11/7/2012
Posts: 23
A somewhat-forgotten action-sorta-puzzle game released by Natsume in 1990. I started working on a run, but optimization has proven to be quite difficult with this game. There are different routes you can take to complete a room, but the fastest one isn't obvious. I tried a few different routes and ended up ~60 frames faster than the video I linked.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Abahbob wrote:
How's http://pcpartpicker.com/p/pJuy Will this work decent for gaming at all? And will I be able to stream TASing?
I would suggest removing the cooler (stock is acceptable), SSD (costly for their size and reliability), sound card (integrated is everywhere), MAYBE the optical drive, and Windows. If you want it to be really affordable, go for less memory.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Should have used the ending from a totally different game as the final payload.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
How are you optimising superswim, if at all?
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Welp.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Turns out the heat shimmer effect is controlled by a class called daYkgr_c, rather than the more obvious dPa_kagero (kagerou = lit. "heat haze"), which is a different particle effect. daYkgr_c has a static member variable called m_alpha_flag. Setting it to 0 will cause the effect to fade out. Therefore: (offset is 0x803E9FFA in NTSC-J) Edit: apparently, this is already on the WW page on the Dolphin wiki. Welp!
Experienced Forum User
Joined: 11/7/2012
Posts: 23
The heat shimmer effect in DRC is basically a particle system anchored to the camera. Only way I've found of disabling it so far is by patching JPADraw::drawParticle (0x802690E0 in NTSC-J), but this disables every other particle system as well.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
I'm guessing that chest darkness is handled by darkProc() in d_a_tbox.rel (treasure box?). A bit difficult to patch directly since it's in a relocatable module.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
Slowking wrote:
Does this patch also prevent chests from turning the world dark or just doors, btw.?
I'm fairly certain it only prevents full-screen fade-out from most doors. I'll probably look into chest darkness.
Experienced Forum User
Joined: 11/7/2012
Posts: 23
I guess I'll dump this info here. To remove the level transition/door fade-out (for door cancel):
  • In the games list, right click whichever version of the game you are using.
  • Click "Properties".
  • Go to the "Patches" tab.
  • Click the "Add..." button.
  • Enter in these values, depending on which version you are using:
    • GZLE01 (NTSC-U)
    • GZLJ01 (NTSC-J)
  • Press "OK".
  • Make sure the patch is checked on and close the game properties.
Are runs permitted with this, though?