Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Speedy Blupi 2/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{rammap|game=Speedy Blupi 2}}
{{rammap|game=Speedy Blupi 2}}
This table compares addresses for two versions of the game: ''Speedy Blupi 2'' version 2.2 English (as available on blupi.org), and ''Speedy Eggbert 2'' version 1.0 English.  Italicized names are speculative; non-italicized names directly match the Planet Blupi source code.
This table compares addresses for two versions of the game: ''Speedy Blupi 2'' version 2.2 English (as available on blupi.org), and ''Speedy Eggbert 2'' version 1.x English.  Italicized names are speculative; non-italicized names directly match the Planet Blupi source code.
==Globals==
==Globals==
{| border="1" align="center" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f7f8ff; border: 1px #8888cc solid; border-collapse: collapse; font-size: 95%"
{| border="1" align="center" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f7f8ff; border: 1px #8888cc solid; border-collapse: collapse; font-size: 95%"
Line 16: Line 16:
| int
| int
| g_speedRate
| g_speedRate
| How many iterations of events are processed in one frame. Default is 1. F5/F6 keys toggle between 1x and 2x.
| How many iterations of events are processed in one frame. Default is 1. Multiplicative with CEvent.m_speed
|-
|-
| 435034
| 435034
Line 63: Line 63:
| 48a4d8
| 48a4d8
| 48ebf8
| 48ebf8
| CEvent*
| CEvent *
| g_pEvent
| g_pEvent
| Event handler
| Event handler
Line 69: Line 69:
| 48a4dc
| 48a4dc
| 48ebfc
| 48ebfc
| CPixmap*
| CPixmap *
| g_pPixmap
| g_pPixmap
| Graphics handler
| Graphics handler
Line 75: Line 75:
| 48a4e0
| 48a4e0
| 48ec00
| 48ec00
| CSound*
| CSound *
| g_pSound
| g_pSound
| Sound handler
| Sound handler
Line 81: Line 81:
| 48a4e4
| 48a4e4
| 48ec04
| 48ec04
| CNetwork*
| CNetwork *
| g_pNetwork
| g_pNetwork
| Netplay handler
| Netplay handler
Line 87: Line 87:
| 48a4e8
| 48a4e8
| 48ec08
| 48ec08
| CMovie*
| CMovie *
| g_pMovie
| g_pMovie
| Video playback handler '''(leftover)'''
| Video playback handler '''(leftover)'''
Line 93: Line 93:
| 48a4ec
| 48a4ec
| 48ec0c
| 48ec0c
| CDecor*
| CDecor *
| g_pDecor
| g_pDecor
| Gameplay handler
| Gameplay handler
Line 147: Line 147:
| TRUE when the application is done initializing.
| TRUE when the application is done initializing.
FALSE when starting up (loading graphics, doing benchmark, etc).
FALSE when starting up (loading graphics, doing benchmark, etc).
|}
==CEvent class==
{| border="1" align="center" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f7f8ff; border: 1px #8888cc solid; border-collapse: collapse; font-size: 95%"
|- style=background:#ccccff
! colspan="2" | Address
! rowspan="2" | Datatype
! rowspan="2" | Symbol
! rowspan="2" | Info
|-
! ''Blupi''
! ''Eggbert''
|-
| 0004
|
| int
| ''m_joyID''
| DInput device ID for joystick
|-
|
|-
| 041C
|
| int
| ''m_gamer''
| Currently selected player file index; [1..8]
|-
| 0420
|
| int
| ''m_textHiliStart''
| Index of first highlighted character in text input box
|-
| 0424
|
| int
| ''m_textHiliEnd''
| Index of last highlighted character in text input box
|-
| 0428
|
| int
| ''m_textCursorIndex''
| Position of text cursor in text box
|-
| 042c
|
| char[100]
| ''m_textInput''
| Text input box contents
|-
| 0490
|
| char[100]
| ''m_playerName''
| Current player file name
|-
|
|-
| 0904
|
| char[100][256]
| ''m_filenameBuffer''
| Buffer for custom level filenames in C:\User. Only the first 100 files are shown.
|-
| 6d04
|-
| 6d08
|-
| 6d0c
|
| int
| ''m_userDirectoryIndex''
|
|-
| 6d10
|-
| 6d14
|
| int
| ''m_lives''
| Number of extra lives
|-
| 6d18
|
| int
| m_speed
| How many iterations of events are processed in one frame. Default is 1. F5/F6 keys toggle between 1x and 2x. Multiplicative with g_speedRate
|-
| 6d1c
|
| int
| m_mission
|
|-
| 6d20
|
| int
| m_private
|
|-
| 6d24
|
| int
| ''m_multi''
|
|-
| 6d28
|
| int
| m_phase
|
|-
| 6d2c
|
| int
| m_index
|
|-
|-
| 6d30
|
|
|
|
|-
| 6d34
|
|
|
|
|-
| 6d38
|
| BOOL
| m_bPrivate
|
|-
| 6d3c
|
| BOOL
| ''m_bMulti''
|
|-
| 6d40
|
| BOOL
| m_bAccessBuild
| Whether the XMISSION (xnjttjpo) cheat is enabled, allowing the player to edit the singleplayer campaign.
|-
| 6d44
|
|
|
|
|-
| 6d48
|
|
| m_mouseType
|
|-
| 6d4c
|
| HINSTANCE
| m_hInstance
|
|-
| 6d50
|
| HWND
| m_hWnd
|
|-
| 6d54
|
| CPixmap *
| m_pPixmap
|
|-
| 6d58
|
| CDecor *
| m_pDecor
|
|-
| 6d5c
|
| CSound *
| m_pSound
|
|-
| 6d60
|
| CNetwork *
| m_pNetwork
|
|-
| 6d64
|
| CMovie *
| m_pMovie
|
|-
| 6d68
|
| char[260]
| m_movieToStart
| Filename of the currently loaded AVI file. MAX_PATH is 260. '''(unused)'''
|-
| 6d6c
|
| int
| m_phaseAfterMovie
| Which Phase to switch to after AVI playback is done.
|-
| 6d70
|
| Button[40]
| m_buttons
| Menu buttons on the current screen.
|-
|
|-
| 9494
|
| int
| ''m_input''
| Bitmap of current player input. If a demo is running, this represents the input of the demo.
|-
|
|-
| 9860
|
| POINT
| m_oldMousePos
|
|-
|
|-
| 98c0
|
| POINT
| m_posToolTips
| Screen coordinates of the currently visible UI tooltip.
|-
| 98c4
|
| char[50]
| m_textToolTips
| Current UI tooltip text.
|-
|
|-
| 992c
|
| int
| m_mouseSprite
|
|-
| 9930
|
| BOOL
| m_bWaitMouse
|
|-
| 9934
|
| BOOL
| m_bHideMouse
|
|-
| 9938
|
| BOOL
| m_bFillMouse
|
|-
| 993c
|
| BOOL
| m_bShowMouse
|
|-
| 9940
|
| int
| m_tryPhase
|
|-
| 9944
|
| int
| m_rankCheat
| Which cheat the player is currently typing. Since every cheat begins with a unique letter, any given input can only correspond to one cheat.
|-
| 9948
|
| int
| m_posCheat
|
|-
|
|-
| 9964
|
| BOOL
| m_bDemoRec
| TRUE if a demo is being recorded.
|-
| 9968
|
| BOOL
| m_bDemoPlay
| TRUE if a demo is being played back.
|-
| 996c
|
| DemoEvent *
| m_pDemoBuffer
| Pointer to the currently processing demo event
|-
| 9970
|
| int
| m_demoTime
| Demo playback frame counter
|-
| 9974
|
| int
| m_demoIndex
| The index of the current input event in the demo
|-
| 9978
|
| int
| m_demoEnd
|
|-
| 997c
|
| int
| m_demoNumber
| The index of the currently playing demo in the queue.
|-
| 9980
|-
| 9984
|-
| 9988
|
| char[100][5]
| ''m_chatZone''
| Netplay chat log buffer.
|-
| 9b7c
|
| char[100]
| ''m_text''
| Currently active tutorial text.
|}

Revision as of 22:40, 25 May 2024

Chip tiny.png The following article is a RAM map for Speedy Blupi 2.

This table compares addresses for two versions of the game: Speedy Blupi 2 version 2.2 English (as available on blupi.org), and Speedy Eggbert 2 version 1.x English. Italicized names are speculative; non-italicized names directly match the Planet Blupi source code.

Globals

Address Datatype Symbol Info
Blupi Eggbert
435030 int g_speedRate How many iterations of events are processed in one frame. Default is 1. Multiplicative with CEvent.m_speed
435034 int g_timerInterval Target frame time in milliseconds. Default is 50 ms (20 fps)
435038 int g_mouseType
43503c UINT g_lastPhase
48a3c8 char[260] g_CDPath MAX_PATH is 260
48a4cc
48a4d0
48a4d4
48a4d8 48ebf8 CEvent * g_pEvent Event handler
48a4dc 48ebfc CPixmap * g_pPixmap Graphics handler
48a4e0 48ec00 CSound * g_pSound Sound handler
48a4e4 48ec04 CNetwork * g_pNetwork Netplay handler
48a4e8 48ec08 CMovie * g_pMovie Video playback handler (leftover)
48a4ec 48ec0c CDecor * g_pDecor Gameplay handler
48a4f0 BOOL g_bFullScreen
48a4f4 BOOL g_bBenchmarkSuccess Whether the PC is deemed strong enough for 16-bit graphics.
48a4f8 BOOL g_bTrueColor
48a4fc BOOL g_bTrueColorDecor
48a500 BOOL g_bCDAudio If TRUE, forego all MIDI playback and instead play the corresponding track on an audio CD. (unused)
48a504 int g_benchmark The numeric result of the performance benchmark (seemingly measured by the number of images drawn within a time interval?)
48a508
48a50c BOOL g_bActive Whether the application window is focused.
48a510 BOOL g_bTermInit TRUE when the application is done initializing.

FALSE when starting up (loading graphics, doing benchmark, etc).

CEvent class

Address Datatype Symbol Info
Blupi Eggbert
0004 int m_joyID DInput device ID for joystick
041C int m_gamer Currently selected player file index; [1..8]
0420 int m_textHiliStart Index of first highlighted character in text input box
0424 int m_textHiliEnd Index of last highlighted character in text input box
0428 int m_textCursorIndex Position of text cursor in text box
042c char[100] m_textInput Text input box contents
0490 char[100] m_playerName Current player file name
0904 char[100][256] m_filenameBuffer Buffer for custom level filenames in C:\User. Only the first 100 files are shown.
6d04
6d08
6d0c int m_userDirectoryIndex
6d10
6d14 int m_lives Number of extra lives
6d18 int m_speed How many iterations of events are processed in one frame. Default is 1. F5/F6 keys toggle between 1x and 2x. Multiplicative with g_speedRate
6d1c int m_mission
6d20 int m_private
6d24 int m_multi
6d28 int m_phase
6d2c int m_index
6d30
6d34
6d38 BOOL m_bPrivate
6d3c BOOL m_bMulti
6d40 BOOL m_bAccessBuild Whether the XMISSION (xnjttjpo) cheat is enabled, allowing the player to edit the singleplayer campaign.
6d44
6d48 m_mouseType
6d4c HINSTANCE m_hInstance
6d50 HWND m_hWnd
6d54 CPixmap * m_pPixmap
6d58 CDecor * m_pDecor
6d5c CSound * m_pSound
6d60 CNetwork * m_pNetwork
6d64 CMovie * m_pMovie
6d68 char[260] m_movieToStart Filename of the currently loaded AVI file. MAX_PATH is 260. (unused)
6d6c int m_phaseAfterMovie Which Phase to switch to after AVI playback is done.
6d70 Button[40] m_buttons Menu buttons on the current screen.
9494 int m_input Bitmap of current player input. If a demo is running, this represents the input of the demo.
9860 POINT m_oldMousePos
98c0 POINT m_posToolTips Screen coordinates of the currently visible UI tooltip.
98c4 char[50] m_textToolTips Current UI tooltip text.
992c int m_mouseSprite
9930 BOOL m_bWaitMouse
9934 BOOL m_bHideMouse
9938 BOOL m_bFillMouse
993c BOOL m_bShowMouse
9940 int m_tryPhase
9944 int m_rankCheat Which cheat the player is currently typing. Since every cheat begins with a unique letter, any given input can only correspond to one cheat.
9948 int m_posCheat
9964 BOOL m_bDemoRec TRUE if a demo is being recorded.
9968 BOOL m_bDemoPlay TRUE if a demo is being played back.
996c DemoEvent * m_pDemoBuffer Pointer to the currently processing demo event
9970 int m_demoTime Demo playback frame counter
9974 int m_demoIndex The index of the current input event in the demo
9978 int m_demoEnd
997c int m_demoNumber The index of the currently playing demo in the queue.
9980
9984
9988 char[100][5] m_chatZone Netplay chat log buffer.
9b7c char[100] m_text Currently active tutorial text.