Posts for Pasky13


1 2
7 8 9
20 21
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Can someone help me use the deflicker script on an avi using virtual dub? I tried to open the script after pasting it to a file and I get "The scripts return value was not a video clip" Could someone give me an example script using C:\myavi.avi as an example? Just want to run deflicker on this encode, thanks. This script: http://pastebin.com/JNJQKHm9
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Here's a lua script I created for this game that displays enemy life, Arthur's hitbox, enemy hitboxes, the triggers for hidden chests, and Arthur's weapons/magic. http://pastebin.com/xysUDVpz ISSUES:
  • I'm unable to tell if a projectile (green) box is "active", for instance the 1st stage boss has a big projectile box in front of its face, but no hit detection occurs, stage 5's boss has a strange hitbox detection as well, as well as the demons in stage 4 with the tail trails (their tails have boxes but you're unable to register a hit if you hit their tails).
  • Didn't bother to find arthurs hitbox when he is transformed by the magician.
  • Also didn't bother to find his shield's hitbox either.
  • Sometimes the same object structure that previously held an enemy's life value will display a number indicating its HP value when it doesn't have one. This is because the game doesn't clear out the HP value when it reuses the object structure.
Other than that, the script works great. I have no idea what some of the red boxes in stage 1 do, the third big one triggers a ground shift, but some don't. BLUE BOX = Arthur's vulnerability RED BOX = Touch collision, if Arthur's blue box touches the red box he takes damage, or gains the item. GREEN BOX = Projectile collision box. WHITE BOX = Arthur's weapon/magic. Numbers over enemy's are their remaining HP, numbers on Arthur's weapons/magic are the damage it will deal. Enjoy! NOTE: For some reason the default LUA51.DLL that comes with the current archive on snes9x's googlecode page doesn't display RED or white when using GUI.BOX (and possibly other functions). It works fine when I use the mame-rr lua51.dll that was in this archive: http://code.google.com/p/mame-rr/downloads/
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Patashu wrote:
Pasky13 wrote:
That wouldn't help if he needs to know when the value is written to though. For instance, what if a game writes the value once when a button is pressed but never wipes it from memory, and the next frame the same button is pressed and the same number is written. I don't think there is anyway to do this in lua, you'd probably need to set breakpoints if the emu has a debugger.
If you only want to know when the value changes at a frame boundary, you can remember what the value from the previous frame was, compare, print if it differs and set it to the new value.
That was my point, what if an enemy spitting a fireball wrote a value of '5' to memory, but the game never resets it to '0' when it doesn't throw a fireball but it did the same thing on the following frame. Since you're looking for a change, there would be no way to tell the enemy did it twice in a row. It'd be nice to have some sort of feature that can detect when an address is written to similar to a 'break on write'. Sorry if off topic a bit.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
That wouldn't help if he needs to know when the value is written to though. For instance, what if a game writes the value once when a button is pressed but never wipes it from memory, and the next frame the same button is pressed and the same number is written. I don't think there is anyway to do this in lua, you'd probably need to set breakpoints if the emu has a debugger.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Same tactic over and over, very boring.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Cool thing to do...I just don't see this being publish worthy, I really don't care how many times a button was pressed and honestly wouldn't know unless you displayed it like video. Gonna vote no. *shrug*
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Is there a lua script someone has made for this game? I'm curious if there was one made for determining which frame has critical hits, successful escape from battle, what 'prayer' outcome you'll get....etc... has been done.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
I used MESS to debug FFIV's monster encounter formula. It's got some pretty useful functions the snes9x debugger doesn't. I've been playing around with BSNES's new debugger laevateinn and it's quite useful. It lacks some necessary features like a "goto" disassembly address and memory searcher, but I still prefer it simply because I know BSNES is more accurately emulating the SNES hardware than anything else out there. It has a trace feature. http://bsnes.googlecode.com/files/laevateinn_v086.7z Here's a nice document on the 65C816 that includes a instruction set and description: http://www.westerndesigncenter.com/wdc/datasheets/Programmanual.pdf
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Is it open source? I'm not trying to fling stones because I love the fact that someone finally used BSNES to make a re-recording emulator but this is one of the most unintuitive gui's I've ever had to deal with in any software =/.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Gets a bit repetitive.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Any updates for the encode?
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
No more input delay on the TG16 games using revision 1918. Looking forward to using this emulator more :).
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
SVN 1891: I mapped my controller inputs using my PS3 controller with motion joy emulating a xbox 360 pad. The NES controls work fine when playing a game. If I try to play a TG16 game like Bonk III, there is major input delay on button presses and sometimes a button press is never recognized with all buttons. Also, a minor issue and hope this is added, BizHawk doesn't recognize the L2/R2 triggers for a 360 controller for mapping.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
creaothceann wrote:
emulator comparison via game intro (no$sns thread on nesdev) (no$sns thread on the bsnes forum)
Maybe it's because I'm colorblind, but I have no idea what this is showing...=/
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Not sure if this was already mentioned or if it's still a WIP but the TAS studio is not working at all. If I play a NES (also tested TG16) rom and press pause in the studio, the pause will work, but pressing the frame advance button resumes the emulation and none of the buttons in the tas studio will work again. Also, you're unable to map left shift or right shift to the controller mappings.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Is there a debugger or a way to step through code while viewing registers etc...? I noticed there was one for NES, are there plans to add debuggers to the other consoles (in particular TG16)? Thanks.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Waiting for a non-nico video upload...
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
henke37 wrote:
Similar? Dude, the thing runs ds games.
It may have an extended instruction set...or just include the CPU the DS used. Unfortunately I'm too lazy to go look it up :P.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
arflech wrote:
wait so has the encryption been cracked, or will this only allow homebrew
More than likely home brew. Also, Slowking was definitely being an ass.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Level 2 complete. Link to video
I think.....therefore I am not Barry Burton
Post subject: Silent Debuggers
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Here's a WIP of level 1. I am going to re-do this level, I see ways in which I can improve on it and save some frames. Not sure if I'll submit the completed game since it is quite repetitive, but I will definitely be completing this over time. Link to video
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
A very powerful one.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Cheat engine works, only problem is values inside of Dolphin are big endian. So looking at a 2/4/8/float/double value can be troublesome unless you write a custom scan script for Cheat Engine. 2 Byte Big Endian Custom Scan:

