Saturday, August 30, 2014

PspStatesMenu Pict Mod v0.6 released

Leecherman has updated the popular PSP plugin PSPStatesMenu. For those who don't know what PSPStatesMenu Pict Mod is, it's a plugin which allows you to save your game at any time and the games are saved with pics. So that you can easily load the game you have saved.

Changelog:
v0.6
+Updated EBOOT Installer.
+Improved Handling menu when delay thread option is enabled.
+Improved PSPGo support which prevent hangs when there is no MS inserted.


Source and download link at: http://wololo.net/talk/viewtopic.php?f=28&t=17270

Tuesday, August 19, 2014

Developer Suloku has just released Zelda Navi's Quest PSP port (+ updated 3T)

Developer Suloku has just released a port of the popular game Zelda. This is what the developer had to say about it.

Hi, last week Vincent Jouillat released his awesome new game for PC, and since I played the other 3 ports by Randall James Spychalla I decided to port the new one. I played it on the PSP to 100%, even though sometimes it might be a little slow it doesn't break gameplay.
An advice: save very often, since the PSP memory limits can make the game random crash (it is rare to occur, it happened only 4 times in a 14 hours game). This has happened to me in the other ports as well if anyone wants to know.

Download and updates at project page: https://sourceforge.net/projects/zeldansq/

Download 1.4b: http://sourceforge.net/projects/zeldans ... p/download

Full readme:
::::::::::::::::::::::::::::::::::::::::::::::::::::::
Zelda - Navi's Quest PSP (Version 1, 18 august 2014)
::::::::::::::::::::::::::::::::::::::::::::::::::::::
Based on PC version 1.4 http://www.zeldaroth.fr
+ A couple bugs present in 1.4 corrected

Get the most recent version at https://sourceforge.net/projects/zeldansq/

To Install:
Unzip and copy ZELDANSQ folder to /PSP/Game/

Requirements: You must be running a custom firmware to run this or any other homebrew.

Due to memory contrains, this won't work on the PSP 1000 (old phat model with infrared).

It can be played to 100% in the PSP (tested on a PSP Go with 6.20 2.2 ME custom firmware).

Known problems:
- Due to memory constrains, the game will randomly crash when entering a new map/transporting out of a dungeon. This happens very very rarely (one can play 2-3 hours straight without crashing) and the best way to prevent having to replay long parts of the game is to save frequently: when obtaining new objects, when arriving at a dungeon, when unlocking doors at a dungeon, when getting a substantial amount of money...
- A few parts of the game will slow down, mainly in large areas with 3-4 enemies on screen at the same time. These areas are few and the slowdown doesn't impede gameplay.
- Because of how the game timer is coded, when the psp is suspended the game will still count for gameplay hours. If you care about gameplay hours, you'll have to save your game, suspend, then quit the game and load your save when resuming play.

- Due to the slowdowns and how the game timer is coded, it might NOT be possible to achieve the SPEED RANK in the game (complete in less than 7 hours). This hasn't been tested, but I personally think the game can be completed in less than 7 hours in the psp.

Controls:

- Press SELECT while in game to view on screen explanation of all the controls.
- Press LTrigger + START to open the savegame dialog.
- Use the Home button to quit the game.


Go to the following address for updates/tech support:https://sourceforge.net/projects/zeldansq/

For walkthroughs and other info go to the authors site: http://www.zeldaroth.fr/us/

Ported to the PSP By: Suloku (2014)

Check out the other 3 games ported to PSP by Randall James Spychalla:
Return of the Hylian (1st game): https://sourceforge.net/projects/zelda-roth-psp/
Oni Link Begins (2nd game): https://sourceforge.net/projects/zeldaolb/
Time to Triumph (3rd game): https://sourceforge.net/projects/zeldat3/


Original Titles Team:
Vincent Jouillat: Programmer of Zelda ROTH and OLB and team leader for Zelda 3T.
webmaster@zeldaroth.fr
Lobalùz: Scriptwriter of OLB, translator and co-admin of the forum.
lobaluz@zeldaroth.fr
Harvestland: Graphist of OLB, site design.
harvestland@zeldaroth.fr
Raiden: Illustrator for ROTH and OLB, title screen and opening.
raiden@zeldaroth.fr


By the way, the project page is also hosting an updated Time to Triumph port with a couple bugs corrected and a little enhancement:
Spoiler
Time to Triumph PSP V3 changelog:
______________________________
- Fixed wagon bug (fixed in 1.11 PC version).
- Due to the game loading times, a certain timed event couldn't be done in time. The time for that event has been increased by 7 seconds.
- Corrected some untranslated text.
- Start button skips ocarina songs

- Restored loading the other 2 games savefiles:

Return of the Hylian: 3T will look for the save in the following paths in order:
1.- "../Zelda Return of the Hylian/data/save/system.dat"
2.- "../ZeldaROTH/data/save/system.dat"
3.- "data/save/roth.dat"

Oni Link Beggins: 3T will look for the save in the following paths in order:
1.- "../Zelda Oni Link Begins/data/save/system.dat"
2.- "../ZeldaOLB/data/save/system.dat"
3.- "data/save/olb.dat"

The other two game saves are needed for unlocking hidden content (if you have 3 ranks in ROTH and OBL, that is).

Recommended installation of the 3 games:
ms0:/PSP/GAME/Zelda Return of the Hylian/ --> because OLB looks only for this path
ms0:/PSP/GAME/ZeldaOLB/
ms0:/PSP/GAME/ZeldaT3/ 
Source: http://wololo.net/talk/viewtopic.php?f=2&t=39359

