Posts for jlun2

Post subject: GBC memory regions
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
http://www.chibiakumas.com/z80/Gameboy.php Compared to the above, how does one interpret the regions in the hex editor/RAM watch? For instance, if one wants to check the C000-CFFF "4KB Work RAM Bank 0 (WRAM)" region, how does one do that on BizHawk? WRAM doesn't even go up to C000. The top of the hex editor says: "GB WRAM 0x8000 addresses" The left side has some numbers that range from 0x0000-0x7FF0. Do I add the top number (0x8000) with the one in the side to get the address? How about the "SP" register in the "Trace logger"? For instance:
366C:  F5        PUSH AF             A:bc B:00 C:6e D:c0 E:63 F:50 H:c0 L:af LY:90 SP:cfe3  Cy:1041059548
Which region is 0xCFE3 in BizHawk hex editor?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
bbbbbbbbba wrote:
For that matter, how many runs are there that might be improved in more "conventional" ways by subframe inputs? For example, if a game polls the controller input multiple times in a frame and assumes that it does not change in the span of a few instructions.
The only time I recall reading this for non subframe reset was Pokemon G1: #5034: MrWint's GB Pokémon: Red/Green/Blue/Yellow Version "Coop Diploma" in 3:48:04.10
This run uses BizHawk's dual GB capabilities, and runs on BizHawk 1.7 and later. Due to how dual GB is implemented in BizHawk, it was unavoidable to use the new frame timing introduced in BizHawk 1.7. This frame timing can cause issues that have been discussed before, but being forced to use it gave me some more insight in which problems actually occur. The main issue arises when the joypad input is split between frames. The Gameboy polls the joypad in two stages with 4 bit each, one for the directional keys and one for the buttons. If they end up on different sides of the arbitrary frame boundary, weird things happen. You need to press your directional keys on a different frame than the buttons, even though they are used at the exact same time. In the worst case, multiple joypad polls happen on the same frame, so there is no input frame for you to do the inputs you want, and you need to wait frames until it fixes itself or work around it by using a different set of inputs that doesn't run into this problem.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Nothing against the run, but how did you figure out what distributions were impossible? That sounds like a fascinating read.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I don't even know what's this game about. Is it like Nintendogs? Does it even have an ending? Are you describing a "fastest death" run, or does dying give the ending? Your video gives "An error occurred. Please try again later. (Playback ID: k9Dtu0EevwUVtP6E) Learn More", and there's barely any info on the game in the post.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
How many games out of the NES library have the DPCM bug? To what extent do other games affected by the DPCM bug are broken? It was mentioned in discord that SMB2(U) at least requires some setup before spamming inputs for it to work. Will other games be more elaborate, or roughly around the same length? There was also discussion there on future runs; what is the difficulty of pulling something off like this in a completely different game with this bug? Edit: Oh, and I found reading the submission notes more entertaining than the run. I do hope if more runs like this get made, they also get submitted; I know it may be controversial, but at least it serves as a record of sorts.
Post subject: Re: All of the fixes and additions done.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Shinryuu wrote:
EDIT. So W1 = 144 frames faster, W2 = 120 frames faster, W3 = 232 frames slower = we are still 32 frames faster vs. old route, but 144 frames faster at the beginning of W4 with every improvement included.
Alright, thanks!
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
warmCabin wrote:
The old run syncs perfectly to the very end. It's possible that I screwed something up converting the new movie to bk2, but I dunno...
Oh. Huh.
warmCabin wrote:
Yup, that's right. They used Item 2 in Wily 1 instead. It saved a couple weapon switches and refills throughout the run, which was worth it in the end.
Shinryuu wrote:
We used item2 at the beginning of Wily1 and it saved a good amount of time. It saved us from a couple weapon switches and we used a different strategy at Wily 2 as well. We refilled at Wily 3 instead to take the advantage to get as much item1s possible. We saved two item1s from Wily 1 but used them after we we're supposed to refill at Wily 2 but that made it faster and we didn't have to change to the item2 at all. Wily 3 is slower because of these changes but when I enter Wily 4, I gain 32 frames instead doing the old setup like we did on a published one! Wily 4 is 68 frames faster because I updated my position at the top and I did a long zip instead like people do on RTA runs. Wily 5 is faster because I fiddled with subpixels and manipulation and got a frame and I found a new strategy for Quickman and I gained 28 frames from it.
Oh, so the route spans all Wily worlds? As in, this route saved 144+10+68+29 = 251 frames total, but costs 232 frames. This means the new Wily route saved 19 frames in total during the entire Wily 1 to Wily 6 right? Sorry for the confusion, I'm not familiar with this game.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Found a bug in RAM watch. 1. Open a game 2. Open RAM watch 3. Make a new entry as 4 byte hex. 4. Poke the value to FFFFFFFF 5. Edit the entry back to unsigned. The value will now display "4294967295" 6. Poke the address again. Without changing the value, try clicking enter. It should give "An error occurred when writing Value." Tried it on both GBA and GB cores. Used BizHawk 2.3.2
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
warmCabin wrote:
Regarding the console verification thing: the run obviously syncs on FCEUX, but it desynced when I converted it to run on BizHawk. It desyncs at the third dog in Wood with NESHawk, and desyncs almost instantly with QuickNES. None of us have the hardware to test it for real, so we can't say which emulator is the most accurate as of right now.
Would it be fine to check if the previous run also desyncs on BizHawk? It was done on FCEUX as well, and console verified. So it if desyncs (which I havent tried yet btw) on BizHawk 2.3.2, can it be said FCEUX is more accurate with respect to this game? Edit: Also why was Wily 3 slower again? Am I correct on intrepreting as "Wily 4 68 frame gain only works if 232 frames were lost in Wily 3?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Given numbers in Lua are only 64 bit for BizHawk, how does one "simulate" signed 16/32 bit operations? I'm supposed to do this:
Shift the 11-bit signed offset of the instruction left one bit. Sign-extend the result to 32 bits Adding this to the contents of the PC (which contains the address of the branch instruction plus 4).
However, using
bit11 = bit.check(result,11) and 1 or 0
if bit11 == 1 then
		for i = 13,31 do
			result = bit.set(result,i)
		end
