New pages

New pages
Hide registered users | Show bots | Hide redirects
  • 17:10, 24 September 2024Tile map file (hist | edit) ‎[4,453 bytes]Raphi (talk | contribs) (Created page with "Tile maps store visual data for the [https://problemkaputt.de/gbatek-lcd-vram-bg-screen-data-format-bg-map.htm GBA's background layers]. Each tile map file contains: * The tile set used by this tile map file, as an array of standard 8x8 px 4 bpp tiles. '''Optional''', if the tile map file does not contain tile set data, then they must be loaded by an external mechanism (generally a script). Tile maps for menus are usually storing the tile sets themselves, while normal o...") originally created as "Tile maps"
  • 13:05, 22 September 2024Font (hist | edit) ‎[3,169 bytes]Raphi (talk | contribs) (Created page with "The font stores all characters the game uses for drawing text. There are two types of characters: Narrow characters are 8x16 px in size (two tiles), and wide characters are 16x16 px in size (four tiles). '''Warning:''' In Boktai 1, wide characters are structured differently than described here. In Boktai 1, each wide character is 0x48 bytes in size, whereas in Boktai 2 and 3 each wide character is 0x80 bytes in size. The format of Boktai 1 wide characters still needs to...")
  • 16:14, 19 September 2024Actor (hist | edit) ‎[3,992 bytes]Raphi (talk | contribs) (Created page with "The Boktai games use an actor system to keep track of all "objects" currently existing in the game. Every actor has a callback that will be called every frame. Examples of actors are: Django, the camera, enemies... = Structure = Actors are defined using a pattern similar to object-oriented programming. There is a "base class", <code>Actor</code>, and "subclasses", like <code>DjangoActor</code> for example. Each subclass contains data specific to that actor type (for ex...") originally created as "Actors"
  • 16:08, 16 September 2024Sprite set file (hist | edit) ‎[8,554 bytes]Raphi (talk | contribs) (Created page with "Sprite sets are stored in directory id_low = 0x5f29, id_high = 0xc8e5 in the master file table. Each sprite set contains multiple distinct sprites, and each sprite may be made of multiple [https://problemkaputt.de/gbatek-lcd-obj-overview.htm GBA OBJs]. = File format = '''TODO:''' very incomplete <syntaxhighlight lang="c"> struct spriteset_header { u16 unknown_0x00; u16 spriteCount; // number of sprites in this sprite set u16 unknown_0x04; u16 unknown_0x06;...")
  • 09:12, 31 August 2024Time (hist | edit) ‎[2,367 bytes]Raphi (talk | contribs) (Created page with "The Boktai games have many game mechanics that depend on the current date and time. The cartridges contain an RTC chip and a battery, which will keep track of the time even when the system is powered off. The games use the following values: * Date * Time * Sunrise/Sunset times in the player's selected region * Moon phase (based on current knowledge, only full moons are used currently. But the games track ''every'' moon phase, not just full moons) * Seasons = Region sel...")
  • 16:11, 13 August 2024Bokasm (hist | edit) ‎[1,464 bytes]Raphi (talk | contribs) (Created page with "{{Project | Type=Tool | ShortDescription=Tools for extracting MFT files and (de)compiling bytecode of Boktai ROMs. | TargetROM=Boktai 1/2/3 (U and J) | Author=User:Raphi | License=[https://spdx.org/licenses/MIT.html MIT] | ReleasedAt=2024-01-02 | Dependencies=Python 3 | Homepage=https://git.sr.ht/~raphi/bokasm | Download=https://git.sr.ht/~raphi/bokasm/archive/master.tar.gz }} = Usage = Extract all MFT files from a ROM: # This will extract everything int...")
  • 15:41, 13 August 2024Solar Sensor patches (hist | edit) ‎[1,127 bytes]Raphi (talk | contribs) (Created page with "{{Project | Type=Romhack | ShortDescription=Solar sensor patches for the Boktai / Bokura no Taiyou games. | TargetROM=Any GBA Boktai game | Author=Prof9 | License=[https://github.com/Prof9/Boktai-Solar-Sensor-Patches/blob/master/license.txt MIT] | ReleasedAt=2010-08-11 | UpdatedAt=2015-03-21 | Homepage=https://github.com/Prof9/Boktai-Solar-Sensor-Patches | Download=[https://github.com/Prof9/Boktai-Solar-Sensor-Patches/releases/download/v2.2.0/BoktaiSolarSensorPatchKit220...")
  • 06:56, 13 August 2024Randomizer (hist | edit) ‎[619 bytes]Raphi (talk | contribs) (Created page with "{{Project | Type=Romhack | Title=Boktai 1 randomizer | ShortDescription=Item and world map randomizer for Boktai 1. | TargetROM=Boktai 1 (U) | Author=Raphi | License=[https://spdx.org/licenses/AGPL-3.0-only.html AGPL 3.0] | ReleasedAt=2024-03-01 | UpdatedAt=2024-08-07 | Homepage=https://raphi.xyz/boktai-randomizer/ }} This tool allows you to randomize various aspects of the game such as chest contents and dungeon locations. It can also add faster text, adjust the lens e...")
  • 15:15, 12 August 2024SolDec (hist | edit) ‎[950 bytes]Raphi (talk | contribs) (Created page with "{{Project | Type=Tool | Image=SolDec.png | ShortDescription=Bytecode decompiler for Boktai games. | Author=Prof9 | License=[https://github.com/Prof9/SolDec/blob/master/LICENSE.txt MIT] | Dependencies=.NET Framework | ReleasedAt=2019-07-26 | Homepage=https://github.com/Prof9/SolDec }} SolDec is a decompiler for bytecode functions and scripts used in the Boktai (Bokura no Taiyou) series of games. The decompiled functions are output as (close to) C code. Currently it has o...")
  • 20:25, 11 August 2024Translation patch (hist | edit) ‎[803 bytes]Raphi (talk | contribs) (Created page with "{{Project | Type=Romhack | ShortDescription=English translation of Shin Bokura no Taiyou: Gyakushuu no Sabata. | TargetROM=Boktai 3 (J) | Author=Spikeman | CreatedAt=2007-11-21 | Homepage=https://www.romhacking.net/translations/1331/ | Download=https://raphi.xyz/~raphi/s/shinbok_e_0.7b.zip }} This is a (technically unfinished) release of the translation patch. The entire game script is translated and the game may be played from start to finish without issue. A small num...")
  • 20:04, 10 August 2024Bike (hist | edit) ‎[4,913 bytes]Raphi (talk | contribs) (Created page with "= Front parts = Stored at offset 0x7b8 in the stat struct. {| class="wikitable" |- ! Bit || Name |- | 0 || Blaster 1 |- | 1 || Sidewinder |- | 2 || Blaster 2 |- | 3 || Hammerhead |- | 4 || Fairy Tale |- | 5 || Crusher |} = Tire parts = Stored at offset 0x7bc in the stat struct. {| class="wikitable" |- ! Bit || Name || Description |- | 0 || Standard 1 || A low-efficiency tire. |- | 1 || Standard 2 || A tire with great brake efficiency. |- | 2 || Trail || A tire that...")
  • 14:56, 10 August 2024Dialogue box (hist | edit) ‎[859 bytes]Raphi (talk | contribs) (Created page with "== Boktai 3 portraits == {| class="wikitable" |- ! ID || Description |- | 0 || Django |- | 1 || Black Django |- | 2 || (friend connected) |- | 3 || Otenko |- | 4 || Sabata |- | 5 || Sabata without helment |- | 6 || Smith |- | 7 || Lita |- | 8 || Zazie |- | 9 || Violet |- | 10 || Kuro |- | 11 || Kid |- | 12 || Cheyenne |- | 13 || Lady |- | 14 || Coffin Shopkeeper |- | 15 || Ennio |- | 16 || Marcello |- | 17 || ??? (Snake) |- | 18 || Luis |- | 19 || Count |- | 20 || Hresv...")
  • 14:34, 10 August 2024Inventory (Boktai 3) (hist | edit) ‎[16,068 bytes]Raphi (talk | contribs) (Created page with "List of items and their indexes as used in the inventory data, chest definitions, etc. = Items = {| class="wikitable" |- ! Index || Name || Description || Durability |- | -1 || (empty) || - || - |- | 0 || Healer || Green medicine. Restores a little Life. || |- | 1 || Earthly Nut || Solar fruit. Restores some Life. || |- | 2 || Rotten Nut || Spoiled fruit. Restores Life, but... || - |- | 3 || Jerky || Well-dried monster meat. Restores lots of Life. || |- | 4 || Tasty Me...")
  • 12:11, 10 August 2024Engine calls (Boktai 3) (hist | edit) ‎[25,492 bytes]Raphi (talk | contribs) (Created page with "This is a list of the engine calls (control 0x9906 and control 0xb745 opcodes) supported in Boktai 3 scripts. These all refer to native (THUMB) functions stored in the ROM. The tables are sorted by address, as similar functions tend to be stored close together in the ROM, whereas IDs are relatively random. = control 0x9906 = {| class="wikitable" |- ! ID || Address || # Uses || Descriptio...") Tag: Visual edit: Switched
  • 11:20, 10 August 2024Maps (Boktai 3) (hist | edit) ‎[16,330 bytes]Raphi (talk | contribs) (Created page with "The following maps exist in Boktai 3. The names have been extracted from the string data. The init script is responsible for loading the map, spawning objects in it, etc. Generally, each room in Boktai 3 will be in its own separate map (in Boktai 1 and 2, it is common for multiple rooms to share one map). {| class="wikitable" |- ! ID || Name || Init script || Description |- | 0 || no_area || || |- | 1 || GET_MISSION_BOX || || |- | 2 || demo || ||...")
  • 11:13, 10 August 2024Script list (Boktai 3) (hist | edit) ‎[544,102 bytes]Raphi (talk | contribs) (Created page with "This is a list of the scripts in the Boktai 3 script directory. * Map-specific scripts should use a name from the map list * See Engine calls (Boktai 3) for control 0x9906 and control 0xb745 reference {| class="wikitable" |- ! ID || Address || Group || Description |- | 0x0001 || 0x8dd6ba0 || || |- | 0x0002 || 0x8dd6d55 || || |- | 0x0003 || 0x8dd6d5f || || |- | 0x0004 || 0x8dd6d69 || || |- | 0x0005 || 0x8dd6d73 || || |- | 0x0006 || 0x8dd...")
  • 17:05, 9 August 2024ROM map (Boktai 2) (hist | edit) ‎[3,806 bytes]Raphi (talk | contribs) (Created page with "This is the ROM map for Boktai 2 (U). <!-- Please create a new page for maps of other languages! For example "ROM map (Boktai 2, J)". --> {| class="wikitable" |- ! Address || Description |- | 0x080a83ac || undefined Django_CheckLvUp(void) |- | 0x08231a78 || byte * Script_ReadLength(byte * pc, uint * length) |- | 0x08231afc || byte * Script_GetValueCore(byte * pc, uint * param_2, int * out_value) |- | 0x08231d20 || undefined Script_StoreVariable(void) |- | 0x08231d70 ||...") originally created as "ROM Map (Boktai 2)"
  • 17:01, 9 August 2024Maps (Boktai 2) (hist | edit) ‎[12,816 bytes]Raphi (talk | contribs) (Created page with "The following maps exist in Boktai 2. The names have been extracted from the string data. The init script is responsible for loading the map, spawning objects in it, etc. {| class="wikitable" |- ! ID || Name || Init script || Description |- | 0 || no_area || || |- | 1 || demo || || |- | 2 || ending || || |- | 3 || title || || |- | 4 || vm00_00 || || |- | 5 || f00 || 051d || 6th Avenue |- | 6 || f01 || 052b || 10th Avenue |- | 7 || f02 || 0...")
  • 16:55, 9 August 2024Engine calls (Boktai 2) (hist | edit) ‎[23,197 bytes]Raphi (talk | contribs) (Created page with "This is a list of the engine calls (control 0x9906 and control 0xb745 opcodes) supported in Boktai 2 scripts. These all refer to native (THUMB) functions stored in the ROM. The tables are sorted by address, as similar functions tend to be stored close together in the ROM, whereas IDs are relatively random. = control 0x9906 = {| class="wikitable" |- ! ID || Address || # Uses || Descriptio...")
  • 14:54, 9 August 2024Script list (Boktai 2) (hist | edit) ‎[149,771 bytes]Raphi (talk | contribs) (Created page with "This is a list of the scripts in the Boktai 2 script directory. * Map-specific scripts should use a name from the map list * See Engine calls (Boktai 2) for control 0x9906 and control 0xb745 reference {| class="wikitable" |- ! ID || Address || Group || Description |- | 0x0001 || 0x08ce4b9c || || |- | 0x0002 || 0x08ce4ba2 || || |- | 0x0003 || 0x08ce4c02 || || |- | 0x0004 || 0x08ce4d18 || || |- | 0x0005 || 0x08ce4dcd || || |- | 0x000...")
  • 12:42, 9 August 2024Inventory (Boktai 2) (hist | edit) ‎[12,544 bytes]Raphi (talk | contribs) (Created page with "List of items and their indexes as used in the inventory data, chest definitions, etc. = Items = {| class="wikitable" |- ! Index || Name || Durability |- | -1 || (empty) || - |- |0 || Earthly Nut || 3840 (=> Rotten Nut) |- |1 || Solar Nut || 3840 (=> Rotten Nut) |- |2 || Speed Nut || 3840 (=> Rotten Nut) |- |3 || Tiptoe Nut || 3840 (=> Rotten Nut) |- |4 || Banana || 3840 (=> Rotten Nut) |- |5 || Chocolate Banana || 3840 (=> Rotten Nut) |- |6 || Bearnut || 3840 (=> Rott...")
  • 16:54, 7 August 2024Script list (Boktai 1) (hist | edit) ‎[185,604 bytes]Raphi (talk | contribs) (Created page with "This is a list of the scripts in the Boktai 1 script directory. The tables are sorted by address, as related scripts tend to be stored close together in the ROM, whereas IDs are relatively random. * Map-specific scripts should use a name from the map list * See Engine calls (Boktai 1) for control 0x9906 and control 0xb745 reference {| class="wikitable" |- ! ID || Address || Group || Description |- | 0xa59b || 0x08e41d4c || || |- | 0xa84b |...")
  • 16:46, 7 August 2024Bytecode (hist | edit) ‎[23,388 bytes]Raphi (talk | contribs) (Created page with "= Script structure = * Bytecode scripts are stored in the script directory * A script must start with a <code>block</code> instruction. The script terminates either when that block ends, or with an explicit <code>return</code> instruction. * Blocks may only contain the following instructions as direct descendants: <code>end</code>, <code>expression</code>, <code>control</code>, and <code>[...")
  • 16:45, 7 August 2024Engine calls (Boktai 1) (hist | edit) ‎[25,039 bytes]Raphi (talk | contribs) (Created page with "This is a list of the engine calls (control 0x9906 and control 0xb745 opcodes) supported in Boktai 1 scripts. These all refer to native (THUMB) functions stored in the ROM. The tables are sorted by address, as similar functions tend to be stored close together in the ROM, whereas IDs are relatively random. = control 0x9906 = {| class="wikitable" |- ! ID || Address || # Uses || Descriptio...")
  • 15:55, 7 August 2024Maps (Boktai 1) (hist | edit) ‎[23,351 bytes]Raphi (talk | contribs) (Created page with "The following maps exist in Boktai 1. The names have been extracted from the string data. The init script is responsible for loading the map, spawning objects in it, etc. {| class="wikitable" |- ! ID || Name || Init script || Description |- | 0 || DOKODEMO_NAI || || |- | 1 || KANOKE_MISETTI || || |- | 2 || IDOUYUKA_NO_UE || || |- | 3 || HINODE_HINOIRI_DEMO || 0x0f07 || Sunrise/Sunset cutscenes |- | 4 || ENDING || 0x457f || Ending after defeati...")
  • 10:29, 7 August 2024RNG (hist | edit) ‎[37 bytes]Raphi (talk | contribs) (Redirected page to Random number generator) Tag: New redirect
  • 19:05, 6 August 2024Script directory (hist | edit) ‎[3,984 bytes]Raphi (talk | contribs) (Created page with "The script directory (contained in the master file table) contains both bytecode scripts and strings used in the game. It's layout is different than the other directories in the MFT: <syntaxhighlight lang="c"> struct script_directory { u32 unknown; // 0x3ea8eae6 in Boktai 1 (U) script_entry script_entries[]; directory_offsets offsets; // string_index contains the start index (in string_data) for each string // NOTE: offsets.string_i...")
  • 15:59, 6 August 2024Inventory (Boktai 1) (hist | edit) ‎[2,368 bytes]Raphi (talk | contribs) (Created page with "List of items and their indexes as used in the inventory data, chest definitions, etc. = Items = {| class="wikitable" |- ! Index || Name |- | 0 || Green Apple |- | 1 || Red Apple |-ewram | 2 || Golden Apple |- | 3 || Heal Fruit |- | 4 || Solar Nut |- | 5 || See-All Nut |- | 6 || Tiptoe Nut |- | 7 || Speed Nut |- | 8 || Banana |- | 9 || Evil Banana |- | 10 || Redshroom |- | 11 || Blueshroom |- | 12 || Flame Nut |- | 13 || Ice Nut |- | 14 || Bearnut |- | 15 || Enduranut |...")
  • 19:15, 5 August 2024Random number generator (hist | edit) ‎[1,516 bytes]Raphi (talk | contribs) (Created page with "The GBA Boktai games use a very simple method of generating random numbers: # There's a list of 1024 pregenerated u16 random numbers stored in EWRAM ("RNG Table") # The game keeps track of the last list index used in IWRAM ("RNG Index") # When the game needs a random number, it increments the RNG index (mod 1024)... # ...and then returns <code>RNG_Table[RNG_Index]</code>. # When the game needs a random value within a certain range, it instead returns <code>(RNG_Table[RN...")
  • 19:01, 4 August 2024Coordinate systems (hist | edit) ‎[1,348 bytes]Raphi (talk | contribs) (Created page with "The game does all game logic and physics calculation in orthogonal 3D space (that is, ''not'' isometric). The isometric projection step is only performed during the render phase of the game. The are three coordinate systems in use: # World space: Orthogonal coordinate system. All game logic calculations are performed in this coordinate system. # View space: Isometric coordinate system. Result of running world space coordinates through the isometric projection. # Screen...")
  • 11:04, 4 August 2024Text encoding (hist | edit) ‎[992 bytes]Raphi (talk | contribs) (Created page with "Text is stored uncompressed in the Script directory. Each character is encoded as either 1 or 2 bytes. * 1 byte: Used for ASCII characters with a code <= 127 (but there are a few exceptions where some ASCII codes have been replaced, see the encoding tables below). * 2 bytes: Used for special characters (e.g. arrows) and for non-English characters (e.g. Japanese). The 1st byte will be between 0x80 and 0x85. In other words, if the top bit of a byte is set, that means...")
  • 23:01, 3 August 2024Map file (hist | edit) ‎[3,657 bytes]Raphi (talk | contribs) (Created page with "Map files are stored in directory id_low = 0xd710, id_high = 0x9305 in the Master file table. They contain the gameplay relevant details of a map. This includes heights, collision data, event triggers, and so on. They do *not* include graphics (tile sets, tile maps, palettes, etc.), those are stored elsewhere (''TODO'': Where?). Most (all?) maps are stored LZ77 (<code>swi 0x11</code>) compressed. When loading a map, the game checks if the map file starts with the AS...")
  • 17:15, 3 August 2024RAM map (Boktai 3) (hist | edit) ‎[6,053 bytes]Raphi (talk | contribs) (Created page with "This is the RAM map for Boktai 3 (J). = IWRAM = {| class="wikitable" |- ! Address || Type || Description |- | 0x03005308 || i32 || RNG index |} = EEPROM = ''TODO'' Save data checksums Category:Documentation Category:Boktai 3")
  • 17:12, 3 August 2024RAM map (Boktai 1) (hist | edit) ‎[10,399 bytes]Raphi (talk | contribs) (Created page with "This is the RAM map for Boktai 1 (U). <!-- Please create a new page for maps of other languages! For example "RAM map (Boktai 1, J)". --> = IWRAM = {| class="wikitable" |- ! Address || Type || Description |- | 0x03004620 || i32 || RNG index |} = EEPROM = ''TODO'' Save data checksums Category:Documentation Category:Boktai 1")
  • 17:10, 3 August 2024ROM map (Boktai 3) (hist | edit) ‎[12,737 bytes]Raphi (talk | contribs) (Created page with "This is the ROM map for Boktai 3 (J). {| class="wikitable" |- ! Address || Type || Description |- | 0x08614d6c || mft_header[] || Master file table |} Category:Documentation Category:Boktai 3")
  • 17:09, 3 August 2024ROM map (Boktai 1) (hist | edit) ‎[8,520 bytes]Raphi (talk | contribs) (Created page with "This is the ROM map for Boktai 1 (U). <!-- Please create a new page for maps of other languages! For example "ROM map (Boktai 1, J)". --> {| class="wikitable" |- ! Address || Type || Description |- | 0x085b02c4 || mft_header[] || Master file table |} Category:Documentation Category:Boktai 1")
  • 17:02, 3 August 2024MFT (hist | edit) ‎[31 bytes]Raphi (talk | contribs) (Redirected page to Master file table) Tag: New redirect
  • 17:02, 3 August 2024Master file table (hist | edit) ‎[2,811 bytes]Raphi (talk | contribs) (Created page with " The master file table stores all data files used by the game (graphics, sounds, text, scripts, maps, and more). It is located near the end of the ROM. The MFT contains ''directories'', and each directory contains ''files''. Directories are identified by a 4-byte ID, files are identified by a 2-byte ID. Neither file names, nor subdirectories are supported. <syntaxhighlight lang="c"> struct mft_header { u16 id_low; u16 id_high; mft_directory* directory; }; /...")
  • 14:32, 3 August 2024Save data checksums (hist | edit) ‎[1,372 bytes]Raphi (talk | contribs) (Created page with "The save files of Boktai games contain checksums that are verified when the save is loaded. After modifying save files with a hex editor or another tool, these checksums must be updated so the save will load correctly again. The save file is divided into blocks. Each block size is a multiple of 8 bytes. After the last 8-byte chunk in a block, there is another 8-byte chunk containing the checksum. The checksum are these 4 halfwords: #. Constant 0xffff #. Byte size of th...")
  • 13:24, 3 August 2024RAM map (Boktai 2) (hist | edit) ‎[6,883 bytes]Raphi (talk | contribs) (Created page with "= IWRAM = {| class="wikitable" |- ! Address || Type || Description |- | 0x030016c0 || byte[0x28] || Global save data, loaded from save file @ 0x00-0x28 |- | ... 0x030016d8 || u16 || Unlock Blindbox Lv. 3 event |- | ... 0x030016da || u16 || Unlock Blindbox Lv. 4 event |- | ... 0x030016dc || u16 || Unlock Blindbox Lv. 5 & valentine's day event |- | ... 0x030016de || u16 || Downloadable_events|Unlock...")
  • 13:17, 3 August 2024Downloadable events (hist | edit) ‎[1,674 bytes]Raphi (talk | contribs) (Created page with "Boktai 2 includes special events that could be downloaded from "Joy Spots" in Japan using the GBA wireless adapter. Joy Spots were never available outside of Japan, and the in-game option to download those events was either hidden in western releases. However, the events themselves are fully intact and have even been translated. The following events are available and can be activated using a cheating device or a memory editor, by setting the halfword at the specified ad...")
  • 12:03, 3 August 2024Releases (hist | edit) ‎[3,278 bytes]Raphi (talk | contribs) (Created page with "All hashes here were taken from an ''unpatched'' ROM. The "Game code" is stored at address <code>0x080000ac</code>, and the "Revision" is stored at address <code>0x080000bc</code> in the ROM file (within the [https://problemkaputt.de/gbatek.htm#gbacartridgeheader cartridge header]). If not specified, the revision is 0. = Boktai 1 (U) = ;Game code : U3IE ;MD5 : <code>ff75c62ab690410cc8fca24204d783e9</code> ;SHA-1 : <code>7164326283df46a3941ec7b6ceca889cbc40e660</code> ;...") originally created as "Games"
  • 17:50, 2 August 2024Main Page (hist | edit) ‎[1,286 bytes]MediaWiki default (talk | contribs)