Posts for feos


1 2 109 110 111 439 440
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
c-square wrote:
I'd like the option to be able to submit an improvement to a run using the same CPU Divider setting as the currently published run, even if it is higher than the game was intended to run on. Otherwise, none of the work done previously would be reusable, and all work would have to be done from scratch.
How incompatible does the old divider have to be to require this clause in the first place? If a compatible machine was available back then, it's a pro. If the gameplay doesn't change, it's a pro.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
We will update this warning appropriately when there's the reference table. What's the grandfather clause again?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
I tried the first "level" on mame-rr. The pattern that one has to repeat is simply "button 1, blank, button 3". Spikestuff used a different ROM version, so his input doesn't sync right away on the version Mihoru used. If I align by the guy with a gun and hit the same frame as Spikestuff, I start too early in this version. But if I start on the next frame, it works and I get the same in-game time. Mihoru starts at frame 2022. Should be started at frame 2017. 5 frames lost to absolutely nothing while all that's needed is repeating 2 buttons. Skipped right to the 4-way race. Spikestuff's time in Bizhawk+MAME: My time in MAME-RR: Mihoru's time in MAME-RR:
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Makes sense to me. Good thing delaying the judgment is really easy.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
I improved the wording. As written in the edit note: "We can't draw the line based on amount of variations of some option. Really wide ranges may be explicitly supported. And non-arbitrary modes may be unintended. So instead, make sure the option is intended for normal play." Now this is in line with the rule about in-game codes BTW. http://tasvideos.org/MovieRules.html#PcGameEnvironmentMustBeLegitimate
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
<feos>      yeah okay. this question appears in different forms every once in a while. it takes looking at actual gba to tell how accurate the pallete is
<EZGames69> I mean looking at dkc2 specifically (not the title screen but actual movie), Bizhawk GBA pallet is super dark
<feos>      super dark is subjective
<EZGames69> With vivid it makes it at least watchable without increasing the brightness
<EZGames69> Maybe im just so used to vivid
<EZGames69> Also how do we get a screenshot of gba?  The only method I can think of is on a game cube with the game boy player
<feos>      screenshot of internal gba image won't help
<feos>      you have to actually look at the thing
<feos>      and then we're entring the grey area
<EZGames69> Right
<feos>      like lack of crt artifacts in encodes that are supposed to represent the authentic TV look
<feos>      (we force 4:3 after all)
<feos>      lack of those artifacts leads to n64 looking like shit at native res
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
HappyLee wrote:
Nobody seems to have tested x265 either, after I brought that up 3 years ago. HEVC is way popular now than VP9, and I've been using x265 for my The Simpsons encodes, and the result is much better than x264.
See my link, HEVC seems to be way heavier to decode. But since you're already using it, would you have time for some tests? The thing we're looking for is faster encoding speed while maintaining the same quality (whatever bitrate it'd be), or smaller file size while maintaining the same encoding speed. From what I've read, x265 isn't so advantageous for what we do (primary 10bit encode only; 512kb has to be paranoidally compatible, and YT doesn't care how we encode, we only aim for speed with it)
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Amiga works using FS-UAE. Install for Ubuntu: sudo apt install fs-uae Launch so it creates the folders: fs-uae Hit Alt+G to release the mouse and close the window. Alternatively, press F12 to access the menu, use the arrow keys to navigate upwards, select the X sign and hit Enter to close the emulator. FS-UAE has now created its folders in ~/Documents/FS-UAE/ Put a kickstart ROM in Kickstarts. Put the game's floppy disk image (usually ADF) in Floppies. Note that Amiga may write to floppy during play, FS-UAE stores the written data as separate files, see the link. I haven't tested how it handles hard drive images, but here's the explanation. Download this config file and save as just Default.fs-uae (ini extension here is only to enable syntax highlighting), then put it to ~/Documents/FS-UAE/Configurations/
Language: ini

