If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Game Boy Wars 3/ROM map: Difference between revisions
Jump to navigation
Jump to search
(Created page with ' == Block 1 (000000-004000) == * 29BC-29C2 ~ HL += A * 2A21-2A6F ~ DE / BC: DE holds rounded down answer, BC holds remainder * 2A70-2A78 ~ [HL] -= 1, BC *= -1 * 2A79-2A81 ~ [HL]…') |
No edit summary |
||
Line 1: | Line 1: | ||
== Block 1 (000000-004000) == | == Block 1 (000000-004000) == | ||
Line 7: | Line 6: | ||
* 2A79-2A81 ~ [HL] -= 1, DE *= -1 | * 2A79-2A81 ~ [HL] -= 1, DE *= -1 | ||
* 3A93-3A9D ~ A = [HL + A] | * 3A93-3A9D ~ A = [HL + A] | ||
* 3AC7-3AD0 ~ A = [HL + (A/8)] AND 2^(A%8) | |||
* 3AD1-3ADB ~ [HL + (A/8)] = [HL + (A/8)] OR 2^(A%8) | |||
* 3AE9-3B05 ~ HL + (A / 8): C holds 2^Remainder, HL holds rounded down answer | |||
* 3B50-3B58 ~ ldi [HL],[DE]; inc DE, dec BC, repeat if BC != 0 | * 3B50-3B58 ~ ldi [HL],[DE]; inc DE, dec BC, repeat if BC != 0 | ||
* 3B79-3B83 ~ [HL], [HL+1]...[HL+BC] = A | * 3B79-3B83 ~ [HL], [HL+1]...[HL+BC] = A | ||
Line 31: | Line 33: | ||
== Block 12 (02C000-030000) == | == Block 12 (02C000-030000) == | ||
== Block 13 (030000-034000) == | == Block 13 (030000-034000) == | ||
Line 43: | Line 47: | ||
== Block 18 (044000-048000) == | == Block 18 (044000-048000) == | ||
* 4D3F-4D59 ~ if [C62F] != 1 && [C633]%2 = 1, [C77D + A/16] = [C77D + A/16] OR 2^((A/2)%8) | |||
== Block 19 (048000-04C000) == | == Block 19 (048000-04C000) == | ||
Line 58: | Line 64: | ||
* 40DB-40F4 ~ Adding the unit's EXP in, checking for 400 EXP cap (A is Unit #, HL is gained EXP) | * 40DB-40F4 ~ Adding the unit's EXP in, checking for 400 EXP cap (A is Unit #, HL is gained EXP) | ||
* 40F5-4105 ~ A = Unit's Level - 1 (A is Unit #) | * 40F5-4105 ~ A = Unit's Level - 1 (A is Unit #) | ||
* 4106 | * 4106-412A ~ RAM addresses $CCDD~$CCED set to hold selected Unit's stats | ||
* 412B-414D ~ selected Unit's stats moved from $CCDD~$CCED to $D000 list | |||
* 42F6-4328 ~ A = side's current unit count (A is the given side) | |||
* 4329-4350 ~ A != 0 && Z Flag Set: Loading Valid (A is 1st Unit's #, B is 2nd Unit's #) | * 4329-4350 ~ A != 0 && Z Flag Set: Loading Valid (A is 1st Unit's #, B is 2nd Unit's #) | ||
* 4351-43B8 ~ A = prevent Supply flag (A is receiving unit, B is giving unit) | |||
* 4436-4457 ~ $CD0B holds available Unit Type count, $CD0C, etc holds Unit Type choices (B is starting unit type) | |||
* 4458-446F ~ Mercenary Unit equivalent of 12:4436 | |||
* 4470-447C ~ if unit is buyable, A = 0; else, A = 2 (A is Unit Type) | |||
* 447D-448C ~ if unit is considered buyable A = 0; else, A = 2 | |||
* 448D-4497 ~ $4986 stuff | |||
* 4498-44B7 ~ if Unit is at S-Rank, A = promoted Unit Type # * 2 + country bit; else, A = 0 (A is Unit #) | |||
* 44B8-44BF ~ promoted Unit Type # | |||
* 44C0-4509 ~ confirmed promotion procedure | |||
* 4585-4596 ~ Unit's End Turn bit set | |||
* 4741-4757 ~ Unit's 8th stat = Unit Type's Fuel | * 4741-4757 ~ Unit's 8th stat = Unit Type's Fuel | ||
* 4758-477C ~ Unit's 9th and 10th stats = Unit Type's Ammo (each weapon) | * 4758-477C ~ Unit's 9th and 10th stats = Unit Type's Ammo (each weapon) | ||
* 477D-479E ~ recover HP | |||
* 479F-47AC ~ A = used Movement Cost | * 479F-47AC ~ A = used Movement Cost | ||
* 497F-4985 ~ buyable units | |||
* 4986-49A5 ~ pointers for 7 byte families that seem to involve unit buying | |||
* 49A5-4A0E ~ | |||
* 4A0F-4A42 ~ promoted Unit Type # | |||
* 4A43-4AAC ~ Unit Type stat pointers | |||
* 4AAD-5255 ~ Unit Type stats | |||
* 5256-5297 ~ ? (pointers) | |||
* 5298-54A7 ~ ? | |||
* 54A8-54C5 ~ Movement Cost pointers | |||
* 54C6-561E ~ Movement Costs | |||
== Block 20 (04C000-050000) == | == Block 20 (04C000-050000) == | ||
Line 109: | Line 139: | ||
== Block 42 (0A4000-0A8000) == | == Block 42 (0A4000-0A8000) == | ||
Map data | |||
== Block 43 (0A8000-0AC000) == | == Block 43 (0A8000-0AC000) == | ||
Map data | |||
== Block 44 (0AC000-0B0000) == | == Block 44 (0AC000-0B0000) == | ||
Map data | |||
== Block 45 (0B0000-0B4000) == | == Block 45 (0B0000-0B4000) == | ||
Map data (ends Standard, covers Beginner) | |||
== Block 46 (0B4000-0B8000) == | == Block 46 (0B4000-0B8000) == | ||
Map data (campaign) | |||
== Block 47 (0B8000-0BC000) == | == Block 47 (0B8000-0BC000) == | ||
Map data | |||
== Block 48 (0BC000-0C0000) == | == Block 48 (0BC000-0C0000) == | ||
Map data | |||
== Block 49 (0C0000-0C4000) == | == Block 49 (0C0000-0C4000) == | ||
Line 129: | Line 173: | ||
== Block 52 (0CC000-0D0000) == | == Block 52 (0CC000-0D0000) == | ||
Dialogue stuff | |||
== Block 53 (0D0000-0D4000) == | == Block 53 (0D0000-0D4000) == | ||
Empty (all FFs) | |||
== Block 54 (0D4000-0D8000) == | == Block 54 (0D4000-0D8000) == | ||
Empty (all FFs) | |||
== Block 55 (0D8000-0DC000) == | == Block 55 (0D8000-0DC000) == | ||
Empty (all FFs) | |||
== Block 56 (0DC000-0E0000) == | == Block 56 (0DC000-0E0000) == | ||
Empty (all FFs) | |||
== Block 57 (0E0000-0E4000) == | == Block 57 (0E0000-0E4000) == | ||
Empty (all FFs) | |||
== Block 58 (0E4000-0E8000) == | == Block 58 (0E4000-0E8000) == | ||
Empty (all FFs) | |||
== Block 59 (0E8000-0EC000) == | == Block 59 (0E8000-0EC000) == | ||
Empty (all FFs) | |||
== Block 60 (0EC000-0F0000) == | == Block 60 (0EC000-0F0000) == | ||
Empty (all FFs) | |||
== Block 61 (0F0000-0F4000) == | == Block 61 (0F0000-0F4000) == | ||
Empty (all FFs) | |||
== Block 62 (0F4000-0F8000) == | == Block 62 (0F4000-0F8000) == | ||
Empty (all FFs) | |||
== Block 63 (0F8000-0FC000) == | == Block 63 (0F8000-0FC000) == | ||
== Block 64 (0FC000-100000) == | == Block 64 (0FC000-100000) == |
Revision as of 20:25, 26 January 2013
Block 1 (000000-004000)
- 29BC-29C2 ~ HL += A
- 2A21-2A6F ~ DE / BC: DE holds rounded down answer, BC holds remainder
- 2A70-2A78 ~ [HL] -= 1, BC *= -1
- 2A79-2A81 ~ [HL] -= 1, DE *= -1
- 3A93-3A9D ~ A = [HL + A]
- 3AC7-3AD0 ~ A = [HL + (A/8)] AND 2^(A%8)
- 3AD1-3ADB ~ [HL + (A/8)] = [HL + (A/8)] OR 2^(A%8)
- 3AE9-3B05 ~ HL + (A / 8): C holds 2^Remainder, HL holds rounded down answer
- 3B50-3B58 ~ ldi [HL],[DE]; inc DE, dec BC, repeat if BC != 0
- 3B79-3B83 ~ [HL], [HL+1]...[HL+BC] = A
Block 2 (004000-008000)
Block 3 (008000-00C000)
Block 4 (00C000-010000)
Block 5 (010000-014000)
Block 6 (014000-018000)
Block 7 (018000-01C000)
Block 8 (01C000-020000)
Block 9 (020000-024000)
Block 10 (024000-028000)
Block 11 (028000-02C000)
Block 12 (02C000-030000)
Block 13 (030000-034000)
Block 14 (034000-038000)
Block 15 (038000-03C000)
Block 16 (03C000-040000)
Block 17 (040000-044000)
Block 18 (044000-048000)
- 4D3F-4D59 ~ if [C62F] != 1 && [C633]%2 = 1, [C77D + A/16] = [C77D + A/16] OR 2^((A/2)%8)
Block 19 (048000-04C000)
- 4000-401F ~ RAM addresses $D000~$D63F set to 0
- 4020-4028 ~ HL = Unit Type's stats starting location (A is Unit Type)
- 4029-4036 ~ HL = Unit's stats starting location (A is Unit #)
- 4037-4042 ~ A = Unit Type's used stat (A is Unit Type, C is used stat)
- 4043-404E ~ DE = Unit Type's used stat (2 bytes) (A is Unit Type, C is used stat)
- 404F-4065 ~ RAM addresses $CD28~$CD31 set to hold Unit Type's name
- 4066-4082 ~ A = Unit's used stat (A is Unit #, C is used stat)
- 4083-40A0 ~ DE = Unit's used stat (2 bytes) (A is Unit #, C is used stat)
- 40A1-40BC ~ B -> Unit's used stat (A is Unit #, C is used stat)
- 40BD-40DA ~ DE -> Unit's used stat (2 bytes) (A is Unit #, C is used stat)
- 40DB-40F4 ~ Adding the unit's EXP in, checking for 400 EXP cap (A is Unit #, HL is gained EXP)
- 40F5-4105 ~ A = Unit's Level - 1 (A is Unit #)
- 4106-412A ~ RAM addresses $CCDD~$CCED set to hold selected Unit's stats
- 412B-414D ~ selected Unit's stats moved from $CCDD~$CCED to $D000 list
- 42F6-4328 ~ A = side's current unit count (A is the given side)
- 4329-4350 ~ A != 0 && Z Flag Set: Loading Valid (A is 1st Unit's #, B is 2nd Unit's #)
- 4351-43B8 ~ A = prevent Supply flag (A is receiving unit, B is giving unit)
- 4436-4457 ~ $CD0B holds available Unit Type count, $CD0C, etc holds Unit Type choices (B is starting unit type)
- 4458-446F ~ Mercenary Unit equivalent of 12:4436
- 4470-447C ~ if unit is buyable, A = 0; else, A = 2 (A is Unit Type)
- 447D-448C ~ if unit is considered buyable A = 0; else, A = 2
- 448D-4497 ~ $4986 stuff
- 4498-44B7 ~ if Unit is at S-Rank, A = promoted Unit Type # * 2 + country bit; else, A = 0 (A is Unit #)
- 44B8-44BF ~ promoted Unit Type #
- 44C0-4509 ~ confirmed promotion procedure
- 4585-4596 ~ Unit's End Turn bit set
- 4741-4757 ~ Unit's 8th stat = Unit Type's Fuel
- 4758-477C ~ Unit's 9th and 10th stats = Unit Type's Ammo (each weapon)
- 477D-479E ~ recover HP
- 479F-47AC ~ A = used Movement Cost
- 497F-4985 ~ buyable units
- 4986-49A5 ~ pointers for 7 byte families that seem to involve unit buying
- 49A5-4A0E ~
- 4A0F-4A42 ~ promoted Unit Type #
- 4A43-4AAC ~ Unit Type stat pointers
- 4AAD-5255 ~ Unit Type stats
- 5256-5297 ~ ? (pointers)
- 5298-54A7 ~ ?
- 54A8-54C5 ~ Movement Cost pointers
- 54C6-561E ~ Movement Costs
Block 20 (04C000-050000)
Block 21 (050000-054000)
Block 22 (054000-058000)
Block 23 (058000-05C000)
Block 24 (05C000-060000)
Block 25 (060000-064000)
Block 26 (064000-068000)
Block 27 (068000-06C000)
Block 28 (06C000-070000)
Block 29 (070000-074000)
Block 30 (074000-078000)
Block 31 (078000-07C000)
Block 32 (07C000-080000)
Block 33 (080000-084000)
Block 34 (084000-088000)
Block 35 (088000-08C000)
Block 36 (08C000-090000)
Block 37 (090000-094000)
Block 38 (094000-098000)
Block 39 (098000-09C000)
Block 40 (09C000-0A0000)
Block 41 (0A0000-0A4000)
Block 42 (0A4000-0A8000)
Map data
Block 43 (0A8000-0AC000)
Map data
Block 44 (0AC000-0B0000)
Map data
Block 45 (0B0000-0B4000)
Map data (ends Standard, covers Beginner)
Block 46 (0B4000-0B8000)
Map data (campaign)
Block 47 (0B8000-0BC000)
Map data
Block 48 (0BC000-0C0000)
Map data
Block 49 (0C0000-0C4000)
Block 50 (0C4000-0C8000)
Block 51 (0C8000-0CC000)
Block 52 (0CC000-0D0000)
Dialogue stuff
Block 53 (0D0000-0D4000)
Empty (all FFs)
Block 54 (0D4000-0D8000)
Empty (all FFs)
Block 55 (0D8000-0DC000)
Empty (all FFs)
Block 56 (0DC000-0E0000)
Empty (all FFs)
Block 57 (0E0000-0E4000)
Empty (all FFs)
Block 58 (0E4000-0E8000)
Empty (all FFs)
Block 59 (0E8000-0EC000)
Empty (all FFs)
Block 60 (0EC000-0F0000)
Empty (all FFs)
Block 61 (0F0000-0F4000)
Empty (all FFs)
Block 62 (0F4000-0F8000)
Empty (all FFs)