Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I updated the OP a bit. King's Quest and Rocky seem like they'll be wrapped up soon.
I'm working on George Foreman right now. Depending on my motivation I might work on another one after that, but I'm not sure which one yet.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Do you have a movie file? I can make sure nothing is going awry in the emulation.
Seems like this one would also be good to test on console as a pretty obivous case.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Nice! I would never have guessed from looking at the original that ~2 seconds would end up being saved here.
Voting yes, nice research on the ending screen too.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
My improvementes were trivial enough to not need co-authorship. Feel free to re-submit as sole author (well with BZero as well I guess who is responsible for the main route still, but I'm not sure even that is really necessary.)
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool! Save those frames. I'll go ahead and cancel this one. I'll move on and start looking at one of the other easier looking Dega runs since I seem to have some motivation right now.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Audio: Fixed, thanks for the report.
Savestate: They were never meant to share savestates, so I implemented the same logic NESHawk / QuickNES uses to seperate their states. Should be fixed now.
0040 is the VBlank interrupt address. It looks like it's occurring in the middle of some other operation. I wouldn't be surprised if this has something to do with the bug.
EDIT: One other thing I noticed about this level is that in several places sprites pass through the status bar area.There is a LY=LYC interrupt that occurs at the edge of the status bar that checks for when drawing is finished, and sprites passing through this area can delay it by several cycles. This effect is not emulated by any emulator yet. If the glitch is due to some obscure cycle timing issue, it may not yet be possible to reproduce it on emulator during normal play.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
wow I really didn't think any actual gameplay frames could be save here, nice work!
This is really one of those games that would benefit from subframe inputs. By cramming as many pauses as possible into a single frame you could reduce load times to almost nothing.
That's a long way off, so for now voting yes!
Also I think you can remove me from the author list. I didn't even discover the pause glitch that was MESHUGGAH.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
PJ wrote:
I tried baiting one of the two soldiers to fire a bullet and then race the bullet to the other side of the barrier, but I have not been able to make it in time. I cannot confirm if that would work or not.
Any ideas would be greatly appreciated! This is a pretty huge discovery, and would be even bigger if it worked on the 2nd barrier.
http://tasvideos.org/userfiles/info/43648137360728408
Your guess is correct!
By taking bullet damage on the same frame as passing through the barrier, you are able to skip it.
In this movie I poked the second guard onto the barrier just in case I needed him for somehting, but it's probably just as well to kill him.
EDIT: Here is a much cleaner and simpler demonstration of the skip:
http://tasvideos.org/userfiles/info/43648327823251606
The unduck and hook throw are precise, but should be doable real time I think.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Woah crazy find!
I might look into this one, would be cool to have an updated TAS with it.
So, I took nelifox's run and I did NOTHING except edit out the part where he blows up the generator to turn off the first barreir.
Then I replayed the run as is, and ended up on the other side of the barrier! 0_0
I haven't looked at a trace log or anything yet to sort out what happened, but if it's this easy maybe I'll try the second barrier too.
http://tasvideos.org/userfiles/info/43646321347282670
EDIT: the bazooka shot and pressing down to release the hook are irrelevent. All you have to do is swing at that point and you'll make it through. Seems like it's just a metter of lag from the two enemies and possibly the elevator.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
With some help from gekkio I fixed naughtyemu. I also got caught up on a couple newer tests just recently released.
Progress is reasonably steady but emulator performance is starting to take a hit. I might take some time and go over the code again and look for obvious speed improvements. This hasn't really benefitted me at all in the past, but maybe I'll find something this time, I'm really hoping to stay at 4x speed at least.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool, glad you are getting some decent speed again. :)
By the way, I found a pretty serious bug on 2.2.1 (also happens on the latest developer build). Alyosha, please load Dragon Quest I and Dragon Quest II (Famicom versions, not Dragon Warrior) and you'll have a surprise.
Fixed. Thanks for the report. That was quite an obvious one, how did I miss that. OTL
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
ThunderAxe31 wrote:
What about input support for Kirby Tilt 'n' Tumble?
That will be something that is added with color gameboy support.
EDIT: Thanks to Shonumi on NesDev for pointing me in the right direction, garbled screens on Kirby and Wrestling are now fixed.
EDIT2: I also fixed Teen Jeopardy and Prehistoric Man music.
Remaining:
-Pinball Fantasies
-Beast Fighter
Tests:
-naughtyemu
-dycptest2
- hblank_ly_scx_timing-GS
- intr_2_mode0_timing_sprites
With these improvements I'm now pretty confidently ahead of Gambatte in accuracy, although not in capability.
I have asked on NesDev regarding Beast Fighter. The game works fine in both GB and CGB on actual hardware, but no one quite knows why the status bar isn't showing up in emulator. That one will liekly need a test ROM to work out.
LIJI32 (Sameboy author) seems to have cracked the case of Pinball Fantasies some time ago, so I'll just have to implement the logic described there (I think, I haven't studied exactly what the proposed behaviour is.)
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Fixed:
-Link's Awakening
-Super Hunchback
-Altered Space
Remaining:
-PinBall Fantasies
-Teen Jeopardy
-Kirby's Dreamland / HAL Wrestling (Same bug i believe)
-Prehistoric Man intro audio
-Beast Fighter
Tests:
-naughtyemu
-dycptest2
- hblank_ly_scx_timing-GS
- intr_2_mode0_timing_sprites
If anyone is aware of any other bugs please let me know.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
feos wrote:
Unless accuracy becomes what makes them desync, right?
Of course. Overall the gameboy hardware seems less tempermental then NES, so my hope here is that this work can lead to many more console verifications.
Which leads me to the first real roadblock in the development process. I've been working on the test rom hblank_ly_scx_timing-GS. This test rom tests the timing of HBlank interrupts in the presence of x-scroll. The test itself is not that challenging, mainly because I built the core already knowing that I would need to pass it, so I planned out the architecture ahead of time.
Unfortunately, when it came time to actually run it, it failed.
It turns out I needed to add 2 clock ticks delay to the interrupt firing to get it to pass. This seems unnatural, and I'm not aware of any reason why it should be true. Furthermore, the test dycptest2 indicates that some combination of write timing and ppu latching is off by 3 clock ticks.
Since timings in the gameboy usually occur in multiples of 4, values of 2 and 3 are difficult to resolve. So, it seems I still have a long way to go here.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
This is a fascinating challenge. I wonder if any academic type of work has been done on anything like this. It seems relatively easy to speculate on what strategies might be best suited to win quickly (like samurai goroh has) but I can't think of an easy to determine what game is the fastest possible.
Good luck at any rate Warp.
Editor, Experienced Forum User, Published Author, Expert player
(3572)
Joined: 11/30/2014
Posts: 2744
Location: US
1,3,4:
I remember seeing something about how Korean stuff is unique, but I haven't gotten a chance to really study it.
That and the BIOS stuff I will sort out at some point. They aren't high priority but I'll keep it on my todo list.
2:
Man, this one was tough to track down. Subtly wrong savestate bugs like this are always a headache. It's fixed now though, make sure to clear out your greenzones after getting the dev build.