Nicolas Electronics

Electronic projects and programming

Ping Google DNS with your PSVita

As I said in a previous post, I’ve contributed to some samples for the VITASDK.

This one is interesting to me as I’ve never used sockets before.
This sample is going to ping the Google DNS server 8.8.8.8.

I have to admit that I scratched my head for a while when trying to ping my laptop and not getting a response even though I saw the ping request in Wireshark.
An IRC (#henkaku & #vitasdk) user by the name of xyz told me to try to ping 8.8.8.8 and that the firewall in my laptop might be blocking the PSVita’s ping request.

He was right! I pinged 8.8.8.8 and I immediately got a reply… Stupid laptop…
(more…)

Update on my Fast Fourier Transformation library

You can find my FFT library on github now : https://github.com/pyroesp/libFFT

Since I started my PSVita FFT homebrew, I’ve added three things:

  • I’ve added a function to convert the amplitude values to decibel through a 20*log() function.
  • I’ve added windowing, through a function that pre-computes a lookup table. You can now choose between 7 different windowing functions:
    • Rectangular window
    • Triangular window
    • Hanning window
    • Hamming window
    • Blackman window
    • Nuttall window
    • Flat top window
  • There are 3 important defines that need to be set: FFT_POINT, FFT_POINT_2, FFT_STAGES. These have now received a default value of respectively 512, 256 and 9. These can be set through the Makefile or through the CMakeLists file if you want more or less points.

Don’t forget to read the README file for more info.

The library is under Creative Commons Attribution-ShareAlike 4.0 International license, for more info see the LICENSE file.

– pyroesp

Fast Fourier Transform on the PSVita

As some of you may know the PSVita, just like its predecessor the PSP, has been hacked and reverse engineered to allow unsigned code execution on FW3.60.

I’m not going to go into the details of how you develop programs for the PSVita.
Here’s the VITASDK and here are some samples, which I’m glad that I could contribute to.

I’ve done a couple of programs for the PSP a while back and thought I could try again on the PSVita.

Having done a crude embedded spectrum analyzer before, see my earlier How to program an FFT posts, I wanted to try to program an FFT on the PSVita.
(more…)

Reverse Engineering the Playstation G-CON 45

I’ve recently been interested in my old Playstation 2.
Having played with the Playstation 2 when I was younger I remember the fun my brother and I had playing Time Crisis 3 with the G-CON 2 and the G-CON 45.

Now, most (all?) older version light guns don’t work on the newer flat screen TVs.
This is because of how they process / display the frames.

I researched how the G-CON45 works and it uses what’s known as the cathode ray timing method.

To my understanding, every H-SYNC increases the Y-coordinate by 1. The X position is determined by the timing between two H-SYNC and when the sensor sees the change in brightness of the “pixel” on a CRT TV, due to the electron beam hitting the phosphor.
Then it’s just a matter of passing on those coordinates to the Playstation and a bit of collision detection to determine if you hit a “bad guy” or not.

After a bit of research on google, I couldn’t find any claims that approved or disapproved my understanding of the G-CON 45.
So I did what I usually do, crack it open, see what’s inside and google again.

Here’s the PCB reverse engineered. It’s a small board and didn’t take too long to make.
The capacitor values might be wrong, I’m using one of those €20 component tester.
(more…)

CHIP-8 Emulator

Hey, it’s been a while since I posted something new here.

I’ve always wanted to try my hand at an emulator and didn’t want to start with something too difficult like a true retro console. I searched for something to emulate and found out about the CHIP-8.

It has 35 different instructions encoded in a 2 byte opcode, 16 one byte registers, 2 timers, a hexadecimal keypad, a memory of 4096 bytes where the program starts at address 0x200 and a screen with a resolution of 64 pixels by 32 rows. The display buffer starts at 0xF00 and ends at 0xFFF.
(more…)

Previous Posts

Theme created by thememotive.com. Powered by WordPress.org.