The Cutting Room Floor now has a Patreon page. Thanks for all your support!

If you've blocked our ad, please consider unblocking it.
We promise it isn't annoying. No flash, no sound, ever.

Ads by Project Wonderful! Your ad here, right now: $0

Spirou (Game Boy)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Spirou

Developer: Bit Managers
Publisher: Infogrames
Platforms: Game Boy, Super Game Boy
Released in EU: 1996


CodeIcon.png This game has unused code.
SourceIcon.png This game has uncompiled source code.
CopyrightIcon.png This game has hidden developer credits.
DevTextIcon.png This game has hidden development-related text.
LevelSelectIcon.png This game has a hidden level select.


Level Select

Spirou GB Level Select.png

Pause the game and press Down, Down, B, Left, Right, A, Down, Up, A.

(Source: GameFAQs (Mezmorize99))

Development-Related Text

The string "BIT-MANAGERS" is used to pad empty space in the ROM.

Compile Information

A ton of the game's compilation info, including a chunk of the source code, can be found throughout the game's data.

0x11C00:

NW
 00000001  EXIT_SE
 00000002  EXIT_SW
 000003E8  EXLITAB
 0000DFC0  Error1
 0000DFC2  Error2
 0000DFC4  Error3
 0000DFB2  ExploPointer
 0000DFA3  ExtraHigh
 0000FFDB  FADECNT
 0000DF9F  FADEFAS
 00006C18  FADETAB
 00006C1C  FADING
 00006ECC  FADING0
 00000001  FALL
 0000FFDF  FALLADJ
 00000015  FGRF
 0000203F  FILMATION
 000017AD  FILMODE
 00000000  FIREA
 00000001  FIREB
 0000054C  FIRST
 000000F0  FIRSTNUMPIECE
 0000FFC4  FLAGAN
 0000FFC1  FLAGAN1
 0000FFC2  FLAGANMAIN
 00006268  FLECHA
 00000D01  FMARKS
 0000FFF3  FRASE
 000017AD  FT
 0000FFC9  FX
 0000FFF0  FXINI
 00000268  FXTINA1
 0000DF5E  FXVOL
 0000DD66  FXX
 0000DD6F  FXXTXT
 00000004  FXXX
 0000000D  FXXY
 0000FFCB  FY
 0000FFCD  FZ
 00002057  FilmationGet
 000026F6  FilmationOver
 000070FA  FilmationPut
 00002348  FilmationSprite
 0000002C  FirstExitPiece
 0000DF68  FirstLoop
 00000445  GAME
 00001B8B  GEN_CHAR
 000070DA  GEPEGRF
 000070DA  GEPEMAP
 00001027  GETCARTAB
 00001E2E  GETDUM
 00002C00  GETDUM_P
 00000AE0  GETJOY
 0000FFEA  GETT
 00000C39  GET_GRTAB
 00000CBB  GET_HIGH
 00001FAC  GET_MAP
 00004CAE  GET_PTB
 00000C0C  GET_START
 00000C2B  GET_STTAB
 00000008  GHO
 00006CAE  GOTXT
 00006C6B  GOVER
 0000DE1C  GRAFTAB
 00000020  GREEN
 0000DFA1  GRF_BNK
 0000DF9D  GRF_D
 0000DF9C  GRF_E
 000009AF  GS_GRF
 00000003  GTL
 00001DC9  GXYZBOY
 00001DD0  GXYZSCR
 00000004  GameSpeed
 00001B75  GenerateInvTab
 00002C55  GetImageBuffAdd
 00002987  GetMap
 00002957  GetMapAdd
 00002964  GetPiece
 000023A6  GetPixel2D
 000029BD  GetWork
 00004B8A  GravDown
 00004B4E  GravEnd
 00004B35  GravStart
 00004B70  GravUp
 00004B20  Gravity
 00000008  GravityHero
 000070DA  HADAGRF
 000070DA  HADAMAP
 00006B82  HADA_OUT
 0000DF9E  HADFAS
 0000178D  HALT
 000070BF  HBON
 00000003  HDLEN
 0000DD9E  HeroAnimCnt
 0000DD9D  HeroAnimFas
 00006756  HeroExplo
 0000675F  HeroWater
 000072C3  Hola
 0000FF8A  Huffman
 0000FFFF  IE
 0000FF90  IEB
 00000002  IE_LCDC
 00000004  IE_Timer
 00000001  IE_VBlank
 00000004  INBONU
 00000006  INFINAL
 00000000  INGAME
 00006EBC  INIATCH
 00000278  INIMUS
 0000024B  INIT41
 00001043  INI_BAD
 00006AF6  INI_GRFBON
 00001036  INI_GRT
 00000671  INI_HERO
 00007008  INI_LETS
 00000683  INI_SCR
 00007017  INI_STARS
 0000000F  INM
 00000003  INMENU
 00000001  INNOTHING
 00000005  INPARP
 00000007  INPRESENT
 00000002  INSETUP
 000002B8  INT_OFF
 000002A0  INT_ON
 0000DF1A  IconBuffer
 000056B7  IncLive
 000057E7  IniAddTab
 0000DFB6  IniCoins
 000010CD  IniOneBad
 0000109E  IniSomeBads
 00000038  IniSpdyHero
 00000060  IniSpdyHeroBig
 00005533  InitApart
 0000520A  InitHeroCoords
 000051E0  InitHeroExplo
 000051F2  InitHeroWater
 00007026  InitPosTab
 00006768  InitPosTab0
 00006771  InitPosTab1
 0000681A  InitPosTab10
 00006E34  InitPosTab100
 00006E35  InitPosTab101
 00006E36  InitPosTab102
 00006E37  InitPosTab103
 00006E38  InitPosTab104
 00006E39  InitPosTab105
 00006E4A  InitPosTab106
 00006E6B  InitPosTab107
 00006E7C  InitPosTab108
 00006E95  InitPosTab109
 00006823  InitPosTab11
 00006EB6  InitPosTab110
 00006ED7  InitPosTab111
 00006EF0  InitPosTab112
 00006EF9  InitPosTab113
 00006F0A  InitPosTab114
 00006F1B  InitPosTab115
 00006F24  InitPosTab116
 00006F3D  InitPosTab117
 00006F46  InitPosTab118
 00006F5F  InitPosTab119
 00006834  InitPosTab12
 00006F70  InitPosTab120
 00006F81  InitPosTab121
 00006F9A  InitPosTab122
 00006FAB  InitPosTab123
 00006FAC  InitPosTab124
 00006FC5  InitPosTab125
 00006FD6  InitPosTab126
 00006FDF  InitPosTab127
 00006FF0  InitPosTab128
 00007001  InitPosTab129
 0000684D  InitPosTab13
 00007012  InitPosTab130
 00007013  InitPosTab131
 00007014  InitPosTab132
 00007015  InitPosTab133
 00007016  InitPosTab134
 00007017  InitPosTab135
 00007018  InitPosTab136
 00007019  InitPosTab137
 0000701A  InitPosTab138
 0000701B  InitPosTab139
 00006856  InitPosTab14
 0000701C  InitPosTab140
 0000701D  InitPosTab141
 0000701E  InitPosTab142
 0000701F  InitPosTab143
 00007020  InitPosTab144
 00007021  InitPosTab145
 00007022  InitPosTab146
 00007023  InitPosTab147
 00007024  InitPosTab148
 00007025  InitPosTab149
 00006867  InitPosTab15
 00006878  InitPosTab16
 00006891  InitPosTab17
 0000689A  InitPosTab18
 000068AB  InitPosTab19
 00006782  InitPosTab2
 000068BC  InitPosTab20
 000068CD  InitPosTab21
 000068D6  InitPosTab22
 000068EF  InitPosTab23
 000068F8  InitPosTab24
 00006909  InitPosTab25
 0000691A  InitPosTab26
 00006933  InitPosTab27
 00006944  InitPosTab28
 00006965  InitPosTab29
 00006793  InitPosTab3
 00006976  InitPosTab30
 0000698F  InitPosTab31
 000069A8  InitPosTab32
 000069C1  InitPosTab33
 000069E2  InitPosTab34
 000069FB  InitPosTab35
 00006A1C  InitPosTab36
 00006A35  InitPosTab37
 00006A56  InitPosTab38
 00006A67  InitPosTab39
 000067A4  InitPosTab4
 00006A80  InitPosTab40
 00006A91  InitPosTab41
 00006AA2  InitPosTab42
 00006AB3  InitPosTab43
 00006AC4  InitPosTab44
 00006AD5  InitPosTab45
 00006AEE  InitPosTab46
 00006AFF  InitPosTab47
 00006B10  InitPosTab48
 00006B21  InitPosTab49
 000067AD  InitPosTab5
 00006B3A  InitPosTab50
 00006B43  InitPosTab51
 00006B4C  InitPosTab52
 00006B5D  InitPosTab53
 00006B6E  InitPosTab54
 00006B7F  InitPosTab55
 00006B90  InitPosTab56
 00006B99  InitPosTab57
 00006BAA  InitPosTab58
 00006BBB  InitPosTab59
 000067C6  InitPosTab6
 00006BCC  InitPosTab60
 00006BDD  InitPosTab61
 00006BEE  InitPosTab62
 00006BFF  InitPosTab63
 00006C10  InitPosTab64
 00006C19  InitPosTab65
 00006C1A  InitPosTab66
 00006C2B  InitPosTab67
 00006C3C  InitPosTab68
 00006C3D  InitPosTab69
 000067DF  InitPosTab7
 00006C4E  InitPosTab70
 00006C5F  InitPosTab71
 00006C70  InitPosTab72
 00006C81  InitPosTab73
 00006C9A  InitPosTab74
 00006CAB  InitPosTab75
 00006CBC  InitPosTab76
 00006CC5  InitPosTab77
 00006CD6  InitPosTab78
 00006CE7  InitPosTab79
 000067F0  InitPosTab8
 00006CF8  InitPosTab80
 00006D09  InitPosTab81
 00006D1A  InitPosTab82
 00006D2B  InitPosTab83
 00006D44  InitPosTab84
 00006D4D  InitPosTab85
 00006D5E  InitPosTab86
 00006D6F  InitPosTab87
 00006D80  InitPosTab88
 00006D81  InitPosTab89
 00006809  InitPosTab9
 00006D92  InitPosTab90
 00006DA3  InitPosTab91
 00006DAC  InitPosTab92
 00006DBD  InitPosTab93
 00006DD6  InitPosTab94
 00006DE7  InitPosTab95
 00006DF8  InitPosTab96
 00006E09  InitPosTab97
 00006E1A  InitPosTab98
 00006E2B  InitPosTab99
 00000000  IntType
 0000DF5F  J100CNT
 0000DF60  J100FAS
 00000B58  J100TAB
 0000FFD7  JOY
 0000DD63  JOYT
 000061E4  JOYT1
 000061E8  JOYT2
 0000DE38  JOYTAB
 0000DD67  JOYTTXT
 0000DE5B  JPPTAB
 00000000  JUMP
 0000441C  JpInMuelle
 0000143A  JpWhereTab
 00000004  JumpBig
 00000001  JumpDown
 00000003  JumpEnd
 00000002  JumpStart
 00000000  JumpUp
 0000DF65  KCNT
 00000D63  KEYOFF
 0000DF64  KILLED
 000046F2  KILL_BOY
 00000D73  KOFF
 00000D69  KON
 0000FF40  LCDC
 0000DF59  LCDCINT
 00000001  LCDC_BG
 00000008  LCDC_BG_Bnk
 00000010  LCDC_BG_Chr
 00000002  LCDC_OBJ
 00000004  LCDC_OBJ_Size
 00000DE2  LCDC_OF10
 00000DD8  LCDC_OFF
 00000DC9  LCDC_ON
 00000080  LCDC_Start
 00000040  LCDC_WinBnk
 00000020  LCDC_Window
 000011D4  LC_BGP_ON
 00006750  LC_ScrollPres
 00001796  LDIR
 00000E21  LDIRBL
 00000432  LDIRCPL
 0000043C  LDIRNOR
 00000005  LEFT
 00000010  LENPIECE
 0000042C  LETMENTAB
 00000009  LETN
 0000DF11  LETTAB
 0000DFB4  LIVES
 0000DD50  LIVTXT
 00000002  LLX
 00000011  LLY
 00000CD4  LOADMAP
 00004337  LOAD_JPP
 00002C60  LOD_GRF
 00007053  LTPOSTAB
 0000FF44  LY
 0000FF45  LYC
 00000100  LenBuffSpr
 00000007  LenClaves
 00000100  LenObjDefHero
 00000040  LenPack
 00002C6C  LoadBuffAdd
 0000430A  LoadHigh
 0000430C  LoadHighNoName
 00001178  LoadIcon
 00004443  LoadPerso
 00001220  LoadPresChars
 0000123A  LoadPresent
 00001A49  LookForExit
 00005E70  MAINMENU
 00000F55  MANDO
 0000DB00  MAPEADO
 00000412  MAPLETTER
 000003F6  MAPLETTERI
 00004000  MAPTAB
 00000013  MARC_PIEZ
 00000008  MARK1_PIEZ
 00000010  MARKERS_CoinX
 00000010  MARKERS_CoinY
 00000000  MARKERS_FaceX
 0000000F  MARKERS_FaceY
 00000012  MARKERS_IconX
 0000000F  MARKERS_IconY
 00000003  MARKERS_TimeX
 00000010  MARKERS_TimeY
 0000000B  MARKN_PIEZ
 000014FA  MARKS
 0000000A  MARK_BARS_X
 00000005  MARK_CROS_X
 00000003  MARK_HEAD_X
 00000006  MARK_LIVE_X
 00000032  MAXBOSQUE
 00000064  MAXCASTLE
 00000032  MAXPI
 0000FFD1  MAXX
 0000FFD2  MAXY
 0000FFD3  MAXZ
 0000001A  MES
 0000FFF1  MIDPIF
 0000FFCE  MINX
 0000FFCF  MINY
 0000FFD0  MINZ
 0000FF9C  MJPFLAG
 00000010  MON
 0000FFDE  MOVED
 00004281  MOVE_BOY
 000042AD  MOVE_THEM
 0000702B  MOV_LETS
 00004900  MOV_SAVE
 00004979  MOV_SPR
 0000705C  MOV_STARS
 00006E4F  MOV_S_O
 00004BAE  MOV_X
 00004C2E  MOV_Y
 00004DAF  MOV_Z
 00000016  MUE
 000068AE  MURTAB
 0000DD65  MUSIC
 0000DD6D  MUSICTXT
 00000004  MUSX
 0000000B  MUSY
 0000DF5C  MUZAKGO
 0000DFA2  MainHigh
 0000C500  MaskBuff
 00005C35  MoveWithPollo3

