Giter Site home page Giter Site logo

lmp88959 / pal-crt Goto Github PK

View Code? Open in Web Editor NEW
83.0 83.0 7.0 2.55 MB

PAL encoding/decoding in C89 using only integers and fixed point math. Supports NES decoding. Can be used as an image filter for games or real-time applications.

License: Other

CMake 2.52% C 97.48%
emulation filter fixed-point image-processing pal software-rendering

pal-crt's People

Contributors

lmp88959 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pal-crt's Issues

Integration into puNES emulator.

This time too you did a great job, I started to integrate the filter except that there are some things I would like to ask you. First, I have the same warnings I had with NTSC-CRT, could you take a look at it?
Second, using pal.c the output image I get is "deformed" as if it were stretched, look at the screenshot I attached to understand better, could it depend on the input image which has a size of 256x240? I would solve the problem using pal_nes.c (the output image is perfect) only I would lose the possibility of using the palette that the user can change in the video settings because in this mode the color of each pixel is calculated by decoding the 'pixel 6-bit or 9-bit NES. Wouldn't it be possible to use the palette color as in PAL_SYSTEM_PAL mode?
PAL-CRT-01

Unable to compile

I cannot seem to get it to compile, no matter what I try whether I'm using Linux (as in Linux Mint) or Windows (Windows 10).

(output from Linux Mint)

[ 14%] Building C object CMakeFiles/pal.dir/pal_core.c.o
[ 28%] Building C object CMakeFiles/pal.dir/pal.c.o
[ 42%] Building C object CMakeFiles/pal.dir/pal_nes.c.o
[ 57%] Building C object CMakeFiles/pal.dir/pal_main.c.o
/home/repellantmold/Desktop/PAL-CRT/pal_main.c: In function ‘main’:
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:231:53: warning: passing argument 5 of ‘pal_init’ from incompatible pointer type [-Wincompatible-pointer-types]
  231 |     pal_init(&crt, outw, outh, PAL_PIX_FORMAT_BGRA, output);
      |                                                     ^~~~~~
      |                                                     |
      |                                                     int *
In file included from /home/repellantmold/Desktop/PAL-CRT/pal_main.c:19:
/home/repellantmold/Desktop/PAL-CRT/pal_core.h:93:77: note: expected ‘unsigned char *’ but argument is of type ‘int *’
   93 | extern void pal_init(struct PAL_CRT *v, int w, int h, int f, unsigned char *out);
      |                                                              ~~~~~~~~~~~~~~~^~~
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:233:14: warning: assignment to ‘const unsigned char *’ from incompatible pointer type ‘int *’ [-Wincompatible-pointer-types]
  233 |     pal.data = img;
      |              ^
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:237:8: error: ‘struct PAL_SETTINGS’ has no member named ‘as_color’
  237 |     pal.as_color = docolor;
      |        ^
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:238:8: error: ‘struct PAL_SETTINGS’ has no member named ‘field’
  238 |     pal.field = field;
      |        ^
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:239:8: error: ‘struct PAL_SETTINGS’ has no member named ‘raw’
  239 |     pal.raw = raw;
      |        ^
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:241:8: error: ‘struct PAL_SETTINGS’ has no member named ‘color_phase_error’
  241 |     pal.color_phase_error = phase_error;
      |        ^
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:256:16: error: ‘struct PAL_SETTINGS’ has no member named ‘field’
  256 |             pal.field++;
      |                ^
/home/repellantmold/Desktop/PAL-CRT/pal_main.c: In function ‘promptoverwrite’:
/home/repellantmold/Desktop/PAL-CRT/pal_main.c:137:13: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  137 |             scanf(" %c", &c);
      |             ^~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/pal.dir/build.make:118: CMakeFiles/pal.dir/pal_main.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/pal.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

Make the modulator and demodulator independed

Hello! You have done a very hard and interesting job! But your demodulator can only be used with a modulator, which is not very natural. it would be much more interesting to have a sequence of analog signal samples at the output of the modulator. And the demodulator would only require it for input. Can you give advice on how to adapt this project for this? I would really like to make the modulator and demodulator independent of each other

Ported to Kdenlive

Hello!

I ported your library over to frei0r and it's now able to be used within Kdenlive.
Screenshot_2023-11-20_01-44-09
The only problem is that I can't release it because of the license on this repository that is not compatible with the GPL-3.0 (frei0r is licensed under the GPL).
I know this is a lot to ask, but is there maybe a possibility that the license of the repository could be changed to something that is compatible with the GPL?
I'd completely understand if you don't want to do this, then I'll just keep this port for myself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.