end
Gave a 64 bit binary number (or in another words, a very large number). How would I set the number size in lua, or at least simulate a smaller number size? Edit: Example: Number was 0x7F8 (0111 1111 1000) Shift left gives 0xFF0 (1111 1111 0000) Sign extend this (making bits 12-31 == 1) on a calculator gives: 0xFFFF FFF0 (1111 1111 1111 1111 1111 1111 1111 0000‬) which is -16. In lua, it instead gives 4294967282 (32 0's followed by 1111 1111 1111 1111 1111 1111 1111 0000). I know I can naively just make it extend to 64 bits, but is there a better way to do that independent of the underlying default lua integer type? Edit2: Right now, came up with this thing:
local result = bit.lshift(Offset11, 1)
if bit.check(result, 11) then
	result = bit.bor(-4096,result)	--writing as 0xFFFF FFFF FFFF F000 doesn't work
	result = result - 0x100000000	--??
end
This looks incomprehensible in comparison to sign extension. Any better generalized way to do this? Generalized as in works for other integer sizes.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
dekutony wrote:
http://spiraster.x10host.com/LADXWiki/index.php/LADX_Any_Percent So apparently, Gambatte is banned in any% runs because it doesn't accurately replicate the effects of the ACE glitch. It seems the only emulator that does is BGB. Current WR: https://www.youtube.com/watch?v=qNBRQNkhkXg
This is kinda old, but does anyone know if Gamebatte works with this glitch now? The Pokemon runs uses it, and they seem console playable.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Nice. Are you willing to try and obsolete the Wario Land 2 100% TAS eventually?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
The VBA-next tracelog gets 2 instructions wrong:The lines are as follows:
08102FB7:  0000F041  ORR     r0, r1, #0                r0:00003A0D r1:085031B8 r2:00000388 r3:030034A4 r4:00000190 r5:084FE9F0 r6:00000000 r7:00000000 r8:00000000 r9:00000000 r10:00000000 r11:00000000 r12:0300040C r13:03007DD8 r14:0810F571 r15:08102FB6 r16:0000003F08102FB9:  0000FD74                                    r0:00003A0D r1:085031B8 r2:00000388 r3:030034A4 r4:00000190 r5:084FE9F0 r6:00000000 r7:00000000 r8:00000000 r9:00000000 r10:00000000 r11:00000000 r12:0300040C r13:03007DD8 r14:08143FB8 r15:08102FB8 r16:0000003F08144AA3:  0000B570  PUSH    {r4-r6,LR}                r0:00003A0D r1:085031B8 r2:00000388 r3:030034A4 r4:00000190 r5:084FE9F0 r6:00000000 r7:00000000 r8:00000000 r9:00000000 r10:00000000 r11:00000000 r12:0300040C r13:03007DD8 r14:08102FB9 r15:08144AA2 r16:0000003F
The ORR seemingly does nothing. After looking at thishttps://ece.uwaterloo.ca/~ece222/ARM/ARM7-TDMI-manual-pt3.pdfit appears the instruction (0000F041) is supposed to be "Long branch with link". Similarly, instead of being blank, (0000FD74) should be another "Long branch with link". This is documented on page 41 of the pdf link, and the effects on r14 (link register) seems to be consistent with this, rather than ORR r0, r1, #0Edit:
08102FC1:  0000FBC8  SMLAL   r0, r0, r8, r0            r0:00002048 r1:00000191 r2:03005E10 r3:8E5C88A7 r4:00000191 r5:084FE9F0 r6:00000000 r7:00000000 r8:00000000 r9:00000000 r10:00000000 r11:00000000 r12:0300040C r13:03007DD8 r14:081DCFC0 r15:08102FC0 r16:0000003F081DD753:  00002301  MOV     r3, #1                    r0:00002048 r1:00000191 r2:03005E10 r3:8E5C88A7 r4:00000191 r5:084FE9F0 r6:00000000 r7:00000000 r8:00000000 r9:00000000 r10:00000000 r11:00000000 r12:0300040C r13:03007DD8 r14:08102FC1 r15:081DD752 r16:0000003F
SMLAL should be "Long branch with link" as well.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I recall there were talks about asm.js here: Thread #15929: TASing through a web browser with asm.js Would it be possible to use that to run games on browser, then this to TAS them?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
https://www.youtube.com/watch?v=d_3hkYuEvgM https://www.youtube.com/watch?v=jA9fTzuwzjI Following these 2 playthroughs always seems to somehow either 1. Kick me out of bounds as soon as I enter the basement the first time 2. Warp me back to the washroom as soon as I obtain the map and defeat the chairs in the room. After messing around, it appears to be caused by saving in the washroom. This happens on both cores (vba-next, mgba) as well, so I have no idea why this is happening compared to the youtube video guides. Additionally, there seems to be a flag triggered in those videos that prevent Skull from constantly talking to you when you change floors. I need to investigate that, since a seeming change from the videos route causes Skull to constantly talk every floor change. Edit: Skull does not appear to be the room flags. Starting from the washroom: 1. Refuse saving (B or A doesn't matter) 2. Grab key 3. Unlock door in the room east of washroom 4. Glitch to downstairs This fails to warp me. This triggers Skull speech. 1. Refuse saving 2. Skip key 3. Skip unlock door in the room east of washroom 4. Glitch to downstairs This fails to warp me. This triggers Skull speech. 1. Save the game 2. Skip key 3. Skip unlock door in the room east of washroom 4. Glitch to downstairs This warp me. This triggers Skull speech. 1. Save the game 2. Reset the game (or menu and quit) 2. Skip key 3. Skip unlock door in the room east of washroom 4. Glitch to downstairs This does not warp me. This does not trigger Skull speech. Additionally, even after obtaining the flashlight, then backtrack to save and go downstairs, it does not warp me, nor trigger speech. This leads me to believe the runs were potentially spliced. Edit: Double tap sprinted up a stair. Then held B and tried to move up right pass a corner. The game then forced me to walk OoB. This occurred on the roof. This sets the address ptr + 0xB8 to 1, causing movement to get locked until an item is used. I have no idea what situations set this however; during door transitions and cutscenes it remains 0 like everywhere else.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm surprised that despite the backtracking to setup the pipe glitch, it would still be faster to use it than to beat normally. What happens if you tried it on a boss stage? I presume there's no way to quickly reach a boss like this OoB?
As stated in the previous TAS by andymac, the pixel trick allows Mario to move an extra pixel every 8 frames. There was talk of a more restrictive, yet better pixel trick that yielded two extra pixels every 8 frames. Since it is both visually unappealing to be constantly jumping and very restrictive, I decided not to use it at all times. There are a number of instances of it throughout the run, but only when it was convenient to do it. It also turns out that jumping constantly leads to more instances of lag, so it was overall simpler to use an outdated version to save on lag and avoid tedium.
So does this mean you avoid using it when it doesn't save time? Edit: Would also be very curious of a console verified version just because if anyone who has a gameboy player also has this game.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
KennyMan666 wrote:
If I recall correctly, in a non-glitched run, you need to be level 25 to wake up the dragon in Magicant so you can fight it. Defeating the dragon gets you one of the melodies required to finish the game.
Alright. Thanks. I wonder if the grind could be made a bit faster then.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Nice. Will you be attempting to obsolete the other run in the future? Edit: How does the RNG work in this game? Is it only incremented by delay? Also why are the glitched runs relatively low leveled at the last fight compared to the (U) version? That version grinds all the way to 25, yet this run survives just fine at 13. Would it be possible to get lower, or the other NPCs would be too strong?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Amaraticando wrote:
Finally, this game end glitch is valid on console. Hopefully, the last one in this category. Yes vote.
I would love to read one day on what types of payloads are console-able, and what makes them not, especially since a number of popular SNES games (EarthBound, Metroid, Super Mario Worlds, Final Fantasy) have ACE. What do they have in common that makes them not possible (including past movies)? Also do the movement tricks mentioned apply to other categories?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
feos wrote:
That's a thread with lots of different posts, and the quote is quite ambiguous regarding exact steps. What steps are you planning to execute exactly?
Late reply, sorry. While it doesn't affect me (right now), I only posted this for future reference since apparently having no memory card at the start is faster for Paper Mario: The Thousand Year Door: https://www.speedrun.com/ttyd/guide/9ehp0
Note Leave the memory card out to skip the autosave at the start of the game. There are no autosaves after this so you can put it in any time after the curtain pulls.
The memory card must then be inserted later, since saving is needed (to prepare for the super jump glitch). Other games may be more elaborate, like mentioned in the thread:
So you want to a) load a savegame b) remove the memory card from the console c) restore the memory card to a previous version (with no save file) d) reinsert the memory card ?
I tried searching for something like this on whether that is fine, and can't find it, so posted here.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
This run was nice. The gyms and rival always messed with me, so it was really fun seeing Raikou sweep them up so fast. Although I'm aware for those who have no idea/never had a problem would probably not enjoy it as much. Yes vote.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Do you know anyone with that Gamecube Gameboy player setup mentioned in those Pokemon TASes? Seems like it's possible to console verify what might be errors and what may be real.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
For future reference on a topic I was reminded of: http://tasvideos.org/forum/viewtopic.php?t=14067&highlight=
Would this be allowed? The benefit is that when overwriting a save file the game gives an extra prompt asking if you want to overwrite it. Coping the memory card right after formatting it, and then copying it back after each save would avoid this. This is useful where save warps are used, and once a file is loaded it's never needed again. Since memory cards can be removed and files can be copied using freely available methods, this could even easily be done during a real time speedrun.
Also, taking the memory card out before save points to avoid saving message, then placing back in to prevent "You do not have a memory card" message later, multiple times throughout a run.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
TiKevin83 wrote:
Streaming arbitrary data through an external port: this should be allowed depending on entertainment value. A huge number of games are vulnerable to ACE, so if you're going to pick a game to do an ACE movie with it should be for a very good reason. It should be allowed more generally in Vault unless movies are way too similar on the same console even across games. The controller port isn't the issue here.
Hey, if you know any examples not listed in here, please post; trying to make a list of them (although I'm not sure if the wii/3ds/swtich exploit counts).
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"