Hugo Map Formats

From ModdingWiki
Jump to: navigation, search
Hugo Map Formats
Hugo Map Formats.png
Format typeMap/level
Map typePixel image
Layer count1
Viewport (pixels)320×200

Hugo's House of Horrors uses three different map files, each similar in format. They are all 8,000 bytes, which translate to one bit per pixel of the game's 320x200 display. The three formats used by the game engine are as follows:

Extension Description
*.b Borders for the walkable region.
*.o Foreground areas that are drawn over top of Hugo when he's behind them.
*.ob I think this is used for allowing the game to tell if Hugo is close enough to an object to interact with it.
Data type Description
byte[8000] 8 map bits

Source Code

Map Viewer

This program allows you to view any of the map files.

' Hugo's House of Horrors Map Viewer.
' There are already plenty of PCX viewers out there for the games backgrounds 
' and sprites, but this program will allow you to view the map files in the 
' game. Each file has a particular extension.
' *.b  - A tracing of the solid borders in the room.
' *.o  - A foreground map. Drawn above Hugo if he is behind it.
' *.ob - Object locations. You must be near these to reach objects.
' Declare our variables.
Dim File As String
Dim X As UShort, Y As UShort
Dim B As UByte, Bits As UByte
Dim MapByte As UByte
' Change this file path to the file you want to view.
File = "E:\Games\Hugo1\hall.o"
Open File For Binary As #1
Screen 13
' Every file is 8,000 bytes, which translates to a 320x200 image after 
' decoding each bit into an individual pixel.
For Y = 0 To 199
    For X = 0 To 39
        ' Read the next 8 bits of map.
        Get #1, , MapByte
        ' To save space, the values are bit-encoded and must be decoded.
        For Bits = 0 To 7
            If Bit(MapByte, Bits) = -1 Then
                Pset(X * 8 - Bits, Y), 15
            End If
        Next Bits
    Next X
Next Y
Close #1


This level format was reverse engineered by TheAlmightyGuru. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)