Posts for Alyosha


Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Update: This project is dead. I don't have the time anymore to focus on it, and there are still plenty of bugs to fix in the other cores that use most of my attention. It probably would have been too slow anyway so no real loss. At least tilt controls in GBA got fixed as a kind of side effect!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Ok it's fixed. Not sure exactly what's causing it but I can clamp the samples to fix it, so I did. MIght need to be revisited at some point.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
MESHUGGAH wrote:
version: BizHawk 2.3 The power button... does nothing?
Yeah nothing is implemented there yet. Do you need it for something?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I think I fixed it, please try the dev build. If not I'll need more specific repro steps.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
EZGames69 wrote:
Temp encode: Did this on bizhawk 2.2.2 because 2.3 kept crashing on me.
THanks for the temp! (Also if the crashes are reproduible please report them so they can be fixed. I haven't had any crashes on my end.)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
MUGG wrote:
I think that half a second can be saved with laborious efforts (pull off the bug quicker in the end). But that shall wait for another day..
Good luck if you are planning on doing that some time. It was only by pure blind luck that I found the current setup. Also, I was unable to find any setup on GBC regardless of picking Gambatte or GBHawk. Probably due to HALT working slightly differently. @fsvgm777: Thanks for the temp!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Great block of content! I was a bit confused by what the GBA was supposed to be doing, but it sounded cool!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
feos wrote:
One of the reasons it was accepted in the first place is that we trusted the author's research. And it appeared to be sloppy.
feos wrote:
Yeah, what link_7777 said. We did the due research.
(See here for second quote context.) Mistakes aren't a big deal, but it seems a bit unnecessary to throw the author under the bus after the fact. A simple 'we goofed' would have been sufficient.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I am skeptical of the assertion that this game has only 6 unique levels of content. The block layout is governed by $00A1. (The background is $00A0.) Here is how the game uses this to load a level:
398:  A5 A1     LDA $A1         A:00 X:00 Y:00 SP:FB P:27 nvTbdIZC Cy:519250913
A39A:  C9 10     CMP #$10        A:06 X:00 Y:00 SP:FB P:25 nvTbdIzC Cy:519250916
A39C:  90 04     BCC $A3A2       A:06 X:00 Y:00 SP:FB P:A4 NvTbdIzc Cy:519250918
A3A2:  0A        ASL A           A:06 X:00 Y:00 SP:FB P:A4 NvTbdIzc Cy:519250921
A3A3:  AA        TAX             A:0C X:00 Y:00 SP:FB P:24 nvTbdIzc Cy:519250923
A3A4:  BD F8 A3  LDA $A3F8,X *   A:0C X:0C Y:00 SP:FB P:24 nvTbdIzc Cy:519250925
A3A7:  85 10     STA $10         A:A0 X:0C Y:00 SP:FB P:A4 NvTbdIzc Cy:519250930
A3A9:  BD F9 A3  LDA $A3F9,X *   A:A0 X:0C Y:00 SP:FB P:A4 NvTbdIzc Cy:519250933
You can see that the game compares $A1 to #$10, indicating that the game loops at 16 stages. Actually, if you are over 16, the game does this:
A39E:  29 0F     AND #$0F        A:10 X:00 Y:00 SP:FB P:27 nvTbdIZC Cy:519250920
A3A0:  09 08     ORA #$08        A:00 X:00 Y:00 SP:FB P:27 nvTbdIZC Cy:519250922
So the last 8 levels are the ones that are repeated. It promptly discards the value of $A1 after this point. I'm not aware of any other variable affecting level layout. And anyway, level 7 is pretty clearly not just a shifted version of the previous levels. EDIT: Also, there doesn't seem to be anything special about the initial 6 levels. You could say that every level is 'procedurally generated' content.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Gambatte ends frames at different times (the actual real time is the same.) Here is the gambatte version: http://tasvideos.org/userfiles/info/47098069959194767
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I adjusted Pokey volume. Please try the dev build.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Fixed the crash, not sure there is anything I can do about the light gun.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Seeing those improvements in stage 2 gave me some fresh motivation to look for other improvements. I found a pretty significant improvement in 3-4, I haven't optimized it yet but looks like it will be around 12 steps. http://tasvideos.org/userfiles/info/48107498757978657 Here is a new file with ZenicReverie's improvements in 2-2 and 2-9 as well as my new 3-4 in 324 moves (-14 steps) EDIT: 3-4 improved further to 322.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Woah nice work on 2-2 and 2-9, I would never have thought of those! 2-1, 2-3, and 2-6 are in the current WIP. If you are interested 2-4 can be improved 2 steps to 241 and 2-7 can be improved to 236.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
DrD2k9 wrote:
If we can't agree on criteria for determining a rating (of any type, not just technical), what value does the rating hold?
I see this as a 'make of it what you will' type of thing. It might have little/no value, but it is also of little/no consequence. If someone gets something out of it that's fine, otherwise it's safely ignored. If it were a situation of 'you must have this player rank to do this thing on the site,' then figuring out the best way to calculate it would obviously be more important, but it's not, it's just a number.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Personally I don't think player points have much if any value. They do seem to do a poor job representing a TASer's body of work for the reasons TASeditor mentioned. I'd rather just have a direct link to a person's published works in that space instead.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
The first 3 look like just simple IRQ issues, I'll look into it. But I can't recall another example where different sprites are showing up, that's a new one.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
shas wrote:
GBHawk will crash if AutoSaveRAM is on (Config->Customize->Advanced).
Thanks for the report, fixed in master.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
jlun2 wrote:
Nice work! What was the main difference memory wise that allowed this to be possible on console v. the other run? Nothing against this run; just curious.
It's not yet known if this one works on console, only that both Gambatte and GBHawk agree that it should. I don't know exactly where the timing error in VBA lies. It's pretty old and much work has been done to improve GB accuracy since the last run was made, so it could be any number of things. But the game doesn't use that much complicated PPU tricks, so it must be something relatively basic related to VBL timing. The basic idea is that this is a bad bank swap. The game assumes a HALT will be reached before an IRQ occurs, it then returns from the IRQ to an assumed bank, not the actual required bank. This has to happen exactly after the instruction JP #4067 in order for sensible code to be executed that reaches the game end glitch. This instruction is 16 cycles long, so that's the window to work with.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
http://tasvideos.org/userfiles/info/48019516364747335 Here is an unoptimized TAS of the Q*Bert score trick. Basically, the snake jumps into you after the level ends but before the transition to the next level. There is a roughly 5 frames window to do this. The snake is still there but below the level I guess. If it ever jumps back onto the level the stage ends as normal. So the trick is to find a pattern that keeps the snake from jumping back up. Once you find it, just repeat as long as you wish. The score rolls at only 100000, so nothing particularly unique happens once the trick is started.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
http://tasvideos.org/userfiles/info/47986639364398403 Here is the biggest improvement so far with 284 frames saved in 8-4. This is also about ~150 frames faster then BagOfMagicFood's version from the Eggerland game. EDIT: I added BOMF's 9-3 improvement, run is now submitted.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Wow it's been almost 3 years since my last post in this thread, it seems like so long ago... Anyway, I'm looking at implementing the known improvements in this run and seeing if I can find any of my own. If anyone is interested feel free to jump in. Right now I'm just working on getting the known improvements all in one file. I saved 32 frames in 2-2, not sure exactly what Nitrodon's improvement was but it's probably that. EDIT: http://tasvideos.org/userfiles/info/47952051421383948 This file contains all the known improvements mentioned above. Now I'll start trying to find some more. EDIT2: Found a pretty big improvement in 8-1. Nothing before that. EDIT3: http://tasvideos.org/userfiles/info/47959562881352562 Here is a file with the new 8-1 and also a bit of cleanup where I missed starting on the correct frame a couple times.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Cool! It always kind of bothered me that the nico video tas was there while TASvideos had something over 1 minute slower, but I didn't think it could be improved. Nice work finding those 24 frames. Yes vote!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Well that was a lot of work but the result was certainly well worth it! The Spectrum uses a lot of hardware trickery to get things done, and getting everything just right is must for this core. Fortunately, the Spectrum community has reverse engineered the system to fine detail, and had many tests available to fix bugs. It must have taken them many hundreds if not thousands of hours to get to the point where we are now where every t-state is accounted for, it's a pretty impressive feat! Truth be told there are still a few minor inconsistencies between the z80 core and the real thing, but they are undectable on the spectrum anyway (except maybe NMI somehow?) and not used anywhere else to my knowledge, so there's not much point sorting them out. Even after all this work, it's still interesting though how easy it is to detect an emulator from real hardware. I saw an example online while doing some research for the core where you can basically repeatedly do LD R,A and thus prevent proper memory refresh. After a short time, memory on real hardware will decay. But, obviously we can't track memory refresh on every byte of emulated memory without going at 0 fps, so this effect is lost to us. So if anyone out there doesn't want their code running on emulator, it takes only a dozen or so lines of code to detect it, pretty neat! EDIT: Well, now that I think about it, there is probably enough headroom left to do memory refresh and still run at maybe full speed (although probably no faster) but still not really worth it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
http://z80.info/interrup.htm This page says that SP = AF = 0xFFFF at reset. Implementing this does indeed make the game work. So I guess I can remove that hack afterall, problem solved!