A variety of function and variables names.

0x3881D

 Linker 

0x038867

Libraries             
~Graphics library 
Turbo ~Vision     
ObjectWindows Library 
N~one             
S~tatic           
D~ynamic          
Container Class Library    
~None                  
~Static                
~Dynamic               
Standard Run-time Libraries 
Non~e                  
Stat~ic                
Dyn~amic               

0x38DFC

 Librarian Options 

0x38E51

Source Debugging
~On         
~Standalone 
~None       
Display Swapping
Non~e       
Sma~rt      
~Always     
Inspectors          
Show ~inherited 
Show ~methods   
Show ~decimal   
Show ~hex       
Show ~both      
~Program Heap Size   
K bytes     

0x39184

 Debugger 

0x391D0

Code ~Segment 
Code ~Group   
Code ~Class   
~Data Segment 
D~ata Group   
Da~ta Class   
~BSS Segment       
BSS G~roup         
BSS C~lass         
Far Data Segme~nt  
Far Data Grou~p    
~Far Data Class    

0x39817

 Directories 

0x39866

~Arguments

0x39927

 Program Arguments 

0x399C1

 Information 

0x39A10

~IDE, C++ Language, and Windows API 
~ObjectWindows API                  
~Turbo Vision API

0x39B30

Active Help File

