Site Tools


documentation:software:opera:bios_information

Panasonic FZ-1 (md5: f47264dd47fe30f73ab3c010015c155b)

Function AddressDescription
0x0301_4F49The application key N value
0x0301_4F8DThe 3DO key N value

Panasonic FZ-10 (md5: 51f2f43ae2f3508a14d9f56597e2d3ce)

Function AddressDescription
0x0300_0028The very first thing done at startup is read from 0x0318_0000 4 times. Each read it ANDs with 0x1 then ADDs it to the previous read (having been initialized with 0x0). It then compares that to 0xA. Meaning it's looking for a sequence of values with 1, 0, 1, 0. 3DOEssence suspects that address is a diagnostic port and that pattern triggers a test routine.
0x0300_02C4Writes 0x2A to MADAM memory config register 0x0330_0004.

Writes 0x0017_8906 to MADAM address 0x0330_000C. Not clear what that value means or what that location represents. The location appears only to ever be written to and function 0x0302_17a8 also writes the same value.

It then iterates over a list of tuples of config register values and total RAM values. Uses function 0x0300_039C to check size values against the actual RAM.

03000370 1A 10 DCB 0x1A, 0x10
03000372 19 10 DCB 0x19, 0x10
03000374 52 0A DCB 0x52, 0x0A
03000376 51 09 DCB 0x51, 0x09
03000378 4A 07 DCB 0x4A, 0x07
0300037A 32 07 DCB 0x32, 0x07
0300037C 49 06 DCB 0x49, 0x06
0300037E 31 06 DCB 0x31, 0x06
03000380 42 06 DCB 0x42, 0x06
03000382 12 06 DCB 0x12, 0x06
03000384 41 05 DCB 0x41, 0x05
03000386 11 05 DCB 0x11, 0x05
03000388 2A 04 DCB 0x2A, 0x04
0300038A 22 03 DCB 0x22, 0x03
0300038C 0A 03 DCB 0x0A, 0x03
0300038E 29 03 DCB 0x29, 0x03
03000390 21 02 DCB 0x21, 0x02
03000392 09 02 DCB 0x09, 0x02
03000394 02 02 DCB 0x02, 0x02
03000396 01 01 DCB 0x01, 0x01
03000398 00 00 DCB 0x00, 0x00
0x0300_039CAppears to be for confirming the size of the DRAM. Every 0x0010_0000 bytes it writes the address and the inverse address to address + 1. It then loops again looking for those values in the addresses. If any check fails it returns 0. Otherwise will return 1 if it gets past the range provided.
0x0300_0518DRAM / VRAM calculation function based on the value of MADAM register at 0x0330_0004.

Bank 1 is represented by bits 4 and 3 where 00 = 0MB; 01 = 1MB; 10 = 4MB; 11 = 16MB.
Bank 2 is represented by bits 6 and 5 where 00 = 0MB; 01 = 1MB; 10 = 4MB; 11 = 4MB.
Bits 2, 1, and 0 are used to subtract from the total DRAM if bank 1 = 16MB.

Total DRAM is Bank 1 + Bank 2 if Bank 1 != 16MB. If Bank 1 == 16MB then total DRAM is Bank 1 - Bits210 in MB.

More details can be found on the 3DO Memory Configuration page.
0x0300_1240Waits for CLIO VCNT (0x0340_0034) to be greater than 10 and less than 13.
0x0300_1268Waits for CLIO VCNT (0x0340_0034) to equal 4.
0x0302_438CROM select.
CLIO address 0x0340_0084
0x0302_43B4Not sure what's going on here. It's use the PBUS DMA to seemingly transfer from two ROM addresses. But the ROM should be readonly.

Panasonic FZ-10E ANVIL (md5: a48e6746bd7edec0f40cff078f0bb19f)

AddressDescription
0x0300_003cadr pc,0x6000044

It appears that ANVIL systems might mirror the original ROM location of 0x0300_0000 at 0x0600_0000. The only reference to the latter's range is at the very beginning of the ROM which unconditionally jumps to 0x0600_00044.

Besides keeping this ROM from running on non-ANVIL hardware it is unclear why it would do this.

Shootout At Old Tucson (md5: 8970fc987ab89a7f64da9f8a8c4333ff)

AddressDescription
0x0300_0628Checks MADAM version. Yet to investigate what the return value represents.
0x0300_1a20???
0x0301_4d30“Copyright 1993 The 3DO Company\nAll Rights Reserved.”
0x0301_4e49CDROM bootcode decryption key?

c0764797b8bec8972a0ed8c90a8c334dd049add0222c09d20be0a79e338910bcae422060906ae0221de3f3fc747ccf98aecc85d6edc52d93d5b7396776160525
0x0301_4e8dccddb7d60984a4a7ff6841eaf1b4df8edd26bd315ca72681058de12f477a5a5b84d4f2e32dd48bdb8b4a04176c8f96d5b194c270a30593a9ea4032d0038cae2d
0x0301_4ed1key1

ad287d637758301f0f8870d580d8ea8e9f341def627eb2667773c8232065f915102f92dbaddd0a606cf01e0d04a49da029ac06918800edff08c187d2b2e8ebb9
0x0301_4f153DO key

b19462b00d8d6e1ec909ab385e06fe034bfd282e9ffdc584838c15f12593dd1e3a8b5626f1b9d0ed0c384ef6c5d14512bd72ddb85b44080e0472c03d0afc4c97
0x0301_4f59key2

b87c524a7d0a0739b48dc4713ff3dcbf6cc0015dd4f35859fab3bde4c6594de675c161d7c32df25f426f8adc60f07853eaac8f59be969b9eb69b51b80764590b
0x0301_5088“\nThis WHOLLY ODD collection of code brought to you by:\n\nDale \”You mean my house burned down last month and I never noticed?\“ Luck\n-=RJ=- \”Hey, I never approved those messages!\“ Mical\nJoe \”You were asleep at the time\“ Pillow\nDave \”Strictly corect\“ Platt\nBryce \”Angel of death\“ \”Nesbitl\“ Nesbitt\nStephen \”Not Stephan\“ Landrum\nAndy \”I miss my Cats\“ Finkel\nChris \”Whaddya mean you took it out?\“ McFall\nDrew \”Don't touch my toys\“ Shell\nMr. Pockets\nNerf™ brand weapons\nPhil \”I can't hear you\“ Burk\nStan \”I thought you were done\“ Shepard\nSteve \”That !@%$#& drive\“ Hayes\nBill Long\nBarry Solomon\n\nAnd all those who were not in the building at 2am when the cops\nshowed up…\n”
documentation/software/opera/bios_information.txt · Last modified: 2022/01/20 11:12 by trapexit