We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

GBForth: Using Forth to understand the Game Boy

00:00

Formal Metadata

Title
GBForth: Using Forth to understand the Game Boy
Title of Series
Number of Parts
561
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
During this talk we'll get a good understanding of Game Boy programming by reverse-engineering a ROM using Forth. We go beyond just decompiling the ROM to assembly and show how we created a cross-compiler that allows writing Game Boy games in Forth as well. You'll get to see how Forth interacts with the Game Boy hardware, and how the language can be extended to easily render sprites or play sounds for example. We show you how to use Forth to incrementally refactor Game Boy bytecode into higher levels of abstraction. No black boxes. No magic. This way you can understand and appreciate every layer of the hardware and CPU instructions one by one. A similar approach can help you understand other systems (NES comes to mind) and create a language that is more comfortable than ASM or C to work with. The talk is accessible to developers without former Game Boy, Forth or compiler experience. Topics covered: - Go through the basics of Game Boy hardware - Explain how rendering graphics works on a Game Boy - Outline the challenges of working with the Game Boy memory - Show how to reverse-engineer a binary using Forth - Describe the process of writing the cross-compiler - Talk about using GBForth to write Game Boy games
Game theoryHacker (term)EmulatorCompilerPascal's triangleSource codeBefehlsprozessorComputer hardwareVideoconferencingSquare numberTouchscreenFeedbackReverse engineeringBinary fileAbstractionRight angleGame theoryBitComputer programmingHacker (term)EmulatorForcing (mathematics)Line (geometry)Field (computer science)CompilerMultiplication signGroup actionMultiplicationCycle (graph theory)Information technology consultingMixed realityPointer (computer programming)Moment (mathematics)DebuggerSpacetimeQuicksortFeedbackSemiconductor memoryComputer architectureDampingEinsteckmodulComputer hardwareProduct (business)Physical systemVideoconferencingPoint (geometry)TouchscreenBefehlsprozessorReverse engineeringProjective planeCodeFunctional (mathematics)Address spaceComputer simulationSkewnessData structureCoefficient of determinationWavePersonal digital assistantBeat (acoustics)Cache (computing)outputCommunications protocolComputer animation
Game theoryReverse engineeringBinary fileCompilerAbstractionStack (abstract data type)Parameter (computer programming)BitCompilerFormal languageTotal S.A.Forcing (mathematics)Multiplication signXMLComputer animation
Stack (abstract data type)Parameter (computer programming)FactorizationFormal languageComputer virusMachine codeNintendo Co. Ltd.Formal languageCodeNumberWikiCompilerInternetworkingComputer programmingGame theoryStack (abstract data type)WordData structureRevision controlSequenceBitCategory of beingSpacetimeMetadataGraph coloringSubsetBefehlsprozessorDomain-specific languageParameter (computer programming)Computer fileNormal (geometry)TouchscreenHash functionReverse engineeringFlagQuicksortResultantCore dumpRaw image formatMereologyCASE <Informatik>HexagonGreatest elementPoint (geometry)CodeGroup actionProcess (computing)Multiplication signNatural numberProjective planeField (computer science)InformationEmailPlastikkarteInheritance (object-oriented programming)Element (mathematics)
Assembly languageDivisorMachine codeExtension (kinesiology)Formal languagePattern languagePattern languageWordArithmetic meanNumberCodePhysical systemArrow of timePoint (geometry)QuicksortMachine codeDoubling the cubeOpcodeConnected spaceHidden Markov modelComputer animation
Pattern languageFormal languageExtension (kinesiology)Complete metric spaceAssembly languageMacro (computer science)MereologyOpcodePoint (geometry)Positional notationBefehlsprozessorFormal languageComputer programmingAssembly languageCycle (graph theory)Game theoryData structureAdditionCodeBitTrailWordTable (information)SequenceFreewareComputer animation
Macro (computer science)Point (geometry)Assembly languageComputer fileBitComputer programmingComputer animationXML
Macro (computer science)Abstract state machinesRepresentation (politics)Assembly languageRevision controlMacro (computer science)Game theoryComputer programmingProjective planePattern languageData storage deviceCodeLibrary (computing)BitIntermediate languageImplementationComputer animation
Macro (computer science)Abstract state machinesRepresentation (politics)Intermediate languageSystem callHidden Markov modelCodeMathematical optimizationComputer animation
Abstract state machinesImplementationCodeCompilerPoint (geometry)WordGame theoryLevel (video gaming)CodePrimitive (album)MultilaterationAssembly languageComputer animation
LengthAssembly languageSemiconductor memoryComputer programmingAddress spaceBlock (periodic table)Level (video gaming)WordVideoconferencingLimit (category theory)Logical constantFunction (mathematics)ImplementationComputer animation
Game theoryDivision (mathematics)SpeicheradresseSemiconductor memoryLimit (category theory)Key (cryptography)Game theoryRead-only memoryDivision (mathematics)Run time (program lifecycle phase)Keyboard shortcutWordVariable (mathematics)ComputerUltraviolet photoelectron spectroscopyMereologyPhysical systemString (computer science)EinsteckmoduloutputReading (process)Computer animation
Game theoryGame theoryMereologyComputer programmingPhysical systemPoint (geometry)Roundness (object)XML
Game theoryAbstract state machinesCompilerMathematical optimizationSemiconductor memoryGame controllerWritingGame theoryEmulatorMathematicsStandard deviationTesselationSoftware bugCompilerRadical (chemistry)Fitness functionComputer programmingEinsteckmodulImplementationAssembly languagePrimitive (album)Level (video gaming)CodeFunctional (mathematics)Exception handlingVariable (mathematics)WhiteboardQuicksortComplete metric space
Abstract state machinesMathematical optimizationCompilerSemiconductor memoryGame controllerWritingGame theoryRange (statistics)Game theorySoftware bugMathematical optimizationCompilerComputer programmingComputer animation
Abstract state machinesCompilerMathematical optimizationGame controllerSemiconductor memoryWritingGame theoryProjective planeCondition numberGame theoryGraph coloringDampingSheaf (mathematics)Different (Kate Ryan album)EinsteckmodulRecursionCategory of beingDebuggerAbstractionSemiconductor memorySpacetimeComputer hardwareGame controllerLibrary (computing)Primitive (album)Address spaceCodeMultiplication signWordMathematical optimizationDecision tree learningLine (geometry)Computer animation
Standard deviationCycle (graph theory)Computer programmingWordoutputDecision theoryDoubling the cubeHacker (term)WhiteboardParticle systemSpherical capMathematical optimizationMultiplication signProjective planePointer (computer programming)1 (number)Point (geometry)DampingAssembly languageMixed realityDevice driverDifferent (Kate Ryan album)EinsteckmodulCompilerOffice suiteRadical (chemistry)EmulatorKey (cryptography)Computer fileData managementMereologyGame theoryComputer hardwareCalculationFloating pointCASE <Informatik>Software testingPlastikkarteBuildingString (computer science)Selectivity (electronic)Reverse engineeringSummierbarkeitPosition operatorStack (abstract data type)Limit (category theory)Virtual machineEmailNumberFlash memoryContext awarenessMappingComputer animation
Point cloudCanonical ensembleCompilerProjective planeMathematical optimizationLecture/ConferenceMeeting/InterviewComputer animation
Transcript: English(auto-generated)