Posts for Alyosha
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
I adjusted Pokey volume. Please try the dev build.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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 (3602)
Joined: 11/30/2014
Posts: 2752
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!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
Hitboxes in this game are actually extremely accurate
I think it's worth noting here that the Intellivision uses hardware level collision detection (like the A2600.) So, there are no hitboxes like you encounter on the NES for example. If pixels from 2 different objsects overlap, this information is placed on a hardware register. That's why the collision detection is pixel perfect.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
feos wrote:
Sorry Aran. I tried reading a whole lot of your posts, and I simply can't. I keep giving up three lines into a sentence of 10.
He's asking about combining the rating system with the voting system. (I think it was discussed somewhere before?) This sentence seems to concisely sum it up:
Aran Jaeger wrote:
And my suggestion above with the rating system being put in place of the no/meh/yes poll
I like this idea, it cleans things up.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
Ok, I was wrong about that. The game does set the 'ROM write enable' flag, but the root cause of the problem is that it doesn't set the stack pointer before starting to execute code. A 'CALL' instruction then overwrites the ROM bank. This happens since I initialize the stack pointer to zero, then it gets decremented to 0xFFFF (ROM bank register.) I tried looking for documentation about where the stack pointer gets intiialized to, but I don't see it actually specified anywehere. 0x0 and 0xFFFF both crash the game, so it can't be those. It's possible that's it's just some unspecified value. If this were the case, this game would function by pure chance on real hardware. The game does need to be able to return to the proper address after the call, so the stack pointer does have to be in writable memory. This is very strange. My guess is that during development, they didn't realize the mistake they made since they left the ROM write anbel flag set, meaning the stack pointer could start anywhere and still be in writable memory on their dev boards, thus masking the problem. Or it really is initialized to something internally and I just can't find what. The documentation does specify that the only register actually set is PC (to zero) so who knows what actually happens. Anyway, I added a game specific hack to make the game run by putting the stack pointer in RAM initially. I don't particularly like it, but it does work now.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
What a surreal thread.
Grincevent wrote:
When you think about it, the site favors yes votes in general. Why? Simply because most people don't go watch each and every TAS, they choose which ones they want to watch, the ones they are interested in and they are most likely to like, and by extension, to vote yes for.
Anyway, I found this kind of funny as this is exactly what I do. I'm very surprised so many people even have the patience to vote 'no' or 'meh.'
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
Cool! Good luck!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2752
Location: US
So this game is turning on the ‘ROM write enable’ flag and then doing some antics with rom writes. Will take more time then I thought to sort out.