getfromcode体系课

使用MIPS汇编器和C语言开发PS1游戏

为什么要学PS1底层开发:从硬件理解复古游戏的实现逻辑 很多做过现代引擎开发的人都会有一个疑问:早年内存只有几兆、CPU频率只有几十兆的主机,是怎么跑起来完整的3D游戏的?PS1作为第一款把3D游戏带入大众家庭的家用主机,它的硬件限制和开发思路,刚好能帮你把“游戏是怎么在硬件上跑起来”这件事拆到最细

单课价¥29新品 上架
会员价 ¥0开通会员,全站课程无限下载套餐详情
35 人关注 更新于 2026-10-15 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

支付成功后自动发货,可在「我的订单」查看网盘链接;链接失效可联系客服免费补链。

正版保障 极速发货 售后无忧

为什么要学PS1底层开发:从硬件理解复古游戏的实现逻辑

很多做过现代引擎开发的人都会有一个疑问:早年内存只有几兆、CPU频率只有几十兆的主机,是怎么跑起来完整的3D游戏的?PS1作为第一款把3D游戏带入大众家庭的家用主机,它的硬件限制和开发思路,刚好能帮你把“游戏是怎么在硬件上跑起来”这件事拆到最细。现代引擎把渲染、输入、音频、内存管理全封装好了,你写的是逻辑层代码,但对底层发生了什么几乎没有感知;而PS1开发需要你直接和CPU指令集、显存布局、音频协处理器打交道,每一行代码的开销都能被你清晰感知到。

这门课解决的就是“只会用上层引擎,不懂硬件和底层实现”的问题。它不是教你用现成的复古游戏引擎拖资源做Demo,而是从MIPS汇编和C语言出发,直接面向PS1原生硬件写代码,从最基础的开机初始化,到完整的游戏循环、图形渲染、音效播放、手柄输入处理,全部走原生开发流程。你在过程中踩过的内存对齐坑、渲染同步坑、指令周期优化坑,放到任何嵌入式开发、游戏引擎底层开发场景里都是通用经验,而不是只能用在PS1上的过时知识。

适合什么基础的开发者入手

首先,你需要有C语言的基础语法能力,不用精通嵌入式C,但至少要懂指针、结构体、内存分配、函数调用这些核心概念,知道C代码编译成机器码的大致流程。因为课程里会有大量把C逻辑和MIPS汇编对照的环节,如果你连C的栈帧、参数传递都没概念,学汇编部分会非常吃力。其次,最好有一点点计算机组成原理的常识,比如知道寄存器、内存、总线、指令周期这些基本概念,不用能背CPU架构,只要能理解“代码最终是变成指令在CPU上跑”这件事就行。

如果你是做Unity、Unreal这类上层引擎的游戏开发者,想补底层知识,这门课的切入点非常合适——PS1的硬件复杂度远低于现代主机和PC,你可以用很短的时间把“从代码到画面输出”的全链路走通,而不用被现代GPU几百页的编程手册吓退。如果你是做嵌入式、单片机开发的,想找一个有意思的练手项目巩固底层能力,PS1游戏开发也是非常好的方向,它既有硬件编程的严谨性,又有可视化的反馈,比单纯点灯、写控制逻辑有成就感得多。完全没有编程基础的新手不建议直接从这门课起步,最好先把C语言基础打牢,再进来跟着做项目。

建议的学习顺序:先抓基础链路,再啃专项模块

刚打开资料不要直接跳去看游戏引擎或者3D图形部分,先把前三个基础模块啃透。第一块是PS1架构和硬件简介,这里要搞清楚PS1的CPU、GPU、SPU各自负责什么,内存地址空间怎么分布,显存、主存、BIOS之间的关系是什么,这些是后面所有代码的基础。很多人学后面图形编程的时候搞不懂为什么要做双缓冲、为什么纹理有尺寸限制,本质上都是硬件部分没吃透,回头补基础反而浪费时间。第二块是MIPS汇编基础,不用追求能手写复杂汇编,但要能读懂常见指令,知道C语言的循环、分支、函数调用分别对应什么样的汇编代码,知道寄存器的调用约定,后面调试性能问题、排查内存越界的时候,这些知识能直接救命。

基础打牢之后,先把C语言在PS1上的开发环境跑通,跟着示例写一个最简单的“Hello World”级别的画面输出程序,把编译、打包、运行模拟器测试的全流程走顺,确保自己的工具链没有问题。然后按“输入处理→图形编程→音频编程”的顺序逐个啃专项模块,每学完一个模块就写一个小Demo验证,比如学完输入就写一个能靠手柄移动的方块,学完2D图形就写一个简单的精灵动画,学完音频就写一个能播放背景音乐和音效的小程序。等这几个专项都掌握了,再去看游戏引擎开发和关卡设计的内容,这时候你已经知道每个底层模块是怎么工作的,看引擎封装的时候就能理解“为什么要这么设计”,而不是只会抄接口调用。

学完能独立落地的成果