//2-Byte big endian scan

alloc(TypeName,256)
alloc(ByteSize,4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)

TypeName:
db '2 Byte Big Endian',0

ByteSize:
dd 2

//The convert routine should hold a routine that converts the data to an integer (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
//jmp dllname.functionname
[64-bit]
//or manual:
//parameters: (64-bit)
//rcx=address of input
mov ax,word [rcx] //eax now contains the bytes 'input' pointed to
xchg ah,al

ret
[/64-bit]

[32-bit]
//jmp dllname.functionname
//or manual:
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//example:
mov eax,[ebp+8] //place the address that contains the bytes into eax

mov ax,[eax] //place the bytes into ax so it's handled as a normal 2 byte value
xchg ah,al

shl eax,16
shr eax,16

pop ebp
ret 4
[/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
//jmp dllname.functionname
//or manual:
[64-bit]
//parameters: (64-bit)
//ecx=input
//rdx=address of output
//example:
push rcx
//bswap ecx
xchg ch,cl
mov [rdx],ecx //place the integer the 4 bytes pointed to by rdx
pop rcx

ret
[/64-bit]

[32-bit]
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//[ebp+c]=address of output
//example:
push eax
push ebx
mov eax,[ebp+8] //load the value into eax
mov ebx,[ebp+c] //load the address into ebx

//bswap eax
mov dword [ebx],0

xchg ah,al
mov [ebx],ax //write the value into the address

pop ebx
pop eax

pop ebp
ret 8
[/32-bit]

4 Byte Big Endian Custom Scan:
//4 Byte Big Endian Scan
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)

TypeName:
db '4 Byte Big Endian',0

ByteSize:
dd 4

//The convert routine should hold a routine that converts the data to an integer (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
//jmp dllname.functionname
[64-bit]
//or manual:
//parameters: (64-bit)
//rcx=address of input
mov eax,[rcx] //eax now contains the bytes 'input' pointed to
bswap eax

ret
[/64-bit]

[32-bit]
//jmp dllname.functionname
//or manual:
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//example:
mov eax,[ebp+8] //place the address that contains the bytes into eax
mov eax,[eax] //place the bytes into eax so it's handled as a normal 4 byte value
bswap eax

pop ebp
ret 4
[/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
//jmp dllname.functionname
//or manual:
[64-bit]
//parameters: (64-bit)
//ecx=input
//rdx=address of output
//example:
push rcx
bswap ecx
mov [rdx],ecx //place the integer the 4 bytes pointed to by rdx
pop rcx

ret
[/64-bit]

[32-bit]
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//[ebp+c]=address of output
//example:
push eax
push ebx
mov eax,[ebp+8] //load the value into eax
mov ebx,[ebp+c] //load the address into ebx

bswap eax
mov [ebx],eax //write the value into the address

pop ebx
pop eax

pop ebp
ret 8
[/32-bit]
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Is lua going to be implemented in Dolphin or is it already and I'm just missing where it is?
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Anyway to implement some of the commented out lua functions? Gui.drawpixel in particular. Quite a few are missing but seem to have the framework in the source but commented out. Also, functions like joypad.set() don't seem to work properly. I'm using: Joypad.set(1,{"II"}) and it isn't pressing the button.
I think.....therefore I am not Barry Burton
1 2
7 8 9
20 21