Dolphin, the GameCube and Wii emulator - Forums
Programming Discussion Thread - Printable Version

+- Dolphin, the GameCube and Wii emulator - Forums (https://forums.dolphin-emu.org)
+-- Forum: Offtopic (https://forums.dolphin-emu.org/Forum-offtopic)
+--- Forum: Delfino Plaza (https://forums.dolphin-emu.org/Forum-delfino-plaza)
+--- Thread: Programming Discussion Thread (/Thread-programming-discussion-thread)



RE: Programming Discussion Thread - delroth - 01-31-2015

(01-31-2015, 04:43 PM)Anti-Ultimate Wrote:
(01-31-2015, 09:20 AM)delroth Wrote: Do I look like I care about Windows?
That's nice and all, but it's probably the reason no one cared. 

I mean, it's totally reasonable and easier to do on Linux, but it's like saying no one is coming to your restaurant that is in the middle of the Sahara.

What I call caring is not "moral support" and "user complaints". What I call caring is actual contributions to the project. And anyone who has enough of a clue to contribute to the project understands the reasons why it wasn't built on Windows.


RE: Programming Discussion Thread - AnyOldName3 - 02-01-2015

There was documentation for libdrc? How come I couldn't find it when I needed it?

You need to realise, though, that when you're basically the leading expert in something, no-one's going to have a clue what's going on without nagging you over and over. You did a new thing, and so are the only one that knows how to do that thing.


RE: Programming Discussion Thread - KHRZ - 02-02-2015

Question: If you have a .dll file rather than the uncompiled c++ code, will this let you use it in visual studio without any compilation problems, and having all the same functionality as before? It sounds kinda obvious, yet too good to be true after all my struggles.


RE: Programming Discussion Thread - tueidj - 02-02-2015

No, you can't implicitly link a .DLL without a matching import library.


RE: Programming Discussion Thread - KHRZ - 02-03-2015

OK my question then... isn't the point of a .DLL that it is already built? Meaning when you build a program using the DLL, it will not have to compile anything from the .DLL? So is there not a way to avoid all the compile issues by using a .DLL?


RE: Programming Discussion Thread - Jack Frost - 02-03-2015

You need to know what the DLL provides (mainly function names in the form of prototypes) in order to use it.


RE: Programming Discussion Thread - KHRZ - 02-03-2015

So does anyone know a way to dump compressed video in C++ (from char arrays of RGB colors, not some mumbo jumbo format) that doesn't rely on some library that is "not recommended" to build on Windows?

EDIT: So I got video for windows actually working... not from the shitty Microsoft documentation, but by looking at AVIDump.cpp in Dolphin. Everything looks so simple until you encounter the compile errors-_-


RE: Programming Discussion Thread - delroth - 02-16-2015

My weekend project is "complete", just in time!

https://fifoci.dolphin-emu.org/compare/105059-104832/

FifoCI now running with Direct3D on Windows (in addition to OpenGL on Linux). Runner is in the cloud — $0.11/h, so I reused the scripts I already had for the OpenGL EC2 instance (https://github.com/dolphin-emu/sadm/blob/master/ec2/spawninstance.py) in order to be efficient when choosing to start a runner.

First time touching Windows in a while... even did some Powershell! https://github.com/dolphin-emu/fifoci/blob/master/runner/windows/run_fifo_test.ps1


RE: Programming Discussion Thread - KHRZ - 02-24-2015

Anyone know the best video compression to use for lots of small particles with small points? I tried a video with ffdshow Video Codec but it looked kinda bad:
https://www.youtube.com/watch?v=erPV4UFKwpE

Here's a more quality screenshot:
[Image: QTFRqA1.png]


RE: Programming Discussion Thread - Shonumi - 02-25-2015

So for the past few days, I've been busy trying to emulate one of the trickier (in my opinion) parts of the GBA: Special Effects. Although it's just brightness increase/decrease along with alpha blending, there are just a lot of rules that determine which pixels from which layer is supposed to change. There are also 3 "windows" the GBA uses that can limit the area of the special effects (and do other things too, like completely disable rendering of a certain layer inside or outside its boundary). The 1st two are rectangular and box-like, the last basically uses sprites as a mask. It's not 100%, but it's mostly done. Here's a sampling with before and after side-by-side


[Image: iSiDwQuBJguKu.png]

This one is a simple alpha blending between two backgrounds, and it's necessary to see Kyogre though, else, the start screen just isn't cool at all. Ruby and Emerald do similar things with their start screens.


[Image: iZEZxTluDBjbV.png]

This is the intro for Megaman Zero 2, another display of alpha blending, this time affecting every background layer but the topmost one (used for the intro text, not shown here). Without alpha blending, all you get is a bunch of blocky sand. It's interesting to see how they got the fullscreen dust effect with the unblended original background.


[Image: i3Lz0lw5eNRJB.png]

More alpha blending! Just like the Pokemon games, but it's nice to see stuff working as it should.


[Image: ifjO7LrzoskTx.png]

Here's a good example of alpha blending in action. It makes for nice menus, after all.


[Image: itiUIbxoEeMie.png]

Brightness increasing/decreasing doesn't get used for a lot of fancy effects. The obvious trick is to fade in and fade out (and many games do this manually anyway) or to make certain menus flash at a set rate. Sonic Advance uses them for lighting. I haven't peeked under the hood yet, but it looks like it's just making a window 1 pixel high per-scanline, and darkening everything outside that window, then adjusting the window size and position on the next line to dynamically get the slanted shape of the spotlight. It's a nice use of HBlank effects if that's really the case. A very similar effect happens in the intro (as Eggman gets the Chaos Emerald).


[Image: ibaikwBcD4pKHn.png]

Just implemented this feature (most of it anyway) today. Some sprites only act as a mask, in that they aren't drawn on screen, but any area covered by them can be used for special effects or displaying certain background layers. The Pokemon games put these to good use. In this picture, there are actually two sprites of Zigzagoon on top of each other. The first is the mask, which isn't drawn, the second is the actual sprite that gets displayed. The masked pixels tells the LCD to start blending one of the backgrounds pixels with pixels from the next lowest layer (which happens to be the 2nd copy of Zigzagoon). It's a pretty cool way to make the status changing effects.

The focus for February has been all of these graphical changes. Once these are done, March is going to be all about APU emulation.