Homebrew Discussion Switch overclocking released (improved N64 & PSX emu)

  • Thread starter Thread starter M7L7NK7
  • Start date Start date
  • Views Views 169,253
  • Replies Replies 770
  • Likes Likes 21
That is an optimisation, no matter how BIIIIIIG it is.

Adding additional options is not optimization. Optimizing is working with what you have. Altering/editing/changing the code that is there, not bringing in an entirely new piece.

op·ti·mi·za·tion
/ˌäptəməˈzāSHən,ˌäptəˌmīˈzāSHən/
noun
  1. the action of making the best or most effective use of a situation or resource.
 
Adding additional options is not optimization. Optimizing is working with what you have. Altering/editing/changing the code that is there, not bringing in an entirely new piece.

op·ti·mi·za·tion
/ˌäptəməˈzāSHən,ˌäptəˌmīˈzāSHən/
noun
  1. the action of making the best or most effective use of a situation or resource.

However that definition is very loose.
The situation or resource could be the hardware, the developement software and the idea..
And if you think about it that way, any route you take to make the product work better is optimization (Even if that means that you have to take new approaches)

However I could also see dynarec being presented as a feature or option.
When I am thinking about optimizing my code (Im not a professional or even very advanced)
I think "How can I get the desired result with less resources and hardware effort?".

Often when I optimize software I think about making the code I have a bit more efficient like taking shortcuts and making sure that I don't use larger datatypes than the task requires.
But the result usually stays the same with higher performance.

When I think dynarec the result won't be the same (For the player it might not make a difference though.. Apart from the performance).
A lot of the time Dynarec can be very inaccurate and developers have to struggle to find the right balance.

But each to their own I guess..
 
Last edited by DaniPoo,
Adding additional options is not optimization. Optimizing is working with what you have. Altering/editing/changing the code that is there, not bringing in an entirely new piece.

op·ti·mi·za·tion
/ˌäptəməˈzāSHən,ˌäptəˌmīˈzāSHən/
noun
  1. the action of making the best or most effective use of a situation or resource.

effective
/ɪˈfɛktɪv/
adjective
  1. 1.
    successful in producing a desired or intended result.
    "effective solutions to environmental problems"
    synonymes : successful, effectual, efficacious, productive, constructive, fruitful, functional, potent, powerful;
:unsure:
 
Adding additional options is not optimization. Optimizing is working with what you have. Altering/editing/changing the code that is there, not bringing in an entirely new piece.

op·ti·mi·za·tion
/ˌäptəməˈzāSHən,ˌäptəˌmīˈzāSHən/
noun
  1. the action of making the best or most effective use of a situation or resource.

Right, you make the most of your CPU by replacing the interpreter with a DRC/JIT.

Replacing one algorithm with another completely different algorithm that achieves the same result is an optimisation. For example optimising a program by replacing the bubble sort with a quick sort.

An interpreter will fetch each opcode, decode it, execute some equivalent code and repeat, no matter how many times the code is run.

A DRC will fetch and decode the instructions and turn it into equivalent native code & then run that equivalent code multiple times.

The speed increase comes because you're performing less work for every emulated instruction, which is most certainly an optimisation.

Similarly a bubble sort and quick sort produce the same output, but the bubble sort swaps items way more often and is therefore slower.

A static recompiler is a further optimisation as the generated code doesn't need to do things like check whether the target of a branch has already been converted or not. But it's much harder to implement, because most systems you emulate have things you can only realistically know at runtime.

You are describing micro optimisations, which are generally pointless.
 
Last edited by smf,
I'm most interested in running games with the docked performance profile while handheld. I don't see any technical reason it wouldn't work: it'd be hot but no hotter than it gets in the dock.
 
  • Like
Reactions: Craftyawesome
Right, you make the most of your CPU by replacing the interpreter with a DRC/JIT.

Replacing one algorithm with another completely different algorithm that achieves the same result is an optimisation. For example optimising a program by replacing the bubble sort with a quick sort.

An interpreter will fetch each opcode, decode it, execute some equivalent code and repeat, no matter how many times the code is run.

A DRC will fetch and decode the instructions and turn it into equivalent native code & then run that equivalent code multiple times.

The speed increase comes because you're performing less work for every emulated instruction, which is most certainly an optimisation.

Similarly a bubble sort and quick sort produce the same output, but the bubble sort swaps items way more often and is therefore slower.

A static recompiler is a further optimisation as the generated code doesn't need to do things like check whether the target of a branch has already been converted or not. But it's much harder to implement, because most systems you emulate have things you can only realistically know at runtime.

You are describing micro optimisations, which are generally pointless.
I cant believe u compare a dynarec to bubble sort and talk about micro optimisations.
 
I'm most interested in running games with the docked performance profile while handheld. I don't see any technical reason it wouldn't work: it'd be hot but no hotter than it gets in the dock.

So you wanna have worse framerates in handheld?

The only way this would be helpful was if the resolution stays at 720p.
 
So you wanna have worse framerates in handheld?

The only way this would be helpful was if the resolution stays at 720p.

XC2 looks WAAAAY better docked than in handheld, would be the main reason to do this. Leaving the screen on at the same time does produce more power draw than normal docked mode, plus it's drawing from the power adapter rather than the battery, so there COULD be issues drawing that much power from the battery. Might be completely fine, though. M4 did say that overclocking the CPU didn't cause as much additional heat as even slightly overclocking the GPU, so who knows.

CPU OC just seems like a way safer OC right now, and solves all of our issues with PSX and n64 (short term).

And you guys complaining about optimization are nuts, do you want full speed PSX and n64 NOW, or LATER?
 
XC2 looks WAAAAY better docked than in handheld, would be the main reason to do this. Leaving the screen on at the same time does produce more power draw than normal docked mode, plus it's drawing from the power adapter rather than the battery, so there COULD be issues drawing that much power from the battery. Might be completely fine, though. M4 did say that overclocking the CPU didn't cause as much additional heat as even slightly overclocking the GPU, so who knows.

CPU OC just seems like a way safer OC right now, and solves all of our issues with PSX and n64 (short term).

And you guys complaining about optimization are nuts, do you want full speed PSX and n64 NOW, or LATER?

The CPU overclock is small compared to the GPU one, going to 1.5GHz is a 50% overclock on the CPU ... while reaching the docked clocks is a 150% overclock !
 
I cant believe u compare a dynarec to bubble sort and talk about micro optimisations.

I didn't, you either misread my post or you're trolling.

micro optimisations are where you optimise parts of the code, rather than completely change the algorithm. DollyWhipDoll thinks micro optimisations are the only type, the rest of the computing world knows better.

switching to dynarec from interpreter is one example of changing the algorithm to optimise the code, to drive my point home I gave another example of changing an algorithm being an optimisation when switching to quick sort from bubble sort.

tl;dr changing to a dynarec is an optimisation.
 
Last edited by smf,
tl;dr terminology debates are rubbish.

Yeah, rather find out if the CPU OC's might lead to something like DC emulation (even if it's at 5fps, it's still an indicator of what could be to come, albeit a faint one). Or better DS emulation even if I don't really think using your fingers to replace the stylus is a very good idea!

Still, development towards dynarecs is definitely something that should be in the cards. We finally got the RA team on the Switch, and that can only mean good things to come.

Though, if I may ask, do shaders work? I remember trying some while playing SOTN and while some, when incomplete, did give results, others didn't seem to make a damn difference in my eyes. (Granted, this is while it was in portable mode while I was at college and far away from a dock!)
 
Last edited by Silent_Gunner,

Site & Scene News

Popular threads in this forum