[config] amiga_model = A500 # seeks in Documents\FS-UAE\Floppies floppy_drive_0 = put_your_floppy_image_name_here.adf # needed for every floppy used floppy_drive_0_sounds = off # casual convenience automatic_input_grab = 0 # required for libTAS hooking video_sync = full video_sync_method = swap # fs-uae defines Amiga width and height as 752x572 # https://github.com/FrodeSolheim/fs-uae/blob/bfa0c7522c6c5f73cceb340d677491d056febd01/src/fsuae/fsuae-video.c#L23-L24 # so we divide by 2, which makes "Zoom: Full Frame" fit pixel-perfectly # a demo-scener measured Amiga display area as 384x285, but fs-uae doesn't use that # http://eab.abime.net/showpost.php?p=566175&postcount=16 # TODO: hires modes? window_width = 376 window_height = 286 # fs-uae defines "Zoom: Full Frame" as 752x572 # https://github.com/FrodeSolheim/fs-uae/blob/bfa0c7522c6c5f73cceb340d677491d056febd01/src/fsuae/fsuae-video.c#L39 # "full" displays the framebuffer as is, including overscan # this exposes that Amige doesn't center the image # this is accurate, and it's supposed to be centered manually # http://eab.abime.net/showthread.php?t=67165 # "auto" stretches the framebuffer to the window size # this hides overscan, but distorts the image # fs-uae window can't be configured to match the cropped FB size, so just use "full" zoom = full
Edit the file to set the Amiga model you want to use and the game you want to use. Right now the emulator resolution (window_width and window_height) is set to native 1x, set it to 752x572 or anything you like. Other options are explained here. If some are missing, try docs source. https://fs-uae.net/keyboard-shortcuts Launch FS-UAE again to see the game recognized, try playing. By default arrow keys and Ctrl seem to do the main job, but mouse also works. Launch libTAS, set the Game executable to /usr/bin/fs-uae. Uncheck Runtime -> Backup save files in memory if you want it to use your configuration. Alternatively, pass the config as command line parameters. Everything related to TASing should be working in the newest libTAS release.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Mature emulators of GameBoy offer several modes corresponding to newer consoles whose hardware is capable of running GameBoy games. There are some differences and advantages, but those modes exist on the hardware level, and therefore we accept GB movies using those modes. If there is a way to fully emulate PS2 or PS3 hardware that is responsible for running PS1 games, we would allow BIOS that is used there. I don't think you can find a PS1 console with a PS3 BIOS in it. And I don't remember Mednafen supporting PS2 or PS3 modes. The environment must be authentic. If there is a way to fully emulate how PS3 runs PS1, PS3 BIOS is authentic to that. Now, if there is emulation involved, it becomes less clear. We accept VC bundles as Wii entries, and therefore you can abuse bugs in VC emulation, but you must run those in a Wii emulator. You can also extract a game from a VC bundle and play it on a console that this game was originally made for, but we accept that only if it's a valid image for that console. But PS3 emulates PS1 internally (since Q4 2007), so there are no game bundles including emulators. I think we should treat those cases as PS1 hardware modes and only accept them if they are accurate to how games work in PS3. And those would be PS1 movie entries.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
https://en.wikipedia.org/wiki/VP9 https://blogs.gnome.org/rbultje/2015/09/28/vp9-encodingdecoding-performance-vs-hevch-264/
  • Next-gen codecs provide 50% bitrate improvements over x264, but are 10-20x as slow at the top settings required to accomplish such results.
  • Normalized for CPU usage, libvpx already has some selling points when compared to x264; x265 is still too slow to be useful in most practical scenarios except in very high-end scenarios.
  • ffvp9 is an incredibly awesome decoder that outperforms all other decoders.