把整套内容跟下来,你首先能独立完成一个完整的PS1原生小游戏,从资源导入到逻辑编写再到打包成可在模拟器甚至实机上运行的镜像文件,全流程都能自己搞定。不要觉得“做复古游戏没什么用”,这个过程里你掌握的硬件初始化、内存手动管理、图形渲染管线底层逻辑、音频流播放、输入轮询与中断这些能力,放到现代游戏引擎开发、嵌入式开发、甚至操作系统底层开发里都是核心硬技能。比如你做现代引擎开发的时候,遇到Draw Call优化、内存对齐问题、渲染同步bug,你会知道底层到底在发生什么,而不是只能靠猜和试。

更进一步说,你会具备“面向受限硬件做开发”的思维。现在很多开发者习惯了硬件性能过剩,写代码从来不考虑开销,一个简单的逻辑能堆好几层抽象,内存泄漏了也靠GC兜底。但在PS1这种只有2兆主存、CPU频率33.8兆的平台上,你必须精打细算每一个字节的内存、每一个周期的CPU开销,这种约束下练出来的代码质量意识,是上层开发很难获得的。你还能读懂很多经典PS1游戏的反汇编代码,甚至能做复古游戏的修改、移植和ROM Hack,把自己的兴趣爱好和技术能力结合起来。

资料怎么配合练习效率最高

这套资料的核心是代码示例和项目实战,不要光看不动手。每一个知识点对应的示例代码,都要自己亲手敲一遍、编译一遍、改参数跑一遍,比如把纹理尺寸改大看看会不会花屏,把循环次数改多看看会不会掉帧,故意写错内存地址看看会出什么异常——这些故意“搞破坏”的过程,才是你真正理解硬件的过程。不要怕报错,PS1开发的报错信息虽然不像现代开发环境那么友好,但每一个异常现象背后都对应着明确的硬件行为,排查的过程就是你积累经验的过程。

学到项目部分的时候,不要照着代码抄一遍就完事,要给自己加小需求:比如原项目是个横版卷轴游戏,你可以试着加一个二段跳功能,加一个敌人AI,加一个得分系统,加一个存档功能。在加需求的过程中你必然会遇到各种问题,比如内存不够用、帧率上不去、输入延迟,这时候再回头翻前面的基础模块找解决方案,知识才能真正变成你的能力。另外建议准备一个笔记本,专门记硬件参数、常见坑点、调试技巧,PS1开发的很多经验是非常细碎的,比如纹理的对齐要求、寄存器的位定义、BIOS调用的参数约定,这些东西记下来比每次翻资料效率高得多。等你把整个项目改出自己的特色,你就已经具备了独立做PS1原生开发的能力,而不是只会跟着教程走的水平。

课程介绍

使用 MIPS 汇编器和 C 语言开发 PS1 游戏课程是一套全面的课程,旨在教授学员如何使用 MIPS 汇编器和 C 语言为索尼 PlayStation 1(PS1)游戏机开发游戏。该课程由经验丰富的游戏开发人员和 PS1 技术专家设计,涵盖了 PS1 游戏开发所需的所有关键知识和技能。

课程特色:

  • 全面覆盖:涵盖 PS1 游戏开发的各个方面,从基本概念到高级技术。
  • 实战导向:结合大量代码示例和动手练习,让学员亲身体验 PS1 游戏开发流程。
  • 项目驱动:通过实际项目驱动学习,提升学员解决实际问题的能力。
  • 双师教学:由资深讲师和助教共同授课,答疑解惑,提供个性化辅导。
  • 复古魅力:让学员体验经典 PS1 游戏开发的乐趣和挑战。

课程内容:

  • PS1 架构和硬件简介
  • MIPS 汇编器基础
  • C 语言在 PS1 游戏开发中的应用
  • 图形编程
  • 音频编程
  • 输入处理
  • 游戏引擎开发
  • 游戏关卡设计
  • PS1 开发工具和资源

适合人群:

  • 希望学习 PS1 游戏开发的初学者
  • 希望提升 PS1 游戏开发技能的游戏开发者
  • 对复古游戏开发感兴趣,希望培养复古游戏编程思维的人员
  • 准备参与 PS1 游戏开发项目的开发者

学习时长:

  • 约 6 个月,每周学习时间约 20 小时

学习方式:

  • 在线学习平台
  • 线下直播课堂(可选)
  • 课后辅导答疑
  • 项目实战指导

学习成果:

  • 掌握 MIPS 汇编器和 C 语言,开发 PS1 游戏
  • 了解 PS1 架构、图形、音频和输入处理等关键概念
  • 具备较强的编程能力和解决实际 PS1 游戏开发问题的能力
  • 为后续的 PS1 游戏开发或复古游戏开发职业发展奠定坚实基础

课程亮点:

  • 由业内资深专家授课,拥有丰富的 PS1 游戏开发经验
  • 提供项目实战指导,帮助学员将理论知识应用到实际开发中
  • 颁发结业证书,证明学员的 PS1 游戏开发技能
  • 参与活跃的复古游戏开发社区,与同好交流和分享经验

课程目录

/15-023-使用MIPS汇编器和C语言开发PS1游戏/
│├─001. Starting our Journey.mp4 101.9MB
│├─001. Starting our Journey.srt 17.1KB
│├─001. Starting our Journey.vtt 18.4KB
│├─002. How to Take this Course.srt 3.9KB
│├─002. How to Take this Course.vtt 4.1KB
│├─002. How to Take this Course.mp4 4.3MB
│├─003. Placing the PlayStation in History.mp4 90.9MB
│├─003. Placing the PlayStation in History.srt 14.3KB
│├─003. Placing the PlayStation in History.vtt 15.1KB
│├─004. PS1 Hardware Overview.mp4 94.3MB
│├─004. PS1 Hardware Overview.srt 20.1KB
│├─004. PS1 Hardware Overview.vtt 21.5KB
│├─005. The MIPS CPU.srt 13.6KB
│├─005. The MIPS CPU.vtt 14.6KB
│├─005. The MIPS CPU.mp4 43.1MB
│├─006. Memory & Endianness.srt 10KB
│├─006. Memory & Endianness.vtt 10.8KB
│├─006. Memory & Endianness.mp4 31MB
│├─007. Memory Map.srt 17KB
│├─007. Memory Map.vtt 17.9KB
│├─007. Memory Map.mp4 30.7MB
│├─008. CPU Registers & Load Instructions.mp4 81.3MB
│├─008. CPU Registers & Load Instructions.srt 20.7KB
│├─008. CPU Registers & Load Instructions.vtt 21.5KB
│├─009. Store, Add, & Subtract Instructions.mp4 42.2MB
│├─009. Store, Add, & Subtract Instructions.srt 9.8KB
│├─009. Store, Add, & Subtract Instructions.vtt 10.2KB
│├─010. Jump & Branch Instructions.srt 11KB
│├─010. Jump & Branch Instructions.vtt 11.1KB
│├─010. Jump & Branch Instructions.mp4 35.1MB
│├─011. Exercise Our First MIPS Code.mp4 18.4MB
│├─011. Exercise Our First MIPS Code.srt 4.2KB
│├─011. Exercise Our First MIPS Code.vtt 4.3KB
│├─012. Going Over Our First MIPS Code.mp4 26.3MB
│├─012. Going Over Our First MIPS Code.srt 6.6KB
│├─012. Going Over Our First MIPS Code.vtt 6.6KB
│├─013. Installing the ARMIPS Assembler.mp4 34.7MB
│├─013. Installing the ARMIPS Assembler.srt 8.6KB
│├─013. Installing the ARMIPS Assembler.vtt 8.6KB
│├─014. Assembling our MIPS Code.mp4 7.4MB
│├─014. Assembling our MIPS Code.srt 6.3KB
│├─014. Assembling our MIPS Code.vtt 6.3KB
│├─015. PSX-EXE File Format.mp4 11.6MB
│├─015. PSX-EXE File Format.srt 5.5KB
│├─015. PSX-EXE File Format.vtt 5.5KB
│├─016. Emulator & Step-By-Step Execution.mp4 33MB
│├─016. Emulator & Step-By-Step Execution.srt 9.6KB
│├─016. Emulator & Step-By-Step Execution.vtt 9.6KB
│├─017. Fixing Off-By-One Error.mp4 10.3MB
│├─017. Fixing Off-By-One Error.srt 4.6KB
│├─017. Fixing Off-By-One Error.vtt 4.6KB
│├─018. Pseudo-Instructions.mp4 34.2MB
│├─018. Pseudo-Instructions.srt 10.2KB
│├─018. Pseudo-Instructions.vtt 10.7KB
│├─019. The MIPS Pipeline.mp4 66.2MB
│├─019. The MIPS Pipeline.srt 14.4KB
│├─019. The MIPS Pipeline.vtt 15.2KB
│├─020. Some Warm Up Exercises.mp4 17.4MB
│├─020. Some Warm Up Exercises.srt 9.5KB
│├─020. Some Warm Up Exercises.vtt 10.2KB
│├─021. Solving our Warm Up Exercises.mp4 43.2MB
│├─021. Solving our Warm Up Exercises.srt 20.4KB
│├─021. Solving our Warm Up Exercises.vtt 20.7KB
│├─022. Register Shorthand.srt 6.7KB
│├─022. Register Shorthand.vtt 7.1KB
│├─022. Register Shorthand.mp4 23MB
│├─023. Factorial Exercise.srt 7.3KB
│├─023. Factorial Exercise.vtt 7.7KB
│├─023. Factorial Exercise.mp4 24.6MB
│├─024. Solving our Factorial Exercise.mp4 40.6MB
│├─024. Solving our Factorial Exercise.srt 11.9KB
│├─024. Solving our Factorial Exercise.vtt 12.1KB
│├─025. Factorial Subroutine.srt 13.6KB
│├─025. Factorial Subroutine.vtt 14.2KB
│├─025. Factorial Subroutine.mp4 40MB
│├─026. Negative Numbers.srt 16KB
│├─026. Negative Numbers.vtt 16.9KB
│├─026. Negative Numbers.mp4 40.8MB
│├─027. Sign Extension.srt 9.6KB
│├─027. Sign Extension.vtt 10.1KB
│├─027. Sign Extension.mp4 29.9MB
│├─028. Logical Instructions.srt 8.9KB
│├─028. Logical Instructions.vtt 9.1KB
│├─028. Logical Instructions.mp4 28.3MB
│├─029. Bitshifting Instructions.srt 13KB
│├─029. Bitshifting Instructions.vtt 14KB
│├─029. Bitshifting Instructions.mp4 32.1MB
│├─030. Examples of CISC & RISC Machines.mp4 38.7MB
│├─030. Examples of CISC & RISC Machines.srt 9KB
│├─030. Examples of CISC & RISC Machines.vtt 9.3KB
│├─031. CISC vs RISC Instructions.mp4 82MB
│├─031. CISC vs RISC Instructions.srt 23.1KB
│├─031. CISC vs RISC Instructions.vtt 24.5KB
│├─032. The PlayStation Graphics System.mp4 77.4MB
│├─032. The PlayStation Graphics System.srt 24.1KB
│├─032. The PlayStation Graphics System.vtt 25.4KB
│├─033. Drawing Primitives.srt 7.9KB
│├─033. Drawing Primitives.vtt 8.1KB
│├─033. Drawing Primitives.mp4 36.2MB
│├─034. GPU Packets.srt 17.2KB
│├─034. GPU Packets.vtt 17.8KB
│├─034. GPU Packets.mp4 66.2MB
│├─035. Sending Display Control Packets to GP1.mp4 81.5MB
│├─035. Sending Display Control Packets to GP1.srt 25.1KB
│├─035. Sending Display Control Packets to GP1.vtt 26.1KB
│├─036. Sending VRAM Access Packets to GP0.mp4 33.2MB
│├─036. Sending VRAM Access Packets to GP0.srt 9.8KB
│├─036. Sending VRAM Access Packets to GP0.vtt 10.2KB
│├─037. Clear Display Area.srt 9.4KB
│├─037. Clear Display Area.vtt 9.3KB
│├─037. Clear Display Area.mp4 26.9MB
│├─038. Drawing a Flat-Shaded Triangle.srt 6.6KB
│├─038. Drawing a Flat-Shaded Triangle.vtt 6.5KB
│├─038. Drawing a Flat-Shaded Triangle.mp4 18.3MB
│├─039. Drawing a Flat-Shaded Quad.srt 4KB
│├─039. Drawing a Flat-Shaded Quad.vtt 3.9KB
│├─039. Drawing a Flat-Shaded Quad.mp4 11.8MB
│├─040. Drawing a Gouraud-Shaded Triangle.srt 2.5KB
│├─040. Drawing a Gouraud-Shaded Triangle.vtt 2.5KB
│├─040. Drawing a Gouraud-Shaded Triangle.mp4 9.2MB
│├─041. Flat-Shaded Triangle Subroutine.mp4 49.4MB
│├─041. Flat-Shaded Triangle Subroutine.srt 18KB
│├─041. Flat-Shaded Triangle Subroutine.vtt 18.3KB
│├─042. Coding our Flat Triangle Subroutine.mp4 19.8MB
│├─042. Coding our Flat Triangle Subroutine.srt 6.4KB
│├─042. Coding our Flat Triangle Subroutine.vtt 6.5KB
│├─043. Stack & Stack Pointer.srt 15.4KB
│├─043. Stack & Stack Pointer.vtt 16KB
│├─043. Stack & Stack Pointer.mp4 42.5MB
│├─044. Stack Parameters.srt 9.7KB
│├─044. Stack Parameters.vtt 9.9KB
│├─044. Stack Parameters.mp4 24.5MB
│├─045. Stack & Heap Space.srt 7.5KB
│├─045. Stack & Heap Space.vtt 7.9KB
│├─045. Stack & Heap Space.mp4 39.4MB
│├─046. Variables.srt 11.7KB
│├─046. Variables.vtt 12KB
│├─046. Variables.mp4 43.2MB
│├─047. Variable Alignment.srt 10KB
│├─047. Variable Alignment.vtt 10.3KB
│├─047. Variable Alignment.mp4 20.1MB
│├─048. Vector Alignment.srt 18.9KB
│├─048. Vector Alignment.vtt 19.6KB
│├─048. Vector Alignment.mp4 62.6MB
│├─049. Copying Image Data to VRAM.mp4 103.4MB
│├─049. Copying Image Data to VRAM.srt 30.5KB
│├─049. Copying Image Data to VRAM.vtt 31.6KB
│├─050. Using Bitshifting to Multiply & Divide.srt 9.1KB
│├─050. Using Bitshifting to Multiply & Divide.vtt 9.7KB
│├─050. Using Bitshifting to Multiply & Divide.mp4 33MB
│├─051. 24BPP Display Mode.mp4 59.1MB
│├─051. 24BPP Display Mode.srt 18.8KB
│├─051. 24BPP Display Mode.vtt 19.1KB
│├─052. Taking Advantage of our Delay Slots.mp4 28.8MB
│├─052. Taking Advantage of our Delay Slots.srt 8.5KB
│├─052. Taking Advantage of our Delay Slots.vtt 8.8KB
│├─053. Moving from MIPS Assembly to C.srt 8.4KB
│├─053. Moving from MIPS Assembly to C.vtt 8.9KB
│├─053. Moving from MIPS Assembly to C.mp4 25.9MB
│├─054. Installing Tools on Windows 11.srt 20.3KB
│├─054. Installing Tools on Windows 11.vtt 20.8KB
│├─054. Installing Tools on Windows 11.mp4 46.5MB
│├─055. Installing Tools on Windows XP.mp4 66.8MB
│├─055. Installing Tools on Windows XP.srt 29.1KB
│├─055. Installing Tools on Windows XP.vtt 30.5KB
│├─056. Compiling a Simple Psy-Q Project.mp4 34MB
│├─056. Compiling a Simple Psy-Q Project.srt 16.9KB
│├─056. Compiling a Simple Psy-Q Project.vtt 17.1KB
│├─057. Double-Buffer Screen.mp4 99MB
│├─057. Double-Buffer Screen.srt 39.4KB
│├─057. Double-Buffer Screen.vtt 40.9KB
│├─058. Psy-Q Integer Data Types.srt 5.4KB
│├─058. Psy-Q Integer Data Types.vtt 5.5KB
│├─058. Psy-Q Integer Data Types.mp4 14.2MB
│├─059. Psy-Q Primitive Types.mp4 23.8MB
│├─059. Psy-Q Primitive Types.srt 10.6KB
│├─059. Psy-Q Primitive Types.vtt 10.7KB
│├─060. Ordering Table & Primitive Buffer.mp4 61.8MB
│├─060. Ordering Table & Primitive Buffer.srt 26.3KB
│├─060. Ordering Table & Primitive Buffer.vtt 27.4KB
│├─061. Sorting Primitives into the OT.srt 22KB
│├─061. Sorting Primitives into the OT.vtt 22.3KB
│├─061. Sorting Primitives into the OT.mp4 47.9MB
│├─062. Sorting a Gouraud Quad into the OT.mp4 25.1MB
│├─062. Sorting a Gouraud Quad into the OT.srt 8.2KB
│├─062. Sorting a Gouraud Quad into the OT.vtt 8.3KB
│├─063. A Review of Pointers.mp4 64.5MB
│├─063. A Review of Pointers.srt 18.5KB
│├─063. A Review of Pointers.vtt 19.5KB
│├─064. The Arrow Operator.srt 17KB
│├─064. The Arrow Operator.vtt 17.7KB
│├─064. The Arrow Operator.mp4 56.5MB
│├─065. A Review of 3D Projection.mp4 68.9MB
│├─065. A Review of 3D Projection.srt 24.2KB
│├─065. A Review of 3D Projection.vtt 25.5KB
│├─066. Vertices & Face Indices.srt 18.5KB
│├─066. Vertices & Face Indices.vtt 18.9KB
│├─066. Vertices & Face Indices.mp4 52.6MB
│├─067. The Geometry Transformation Engine.mp4 19.9MB
│├─067. The Geometry Transformation Engine.srt 10.6KB
│├─067. The Geometry Transformation Engine.vtt 11.5KB
│├─068. Basic 3D Transformations.mp4 45.9MB
│├─068. Basic 3D Transformations.srt 15.8KB
│├─068. Basic 3D Transformations.vtt 16.5KB
│├─069. RotTransPers Function.srt 23.4KB
│├─069. RotTransPers Function.vtt 24.8KB
│├─069. RotTransPers Function.mp4 70.4MB
│├─070. Coding a Rotating 3D Cube.mp4 55MB
│├─070. Coding a Rotating 3D Cube.srt 20.8KB
│├─070. Coding a Rotating 3D Cube.vtt 21.6KB
│├─071. Normal Clip.mp4 26.1MB
│├─071. Normal Clip.srt 9.2KB
│├─071. Normal Clip.vtt 9.7KB
│├─072. Coding Quads as Cube Faces.mp4 12.6MB
│├─072. Coding Quads as Cube Faces.srt 4.6KB
│├─072. Coding Quads as Cube Faces.vtt 4.5KB
│├─073. Reviewing Floating-Point Numbers.mp4 51.3MB
│├─073. Reviewing Floating-Point Numbers.srt 21.9KB
│├─073. Reviewing Floating-Point Numbers.vtt 23.7KB
│├─074. Fixed-Point Numbers.mp4 48.5MB
│├─074. Fixed-Point Numbers.srt 21.9KB
│├─074. Fixed-Point Numbers.vtt 24.1KB
│├─075. Implementing a Bouncing Cube.mp4 52.1MB
│├─075. Implementing a Bouncing Cube.srt 15.2KB
│├─075. Implementing a Bouncing Cube.vtt 16.2KB
│├─076. Different Transform Matrix per Object.srt 23.9KB
│├─076. Different Transform Matrix per Object.vtt 25.3KB
│├─076. Different Transform Matrix per Object.mp4 60.7MB
│├─077. Wait, Can I use Floats.mp4 6.1MB
│├─077. Wait, Can I use Floats.srt 3.6KB
│├─077. Wait, Can I use Floats.vtt 3.7KB
│├─078. GTE Register Set.srt 14.1KB
│├─078. GTE Register Set.vtt 15.1KB
│├─078. GTE Register Set.mp4 38.6MB
│├─079. Inline GTE Instructions.srt 20.6KB
│├─079. Inline GTE Instructions.vtt 21.2KB
│├─079. Inline GTE Instructions.mp4 62.9MB
│├─080. RTPT vs. RTPS.srt 10.8KB
│├─080. RTPT vs. RTPS.vtt 11.1KB
│├─080. RTPT vs. RTPS.mp4 34.4MB
│├─081. Reading Joypad State.srt 26KB
│├─081. Reading Joypad State.vtt 27.4KB
│├─081. Reading Joypad State.mp4 66MB
│├─082. Joypad Input with BIOS Functions.mp4 79.9MB
│├─082. Joypad Input with BIOS Functions.srt 25.3KB
│├─082. Joypad Input with BIOS Functions.vtt 25.4KB
│├─083. Joypad Header & Implementation.srt 29.3KB
│├─083. Joypad Header & Implementation.vtt 30.3KB
│├─083. Joypad Header & Implementation.mp4 90.4MB
│├─084. Header File for OT & Primitive Buffer.mp4 79.7MB
│├─084. Header File for OT & Primitive Buffer.srt 33.7KB
│├─084. Header File for OT & Primitive Buffer.vtt 34.8KB
│├─085. Header File for Display Routines.srt 8.8KB
│├─085. Header File for Display Routines.vtt 9.1KB
│├─085. Header File for Display Routines.mp4 25.8MB
│├─086. Camera Space.srt 15.9KB
│├─086. Camera Space.vtt 17KB
│├─086. Camera Space.mp4 54.8MB
│├─087. The Look-At Transformation.mp4 73.9MB
│├─087. The Look-At Transformation.srt 22.4KB
│├─087. The Look-At Transformation.vtt 24.3KB
│├─088. The LookAt Function.mp4 66.7MB
│├─088. The LookAt Function.srt 22.7KB
│├─088. The LookAt Function.vtt 24.8KB
│├─089. Coding the Look-At Camera Model.mp4 83.6MB
│├─089. Coding the Look-At Camera Model.srt 26.3KB
│├─089. Coding the Look-At Camera Model.vtt 27.3KB
│├─090. CD-ROM Basics.srt 29.2KB
│├─090. CD-ROM Basics.vtt 30.4KB
│├─090. CD-ROM Basics.mp4 65.2MB
│├─091. Generating an ISO on Windows XP.mp4 47.1MB
│├─091. Generating an ISO on Windows XP.srt 19.5KB
│├─091. Generating an ISO on Windows XP.vtt 19.9KB
│├─092. Generating an ISO on Windows 11.mp4 32.7MB
│├─092. Generating an ISO on Windows 11.srt 11.3KB
│├─092. Generating an ISO on Windows 11.vtt 11.3KB
│├─093. A Function to Read Files from the CD.mp4 93.6MB
│├─093. A Function to Read Files from the CD.srt 29KB
│├─093. A Function to Read Files from the CD.vtt 30.1KB
│├─094. Understanding the MODEL.BIN File.srt 9.8KB
│├─094. Understanding the MODEL.BIN File.vtt 10KB
│├─094. Understanding the MODEL.BIN File.mp4 23.9MB
│├─095. Dynamically Allocating Buffers.mp4 49.8MB
│├─095. Dynamically Allocating Buffers.srt 12KB
│├─095. Dynamically Allocating Buffers.vtt 12.4KB
│├─096. Heap Initialization on Windows 11.srt 8.3KB
│├─096. Heap Initialization on Windows 11.vtt 8.5KB
│├─096. Heap Initialization on Windows 11.mp4 24.7MB
│├─097. Interpreting Bytes as Numbers.mp4 72.3MB
│├─097. Interpreting Bytes as Numbers.srt 20.2KB
│├─097. Interpreting Bytes as Numbers.vtt 20.6KB
│├─098. Handling Different Order of Bytes.srt 12.7KB
│├─098. Handling Different Order of Bytes.vtt 12.9KB
│├─098. Handling Different Order of Bytes.mp4 47.1MB
│├─099. Reading Vertices & Faces from a File.mp4 51.2MB
│├─099. Reading Vertices & Faces from a File.srt 18.6KB
│├─099. Reading Vertices & Faces from a File.vtt 19KB
│├─100. UV Coordinates, TPAGE, & CLUT.mp4 61.1MB
│├─100. UV Coordinates, TPAGE, & CLUT.srt 23.3KB
│├─100. UV Coordinates, TPAGE, & CLUT.vtt 24.7KB
│├─101. Installing TIM Tool.mp4 7.6MB
│├─101. Installing TIM Tool.srt 4.9KB
│├─101. Installing TIM Tool.vtt 5KB
│├─102. TIM File Format.srt 14.9KB
│├─102. TIM File Format.vtt 15.3KB
│├─102. TIM File Format.mp4 25.9MB
│├─103. Read TIM File from the CD.mp4 75.6MB
│├─103. Read TIM File from the CD.srt 27.5KB
│├─103. Read TIM File from the CD.vtt 27.9KB
│├─104. Textured Cube Faces.srt 23KB
│├─104. Textured Cube Faces.vtt 23.6KB
│├─104. Textured Cube Faces.mp4 84MB
│├─105. Wobbly Textures.srt 15.6KB
│├─105. Wobbly Textures.vtt 16.7KB
│├─105. Wobbly Textures.mp4 100.2MB
│├─106. Polygon Jitter.srt 3.6KB
│├─106. Polygon Jitter.vtt 3.9KB
│├─106. Polygon Jitter.mp4 8.7MB
│├─107. Dev Tools CD Samples.mp4 41.2MB
│├─107. Dev Tools CD Samples.srt 11KB
│├─107. Dev Tools CD Samples.vtt 11.4KB
│├─108. Intro to our Final Project.srt 13.7KB
│├─108. Intro to our Final Project.vtt 14.2KB
│├─108. Intro to our Final Project.mp4 80.9MB
│├─109. Importing Project Assets.srt 5.4KB
│├─109. Importing Project Assets.vtt 5.4KB
│├─109. Importing Project Assets.mp4 9.2MB
│├─110. PRM File Layout.srt 17.9KB
│├─110. PRM File Layout.vtt 18.6KB
│├─110. PRM File Layout.mp4 49MB
│├─111. Reading Object Name from PRM File.mp4 55.2MB
│├─111. Reading Object Name from PRM File.srt 18.4KB
│├─111. Reading Object Name from PRM File.vtt 19.2KB
│├─112. Reading Vertices from PRM File.mp4 41.3MB
│├─112. Reading Vertices from PRM File.srt 15.4KB
│├─112. Reading Vertices from PRM File.vtt 15.8KB
│├─113. Handling Different Primitive Types.srt 24.9KB
│├─113. Handling Different Primitive Types.vtt 25.8KB
│├─113. Handling Different Primitive Types.mp4 103MB
│├─114. Reading Primitives from PRM File.mp4 58.3MB
│├─114. Reading Primitives from PRM File.srt 17.8KB
│├─114. Reading Primitives from PRM File.vtt 18.3KB
│├─115. Drawing Flat-Shaded Object Faces.srt 33.4KB
│├─115. Drawing Flat-Shaded Object Faces.vtt 34KB
│├─115. Drawing Flat-Shaded Object Faces.mp4 103.8MB
│├─116. Using sizeof with Variable Name.srt 3.4KB
│├─116. Using sizeof with Variable Name.vtt 3.6KB
│├─116. Using sizeof with Variable Name.mp4 11.5MB
│├─117. CMP File Layout.srt 15.3KB
│├─117. CMP File Layout.vtt 16.2KB
│├─117. CMP File Layout.mp4 68.7MB
│├─118. Reading Number of Textures from File.mp4 29.7MB
│├─118. Reading Number of Textures from File.srt 8.8KB
│├─118. Reading Number of Textures from File.vtt 9.1KB
│├─119. Reading TIM Sizes from File.srt 18.2KB
│├─119. Reading TIM Sizes from File.vtt 19.1KB
│├─119. Reading TIM Sizes from File.mp4 60.1MB
│├─120. A Function to Extract LZSS Data.mp4 33.6MB
│├─120. A Function to Extract LZSS Data.srt 15KB
│├─120. A Function to Extract LZSS Data.vtt 15.5KB
│├─121. Texture Structs.srt 18.8KB
│├─121. Texture Structs.vtt 20KB
│├─121. Texture Structs.mp4 47.3MB
│├─122. Uploading CMP Textures to VRAM.mp4 63MB
│├─122. Uploading CMP Textures to VRAM.srt 23.7KB
│├─122. Uploading CMP Textures to VRAM.vtt 24.6KB
│├─123. Global Texture Store Array.mp4 75.4MB
│├─123. Global Texture Store Array.srt 16.8KB
│├─123. Global Texture Store Array.vtt 17.4KB
│├─124. Rendering Textured Triangles.srt 7.8KB
│├─124. Rendering Textured Triangles.vtt 8.1KB
│├─124. Rendering Textured Triangles.mp4 24.1MB
│├─125. Visualizing Textured 3D Objects.srt 9.5KB
│├─125. Visualizing Textured 3D Objects.vtt 9.6KB
│├─125. Visualizing Textured 3D Objects.mp4 40.5MB
│├─126. Loading Multiple CMP Files.mp4 59.5MB
│├─126. Loading Multiple CMP Files.srt 14.6KB
│├─126. Loading Multiple CMP Files.vtt 15.1KB
│├─127. Exercise Linked List of Objects.mp4 29.7MB
│├─127. Exercise Linked List of Objects.srt 10.2KB
│├─127. Exercise Linked List of Objects.vtt 11.1KB
│├─128. Linked List Implementation.srt 21.3KB
│├─128. Linked List Implementation.vtt 22KB
│├─128. Linked List Implementation.mp4 61.5MB
│├─129. Joypad Press & Release.srt 3.5KB
│├─129. Joypad Press & Release.vtt 3.6KB
│├─129. Joypad Press & Release.mp4 9MB
│├─130. Reading Scene Objects from CD.mp4 98.4MB
│├─130. Reading Scene Objects from CD.srt 27KB
│├─130. Reading Scene Objects from CD.vtt 27.9KB
│├─131. Camera-Object Distance Check.mp4 41.1MB
│├─131. Camera-Object Distance Check.srt 14.7KB
│├─131. Camera-Object Distance Check.vtt 15.2KB
│├─132. Drawing Scene Objects.srt 11.9KB
│├─132. Drawing Scene Objects.vtt 12.6KB
│├─132. Drawing Scene Objects.mp4 52MB
│├─133. Track Sections & Faces.srt 21KB
│├─133. Track Sections & Faces.vtt 22.4KB
│├─133. Track Sections & Faces.mp4 66.2MB
│├─134. Structs for Sessions & Faces.mp4 23.5MB
│├─134. Structs for Sessions & Faces.srt 9.3KB
│├─134. Structs for Sessions & Faces.vtt 9.6KB
│├─135. Reading Vertices, Faces, & Sections.mp4 73.8MB
│├─135. Reading Vertices, Faces, & Sections.srt 27.7KB
│├─135. Reading Vertices, Faces, & Sections.vtt 28.8KB
│├─136. Function to Render Track Sections.srt 28.1KB
│├─136. Function to Render Track Sections.vtt 29.2KB
│├─136. Function to Render Track Sections.mp4 96.5MB
│├─137. Shrinking Track Vertices.srt 16.9KB
│├─137. Shrinking Track Vertices.vtt 17.5KB
│├─137. Shrinking Track Vertices.mp4 92.2MB
│├─138. Exercise Testing Face Flags.mp4 26.4MB
│├─138. Exercise Testing Face Flags.srt 6.5KB
│├─138. Exercise Testing Face Flags.vtt 6.9KB
│├─139. Drawing Quad Lines.srt 7.8KB
│├─139. Drawing Quad Lines.vtt 7.8KB
│├─139. Drawing Quad Lines.mp4 28.2MB
│├─140. Avoiding the GTE 16-bit Limitation.mp4 67MB
│├─140. Avoiding the GTE 16-bit Limitation.srt 15.6KB
│├─140. Avoiding the GTE 16-bit Limitation.vtt 16.9KB
│├─141. Clamping Overflow Values.srt 22.1KB
│├─141. Clamping Overflow Values.vtt 23.3KB
│├─141. Clamping Overflow Values.mp4 75.8MB
│├─142. Loading Track Texture Tiles.mp4 101.8MB
│├─142. Loading Track Texture Tiles.srt 31KB
│├─142. Loading Track Texture Tiles.vtt 32.3KB
│├─143. Manually Position Textures in VRAM.mp4 80.1MB
│├─143. Manually Position Textures in VRAM.srt 19.9KB
│├─143. Manually Position Textures in VRAM.vtt 20.4KB
│├─144. Loading Track Face UV Coords.mp4 46.2MB
│├─144. Loading Track Face UV Coords.srt 12.4KB
│├─144. Loading Track Face UV Coords.vtt 12.7KB
│├─145. Flip Face Texture.srt 7.9KB
│├─145. Flip Face Texture.vtt 7.9KB
│├─145. Flip Face Texture.mp4 25.2MB
│├─146. Tessellation & Polygon Subdivision.srt 20KB
│├─146. Tessellation & Polygon Subdivision.vtt 21KB
│├─146. Tessellation & Polygon Subdivision.mp4 108.7MB
│├─147. Drawing Quads Recursively.srt 18.3KB
│├─147. Drawing Quads Recursively.vtt 18.9KB
│├─147. Drawing Quads Recursively.mp4 37.9MB
│├─148. A Function to Draw Quads Recursively.mp4 75.9MB
│├─148. A Function to Draw Quads Recursively.srt 16.4KB
│├─148. A Function to Draw Quads Recursively.vtt 17.2KB
│├─149. Subdividing UV Coordinates.srt 14.3KB
│├─149. Subdividing UV Coordinates.vtt 14.8KB
│├─149. Subdividing UV Coordinates.mp4 49MB
│├─150. T-junctions.srt 19.8KB
│├─150. T-junctions.vtt 20.8KB
│├─150. T-junctions.mp4 126.2MB
│├─PS1 Programming with MIPS Assembly & C.txt 4KB
│├─code.zip 1.1GB