0x39B90

C:\PROJET\TINTIN\MAP_SPR.ASM
C:\PROJET\TINTIN\HEROCTRL.ASM
C:\PROJET\TINTIN\HEROANIM.ASM
HEROCTRL
HEROCTRL.ASM
HEROANIM.ASM
ANIMTAB.ASM
WINDOW.ASM
*.ASM
MUSIC.ASM
SCREENS.ASM
SGB.ASM
TXTSPI.ASM
INCBIN.ASM

0x39C7C

 Include Files 
Include files for 

0x39CFF

~Include files        
Location

0x39DCC

 Local Options 
Project Item: 
~Command Line Options                      
Output ~Path                               
Project File ~Translators                 
~Overlay this module                 
~Exclude debug information           
Exclude from ~link                   

0x3A0E8

$NOSWAP
$NOSWAP $CAP MSG(TASM2MSG)
$NOSWAP $CAP EDIT
/m /i /p @SPIROU
LNK,SPIROU,,SPIROU $NOSWAP $CAP MSG(TASM2MSG)
/z /i /oc+ /ol+ /ow- /od+ /l $NOSWAP $EDNAME,F:\$NAME($EDNAME) $CAP MSG(TASM2MSG)
$SAVE ALL $NOSWAP
$SAVE ALL
/oan+ /z /i /oc+ /ol+ /ow- /od+ /l $NOSWAP $EDNAME,D:\$NAME($EDNAME) $CAP MSG(TASM2MSG)
/oan- /z /i /oc+ /ol+ /ow- /od+ /l $NOSWAP $EDNAME,D:\$NAME($EDNAME) $CAP MSG(TASM2MSG)
/MX /ZI /O $TASM
/c /b /m /i /p @d:\LINK
LNK,d:\game,,D:\game $NOSWAP $CAP MSG(TASM2MSG)
/b /m /i /p @d:\LINK
LNK,d:\game,,D:\game $NOSWAP $CAP MSG(TASM2MSG)

/z /i /oc+ /ol+ /ow- /od+ /l $NOSWAP $EDNAME,D:\$NAME($EDNAME) $CAP MSG(TASM2MSG)

0x3A388

E~xpression                         
~Result                             
~New Value                          
 ~Evaluate 
 ~Modify   
 Cancel   
 Help     

0x03A543

 Evaluate and Modify 

0x03A59A

~Inspect

0x03A648

 Data Inspect 

0x03A698

~New Value

0x03A71A

 Modify Data 

0x03A769

~Starting Index.~Count

0x03A851

 Range Inspect 

0x03A8A2

~Watch Expression

0x03A9A2

~Call Stack

0x03AA6C

 Call Stack 

0x03AABC

DIRENEP
DEFG

144
$checknum
checknum

~Breakpoint List
Line#  
Condition
Pass

0x03AB81

O~K
~Edit
~Delete
~View
~At  

0x03AC73

 Breakpoints 

0x03AC73

 Breakpoints 

0x03ACC2

~Condition
~Pass Count
~File Name
~Line 
Number
~Modify
~New
Cancel
Help

0x03AEC0

~ Breakpoint Modify/New 

0x03AF19

~Symbol Name

0x03AFD3

 Breakpoint At Function 

0x03B077

$NOHUNT
call CheckLimitsY

