Posts for DrD2k9


Post subject: More digging into initial RNG seed.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
So I've disassembled SCIV.EXE in IDA and found three subroutines where the program pulls the time from DOS.
seg000:8714 ; =============== S U B R O U T I N E =======================================
seg000:8714
seg000:8714 ; Attributes: bp-based frame
seg000:8714
seg000:8714 sub_18714       proc near               ; CODE XREF: seg000:loc_157C4 p
seg000:8714                 push    si
seg000:8715                 push    di
seg000:8716                 push    bp
seg000:8717                 mov     bp, sp
seg000:8719                 mov     bx, ds:750h
seg000:871D
seg000:871D loc_1871D:                              ; CODE XREF: sub_18714+13 j
seg000:871D                 or      bx, bx
seg000:871F                 jnz     short loc_18729
seg000:8721                 mov     ah, 2Ch
seg000:8723                 int     21h             ; DOS - GET CURRENT TIME
seg000:8723                                         ; Return: CH = hours, CL = minutes, DH = seconds
seg000:8723                                         ; DL = hundredths of seconds
seg000:8725                 mov     bx, dx
seg000:8727                 jmp     short loc_1871D
seg000:8729 ; ---------------------------------------------------------------------------
seg000:8729
seg000:8729 loc_18729:                              ; CODE XREF: sub_18714+B j
seg000:8729                 mov     ax, 7C4Dh
seg000:872C                 mul     bx
seg000:872E                 mov     ds:750h, ax
seg000:8731                 mov     al, ah
seg000:8733                 mov     ah, dl
seg000:8735                 pop     bp
seg000:8736                 pop     di
seg000:8737                 pop     si
seg000:8738                 retn
This first one is the one that updates the the RNG seed based on the previous (lines 8729 onward. It calls the DOS time if the RNG seed is 0 (line 871d-8727) The next two are other subroutines that call for the DOS time.
seg000:9B03 ; =============== S U B R O U T I N E =======================================
seg000:9B03
seg000:9B03 ; Attributes: bp-based frame
seg000:9B03
seg000:9B03 sub_19B03       proc near               ; CODE XREF: seg000:5205 p
seg000:9B03
seg000:9B03 arg_0           = word ptr  8
seg000:9B03
seg000:9B03                 push    si
seg000:9B04                 push    di
seg000:9B05                 push    bp
seg000:9B06                 mov     bp, sp
seg000:9B08                 cmp     [bp+arg_0], 3
seg000:9B0C                 jz      short loc_19B3F
seg000:9B0E                 mov     ah, 2Ch
seg000:9B10                 int     21h             ; DOS - GET CURRENT TIME
seg000:9B10                                         ; Return: CH = hours, CL = minutes, DH = seconds
seg000:9B10                                         ; DL = hundredths of seconds
seg000:9B12                 mov     ah, cl
seg000:9B14                 xor     al, al
seg000:9B16                 shr     ax, 1
seg000:9B18                 shr     ax, 1
seg000:9B1A                 or      al, dh
seg000:9B1C                 cmp     [bp+arg_0], 2
seg000:9B20                 jnz     short loc_19B28
seg000:9B22                 shr     ax, 1
seg000:9B24                 mov     cl, 3
seg000:9B26                 jmp     short loc_19B39
seg000:9B28 ; ---------------------------------------------------------------------------
seg000:9B28
seg000:9B28 loc_19B28:                              ; CODE XREF: sub_19B03+1D j
seg000:9B28                 or      ch, ch
seg000:9B2A                 jnz     short loc_19B2F
seg000:9B2C                 add     ch, 0Ch
seg000:9B2F
seg000:9B2F loc_19B2F:                              ; CODE XREF: sub_19B03+27 j
seg000:9B2F                 cmp     ch, 0Ch
seg000:9B32                 jle     short loc_19B37
seg000:9B34                 sub     ch, 0Ch
seg000:9B37
seg000:9B37 loc_19B37:                              ; CODE XREF: sub_19B03+2F j
seg000:9B37                 mov     cl, 4
seg000:9B39
seg000:9B39 loc_19B39:                              ; CODE XREF: sub_19B03+23 j
seg000:9B39                 shl     ch, cl
seg000:9B3B                 or      ah, ch
seg000:9B3D                 jmp     short loc_19B53
seg000:9B3F ; ---------------------------------------------------------------------------
seg000:9B3F
seg000:9B3F loc_19B3F:                              ; CODE XREF: sub_19B03+9 j
seg000:9B3F                 mov     ah, 2Ah
seg000:9B41                 int     21h             ; DOS - GET CURRENT DATE
seg000:9B41                                         ; Return: DL = day, DH = month, CX = year
seg000:9B41                                         ; AL = day of the week (0=Sunday, 1=Monday, etc.)
seg000:9B43                 mov     ah, dh
seg000:9B45                 xor     al, al
seg000:9B47                 shr     ax, 1
seg000:9B49                 shr     ax, 1
seg000:9B4B                 shr     ax, 1
seg000:9B4D                 or      al, dl
seg000:9B4F                 shl     cx, 1
seg000:9B51                 or      ah, cl
seg000:9B53
seg000:9B53 loc_19B53:                              ; CODE XREF: sub_19B03+3A j
seg000:9B53                 pop     bp
seg000:9B54                 pop     di
seg000:9B55                 pop     si
seg000:9B56                 retn
And the last...
seg000:8684 ; =============== S U B R O U T I N E =======================================
seg000:8684
seg000:8684 ; Attributes: bp-based frame
seg000:8684
seg000:8684 sub_18684       proc near               ; CODE XREF: seg000:4E09 p
seg000:8684                                         ; seg000:59F3 p ...
seg000:8684
seg000:8684 arg_0           = word ptr  8
seg000:8684 arg_2           = word ptr  0Ah
seg000:8684
seg000:8684                 push    si
seg000:8685                 push    di
seg000:8686                 push    bp
seg000:8687                 mov     bp, sp
seg000:8689                 mov     ax, [bp+arg_0]
seg000:868C                 mov     dx, [bp+arg_2]
seg000:868F                 or      dx, dx
seg000:8691                 jnz     short loc_186A7
seg000:8693                 or      ah, ah
seg000:8695                 jz      short loc_1869E
seg000:8697                 mov     al, ah
seg000:8699                 mov     si, 772h
seg000:869C                 jmp     short loc_186B7
seg000:869E ; ---------------------------------------------------------------------------
seg000:869E
seg000:869E loc_1869E:                              ; CODE XREF: sub_18684+11 j
seg000:869E                 or      al, al
seg000:86A0                 jz      short loc_186EE
seg000:86A2                 mov     si, 762h
seg000:86A5                 jmp     short loc_186B7
seg000:86A7 ; ---------------------------------------------------------------------------
seg000:86A7
seg000:86A7 loc_186A7:                              ; CODE XREF: sub_18684+D j
seg000:86A7                 mov     ax, dx
seg000:86A9                 or      ah, ah
seg000:86AB                 jnz     short loc_186B2
seg000:86AD                 mov     si, 782h
seg000:86B0                 jmp     short loc_186B7
seg000:86B2 ; ---------------------------------------------------------------------------
seg000:86B2
seg000:86B2 loc_186B2:                              ; CODE XREF: sub_18684+27 j
seg000:86B2                 mov     al, ah
seg000:86B4                 mov     si, 792h
seg000:86B7
seg000:86B7 loc_186B7:                              ; CODE XREF: sub_18684+18 j
seg000:86B7                                         ; sub_18684+21 j ...
seg000:86B7                 mov     cx, 9
seg000:86BA
seg000:86BA loc_186BA:                              ; CODE XREF: sub_18684+38 j
seg000:86BA                 shr     al, 1
seg000:86BC                 loopne  loc_186BA
seg000:86BE                 shl     cx, 1
seg000:86C0                 sub     si, cx
seg000:86C2                 lodsw
seg000:86C3                 mov     bx, ax
seg000:86C5                 mov     ax, [bp+arg_0]
seg000:86C8                 mov     cx, bx
seg000:86CA                 div     bx
seg000:86CC                 xor     dx, dx
seg000:86CE                 add     ax, cx
seg000:86D0                 adc     dx, 0
seg000:86D3                 shr     dx, 1
seg000:86D5                 rcr     ax, 1
seg000:86D7                 mov     bx, ax
seg000:86D9                 mov     ax, [bp+arg_0]
seg000:86DC                 mov     dx, [bp+arg_2]
seg000:86DF                 mov     cx, bx
seg000:86E1                 div     bx
seg000:86E3                 xor     dx, dx
seg000:86E5                 add     ax, cx
seg000:86E7                 adc     dx, 0
seg000:86EA                 shr     dx, 1
seg000:86EC                 rcr     ax, 1
seg000:86EE
seg000:86EE loc_186EE:                              ; CODE XREF: sub_18684+1C j
seg000:86EE                 pop     bp
seg000:86EF                 pop     di
seg000:86F0                 pop     si
seg000:86F1                 retn
seg000:86F1 sub_18684       endp
seg000:86F1
seg000:86F2 ; ---------------------------------------------------------------------------
seg000:86F2                 push    si
seg000:86F3                 push    di
seg000:86F4                 push    bp
seg000:86F5                 mov     bp, sp
seg000:86F7                 mov     ax, ds:74Eh
seg000:86FA
seg000:86FA loc_186FA:                              ; CODE XREF: seg000:8704 j
seg000:86FA                 or      ax, ax
seg000:86FC                 jnz     short loc_18706
seg000:86FE                 mov     ah, 2Ch
seg000:8700                 int     21h             ; DOS - GET CURRENT TIME
seg000:8700                                         ; Return: CH = hours, CL = minutes, DH = seconds
seg000:8700                                         ; DL = hundredths of seconds
seg000:8702                 mov     ax, dx
seg000:8704                 jmp     short loc_186FA
seg000:8706 ; ---------------------------------------------------------------------------
seg000:8706
seg000:8706 loc_18706:                              ; CODE XREF: seg000:86FC j
seg000:8706                 shr     ax, 1
seg000:8708                 jnb     short loc_1870D
seg000:870A                 xor     ax, 0B400h
seg000:870D
seg000:870D loc_1870D:                              ; CODE XREF: seg000:8708 j
seg000:870D                 mov     ds:74Eh, ax
seg000:8710                 pop     bp
seg000:8711                 pop     di
seg000:8712                 pop     si
seg000:8713                 retn
Using 0 as initial RTC: Unless my math is wrong, neither of the last two subroutines yield 29317 for the initial seed that results according to the lua script. (I tried calculating through using the following values for the DOS time when the RNG is first called: 14469 ms, 14470 ms, and 14483) Any help or suggestions on the next direction to look would be appreciated. I've begun brute force testing and gotten the first 33 seeds thus far, but have found no lasting pattern. I'll keep working on this unless someone can figure out the assembly better than I did.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
How about something along these lines for the icon...
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
c-square wrote:
FYI, my copy of JPC-rr sometimes stalls when running or recording long tas scripts. It just means I have to try again until it doesn’t stall. I’m curious to see if it stalls on others’ computers
My copy (v11.2 with mouse) occasionally stalls when using lua scripts (i.e. the RNG seed script for SQ3). I've found that terminating the script will allow the game to continue running and I can usually just restart the script immediately.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Well done! EDIT: Something I've discovered in my SQ3 WIP that may potentially save you a few more frames on this run (if you haven't already done it)... When, after text input, a dialogue box pops up that requires an <enter> press to clear; it is often possible to type the necessary <enter> command on the same frame as the rest of your text. Using the mouse click to then submit the command before the <enter> is read by the game allows for the fastest clearing of these dialogue boxes, as the enter command has already been submitted but not executed until after the mouse click. It's only a couple frames here and there, but it maybe enough to increase the time saved compared to the original from 1.8 seconds to above 2 seconds (hopefully requiring less wait time for Elsa to jump over the desk).
Post subject: Re: Please explain your votes.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
ThunderAxe31 wrote:
In my opinion, having the label "glitchless" would be more explainatory.
Agreed. "Warpless" should be reserved for games where warping is allowed as part of the normal game. "No Warp Glitches" should be used for games where known glitches are not used to accomplish warps.
Post subject: Re: Please explain your votes.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
ThunderAxe31 wrote:
The nostalgia factor Lastly, I have to point out that the entertaining value for TASes often depends from the familiarity that the watcher has toward both the specific game and the console in general.... Conclusion. I'm firmly convinced that TASVideos needs this run and that rejecting it would set a bad precedent, for both this specific game series and the RPG TASing in general.
Though I'm not familiar with this particular title, I fully agree that RPGs deserve a place on the site as with (most) any other game genre. Hopefully no one will use this comment to suggest that I fully support all genres...I don't want to prompt another debate on educational games (at least not yet). Even if you end up needing to reject this particular run for some reason, you could state in your rejection notes that no part of the decision was due to the game being a RPG. That should be sufficient to prevent a precedent against RPGs in general. Also, is "warpless" as the branch a reason this couldn't be a vaultable title? If so, that again doesn't set precedent against RPGs in general.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Quibus wrote:
Did you consider to also TAS B.C. II: Grog's Revenge? It's available at least on MSX (and also Colecovision, these versions are indeed the same).
I think it's available on C64 as well.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Ferret Warlord wrote:
Which is a shame, because the idea of an amorphous pinball table is an interesting one with a lot of potential. And yet it turned out to be just a series of targets.
I wonder if it would be possible to build a table with a play-surface made from a thickish yet flexible material (silicone perhaps) that could then have multiple ramps/obstacles that would push up from underneath, constantly changing the playfield depending on goals met during play. This could even allow for a difficulty curve via the angle of ramps being variable and adjusted to be harder to hit for more advanced levels. EDIT: This variable table concept should be revisited in video game format regardless of whether a physical table could be created. (I really need to learn how to code.)
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Evan0512 wrote:
Still, I was playing Super Mario Bros. 3. How to do that if I am done if Bowser was defeated?
In a normal game (that doesn't abuse glitches), the last action for SMB 3 is pressing up to enter the door after Bowser dies. That would be your last input. There shouldn't be any empty frames after that input.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
First, I've updated the movie file and it syncs with my updated disk image. Here is the new movie file. Can someone with power please update the submission? Here's the file list from the updated disk image. Note that there is no CONFIG.PIN or HISCORE.PIN as the image made from a clean install before the game has been run.
|19900101000000|9e58938ea3594154b16c22621a39490d|4000|END.PIN|
|19900101000000|425fb4968cdbfe80d8967d2833584fee|38251|EP1.DAT|
|19900101000000|208c9ccb1059d309626c136e4e3e2b13|251787|EP1.EXE|
|19900101000000|eedbf3f2feb31190331f5556cb91bd2e|48397|EP10.DAT|
|19900101000000|84eff3663038835bc37c769403a6fa36|246683|EP10.EXE|
|19900101000000|89519874d46eaba3d7641831f5c62196|48069|EP11.DAT|
|19900101000000|79eadc4936112603c051b976943ebea4|224763|EP11.EXE|
|19900101000000|c067a6e515268c659996cc51b8f329e0|48024|EP12.DAT|
|19900101000000|e694142a4eb7b5a64fd1035ae0e9e3ec|235051|EP12.EXE|
|19900101000000|b6c3aafd0c19ca0b917d5ad416a24be3|48272|EP13.DAT|
|19900101000000|8795395973833ae3a7a64d6e4f87b167|217307|EP13.EXE|
|19900101000000|021d62f1138a257e88b11e011093d400|40874|EP2.DAT|
|19900101000000|a09c082cad66f4860f79c527ccd94aae|255691|EP2.EXE|
|19900101000000|787d77edc35b4d03630f9d8c6d34c08b|48281|EP3.DAT|
|19900101000000|d96f1ab76b77df8f365aef1e7b5d6d84|245259|EP3.EXE|
|19900101000000|366363b46d3841c6cd3e32d4fa8f81c6|52934|EP4.DAT|
|19900101000000|7b8d2d0b0a43408f0f3f070d4169a60a|250027|EP4.EXE|
|19900101000000|d44ee1aebdd2a9b35720442cca8df229|46280|EP5.DAT|
|19900101000000|a5b78cf5d0a9ccb5f93d26b823f38db2|226971|EP5.EXE|
|19900101000000|32734d7442f6a7dbc6e17be94d80cf15|35550|EP6.DAT|
|19900101000000|ca287393149c0309d9a979984fda976a|252683|EP6.EXE|
|19900101000000|e95a4fd1963baa2030ac06033b48294b|51557|EP7.DAT|
|19900101000000|febcd2dd9efc28fa1186c95f17f546e2|240571|EP7.EXE|
|19900101000000|299ff9dc26ca59cbedcdb2879e0440e0|54529|EP8.DAT|
|19900101000000|98ea6ba89c4b5222fa3db8d261e7c194|298763|EP8.EXE|
|19900101000000|9ee768477ba70f758a422602dd848b09|47049|EP9.DAT|
|19900101000000|9eaff9002fc3b3d62ce59df93252bd67|242315|EP9.EXE|
|19900101000000|6865731614c66532f8275f1ab466635f|283|FILE_ID.DIZ|
|19900101000000|c4e65232bfb43de8e66a4f25b4b2fcf2|12495|HELPME.DOC|
|19900101000000|4643b477d085584762b3334734a8f993|14448|HELPME.EXE|
|19900101000000|a41cc7b7bb673580e8a77804933ae2f6|20|ID1.DAT|
|19900101000000|8b7513d603d252f09ea3c930b75f8ae5|20|ID10.DAT|
|19900101000000|5ed2821aeb3c2b35cecc801b1cf4a04a|20|ID11.DAT|
|19900101000000|50809e018e13dcd42cb558c7167e19ec|20|ID12.DAT|
|19900101000000|281ceaaa9ff68d9cdf080506405915dd|20|ID13.DAT|
|19900101000000|6afdba56d1c802a84642a17bf1c83804|20|ID2.DAT|
|19900101000000|7cf3ee31660ab80d1f93dfdb66368c76|20|ID3.DAT|
|19900101000000|b7764ab41d01cdfac308193809b7ae11|20|ID4.DAT|
|19900101000000|8c926206b6be76f37173b748190c7d1f|20|ID5.DAT|
|19900101000000|d86d6bfa71a7abd1d51c6c5dcd80cb83|20|ID6.DAT|
|19900101000000|d838f84ee849e9f21806c991c46ac558|20|ID7.DAT|
|19900101000000|ad9e1b0632dfa8767d3aa9bd76cbd678|20|ID8.DAT|
|19900101000000|ea5f15db0a28bb8f401ff7858bb005d4|20|ID9.DAT|
|19900101000000|38d1ca811369e27bbf299b1f6aac489a|154397|INTRO.PIN|
|19900101000000|5f8c6fa6397eca6fcfa5b94fc3eb987d|7869|LICENSE.DOC|
|19900101000000|99a1dfdb11e9dd081c86872e124ae352|4680|MDRV000R.MUS|
|19900101000000|d13b96a236cb8abac9545fa4980e7f3e|504|MDRV001R.MUS|
|19900101000000|ff855d0991610172c3b0a5aba72ff261|498|MDRV002R.MUS|
|19900101000000|eba9cf8418e37ff7c6c1f8fe354119e6|4755|MDRV003R.MUS|
|19900101000000|4ae79791476535c3235662b9106e704c|9789|MDRV004R.MUS|
|19900101000000|d4d268b8f22c8aa0e2baabbe99e97eed|9087|MDRV005R.MUS|
|19900101000000|3d7fe17811e97b53a1ae08ed31a7e45c|6062|ORDER.DOC|
|19900101000000|9c677018b0b6931f42cb8f728ec59e08|20485|ORDER.EXE|
|19900101000000|b40ef7623e44de8dce1e2e1bfc4e5041|111586|ORDER.TFP|
|19900101000000|0625abd0be343eb52175e64d093b0caa|3862|ORDER_DE.DOC|
|19900101000000|6d8d7c1664cf18976768d3b838286102|5655|ORDER_UK.DOC|
|19900101000000|b4c0af6d6f70118450217123075d6feb|11620|PIN01.TFP|
|19900101000000|9b1691377319d7a11f35b51a72385c03|11566|PIN02.TFP|
|19900101000000|e8cc1e55f75ad91bf098c5b18c8227ea|10956|PIN03.TFP|
|19900101000000|7d43d276844d135b7bfbb761273de524|11808|PIN04.TFP|
|19900101000000|73e3ae79c8449cf0b6405e5064bbd4f9|10923|PIN05.TFP|
|19900101000000|428162bfcd804861a86938468c4483f7|11652|PIN06.TFP|
|19900101000000|7cdea57a324585739d969af8f70bc52f|12598|PIN07.TFP|
|19900101000000|3f12f8eccd3aa018a379336096a22077|10835|PIN08.TFP|
|19900101000000|4e45e12cc63904ec7bf12b002221b991|11890|PIN09.TFP|
|19900101000000|0106184c940c64270f2246a123d5393c|12080|PIN10.TFP|
|19900101000000|3d869faec5a541fe6fe809b8cb2c8e76|11853|PIN11.TFP|
|19900101000000|00f82266b3934898e28671cfff6ad2d3|11934|PIN12.TFP|
|19900101000000|c3dc127d573e01296b591ce3dbb713e1|11933|PIN13.TFP|
|19900101000000|f17190391afdbd8da1225595cccb0a39|37461|PINBALL.EXE|
|19900101000000|197c3f2486c28fe6f20de051940fd8c7|8807|REG.DAT|
|19900101000000|3a9e2e034b52d91e43abdccf43ab665c|105227|SETUP.EXE|
|19900101000000|685ceed3fb70e6286773a497a92f55b0|2908|SETUP.INT|
|19900101000000|ca8f63650bf10f931e12d9423c81756b|66945|SFX0.PIN|
|19900101000000|1e12da6f7ecdb1d97fd73e9a9238b01d|116478|SFX1.PIN|
|19900101000000|57ebac7f9f29b450b0956846c74d842e|111018|SFX10.PIN|
|19900101000000|24567fca00e223f1700ff78132316c93|93673|SFX11.PIN|
|19900101000000|b70eb52d914d9bf39d09e978a98d3f4c|97778|SFX12.PIN|
|19900101000000|4098a22c4f8d80550d7ad1f7cf782e59|92481|SFX13.PIN|
|19900101000000|ee6877dabf6b38cc85e1ce0c6e4d5c83|126325|SFX2.PIN|
|19900101000000|aabbfc5d55f911b6b0e486c34c3b79a4|57062|SFX3.PIN|
|19900101000000|0462e885484439d68521da3ce487b472|92798|SFX4.PIN|
|19900101000000|948648977972b2ebc8e5fcb4a760f552|21340|SFX5.PIN|
|19900101000000|4098a22c4f8d80550d7ad1f7cf782e59|92481|SFX6.PIN|
|19900101000000|9df4b61a810905c484d3cdeebfe2c854|133901|SFX7.PIN|
|19900101000000|c287bb9cc02c18416c4b60ce18bd1a98|132042|SFX8.PIN|
|19900101000000|d56621cd799adce077f09daf370a7c49|106545|SFX9.PIN|
|19900101000000|2591df28d8853cdb17674885ddf21ac9|115895|SONG0.PSM|
|19900101000000|7022c93f58988b1647bc225ed0b8f0aa|66896|SONG1.PSM|
|19900101000000|455b170cfa8352cda94792437ac1136a|124903|SONG10.PSM|
|19900101000000|27cb282509b3e2689100766d2c2647f7|144593|SONG11.PSM|
|19900101000000|4b4e2cfcfda4cd2424393bf6962199fb|114671|SONG12.PSM|
|19900101000000|39830ccceed7e5a42463ca8be530f115|63870|SONG13.PSM|
|19900101000000|bf2e253fa894afec7a1137ebaf2044cf|49374|SONG2.PSM|
|19900101000000|3bfa31f7f3b7979ad2ee466c344b8b65|178082|SONG3.PSM|
|19900101000000|463bf003be514c39b7cdd1b4d32e92f3|153871|SONG4.PSM|
|19900101000000|0d7c2eaf107f8f4c620390e47b882357|20018|SONG5.PSM|
|19900101000000|4c24d452791c53b87717c94a55353c15|145994|SONG6.PSM|
|19900101000000|83f3b85e2d5be0066759001fc3b5922f|120516|SONG7.PSM|
|19900101000000|3f95988349a0745bd16e62022d26f357|48923|SONG8.PSM|
|19900101000000|b1364fa6c2b92815acb561033f8d6685|86068|SONG9.PSM|
|19900101000000|4e88033d5b31b5df8d35c48a7213a74a|38|SOUNDCRD.INF|
fsvgm777 wrote:
By the way, the movie ends mid-gameplay. It probably would be better to suicide the remaining balls to at least reach a high score entry.
If the judge feels this is necessary for completeness (but the run is otherwise publishable), I will have them set the decision to 'delayed' and add the extra few inputs even though it will result in a slightly longer run.
Though I'm myself curious about the odd buzzing sound you're encountering. Could you upload an encode with the audio?
As c-square suggested, I'm going to try and dump the movie with a newer version of JPC-rr and see if I still get the audio weirdness. If I get a good audio dump, I'll update the video in the submission text. If I still get weird sound, I'll upload a video in the discussion for you. EDIT:New dump worked fine. I've updated the encode in the submission text.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
fsvgm777 wrote:
But....yeah, the missing PIN13.TFP is an issue, as far as I'm concerned (pretty much akin to a "bad dump"). It is part of the game's files, after all.
Agreed. I will see what I can do about this. Not cancelling though. If I can correct this fairly easily before judging , I will upload a corrected movie file and hopefully everything will be good to go.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
link_7777 wrote:
I'd say DrD2k9 deserves a nomination
Thanks for the nod, it's much appreciated. But I'm going to withdraw myself from this category. I'd argue that the work you put in on Golf alone, likely far outweighs the work I put into the two NES games I did this year. I started on Golf myself so I understand the tedium it would have required to do it all manually; as you were able to automate it to a degree, you accomplished it much faster and probably better than I could have. And you also had at least one moon-tier NES run. Thanks again, though.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
fsvgm777 wrote:
Hrm...of the files that I have, CONFIG.PIN and HISCORE.PIN (clean file) are different and SETUP.INT doesn't exist at all. The former changes every time I change the in-game configuration (Fast/Slow PC, Music volume, SFX volume), AFAIK. Could you post a screenshot of the in-game configuration?
My in-game config should be the defaults as I didn't change any in-game settings. I did test the game in DOSBOX prior to TASing to see if it would run with the included files (trying to eliminate all the extra GOG stuff). This could be why the config and high score files are altered. I'll check into testing if the inputs will sync on a new image from a clean install using the guaranteed unaltered files, but this may take some time. As far as SETUP.INT My game is the GOG version which is based on the CD version; that may make a difference. It may not be necessary for the inputs either, I'll check on that too. EDIT: It Desynced without the SETUP.INT file. Still have to check on a clean install image.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
I was also disappointed by the Enigma being the robot when I first found out years ago. When I was young, I expected a puzzle to be involved somewhere in the game play simply because of the name. But as can be seen here, that's unfortunately not the case.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Just a note: Desert Bus wasn't accepted.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
grassini wrote:
duke nukem 3d is tasable?is it a windows or a dos game?
DOS
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
PLANET wrote:
Tho I'm kinda scared of the technical side of TASes, too.
Don't be. I had no idea what I was doing about a year and half ago. I second c-square's recommendation that you may want to try a different system before DOS simply because of the difficulty of using JPC-rr. In my opinion, any of the systems that BizHawk supports (i.e. NES, SNES, etc) would be a better option for learning TASing principles before moving into DOS (even though the available DOS library of unTASed games is quite large). And don't be afraid to use a game that's been TASed to death to learn with. You can try your own thing and compare it to very well known results that way, it'll help you learn. But don't let me discourage you! Get out there and get TASing!
c-square wrote:
...I recall you ran into the same problem with your first SQ1 submission as well.
Yea, and I don't remember what I did to fix it.
dwangoAC wrote:
First, I'd like to congratulate you for being brave enough to take on this game. The Android table was a complete pain to run, although at the time a lot of that had to do with the fact that I couldn't even remotely run it at a reasonable framerate. I can spot some of the exact same methods I was forced to use to manipulate ball position and I don't see any obviously sloppy play here. You're right that better routing may be possible but the instability of hex editing makes rerouting cumbersome....Keep these coming!
This was a pain to run also even with a relatively decent framerate. One simple reason (among a handful) was because the key-presses had to be held across a frame advance to be recognized as opposed to other DOS games I've worked on where they can be pressed and released before the frame advance and still be recognized. I may look into other of Epic Pinball's tables, but offhand I don't know of any that have as definitive endpoints as Enigma or Android.
Bobo the King wrote:
Huh, I didn't know we had an android TAS. It was published over seven years ago. Well that just makes my snarky comment at the top of this thread look extra douchy.
Had I not known about the Android TAS and saw this one pop up in the recent submissions, I probably would have had the same reaction. I also would have TASed it before this one as well had it not already been done, simply because it's the more well-known table. Interestingly, there is a 'Jill of the Jungle' table in the collection....interesting because of slamo's submission of one of the JOTJ platformers around the same time I submitted this.
Radiant wrote:
Although the resulting table doesn't look particularly flashy or particularly fun.
It's not a very exciting looking table to view, but it was probably the one I played most as a child. Something about its variability held an extra interest I guess. As far as flashiness, The ball changes color each time you lose one (as can be seen in the difference between the first and second ball of this run). I considered losing all but the last ball from the beginning simply to play with the last ball because it visually shares a similar oscillating color scheme as the background of the table, making it quite difficult to see while playing. But for the purpose of the TAS, I figured it wouldn't make much difference on entertainment value and would take extra time and inputs to get to that ball, so I didn't.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Dimon12321 wrote:
The most odd pinball I've ever seen. Voting Meh
Bobo the King wrote:
Android or GTFO.
I realize many of the other tables in the Epic Pinball collection besides Android weren't as well liked. But I had this when I was young and was never able to get through the four levels (without cheating in unlimited balls). That was my primary impetus to do this TAS. That and I needed a break from Space Quest.
Pokota wrote:
I didn't know this table had an ending.
I don't think any pinball games have a technical 'ending' where play is not allowed to continue. I do consider the Enigma arriving on this table as the point of no new content, and thus I claimed it as the ending for TAS purposes. I could have spent a bit more time and inputs to lose the remaining balls and get a game over screen, but those seemed to be pointless to me as the 'endgame cutscene' had already been viewed.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
I recently proposed some new rules that were adopted regarding CPU frequency for DOS games using JPC-rr. Also some discussion that arose out of my work on C64 games this year led to a clarification of NTSC vs PAL rules for that system. Changes and additions do happen. In both of these cases, it took discussion regarding appropriateness as well as potential impact on the site.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
c-square wrote:
Nice! You know, this has a shot at a Speedy TAS award. At least it should get a nomination.
We've been nominated for Speedy TAS! Hopefully someone will also nominate this run for Lucky TAS considering how much we all put into completely reverse engineering and the RNG mechanism for optimal use.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Nach wrote:
Therefore we have strict rules to discard software which isn't real games or too trivial to be taken seriously, or so messed up that some call it a game, but no serious TASer would.
What does it take to be considered a 'serious TASer'? Do they have to agree with you?
Alyosha wrote:
I think this rule should be changed to allow this run to be published.
Alyosha seems to think this game/software is TAS worthy....is Alyosha not a serious TASer? He does code the emulator we use to do many of the TASes on this site. Just because some of the more senior members of the site may not consider games such as this to be serious, other serious TASers may. I fear this discussion has offended individuals on both sides of the debate. I do hope none of the offense was intentional. EDIT: It has been brought to my attention that this post can be viewed as an aggressive attack on Nach. That was not my intent. I was merely trying to point out that his comment was making too big of an assumption regarding who qualifies as a serious TASer. The fact that some serious TASers (at least in my opinion) do consider this particular game TAS worthy, suggests to me that it may indeed be non-trivial enough to be accepted as a serious game; at least using Nach's logic that the vault rule is to reject games that serious TASers wouldn't consider valid. I personally am less sure where I stand on this debate than I was before I originally posted in this topic (my position was mostly neutral at the time). Mainly because I'm now more confused as to how a game is deemed serious or not. I'm quite sure that confusion is not limited to myself.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
adelikat wrote:
Note that it is the degree of confusion that I'm specifically concerned as problematic. Not the fact that this specific run was rejected.
It's the confusion that is my primary concern as well, not this particular submission. This majority of this discussion could (and likely should) have taken place in its own topic, and it only happened here because this is where it started. The biggest problem with it happening here is the unfortunate likelihood that some of the generalized comments from both sides are being specifically (and inappropriately) attributed to this particular run; not being considered as a generalized concepts. I am probably as guilty of this error as anyone else.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Niamek wrote:
When a new movie is submitted that has a routing to do. Do you expect the author to have done extensive routing testing like tested every possible routes before taking the one they did? Or they can do some routing and take a route that "makes sense and that it looks fast"? In a summary, I would like to know what's the minimum of work behind a routing that is acceptable.
Let me start by saying I'm not a judge. Still, the minimum necessary work would probably be dependent on the game choice itself. Some games with multiple route options have a very limited number of route choices (NES Super Mario Bros.). Others may have hundreds of possibilities (NES Key Quest). To fully test every possibility for a given game may require an unreasonable degree of work to produce a valid TAS. Thus my personal approach is to test the handful of routes that seem as though they would be fastest and chose the best from those. A good resource to help determining the best route can be via finding a real-time speedrun (though these aren't always the fastest routes). As long as there aren't obvious routing improvements when compared to your resulting TAS, a judge will likely not reject it for routing reasons. It's not uncommon for already published runs to obsoleted by better routing.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
FractalFusion wrote:
Does anything different happen if you try RTC times that aren't multiples of 1000?
No. As with my testing in SQ1, it took at least a change of 1000 to elicit a different RNG seed. EDIT: For clarification.... All values from 0-999 in the initial RTC yield the same RNG seed when it is first set.
DrD2k9
He/Him
Editor, Experienced Forum User, Expert player, Judge, Published Author (2036)
Joined: 8/21/2016
Posts: 1009
Location: US
Ok I'm struggling to put together my RTC spreadsheet. The changes are more complicated than with SQ1, but I'm not sure why. Here's a spreadsheet with the first 52 seeds. As you can see, The difference between one seed and the next mostly follows a cycle, but there are some anomalies that I don't understand. This is making it much more difficult to complete the list of 65535 potential seeds as I did with SQ1. (There were anomalies there as well, but much easier to overcome.) If it helps, the first seed is set at game time 1448 ms. So in my mind, the time in milliseconds-from-midnight when the seed is set should be (the starting RTC time + 1448). EDIT: Updated Spreadsheet EDIT 2: I found some errors in the spreadsheet...starting from scratch on this one.