Thursday, August 14, 2014

Nifty Lifty v1.4 and Nibbler v1.2 released by Insoft

Two PSP homebrew games by Insoft just got updated.

Changelog for Nifty lifty:
  • Power UPs can now be reused, you must wait for a power up to fully recharge before you can collect it again.
  • The ability to goto a previous floor, handy when the power up was on the last floor you were just on.


 
 
Changelog for Nibbler:
  • Four new levels
  • Bug fixes
  • Improved graphics
 



Download link: http://www.insoft.co.uk/downloads.html

Thursday, July 10, 2014

Sidescrolling code snippet

Sidescrolling code by Ibrahim Ali Khan 

Sidescrolling code which can be a starter for many games. This was made in Visual C++ 2007. According to Ibrahim this was inspired by the side scrolling game flappy bird.


 
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <ctime>
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
void gotoxy(int x, int y)
{
 COORD pos;
 pos.X = x;
 pos.Y = y;
 SetConsoleCursorPosition(console, pos);
}
void box();
using namespace std;
void main ()
{
 for(int a=0;a<=10;a++)
 {
  box();
 }
}

void box()
{
 srand(time(0));
 int a,e=rand()%19+1,h=3,max=15;
 e=rand()%19+1; e=rand()%19+1; e=(rand()+rand()+rand()+rand())%19+1;
 if(e>15)
 {
  e=13;
 }
 if(e<4 data-blogger-escaped-a="10;a" data-blogger-escaped-e="4;" data-blogger-escaped-for="">=0;a--) //movement
 {
A:  int d=0;
  if(a==0)
  {
   for(int f=0;f<=19;f++)
   {
    gotoxy(a,d++);
    for(int g=h;g>=0;g--)
    {
     if(d>=e && d<=e+4)
     {
      cout<<" ";
     }
     else
     {
      cout<<(char)219;
     }
    }
   }
   if(h==-1)
   {
    break;
   }
   else
   {
    h--;
    Sleep(40);
    system("cls");
    goto A;
   }
  }
  for(int b=0;b<=19;b++) //length
  {
   gotoxy(a,d++);
   for(int c=0;c<=4;c++) //width
   {
    if(d>=e && d<=e+4)
    {
     cout<<" ";
    }
    else
    {
     cout<<(char)219;
    }
   }
  }
  Sleep(40);
  system("cls");
 }
}

Wednesday, July 9, 2014

PSP ME and LME CFW Update



Developer Rahim-US just updated the 6.XX ME and 6.XX LME firmwares, in which he says he has fixed a few bugs. According to official changelog the hide cfw option for evengelion has been fixed. More features were to be added but due to some complications it was not possible.

Download: 6.20 ME-2.2
Download: 6.39 ME 10.2
Download: 6.60 ME-2.2

Source: Twitter.com

An era comes to an end



Sony recently just announced that one of their best selling ever console production is going to stop. Yes, ladies and gentleman we are talking about the console to which everybody once was a die-hard fan of aka Playstation Portable (PSP). More than 76 million consoles have been sold in the span of 10 years, that's huge compared to any other portable console. Though official games had stop coming for a long time and so did the system updates, we all knew this was coming. But don't worry the homebrew scene is still pretty much there, some people will disagree but let them tell me the scene;s hibernating not gone yet. Some of the greats projects that are still being work on include:
  • uofw - This is one the most ambitious project ever taken, these guys are trying to reverse engineer the PSP's firmware
  • Cyanogenmod - A new shell for PSP
  • RahinUS's mod ME firmware -  Just got updates today, will post about it later :)
  • Minecraft PSP(LC mod) - A minecraft clone for PSP, so far it's pretty good
  • DaedaluxX64 - Nintendo64 emulator
And there are many more. So don't give up PSP fans there could be some glory for you still left.

Source: wololo.net

Gaming section added




Hey guys,

Contray to popular belief, I am a big fan of gaming and homebrew. I have been following the homebrew scene for quite a while now and I am even a part of it. I have develop homebrews for PSP like Diamondsion Assault (My first homebrew game), Dow-X and Lurpg (You can check them out here).


So I asked myself  "Why the heck don't we have a gaming news section?" and thanks to Arsalan (co-founder) for agreeing to it. Okay now it's official that we shall be having a gaming news section, so stay tune if you are also a gaming fan and even if you aren't you are still going to enjoy the news and updates :).

Friday, July 4, 2014

[ALLEGRO] Setup w/ Code::Blocks (Or any other setup)


Introduction

Hey guys, I decided to redo my old Allegro tutorial, seeing as it was pretty outdated. So, let's get started setting up Allegro on Windows with Code::Blocks. :)


Prerequisites

  • Allegro:
    How do you expect to get anything done without this? It's the what the tutorial is for! You can download it here: http://alleg.sourceforge.net/download.html

    Windows users will have to scroll all the way down to the bottom to get the link. Window hate? Not quite, Unix/Linux/Mac users all have to compile it! :twisted:

    (Though, it might be easier to compile it :P)

    We'll assume you're compiling Allegro. Let's continue.
  • Code::Blocks:
    We're using this to set up Allegro with, but if you're macho enough, you can do it with any other setup. Download Code::Blocks here: http://www.codeblocks.org/downloads
  • A working C/C++ compiler
    This is needed to run the "hello world" program. :P

  If you are going to compile the source files

Allegro is divided into a core library and a number of addon libraries.
The core library depends on certain libraries to function. If you don't have
those, nothing will work. These are required for the core library:

- DirectX SDK (Windows only)

You can get this for MSVC from the Microsoft web site (large download).

Alternatively, smaller downloads for MSVC and MinGW are available here:
<http://trent.gamblin.ca/dx/>

Some of those are originally from:
<http://www.g-productions.net/list.php?c=files_devpak>

- X11 development libraries (Linux/Unix only)
The libraries will be part of your Linux distribution, but you may have to
install them explicitly.

- OpenGL development libraries (optional only on Windows)

The addons, too, may require additional libraries. Since the addons are
strictly optional, they are not required to build Allegro, but a lot of
functionality may be disabled if they are not present.

Windows users may find some precompiled binaries for the additional libraries
from <http://gnuwin32.sourceforge.net/>. You need to get the `bin` and `lib`
packages. The `bin` packages contain DLLs, and the `lib` packages contain the
headers and import libraries.

Mac users may find some dependencies in Fink or MacPorts.
<http://www.finkproject.org/> and <http://www.macports.org/>

Linux users likely have all the dependencies already, except PhysicsFS
and DUMB. If your distribution uses separate development packages, they
will need to be installed. The packages are probably named *-dev or *-devel.

These are the dependencies required for the addons:

- libpng and zlib, for PNG image support (Unix and older MinGW only)
Home page: <http://www.libpng.org/pub/png/>
Windows binaries: <http://gnuwin32.sourceforge.net/packages/libpng.htm>

On Windows/Mac OS X/iPhone, PNG image support is available by using the
native facilities on the respective operating systems, so libpng is not
required.

- libjpeg, for JPEG image support (Unix and older MinGW only)
Home page: <http://www.ijg.org/>
Windows binaries: <http://gnuwin32.sourceforge.net/packages/jpeg.htm>

On Windows/Mac OS X/iPhone, JPEG image support is available by using the
native facilities on the respective operating systems, so libjpeg is not
required.

- FreeType, for TrueType font support.
Home page: <http://freetype.sourceforge.net/>
Windows binaries: <http://gnuwin32.sourceforge.net/packages/freetype.htm>

- Ogg Vorbis, a free lossy audio format. (libogg, libvorbis, libvorbisfile)
Home page: <http://www.vorbis.com/>

- FLAC, a free lossless audio codec. (libFLAC, libogg)
Home page: <http://flac.sourceforge.net/>

- DUMB, an IT, XM, S3M and MOD player library. (libdumb)
Home page: <http://dumb.sourceforge.net/>

- OpenAL, a 3D audio API.
The audio addon can use OpenAL, although the 3D capabilities aren't used.
<http://kcat.strangesoft.net/openal.html>

On Mac OS X, OpenAL is *required* but should come with the OS anyway.

On Linux and Windows, OpenAL will only be used if you request it, hence there
is no reason to install it specifically.

- PhysicsFS, provides access to archives, e.g. .zip files.
Home page: <http://icculus.org/physfs/>

On Windows it may be a pain to place all these libraries such that they can be
found. Please see the README_cmake.txt section on the "deps subdirectory"
when the time comes.

Got that? Let's continue. Windows users can either choose to build it or grab the binaries, get the binaries here to save time: https://www.allegro.cc/forums/

Or here:

http://alleg.sourceforge.net/news.html



Getting Allegro out the box

 

If you are using the binaries

This is so easy! Just extract the download and move the files over in the directory, it even contains a readme to help you! Good luck!


If you are building Allegro

Allegro is stuck inside an archive, we need to get it out pronto if we want any work done. So get it out here and we can start. After you've finished extracting that son-of-a-gun, move into the "allegro" directory inside it. It should be like: allegro-<version> -> allegro

In there, you will see many cryptic files and folders... Don't scream at them! Calm down, and I'll tell you the next step.

You will have to compile Allegro as it is all source code, for convenience, we'll use CMake to help build it all. You can get CMake from here: http://www.cmake.org/

Once you've installed CMake, you should run it so we can begin the compilation. It would be best to read the Readme:

% Allegro 5

Overview
========

Welcome to Allegro 5, a cross-platform game programming library.
Currently supported platforms are Linux/Unix, Windows, MacOS X and iPhone.
Note that Allegro 5 is wholly *incompatible* with Allegro 4 and earlier
versions, but both may be installed at the same time without conflicts.

This readme contains general information which applies to all platforms
that Allegro builds on.

README_cmake.txt discusses some build options for cmake.

README_msvc.txt discusses compilation on Windows with Microsoft Visual C/C++.

README_make.txt discusses compilation with GNU make. This applies to Unix-like
operating systems such as Linux, MacOS X and MinGW on Windows.

README_macosx.txt has a few additional notes for MacOS X.

README_iphone.txt discusses iPhone operating systems.



Requirements
============

We assume you have C and C++ compilers installed and functioning.
We support gcc and MSVC.

Allegro also requires CMake 2.6 or later to build.
You may download it from <http://www.cmake.org/>



Library dependencies
====================

Allegro is divided into a core library and a number of addon libraries.
The core library depends on certain libraries to function. If you don't have
those, nothing will work. These are required for the core library:

- DirectX SDK (Windows only)

You can get this for MSVC from the Microsoft web site (large download).

Alternatively, smaller downloads for MSVC and MinGW are available here:
<http://trent.gamblin.ca/dx/>

Some of those are originally from:
<http://www.g-productions.net/list.php?c=files_devpak>

- X11 development libraries (Linux/Unix only)
The libraries will be part of your Linux distribution, but you may have to
install them explicitly.

- OpenGL development libraries (optional only on Windows)

The addons, too, may require additional libraries. Since the addons are
strictly optional, they are not required to build Allegro, but a lot of
functionality may be disabled if they are not present.

Windows users may find some precompiled binaries for the additional libraries
from <http://gnuwin32.sourceforge.net/>. You need to get the `bin` and `lib`
packages. The `bin` packages contain DLLs, and the `lib` packages contain the
headers and import libraries.

Mac users may find some dependencies in Fink or MacPorts.
<http://www.finkproject.org/> and <http://www.macports.org/>

Linux users likely have all the dependencies already, except PhysicsFS
and DUMB. If your distribution uses separate development packages, they
will need to be installed. The packages are probably named *-dev or *-devel.

These are the dependencies required for the addons:

- libpng and zlib, for PNG image support (Unix and older MinGW only)
Home page: <http://www.libpng.org/pub/png/>
Windows binaries: <http://gnuwin32.sourceforge.net/packages/libpng.htm>

On Windows/Mac OS X/iPhone, PNG image support is available by using the
native facilities on the respective operating systems, so libpng is not
required.

- libjpeg, for JPEG image support (Unix and older MinGW only)
Home page: <http://www.ijg.org/>
Windows binaries: <http://gnuwin32.sourceforge.net/packages/jpeg.htm>

On Windows/Mac OS X/iPhone, JPEG image support is available by using the
native facilities on the respective operating systems, so libjpeg is not
required.

- FreeType, for TrueType font support.
Home page: <http://freetype.sourceforge.net/>
Windows binaries: <http://gnuwin32.sourceforge.net/packages/freetype.htm>

- Ogg Vorbis, a free lossy audio format. (libogg, libvorbis, libvorbisfile)
Home page: <http://www.vorbis.com/>

- FLAC, a free lossless audio codec. (libFLAC, libogg)
Home page: <http://flac.sourceforge.net/>

- DUMB, an IT, XM, S3M and MOD player library. (libdumb)
Home page: <http://dumb.sourceforge.net/>

- OpenAL, a 3D audio API.
The audio addon can use OpenAL, although the 3D capabilities aren't used.
<http://kcat.strangesoft.net/openal.html>

On Mac OS X, OpenAL is *required* but should come with the OS anyway.

On Linux and Windows, OpenAL will only be used if you request it, hence there
is no reason to install it specifically.

- PhysicsFS, provides access to archives, e.g. .zip files.
Home page: <http://icculus.org/physfs/>

On Windows it may be a pain to place all these libraries such that they can be
found. Please see the README_cmake.txt section on the "deps subdirectory"
when the time comes.



API documentation
=================

To build the documentation you will need Pandoc.
Pandoc's home page is <http://johnmacfarlane.net/pandoc/>

Installing Pandoc from source can be challenging, but you can build Allegro
without building the documentation.

Online documentation is available on the Allegro web site:
<http://docs.liballeg.org/>



Building with CMake
===================

Building with CMake is a two step process. During the _configuration_ step,
cmake will detect your compiler setup and find the libraries which are
installed on your system. At the same time, you may select options to
customise your build. If you are unsure of what you are doing, leave all the
options at the defaults.

Once the configuration step is successful, you will invoke another tool to
build Allegro. The tool depends on your compiler, but is usually either
`make`, or your IDE.

To avoid problems, unpack Allegro into a directory *without spaces or other
"weird" characters in the path*. This is a known problem.

Now read README_msvc.txt, README_make.txt or README_macosx.txt.
Including the additional readmes that came with your copy. Just read it all and let it all soak in so we can continue to our next step.

Building Allegro


With CMake open, we have to first find the button that reads, "Browse Source...". We need this to locate our source code we are building, select the "allegro-<version>/allegro" directory to continue. It is the directory that contains CMakelists.txt, which we need in order to build with CMake, do not use the "allegro-<version>/allegro/src" directory. It will not work.

Next, we need to tell CMake where to build everything. I would just make a folder called "build" in the "allegro-<version>/allegro" directory. Build it there.

Next, choose configure. Here, you will have to choose your set up. Mine is "CodeBocks - MinGW Makefiles" and I specified the native custom MinGW compiler I have in another directory. Be sure to choose the correct set up!

Now just wait for it to configure... Done!

It's not unlikely that CMake failed the first time, read the error and try to make sense of it. For example, mine say it failed because:

Could NOT find DINPUT (missing:  DINPUT_INCLUDE_DIR) 
CMake Error at CMakeLists.txt:620 (message):
Windows port requires DirectInput (not found).
 
This of course means we don't have the Direct X libraries installed, or CMake can't find them. For me, it's the latter case.
Allegro readme wrote:You can get this for MSVC from the Microsoft web site (large download).

Alternatively, smaller downloads for MSVC and MinGW are available here:
<http://trent.gamblin.ca/dx/>

Some of those are originally from:
<http://www.g-productions.net/list.php?c=files_devpak>


So I tried to download the SDK from those links... both were down. I can't download the Direct X SDK from microsoft, it's HUGE. So instead, I googled and found this: http://alleg.sourceforge.net/wip.html

At the bottom of the page it reads:
dx70_mgw.zip - 243k - This file contains the minimal version of the DirectX 7 SDK for MinGW. Only for Windows.


243 kibibytes is awesome. :)

Download that, extract it, and then copy and paste the "include" and "lib" directories to overwrite their counterparts in the compilers directory. Just to be safe, don't overwrite any files.

Now, be sure to start over by deleting your Cache (File -> Delete Cache), you'll be able to click configure again to try once more.

---

Seems I still have errors:
 
Could NOT find D3DX9 (missing:  D3DX9_INCLUDE_DIR D3DX9_LIBRARY) 
Could NOT find FLAC (missing:  OGG_LIBRARY FLAC_LIBRARY) 
WARNING: libFLAC not found or compile test failed, disabling support.
Could NOT find DUMB (missing:  DUMB_LIBRARY) 
WARNING: libdumb not found or compile test failed, disabling support. <http://dumb.sourceforge.net/>
Could NOT find OGG (missing:  OGG_LIBRARY) 
WARNING: libvorbis not found or compile test failed, disabling support.
Could NOT find Freetype (missing:  FREETYPE_LIBRARY) 
WARNING: FreeType not found, disabling support.
Could NOT find PhysFS (missing:  PHYSFS_LIBRARY) 
Could NOT find PHYSFS (missing:  PHYSFS_LIBRARY) 
 
That means, we did not get the dependencies the Readme told us to get. So get them now and we can continue. Now that this is done, we can hit the "Generate" button to generate a Code::Blocks project. Open it up and Code::Blocks, select which build target to build, and hit build. Now wait as it compiles... After it is done, install it. You can copy and paste files or use some other method. Proceed to the next portion of the tutorial.  

Setting up Allegro for use


Now, let's start up Code::Blocks and hit the "File" item in the top left of the window. Then, go to New -> Project. A new menu will jump up at ya. Select "Console Application" from that list then, hit "Go". You'll be presented with a Wizard that I'll guide you all through, cause I'm so brave.

1. Hit "Next>".

2. Select C++.

Project title: Allegro 5
Folder to create project in: C:\

3. Enter the information as stated above. (The rest is filled in automatically)
Hit "Next>".

4. Hit "Finish".

Now, we should be back at where we were. Copy and Paste (Don't make copying and pasting code a habit! ) this code here:

#include <allegro5/allegro.h>

int main(){
   al_init();
   al_init_font_addon();
   al_init_ttf_addon();
   ALLEGRO_DISPLAY *display = al_create_display( 640, 480 );
   al_clear_to_color( al_map_rgb( 0, 0, 0 ) );
   al_flip_display();
   al_rest( 10.0 );
   al_destroy_display( display );
   return 0;
}


Remember to save!

Compile the program and run it to test it out. ;)

If anything goes awry, read this tutorial here for clarification: http://wiki.allegro.cc/index.php?title= ... _Allegro_5

Note :This tutorial has been written by waratte, all credit goes to him for spending time on writing this so that we could learn and like he says "Spread the knowledge!" :)

You can read the original tutorial here: http://bb.waratteka.net/viewtopic.php?f=14&t=137

Wednesday, July 2, 2014

How to install PSP Link


PSP Link tutorial for Windows users

Today's tutorial would be on something that is pretty great for PSP C/C++ developers and if you are hoping to become one then you should get PSP Link and read this tutorial very carefully.
Note: This is only for Windows users. Also you need to build a prx file for your homebrews to run them on PSP Link. You can do this by including Build_Prx=1 in your makefile.

Getting and installing PSP Link

Step#1

First of all download PSP Link, google search it or you can get it from here.
Connect your PSP to your PC, extract PSP Link and then copy the OE folder to PSP/GAME .

Step#2

Read and follow the instructions on the link below so that you can disable driver signature verification and then you can install unsigned drivers. I am not sure but I think this is usually required for 64-bit windows so if anybody out there try's on 32-bit try to skip this step and go to to step 3. Please do notify me what happens, it will be appreciated and will also be a lot of help to others.

For windows 8:

Step#3

Download libusb-win32. Run it. Follow the instructions and install the driver for PSP.
Step#4
Run PSPLink on your PSP. On your PC in the folder in which your homebrew is located run usbhostfs_pc using command prompt (remember that it should be your homebrew folder). 



Now in "Run" command (Press windows key and "R" for windows 7 & 8 and you know where is it for XP and Vista), type "pspsh".
 
Now if you did everything right and your PSP is connected you should get this.



 
Step#5
Type "ldstart" and then your prxfile name in pspsh. Press Enter and see the magic on your PSP.

Using PSPLink

  • Whenever you need to start a homebrew, make sure you have its prx file, go to the folder using command prompt, run "usbhostfs_pc" (without the ""), start pspsh using "Run", type "ldstart" and the prx's file name in pspsh.

  • If you want to exit just type "exit" in pspsh.

That's all, now you can go on and make some awesome homebrews without much trouble. Also if you have any problems do ask in the comments and I will try to answer asap. Maybe next week I might make a tut on how can this be done also for luaplayers so stay tune lua programmers :)

Credits: Goes to devnoname120 for introducing and installing PSP Link for me and to everyone out there who made this possible.

Saturday, May 3, 2014

[Tutorial C++] Basics of Programming Part 5

Loops
 
 
While

Definition

While statement is known as loop or iterated structure because it keeps on executing a code written inside it till the condition given to it does not becomes true.

Syntax

while(condition){

//code to be iterated
}


Example

#include<iostream>

#include<conio.h>

void main(){

int a=0;

while(a<10)// condition is that while a<10 perform the below code, something must be done to  //change the condition to false otherwise the loop will go on endlessly this is the reason why

//a is incremented inside the code

{

cout<<"Hello"<<endl;

a++;

}

getch();

}

 
Do-while loop

Definition
 
Do-while is also an iteration statement or loop but it performs the code first then checks the condition this can be sometimes an advantage or disadvantage.

Syntax

do{

//code to be iterated

}

while(condition);


Example

#include<iostream>

#include<conio.h>

void main(){

int a=0;

do{

cout<<"Hello"<<endl;

a++;

}

while(a<0); //same as while except code is performed first then condition is checked 

//so that loop should 

getch();

}
 
For loop

Definition

For loop keeps on iterating itself given an initial value, condition and increment value.

Syntax

for(initial value; condition; increment value)

{

//code to be iterated

}


Example

#include<iostream>//Declaring header files

#include<conio.h>

void main(){

int a[5];  //Declaring an array having 5 values

cout<<"Enter the values in the array:"<<endl; //Displaying a message

for(int i=0; i<5; i++)//for loop which starts with an initial value of 0,

//condition is i<5 and while condition is true increment 1 to i

{

cin>>a[i];

}

cout<<"Displaying the values stored in array in reversed order:"<<endl;

for(int i=4; i>=0; i--)//for loop which starts with an initial value of 4,

//condition is i>=5 and while condition is true decrement 1 to i

{

cout<<a[i]<<endl;

}

getch();

}



*iteration:-the repetition of a process


Saturday, April 19, 2014

[Tutorial] Gimp for beginners Part 5 - Introduction to blend tool and filters

Introduction to blend tool and filters

The things that I am going to talk about today are some of the most important things in gimp and with them you can create some pretty awesome pictures. The things about which I am going to talk about is blend tool called gradient tool by photoshop geeks, a tool which blends two colors and filters which takes an input image and then apply some effects to it using some mathematical algorithm.

Okay I think that's enough intro, let's get to work now. What I will do today is that I will teach you how to make a moon, clouds and sky filled with stars and the greatest thing about all this is that you need nothing at all except gimp.

The first thing you need to do is create a new image and fill it with black color, you can set width of the image as 640 and height 400.

 
Create a new layer by going to "Layer" and selecting "New layer". In layer fill type choose "Transparency" and name this layer as "stars" so it is easy to look for it. Now go to filters, from it select "Noise" and select "Hurl" from it. Check the "Randomize" and choose 1 for "Randomization" and "Repeat".


 
 
Now go to "Colors" select "Desaturate" and from the dialog box that opens select "Luminosity". Make sure that stars layer has been selected. What are your thoughts about the stars then? Some of you might think that there are a lot of stars for this I recommend that you choose the "Airbrush" make sure your foreground color is black and the brush hardness is 50 or less and then randomly spray on the image. For me this is good so I won't be doing that.
 
 
 
Moving on, again go to layer and select "New layer" choose fill type as "transparency" and name this one as "Moon".
 
 
Select the "Ellipse select tool" and draw a circle with it.
 
 
 
Fill the circle with white color.
 
 

Now "Toggle Quick Mask" on, this is a dotted rectangle located at the bottom left corner of your screen and things outside the selection shall become red. I will explain more about quick mask in a later tutorial.



Select "blend tool". Now click on top left corner of your image and don't let go, a plus sign shall show up and drag it to the bottom right corner of your image.


 Your image should look something like this.


Toggle the quick mask off and something like this should come up on your image.


Now go to "Filters", "Render" then "Clouds" and then "Difference clouds". A dialog box shall open up. In it set Detail as 13, X-size as 4.4 and Y-size as 4.0 and check Randomize. If you want you can experiment and see how your end result will look like.


Mine looks like this.


Now deselect your selection by going to "Select" then click on "None". Using the fuzzy select tool select your circle or moon again. To me the moon looks a little dull, so what we can do is select "Dodge tool" and make sure that in type "Dodge" is selected.


Run the brush on the whole moon and it should brighten up.


Well that's our moon except its missing something, if you have a sharp eye like mine than you know its the glow. So let's add some glow to the moon. Create a new layer, fill type should be transparent and name it glow. Your circle selection should still be there. Go to Select and click on grow, set the "Grow selection by" to 18.


Fill the selection by a bright blue color, mine's 548295 in Html notation and that's hexadecimal.

 
Deselect your selection and go to "Filters", then "Blur" and select "Gausian Blur". Set both the "Horizontal" and "Vertical" to 41.
 
You should get something like this.
 
Set the glow's layer opacity to 25 and put it below the moon layer. Isn't it looks cool. Okay let's add some clouds now. Go to "Filters", "Render", "Clouds" and then select "Fog". Set "Fog color" as white, turbulence to 6.2 and opacity to 25. Click on "OK".
 
 
Here's how our clouds look but they kinda look like some comic clouds. Let's blur them so they look more real.
 
 
 
 
Go to "Filters" again, choose "Blur" and from it select "Gausian blur". Set both "Horizontal" and "Vertical" to 5.
 
 
It's fancy time now, let's add some fancy stuff to end this tutorial. Select "Text tool" and some text.
 
 
Right click on the text layer and select "Text to Path".
 
 