$okeyy
ENDM

0x03B09B

Persigue al héroe en X o en Y
; \1=Máscara frecuencia de persecución
; \2=Velocidad persecución
; \3=Distancia de desconexión con respecto coordenada de origen
; Devuelve Carry=0 en la desconexión

HUNT_HEROX MACRO
LD C, 2
LD DE, 3

WAITB 1,$NOHUNT
CALL HUNT_X
jr $okeyx

$NOHUNT
call CHECKLIM_HUNTX

$okeyx
ENDM

HUNT_HEROY
MACRO
LD C, 2
LD DE, 3

WAITB 1,$NOHUNT
CALL HUNT_Y
jr $okeyy

$NOHUNT
call CHECKLIM_HUNTY

$okeyy
ENDM

; Persigue al héroe en X o en Y
; \1=Máscara frecuencia de persecución
; \2=Velocidad persecución
; \3=Distancia de desconexión con respecto coordenada de origen
; Devuelve Carry=0 en la desconexión

HUNT_HEROX MACRO
LD C,\2
LD DE,\3
WAITB 1,$NOHUNT
CALL HUNT_X
jr $okeyx

$NOHUNT
call CHECKLIM_HUNTX

$okeyx
ENDM

HUNT_HEROY MACRO
LD C, 2
LD DE, 3
WAITB 1,$NOHUNT

