// HEL Library \\ |
Q: My project needs so long to compile, what can I do?
A: See Improving compile time
Q: How can I make my own assertions?
A: See Assertion Checking
Q: What is new in this version?
A: See Version History
Q: So I can use HEL Library for freeware/commercial/shareware projects?
A: Yes, you are free to use HEL Library as part of your program for any purpose including freeware, commercial and shareware programs, provided some credit is given to me. This can be in the credits-screen for example. Something like "HEL Library by Peter Schraut" is fine!
Q: Why do you have most of the Object functions implemented which are also available in HAM?
A: That's rather easy to explain. All object functions in HAM are 'real functions'. In HEL most of the functions get replaced with macros when you switch to releasemode. This is much much MUCH faster then! Make sure to take a look at the other FAQ entries related to debug/release things too.
Q: When I use the release library, the compiler complains it cannot find the neccessary functions from the Object Module (hel_Obj*).
A: This is because I made a compiler directive switch to use macros instead of functions in releasemode. This is quite less overhead and has a huge performance improvement. So when you use the release library of HEL, you must open the file ham/include/mygba.h and comment out the line: #define HAM_DEBUGGER.
Q: How can i speed-up my game?
A: In the debug library, HEL makes pretty much use ASSERT
checking. This takes performance and space, -BUT- for the development process I do recommend to use it, because it helps a lot there, since it displays an errorscreen whenever you pass an invalid parameter to one of HEL's functions.
However, if you want to have full speed, use HEL's release library and go into ham/include, open mygba.h and comment out the HAM_DEBUGGER define. Then HEL uses for a lot of functions macros instead and that's really a speed boost ;) The registered HAM library if faster than the freeware version too, just as a side info.
Q: Debug and Release Library?
A: The Debug-Library uses assertion-checking. So when you pass an invalid parameter to one of HEL's functions, it will display an errorscreen. This makes it alot easier in the development and debugging process. I heavily recommend to use the Debug-Library while making a demo or game. When everything works fine and you plan to make the final ROM or just want to check how it runs on realhardware with full speed, then replace the Debug-Library with the Release-Library and recompile your project. The Release-Library is smaller and faster(!), because it does not have any ASSERT
implemented.
Q: When I disable boundschecking using the hel_MapSetBoundsCheck function and scroll outside the map, screencorruption appears.
A: Well, that is why HEL has an option for it. When you disable BoundChecking, HEL does not check anymore if the current position of the map is still inside the (valid) mapdata. When it is not, then appears corruption on the screen. I recommend to leave it turned on.
Q: I want to use background-wrapping with my map, but it seems there is a bug.
A: This does not fit into HEL's concept and so it is not supported. For detailed information please follow this link and read my answer in the forum.
Q: NEW and FREE (malloc / free) are quite slow?
A: Oh well, dynamic memory allocation is slow. Try to avoid it! Use it only for initialization purposes, don't use it in your gameloop or similar things!