SMB1 disassemblies may be helpful:
*
http://www.romhacking.net/documents/344/*
https://gist.github.com/1wErt3r/4048722For an example, here is an encoded level from my game Nebs & Debs which uses a similar format to SMB1. This is generated from a Tiled tmx file via a ruby script. Objects are like SMB1 objects and the metasprites are actors and powerups, etc:
Code:
.code
.include "../src/objects/objects.h"
.include "../src/tiles/tiles.h"
.include "../src/palettes/palettes.h"
.segment "RODATA"
.proc mines1_1
; sprite palette
.byte palette_names::hero_pal
; background palette
.byte palette_names::background_pal
; default tile ID
.byte object_names::sky
; scene width
.byte 224
; trigger count
.byte 0
; object count
.byte 84
; object IDs
.word object_ids
; object column positions
.word object_cols
; object row and length bytes
.word object_row_lens
; object width and collision bytes
.word object_width_cols
; metasprite count
.byte 46
; metasprite IDs
.word metasprite_ids
; metasprite column positions
.word metasprite_cols
; metasprite row and length bytes
.word metasprite_rows
object_ids:
.byte object_names::floor, object_names::plants, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::floor, object_names::plants, object_names::floor, object_names::plants, object_names::floor_shadow, object_names::plants, object_names::floor, object_names::floor, object_names::plants, object_names::plants, object_names::floor, object_names::floor, object_names::floor, object_names::plants, object_names::plants, object_names::floor, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::floor, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::abyss, object_names::floor, object_names::plants, object_names::floor, object_names::plants, object_names::floor, object_names::floor_shadow, object_names::plants, object_names::floor, object_names::plants, object_names::abyss, object_names::floor, object_names::floor, object_names::plants, object_names::floor, object_names::plants, object_names::abyss, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::floor_shadow, object_names::plants, object_names::floor, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::abyss, object_names::floor, object_names::floor, object_names::plants, object_names::abyss, object_names::floor, object_names::floor, object_names::abyss, object_names::plants, object_names::floor_shadow, object_names::floor, object_names::floor, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::floor, object_names::plants, object_names::floor_shadow, object_names::plants, object_names::floor, object_names::plants, object_names::floor_shadow, object_names::floor, object_names::plants, object_names::floor, object_names::plants, object_names::floor, object_names::abyss, object_names::plants, object_names::floor
object_cols:
.byte 0, 0, 9, 9, 9, 15, 15, 21, 21, 21, 21, 21, 28, 28, 31, 31, 37, 38, 39, 43, 43, 43, 43, 43, 47, 47, 48, 48, 49, 52, 52, 54, 55, 55, 55, 56, 58, 58, 64, 68, 71, 72, 76, 76, 80, 83, 83, 83, 89, 89, 89, 93, 93, 93, 96, 96, 98, 100, 105, 108, 109, 110, 111, 111, 111, 121, 123, 123, 123, 138, 138, 146, 146, 146, 156, 156, 156, 164, 164, 171, 171, 178, 181, 181
object_row_lens:
.byte 60, 27, 26, 25, 24, 45, 28, 60, 23, 25, 27, 24, 90, 25, 28, 45, 60, 27, 27, 28, 45, 26, 25, 24, 23, 24, 22, 21, 30, 45, 28, 28, 23, 24, 25, 28, 60, 27, 45, 60, 42, 27, 42, 25, 45, 28, 57, 24, 23, 21, 22, 23, 22, 21, 30, 59, 21, 21, 29, 44, 36, 45, 21, 28, 42, 21, 27, 41, 24, 105, 24, 23, 21, 22, 21, 23, 22, 21, 150, 18, 195, 45, 27, 60
object_width_cols:
.byte 143, 143, 133, 133, 133, 134, 134, 135, 133, 133, 135, 133, 131, 131, 134, 134, 134, 129, 132, 134, 134, 131, 131, 131, 131, 131, 130, 130, 131, 134, 130, 130, 131, 131, 131, 130, 134, 134, 132, 140, 129, 132, 132, 132, 144, 134, 134, 134, 130, 130, 130, 158, 158, 133, 142, 137, 130, 137, 131, 130, 130, 156, 138, 134, 134, 130, 141, 141, 141, 154, 154, 133, 133, 133, 133, 133, 133, 135, 135, 135, 135, 131, 154, 154
metasprite_ids:
.byte metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::z65, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::z65, metasprite_names::z65, metasprite_names::z65, metasprite_names::balloon, metasprite_names::z65, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::z65, metasprite_names::z65, metasprite_names::balloon, metasprite_names::z65, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::z65, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::z65, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon, metasprite_names::balloon
metasprite_cols:
.byte 10, 12, 17, 21, 22, 24, 25, 29, 31, 38, 38, 41, 41, 47, 51, 53, 55, 61, 66, 73, 75, 95, 100, 101, 101, 103, 104, 106, 113, 117, 118, 121, 132, 134, 149, 151, 155, 160, 165, 169, 179, 179, 179, 179, 179, 182
metasprite_rows:
.byte 6, 6, 6, 5, 4, 4, 5, 6, 6, 9, 7, 9, 7, 12, 5, 5, 6, 6, 6, 11, 11, 4, 9, 5, 8, 8, 9, 5, 5, 8, 5, 8, 6, 6, 5, 4, 4, 8, 3, 1, 7, 9, 11, 3, 5, 11
.endproc