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.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Speedy Blupi 2/RAM map: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{rammap|game=Speedy Blupi 2}} | {{rammap|game=Speedy Blupi 2}} | ||
This | This page 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. | | 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. '''(leftover)''' | |||
|- | |||
| 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. | |||
|} | |||
==CDecor class== | |||
==CPixmap class== | |||
==CSound class== | |||
==CNetwork class== | |||
==CMovie class== | |||
==CJauge class== | |||
==CMenu class== | |||
==Structs== |
Revision as of 22:49, 25 May 2024
The following article is a RAM map for Speedy Blupi 2.
This page 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. (leftover) | |
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. |