Comments (5)
I believe the 'ugly scanline rasterizer effect' is the correct effect.
http://www.mobygames.com/game/snes/kirbys-dreamland-3/screenshots/gameShotId,27791/ is wrong. Kirby 3 uses pseudo hires mode to draw 'transparent' graphics.
I tested Kirby 3 on the Mac build of 1.52 and current master branch and found no differenes.
from snes9x.
The issue of Primal Rage seems bad timings between CPU and APU, which cannot be treated well within current poor accuracy of snes9x. Timings.APUAllowTimeOverflow will avoid this problem.
from snes9x.
The problem with the pseudo hires effect is that on normal hardware it will produce a transparency effect similar to that screenshot (i.e. the scanlines aren't that noticeable). If you use blargg's NTSC filter you will get the desired effect.
It would be nice to have an optional blending effect like you will get in bsnes, but that is currently not available.
In summary: the kirby effect is not a result of the new SA-1 core, it's been present since (AFAIK) 1.43. Primal Rage is a result of the new APU core, I've already commited a fix - thanks for reporting.
Regarding noticeable improvements: the changes fix various graphical issues in a few games, for example "F-1 Grand Prix", "Sink and Swim" or "Battle Blaze".
from snes9x.
Thanks for the responses. It looks like in the future I will have to make do with manually optimizing the PS3 build to make up for any performance regressions. There are a couple of things I dabbled with yesterday that can definitely improve performance - such as turning the for loops in the SuperFX code (fxemu.cpp) into do while loops and iterating the counter value by 4 so that the PPU is at least kept busy. Even something as trivial as unrolling for loops can have a definite beneficial effect on
performance.
It doesn't help that we have barely any devices to properly profile and debug - Themaister wrote a networked stdio client that allows us to do gcov profiling, but we can't do anything meaningful so far with the profile data other than basically playtesting on the PS3 with the stdio wrapper on, dumping the data to the PC, then letting the compiler compile with the profiling data and hope through some black magic that it will be sped up. There's still no idea on our end as to which parts constitute the 'hot code', or where the Load-Hit-Store penalties might occur. Basically, reading through some PPU optimization documents, it seems every boolean if predicate means a branch and PPU stall, and their solution is basically bitmasks and isel/fsel everywhere.
None of this was an issue up to now because everything ran above 60fps except for two games (Vortex and Star Fox 2 - although they're getting there now as well) that sometimes dipped below 60fps. I guess sticking as closely to the original codebase as possible isn't an option anymore and I will have to start with optimising for PPC in-order aggressively.
Overall, SNES9x up to this point seemed to really scale well on an in-order PPC system like PS3 with close to no optimizations - which is something to be proud of, as bSNES by comparison can barely get above 50fps on Themaister's PS3 port.
from snes9x.
squarepusher: If your optimizations have no ill effects, then create a git branch or some patches for them, and we'd be glad to accept them.
from snes9x.
Related Issues (20)
- Feature Request - Graphical Enhancements HOT 4
- Poi Poi Ninja World (Sufami Turbo) HOT 3
- Sway/Wayland/wlroots instant crash HOT 15
- [Feature request] Opposite d-pad input resolution options
- [steam deck] hotkeys not working with touch menu HOT 2
- Snes9x crashing after monitor sleep HOT 6
- When compiling, 1.62.3 requires portaudio, HOT 4
- [Feature Request] Add menu option to change location of snes9x.conf file HOT 2
- `Save states` Problem HOT 2
- Joypad configuration unresponsive HOT 1
- Super Star Wars: The Empire Strikes Back crashes on the Millennium Falcon level HOT 2
- [REQUEST] NTSC/PAL (50/60Hz) (auto)switch
- Super Gussun Oyoyo 2 HOT 1
- Unable to Load Game HOT 2
- [REQUEST] Hotkey for Maintain Aspect Ratio 4:3 <-> 8:7 HOT 2
- On a 4MB SuperFX ROM with a custom XML, the SCMR Register RAN bit behaves as RON bit, causing a lock up and crash. HOT 20
- Snes 9x x64 1.62 and + Saves folder false error HOT 7
- Update 1.63 HOT 26
- Request: When selecting a save slot #, note if it's empty or used HOT 3
- Request: Some Cheat Search & Editor improvements HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from snes9x.