CALL.HUNT_Y
jr $okeyy

$NOHUNT
call CHECKLIM_HUNTY
$okeyy\
ENDM

; Guarda coordenadas
CheckLimitsX
LDAL HeroX
STAL Hero
LDAL HeroX+1
STAL Hero+1
LDA PersoX
STAL Perso
LDA PersoX+1
STAL Perso+1

call CHECKLIM_HUNTX
LDAL Perso
STA PersoX
LDAL Perso+1
STA PersoX+1
ret

; Guarda coordenadas
CheckLimitsY
LDAL HeroY
STAL Hero
LDAL HeroY+1
STAL Hero+1

LDA PersoY
STAL Perso
LDA PersoY+1
STAL Perso+1
call CHECKLIM_HUNTY
LDAL Perso
STA PersoY
LDAL Perso+1
STA PersoY+1
ret

; Enemigo persigue al héroe sólo en X o Y$
; Entradas: C=Velocidad persecución
;           DE=Distancia de desconexión con respecto coordenada de origen

;Carry=0 fuera rango / Carry=1 dentro rango

HUNT_
MACRO
$SEP = 4 

;Separación pixels entre dos mites
LDHLL Hero
PUSH HL
LD A,L
SUB $SEP
LD L,A
LD A,H
SBC 0
LD H,A
; HL=L mite derecho
LDAL Perso
SUB L
LDAL Perso+1
SBC H
JNC $LIM2
ADDWL Perso,C
POP HL
JR $LIMITS

$LIM2

POP HL
LDAL Perso
SUB L
LDAL Perso+1
SBC H
JC $LIMITS

SUBWL Perso,C

$LIMITS

IF strcmp('\1','X')
CHECKLIM_HUNTX
ENDIF

IF strcmp('\1','Y')
CHECKLIM_HUNTY
ENDIF

;MORDENx7
call MORDENx7
LDBCL SPR_SAL
INC BC
INC BC
IF strcmp('\1','Y')
INC BC
INC BC
ENDIF

ADD.HL,BC
xref BNK_ENETAB
GETHLHL

BNK_ENETAB
PUSH HL
ADD HL,DE
LDAL Perso
SUB L
LDAL Perso+1
SBC H
JC $CHECKMIN
LD A,L
STAL Perso
LD A,H
STAL Perso+1
POP HL
XOR A
ret

$CHECKMIN   
POP HL
SUBHLDE
BIT 7,H
JZ $COMP
LD HL,0

$COMP
LDAL Perso
SUB L
LDAL Perso+1
SBC H
JNC $IN
LD A,L
STAL Perso
LD A,H
STAL Perso+1
XOR A
ret

$IN
SCF

$EXIT
RET
ENDM

$CHECKMIN
RIO

D_Pos
callx Creditos
ld a,1
CALL InitializeOnce
stal OkPassword
stal OptFX
stal OptMusic
stal FlgPresent
stal CaraPos0
stal CaraPos1
stal CaraPos2
stal PrtFaces
stal PrtOptions
stal FlgActEnd
xref SELWORLD
LD.A,SELWORLD

STAL WORLD
dec a
stal LastWorld

ENDIF
sta l,ScoreD0
ld a,1

Hard_LCDC_OFF
callx Hard_LCDC_OFF
stal FlgPr

This item and the next one include substantial text in Spanish. It seems to describe the enemy logic and the player logic. For example, "Enemy follows the hero only in X or Y".

0x03FEE1

Final de la rutina de musica

"End of the music routine".


(Source: nensondubois)