| 001. Starting our Journey.mp4 | 101.9 MB | ||
| 002. How to Take this Course.mp4 | 4.3 MB | ||
| 003. Placing the PlayStation in History.mp4 | 90.9 MB | ||
| 004. PS1 Hardware Overview.mp4 | 94.3 MB | ||
| 005. The MIPS CPU.mp4 | 43.1 MB | ||
| 006. Memory & Endianness.mp4 | 31 MB | ||
| 007. Memory Map.mp4 | 30.7 MB | ||
| 008. CPU Registers & Load Instructions.mp4 | 81.3 MB | ||
| 009. Store, Add, & Subtract Instructions.mp4 | 42.2 MB | ||
| 010. Jump & Branch Instructions.mp4 | 35.1 MB | ||
| 011. Exercise Our First MIPS Code.mp4 | 18.4 MB | ||
| 012. Going Over Our First MIPS Code.mp4 | 26.3 MB | ||
| 013. Installing the ARMIPS Assembler.mp4 | 34.7 MB | ||
| 014. Assembling our MIPS Code.mp4 | 7.4 MB | ||
| 015. PSX-EXE File Format.mp4 | 11.6 MB | ||
| 016. Emulator & Step-By-Step Execution.mp4 | 33 MB | ||
| 017. Fixing Off-By-One Error.mp4 | 10.3 MB | ||
| 018. Pseudo-Instructions.mp4 | 34.2 MB | ||
| 019. The MIPS Pipeline.mp4 | 66.2 MB | ||
| 020. Some Warm Up Exercises.mp4 | 17.4 MB | ||
| 021. Solving our Warm Up Exercises.mp4 | 43.2 MB | ||
| 022. Register Shorthand.mp4 | 23 MB | ||
| 023. Factorial Exercise.mp4 | 24.6 MB | ||
| 024. Solving our Factorial Exercise.mp4 | 40.6 MB | ||
| 025. Factorial Subroutine.mp4 | 40 MB | ||
| 026. Negative Numbers.mp4 | 40.8 MB | ||
| 027. Sign Extension.mp4 | 29.9 MB | ||
| 028. Logical Instructions.mp4 | 28.3 MB | ||
| 029. Bitshifting Instructions.mp4 | 32.1 MB | ||
| 030. Examples of CISC & RISC Machines.mp4 | 38.7 MB | ||
| 031. CISC vs RISC Instructions.mp4 | 82 MB | ||
| 032. The PlayStation Graphics System.mp4 | 77.4 MB | ||
| 033. Drawing Primitives.mp4 | 36.2 MB | ||
| 034. GPU Packets.mp4 | 66.2 MB | ||
| 035. Sending Display Control Packets to GP1.mp4 | 81.5 MB | ||
| 036. Sending VRAM Access Packets to GP0.mp4 | 33.2 MB | ||
| 037. Clear Display Area.mp4 | 26.9 MB | ||
| 038. Drawing a Flat-Shaded Triangle.mp4 | 18.3 MB | ||
| 039. Drawing a Flat-Shaded Quad.mp4 | 11.8 MB | ||
| 040. Drawing a Gouraud-Shaded Triangle.mp4 | 9.2 MB | ||
| 041. Flat-Shaded Triangle Subroutine.mp4 | 49.4 MB | ||
| 042. Coding our Flat Triangle Subroutine.mp4 | 19.8 MB | ||
| 043. Stack & Stack Pointer.mp4 | 42.5 MB | ||
| 044. Stack Parameters.mp4 | 24.5 MB | ||
| 045. Stack & Heap Space.mp4 | 39.4 MB | ||
| 046. Variables.mp4 | 43.2 MB | ||
| 047. Variable Alignment.mp4 | 20.1 MB | ||
| 048. Vector Alignment.mp4 | 62.6 MB | ||
| 049. Copying Image Data to VRAM.mp4 | 103.4 MB | ||
| 050. Using Bitshifting to Multiply & Divide.mp4 | 33 MB | ||
| 051. 24BPP Display Mode.mp4 | 59.1 MB | ||
| 052. Taking Advantage of our Delay Slots.mp4 | 28.8 MB | ||
| 053. Moving from MIPS Assembly to C.mp4 | 25.9 MB | ||
| 054. Installing Tools on Windows 11.mp4 | 46.5 MB | ||
| 055. Installing Tools on Windows XP.mp4 | 66.8 MB | ||
| 056. Compiling a Simple Psy-Q Project.mp4 | 34 MB | ||
| 057. Double-Buffer Screen.mp4 | 99 MB | ||
| 058. Psy-Q Integer Data Types.mp4 | 14.2 MB | ||
| 059. Psy-Q Primitive Types.mp4 | 23.8 MB | ||
| 060. Ordering Table & Primitive Buffer.mp4 | 61.8 MB | ||
| 061. Sorting Primitives into the OT.mp4 | 47.9 MB | ||
| 062. Sorting a Gouraud Quad into the OT.mp4 | 25.1 MB | ||
| 063. A Review of Pointers.mp4 | 64.5 MB | ||
| 064. The Arrow Operator.mp4 | 56.5 MB | ||
| 065. A Review of 3D Projection.mp4 | 68.9 MB | ||
| 066. Vertices & Face Indices.mp4 | 52.6 MB | ||
| 067. The Geometry Transformation Engine.mp4 | 19.9 MB | ||
| 068. Basic 3D Transformations.mp4 | 45.9 MB | ||
| 069. RotTransPers Function.mp4 | 70.4 MB | ||
| 070. Coding a Rotating 3D Cube.mp4 | 55 MB | ||
| 071. Normal Clip.mp4 | 26.1 MB | ||
| 072. Coding Quads as Cube Faces.mp4 | 12.6 MB | ||
| 073. Reviewing Floating-Point Numbers.mp4 | 51.3 MB | ||
| 074. Fixed-Point Numbers.mp4 | 48.5 MB | ||
| 075. Implementing a Bouncing Cube.mp4 | 52.1 MB | ||
| 076. Different Transform Matrix per Object.mp4 | 60.7 MB | ||
| 077. Wait, Can I use Floats.mp4 | 6.1 MB | ||
| 078. GTE Register Set.mp4 | 38.6 MB | ||
| 079. Inline GTE Instructions.mp4 | 62.9 MB | ||
| 080. RTPT vs. RTPS.mp4 | 34.4 MB | ||
| 081. Reading Joypad State.mp4 | 66 MB | ||
| 082. Joypad Input with BIOS Functions.mp4 | 79.9 MB | ||
| 083. Joypad Header & Implementation.mp4 | 90.4 MB | ||
| 084. Header File for OT & Primitive Buffer.mp4 | 79.7 MB | ||
| 085. Header File for Display Routines.mp4 | 25.8 MB | ||
| 086. Camera Space.mp4 | 54.8 MB | ||
| 087. The Look-At Transformation.mp4 | 73.9 MB | ||
| 088. The LookAt Function.mp4 | 66.7 MB | ||
| 089. Coding the Look-At Camera Model.mp4 | 83.6 MB | ||
| 090. CD-ROM Basics.mp4 | 65.2 MB | ||
| 091. Generating an ISO on Windows XP.mp4 | 47.1 MB | ||
| 092. Generating an ISO on Windows 11.mp4 | 32.7 MB | ||
| 093. A Function to Read Files from the CD.mp4 | 93.6 MB | ||
| 094. Understanding the MODEL.BIN File.mp4 | 23.9 MB | ||
| 095. Dynamically Allocating Buffers.mp4 | 49.8 MB | ||
| 096. Heap Initialization on Windows 11.mp4 | 24.7 MB | ||
| 097. Interpreting Bytes as Numbers.mp4 | 72.3 MB | ||
| 098. Handling Different Order of Bytes.mp4 | 47.1 MB | ||
| 099. Reading Vertices & Faces from a File.mp4 | 51.2 MB | ||
| 100. UV Coordinates, TPAGE, & CLUT.mp4 | 61.1 MB | ||
| 101. Installing TIM Tool.mp4 | 7.6 MB | ||
| 102. TIM File Format.mp4 | 25.9 MB | ||
| 103. Read TIM File from the CD.mp4 | 75.6 MB | ||
| 104. Textured Cube Faces.mp4 | 84 MB | ||
| 105. Wobbly Textures.mp4 | 100.2 MB | ||
| 106. Polygon Jitter.mp4 | 8.7 MB | ||
| 107. Dev Tools CD Samples.mp4 | 41.2 MB | ||
| 108. Intro to our Final Project.mp4 | 80.9 MB | ||
| 109. Importing Project Assets.mp4 | 9.2 MB | ||
| 110. PRM File Layout.mp4 | 49 MB | ||
| 111. Reading Object Name from PRM File.mp4 | 55.2 MB | ||
| 112. Reading Vertices from PRM File.mp4 | 41.3 MB | ||
| 113. Handling Different Primitive Types.mp4 | 103 MB | ||
| 114. Reading Primitives from PRM File.mp4 | 58.3 MB | ||
| 115. Drawing Flat-Shaded Object Faces.mp4 | 103.8 MB | ||
| 116. Using sizeof with Variable Name.mp4 | 11.5 MB | ||
| 117. CMP File Layout.mp4 | 68.7 MB | ||
| 118. Reading Number of Textures from File.mp4 | 29.7 MB | ||
| 119. Reading TIM Sizes from File.mp4 | 60.1 MB | ||
| 120. A Function to Extract LZSS Data.mp4 | 33.6 MB | ||
| 121. Texture Structs.mp4 | 47.3 MB | ||
| 122. Uploading CMP Textures to VRAM.mp4 | 63 MB | ||
| 123. Global Texture Store Array.mp4 | 75.4 MB | ||
| 124. Rendering Textured Triangles.mp4 | 24.1 MB | ||
| 125. Visualizing Textured 3D Objects.mp4 | 40.5 MB | ||
| 126. Loading Multiple CMP Files.mp4 | 59.5 MB | ||
| 127. Exercise Linked List of Objects.mp4 | 29.7 MB | ||
| 128. Linked List Implementation.mp4 | 61.5 MB | ||
| 129. Joypad Press & Release.mp4 | 9 MB | ||
| 130. Reading Scene Objects from CD.mp4 | 98.4 MB | ||
| 131. Camera-Object Distance Check.mp4 | 41.1 MB | ||
| 132. Drawing Scene Objects.mp4 | 52 MB | ||
| 133. Track Sections & Faces.mp4 | 66.2 MB | ||
| 134. Structs for Sessions & Faces.mp4 | 23.5 MB | ||
| 135. Reading Vertices, Faces, & Sections.mp4 | 73.8 MB | ||
| 136. Function to Render Track Sections.mp4 | 96.5 MB | ||
| 137. Shrinking Track Vertices.mp4 | 92.2 MB | ||
| 138. Exercise Testing Face Flags.mp4 | 26.4 MB | ||
| 139. Drawing Quad Lines.mp4 | 28.2 MB | ||
| 140. Avoiding the GTE 16-bit Limitation.mp4 | 67 MB | ||
| 141. Clamping Overflow Values.mp4 | 75.8 MB | ||
| 142. Loading Track Texture Tiles.mp4 | 101.8 MB | ||
| 143. Manually Position Textures in VRAM.mp4 | 80.1 MB | ||
| 144. Loading Track Face UV Coords.mp4 | 46.2 MB | ||
| 145. Flip Face Texture.mp4 | 25.2 MB | ||
| 146. Tessellation & Polygon Subdivision.mp4 | 108.7 MB | ||
| 147. Drawing Quads Recursively.mp4 | 37.9 MB | ||
| 148. A Function to Draw Quads Recursively.mp4 | 75.9 MB | ||
| 149. Subdividing UV Coordinates.mp4 | 49 MB | ||
| 150. T-junctions.mp4 | 126.2 MB | ||
| PS1 Programming with MIPS Assembly & C.txt | 4 KB | ||
| code.zip | 1.1 GB | ||
| ▲ 152 total files | |||
Source: https://pikuma.com/courses/ps1-programming-mips-assembly-language
What you'll learn:
This course is a deep dive into the world of PlayStation programming! We'll explore the PS1 hardware, understand its sub-components, and learn how to code games using MIPS assembler & the C programming language. We'll also learn how to use a PS1 SDK library paired with a modern development toolchain to be more productive and push fast polygons out of our console.
We are about to enter the 5th generation of 32-bit consoles. This era brings with it many technology milestones, such as the adoption of CPUs based on RISC architecture and a preference for coding using a high-level language instead of writing games using plain assembly. We will start by learning the basics of MIPS assembly and evolve to use a C compiler with a PS1 SDK to develop our final project.
--------------
Mediainfo
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings : CABAC / 4 Ref frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 12 min 18 s
Bit rate : 1 016 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
frame rate mode : Constant
frame rate : 59.940 (60000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*frame) : 0.008
Stream size : 89.5 MiB (88%)
Writing library : x264 core 164
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=34 / lookahead_threads=5 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=26.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 12 min 18 s
Source duration : 12 min 18 s
Bit rate mode : Constant
Bit rate : 128 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 11.3 MiB (11%)
Source stream size : 11.3 MiB (11%)
Default : Yes
Alternate group : 1
All Comments