Dunno when we will have time for testing. All this talk about 30-50% savings on bitrate (at the cost of tremendous speed loss) isn't important for us, since we don't host or stream video, but if we can increase encoding speed while maintaining the same quality, it'd be very nice. Also haven't checked if it supports timecodes. But it does support 10-12 bit 4:4:4 and lossless.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Great pick indeed, reading the text of the first submission proves that this run is amazing. Starred.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
I reset the poll guys and also reencoded the submission. The author had "no kills" in mind as an actual goal, and no items as a result of it, just didn't seem to know that it's a bit different from "pacifist". Of course the difference is slim, but see how confused everyone was. Now, several people admitted than "no kills" is the most natural goal for Batman as a character. So this movie philosophically makes a lot of sense. The only question is, does this movie look entertaining as "no kills"? PS: The pause trick would damage the entertainment way too much imo.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
keylie wrote:
Here is the improved version: User movie #52821885141911372, and the version with extra inputs for the epilogue: User movie #52821896824952159. The new TAS uses the up-to-date version of the game (v1.2.6.1). Sorry for the delay.
In the annotations you have the path src/linTAS/GameLoop.cpp, while in 1.3.2 source it's src/program/GameLoop.cpp.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Interestingly, the manual doesn't talk about how to select either quest. Also one of the cracked versions explicitly says that everyone was cracking part 1 while missing part 2 that's on the other side. The main problem is, we need the original to tell for sure.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
fmp, it's not that we give "too many second chances", it was just a real problem for the last few years that the standard for behavior was basically non-existent. Lots of people suffered from it, and lots of people contributed to the problem. The thing that's different now is that we've had an earthquake affecting basically everyone. People have been tolerating this for long and now it can't be tolerated anymore. As I said several times, this will be used as a clear indicator that it can't continue this way any longer. We are currently working on the code of staff/contributor conduct, and we're taking it as seriously as we can. When it's completed, our tolerance to staff toxicity will not just be virtually lowered ("oh I wish this guy didn't insult everyone around him"), but officially lowered ("if you don't work on yourself for real and remain toxic, you lose your rank").
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Figured out the quest names. Applicable manuals are here. The main manual in pdf has the same text as here. And the modes are officially called: The Penguin: A Bird in the Hand The Joker: A Fete Worse than Death
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
I found a version with working cursor. Batman_Part_II.D64 CRC32: 640F092F MD5: 214001C76C401FDDAB06CF7CE1011C1E SHA-1: D5465C3BC05C5DA7239BB9B975DA4172DC26AFE6 This game is not resync friendly, right?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
If it's submitted, which is up to Takanawa.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
This guy seems to be playing the original game: https://www.youtube.com/watch?v=TJWa_ChP6YU And this is the original menu I guess: I'm considering renaming the branches of both movies to match this pic, since all other videos I can find use the cracked versions split as 2 separate games, or just play those parts right away, no menu.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
It looks like this game image only contains one part, the Joker, while the current movie uses an image that only contains the Penguin. Not both in one image. Is that correct? Or maybe it's just the way hacks are done, and the original game contained both?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
I've read the trace log. tl;dr:
00:03:40 <Masterjun> lol nice bug
Actual explanation:
The fortune teller is a single entrance building, meaning it appears on the secondary underworld map. This map is smaller and will get confused when we go south, which, in this case, attempts to load room 0132.
Language: asm

02b6db lda $a0 [0000a0] A:2710 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H: 894 02b6dd sta $a2 [0000a2] A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H: 918 02b6df lda $0114 [020114] A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H: 942 02b6e2 cmp #$8e A:2701 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H: 974 02b6e4 bne $b700 [02b700] A:2701 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H: 990 02b700 lda $048e [02048e] A:2701 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H:1012 02b703 cmp $a0 [0000a0] A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H:1044 02b705 beq $b70c [02b70c] A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdiZC V: 28 H:1068 02b70c lda $a0 [0000a0] A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdiZC V: 28 H:1090 02b70e clc A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizC V: 28 H:1114 -- HDMA7 001b38 -> 26 indirect incrment mode1 -- 02b70f adc #$10 A:2722 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H:1168 02b711 sta $a0 [0000a0] A:2732 X:0000 Y:0000 S:01f6 D:0000 DB:02 nvMXdizc V: 28 H:1184
$a0 was #$0122, then was blindly incremented by #$10, which means we're in room #$0132.
As this room doesn't exist, it ends up reading outside the table for room data and proceeds to load random garbage values into the memory locations where room data is stored. One of the corrupted values read is $FF into memory location $AD (Hold the value for special room "effects).
Language: asm

01b5d8 lda $a0 [0000a0] A:2600 X:0000 Y:0002 S:01f5 D:0000 DB:00 nvmxdizc V: 41 H: 818 01b5da asl a A:0132 X:0000 Y:0002 S:01f5 D:0000 DB:00 nvmxdizc V: 41 H: 850 01b5db tax A:0264 X:0000 Y:0002 S:01f5 D:0000 DB:00 nvmxdizc V: 41 H: 864 01b5dc lda $04f1e2,x [04f446] A:0264 X:0264 Y:0002 S:01f5 D:0000 DB:00 nvmxdizc V: 41 H: 878 01b5e0 sta $0d [00000d] A:fccf X:0264 Y:0002 S:01f5 D:0000 DB:00 Nvmxdizc V: 41 H: 926 ... 01b651 lda [$0d],y [04fcd3] A:033f X:03fc Y:0004 S:01f5 D:0000 DB:00 nvMxdizC V: 42 H:1014 01b653 sta $ad [0000ad] A:03ff X:03fc Y:0004 S:01f5 D:0000 DB:00 NvMxdizC V: 42 H:1062
Room value #$0132 is used to calculate an offset to read the room data pointer from $04f1e2. It is then stored to $0d. Some values are being loaded as offset (y register) is increasing, and finally we get to $04fcd3. It wasn't supposed to be read and stores #$ff, which goes to $ad.
This value is later used by the game to determine if there are any special effects, but since this value is way out of bounds it causes the CPU to jump to "open bus" and eventually end up executing a "BRK" instruction.
Language: asm