Go to "Select" and choose "From Path". Select "Blend tool" and go to tool options, select a gradient I selected "Golden". Select a shape and then drag on the selection from any two points you want.
 

 
That's all for today folks, I hope you did enjoyed this tutorial and I would love to hear your feedback and see what you have created. If you liked this, share it with others so that they can learn this cool stuff or share it anyway, there could be a person looking for this but doesn't knows about this site. You could be the guiding angel!

Programming on PSP - Lua Dev Tutorial#3 - Using Sounds


Okay now that we know how to use images, the steps are basically the same. First you load your sound file, and then you play it whenever it’s needed. There are functions that allow you to loop the sound file (to keep it playing continuously) and pause the sound file.


Loading a sound file

LuaDev only loads MP3, AT3, BGM and WAV files. So keep that in mind. To load a sound, you must set a variable to the sound file. For example:

bgmusic = sound.load("Sounds/music.wav")

The “sound.load” operation locates the sound file called “music.wav” in the “Sounds” folder and loads it into our program.


Playing a sound file.

Now that we’ve loaded our sound file, we can play it whenever we need to. To do this we use this function:

sound.play(bgmusic)
 
The “sound.play” operation plays the sound that we loaded earlier, which was defined as a variable, “bgmusic”

Pausing a sound file

To pause a sound file, we use this function:

sound.pause(bgmusic,-1)

The number “-1” indicates that the pause/play function is automatic. If not paused it pauses, if paused it resumes.
You can use “0” to resume the sound if paused and “1” to pause the sound if playing. (make sure you use a comma after indicating the variable)


Stopping a sound file

To stop a sound file we call this function.

sound.stop(bgmusic)

This is pretty self-explanatory. I don’t think I need to get into detail with that.


To keep playing a sound file constantly – a loop.

To use this we call this function “sound.loop()”
For example:

sound.loop(bgmusic)

This will keep playing the sound file continuously until the loop is stopped. To stop the loop we use this function.

sound.loop()

Or you can free the sound file, using this function – This also frees more memory, it is recommended that you used this function.

sound.free(bgmusic)
 
That's all for now folks
 
Written By Joel16 & Edited by Ahmed Aziz

Sunday, April 13, 2014

C with classes / C++

C++ is an intermediate-level programming language. It was developed by Bjarne Stroustrup starting in 1979 at Bell Labs; C++ was originally named C with Classes, adding object-oriented features, such as classes, and other improvements to the C programming language. The language was renamed C++ in 1983, due to involvement of the increment operator. It began as enrichment to C, first adding classes, then virtual functions, operator overloading, multiple inheritance, templates and exception handling, alongside changes to the type system and other features.
Most of the C++ programs process information and display results. It is consisting of a vocabulary of commands that humans can understand and that can be converted into machine language easily and a language structure that allows humans to combine these C++ commands into a program that generate interesting outputs.
It is one of the most popular programming languages and is implemented on a wide variety of hardware and operating system platforms. As an efficient performance driven programming language it is used in systems software, application software, and device drivers, embedded software, high-performance server client applications and entertainment software such as video games. Various entities provide both open source and proprietary C++compiler software including the FSF, LLVM, Microsoft and Intel.


References
  1. Coplien, J. (1998). Advanced C++ Programming Styles and Idioms. Illinois, USA.
  2. Stroustrup, B. (2009). The C++ programming language . Pearson Education.

Saturday, April 12, 2014

Programming on PSP - Lua Dev Tutorial#2 - Loading and displaying an image

Loading and displaying images

Loading an Image

So now you've learned the basics of printing text, using a certain color on the screen. Now we'll learn how to use images. Before displaying an image we must load it. To load an image, we set a variable to it. (A variable is basically a value that we define) for example in the tutorial above, red was our variable. It defined what color is. Anyways let’s get back to coding.
To load an image in LuaDev, we set a variable and call this function. Take note the quotations are required.


image.load("location/filename.format")  -- common ‘I’ is used in LuaDev

Location - To load an image, you must set up a location. If the location is in the same folder where the lua scipt is located, you can simply use the filename. Example if you want to load an image from a folder called “Images”, this is how you’d do it.

image.load("Images/filename.format")
Filename – This is the name of the image you are using. For example

image.load("background.format")
Format – LuaDev can load jpeg/png and gif images. These are the file formats.
This is how you load an image.

bg = image.load("Images/background.png")
bg is our variable.


Displaying an Image

After loading our image we need to display it. To display our image in Luadev, you can do it in two ways.

1. By calling the variable itself:

variable:blit(x,y) – I already stated above what the ‘x’ and ‘y’ means. Look into it for reference 

2. By calling “image.blit”

image.blit(x,y,variable)
 
This is how to display an image.

bg:blit(0,0)
Or
image.blit(0,0,bg)

 
This is what our code should look like altogether.
bg = image.load("Images/background.png")

while true do
image.blit(0,0,bg)
screen.waitvblankstart()
end

or

bg = image.load("Images/background.png")

while true do
bg:blit(0,0)
screen.waitvblankstart()
end

Both carry out the same operation.

Written By Joel16 & Edited by Ahmed Aziz

Wednesday, April 9, 2014

Show the numeric values entered in a character array

This program is used to show numeric values entered in a character array but the numeric values should be entered before the characters.



#include <iostream>
#include <conio.h>
#include <stdlib.h>

