Speedy Blupi 2/RAM map

From Data Crystal
Jump to navigation Jump to search

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.