0afe80 lda $ad [0000ad] A:b702 X:00e0 Y:0007 S:01f9 D:0000 DB:00 nvMXdizc V:256 H: 286 0afe82 asl a A:b7ff X:00e0 Y:0007 S:01f9 D:0000 DB:00 NvMXdizc V:256 H: 310 0afe83 tax A:b7fe X:00e0 Y:0007 S:01f9 D:0000 DB:00 NvMXdizC V:256 H: 324 0afe84 jmp ($fe70,x) [0aff6e] A:b7fe X:00fe Y:0007 S:01f9 D:0000 DB:00 NvMXdizC V:256 H: 338 0a20e0 brk #$00 A:b7fe X:00fe Y:0007 S:01f9 D:0000 DB:00 NvMXdizC V:256 H: 384 0a2020 brk #$00 A:b7fe X:00fe Y:0007 S:01f7 D:0000 DB:00 NvMXdizC V:256 H: 424 0a2022 brk #$00 A:b7fe X:00fe Y:0007 S:01f7 D:0000 DB:00 NVMXdiZC V:256 H: 442
Load #$ff from $ad, shift left, move to x register. Take address $fe70, offset by x register, load the contents and jump to that address. End up in $0a20e0 where nothing is mapped. Since nothing is mapped there, we enter open bus, which means the CPU will execute whatever is left on the data bus. bsnes core shows just 00 for any unmapped area, pretending 00 is being executed, while in fact it isn't. The log is lying.
<Masterjun> it executes 20 due to the high byte of the address it just jumped to (since it's a 16 bit jump, it didn't even look at the bank, thus it wasn't 0A)
<Masterjun> then open bus changes because the JSR just wrote a 20 then 21 (or something) to stack
<Masterjun> and then it just runs through until it hits hardware registers (starting 2100), which isn't open bus anymore
<Masterjun> https://floating.muncher.se/bot/regs.txt
<Masterjun> well, not all of it at least
<Masterjun> then the critical part is 0a2134, execting something which changes open bus to 00, which then results in a real BRK at 0a2137
This instruction in turn jumps to $00FFFF in ROM where there's the value for a "branch long" instruction that executes a jump. The location from this jump will be read from $000000-$000002 because of a wraparound from $00FFFF.
Language: asm

0a2132 brk #$00 A:b7fe X:00fe Y:0007 S:01f7 D:0000 DB:00 NVMXdizC V:258 H: 392 0a2134 brk #$00 A:b7fe X:00fe Y:0007 S:01f7 D:0000 DB:00 NVMXdizC V:258 H: 404 0a2137 brk #$00 A:b7fe X:00fe Y:0007 S:01f7 D:0000 DB:00 NvMXdizC V:258 H: 436 00ffff brl $421a [00421a] A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:258 H: 496
Machine code 00 (Break) means we're jumping to $00:FFFF using the BRK vector.
<Masterjun> ROM is segmented into blocks of 0x8000 bytes into the $8000-FFFF part of each bank
<Masterjun> in other words, $00:FFFF is actually 0x7FFF bytes into the ROM
"0x7FFF bytes into the ROM" we see #$82 so we fetch this as a machine code, which means BRL (Branch Long). When an opcode is being fetched along with its arguments, the bank isn't accounted for, so all that's being incremented is the 16-bit address. So when we're at $00:FFFF and we have fetched the first byte of a multi-byte opcode, the rest is being fetched from $00:0000 and onward.
As luck would have it, those addresses contains the controller inputs left there by the controller reading routine that executed just before this crash happened.
Language: asm

00ffff brl $421a [00421a] A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:258 H: 496
By the time we get to $00ffff, address $000000 is #$4218. Since BRL is relative, we end up at PC $000002 and #$4218 is added, so we arrive at address $00421a. Finally our PC is at controlled registers, so we can execute anything that we input.
From there on it's business as usual when it comes to ACE on the SNES. A jump to controller registers is done and execution is kept there in a loop by executing code entered by 4 controllers, waiting for the next frame and then looping back. This code ends up storing $1A to $10 and $00 to $11 to set the game mode to credits and then jumping back into the main game loop and letting the game resume from there.
Language: asm

00ffff brl $421a [00421a] A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:258 H: 496 00421a nop A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:258 H: 526 00421b stz $12 [000012] A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:258 H: 578 00421d wai A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:258 H: 598 .... 00421e bra $4218 [004218] A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:248 H:1138 004218 lda #$1a A:b7fe X:00fe Y:0007 S:01f3 D:0000 DB:00 NvMXdIzC V:248 H:1156 00421a nop A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1168 00421b stz $12 [000012] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1180 00421d wai A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1200
Load value #$1a to accumulator and let the game do some stuff.
Language: asm

00421e bra $4218 [004218] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1140 004218 sta $10 [000010] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1158 00421a nop A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1178 00421b stz $12 [000012] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1190 00421d wai A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1210
Write #$1a from accumulator to $10 and let the game do some stuff.
Language: asm

00421e bra $4218 [004218] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1140 004218 stz $11 [000011] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1158 00421a jmp $8034 [008034] A:b71a X:00fe Y:0007 S:01f3 D:0000 DB:00 nvMXdIzC V:248 H:1178
Write zero to $11 and let go.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
arandomgameTASer wrote:
So with the latest updates to GlideN64, Indiana Jones and the Infernal Machine is (mostly) working. However, it has a nasty crash bug that happens whenever the game tries to play any voice clips. My assumption is due to the compression they use for the voice samples or something?? Regardless, if that could be looked into that'd be great.
Try this https://ci.appveyor.com/project/zeromus/bizhawk-udexo/build/artifacts
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Reuploading won't help until they fix 8K, which is easier to test on simpler footage. Maybe they are generous enough to launch reencoding for existing 8K uploads. But no one knows when either of these happens.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
1 2 109 110 111 439 440