- 1A00 - SWI XOS_FSControl without setting R3=0
- 2B78 in CoconizerPlayer module - while loading if you skip the intro too early
- 14BEA4 - when quitting the game
- 931C4 - when entering a level
- 13454 - at "Check and mate...Game over." - D444 triggers the read at the Aborting address
- 1FE94 - while loading
- 3F8E8 - after pressing ENTER when loaded
- 4AF00 - when entering a level
- 29C in Audio1 - when quitting the game
- EB10 - sometimes occurs when all characters die
- 8024 - while loading
- 290 in SoundSystem module - while loading, unset variable in voice handler
- 158 in Start module - while loading, unset variable in voice handler
- NEWMAIN - lots of references to !4288 (10C0 = VDU screen start address)
- 16BB4 - when run from RAM::0.$.!wonderla
- 9770 - after loading
Now fixed in the boot script:
Alerion
- 26AC4 - starting demo mode. Bug in code 26AC0: LDRB R0,&26AA4 / LDR R0,[R0,#0] should be LDR R0,&26AA4 / LDRB R0,[R0,#0]
- 16010 - Voice Generator, during loading
- 64920 - Voice Generator, during loading
- Within CLib when starting/stopping/pausing music. Bug in code: Null *in pointer passed to _kernel_swi
2EAF8 MOV R1,#0 should be SUB R1,SP,#&28
2F4BC MOV R1,#0 should be SUB R1,SP,#&28
2F518 MOV R1,#0 should be SUB R1,SP,#&28
- 2CAF4 - Stacks R14 within an IRQ routine, which results in the routine randomly exiting to page zero
- 13B34 - on the level selection screen. Bug in code: 1410C exits without restoring R1
- 181CC - unset variables in voice handler
- 164F0 - when starting a game ([14CB18]=0)
- F4678 - whilst in-level. Bug in code: Null reference
- F8298 - whilst in-level. Bug in code: LDRB R0,[R7,#2] should be LDRB R0,[R6,#2]
- F82A4 - whilst in-level. Bug in code: LDRB R0,[R7,#52] should be LDRB R0,[R6,#52]
- F82B0 - whilst in-level. Bug in code: LDRB R0,[R7,#6] should be LDRB R0,[R6,#6]
- F82BC - whilst in-level. Bug in code: LDRB R0,[R7,#56] should be LDRB R0,[R6,#56]
- 124040 - during loading. Bug in code: LDRB R0,[R6,#5] should be LDRB R0,[R9,#5]
- 1E1F0 - when you die. Bug in code: LDRB R2,[R0,#20] should be LDRB R2,[R1,#20]
- 1E1F8 - when you die. Bug in code: STRB R2,[R0,#20] should be STRB R2,[R1,#20]
- 16080 - when you press ALT. Bug in code: LDRB R4,[R3,#11] should be LDRB R4,[R4,#11]
- 218EC - when you place an object. Bug in code: R5 is corrupted before use, fix by restoring R5 from the stack:
218EC LDR R5,[R13, #4]
218F0 LDRB R2,[R5,#8]
218F4 TST R2,#&40
218F8 MOV R2,#&A0
218FC STRNEB R2,[R5,#&2E]
21900 MOV R2,#0
21904 STRNEB R2,[R5,#&2F] - Paint Module A94 - when you exit a room. Bug in code:
A90 LDRB R4,[R4,#12] should be LDRB R5,[R4,#12]
AA0 ADD R4,R4,R10 should be ADD R5,R5,R10
AA4 CMP R4,R1 should be CMP R5,R1
- E858 - after entering a highscore. Bug in code: Null pointer
- 4C238 - after displaying the map. Bug in code: Instruction shouldn't be there
- A59C - during loading, checking the disc record. Bug in code: LDR R0,[R0,#0] should be LDR R0,[R1,#0]
- 33C - in ChopperForceIntro Module during the intro. Bug in code: Null pointer, installs Voices before setting up their sample pointers
- 965D8 - after loading. Bug in code: Null pointer
- Various null pointers. Bug in code: Relies on OS_Heap allocations being 8 byte aligned
- 15758 - Voice Generator. Bug in code: Null pointer
- 158B8 - whilst loading. Bug in code
- 113F8 - when it plays the track sound. Two issues:
- Bug in code: Hardcoded to support three voice handlers, the fourth overwrites the code
- Bug in RISCOS: The GateOn entry isn't called first, so the SCCB isn't initialised (fixed in 2.49h)
- 33C in all four sound Modules. Bug in code: 318 BL &32C should be BLNE &32C
- 1C608 - while loading, unset variable in voice handler
- 41724 - after clicking "Play a Game". Bug in code, a CLib file function is called with an explicit Null pointer in R0 from four locations:
26900 MOV R0, #0
26904 BL &3BDD0
27A10 MOV R0, #0
27A14 BL &3BDD0
2DA44 MOV R0, #0
2DA48 BL &3BDD0
2DCEC MOV R0, #0
2DCF0 BL &3BDD0
- 1E310 - during loading. Bug in code: Null pointer
- 1DBF0 - during loading. Bug in code: Null pointer
- Resource.Init - during loading. Attempts "*SAVE <Wimp$Scrap> 0 0" to see if it can write to the Scrap directory
- 64558 - Voice Generator, during loading
- 39E10 - Voice Generator, at the "LOADING" screen
- 8484 - after entering your name when selecting Play
- A1260 - Voice Generator, when starting the first level
- A15C8 - Bug in code: Null pointer, when starting the first level
- Ninjasticks +480 - Voice Generator, at the main menu. Bug in code: The sample initialization code misses the first sample +168: ADD R1,R1,#8 should be NOP and +16C: MOV R2,#4 should be MOV R2,#5
- 95524 - When it displays the "Legend of the Lost Temple" title screen after the intro. Bug in code: Null pointer
- 22870 - When you start a level. Bug in code: Null pointer
- 243B4 - When you fire and hit a monster. Bug in code: LDR R4,[R1,#4] should be LDR R4,[R11,#4]
- 24CF4 - When you fire and hit an eagle. Bug in code: LDR R4,[R1,#4] should be LDR R4,[R11,#4]
- 99934 - Immediately on entering a level. Bug in code: Null pointer
- 99954 - When the first lemming drops. Bug in code: Null pointer
- 69D30 - after the intro sequence. Bug in CPU detection code
- A1940 - Voice Generator
- A1B18 - Voice Generator
- A1CF0 - Voice Generator
- A1EC8 - Voice Generator
- Bug in RISCOS: The GateOn entry isn't called first, so the SCCB isn't initialised (fixed in 2.49h)
- Bug in code: The initial GateOn entry values used to initialize the SCCB aren't initialized when the Voice Generators are installed
- 6FF90 - Voice Generator
- 70168 - Voice Generator
- 70340 - Voice Generator
- 70518 - Voice Generator
- Bug in RISCOS: The GateOn entry isn't called first, so the SCCB isn't initialised (fixed in 2.49h)
- Bug in code: The initial GateOn entry values used to initialize the SCCB aren't initialized when the Voice Generators are installed
- Paint Module 9F4 - when you enter certain rooms. Bug in code:
9F0 LDRB R4,[R4,#27] should be LDRB R5,[R4,#27]
A00 ADD R4,R4,R10 should be ADD R5,R5,R10
A04 CMP R4,R1 should be CMP R5,R1
- 906C - as you start a game. Bug in code: Null pointer
- 75894 - as you start a game. Bug in code: Unset value
- 681D8 - Voice Generator. Bug in code: Invalid pointer
- 68244 - Voice Generator. Bug in code: Null pointer
- 68420 - Voice Generator. Bug in code: Null pointer
- 6844C - Voice Generator. Bug in code: Null pointer
- 68478 - Voice Generator. Bug in code: Null pointer
- 684A4 - Voice Generator. Bug in code: Null pointer
- 684D0 - Voice Generator. Bug in code: Null pointer
- 684FC - Voice Generator. Bug in code: Null pointer
- 68528 - Voice Generator. Bug in code: Null pointer
- 68554 - Voice Generator. Bug in code: Null pointer
- 156B8 in CLibAPCS_R - while loading, passed a null pointer. Bug in code: Cursor function doesn't set R1,R2 before calling _kernel_swi
- 156B8 in CLibAPCS_R - when starting a game, passed a null pointer. Bug in code: TestIcons function doesn't set R1,R2 before calling _kernel_swi
- 9328 - when you start a level. Bug in code: Null pointer
- B8EC - after inserting disc 2. Bug in code: 37514 branches to a screen copy routine, before the screen address is known
- 1E548 - shortly after entering a match. Bug in code: Null pointer
- 19C24 during loading. Bug in code: Null pointer
- 2163C in-game if keys aren't pressed and its left to play. Bug in code: Null pointer
- 21694 in-game if keys aren't pressed and its left to play. Bug in code: Null pointer
- 237F4 in-game if keys aren't pressed and its left to play. Bug in code: Null pointer
- 29D64 in-game if keys aren't pressed and its left to play. Bug in code: Null pointer
- 2A030 in-game if keys aren't pressed and its left to play. Bug in code: Null pointer
- 2A070 in-game if keys aren't pressed and its left to play. Bug in code: Null pointer
- 11418 - after intro sequence. Bug in code, enables TickerV code before the vars are initialized
- 6BC18 - Voice Generator
- 58F8C - when reporting an error. Bug in code: Doesn't build a stack frame before calling the os_byte subroutine:
27F4C LDMFD R11,{R4,R11,R13,R14} should be SWI OS_Byte
27F50 B &58F5C should be LDMFD R11,{R4,R11,R13,PC} - 4EFA4 - during loading. Bug in code: Null pointer
- F6D8 - every call to the memcopy routine @ F6CC generates Page Zero accesses due to R1 corruption. As its not obvious what R1 should be, ignore the memcopy by: F6CC MOV PC,R14
- 5E684 - when pressing CTRL-ESC at the menu. Bug in code: Exits via R14 instead of OS_Exit
- 1F170 - after intro sequence. Bug in code: The code sequence at 11214 is following the Arthur convention for Sound_InstallVoice 0 and is expecting R0 to point to a "*** No Voice" string. On RO2+, R0 is a null pointer if no voice is installed on the channel
- 9EB4 - if left on the demo sequence. Bug in code: Null pointer