#1  
Old 21st January 2013, 10:11 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,256
Default Smallest RSP microcode?

I am interested in testing cycle-accuracy using the smallest RSP microcode.
I don't mean the size of IMEM obviously, just how much is executed.

Naturally, graphics and audio tasks are much more complex and for complex media and effects, so I rule those out.

There is a narrow handful of games that use other task types. Not interesting in this array are the JPEG decompresses used by Pokemon Stadium or the massive HVQM video tasks used by Pokemon Puzzle League.

The smallest I have seen so far is used by Zelda OOT.
http://dl.dropbox.com/u/16494013/n64...64_startup.txt

Task type = 4 (like the JPEG tasks used by PKMN/2, but obviously not JPEG-purpose).
I believe it is a CPU signal checker for whether to debug a 64DD add-on or the like.

I am not exactly interested in the purpose, but being the smallest ucode I've seen so far I think it could prove interesting for comparisons.
Reply With Quote
  #2  
Old 23rd January 2013, 02:19 AM
MarathonMan's Avatar
MarathonMan MarathonMan is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Jan 2013
Posts: 454
Default

I'm quite deep into my implementation of a cycle-accurate RSP. I don't use official ROMs for testing, but if you're trying to generate an incredibly small ucode task, I wrote an assembler that will do just that.

I can't post URLs yet (I need at least 5 posts and I'm a new member), look at the 'rspasm' project at github. My username is tstache1.

Code:
beq $0, $0, -4
nop
Reply With Quote
  #3  
Old 23rd January 2013, 09:52 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,256
Default

Yes MarathonMan thanks for letting me know; I have been following your work.

I have never looked into a cycle-accurate emulator before, so I'm sure I will be analyzing what you have done for help as well to give me some clues.
It would also be nice to start programming small RSP ucodes for testing on a 64Drive / NeoMyth, even if I have to send it to someone else who has one of those.

And I'm sure I probably don't need to explain this to you, by the way, since now you have access to the OS documentation, too, but my cycle count analysis was based on the optimization technique of interweaving SU and VU instructions side by side.

If for one SU inst, there is a VU inst in the delay slot, both instructions are executed in a single cycle (hence the purpose of VNOP instead of just using NOP all the time, I believe), and vice versa.

But I have not extracted much information besides that as of yet, so with the opportunity for reversing I'm sure I'll pick up from your progress as well.
Reply With Quote
  #4  
Old 24th January 2013, 01:52 AM
mudlord_ mudlord_ is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Dec 2012
Posts: 383
Default

cycle accurate bullshit, you people both make me sick

/me adds yous both to The List.
Reply With Quote
  #5  
Old 24th January 2013, 03:12 AM
zilmar zilmar is offline
Core Team
Alpha Tester
Project Supporter
Administrator
 
Join Date: Jun 2005
Posts: 988
Default

pj64 was always meant to be cycle accurate .. I just never got around to it since things just worked when giving things a fixed value instead of calculating the correct values.

Tho it might help the games developed by Boss Game Studios (so Twisted Edge Snowboarding, World Driver Championship, Stunt Racer 64)
Reply With Quote
  #6  
Old 24th January 2013, 09:28 AM
mudlord_ mudlord_ is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Dec 2012
Posts: 383
Default

ah,

well I just hope you people don't implement it how byuu does.

Do that and I will be happy.
Reply With Quote
  #7  
Old 24th January 2013, 07:51 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,256
Default

Quote:
Originally Posted by zilmar View Post
Tho it might help the games developed by Boss Game Studios (so Twisted Edge Snowboarding, World Driver Championship, Stunt Racer 64)
Yeah good point I was starting to think about that.

I even removed angrylion's cycle hack and broke all those games on purpose to keep the code pure and direct, but I expect that challenging my skills by optimizing speed for a cycle-accurate emulator won't be without the incidence of also fixing games like that.

Btw your SP semaphore support to the core you just added, it seems ever since then I get recompiler or interpreter, either one crashes Twisted Edge? I can't seem to start up the game without crashing on either core in the newest alpha; might be you've triggered something cool with the semaphore support.
Reply With Quote
  #8  
Old 24th January 2013, 07:54 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,256
Default

Quote:
Originally Posted by haxatax View Post
ah,

well I just hope you people don't implement it how byuu does.
Hmm, for the comment you just made? I'm inclined to consider either or.

I will implement in my designs what defies the majority's expectations.

zilmar wishes to inspire happiness; I wish to inspire intelligence.
Even though pissing off the majority user-base isn't a direct way of achieving that, but neither is just trying to make games fast all the time. My RSP plugin is already fiercely fast for an interpreter; I know it could be both faster if I really cared only about speed, and slower if I was really as cruel and hateful as byuu.
Reply With Quote
  #9  
Old 24th January 2013, 11:11 PM
mudlord_ mudlord_ is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Dec 2012
Posts: 383
Default

What the fuck happened to you?

When did you turn into one of byuu's disciples?
Reply With Quote
  #10  
Old 25th January 2013, 12:16 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,256
Default

Well I just don't want to be the same as everyone else.

If emulation had only been done one single style or technique all along, wouldn't you want to learn more from being different?

I don't think it's comparing myself to byuu necessarily; I just imitated that to tease you XP

You already had your chat with Hacktarux about cycle accuracy, back when you used to respond against it in terms of logic, but nowadays it seems just the name itself is hateful to you. I'm not really going for cycle accuracy as a top goal by any means; I just think that since my interpreter plugin is already pretty fast I could use a little more challenge to test my ability to optimize for speed.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 09:56 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.