Posts for ThunderAxe31


Post subject: Re: Waiting for you to get back to me about railway signals.
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Spikestuff wrote:
Just mainly been observing this topic. Isn't FractalFusion's TAS falsified due to how he set his GBHawk's core up by setting Equal Length Frames?
I've already checked. FractalFusion's run is faster because he used a different Trainer Name, which is faster to insert for the (v1.0); implementing the same improved trick on the (Rev A) resulted in an improvement, but not reaching his time, due to the different Trainer Name necessary for having an equivalent effect.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
FractalFusion wrote:
ThunderAxe31 wrote:
Great job. Why didn't you submitted it?
Because I didn't care to submit it and there wasn't much interest in it when I posted a VBA version of it two years ago.
Well, I've got interest in it. So please submit your movie, and then I will cancel my submission right away. Since the same trick can be executed faster on a different version of the game, my submission does not make sense anymore.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Mothrayas wrote:
FractalFusion wrote:
By the way, how many frames did you have to delay to get one of the two necessary trainer IDs?
7 frames in the current submission. (Five frames delay before soft-reset, then two frames in the menu)
In the movie file I provided in my last post, the total delay is 3 frames, 2 in main cutscene and 1 in title screen, just like in your movie (FractalFusion).
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
FractalFusion wrote:
I made this a couple years ago on Pokemon Red JP V1.0, getting a final time of 3602 frames: http://tasvideos.org/userfiles/info/35593301208919904 Note that it was done with the Equal Length Frames setting as False (GB -> Settings -> Equal Length Frames -> False). I don't know if this, or the V1.0 version, changes anything. IIRC the V1.0 version was slightly different in how it handled saving.
Great job. Why didn't you submitted it? By the way, I'm a bit confused. In the userfile page you wrote: "also known as "Pocket Monsters Aka (Japan) (Rev A)" ", but the (Rev A) version is actually a different ROM. So to be sure, here are the respective SHA1: Pocket Monsters Aka (Japan): 0623AD12F48C259447980D68BD85DDBF8204B2CD This is relative to the movie you posted. Pocket Monsters Aka (Japan) (Rev A): EF74C79CDED14204AC79E77F4964D9CB25003120 This is relative to the movie in my submission. Anyway, I managed to implement your method in my (Rev A) run, improving it to 3632 3628 frames: http://tasvideos.org/userfiles/info/35595312275440046 Which is still slower to your movie. So I wonder how this matter should be handled? Can my new file be replaced in the submission or should be created a new submission for the v1.0 of the game? Also, does this mean that I'm not going to be mentioned as author of the run?
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Mothrayas wrote:
ThunderAxe31 wrote:
Edit: I just managed to save 3 more frames, can someone please replace the submission file with the new one? http://tasvideos.org/userfiles/info/35558927057709654
Improved by 21 more frames (better luck manipulation at the start): User movie #35573467782282346 If you're fine with it, I can replace the submission with this (with myself added as co-author).
I gladly accept your contribution, proceed!
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Sorry, I was not sure since Japanese versions are published in a separate group: [1639] SGB Pocket Monsters: Green "warp glitch" by p4wn3r in 04:24.37 Edit: I just managed to save 3 more frames, can someone please replace the submission file with the new one? http://tasvideos.org/userfiles/info/35558927057709654
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
feos wrote:
Such a tool doesn't exist yet. Gnash is shit, and flashplayer doesn't run in hourglass.
I know. That's why I said "I'll wait" and "I'll try to work out something".
Ford wrote:
I sorta feel like this wasn't a good game to TAS.
I feel the same, so I already know this may get rejected. Also, in the case it gets accepted, it would easily get obsoleted on the day a run done on the actual Flash version is made.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Post subject: Re: #5317: ThunderAxe31's Windows Pause Ahead in 00:59.42
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
arandomgameTASer wrote:
Radiant wrote:
Although I enjoy the run and the mechanic, I really think you should run the full version of this game. Your version has nine levels and no real ending; it feels more like a beta of the actual game. The full version has about 20 levels, a boss battle, and a secret extra-hard ending. https://www.youtube.com/watch?v=RV659Tg8BoQ
The full version is also done in Flash, so....
That's why I would wait to have some Flash-oriented rerecord tool. I'll try to work out something in the next months... And yes, I already know about the relative forum topic.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Spikestuff: I just wanted to try all the possible routes. Btw, thanks for the help so far. Warepire: I'm sorry to tell you that in the end I only saved 7 more frames on level 3, and still wasn't enough to reach the last moving platform early. Here is the new incomplete movie file, if someone wants to try to do better: http://dehacked.2y.net/microstorage.php/get/613842485/Crash%20Bandicoot%20-%20The%20Huge%20Adventure%20%28USA%29_level%203%20incomplete%20improvement_%232.bk2 And as promised, here is the full Warp Room 1 encode on Youtube: Link to video Minor new: I decided to change video naming of my streaming encodes, in order to avoid numeration inconsistences.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Warp Room 1 complete. Movie file: http://tasvideos.org/userfiles/download/35339449030133290 I decided to not save Aku Aku masks because it would make waste too many frames after hitting Dingodile for the third time. Still, I was forced to hit Dingodile without getting hit myself once, and this forced me to waste 2 frames. I tried a lot to, but I found no ways to avoid this. Having some hitboxes script could bring to a solution. Lastly, note that at some point I started filling the waiting times with gargabe, because I got very bored at some point. Feel free to implement some better stuff if you want, just be sure you don't waste any frame. Full warp room Youtube encode coming soon.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
<ThunderAxe> is it possible to change forum nickname? <fsvgm777> Bug Moth about it. * Mothrayas bzzzt <ThunderAxe> fsvgm777: Moth is a bug. <fsvgm777> Ka-zing! * Mothrayas stings Masterjun <Mothrayas>"plot" also has the same meaning as a horse's ass <Masterjun>and "tolp" isn't actually a word despite looking like it could be one <Mothrayas>and "Masterjun" isn't actually a person despite looking like it could be one * Masterjun stings Mothrayas * Mothrayas ow <ThunderAxe>why not TASing blindfolded then? <Masterjun>please no, we have enough of those as submissions <TotallyFerret>Thunder: You'd mash random buttons, play it back, and hope something good happens? <ThunderAxe>that's how I TAS normally. <ThunderAxe>ahahahahahahahah <Masterjun>TotallyFerret: see, ACE is just the advanced form of that <ThunderAxe>and what's the next? <Warepire>Let's use a DeLorean =P <ThunderAxe>whooo that sounds coooool <Warepire>Good luck fitting one on 16x16 pixels <ThunderAxe>don't understimate me. <Warepire>It was mainly a joke, please don't try to make that icon ThunderAxe <ThunderAxe>ok ahahah <Mothrayas>do it anyway * ThunderAxe head explodes <SpikedSurface>ThunderAxe: When it's all in one full succession it makes sense. <ThunderAxe>SpikedSurface you know, I always have hard times trying to understand what you say. <SpikedSurface>k. <Mothrayas>ThunderAxe: you're not the only one lol <ThunderAxe>it probably is because I'm not a native english speaker, but it mostly appen with you. <SpikedSurface>Being Native, I still confuse a lot of people. <ThunderAxe>Moth: that's what I wondered, but I didn't want to ask. <ThunderAxe>maybe you're confused yourself. <Mothrayas>it takes five questions on average between Spike posting something to me and me actually being able to decipher it <SpikedSurface>Yup. <ThunderAxe>oh so it wasn't my dumbness' fault. <SpikedSurface>Like the reasoning behind Mothrayas' fridge running. <ThunderAxe>please stoooooooooooop <Mothrayas>not even going to start parsing that
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Level 3 complete. Movie file: http://tasvideos.org/userfiles/download/35207173251842538 Encode coming very soon. Edit: here is the encode: Link to video and a glitch I discovered: http://imgur.com/4G6AY43 Edit2: I tried to use the above mentioned glitch to save time after jumping on the bird, as suggested by Warepire, and it worked. The problem is that I was forced to wait for the last level platform to move, and lose all the frames gained. Tough I was unable to solve the problem, maybe a way exists, I really don't know; if you want to try, you can work on this movie file: http://dehacked.2y.net/microstorage.php/get/1301354096/Crash%20Bandicoot%20-%20The%20Huge%20Adventure%20%28USA%29_level%203%20incomplete%20improvement.bk2 Good luck.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Post subject: Level 2 complete
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Link to video Forget everything you know about horizontal swimming. Press B 2 frames before Crash's angle gets perfectly horizontal and... Surprise! By cycling this as fast as possible, I managed to get an average speed of 826. Also, I've discovered that you can touch the boxes' edge in order to gain speed for a moment, just like in ground levels. But underwater, depending of the case, this may make you lose speed instead. Here is the movie file: http://tasvideos.org/userfiles/download/35169315409344032
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
News time. Here is my updated script:
Language: lua

