Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Game will not load in Squeak 5.2 (alpha) #4

Open
stephensmith9 opened this issue Dec 8, 2018 · 3 comments
Open

Game will not load in Squeak 5.2 (alpha) #4

stephensmith9 opened this issue Dec 8, 2018 · 3 comments
Assignees
Labels

Comments

@stephensmith9
Copy link

Found this via the Squeak home page. Loaded it into my image but when it runs it can't find the welcome_view.jpg file. Seems it's missing code to initialize the image and sound databases (which I found when I downloaded it via the potsdam page here: http://www.hpi.uni-potsdam.de/hirschfeld/projects/olpc/index.html). I downloaded the .pr file and loaded it into my image (after removing the package previously downloaded from this git repo).

Any chance that this repo can be updated to the latest working code? (since anyone else redirected here from the Squeak main page will run into the same problem I did)

Seems like such a great project - it would be nice to get it working under the latest Squeak.

Incidentally there is an error when running the code from the potsdam site as well. The game loads, music starts, allows you to select a level and then an error occurs. Below is the bug report from the Squeak debugger:

8 December 2018 3:58:58.889571 pm

VM: Win32 - Smalltalk
Image: Squeak5.2alpha [latest update: #18185]

BroBoundary(Object)>>doesNotUnderstand: #firstIntersectionWithLineFrom:to:
Receiver: a BroBoundary(1285495)
Arguments and temporary variables:
aMessage: firstIntersectionWithLineFrom: 868@210 to: 868@225
exception: MessageNotUnderstood: BroBoundary>>firstIntersectionWithLineFrom:to:...etc...
resumeValue: nil
Receiver's instance variables:
bounds: 408@175 corner: 1208@190
owner: a BroLevelWorld(2578499)
submorphs: #()
fullBounds: 408@175 corner: 1208@190
color: Color transparent
extension: a MorphExtension (460863) [other: (borderStyle -> a SimpleBorder)]
borderWidth: 2
borderColor: Color transparent
health: -1
hitAllowed: false
containsPowerup: false
levelWorld: a BroLevelWorld(2578499)
backgroundMorph: nil

[] in [] in BroBall>>getNearestIntersect
Receiver: a BroBall(3049761)
Arguments and temporary variables:
<
Receiver's instance variables:
bounds: 848@200 corner: 868@220
owner: a BroLevelWorld(2578499)
submorphs: {an ImageMorph(1877141)}
fullBounds: 848@200 corner: 868@220
color: Color transparent
extension: a MorphExtension (3754705) [other: (originalAngle -> 0.0) (original...etc...
borderWidth: 1
borderColor: Color transparent
direction: 0@15
distanceVectorToTravel: 0@15
levelWorld: a BroLevelWorld(2578499)
tempCenter: 858@210
newCenter: nil
collisionPoint: nil

OrderedCollection>>do:
Receiver: an OrderedCollection(a BroBoundary(1285495) a BroBoundary(2033759) a BroBoundary(2010519) ...etc...
Arguments and temporary variables:
aBlock: [closure] in [] in BroBall>>getNearestIntersect
index: 1
Receiver's instance variables:
array: {a BroBoundary(1285495) . a BroBoundary(2033759) . a BroBoundary(2010519...etc...
firstIndex: 1
lastIndex: 158

[] in BroBall>>getNearestIntersect
Receiver: a BroBall(3049761)
Arguments and temporary variables:
<
Receiver's instance variables:
bounds: 848@200 corner: 868@220
owner: a BroLevelWorld(2578499)
submorphs: {an ImageMorph(1877141)}
fullBounds: 848@200 corner: 868@220
color: Color transparent
extension: a MorphExtension (3754705) [other: (originalAngle -> 0.0) (original...etc...
borderWidth: 1
borderColor: Color transparent
direction: 0@15
distanceVectorToTravel: 0@15
levelWorld: a BroLevelWorld(2578499)
tempCenter: 858@210
newCenter: nil
collisionPoint: nil

Array(SequenceableCollection)>>do:
Receiver: #(#right #top #left)
Arguments and temporary variables:
aBlock: [closure] in BroBall>>getNearestIntersect
index: 1
indexLimiT: 3
Receiver's instance variables:
#(#right #top #left)

BroBall>>getNearestIntersect
Receiver: a BroBall(3049761)
Arguments and temporary variables:
<
Receiver's instance variables:
bounds: 848@200 corner: 868@220
owner: a BroLevelWorld(2578499)
submorphs: {an ImageMorph(1877141)}
fullBounds: 848@200 corner: 868@220
color: Color transparent
extension: a MorphExtension (3754705) [other: (originalAngle -> 0.0) (original...etc...
borderWidth: 1
borderColor: Color transparent
direction: 0@15
distanceVectorToTravel: 0@15
levelWorld: a BroLevelWorld(2578499)
tempCenter: 858@210
newCenter: nil
collisionPoint: nil

BroBall>>calculateNewCenter
Receiver: a BroBall(3049761)
Arguments and temporary variables:
nearestIntersect: nil
distanceToIntersect: nil
Receiver's instance variables:
bounds: 848@200 corner: 868@220
owner: a BroLevelWorld(2578499)
submorphs: {an ImageMorph(1877141)}
fullBounds: 848@200 corner: 868@220
color: Color transparent
extension: a MorphExtension (3754705) [other: (originalAngle -> 0.0) (original...etc...
borderWidth: 1
borderColor: Color transparent
direction: 0@15
distanceVectorToTravel: 0@15
levelWorld: a BroLevelWorld(2578499)
tempCenter: 858@210
newCenter: nil
collisionPoint: nil

BroBall>>step
Receiver: a BroBall(3049761)
Arguments and temporary variables:

Receiver's instance variables: 
	bounds: 	848@200 corner: 868@220
	owner: 	a BroLevelWorld(2578499)
	submorphs: 	{an ImageMorph(1877141)}
	fullBounds: 	848@200 corner: 868@220
	color: 	Color transparent
	extension: 	a MorphExtension (3754705) [other:  (originalAngle -> 0.0) (original...etc...
	borderWidth: 	1
	borderColor: 	Color transparent
	direction: 	0@15
	distanceVectorToTravel: 	0@15
	levelWorld: 	a BroLevelWorld(2578499)
	tempCenter: 	858@210
	newCenter: 	nil
	collisionPoint: 	nil

BroBall(Morph)>>stepAt:
Receiver: a BroBall(3049761)
Arguments and temporary variables:
millisecondClockValue: 3721755518652
p: nil
Receiver's instance variables:
bounds: 848@200 corner: 868@220
owner: a BroLevelWorld(2578499)
submorphs: {an ImageMorph(1877141)}
fullBounds: 848@200 corner: 868@220
color: Color transparent
extension: a MorphExtension (3754705) [other: (originalAngle -> 0.0) (original...etc...
borderWidth: 1
borderColor: Color transparent
direction: 0@15
distanceVectorToTravel: 0@15
levelWorld: a BroLevelWorld(2578499)
tempCenter: 858@210
newCenter: nil
collisionPoint: nil

StepMessage(MorphicAlarm)>>value:
Receiver: StepMessage(#stepAt: -> a BroBall(3049761))(a BroBall(3049761) #stepAt: 3721755518649)
Arguments and temporary variables:
anArgument: 3721755518652
nArgs: 0
Receiver's instance variables:
receiver: a BroBall(3049761)
selector: #stepAt:
arguments: nil
scheduledTime: 3721755518649
sequenceNumber: nil
numArgs: 1
stepTime: nil

WorldState>>runLocalStepMethodsIn:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
now: 3721755518652
morphToStep: a BroBall(3049761)
stepTime: 20
priorWorld: a PasteUpMorph(2434915) [world]
Receiver's instance variables:
hands: {a HandMorph(1649389)}
activeHand: a HandMorph(1649389)
viewBox: 0@0 corner: 1706@903
canvas: a FormCanvas on: DisplayScreen(1706x903x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a BroLevelView(1290067))(a BroLevelView...etc...
lastStepTime: 3721755538865
lastStepMessage: nil
lastCycleTime: 3721755538886
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3721755538865
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>runStepMethodsIn:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
queue: a SharedQueue(0)
msg: nil
limit: 200
stamp: 3721755518652
Receiver's instance variables:
hands: {a HandMorph(1649389)}
activeHand: a HandMorph(1649389)
viewBox: 0@0 corner: 1706@903
canvas: a FormCanvas on: DisplayScreen(1706x903x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a BroLevelView(1290067))(a BroLevelView...etc...
lastStepTime: 3721755538865
lastStepMessage: nil
lastCycleTime: 3721755538886
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3721755538865
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

PasteUpMorph>>runStepMethods
Receiver: a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables: 
	bounds: 	0@0 corner: 1706@903
	owner: 	nil
	submorphs: 	{a PluggableSystemWindow<MessageNotUnderstood: BroBoundary>>firstInt...etc...
	fullBounds: 	nil
	color: 	(Color r: 0.25 g: 0.258 b: 0.266)
	extension: 	a MorphExtension (4138873) [eventHandler = an EventHandler]  [other:...etc...
	borderWidth: 	0
	borderColor: 	(Color r: 0.515 g: 0.181 b: 0.263)
	presenter: 	an EtoysPresenter (3711479)
	model: 	a MorphicModel(1144767)
	cursor: 	1
	padding: 	3
	backgroundMorph: 	nil
	turtleTrailsForm: 	nil
	turtlePen: 	nil
	lastTurtlePositions: 	nil
	isPartsBin: 	nil
	indicateCursor: 	nil
	wantsMouseOverHalos: 	nil
	worldState: 	a WorldState
	griddingOn: 	nil

WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
capturingGesture: #(false)
Receiver's instance variables:
hands: {a HandMorph(1649389)}
activeHand: a HandMorph(1649389)
viewBox: 0@0 corner: 1706@903
canvas: a FormCanvas on: DisplayScreen(1706x903x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a BroLevelView(1290067))(a BroLevelView...etc...
lastStepTime: 3721755538865
lastStepMessage: nil
lastCycleTime: 3721755538886
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3721755538865
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
Receiver's instance variables:
hands: {a HandMorph(1649389)}
activeHand: a HandMorph(1649389)
viewBox: 0@0 corner: 1706@903
canvas: a FormCanvas on: DisplayScreen(1706x903x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a BroLevelView(1290067))(a BroLevelView...etc...
lastStepTime: 3721755538865
lastStepMessage: nil
lastCycleTime: 3721755538886
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3721755538865
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables: 
	bounds: 	0@0 corner: 1706@903
	owner: 	nil
	submorphs: 	{a PluggableSystemWindow<MessageNotUnderstood: BroBoundary>>firstInt...etc...
	fullBounds: 	nil
	color: 	(Color r: 0.25 g: 0.258 b: 0.266)
	extension: 	a MorphExtension (4138873) [eventHandler = an EventHandler]  [other:...etc...
	borderWidth: 	0
	borderColor: 	(Color r: 0.515 g: 0.181 b: 0.263)
	presenter: 	an EtoysPresenter (3711479)
	model: 	a MorphicModel(1144767)
	cursor: 	1
	padding: 	3
	backgroundMorph: 	nil
	turtleTrailsForm: 	nil
	turtlePen: 	nil
	lastTurtlePositions: 	nil
	isPartsBin: 	nil
	indicateCursor: 	nil
	wantsMouseOverHalos: 	nil
	worldState: 	a WorldState
	griddingOn: 	nil

[] in MorphicProject>>spawnNewProcess
Receiver: a MorphicProject (TopLevel) in a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables: 
	dependents: 	nil
	world: 	a PasteUpMorph(2434915) [world]
	uiManager: 	a MorphicUIManager
	changeSet: 	a ChangeSet named TopLevel
	transcript: 	a TranscriptStream
	parentProject: 	a MorphicProject (TopLevel) in a PasteUpMorph(2434915) [world]
	previousProject: 	nil
	displayDepth: 	32
	viewSize: 	151@132
	thumbnail: 	Form(151x132x32)
	nextProject: 	a MorphicProject (BroBreakout) in a PasteUpMorph<world>(1332917) [...etc...
	projectParameters: 	an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc...
	version: 	nil
	urlList: 	nil
	lastDirectory: 	nil
	lastSavedAtSeconds: 	nil
	projectPreferenceFlagDictionary: 	an IdentityDictionary(#enablePortraitMode->fal...etc...
	resourceManager: 	a ResourceManager
	uiProcess: 	a Process in nil

[] in BlockClosure>>newProcess
Receiver: [closure] in MorphicProject>>spawnNewProcess
Arguments and temporary variables:

Receiver's instance variables: 
	outerContext: 	MorphicProject>>spawnNewProcess
	startpc: 	49
	numArgs: 	0

--- The full stack ---
BroBoundary(Object)>>doesNotUnderstand: #firstIntersectionWithLineFrom:to:
[] in [] in BroBall>>getNearestIntersect
OrderedCollection>>do:
[] in BroBall>>getNearestIntersect
Array(SequenceableCollection)>>do:
BroBall>>getNearestIntersect
BroBall>>calculateNewCenter
BroBall>>step
BroBall(Morph)>>stepAt:
StepMessage(MorphicAlarm)>>value:
WorldState>>runLocalStepMethodsIn:
WorldState>>runStepMethodsIn:
PasteUpMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess

@fniephaus fniephaus added the bug label Dec 9, 2018
@fniephaus
Copy link
Owner

Hi @stephensmith9,
Thanks for opening this issue. Unfortunately, it looks like the Morph infrastructure is currently broken in Squeak, so I'm afraid we need to wait until this is fixed to provide a fix for the game.

Fabio

@stephensmith9
Copy link
Author

Hi Fabio, okay, no worries. Thanks for the reply and for releasing this code. It's a fantastic resource for what can be achieved in Squeak.

@fniephaus
Copy link
Owner

@stephensmith9 thanks! As it turned out, BroBreakout depends on the Connectors package which can be loaded via SqueakMap. I hope to have some time soon to update the project accordingly.

@fniephaus fniephaus self-assigned this Dec 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants