send messagemessage
articles
journals
info

2.3: CD-ROM Optimizations

PS_2's profile picture
Published in 
 · 1 month ago
This chapter details some of the usual tricks and techniques for optimizing the CD-ROM image of your project, to help improve load times and possibly helps reduce wear on the CD-ROM pickup in the console itself. Data Ordering Data in a CD-ROM is normally stored in a linear fashion and no file is ever fragmented, somewhat similar to a record. A common method of improving loading performance is by ordering files in a manner that frequently used files are placed close together. This reduces the amount of time it takes to seek between files. Data ordering is typically controlled in BUILDCD and MKPSXISO by when in the script the file is specif...

2.2: Reading a file from CD-ROM

PS_2's profile picture
Published in 
 · 1 month ago
This chapter details how to read a file from the CD-ROM, loading the contents into system RAM using the CD-ROM library. PSn00bSDK Compatible: Yes Tutorial Index Initializing the CD-ROM Locating a file in the CD-ROM Reading File Contents Simple File Read Function Image Loader Example Building the ISO image Conclusion Initializing the CD-ROM Initializing the CD-ROM library is accomplished by simply calling CdInit() . This function must be called after calling ResetGraph() and before any CD library related function. If you intend to use the SPU you must call SpuInit() immediately before calling CdInit() . Once the CD-ROM library is initializ...

2.1: About the CD-ROM

PS_2's profile picture
Published in 
 · 1 month ago
This chapter describes the CD-ROM subsystem of the PlayStation hardware such as specifications, capabilities and limitations of the hardware. This chapter also teaches the basics of using the CD-ROM subsystem in your PlayStation projects, common optimization methods and more. Tutorial Index The CD-ROM Mod-chip Requirement Methods of accessing the CD-ROM The CD-ROM Before delving into how to use the CD-ROM subsystem in your projects, it is best to first understand the hardware first. You should know by now that the CD-ROM subsystem uses CD's and that it can read either CD-ROMs and CD-Rs. But getting the latter to read reliably requires...

2.1. The Principles of PlayStation 3D

PS_2's profile picture
Published in 
 · 1 month ago
Among the most defining features of the PlayStation when it first debuted in 1995 was its ability to handle 3D graphics in real-time and was among the first consoles that really brought real-time 3D visuals to the home console scene. Something that was previously only really seen in arcades and personal computers of the time. This chapter will go over the 3D graphics architecture of the PlayStation to fill-in the programmer to better grasp the chapters that follow in this section. Also of note, these chapters expect the programmer to posses prior knowledge of at least some level of 3D graphics programming, so one may want to brush up on t...

1.6: Using the CD-ROM

PS_2's profile picture
Published in 
 · 1 month ago
1.6: Using the CD-ROM
So you've managed to make it this far in this tutorial series and have wrapped your head around uploading textures to VRAM, drawing sprite primitives with the GPU, handling controller input and rotating sprites using fixed-point integer math, you should be good to go at making a simple game with the knowledge you've gained so far. However, there's one more thing to learn that's very important to know in this endeavor before going forward and that is using the CD-ROM. The most obvious use of the CD-ROM drive on the PlayStation is, well, to load data files from of course. Such files range from texture images, to level data a...

1.5: Fixed Point Math

PS_2's profile picture
Published in 
 · 1 month ago
1.5: Fixed Point Math
If you've been trying to write some games on a modern system (ie. your PC), you probably already know about using floats to implement momentum and jumping physics in a 2D platformer, or have something move towards a direction specified in degrees rather than X,Y velocity values to have said object move at an angle, like a ship in an Asteroids style game or a car in a top-down racer... On the PlayStation, these principles still apply. But there's a problem; the PlayStation does not have a hardware floating point unit. Whilst you can still use floats on the PlayStation as the compiler will resort to software emulation to perform suc...

1.4: Controllers

PS_2's profile picture
Published in 
 · 1 month ago
1.4: Controllers
One of the most important aspects when writing software for a game console is taking input from a controller, as otherwise what's the point of a game where the player can't take control of it? Unless its some demoscene stuff you intend to write for the console. This chapter goes over how to initialize and handle controller input in your PS1 program. This is something that hasn't really been explained very well in many tutorials that I've seen in my personal experience, so I'll try my best to explain how controller input is handled on the PS1 in great detail. Compatible with PSn00bSDK: Yes Tutorial Index Methods to Obta...

1.3: Textures, TPages and CLUTs

PS_2's profile picture
Published in 
 · 1 month ago
4-bit, 8-bit and 16-bit texture images as they appear logically in VRAM
This tutorial will teach you how to draw graphics with textures, from converting texture data to loading it onto VRAM, and finally drawing said texture. This is yet another essential part in PS1 graphics programming, as not having any textures would not always make for a pretty looking game. This chapter will also cover some development tools to be used for preparing texture data, such as timtool and img2tim . Compatible with PSn00bSDK: Yes Tutorial Index Textures Color Look-up Tables (CLUT) Texture Addressing on the PS1 Defining and Selecting a Texture Page Creating a TIM Texture Image Including TIM Image Data Tips, Tricks and Improvemen...

1.2. Drawing Graphics

PS_2's profile picture
Published in 
 · 1 month ago
1.2. Drawing Graphics
This tutorial will teach you how to draw graphics primitives with the GPU using an ordering table and primitive packets. This is a very essential part to learn about the PS1 as you need graphics to do anything on the console really. Just like in the last tutorial, libgs will not be covered here. Also, the GPU is not responsible for 3D graphics. While it does render out (affine) polygon all the 3D processing is actually done in a co-processor, called the GTE or Geometry Transformation Engine. Trivia: The easiest way to tell if a person is not a PS1 programmer is if they call the GTE the Geometry Transfer Engine instead of Transformation En...

1.1. Setting up Graphics and Hello World

PS_2's profile picture
Published in 
 · 1 month ago
1.1. Setting up Graphics and Hello World
This chapter teaches the basics of initializing and setting up the GPU of the PSX. Areas covered in this chapter include the GPU, VRAM and the concept of display and drawing environments which are essential for better understanding how the GPU works when programming for the PSX. This tutorial series does not and will not cover graphics programming using the LIBGS library which is a high level graphics library that adds about 100KB worth of overhead to your project (remember that the PSX only has 2MB of RAM) and hides many of the inner workings of the GPU, making it difficult to understand how to use the GPU directly and would often get in...

Setting up the SDK

PS_2's profile picture
Published in 
 · 1 month ago
Obviously, to make some PS1 homebrew you'll need an SDK to be able to develop software for the platform in the first place. The SDKs that are going to be covered in this tutorial series is the official Programmers Tool SDK (often known as PsyQ) and PSn00bSDK. There are other open source SDK projects but with varying degrees of programming quality and hardware support and usually have drastically different library APIs which are not compatible with this tutorial series. If you much rather use an open source SDK I recommend using PSn00bSDK as its the best one so far (not a shameless self plug, its actually better than others) and follow...

PlayStation System Overview

PS_2's profile picture
Published in 
 · 1 month ago
