Posts for Sanqui

Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Just chiming in to say that to my best knowledge, this run does indeed not perform arbitrary code execution (ACE). Since people are being so skeptical of it, though, I wonder if somebody could made a Bizhawk fork that would report whether ACE has been performed on a given movie? The OAM DMA routine might require a special case but beyond that it shouldn't be that difficult. I would take a shot at it but running Bizhawk is troublesome on Linux so there's my excuse. I just imagine a "ACE verification" pass might be more convincing, since the rules would be, well, codified.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Hey, I was entertained. Nice routing. Appreciate the classic use of corrupted strings to enable walk through walls.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Missing an in-depth, frame-by-frame comparison between Power and Speed versions Well done though! Devs thought they were clever by swapping into SRAM.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Is my understanding correct that the linked video (from 2015) is an older TAS?
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
XTREMAL93 wrote:
Hi. I keep my longplay movie files here. It is mostly NES, SNES and Sega Genesis games recorded in Bizhawk (bk2/tasproj). Feel free to use them for machine learning purposes. Also I would like to know more about your ML projects
Hey XTREMAL93, thank you for your contribution! Slowly but surely, I'm building a collection. I finally managed to register on the World of Longplays forum, too (had problems with the verification email coming through), so I opened a thread there. As for my machine learning projects, so far I've trained a neural network to tell Sonic 1 and 2 screenshots apart, no matter how blurry or stretched they are. I've also built an auto-encoder for Sonic 1 screenshots, I describe how it works in this post. This is just the beginning though, I'm still learning. I have plenty of other ideas, like predicting actual data in memory or working with tiles as opposed to pixels for interesting visual output. However before I continue working on these projects I'll need multiple movie files of casual gameplay for each game I want to work with. YouTube playthroughs simply aren't enough.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Aran Jaeger wrote:
Actually I may be able to help you out on that, Sanqui. I have 100% completion gameplay SNES9X 1.53 movie files for around 400 to 500 Super Metroid (NTSC) hacks (for the SNES), so if that would be something that might help you, just contact me I guess. Someone that goes on Discord by the nickname barretrees had contacted me in 2018 about a very similar project on a by now published scientific paper (the PDF can be downloaded from here: https://dl.acm.org/doi/10.1145/3337722.3337728 ) of this kind before but in that case I think it was about automated ordering of gameplay moments based on certain RAM or visual information for the purpose of making a search engine for identifying and mapping search queries to moments in games, in my case mostly via video material (since I have corresponding videos for all of these movie files as well). Also, on the topic of completionist longplays (of broad varieties of games) that consist not solely of videos but are in the form of movie files for specified emulators, I have thought about the potential usefulness of that from a TASing perspective, too, because if one would as TASer be interested in a new game (either to make a TAS for it entirely or to test something out at some part of the game for which one has an idea, e.g. at parts late into the game) then it would be useful if a movie file would already exist (e.g. in the case that there is no existing TAS of the game yet) that one could fast-forward to quickly get to the point of interest.
Aran, that is amazing information you have given me. The paper you've linked is super exciting and on a topic I've given much thought in the past, and certainly ties into some of my projects... I'll definitely be reading it and possibly getting in touch with the authors. I also agree that a database of longplay movie files would be a useful resource for TASing as well as speedrunners and others. With a smarter way to seek or at least some manual chapter checkpoints, it's can be used as a savestate database on steroids. Personally I'm not too interested in Super Metroid but I see huge value in your movie files of hacks from a preservationist standpoint. I think you should definitely publish them :)
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Spikestuff wrote:
Why not ask directly at the source? WoL for retro games uses movie files from tool-assisted emulators (for the majority of them) and there's a chance that some of the members have kept their files.
I actually didn't realize World of Longplays had such a nice database on their website. Unfortunately, it is just a database of videos, when I check out their Sonic 2 longplay the original movie file is not on offer. That's a shame, I suppose I should give them a visit and convince them that publishing those would be a good idea :)
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Hi, I'm looking to use gameplay footage for machine learning purposes. There are a lot of longplays available on YouTube, but those universally suffer from compression artifacts stemming from video processing, plus I may want to use data from RAM to teach the neural network. TAS movie files are perfect for this purpose, because I can take original quality screenshots and log memory, but... TASes have the explicit goal of beating the game as fast as possible, while for machine learning you want as much footage of the game as possible, and those two goals are at odds. So my primary question is, does anybody know if there is a collection or database of movie files which are not TASes or speedruns? If not, I think it would be an interesting initiative to start.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
feos wrote:
Sanqui wrote:
Personally, I just see save corruption as dull. It absolutely has technical merit, but since it showcases so little gameplay, I think there should always be space for a NSC run to stand out, even from an entertainment perspective: most viewers may not be sated after a 3 minute run and want to see more. I also don't think it's difficult for people to see the technical difference. Forget infosec, everybody knows you shouldn't turn off the power while saving! It's far more straightforward to explain than ACE, that's for sure.
I can rephrase this as "save glitch is too short, and full run is too long, so neither is really entertaining". Does CCG feel like enjoyable gameplay then? Having at least one Moons level branch for gen2 sounds like a pro.
I like to think of it as a nice middle ground, yes, showcasing both superhuman gameplay and breaking the game with a cool glitch. And somebody who finds the gameplay in this run boring would surely find the full game even more boring. Full disclosure though that I was the one to invent the Coin Case ACE exploit and make the first RTA run, so I'm very much biased towards this category. Just putting forth my view though! :)
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Personally, I just see save corruption as dull. It absolutely has technical merit, but since it showcases so little gameplay, I think there should always be space for a NSC run to stand out, even from an entertainment perspective: most viewers may not be sated after a 3 minute run and want to see more. I also don't think it's difficult for people to see the technical difference. Forget infosec, everybody knows you shouldn't turn off the power while saving! It's far more straightforward to explain than ACE, that's for sure.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
From an entertainment perspective, I do gotta say I would like to watch Zipless more than a new character branch like this
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
I'm happy to see a TAS that does the Coin Case route justice now. I don't want to sound dramatic but it's always disappointing to me when a save corruption route obsoletes NSC. Call it bias :)
ovo
Post subject: Re: Needs more audience feedback.
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
ThunderAxe31 wrote:
This game is much less famous (and infamous) than its prequel, and in my opinion is also very low quality for a GBA game, mainly due to bland graphics and music.
I almost take offense to this. In my opinion the graphics in this game are very impressive, in particular the battles, featuring detailed backgrounds and animated Denjuu, are fast paced and dynamic. The GBA Pokémon games pale in comparison! As for the soundtrack, which, by the way, was composed by Minako Adachi who went on to join the Pokémon music team from Black/White 2 onwards, is top notch and thanks to the Natsume sound driver, beats most GBA games in sample quality as well.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
A multiplayer Sonic Advance 3 TAS would be something glorious.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
You should be able to walk directly down as soon as you enter Cerulean. It'll look a bit glitchy, but you'll arrive in Saffron just fine, and won't need to ever walk left.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
I made a mistake in my post on GCL and it's caused a lot of confusion. Apologies. A Lv. 8 Bulbasaur with 16 PP of move 2 and 32 PP of move 3 will work (not the other way around).
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
There's definitely arbitrary code potential in some of the "underworld" (kennel glitch) rooms that crash. I did check one at some point though, and it just jumped somewhere invalid in ROM. Also, you're gonna be hard pressed to actually find some memory manipulatable enough.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Paired versions of Pokémon seem like an obvious choice. You could even link them! How about Pokémon Red&Blue, complete pokédex in both (via trading), using the same input file for either game?
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
T'was my idea. I realized that we could reset for an useful trainer ID, much like the TAS does. With no reliance on Return and Wooper it was almost guaranteed to be faster than the existing WR regardless of the chances (number of resets). 2/65536 turned into ~200/65536 turned into 2/256 turned into 4/256 (1/64), and Dabomstew actually made the route and Shenanagans ran it and here we are. This is the second time I've ruined this category.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Awesome work. I especially appreciate your ingenious bootstrapping code. Kudos to FractalFusion, too.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Why did nobody tell me about this? Nice work. I don't really have any comments about this run, but I think a route which would pass on naming the boxes and do some extreme RNG manipulation to get down DVs and a trainer ID which would spell out a bootstrap would be faster. Also, there might still be some useful subframe-perfect save reset.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
FractalFusion wrote:
Sanqui wrote:
main.asm
Thank you very much!
main.asm doesn't contain everything; in fact, it's in the proccess of being split into smaller files. If you haven't yet, definitely check out the entire disassembly. There may already be interesting things in battle/, engine/ etc. About Pokérus, yeah, though the probabilities are really low, so I don't know how feasible it would be to manipulate. (I haven't tried RNG manipulation yet.)
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Zowayix wrote:
Apparently, in Gen II only, when you use a damaging move, if you have the Badge corresponding to the type of that move, the move's damage is multiplied by 9/8. This is in addition to the 9/8 boost that four of the Badges already apply to the user's stats. Can anyone with disassembly knowledge confirm this? These are the only two sites that mention this mechanic (although they are definitely quite reputable). (A site like Smogon, which does really detailed breakdowns of most battle mechanics, wouldn't mention this at all since it doesn't apply in multiplayer.)
This is true. In real-time speedruns, it's what makes Fury Cutter viable against the Azalea rival. It's handled by function DoBadgeTypeBoosts (currently in main.asm).
DoBadgeTypeBoosts: ; fbe24
	ld a, [InLinkBattle]
	and a
	ret nz

	ld a, [$cfc0]
	and a
	ret nz

	ld a, [hBattleTurn]
	and a
	ret nz

	push de
	push bc

	ld hl, .BadgeTypes

	ld a, [KantoBadges]
	ld b, a
	ld a, [JohtoBadges]
	ld c, a

.CheckBadge
	ld a, [hl]
	cp $ff
	jr z, .done

	srl b
	rr c
	jr nc, .NextBadge

	ld a, [$d265] ; move type
	cp [hl]
	jr z, .ApplyBoost

.NextBadge
	inc hl
	jr .CheckBadge

.ApplyBoost
	ld a, [CurDamage]
	ld h, a
	ld d, a
	ld a, [CurDamage + 1]
	ld l, a
	ld e, a

	srl d
	rr e
	srl d
	rr e
	srl d
	rr e

	ld a, e
	or d
	jr nz, .asm_fbe6f
	ld e, 1

.asm_fbe6f
	add hl, de
	jr nc, .Update

	ld hl, $ffff

.Update
	ld a, h
	ld [CurDamage], a
	ld a, l
	ld [$d257], a

.done
	pop bc
	pop de
	ret

.BadgeTypes
	db FLYING   ; zephyrbadge
	db BUG      ; hivebadge
	db NORMAL   ; plainbadge
	db GHOST    ; fogbadge
	db STEEL    ; mineralbadge
	db FIGHTING ; stormbadge
	db ICE      ; glacierbadge
	db DRAGON   ; risingbadge

	db ROCK     ; boulderbadge
	db WATER    ; cascadebadge
	db ELECTRIC ; thunderbadge
	db GRASS    ; rainbowbadge
	db POISON   ; soulbadge
	db PSYCHIC  ; marshbadge
	db FIRE     ; volcanobadge
	db GROUND   ; earthbadge
	db $ff
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Gambatte had three bugs that I knew of (and reported in #tasvideos). Only two are relevant to the Coin Case exploit, though. The GB CPU has a few undefined opcodes; they all do nothing but lock up the CPU. Gambatte ignored those, allowing exploits which would freeze up the real console. Furthermore, under certain conditions (not an expert on this one), the STOP instruction should lock up the CPU as well, but it was simply ignored in Gambatte. (This turned out to be an issue in runs of Gold when somebody reported new strats under Bizhawk, only for them to be revealed to freeze console two days later) The third bug has to do with MBC3 (and possibly MBC5 behavior); when bankswitching to bank 0, bank 1 should be accessible at 4000-7fff. Gambatte showed bank 1. This is observable in Pokémon Red, where the naming screen would have a glitchy tile in place of ED in the bottom right corner if the bug is present.
ovo
Sanqui
Any
Experienced Forum User, Published Author, Player (26)
Joined: 4/25/2011
Posts: 33
Zowayix wrote:
Looks like someone beat the current TAS record by about 4.5 minutes...in real time. http://www.youtube.com/watch?v=c9EfVBGK-GU tl;dw: A new Coin Case arbitrary execution strategy that involves renaming the PC boxes and only requires one use of the Coin Case.
Yup, that's (mostly) my work. Since I documented Coin Case in the first place, I figured I might as well do a route to beat the game faster than the TAS(es), in real time. You can see the current route over here. I have a very theoretical route for a TAS, too, but it's still in the works. It would involve extremely heavy RNG abuse. (And hopefully no boxes.)
ovo