Posts for Pasky13


1 2 3 4 5 6
20 21
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Rog is correct, you need to search for values in big endian format since the Wii CPU is powerPC (big endian). You can create a custom data type that does this for you. I posted this a while back. 2 Byte Big Endian:

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
xor eax,eax
mov ax,[rcx] //eax now contains the bytes 'input' pointed to
xchg ah,al //convert to big endian

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 eax so it's handled as a normal 4 byte value
and eax,ffff //cleanup
xchg ah,al //convert to big endian

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:
xchg ch,cl //convert the little endian input into a big endian input
mov [rdx],cx //place the integer the 4 bytes pointed to by rdx

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

//convert the value to big endian
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:
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
xor eax,eax
mov eax,[rcx] //eax now contains the bytes 'input' pointed to
bswap eax //convert to big endian

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:
bswap ecx //convert the little endian input into a big endian input
mov [rdx],ecx //place the integer the 4 bytes pointed to by rdx

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

//convert the value to big endian
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
I'll take your word for it then, I still don't like it haha :P. I like techno, but not like that, stuff like crystal method/chemical brothers (at least their old stuff, no idea if they're doing this now also). Anyways, I don't understand some of this video, unless you cut the clips. You had time saved and the new TAS clearly made it in the pipe to bowser at the same time, but they both exited it the same time. Did you cut the video there or is something else going on? EDIT: Okay I see now, re-watching it, I noticed you waited until the other video got to that point.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Nah that's definitely dubstep...maybe mixed with electro :P. And that's sweet that it's being released this year, can't wait to see all the new tricks.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
My own curiosity. You could tell me that until you're blue in the face and I won't believe it until I see it myself, I'm just sharing with others. If I had listened to that sort of advice (not saying you're wrong at all), I wouldn't have bothered with SNES after hearing countless people claim snes9x 1.51+ is accurate or even BSNES which desyncs on Megaman X2 intro and doesn't get the Yoshi's Island intro quite correct. Basically, I'm just wanting to see for myself and I'm quite pleased NES timing is very well done in all the latest emu's. It'd be interesting to see how nesticle and older NES emu's stacked up however.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Okay, I'm getting better at getting the quality right thanks to everyones help and suggestions. Time to test mapper #5. Castlevania III: 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
That video looks great (minus the music :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
Thanks I'll try that.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Agreed, I forgot to crop and noticed that after I uploaded. As far as audio...well that was from a real NES and....that's how a real nes works, it only has mono sound. I didn't split it into two channels.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Made a new 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
Cool, so it was fraps.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Ya, I made a mistake, I'll re-do when I get back from class, if not tomorrow morning.
I think.....therefore I am not Barry Burton
Post subject: Emulator timing (FCEUX/Nintendulator/Bizhawk)
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Here's a 10 minute clip of NG II looping the intro. I decided to capture Nintendulator because it has a reputation of being one of the most accurate NES emulators out there. 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
trlky wrote:
I hope no one will mind me talking about this. It's a bit tangential, but I think it illustrated how lsnes should be run.
creaothceann wrote:
It's just that byuu has a certain stance on the issue (ROM headers are worse than useless (patching problems), archives don't have enough benefits today and needlessly complicate the code) and I agree with him. You can even include a build of snespurify, in addition to the source.
The thing is, his arguments are all based on his idea for revolutionizing how people think about emulation, and not based on any real practical concerns. It's based on his idea of what people should want, and not on what people actually do want. These are the same things that people hate closed source programs for doing. His devotion to accuracy is commendable. His idea that there's one right way to handle emulation, including even how we have to arrange our files, is not. If you don't want to use a certain part of the code, don't lobby for it being removed, just don't use it. lsnes definitely should not remove things just because some people don't want them. Remove them because people aren't using them.
Well said.
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 think I had a SRAM for snes9x, and my cartridge also had a save. I never loaded the game in bizhawk before. I'm not going to bother to re-do, because the emulators that didn't match had a save and bsnes still matched the timing without it. I don't think it affects any thing.
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 Actraiser 2. Probably the last comparison I'll do. I used Snes9x 1.51, because 1.52 has major graphical glitches during the fight with Tanzra in the intro. 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
Ohhhh~ I was looking at the Zelda clip! I never even noticed that....wow! Learned something new about that game, thanks Nitrodon, haha.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Sword? I tried to see what you're talking about but don't notice it.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Compatibility. It's possible to compile it with either profile.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Super Mario RPG: Link to video I was going to do Megaman X2/X3....but the timing is incorrect even in BSNES. In X2, X will die in the boss cutscene during the intro, that doesn't happen on a real console.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
LSNES and Bizhawk bsnes cores are essentially the same. I know bizhawk uses the same patches illari made to the bsnes core. I think the only difference now is the determinism changes that were recently made to bizhawk's bsnes core.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
Nitrodon wrote:
The console version has cleared world 1, which may have affected the starting orientation of the spinning island.
Ah I didn't realize that. I'll check that out tomorrow. EDIT: Uploaded the video again and updated the link on the previous post. You were correct.
I think.....therefore I am not Barry Burton
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
EDIT: Nitrodon pointed out the save file on the console version had world 1 cleared which caused the spinning island section to look out of sync when it was just starting from a different position. I've made another capture with a blank save file. 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
CoolKirby wrote:
Wow, interesting. For the first few minutes, it looked like snes9x 1.51 was keeping pace with the SNES and BizHawk, but it gradually got slower until it was about a second behind after 10 minutes. It's reassuring to see how accurately BSNES emulates the console, especially since we can now TAS with that core.
It seems 1.51 actually got 1 second faster, not slower.
I think.....therefore I am not Barry Burton
Post subject: Re: Emulator timing (Snes9x (1.43/1.51) vs Bizhawk vs Console)
Experienced Forum User, Published Author, Former player
Joined: 5/4/2005
Posts: 502
Location: Onett, Eagleland
creaothceann wrote:
Pasky13 wrote:
deinterlacing
Try
Language: avisynth

DSS2("capture.avi") SeparateFields PointResize(Width, Height * 2)
(for DSS2 see here) If things don't appear to move correctly (frames being in the wrong order), try AssumeTFF or AssumeBFF before SeparateFields. If the picture appears to bob up and down, try QTGMC(ediThreads=1, preset="slow").
The picture looks good....but it's upside down? EDIT: FlipVertical() remedies it.
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 like how no one mentioned audio.
I think.....therefore I am not Barry Burton
1 2 3 4 5 6
20 21