Game Boy Wars 3:ROM map

From Data Crystal
Revision as of 02:08, 30 March 2013 by Danke (talk | contribs)
Jump to: navigation, search

Contents

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)

Block 63 (0F8000-0FC000)

Block 64 (0FC000-100000)