r5
Date: Mar 29, 2010
wololo
- (temporarily) remove syscall.c from the dependencies in the Makefile
r8*
r6 updates:
Date: Mar 30, 2010
- Added syscall estimation code
r7 fix:
- Removing syscall.o (forgot to to so before update, sorry)
r8 fix:
- Added Makefile back to usual (next time please comment the stuff, do not erase

)
r9
Date: Mar 31, 2010
- Added sceKernelReferEventFlagStatus
- Added sceKernelDeleteEventFlag
--> imports.config and loader are changed, so remember to use the new ones when
testing!
- Added find_evflag (thread.c)
- Added event flags, remaining semaphores and UserSbrk address to memory.c
--> Now we have 0x1410400 free bytes (20 Megabytes)

r10
Date: Apr 03, 2010
- This revision doesn't work!!!
--> Crash in sceSystemMemoryManager (???) when resolving homebrew imports
- Added sceKernelAllocPartitionMemory
- Now the loader allocates memory for HBL
- Now HBL allocates memory for the homebrew
- Removed hooks from sceKernelAllocPartitionMemory, sceKernelGetBlockHeadAddr
and sceKernelGetMaxFreeMemSize
--> Now the homebrew can use the whole free memory

- Fixed a bug in loader.c that was causing crashes
--> In search_game_stubs, stub_list wasn't completely zeroed
- Fixed "CANNOT FIND THREAD TO DELETE" bug (HBL now doesn't exit)
--> We still need a proper fix!
r12
Date: Apr 03, 2010
- Still doesn't work!!!
--> It crashes in sgx-psp-freq-thr thread when freeing memory
--> Threads aren't found (why???) and aren't terminated
--> So when HBL frees semaphores/event flags the thread crashes
- Removed useless arguments in loader _start
- Now AddNID in sdk_hbl.S use $v0 instead of $fp
--> This fixes sceSystemMemoryManager crash in revision 10

r13
Date: Apr 04, 2010
- Still very unstable (Wagic crashes and T.O.M.E. gives "core() error")
- Added malloc.c and malloc.h
- Now relocate_sections reads the whole section in a dinamically allocated
buffer
--> Now relocation is A LOT faster!

--> T.O.M.E. takes about 15 seconds to start (debug enabled)
--> Wagic takes about 1 minute to start (debug enabled)
- Now loader allocates HBL stubs using PSP_SMEM_High because homebrew was
overwriting them
--> We need to unload Labo and use PSP_SMEM_Low so they'll be BEFORE the
homebrew!
--> We also need to make HBL relocatable!
- Added a bit of debug to find_thread
- Added a bit of debug to relocate_sections
- Moved hardcoded scratchpad addresses to scratchpad.h
--> They are still hardcoded in sdk_hbl.S, someone knows how to use a C defines
in ASM?
r14
Date: Apr 04, 2010
- NOT TESTED ON 6.XX
- Added .nids files for 6.XX firmware
- HBL works as before, thus relevant directory should be renamed to "libs"
- More information on differences on comments
r17*
r15 updates:
Date: Apr 05, 2010
wololo
- Adding a basic menu (think of copying the new imports.config AND menu.bin to
your MS). Thanks to N00b81 for the graphics lib.
r16 fix:
wololo - fix a typo
r17 fix:
- Just license update
r18
Date: Apr 06, 2010
wololo
- adding output to the screen while HBL loads
- putting back my fakemem mechanism so that T.O.M.E runs (this basically hacks
malloc badly). To deactivate it, comment out the "define FAKEMEM"
-- that fakemem system is of course temporary until we can actually free the ram
r19
Date: Apr 06, 2010
- STDIOFORUSER.NIDS was in big-endian format (thanks to arisma)
r20
Date: Apr 07, 2010
Erwan
- small menu improvements
- shortened the delay for free mem ("free memory" step goes faster)
- dblog is deleted every time the HBL is started
r21
Date: Apr 08, 2010
- Changed imports.config structure (check config.h for new structure)
- Changed config.c library to suit new file structure (also fixed some old bugs)
- Some code cleaning (i.e. moved reestimate_syscall() to syscall.c)
r22
Date: Apr 08, 2010
wololo
- adapt the generation script to the new imports.config structure
r24
Date: Apr 09, 2010
wololo:
- All files except h.bin now NEED TO BE PUT in a "hbl" folder at the root of the
memstick
-- this fixes issue 4
-- this can be changed in the code by modifying HBL_ROOT
- simplified the "menu/no menu" choice from a user's perspective (since the menu
seems to be not working for lots of people):
-- if a "ms0:/hbl/game/EBOOT.PBP" file exists, it will be launched, otherwise
the menu is launched
r25
Date: Apr 12, 2010
- Added more .lib.stubs sections to imports.config
- Added code to HBL process any number of .lib.stubs defined in imports.config
--> eLoaderconf.rb broken, wololo please fix it
- Added more functions and a lot of order to sdk_loader.S
- Moved get_library_entry() from syscall.c to eloader.c
- Added a new directory with tools for HBL development
- Added NIDSPRX tool by arisma
- Added whole GPLv3 to LICENSE
- This changes should improve syscall estimation