void main()
{
char arr[5];  //Creating a character array of size 5
cout<<"Enter the values of the array\n"; //Displaying a message asking to enter values
cin>>arr;  //taking input from the user and storing it in the character array
cout<<endl <<atoi(arr)<<endl<<"Program ends\n";  /*using built in function "atoi" and using it to convert numeric values
entered in a character array and converting into integer*/
getch();
}
 
Here's how the output will look like
 
 

Tuesday, April 8, 2014

Programming on PSP - Lua Dev Tutorial#1 - The Basics

These would be a series of tutorial for all those who want to learn luadev on PSP. All these tutorials are written by Joel16 so all credits goes to him.

Thanks to DeViaNTe for LuaDev.

Introduction:

First thing’s first, we need:
- LUA Dev’s interpreter (eboot that runs the lua scripts, “script.lua”). Download here
- Documentation (a text file or a website that lists all the known functions compatible with the interpreter) no worries the download above comes with it.
- Text editor ( I recommend notepad++, which can be downloaded here)
- Time, patience and a brain :P

Hello World – Just a simple text displaying program

So you’ve downloaded the interpreter and the documentation, and you’re ready to start programming on lua!

1. Open up notepad++ or whatever text editor you have, and create a new file.

2. Let’s start off with this line of code


red = color.new(255,0,0)

What this does, is that it defines a color ‘red’ using RGB format. The first number defines R, the second or middle number defines G and the third or last number defines B. (R = red, G = green, B = blue). Have a look here for more colors  http://www.rapidtables.com/web/color/RGB_Color.htm

3. Now that we’ve defined our color, we need to print text on the screen. So therefore we use this function:


screen.print(x,y,"Text",size,color,color)

The ‘color,color’ is used in LuaDev only when you’ve set a certain size. Take note the size isn’t required. I’m only including it to make things neat.

Okay so in LuaDev, “screen.print” is a function used for displaying text on a screen. Whenever you want text to be displayed on a screen you must use this function.

The “x” after the braket defines the x axis of the PSP screen. We all know the PSP screen’s resolution is 480x272. 480, is the width and 272 is the height (in pixels) of the screen.
So the “x” represents the X axis (anywhere from 0 to 480), and the “y” represents the Y axis. (anywhere from 0 to 272)

Now the “Text” bit represents the characters that are needed to be displayed on the screen, once the program is executed. It can be anything like “Hey there, name’s Joel” or “I love mum”. :lol:

The size.. Do I really explain this? Haha this obviously determines the size of the text. Take note these sizes aren’t like Microsoft office documents, they’re in decimal points. That is for example “0.6” is normal. Anything over one would appear quite large, well atleast that’s how it is in LuaDev.

The color, color – The first color determines the color of the text. The second determines the color of the shadow/highlight. This ‘second color’ (“,color)” is only called when you’ve set a certain size to your text. Although this isn’t necessary, we’re only going to be using it to make our program user friendly.

So now this is what it should look like:

screen.print(240,136,"Hello World",0.6,red,red)


This is basically all you need to know to run a simple hello world program. To use fonts, it is required that you set a variable called font, and used the function ‘font.load’ to load a specific font. Take note that LuaDev uses PGF fonts. The download above includes the software that convers TTF fonts to PGF. Anyways I won’t be getting into detail with this until later on.

4. This is what the whole code should look like:

red = color.new(255,0,0) 

screen.print(240,136,"Hello World",0.6,red,red)
screen.flip()

while true do
screen.waitvblankstart()
end

I know I haven’t defined a few things, so here’s what they mean.

screen.flip()- This function is called because when you print text, it is set to offscreen buffer, all drawing functions are. So, this means your text won't be visible until you type/call
screen.flip, which changes it to offscreen buffer to visible screen buffer.

while true do
screen.waitvblankstart() – What this does is that it loop the code in an endless loop while it is true (which it is), so now the text will stay displayed for a longer period of time (forever to be precise).

end - this is where we end our code.

Now on your text editor, save this file as “script.lua” without quotations. (If you’re using notepad, where you see the bit that says “.txt” select that box, and select “All files” then save the file as script.lua”
Now create a folder, it can be called anything. I’ll call mine HelloWorld. Now in this folder, place the Eboot,pbp(lua Dev interpreter) that was included in the archive I mentioned earlier and the lua file; script.lua. Now place this folder in your PSP/Game folder, and run the program in game section.

This is what the code should look like






That’s all for now, I’ll write up how to load, images, sounds and fonts later on.

Written By Joel16 & Edited by Ahmed Aziz

Thursday, April 3, 2014

[Tutorial] Gimp for beginners Part 4 - Making a monotone image

Making a montone image the quick way

In this tutorial I am going to quickly change a normal image to a montone one. First of all open the image you want to change into a monotone one. I am going to use the car image again from the first tutorial.



Now go and choose your foreground color as black. After that go to "Layer" and select "New layer".



A dialog box will open asking for you to choose the new layer properties. Leave everything as it is except in "Layer fill type" choose foreground color.


Go to layer modes and select "Color".

 
 
Right-click on the first layer and select "Merge down".


Now here's how your final image should look like. Wasn't that easy? Well that all for this tutorial.

 
 
UPDATE
 
I wanted to add this but forgot it when making the tutorial. When I told you go to layer modes and select "Color" you would have noticed that there were many other options too. Select them all and see what happens. If you want to understand more about this I recommend you go here.
 
 


 

Copyright @ 2014 CPP Fuzz.