player_x_addr = 0x010A14 player_y_addr = 0x010A18 frames_amount = 0 player_x = 0 player_x_old = 0 speed_x_average = 0 player_y = 0 player_y_old = 0 speed_y_average = 0 x = {} y = {} if memory.usememorydomain("EWRAM") then player_x = memory.read_u32_le(player_x_addr) player_y = memory.read_u32_le(player_y_addr) console.log("Starting script at frame: " .. emu.framecount() .. " with X: " .. player_x .. ", Y: " .. player_y) emu.frameadvance() while true do player_x_old = player_x player_x = memory.read_u32_le(player_x_addr) player_y_old = player_y player_y = memory.read_u32_le(player_y_addr) frames_amount = frames_amount + 1 speed_x_average = ( ( speed_x_average * ( frames_amount - 1 ) ) +player_x -player_x_old ) / frames_amount speed_y_average = ( ( speed_y_average * ( frames_amount - 1 ) ) +player_y -player_y_old ) / frames_amount for i=25, 1, -1 do x[i]=x[i-1] y[i]=y[i-1] gui.pixelText(0, 0+i*6, x[i]) gui.pixelText(175, 0+i*6, y[i]) end x[0] = speed_x_average y[0] = speed_y_average gui.pixelText(0, 0, x[0]) gui.pixelText(175, 0, y[0]) emu.frameadvance() end else console.log("Error: failed to set EWRAM memory domain") end
This is what you get: The X values are on left the Y values on the right. The values will scroll down on every frame. Minor news: I updated the graph on my precedent post. I think it is way more simple and useful like this. I also have to note that I was unable to trigger the Spin bug when swimming vertically... Well, that's all for now.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
I just checked. You're right! Thanks for the tip, you'll take credit for this ;) (edit: not quite, but I'll still give you credit if I happen to be able to exploit this in next levels) I also have a quick new: I discovered a bug about spin also underwater. This will allow to create a faster combo, just give me some time to test various combinations. Edit: Confirmed. Here is the new graph: Edit2: Important update. I just figured that average speed values can't be trusted if you don't divide them by the amount of frames elapsed. Tomorrow I will post the new values for the graphs and update my script. Stay tuned. I should have researched more before saying that. Edit3: What made me doubt about the my past analysis, was the introduction of the trick suggested by lapogne36, which initially looked useful to me, but actually made the run slower. My error was not making average speed comparisons relative to the different resulting contexts. In the end I found no valid opportunities to effectively use it during level 1, but it may still come handy in the next levels.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Warepire wrote:
It might be that back in 2015, there was no (good) GBA support in BizHawk?
I'm using BizHawk 1.11.7 and I'm proceeding fine, except for the crash problem (ba dum tss).
TASeditor wrote:
The game stores the 7 last positions, useful for your script ThunderAxe.
Well, I could just use some variables to store the positions, it's nothing difficult. The interesting this is: why does the game save them? Are these some unused values used during game develpment for debugging? Try to mess them up by freezing them and stuff, then if nothing appens it's likely to be as I just guessed. On the other hand, you made me have an idea. I'm having some problems with the emulator being slowed down by the lua console, since it gets instantly spammed with my current script; so using instead the screen drawing command to write the last 10 values or so would make everything smoother. And let's now go with the news. I started working on level 2 and I'm studying the underwater phisics. I discovered that doing 2 pin swims (A button) allows to use the spin during the second pin swim, allowing to optimize the average speed up to 549.38095238095. The other important thing, is that within certain limits, you can move vertically without losing orizontal speed: you just need to not exeed with directional buttons pressu duration. Here is the new graph: Vertical movements graph coming soon. One last thing: when you hit a box with the spin, you your speed will drop to 20 or so. The only way to reduce average speed loss is to hit the box as close as possible to the end time of the spin. See ya Edit: current WIP encode (level 1 completed): Link to video Edit2: as promised, here is the new graph: As you can see, simply tapping A every 12 frames is the fastest way of moving. Use the spin only if you have to deal with an enemy or box, since you can't really gain horizontal velocity without breaking the 12 frames combo. Also, spins are useful for changing horizontal direction instantly at maximum initial speed of 900. By the way, I also figured that breaking boxes does not always make you drop velocity. I will write more about it, tough it won't probably happen until I start an "100%" run.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Thanks TASeditor, I'll take a look (tough I'm not sure if I can help...) Btw, I just discovered found two interesting but probably useless things: https://imgur.com/G4IVMa2 https://imgur.com/gAamNpE Edit: I've just finished optimizing my WIP. I've managed to outrun Lil_Gecko's run by 16 frames: *link deleted* I'm obviously speaking about the actual gameplay. By the way, I don't get why don't you all migrate to BizHawk. Despite its countinuos crashes, it makes everything simpler and smoother. You just have to save often... And make a lot of backup. Edit2: Now the script will also show in which frame the speed average calc has started, in order to allow univocal comparison: http://pastebin.com/pQ930SD8 If you want I can also implement a way to hide the average values with a key press, since they get a lot of space on the screen and thus may sometimes be in the way. Edit3: 2 more frames saved: http://tasvideos.org/userfiles/download/35051578078707344
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
So I've started TASing this game because I was fooled I immediately liked it since I learned of its existence. The first thing I noticed while TASing it is that it needs to use different movements depending of the circumstances, which results in making impossible to create an universal rule. Thus, it is necessary adjust the movements and optimize them accoring to the circumstances. In order to simpifly this job, I created a lua script that shows you the average speed in real time, relative to the speed values from script launch (I will soon implement it to the official script):
Language: lua

player_x_addr = 0x010A14 frames_amount = 0 player_x = 0 player_x_old = 0 speed_average = 0 if memory.usememorydomain("EWRAM") then player_x = memory.read_u32_le(player_x_addr) console.log("Starting script at frame: " .. emu.framecount() .. " with X: " .. player_x) emu.frameadvance() while true do player_x_old = player_x player_x = memory.read_u32_le(player_x_addr) frames_amount = frames_amount + 1 speed_average = ( ( speed_average * ( frames_amount - 1 ) ) +player_x -player_x_old ) / frames_amount console.log("Frame: " .. emu.framecount() .. " X: " .. player_x .. " Speed: " .. (player_x-player_x_old) .. " Average: " .. speed_average) emu.frameadvance() end else console.log("Error: failed to set EWRAM memory domain") end
You need to launch this script 1 or 2 frames before the segment of frames you want to analyze, so that you can see the average speed and the speed changes. The useful thing about this approch is that you can see how fast is a set of movements regardless its amount of frames and distance travelled: you instead judge its efficiency by looking at the final average speed amount, which is actually the ratio of distance traveled and elapsed time. This same theory can probably also applied to 3D games, by adding the the other axis and calculating the resulting space travelled by applying the Pythagorean theorem. Here is a graph showing the four most common movements segments, optimized to the fullest: Obviously, many circumstances require customization of these moventes sets or even creating a sets of movements ad hoc. This is not a bot after all. I've completed the first level and I think it would nearly impossible to improve it without discovering new tricks or bugs. Here is the bk2 file: *link deleted* Edit: I've implemented my algorithm in your script: http://pastebin.com/iZYw3Zrh I've set the "M" key for resetting the calculated average speed. Feel free to adjust anything. Well, there is a thing I forgot to mention. I didn't read all the post of this topic, but maybe you don't know about the fact that if the you end a spin while landing, you won't lose speed and you will be able to walk again 1 frame faster. That's why I added a spin after my Slide+Jump combo. Edit2: So I noticed that the WIP file by Lil_Gecko is faster than mine by about 30 frames, and I studied the SSS trick. I discovered it is actually a Slide bug, which is triggered by pressing B on the 10th frame after the very first R press. In other words, you press B a frame earlier than the optimized moment I currently use for having a 628 average speed for the Slide+Spin combo. The good new is that you need to do this only once, at the very beginning of the level, and then you will be able to use the Slide bug after every Slide+Sping combo: thanks to this I already managed to outrun Lil_Gecko (edit: I was wrong, the bug is naturally already enabled). I'll post the movie file when I complete the first level. And here is a new graph: I removed the Slide+Spin+Jump combo because it's just useless. The regular Slide is useful only in very rare cases, and it's actually not a combo, thus has nothing to be optimized.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
creaothceann wrote:
ThunderAxe wrote:
I wanted to see the video on my smartphone, but seems like watching nicovideo without an app and an account is impossible on android. :/
http://www.mediafire.com/file/5ygr0etb5gnmba7/
Thanks, but the quality is horrible. I give a yes vote because the TAS is awesome, but I must also say that the encode provided by the authors does not allow to enjoy it.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Post subject: Wii movie starting from savestate?
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
So I tryied to make a movie of Monster Hunter Tri starting from savestate, but when playing the movie I got a black screen with a buzzing noise as audio. On versions prior to 5.0 I got fatal desync. Is there a way to solve this?... :(
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Experienced Forum User, Judge, Published Author, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
I wanted to see the video on my smartphone, but seems like watching nicovideo without an app and an account is impossible on android. :/
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"