--> Need more .nids files for the new libraries
r26
Date: Apr 13, 2010
- Fixed buffer overflow in estimate_syscall() ( issue 14 )
- Fixed ELF path ( issue 13 )
r27
Date: Apr 13, 2010
wololo
- fix eLoaderConf.rb (don't really understand what was "broken" in the first
place...
r28
Date: Apr 13, 2010
- Separate imports.config for 5XX and 6XX. Rename to imports.config
- Added 2 more tools: a processor to make NID table dumps more readable and a
user memory dumper (useful for 6.20)
r29
Date: Apr 14, 2010
- Fixed nidtohuman tool Makefile
- Added a very very very simple syscall reestimation function
r31*
Date: Apr 16, 2010
r30 updates:
- Added new imports.config files for 5.0x, 5.5x, 5.70 and 6.20 (PSP Go) versions
(courtesy from ultimakillz)
r31 fix:
- Deleted imports.config_620_go. Use imports.config_6xx.
r32
Date: Apr 16, 2010
wololo
- - Experimental!!! firmware detection mechanism. No need to rename libs_5xx and
libs_6xx, as well as imports.config_* : the HBL automatically loads the
"correct" ones
r34
Date: Apr 17, 2010
wololo
- THIS CHANGE REQUIRES A NEW PATAPON SAVEGAME!!!
--> you can generate it by yourself with the date in SDK/binLoader, or you can
get a pre-made one at
http://wololo.net/wagic- Added code to unload the module "Labo". To activate it, please uncomment
"UNLOAD_MODULE" in eLoader.h. This is commented out because I4ve had terrible
results with homebrews after unloading the module
r35
Date: Apr 17, 2010
wololo
- Fix issue 21 , thanks to arisma for finding my stupid mistake
r36
Date: Apr 18, 2010
wololo
- firmware detection for 5.55
- basic sprintf functions for improved log/print to screen
-- dbglog is now more or less readable in a text editor. Output to psplink
should be more useful too
r37
Date: Apr 18, 2010
- Added imports.config for 5.50 and 5.55 differences (thanks to ultimakillz)
r38
Date: Apr 19, 2010
wololo
-adding sceHprm for 5.xx. I don't have it for 6.xx
r39
Date: Apr 22, 2010
- NOT WORKING REVISION!!
- Splitted several stuff from eloader.c to tables.c and hook.c (can be splitted
more)
- Added several functions to HBL imports
- Updated eLoaderconf.rb tool too
- Added Davee's free memory function to HBL (you can choose between ab5000's and
Davee's method in eloader.h)
- Fixed a bug where HBL would not check if own imports already exist in NID
table
--> All seems to work fine, but HB doesn't execute
r40
Date: Apr 22, 2010
- Added up-to-date imports.config_550 and _555
- Added support for FW 5.50 and 5.55 to eLoaderconf.rb
r41
Date: Apr 22, 2010
- STILL DOESN'T WORK
- Fixed a few bugs, mostly concerning syscall estimations being wrongly
calculated. Now they seem fine, but still no go

r42
Date: Apr 23, 2010
- Adjusted code as discussed on r39 comments
- Put back a loop at the end of loader (do not exit user_main)
- Davee's free_game_memory adjusted to free user_main
- I was able to finally run a homebrew since good ol' times

- Added Davee as developer on the LICENSE (thanks for the help!)
r49
Date: Apr 23, 2010
- Added sceHprm.nids from 6.20 FW (libs_6xx)
- Deleted NID table processor tool (not needed anymore)
r50
Date: Apr 24, 2010
wololo
Fixed issue 42 , issue 41 , issue 39 , issue 23 .
Details:
- cleaned up Davee's free memory function (dude you love copy/paste

)
-- This fixes issue 42 : 6.20 hangs on free_game_memory (as usual, syscall
estimation was the culprit, I replaced the "find_thread" call with a direct
address fetch like Davee does)
- Written own sceKernelMaxFreeMemSize() and sceKernelTotalFreeMemSize()
functions to avoid 2 unnecessary syscall estimates (avoids a crash in
free_memory by ab5000)
- Fixed issue 41 (How to distinguish between Go and other PSPs ) : call
getPSPModel() in utils.c (see eLoader.c which does that call). Note: impossible
with this technique to differentiate other psp models though
- Fixed issue 39 ([Rev 49]Still no Free Ram). This was actually an issue with
the game T.O.M.E and I'll post an updated Eboot for this game on my blog
(http://wololo.net/wagic ) ASAP
- Fixed issue 23 (List Only the Homebrew ) with a simple filter in menu.bin.
Hopefully that should clean things a little bit.
- Added some more syscall boundaries, but I'm not super happy with the result
(a.k.a. haven't seen any improvement), so maybe that update can be reverted

- removed the FAKEMEM flag as it is not needed anymore. I kept the hook for
AllocPartitionMemory for debug purposes, but it should probabl be removed in the
future.
r51
Date: Apr 25, 2010
wololo
-added firmware detection for 5.03 (thanks to Flyer for the memdump). Untested
r52
Date: Apr 25, 2010
- Added kernel memory dump for PSPGo at the start of the loader, because
otherwise accessing kmem will fail (i dont know why)
--> This can be improved dumping only necessary offsets and not the whole
partition
- Added finding lowest syscall from kernel memory for some libraries -only for
PSP Go, and using the kmem dump-
- Got rid of intermediate static buffer for loading HBL into memory
- Changed tool "umem dumper" to do a kernel dump as well (only works on PSP Go)
and changed the linker address to the new one on the new savedata (new!)
r53
Date: Apr 26, 2010
- Fixed minor bug on menu (error is < 0, not <= 0)
- More eloader.c house cleaning
r56
Date: Apr 26, 2010
- Added a new member to tNIDResolver struct to relate each NID to a library
--> I think this is better than including a pointer/array for NID in tSceLibrary
- Added more debugging functions to dump ELF structures directly (more need to
be done)
r57
Date: Ap 27, 2010
- Added a new data structure to handle module loading information
- New parsing user modules to free (thanks to Davee)
r59
Date: Apr 28, 2010
- Changed prx_load_program() to accept addresses other than PRX_LOAD_ADDRESS
- Added load_module and start_module functions in modmgr.c
- Moved some generic functions from utils.c to lib.c
- Changed EBOOT offset type to SceOff
- Added relevant data structures and functions for module loading
- To load external modules, hook sceKernelLoadModule and sceKernelStartModule
(not tested), and uncomment LOAD_MODULE
- Big thanks to ab5000 for the memory allocation library!
r60
Date: Apr 29, 2010
- Added hooks for external module loading
- Fixed some bugs on module loading/starting
--> HBL crashes when resolving the imports for loaded module. Seems values have
not been relocated.
r61
Date: Apr 30, 2010
wololo
- Override a bunch of functions to avoid estimating them
-- Most of those can be deactivated with macros in eLoader.h (in the future
we'll want a config for each game)
-- With these overrides, Wagic now loads on the PSPGo as long as you remove the
mp3s from the sound folder. (it crashes when attempting to save options
though...)
- Fixed a bug that prevented big EBOOTS from loading (scummVM) because the path
was overwritten
r63
Date: Apr 30, 2010
- Fixed resolving functions (resolve.c) to accept other loading address than
PRX_LOAD_ADDRESS
--> Now external modules seem to load/relocate/resolve fine, they do not crash
but do not start either. PSPLink reports the external module thread is stopped
- Minor code/style fixing
r64
Date: May 01, 2010
- Changed detection of FW 5.51 as 5.55 (previously set to 5.50) to load correct
configuration
r65
Date: May 01, 2010
wololo
- more Functions overrides. Some of them are direct Aliases so they're 100% good
-- other are more borderline and we need a way to use them or not on a game-per-
game and maybe firmware basis (config file)
- updated Makefile. make or make dev for debug, make distrib for no debug info
- Added sceReg.nids
- uploaded a compiled version at
http://wololo.net/wagic/hbl/ and I hope people
will now stop asking "how to compile" all the time

r66
Date: May 03, 2010
- Fixed a bug in syscall estimation for PSP Go
- Added 2 new methods for syscall estimation (also for reestimation)
- Added new C files for function testing and reestimation
- Now reestimation seems to work sometimes (compared to never working before xD)
--> Needs more heavy testing
- Modified data structure to hold NIDs (added number of nids)
- Now estimated syscalls are saved on nid_table so they don't have to be
estimated again (until table fills)
--> This feature may need a more dynamic nid_table (linked list?)
- Added revision number to print on screen (please take care on updating this!)
r70*
Date: May 07, 2010
r69 updates:
wololo
- More functions overrides
- Automatic SVN version number through makefile (tested on cygwin and dos
command line, hopefully will work on linux too)
- Some cleanup. Removed some dead code related to thread/modules.
- Fixed a nid bug in eLoaderconf.rb
r70 fix:
wololo
- adding missing file
r71@
Date: May 10, 2010
- Fixed 5.03 FW detection (should be detected as 5.50)
- HBL tables are now allocated separately, this fixes a bug where they were
overwritten when another module was loaded
- Changed reestimation method order (I don't see any improvement though)
r73*
r72 updates:
Date: May 10, 2010
- Fixed bug on syscall reestimation
- Added a new reestimation method
- Reverted first estimation method (FROM_LOWEST)
r73 fix:
- Fixed error on "make distrib" (thanks Cathesdus)
r74
Date: May 10, 2010
- Reverted the tables memory allocation, made a lot of things to fail
r76
Date: May 11, 2010
- Deleted all user mode libraries from the tables
--> It's useless to have them there when the user mode modules have been
unloaded
- Fixed REESTIMATE_SYSCALL define to be useful (wasn't used)
- Added a new make target (nonids) to build without NID debug
- Fixed big stupid bug on new syscall estimation method (FROM_CLOSEST)
r78*
r77 updates:
Date: May 11, 2010
- Put back the tables memory allocation (seems to work fine now)
r78 fix:
- Fixed an error on "make distrib" (again, thanks Cathesdus)
r79
Date: May 13, 2010
- added md5 functions (they can be removed and replaced by a
_hook_generic_success if we are short on ram, I only added that for gpsp, but it
works without it)
wololo
- added some more hooks for improved compatibility
- Added configuration file with possibility of local override on a per game
basis
-- the config file allows to choose the folder in which the menu will start
- I'm seeing weird effects from time to time when compiling. I think we have a
huge bug somewhere OR as m0skit0 said we are running out of memory, and the
stack is meeting our data

r80
Date: May 19, 2010
- EXPERIMENTAL RELEASE
- Tested on PSP 2000 5.00 M33 & PSP Go 6.20
- Changed HBL to be loaded on memory partition 5 instead of the usual 2
--> This gives us whole parition 2 memory, and should get rid of stuff being
overwritten
- I got rid of the HBL memory allocation since we actually inject HBL to
partition 5
- HBL stubs are back to scratchpad (since we can't allocate p5 memory from p2)
r83*
Date: May 22, 2010
r81 updates:
Date: May 21, 2010
wololo
- Still considered as EXPERIMENTAL RELEASE
- Made the Makefile more strict
- Fixed a few issues detected by gcc
- Fixed a malloc issue that prevented big homebrews such as Wagic from loading
correctly in rev80
- Fixed issue 129
r82 updates:
- Added scrolling menu for 40 homebrews max (thanks to MrShawman!)
- Separate mallocs for p5 and p2 (r80 and r81 malloc code was wrong)
- Included missing file lib.h
- Included some code for loading utility modules (not operating yet)
--> IMHO HBL needs a serious recoding effort...
r83 fix:
Fixed compilation error about uninitialized variable
r85
Date: May 26, 2010
wololo
- Put HBL back into partition 2. This fixes issue 133 (exit/sleep not working).
Changes into malloc also fix issues with Wagic and some roms not loading in gpsp
since rev 80
- Move all globals into a struct in scratchpad. This fixes issue 128 (HBL too
big since rev 79)
- Fix issue 123 (devkitversion)...again

Which should fix "firmware" errors in
Daedalus
- Added a sanity "test" homebrew. If you code some changes and this homebrew
reports errors : Don't submit your code!
r88*
Date: June 14, 2010
r87 updates:
- Function to find a loaded module by name (modmgr.c)
- PoC code to resolve utility imports (resolve.c, modmgr.c) (INCOMPLETE, STILL
IN PROGRESS)
--> Only works for MP3 library over 5.00, and it sounds absolutely awful with
WTH (lag owns)
- Changed some defines from eloader.h to sdk.h
- Added data stucture to parse exports (elf.h)
- Added function to insert a library into library table (tables.c)
r88 fix:
- Fixed compilation error for non-debug
r89
Date: June 16, 2010
- Function to find the library exports of a loaded module by name (the real deal
this time xD) (modmgr.c)
- Added more utility loading code (EXPERIMENTAL) (resolve.c, modmgr.c)
--> Network still not available

Any further testing/feedback is appreciated
- Added a couple of functions that search for string and 32-bit value on memory
(lib.c)
- Moved hook switches to hook.h
- Added switchable hook for sceUtilityLoadModule (hook.c)
- Added displaying real homebrew name (by MrShawman)
r90
Date: June 17, 2010
Erwan
- Quick fix for 2 bugs introduced in revision 89.
r91
Date: June 25, 2010
wololo
- Moved the menu outside of HBL, it is now a homebrew so that anybody respecting
the API can code their own menu as a "standard" homebrew.
- Added possibility to go back to the menu after playing a homebrew
-- This feature is experimental and there are known bugs about it, please check
the issues list!
r92
Date: June 27, 2010
wololo
- unload utility modules when exiting a homebrew (partially fixes issue 179)
r93
Date: July 05, 2010
wololo
- added JJS's patch for network modules. This partially fixes issue 109. Thanks
a lot man!
-- see the subject at
viewtopic.php?f=37&t=784- removed the code that attempts to delete callbacks. Based on my experiments
with psplink, I'm assuming that unloading the patapon module simply unloads the
callbacks as well. This fixes issue 45
r94
Date: July 13, 2010
wololo
- Added JJS's patch for Static elfs loading. This improves compatibility with
some games
- Fixed issue 269 (Exit from Doom crashes)
- override_sceCtrlPeekBufferPositive is now an option in hbl_config.txt, for
those who want to take the risk and get more speed in emulators
r95
Date: July 18, 2010
wololo
- Fix for issue 270 Sound in picodrive (needs to be 44KHz though, check the
settings in picodrive!)
- Fix a bug introduced in R94 with libraries unloading. This fixes issues 280
and 283 (goEar and pspkvm)
- Fix for issue 284 (can't save in snes9xTYL). Thanks JJS and SeanC994
r96
Date: Aug 01, 2010
wololo
- JJS' patch for syscall estimation. see
viewtopic.php?f=37&t=901r97
Date: Aug 08, 2010
wololo
- fix for issue 296 (off by 1 error). No visible change
- fix for issue 137 (reset graphics). Fixes graphic issues with PSP Rhythm,
Spider solitaire, FCE Ultra,...
- added an option for "force exit". Allows to come back to HBL menu for
homebrews that don't have an exit menu. This is an attempt to mitigate issue 181
(exit button not working anymore)
- syscalls_known can now be overriden in the config file for tests purposes
(untested)
r98
Date: Aug 29, 2010
JJS
- Added Nymphaeas patch that allows to exit HBL to the XMB by using the HOME
exit menu (
viewtopic.php?f=37&t=1046 )
- Added code to get additional syscalls using the stubs of utility dialogs
loaded into p5.
-- This means sceCtrlPeekBufferPositive can now always be used and the option to
override it is now obsolete for all 6.20 users.
-- Also all relevant sceIO* functions should be perfectly estimated now.
- Fix for issue 43 (crash on start from MS on the GO). Kernel dump is now saved
to ef0.
- Fix for issue 306 (control issues). Hopefully fixed by replacing the
sceCtrlReadBufferPositive call with sceCtrlPeekBufferPositive.
- Corrected 5.70 nids files. Thanks n00b81!
- Corrected scesuspendforuser.nids for 5.xx and 6.xx.
r99
Date: Aug 30, 2010
wololo
- fix a bug introduced in r98 that prevents syscalls from being correctly
estimated on pspgo 6.20 (error reading kdump)
Key:
* = Revision(s) before it were "incorrect" due to an error, such as a missing file, a typo or a compilation error.
@ = Distrib version is missing due to makefile errors.