A COMPREHENSIVE LIST OF NESMAKER EXPORTED DATA This is a work in progress. @TODO indicates values and/or labels I yet need to localize inside NESmaker and the exported demo file(s). This list aims to give a complete overview of values that get exported from the NESmaker UI into the game's code, and how or where the default modules use and/or address those. It is arranged by bank and in order of appearance. Chapters 0-31 will cover the exported files per bank that they are included in. Chapter 32 lists the exported files that are not part of any bank specifically (these are mainly constants and macros and therefore not part of a bank). Chapter 33 lists all files that are exported by NESmaker, but not used by any of the default modules. Please feel free to contact me at kevin81@nerdboard.nl if you find any inaccuracies, inconsistencies, missing files or if you just feel like dropping a line or two for no specific reason :) The list is not complete yet (hence the multiple instances of @TODO to be found in the document) but I'm aiming at completing it on short notice. Anyway, thanks so far for reading! ============ 0. BANK $00 ============ 0.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ {yx} is the screen number in the overworld. Bank $00 has screens $00 to $1F. NT_Rm{yx}: .db {TileID}, ... ; If screen {yx} is a metatile screen, {TileID} ; holds the value of the tile ID on the top-left ; side of the metatile to draw. If {yx} is a ; full tile screen, it's just the tile ID of the ; tile to draw. These values are repeated 960 or ; 240 times, for every (meta)tile to draw on ; screen. 0.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $00 has screens $00 to $1F. Ct{yx}: .db {Collision}, ... ; The collision type of each metatile. Stored in ; nibbles, so each byte holds two collision type ; values. Repeated 120 times (a screen has 240 ; metatiles, one byte holds the collision data ; for two metatiles). Screen_Over_{yx}_info: .db {ScreenType} ; Screen type (used for triggers? @TODO) .db {TNMonsterGroup} ; Triggered night monster group ID .db {ScreenPalette} ; Background palette group ID .db {TNObjectPalette1} ; Triggered night palette 1 for objects .db {AllScreenBits} ; @TODO .db {ScreenByte01} ; ScreenByte01 values .db {PathTileMask} ; @TODO .db {} ; @TODO .db {} ; @TODO .db {TMObjectPalette2} ; Triggered night palette 2 for objects .db {NeededBitFlags} ; %dgggtuaw ; |||||||+-- warp to under (0) or overworld (1) ; ||||||+--- animated (@TODO) ; |||||+---- underground (@TODO) ; ||||+----- show text on load (@TODO) ; |+++------ Game state (0-7) ; +--------- 8x8 (1) or 16x16 (0) mode .db {UDMonPos1} ; Untriggered day monster 1 position on screen .db {UDmonPos2} ; Untriggered day monster 2 position on screen .db {UDmonPos3} ; Untriggered day monster 3 position on screen .db {UNMonPos1} ; Untriggered night monster 1 position on screen .db {UNmonPos2} ; Untriggered night monster 2 position on screen .db {UNmonPos3} ; Untriggered night monster 3 position on screen .db {TDMonPos1} ; Triggered day monster 1 position on screen .db {TDmonPos2} ; Triggered day monster 2 position on screen .db {TDmonPos3} ; Triggered day monster 3 position on screen .db {TNMonPos1} ; Triggered night monster 1 position on screen .db {TNmonPos2} ; Triggered night monster 2 position on screen .db {TNmonPos3} ; Triggered night monster 3 position on screen .db {UDMonGroup} ; Untriggered day monster group .db {UNMonGroup} ; Untriggererd night monster group .db {TDMonGroup} ; Triggered day monster group .db {UDPalette1} ; Untriggered day palette 1 .db {UNPalette1} ; Untriggererd night palette 1 .db {TDPalette1} ; Triggered day palette 1 .db {UDPalette2} ; Untriggered day palette 2 .db {UNPalette2} ; Untriggererd night palette 2 .db {TDPalette2} ; Triggered day palette 2 .db {MonTiles1} ; Monster tileset IDs (untriggered) ; %NnnnDddd ; |||||+++- Day monster tileset ; ||||+---- Day monster bank ; |+++----- Night monster tileset ; +-------- Night monster bank .db {MonTiles2} ; Monster tileset IDs (triggered) ; %NnnnDddd ; |||||+++- Day monster tileset ; ||||+---- Day monster bank ; |+++----- Night monster tileset ; +-------- Night monster bank .db {UDString} ; Untriggered day string pointer .db {UNString} ; Untriggered night string pointer .db {TDString} ; Triggered day string pointer .db {TNString} ; Triggered night string pointer .db {UDMonPos} ; Untriggered day monster 4 position on screen .db {UNMonPos} ; Untriggered night monster 4 position on screen .db {TDMonPos} ; Triggered day monster 4 position on screen .db {TNMonPos} ; Triggered night monster 4 position on screen .db {UDMon1Id} ; Untriggered day monster 1 ID .db {UDMon2Id} ; Untriggered day monster 2 ID .db {UDMon3Id} ; Untriggered day monster 3 ID .db {UDMon4Id} ; Untriggered day monster 4 ID .db {TDMon1Id} ; Triggered day monster 1 ID .db {TDMon2Id} ; Triggered day monster 2 ID .db {TDMon3Id} ; Triggered day monster 3 ID .db {TDMon4Id} ; Triggered day monster 4 ID .db {UNMon1Id} ; Untriggered night monster 1 ID .db {UNMon2Id} ; Untriggered night monster 2 ID .db {UNMon3Id} ; Untriggered night monster 3 ID .db {UNMon4Id} ; Untriggered night monster 4 ID .db {TNMon1Id} ; Triggered night monster 1 ID .db {TNMon2Id} ; Triggered night monster 2 ID .db {TNMon3Id} ; Triggered night monster 3 ID .db {TNMon4Id} ; Triggered night monster 4 ID .db {UDSong} ; Untriggered day song ID .db {TDSong} ; Triggered day song ID .db {UNSong} ; Untriggered night song ID .db {TNSong} ; Triggered night song ID .db {UserScreenFlags} ; Second screen bits group @TODO .db {UDMonState2} ; "Monster State GameObj2" @TODO .db {UNMonState2} ; "Monster State GameObj2" @TODO .db {TDMonState2} ; "Monster State GameObj2" @TODO .db {TNMonState2} ; "Monster State GameObj2" @TODO .db {UserScreenByte00} ; User screen byte 0 .db {UserScreenByte01} ; User screen byte 1 .db {UserScreenByte02} ; User screen byte 2 .db {UserScreenByte03} ; User screen byte 3 .db {UserScreenByte04} ; User screen byte 4 .db {UserScreenByte05} ; User screen byte 5 .db {UserScreenByte06} ; User screen byte 6 .db {UserScreenByte07} ; User screen byte 7 .db {SpecialTileTypes} ; Special tile types (abxxxyyy) @TODO .db {TilesetLayout} ; Tileset layout (main/screen/hud...) .db {Tileset1} ; Tileset IDs to use .db {Tileset2} ; %bbbbssss .db {Tileset3} ; ||||++++- ID of tileset .db {Tileset4} ; ++++----- Bank number .db {Tileset5} ; .db {Tileset6} ; .db {UDMonState1} ; "Monster State GameObj1" @TODO .db {UNMonState1} ; "Monster State GameObj1" @TODO .db {TDMonState1} ; "Monster State GameObj1" @TODO .db {TNMonState1} ; "Monster State GameObj1" @TODO 0.3. ScreenData\AttributeTables\Screen_Over_{yx}.att ================================================================================ {yx} is the screen number in the overworld. Bank $00 has screens $00 to $1F. At_Rm{yx}: .db {Attribute}, ... ; Attibute data for screen {yx}, stored in 64 ; bytes and ready to write to the PPU 1-to-1 ============ 1. BANK $01 ============ 1.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 1.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 1.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $01 has screens $20 to $3F. See chapter 0. for more details. ============ 2. BANK $02 ============ 2.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 2.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 2.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $02 has screens $40 to $5F. See chapter 0. for more details. ============ 3. BANK $03 ============ 3.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 3.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 3.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $03 has screens $60 to $7F. See chapter 0. for more details. ============ 4. BANK $04 ============ 4.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 4.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 4.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $04 has screens $80 to $9F. See chapter 0. for more details. ============ 5. BANK $05 ============ 5.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 5.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 5.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $05 has screens $A0 to $BF. See chapter 0. for more details. ============ 6. BANK $06 ============ 6.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 6.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 6.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $06 has screens $C0 to $DF. See chapter 0. for more details. ============ 7. BANK $07 ============ 7.1. ScreenData\Nametables\Screen_Over_{yx}.nam ================================================================================ 7.2. ScreenData\CollisionTables\Screen_Over_{yx}.col ================================================================================ 7.3. ScreenData\AttributeTables\Screen_Over_{yx}.col ================================================================================ {yx} is the screen number in the overworld. Bank $07 has screens $E0 to $FF. See chapter 0. for more details. ============ 8. BANK $08 ============ 8.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ {yx} is the screen number in the underworld. Bank $08 has screens $00 to $1F. bNT_Rm00: .db {TileId}, ... ; See chapter 0.1. for more details 8.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $08 has screens $00 to $1F. bCt{yx}: .db {Collision}, ... ; See chapter 0.2. for more details Screen_Under_{yx}_info: .db ... ; See chapter 0.2. for more details 8.3. ScreenData\AttributeTables\Screen_Under_{yx}.att ================================================================================ {yx} is the screen number in the underworld. Bank $082 has screens $00 to $1F. bAT_Rm{yx}: .db {Attribute}, ... ; See chapter 0.3. for more details ============ 9. BANK $09 ============ 9.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 9.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 9.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $09 has screens $20 to $3F. See chapter 0. and 8. for more details. ============ 10. BANK $0A ============ 10.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 10.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 10.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $0A has screens $40 to $5F. See chapter 0. and 8. for more details. ============ 11. BANK $0B ============ 11.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 11.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 11.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $0B has screens $60 to $7F. See chapter 0. and 8. for more details. ============ 12. BANK $0C ============ 12.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 12.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 12.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $0C has screens $80 to $9F. See chapter 0. and 8. for more details. ============ 13. BANK $0D ============ 13.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 13.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 13.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $0D has screens $A0 to $BF. See chapter 0. and 8. for more details. ============ 14. BANK $0E ============ 14.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 14.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 14.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $0E has screens $C0 to $DF. See chapter 0. and 8. for more details. ============ 15. BANK $0F ============ 15.1. ScreenData\Nametables\Screen_Under_{yx}.nam ================================================================================ 15.2. ScreenData\CollisionTables\Screen_Under_{yx}.col ================================================================================ 15.3. ScreenData\AttributeTables\Screen_Under_{yx}.col ================================================================================ {yx} is the screen number in the underworld. Bank $0F has screens $E0 to $FF. See chapter 0. and 8. for more details. ============ 16. BANK $10 ============ 16.1. Graphics\Backgrounds\BckCHR_{num}.chr ================================================================================ Various binary background graphic (CHR) files. @TODO add file dimensions BckChr00: .incbin "Graphics\Backgrounds\BckCHR_00.chr" BckChr01: .incbin "Graphics\Backgrounds\BckCHR_01.chr" BckChr02: .incbin "Graphics\Backgrounds\BckCHR_02.chr" BckChr03: .incbin "Graphics\Backgrounds\BckCHR_03.chr" BckChr04: .incbin "Graphics\Backgrounds\BckCHR_04.chr" BckChr05: .incbin "Graphics\Backgrounds\BckCHR_05.chr" 16.2. Graphics\Backgrounds\BckSSCHR{num}.chr ================================================================================ Various binary background "SS" graphic (CHR) files. @TODO add file dimensions BckSSChr00: .incbin "Graphics\Backgrounds\BckSSChr00.chr" BckSSChr01: .incbin "Graphics\Backgrounds\BckSSChr01.chr" BckSSChr02: .incbin "Graphics\Backgrounds\BckSSChr02.chr" BckSSChr03: .incbin "Graphics\Backgrounds\BckSSChr03.chr" BckSSChr04: .incbin "Graphics\Backgrounds\BckSSChr04.chr" BckSSChr05: .incbin "Graphics\Backgrounds\BckSSChr05.chr" BckSSChr06: .incbin "Graphics\Backgrounds\BckSSChr06.chr" BckSSChr07: .incbin "Graphics\Backgrounds\BckSSChr07.chr" BckSSChr08: .incbin "Graphics\Backgrounds\BckSSChr08.chr" BckSSChr09: .incbin "Graphics\Backgrounds\BckSSChr09.chr" 16.3. Graphics\Backgrounds\CHR_Path_{num}.chr ================================================================================ Various binary path graphic (CHR) files. @TODO add file dimensions PathTiles00: .incbin "Graphics\Backgrounds\CHR_Path_00.chr" PathTiles01: .incbin "Graphics\Backgrounds\CHR_Path_01.chr" PathTiles02: .incbin "Graphics\Backgrounds\CHR_Path_02.chr" PathTiles03: .incbin "Graphics\Backgrounds\CHR_Path_03.chr" PathTiles04: .incbin "Graphics\Backgrounds\CHR_Path_04.chr" PathTiles05: .incbin "Graphics\Backgrounds\CHR_Path_05.chr" PathTiles06: .incbin "Graphics\Backgrounds\CHR_Path_06.chr" PathTiles07: .incbin "Graphics\Backgrounds\CHR_Path_07.chr" ============ 17. BANK $11 ============ 17.1. Graphics\Backgrounds\BckCHR_{num}.chr ================================================================================ Various binary background graphic (CHR) files. @TODO add file dimensions BckChr06: .incbin "Graphics\Backgrounds\BckCHR_06.chr" BckChr07: .incbin "Graphics\Backgrounds\BckCHR_07.chr" BckChr08: .incbin "Graphics\Backgrounds\BckCHR_08.chr" BckChr09: .incbin "Graphics\Backgrounds\BckCHR_09.chr" BckChr10: .incbin "Graphics\Backgrounds\BckCHR_10.chr" BckChr11: .incbin "Graphics\Backgrounds\BckCHR_11.chr" 17.2. Graphics\Backgrounds\BckSSCHR{num}.chr ================================================================================ Various binary background "SS" graphic (CHR) files. @TODO add file dimensions BckSSChr10: .incbin "Graphics\Backgrounds\BckSSChr10.chr" BckSSChr11: .incbin "Graphics\Backgrounds\BckSSChr11.chr" BckSSChr12: .incbin "Graphics\Backgrounds\BckSSChr12.chr" BckSSChr13: .incbin "Graphics\Backgrounds\BckSSChr13.chr" BckSSChr14: .incbin "Graphics\Backgrounds\BckSSChr14.chr" BckSSChr15: .incbin "Graphics\Backgrounds\BckSSChr15.chr" BckSSChr16: .incbin "Graphics\Backgrounds\BckSSChr16.chr" BckSSChr17: .incbin "Graphics\Backgrounds\BckSSChr17.chr" BckSSChr18: .incbin "Graphics\Backgrounds\BckSSChr18.chr" BckSSChr19: .incbin "Graphics\Backgrounds\BckSSChr19.chr" 17.3. Graphics\Backgrounds\CHR_Path_{num}.chr ================================================================================ Various binary path graphic (CHR) files. @TODO add file dimensions PathTiles08: .incbin "Graphics\Backgrounds\CHR_Path_08.chr" PathTiles09: .incbin "Graphics\Backgrounds\CHR_Path_09.chr" PathTiles10: .incbin "Graphics\Backgrounds\CHR_Path_10.chr" PathTiles11: .incbin "Graphics\Backgrounds\CHR_Path_11.chr" PathTiles12: .incbin "Graphics\Backgrounds\CHR_Path_12.chr" PathTiles13: .incbin "Graphics\Backgrounds\CHR_Path_13.chr" PathTiles14: .incbin "Graphics\Backgrounds\CHR_Path_14.chr" PathTiles15: .incbin "Graphics\Backgrounds\CHR_Path_15.chr" ============ 18. BANK $12 ============ 18.1. Graphics\Backgrounds\BckCHR_{num}.chr ================================================================================ Various binary background graphic (CHR) files. @TODO add file dimensions BckChr12: .incbin "Graphics\Backgrounds\BckCHR_12.chr" BckChr13: .incbin "Graphics\Backgrounds\BckCHR_13.chr" BckChr14: .incbin "Graphics\Backgrounds\BckCHR_14.chr" BckChr15: .incbin "Graphics\Backgrounds\BckCHR_15.chr" BckChr16: .incbin "Graphics\Backgrounds\BckCHR_16.chr" BckChr17: .incbin "Graphics\Backgrounds\BckCHR_17.chr" 18.2. Graphics\Backgrounds\BckSSCHR{num}.chr ================================================================================ Various binary background "SS" graphic (CHR) files. @TODO add file dimensions BckSSChr20: .incbin "Graphics\Backgrounds\BckSSChr20.chr" BckSSChr21: .incbin "Graphics\Backgrounds\BckSSChr21.chr" BckSSChr22: .incbin "Graphics\Backgrounds\BckSSChr22.chr" BckSSChr23: .incbin "Graphics\Backgrounds\BckSSChr23.chr" BckSSChr24: .incbin "Graphics\Backgrounds\BckSSChr24.chr" BckSSChr25: .incbin "Graphics\Backgrounds\BckSSChr25.chr" BckSSChr26: .incbin "Graphics\Backgrounds\BckSSChr26.chr" BckSSChr27: .incbin "Graphics\Backgrounds\BckSSChr27.chr" BckSSChr28: .incbin "Graphics\Backgrounds\BckSSChr28.chr" BckSSChr29: .incbin "Graphics\Backgrounds\BckSSChr29.chr" 18.3. Graphics\Backgrounds\CHR_Path_{num}.chr ================================================================================ Various binary path graphic (CHR) files. @TODO add file dimensions PathTiles16: .incbin "Graphics\Backgrounds\CHR_Path_16.chr" PathTiles17: .incbin "Graphics\Backgrounds\CHR_Path_17.chr" PathTiles18: .incbin "Graphics\Backgrounds\CHR_Path_18.chr" PathTiles19: .incbin "Graphics\Backgrounds\CHR_Path_19.chr" PathTiles20: .incbin "Graphics\Backgrounds\CHR_Path_20.chr" PathTiles21: .incbin "Graphics\Backgrounds\CHR_Path_21.chr" PathTiles22: .incbin "Graphics\Backgrounds\CHR_Path_22.chr" PathTiles23: .incbin "Graphics\Backgrounds\CHR_Path_23.chr" ============ 19. BANK $13 ============ 19.1. Graphics\Sprites\Monster_0_{num}.chr ================================================================================ Binary monster graphic (CHR) files from monster bank 0. monster_0_00: .incbin "Graphics\Sprites\Monster_0_00.chr" monster_0_01: .incbin "Graphics\Sprites\Monster_0_01.chr" monster_0_02: .incbin "Graphics\Sprites\Monster_0_02.chr" monster_0_03: .incbin "Graphics\Sprites\Monster_0_03.chr" monster_0_04: .incbin "Graphics\Sprites\Monster_0_04.chr" monster_0_05: .incbin "Graphics\Sprites\Monster_0_05.chr" monster_0_06: .incbin "Graphics\Sprites\Monster_0_06.chr" monster_0_07: .incbin "Graphics\Sprites\Monster_0_07.chr" ============ 20. BANK $14 ============ 20.1. Graphics\Sprites\Monster_1_{num}.chr ================================================================================ Binary monster graphic (CHR) files from monster bank 1. monster_1_00: .incbin "Graphics\Sprites\Monster_1_00.chr" monster_1_01: .incbin "Graphics\Sprites\Monster_1_01.chr" monster_1_02: .incbin "Graphics\Sprites\Monster_1_02.chr" monster_1_03: .incbin "Graphics\Sprites\Monster_1_03.chr" monster_1_04: .incbin "Graphics\Sprites\Monster_1_04.chr" monster_1_05: .incbin "Graphics\Sprites\Monster_1_05.chr" monster_1_06: .incbin "Graphics\Sprites\Monster_1_06.chr" monster_1_07: .incbin "Graphics\Sprites\Monster_1_07.chr" ============ 21. BANK $15 ============ 21.1 Graphics\Sprites\CHR_GameObjectTiles.chr ================================================================================ Binary game object graphic (CHR) files. GameObjectTiles00: .incbin "Graphics\Sprites\CHR_GameObjectTiles.chr" ============ 22. BANK $16 ============ 22.1. ScreenData\npcTextGroup.dat ================================================================================ AllTextGroups: TextGroup{num}: ; Current text group .db {entryId}, ... ; Text entry ID. 4 per group ; There are 256 text groups (0 - 255) 22.2. ScreenData\PaletteInfo.pal ================================================================================ BckPal{num}: ; Current background palette group .db {colorID}, ... ; Palette color ID. 64 colors per palette group ; @TODO verify if these are 4 (un)triggered ; day/night palettes ; There are 64 background palette groups ($00 - $3f) 22.3. ScreenData\ObjectPals.pal ================================================================================ objectPal_{num}: ; Current object palette .db {colorID}, ... ; Palette color ID. 4 colors per palette ; There are 64 object palettes (0 - 63) 22.4. GameData\ObjectStatusPointers.asm ================================================================================ This file is included, but seems to contain only unused/empty labels 22.5. GameData\ObjectBehaviorLuts.asm ================================================================================ This file is included, but seems to be empty/unused/deprecated ============ 23. BANK $17 ============ Bank $17 contains no NESmaker exported files by default. ============ 24. BANK $18 ============ 24.1. ScreenData\ObjectData\SolidEdgeObjectReaction.dat ================================================================================ ObjectReaction: .db {Reaction}, ... ; Collision reaction IDs, stored in nibbles ; High nibble: solid collision reaction ; Low nibble: screen edge collision reaction 24.2. GameData\HUD_UPDATES.dat ================================================================================ updateHudElement{num}: ; Hud element update script @TODO ; There are 8 HUD update scripts (0 - 7) ============ 25. BANK $19 ============ 25.1. ScreenData\npcText01.dat ================================================================================ Text{num}: ; Text entry @TODO ; There are 256 text entries in this file (0 - 255) ============ 26. BANK $1A ============ Bank $1A contains no NESmaker exported files by default. ============ 27. BANK $1B ============ 27.1. Sound\AllSongs_WithSFX.asm ================================================================================ This is the ASM file that is either directly imported through the ASM import function of NESmaker, or converted from an imported Famitracker TXT file. ============ 28. BANK $1C ============ 28.1. ScreenData\ObjectInfo.dat ================================================================================ GameItem{TypeId]_{AnimId}: ; Object type ID, anmiation ID .db {FrameCount} ; Number of frames in current animation .db {ChrId},{Attr},... ; CHR/sprite tile ID in PPU, sprite attributes ; (repeated {ObjectWidth x ObjectHeight} times) .db ... ; repeated {FrameCount} times Object{TypeId*}_{AnimId}: ; Object type ID minus 16, animation ID .db ... ; Same contents as GameItems Object_total_sprites: .db {ObjectSize} ; Object size (sprite tile width x height) .db ... ; Repeated for each game object and monster 28.2. ScreenData\ObjectPointers.pnt ================================================================================ GameItem{TypeId}_Lo: ; Object type ID .db <{AnimD}, <{AnimDR} ; The low bytes of the adresses where the .db <{AnimR}, <{AnimUR} ; animation sequences for the first animation .db <{AnimU}, <{AnimUL} ; type are found, stored in counterclockwise .db <{AnimL}, <{AnimDL} ; order .db ... ; Repeated for every animation type GameItem{TypeId}_Hi: ; Object type ID .db >{AnimD}, >{AnimDR} ; The high bytes of the adresses where the .db >{AnimR}, >{AnimUR} ; animation sequences for the first animation .db >{AnimU}, >{AnimUL} ; type are found, stored in counterclockwise .db >{AnimL}, >{AnimDL} ; order .db ... ; Repeated for every animation type ; These are repeated for every game item Object{TypeID*}_Lo: ; Same, but for monsters (Type ID -16) Object{TypeID*}_Hi: ; 28.3. ScreenData\ObjectData\ObjectLutTable.dat ================================================================================ ObjectAnimationSpeedTableLo: ; The low byte of the address where the object's ; animation speed value is stored ObjectBehaviorTableLo: ; The low byte of the address where the object's ; action type / behavior data is stored EndActionAnimationTableLo: ; The low byte of the address where the object's ; end of action/animation data is stored VulnerabilityTableLo: ; The low byte of the address where the object's ; monster bit data is stored ObjectAnimationSpeedTableHi: ; The low byte of the address where the object's ; animation speed value is stored ObjectBehaviorTableHi: ; The low byte of the address where the object's ; action type / behavior data is stored EndActionAnimationTableHi: ; The low byte of the address where the object's ; end of action/animation data is stored VulnerabilityTableHi: ; The low byte of the address where the object's ; monster bit data is stored AnimationTables: ; Animation table data (see 28.3.1.) BehaviorTables: ; Action timer and type data (see 28.3.2.) EndAnimationTables: ; End animation/action data (see 28.3.3.) VulnerabilityTables: ; Action step flags (see 28.3.4.) ObjectMaxSpeed: ; Maximum speed (see 28.3.5.) ObjectSize: ; Size (see 28.3.6.) ObjectBboxLeft: ; BB left side (see 28.3.7.) ObjectWidth: ; BB width (see 28.3.8.) ObjectBboxTop: ; BB top (see 28.3.9.) ObjectHeight: ; BB height (see 28.3.10.) ObjectWorth: ; Worth (unused, undefined) ObjectSpeedVariant: ; Speed variant (unused, undefined) ObjectStrengthDefense: ; Strength/defense (unused, undefined) ObjectHealth: ; Health (see 28.3.11.) ObjectFlags: ; Monster flags (see 28.3.12.) ObjectAccAmount: ; Accelleration value (see 28.3.13.) ObjectJumpSpeedLo: ; Jump speed in subpixels (see 28.3.14.) ObjectJumpSpeedHi: ; Jump speed in pixels (see 28.3.15.) 28.3.1. ScreenData\ObjectData\animSpeedtable.dat -------------------------------------------------------------------------------- GameItem{TypeID}_animSpeedTable: Object{TypeID*}_animSpeedTable: .db {Group|Speed}, ... ; Animation group offset and animation speed of ; the current action step, stored in nibbles ; Repeated 8 times (once for each action step) 28.3.2. ScreenData\ObjectData\ObjectBehaviorTable.dat -------------------------------------------------------------------------------- GameItem{TypeID}_ActionTypes: Object{TypeID*}_ActionTypes: .db {Timer|Type}, ... ; Action timer value (high nibble) and ; action type (low nibble) ; Repeated 8 times (once for each action step) 28.3.3. ScreenData\ObjectData\EndActionAnimationTable.dat -------------------------------------------------------------------------------- GameItem{TypeID}_EndAction: Object{TypeID*}_EndAction: .db {Anim|Action}, ... ; End action type (high nibble) and ; end animation type (low nibble) ; Repeated 8 times (once for each action step) 28.3.4. ScreenData\ObjectData\VulnerabilityTable.dat -------------------------------------------------------------------------------- GameItem{TypeID}_VulnerabilityTable: Object{TypeID*}_VulnerabilityTable: .db {Flags}, ... ; Action step flags (eight bits) ; Repeated 8 times (once for each action step) 28.3.5. ScreenData\ObjectData\ObjectMaxSpeed.dat -------------------------------------------------------------------------------- .db {Speed}, ... ; The object type's maximum speed ; Repeated for every object 28.3.6. ScreenData\ObjectData\ObjectSize.dat -------------------------------------------------------------------------------- .db {Size}, ... ; Object size in %00xxxyyy format ; xxx is object width in tiles ; yyy is object height in tiles ; Repeated for every object 28.3.7. ScreenData\ObjectData\ObjectBboxLeft.dat -------------------------------------------------------------------------------- .db {Left}, ... ; Left offset of bounding box, in pixels ; Repeated for every object 28.3.8. ScreenData\ObjectData\ObjectWidth.dat -------------------------------------------------------------------------------- .db {Width}, ... ; Bounding box width in pixels ; Repeated for every object 28.3.9. ScreenData\ObjectData\ObjectBboxTop.dat -------------------------------------------------------------------------------- .db {Top}, ... ; Top offset of bounding box, in pixels ; Repeated for every object 28.3.10. ScreenData\ObjectData\ObjectHeight.dat -------------------------------------------------------------------------------- .db {Height}, ... ; Bounding box height in pixels ; Repeated for every object 28.3.11. ScreenData\ObjectData\ObjectHealth.dat -------------------------------------------------------------------------------- .db {HP}, ... ; The object's health / hit points ; Repeated for every object 28.3.12. ScreenData\ObjectData\ObjectFlags.dat -------------------------------------------------------------------------------- .db {Flags}, ... ; Monster flags (eight bits) ; Repeated for every object 28.3.13. ScreenData\ObjectData\ObjectAccAmount.dat -------------------------------------------------------------------------------- .db {Accel}, ... ; Accelleration speed ; Repeated for every object 28.3.14. ScreenData\ObjectData\monsterObjectStartJumpSpeedLo.dat -------------------------------------------------------------------------------- .db {JumpLo}, ... ; Jump speed in subpixels ; Repeated for every object 28.3.15. ScreenData\ObjectData\monsterObjectStartJumpSpeedHi.dat -------------------------------------------------------------------------------- .db {JumpHi}, ... ; Jump speed in pixels ; Repeated for every object 28.4. (Bank1C, continued) ================================================================================ ObjectLoSpriteAddressLo: ; The low byte of the address where the low .db #GameItem{TypeID}_Lo ; bytes of the graphic address is stored for .db ... ; the current object type ID. Repeated for .db #>Object{TypeID*}_Lo ; every game object and monster (Type ID -16). .db ... ; ObjectHiSpriteAddressLo: ; The low byte of the address where the high .db #GameItem{TypeID}_Hi ; bytes of the graphic address is stored for .db ... ; the current object type ID. Repeated for .db #>Object{TypeID*}_Hi ; every game object and monster (Type ID -16). .db ... ; ============ 29. BANK $1D ============ Bank $1D contains no NESmaker exported files by default. ============ 30. BANK $1E ============ 30.1. Graphics\Backgrounds\CHR_HudTiles.chr ================================================================================ Binary HUD graphic (CHR) file HudTiles: .incbin "Graphics\Backgrounds\CHR_HudTiles.chr" ================================== 31. BANK $1F - AKA THE STATIC BANK ================================== 31.1. ScreenData\init.ini ================================================================================ START_LEVEL ; Overworld (1) or underworld (0) START_SCREEN_X ; x-coordinate of start screen (0-15) START_SCREEN_Y ; y-coordinate of start screen (0-15) START_ON_SCREEN ; First screen (in %yyyyxxxx format) START_POSITION_TILE_X ; First x-coordinate of player in tiles (0-15) START_POSITION_TILE_Y ; First y-coordinate of player in tiles (0-15) START_POSITION_PIX_X ; First x-coordinate of player in pixels START_POSITION_PIX_Y ; First y-coordinate of player in pixels BOSSES_DEFEATED ; @TODO RELIC_GROUP1 ; @TODO RELIC_GROUP2 ; @TODO DayNightSpeed ; @TODO INIT_ITEM_{ItemNum} ; @TODO INIT_TRIG_{Screens} ; The screens that start in a triggered state, ; stored as bit flags (8 triggers per byte) SKIP_START_SCREEN ; @TODO DATABANK1 ; @TODO PRESSED_INPUTS ; Number of input scripts for pressed states RELEASED_INPUTS ; Number of input scripts for released states HELD_INPUTS ; Number of input scripts for held states PAL_GO_1 ; @TODO PAL_GO_2 ; @TODO 31.2. GameData\InitializationScripts\hudVarInits.asm ================================================================================ Unlike its misleading filename, this file contains the default values for all the variables set through Project Settings > User Variables in the NESmaker UI. LDA #{value} ; The variable's default value STA {label} ; The variable's label/name 31.3. GameData\ScriptTables.asm ================================================================================ Pointers for linked input scripts ScriptAddressLo: ; The low byte of the address where the input .db {addressLo}, ... ; script subroutine is stored ScriptAddressHi: ; The high byte of the address where the input .db {addressHi}, ... ; script subroutine is stored TargetScriptBank: ; The bank number where the input script .db {bank}, ... ; subroutine is stored DefinedInputs_Pressed: ; Which button(s) should be pressed to trigger .db {gamepadBits}, ... ; an input script DefinedScriptGameStates_Pressed: ; Which game state / screen is this input .db {gameState}, ... ; script applicable for DefinedTargetController_Pressed: ; Which controller should be read to handle .db {controller}, ... ; the input (0 = cont.1, 1 = cont.2) DefinedTargetObjects_Pressed: ; Which object will the input script be .db {objectType}, ... ; applied to (usually the player) TargetState_Pressed: ; @TODO (I think these are unused actually) .db {targetState}, ... ; DefinedTargetScripts_Pressed: ; Offset value to get the correct script .db {scriptOffset}, ... ; subroutine from the (ScriptAddress) labels *_Released: ; Same as above, but for released buttons *_Held: ; Same as above, but for held buttons 31.4. GameData\DataBank01_Includes.asm ================================================================================ The actual input scripts, as referred to in ScriptAddressLo/Hi (see 31.2.) ScriptXX: ; Referenced input script files, as added via .include "{scriptfile}.asm" ; the NESmaker UI (Project > Scripts > ; Input Scripts) ============================= 32. INCLUDED OUTSIDE OF BANKS ============================= Files that are not part of any bank, but are included in the game's assembly file anyways, like constant declarations and macros. 32.1. GameData\CodeTargets.asm ================================================================================ A list of labels, assigned to file locations, to include in the game file. These can be set in the NESmaker UI, through Project Settings > Script Settings. {LABEL} EQU {fileLocation} ; Label assigned to file location, used for ; dynamic inclusion in the game 32.2. GameData\UserDefinedConstants.asm ================================================================================ A list of user defined constants, exported from the NESmaker UI. See: Project Settings > User Constants {CONSTANT} = $xx ; Constant label name and its value 32.3. GameData\HUD_BOX_CONSTANTS.dat ================================================================================ Static HUD (and other game) box dimension values, as set in NESmaker through HUD & Boxes > Hud @TODO Expand (HUD box, game area box, text box, sprite zero values, ...) 32.4. GameData\HUD_CONSTANTS.dat ================================================================================ Other HUD constants, as set in NESmaker in the HUD & Boxes section. @TODO Expand (used elements, element types, ...) 32.5. GameData\macroList.asm ================================================================================ Dynamically generated list of macros. All files in the ROOT\System\Macros folder are concatenated in this file. ======================= 33. UNUSED EXPORT FILES ======================= All files that are being exported by NESmaker, but not referenced in any of the default modules, will be listed here. 33.1. ScreenData\ObjectData\MonsterBits.dat ================================================================================ .db {MonsterBits}, ... ; Monster bits (eight bits) ; Repeated for each game object and monster ========= 34. @TODO ========= The following files are exported by NESmaker upon building a new ROM, but I've yet to catalog and describe them into the correct chapter: GameData\HUD_DEFINES.dat GameData\HUD_INCLUDES.dat GameData\MonsterList.txt GameData\Object_RAM.asm GameData\ObjectIDs.asm GameData\SFXLinks.dat GameData\System_RAM.asm GameData\ZP_RAM.asm GameData\System\HandleLoadHud.asm GameData\Variables\UserVariables.asm ScreenData\npcText02.dat ScreenData\ObjectAnimations.ini ScreenData\ShopInfo.dat ScreenData\SpecialTiles.dat ScreenData\WeaponOffset.dat ScreenData\ObjectData\HurtSpawn.dat ScreenData\ObjectData\MonsterGroups.dat ScreenData\ObjectData\ObjectSpeedVariant.dat ScreenData\ObjectData\ObjectStrengthDefense.dat ScreenData\ObjectData\ObjectWorth.dat