CPU: Customized MIPS R3000A 32-bit RISC CPU (might be based on the LSI L64360 embedded CPU) Clocked at 33.8MHz. 32 32-bit general purpose registers (35 total if special hi, lo and pc registers are included, first register locked to zero). 4KB I-cache. 1KB D-cache repurposed as fast 'scratchpad' memory. Geometry Transformation Engine (GTE) for 3D vector calculations (accessed as cop2). No hardware floating point unit. Graphics: Custom GPU Clocked at 33.8MHz (same as CPU, may need verification however). Supports display resolutions of 256x240 to 640x480 for NTSC and 256x256 to 640x512 for PAL (272 vertical lines is apparently possi...

Lameguy's PlayStation Programming Series

PS_2's profile picture
Published in 
 · 1 month ago
Welcome to Lameguy64's PlayStation Programming Series! This is a series of tutorials I (Lameguy64) put together in my spare time that covers the basics and eventually, more advanced topics of programming for the original PlayStation. Keep in mind that this tutorial series assumes you already have prior experience in C programming as PlayStation specific programming topics are only covered here. If you're completely new to programming in general it is recommended to learn C first from a different tutorial series. Tutorial Index System Overview Setting up an SDK (needs revising) Chapter 1: Basic Homebrew Programming 1.1. Setting up ...

The launch of the PlayStation back in 1995

This is an article published on Zeta (Italian magazine) in March 1995. I have translated it into English. It is a memo of the January 19 and 20 1995 London's meeting. Hope you like it!

PS_2's profile picture
Published in 
 · 1 year ago
This dinosaur animated in real time was one of the most appreciated demonstrations of the capabiliti
"Whatever you're thinking... it's not enough," was the motto with which Sony presented its latest creation, the PlayStation, at the Technical Workshop held in a London hotel last January 19 and 20. If the message sounds a bit exaggerated to you, it means you haven't had a chance to try Ridge Racer or Toh Shin Den. The conference began with a nervous Phil Harrison , director of software development at Sony Electronic Publishing, entertaining the many visitors with a long speech; incredibly, the entire interactive entertainment industry was present at the meeting. The atmosphere that had been created after only a few minutes wa...

PsxDox #5

PS_2's profile picture
Published in 
 · 1 year ago
PsxDox #5
⁄-------------------------------------------------------------------ø | \---------------------------------------------------------------/ | | | | | | | ⁄------- ⁄------ ⁄-- ⁄-- ⁄------- ⁄------ ⁄-- ⁄-- | | | | ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- | | | | ⁄------- ⁄------ ⁄---- ⁄-- ⁄-- ⁄-- ⁄-- ⁄---- | | | | ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- ⁄-- | | | | ⁄-- ⁄------ ⁄-- ⁄-- ⁄------- ⁄------ ⁄-- ⁄-- | | | | | | | /---------------------------------------------------------------\ | ¿-------------------------------------------------------------------Ÿ F I V E -===ccc,. =cc$$$$$$$$$$$$$$$cc. ,,"""""??$$$$$$$c .,ccc$L,, ?bccc. ""...

The Memory Editor

PS_2's profile picture
Published in 
 · 2 years ago
To an experienced GS hacker, the Memory Editor function of the GSPro is one of the most powerful tools around. Without it, some codes would be almost impossible to hack, and testing would be ridiculously time-consuming. Put on your thinking cap (what a gay expression) and concentrate for a moment. So where do I start? Well, the Memory Editor has two main options, besides simple scrolling and editing, which I will discuss later on. First, there is the "Goto Address" option. This is very simple (besides the stupid name); input an address, push "X" and you'll go to that address in memory. Next, there is the "Text Search" option. Its expl...

Nintendo 64 hacking reference

PS_2's profile picture
Published in 
 · 2 years ago
Author: Goldenboy (Jeffrey H.) Version: 2.5 Updated: 9/22/03 TABLE OF CONTENTS 1.00 PREFACE 1.10 ..Introduction 1.20 ..Assumptions 2.00 BASIC CODE HACKING 2.10 ..Terms and Definitions 2.20 ..Counting in Hexadecimal 2.30 ..Code Hacking 2.40 ..Code Types 2.41 ....Code Types Explained 2.50 ..Convert Decimal to Hexadecimal 3.00 ASM HACKING 3.10 ..Frequently Asked Questions 3.20 ..Break Points 3.30 ..Using GSCC2K2 Program 3.40 ..ASM OpCodes 3.50 ..N64 Registers 4.00 GUIDE-RELATED 4.20 ..Contact & Info 4.30 ..Credits & Thanks 4.40 ..Legal Information 1.00 | PREFACE 1.10 | Introduction The intent of this guide is to teach you how...

GCNcrypt - Gamecube AR Crypto Program

PS_2's profile picture
Published in 
 · 2 years ago
GCNcrypt - Gamecube AR Crypto Program by Parasyte Program and documentation by Parasyte What's New v1.1 (06-27-2003) * Rewrote most of this readme. (yay?) * Fixed crash when closing the program on Windows 98 * Fixed the "Code Decryption Error" bug on certain official codes * Fixed code encryption, now 100% complete! (Get to hacking, kiddies) + Added the "Game ID" option and auto-verification feature for encryption = Special thanks to Costis, for noticing the LSB in the encrypted codes is used as a parity bit, used for further code verification. And Sappharad, The Phantom, and ShinAkuma for testing codes. v1.0 (06-23-2003) * Initial re...

GameCube Joker Values

PS_2's profile picture
Published in 
 · 2 years ago
by Parasyte NOTE: These are for Action Replay They are not ADDRESSES, they are bit flags. Here are two complete tables for all digital buttons. (Analog controls seem to use two different variables as a whole, so it's quite a bit different, perhaps even more complicated) Controller button values are as follows: Big Endian: (More common) 0001: D-Pad Left 0002: D-Pad Right 0004: D-Pad Down 0008: D-Pad Up 0010: Z 0020: R (digital click) 0040: L (digital click) 0100: A 0200: B 0400: X 0800: Y 1000: Start Little Endian: (Less common) 0001: A 0002: B 0004: X 0008: Y 0010: Start 0100: D-Pad Left 0200: D-Pad Right 0400: D-Pad Down 0800: D-Pad ...

FAQ Playstation

PS_2's profile picture
Published in 
 · 2 years ago
Questa è una raccolta di FAQ creata dai vari utenti del gruppo ICCP. Ti preghiamo di leggerle attentamente per trovare possibili soluzioni ai tuoi problemi prima di postarli sul newsgroup. Grazie! Il sito ufficiale del newsgroup it.comp.console.playstation è http://www.iccp.it. Distribuzione Usenet : it.comp.console.playstation it.comp.console it.faq Web : http://digilander.iol.it/iccp/ History delle FAQ 4 Luglio 2000 Corretta la FAQ 10.12 su NetYaroze, aggiornate le FAQ sui tormentoni più famosi, aggiornate le FAQ varie, aggiornate le FAQ sulle pistole, aggiornate le FAQ sulle memory card, aggiornati i link ai sit...
loading
Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT