2020-12-16 11:41:37 +00:00
<!DOCTYPE html>
< html lang = "en" >
2012-03-23 20:30:31 +00:00
< head >
2020-12-16 11:41:37 +00:00
< meta charset = "utf-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" / >
2023-02-08 02:31:04 +00:00
< meta name = "generator" content = "HelpNDoc Personal Edition 7.9.1.631" >
2020-12-16 11:41:37 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< link rel = "icon" href = "favicon.ico" / >
< title > Savestate (.fcs)< / title >
< meta name = "description" content = "" / >
< meta name = "keywords" content = "" >
<!-- Twitter Card data -->
< meta name = "twitter:card" content = "summary" >
< meta name = "twitter:title" content = "Savestate (.fcs)" >
< meta name = "twitter:description" content = "" >
<!-- Open Graph data -->
< meta property = "og:title" content = "Savestate (.fcs)" / >
< meta property = "og:type" content = "article" / >
< meta property = "og:description" content = "" / >
< meta property = "og:site_name" content = "FCEUX Help" / >
<!-- Bootstrap core CSS -->
< link href = "vendors/bootstrap-3.4.1/css/bootstrap.min.css" rel = "stylesheet" / >
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
< link href = "vendors/bootstrap-3.4.1/css/ie10-viewport-bug-workaround.css" rel = "stylesheet" / >
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- [if lt IE 9]>
< script src = "vendors/html5shiv-3.7.3/html5shiv.min.js" > < / script >
< script src = "vendors/respond-1.4.2/respond.min.js" > < / script >
<![endif]-->
<!-- JsTree styles -->
< link href = "vendors/jstree-3.3.10/themes/default/style.min.css" rel = "stylesheet" / >
<!-- Hnd styles -->
< link href = "css/layout.min.css" rel = "stylesheet" / >
< link href = "css/effects.min.css" rel = "stylesheet" / >
< link href = "css/theme-light-blue.min.css" rel = "stylesheet" / >
< link href = "css/print.min.css" rel = "stylesheet" media = "print" / >
< style type = "text/css" > nav { width : 250 px } @ media screen and ( min-width : 769px ) { body . md-nav-expanded div # main { margin-left : 250 px } body . md-nav-expanded header { padding-left : 264 px } } < / style >
2023-02-08 02:31:04 +00:00
< style type = "text/css" > . navigation # inline-toc { width : auto !important } < / style >
2020-12-16 11:41:37 +00:00
<!-- Content style -->
< link href = "css/hnd.content.css" rel = "stylesheet" / >
2012-03-23 20:30:31 +00:00
< / head >
2020-12-16 11:41:37 +00:00
< body class = "md-nav-expanded" >
< div id = "skip-link" >
< a href = "#main-content" class = "element-invisible" > Skip to main content< / a >
< / div >
< header class = "headroom" >
< button class = "hnd-toggle btn btn-default" >
< span class = "sr-only" > Toggle navigation< / span >
< span class = "icon-bar" > < / span > < span class = "icon-bar" > < / span > < span class = "icon-bar" > < / span >
< / button >
< h1 > FCEUX Help< / h1 >
< / header >
< nav id = "panel-left" class = "md-nav-expanded" >
<!-- Nav tabs -->
< ul class = "tab-tabs nav nav-tabs" role = "tablist" >
< li id = "nav-close" >
< button class = "hnd-toggle btn btn-default" >
< span class = "glyphicon glyphicon-remove" aria-hidden = "true" > < / span >
< / button >
< / li >
< li role = "presentation" class = "tab active" >
< a href = "#contents" id = "tab-contents" aria-controls = "contents" role = "tab" data-toggle = "tab" >
< i class = "glyphicon glyphicon-list" > < / i >
Contents
< / a >
< / li >
< li role = "presentation" class = "tab" >
< a href = "#index" id = "tab-index" aria-controls = "index" role = "tab" data-toggle = "tab" >
< i class = "glyphicon glyphicon-asterisk" > < / i >
Index
< / a >
< / li >
< li role = "presentation" class = "tab" >
< a href = "#search" id = "tab-search" aria-controls = "search" role = "tab" data-toggle = "tab" >
< i class = "glyphicon glyphicon-search" > < / i >
Search
< / a >
< / li >
< / ul > <!-- /Nav tabs -->
<!-- Tab panes -->
< div class = "tab-content" >
< div role = "tabpanel" class = "tab-pane active" id = "contents" >
< div id = "toc" class = "tree-container unselectable"
data-url="_toc.json"
data-openlvl="1"
>
< / div >
< / div > <!-- /contents -->
< div role = "tabpanel" class = "tab-pane" id = "index" >
< div id = "keywords" class = "tree-container unselectable"
data-url="_keywords.json"
data-openlvl="1"
>
< / div >
< / div > <!-- /index -->
< div role = "tabpanel" class = "tab-pane" id = "search" >
< div class = "search-content" >
< div class = "search-input" >
< form id = "search-form" >
< div class = "form-group" >
< div class = "input-group" >
< input type = "text" class = "form-control" id = "input-search" name = "input-search" placeholder = "Search..." / >
< span class = "input-group-btn" >
< button class = "btn btn-default" type = "submit" >
< span class = "glyphicon glyphicon-search" aria-hidden = "true" > < / span >
< / button >
< / span >
< / div >
< / div >
< / form >
< / div > <!-- /search - input -->
< div class = "search-result" >
< div id = "search-info" > < / div >
< div class = "tree-container unselectable" id = "search-tree" > < / div >
< / div > <!-- /search - result -->
< / div > <!-- /search - content -->
< / div > <!-- /search -->
< / div > <!-- /Tab panes -->
< / nav >
< div id = "main" >
< article >
< div id = "topic-content" class = "container-fluid"
data-hnd-id="fcs"
data-hnd-context="27"
data-hnd-title="Savestate (.fcs)"
>
< div class = "navigation" >
< ol class = "breadcrumb" >
< li > < a href = "Technicalinformation.html" > Technical Information< / a > < / li > < li > < a href = "Movieformats.html" > Movie & Savestate formats< / a > < / li >
< / ol >
< div class = "nav-arrows" >
2021-06-25 01:27:09 +00:00
< div class = "btn-group btn-group" role = "group" > < a class = "btn btn-default" href = "Movieformats.html" title = "Movie & Savestate formats" role = "button" > < span class = "glyphicon glyphicon-menu-up" aria-hidden = "true" > < / span > < / a > < a class = "btn btn-default" href = "fcm.html" title = ".fcm" role = "button" > < span class = "glyphicon glyphicon-menu-left" aria-hidden = "true" > < / span > < / a > < a class = "btn btn-default" href = "Sound.html" title = "Sound" role = "button" > < span class = "glyphicon glyphicon-menu-right" aria-hidden = "true" > < / span > < / a > < / div >
2020-12-16 11:41:37 +00:00
< / div >
< / div >
< a id = "main-content" > < / a >
< h2 > Savestate (.fcs)< / h2 >
< div class = "main-content" >
< p class = "rvps2" > < span class = "rvts6" > FCE Ultra Save State Format< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Updated: Mar 9, 2003< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---------------------------------------< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > FCE Ultra's save state format is now designed to be as forward and backwards< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > compatible as possible. This is achieved through the (over)use of chunks.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > All multiple-byte variables are stored LSB(least significant byte)-first.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Data types:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > (u)int8 - (un)signed 8 bit variable(also referred to as "byte")< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > (u)int16 - (un)signed 16 bit variable< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > (u)int32 - (un)signed 32 bit variable< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > -- Main File Header:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > The main file header is 16-bytes in length. The first three bytes contain< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > the string "FCS". The next byte contains the version of FCE Ultra that saved< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > this save state. This document only applies to version "53"(.53) and higher.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > After the version byte, the size of the entire file in bytes(minus the 16 byte< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > main file header) is stored. If oldversion is set to 255, the 32-bit version< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > field will be used. In this field, a version such as 0.98.10 is stored as "9810"(decimal).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > The rest of the header is currently unused and should be nulled out. < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Example of relevant parts:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > FCS < uint8 oldversion> < uint32 totalsize> < uint32 version> < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > -- Section Chunks:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Sections chunk headers are 5-bytes in length. The first byte defines what < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > section it is, the next four bytes define the total size of the section< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > (including the section chunk header).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < uint8 section> < uint32 size> < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Section definitions:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 1< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > -< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > "CPU"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 2< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > -< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > "CPUC"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 3< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > -< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > "PPU"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 4< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > -< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > "CTLR"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 5< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > -< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > "SND"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 16< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > -< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > "EXTRA"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > -- Subsection Chunks< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Subsection chunks are stored within section chunks. They contain the actual< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > state data. Each subsection chunk is composed of an 8-byte header and the data.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > The header contains a description(a name) and the size of the data contained < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > in the chunk:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < uint8 description[4]> < uint32 size> < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > The name is a four-byte string. It does not need to be null-terminated.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > If the string is less than four bytes in length, the remaining unused bytes< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > must be null.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > -- Subsection Chunk Description Definitions< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > Note that not all subsection chunk description definitions listed below< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > are guaranteed to be in the section chunk. It's just a list of what CAN< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > be in a section chunk. This especially applies to the "EXTRA" subsection.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---- Section "CPU"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > Name:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Type:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Description:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PC< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint16< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Program Counter< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > A< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Accumulator< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > P< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Processor status register< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > X< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > X register< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Y< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Y register< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > S< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Stack pointer< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > RAM< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x800]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 2KB work RAM< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---- Section "CPUC" (emulator specific)< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > Name:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Type:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Description:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > JAMM< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Non-zero value if CPU in a "jammed" state< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQL< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Non-zero value if IRQs are to be generated constantly< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > ICoa< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > int32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Temporary cycle counter< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > ICou< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > int32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Cycle counter< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---- Section "PPU"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > Name:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Type:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Description:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > NTAR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x800]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 2 KB of name/attribute table RAM< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PRAM< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[32]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 32 bytes of palette index RAM< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > SPRA< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x100]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 256 bytes of sprite RAM< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PPU< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[4]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Last values written to $2000 and $2001, the PPU< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > status register, and the last value written to< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > $2003.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > XOFF< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Tile X-offset.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > VTOG< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Toggle used by $2005 and $2006.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > RADD< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint16< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PPU Address Register(address written to/read from< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > when $2007 is accessed).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > TADD< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint16< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PPU Address Register< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > VBUF< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > VRAM Read Buffer< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PGEN< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PPU "general" latch. See Ki's document.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---- Section "CTLR" (somewhat emulator specific)< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > Name:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Type:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Description:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > J1RB< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Bit to be returned when first joystick is read.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > J2RB< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Bit to be returned when second joystick is read.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---- Section "SND" (somewhat emulator specific)< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > NREG< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint16< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Noise LFSR.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > P17< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Last byte written to $4017.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PBIN< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > DMC bit index.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PAIN< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > DMC address index(from $8000).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PSIN< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > DMC length counter(how many bytes left < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > to fetch).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < to be finished> < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > ---- Section "EXTRA" (varying emulator specificness)< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > For iNES-format games(incomplete, and doesn't apply to every game):< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > Name:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Type:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Description:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > WRAM< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x2000]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 8KB of WRAM at $6000-$7fff< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > MEXR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x8000]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > (very emulator specific)< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > CHRR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x2000]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 8KB of CHR RAM at $0000-$1fff(in PPU address space).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > EXNR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x800] < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Extra 2KB of name/attribute table RAM.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > MPBY< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[32]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > (very emulator specific)< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > MIRR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Current mirroring:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 0 = "Horizontal"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 1 = "Vertical"< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > $10 = Mirror from $2000< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > $11 = Mirror from $2400< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQC< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Generic IRQ counter< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IQL1< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Generic IRQ latch< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IQL2< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Generic IRQ latch< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQA< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Generic IRQ on/off register.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > PBL< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[4]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > List of 4 8KB ROM banks paged in at $8000-$FFFF< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > CBL< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[8]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > List of 8 1KB VROM banks page in at $0000-$1FFF(PPU).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > For FDS games(incomplete):< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > Name:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Type:< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Description:< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > DDT< x> uint8[65500] Disk data for side x(0-3).< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > FDSR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x8000]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 32 KB of work RAM< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > CHRR< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[0x2000]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > 8 KB of CHR RAM< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQC< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQ counter< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > IQL1< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint32< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQ latch< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQA< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > IRQ on/off.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < br / > < / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > WAVE< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[64]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Carrier waveform data.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > MWAV< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[32]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Modulator waveform data.< / span > < / p >
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > AMPL< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > uint8[2]< / span > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < span class = "rvts6" > Amplitude data.< / span > < / p >
2021-06-25 01:27:09 +00:00
< p class = "rvps2" > < span class = "rvts6" > < / span > < span class = "rvts6" > < / span > < / p >
2020-12-16 11:41:37 +00:00
< p class = "rvps4" style = "clear: both;" > < span class = "rvts18" > Created with the Personal Edition of HelpNDoc: < / span > < a class = "rvts19" href = "https://www.helpauthoringsoftware.com" > Benefits of a Help Authoring Tool< / a > < / p >
< / div >
< div id = "topic_footer" > < div id = "topic_footer_content" > 2020< / div > < / div >
< / div > <!-- /#topic - content -->
< / article >
< footer > < / footer >
< / div > <!-- /#main -->
< div class = "mask" data-toggle = "sm-nav-expanded" > < / div >
<!-- Modal -->
< div class = "modal fade" id = "hndModal" tabindex = "-1" role = "dialog" aria-labelledby = "hndModalLabel" >
< div class = "modal-dialog" role = "document" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-label = "Close" > < span aria-hidden = "true" > × < / span > < / button >
< h4 class = "modal-title" id = "hndModalLabel" > < / h4 >
< / div >
< div class = "modal-body" >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-primary modal-btn-close" data-dismiss = "modal" > Close< / button >
< / div >
< / div >
< / div >
< / div >
<!-- Splitter -->
< div id = "hnd-splitter" style = "left: 250px" > < / div >
<!-- Scripts -->
< script src = "vendors/jquery-3.5.1/jquery.min.js" > < / script >
< script src = "vendors/bootstrap-3.4.1/js/bootstrap.min.js" > < / script >
< script src = "vendors/bootstrap-3.4.1/js/ie10-viewport-bug-workaround.js" > < / script >
< script src = "vendors/markjs-8.11.1/jquery.mark.min.js" > < / script >
< script src = "vendors/uri-1.19.2/uri.min.js" > < / script >
< script src = "vendors/imageMapResizer-1.0.10/imageMapResizer.min.js" > < / script >
< script src = "vendors/headroom-0.11.0/headroom.min.js" > < / script >
< script src = "vendors/jstree-3.3.10/jstree.min.js" > < / script >
< script src = "vendors/interactjs-1.9.22/interact.min.js" > < / script >
<!-- HelpNDoc scripts -->
< script src = "js/polyfill.object.min.js" > < / script >
< script src = "_translations.js" > < / script >
< script src = "js/hndsd.min.js" > < / script >
< script src = "js/hndse.min.js" > < / script >
< script src = "js/app.min.js" > < / script >
<!-- Init script -->
< script >
$(function() {
// Create the app
2023-02-08 02:31:04 +00:00
var app = new Hnd.App({
searchEngineMinChars: 3
});
2020-12-16 11:41:37 +00:00
// Update translations
hnd_ut(app);
// Instanciate imageMapResizer
imageMapResize();
// Custom JS
// Boot the app
app.Boot();
});
< / script >
< / body >
2012-03-23 20:30:31 +00:00
< / html >