• R/O
  • SSH
  • HTTPS

oricsdk: Commit


Commit MetaInfo

Revision1366 (tree)
Time2016-01-31 22:23:44
Authordbug

Log Message

Source code for the GlobalGameJam 2016 game project.

Change Summary

Incremental Difference

--- users/dbug/games/GlobalGameJam2016/code/buffers.s (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/buffers.s (revision 1366)
@@ -73,14 +73,13 @@
7373 _BufferPicture3 .dsb 8000
7474 _BufferPicture4 .dsb 8000
7575
76+_Font6x6 .dsb LOADER_FONT_6x6_SIZE ;96*6 ; 576 bytes
7677
7778 *=$9800+256
7879
7980 _StdCharset
8081
81- *=$9c00
8282
83-_Font6x6 .dsb 96*6 ; 576 bytes
8483
8584
8685 ; *=$200
--- users/dbug/games/GlobalGameJam2016/code/floppybuilderscript.txt (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/floppybuilderscript.txt (revision 1366)
@@ -21,7 +21,7 @@
2121 DefineDisk 2 42 17 ; 2 sides, 42 tracks, 17 sectors
2222
2323 OutputLayoutFile floppy_description.h
24-OutputFloppyFile ..\build\GlobalGameJam2015.dsk
24+OutputFloppyFile ..\build\GlobalGameJam2016.dsk
2525
2626 ;AddDefine LOADER_SHOW_DEBUGINFO 1
2727 ;AddDefine ENABLE_TIMING_DEBUGGING 1
@@ -72,6 +72,7 @@
7272
7373 AddFile ..\build\files\Font6x6.hir
7474 AddDefine LOADER_FONT_6x6 {FileIndex}
75+AddDefine LOADER_FONT_6x6_SIZE {FileSize}
7576
7677 ;
7778 ; The pictures
@@ -79,74 +80,6 @@
7980 AddFile ..\build\files\GlobalGameJamOslo.hir ; The 240x200 Global Game Jam Oslo logo
8081 AddDefine LOADER_GAMEJAM_LOGO {FileIndex}
8182
82-AddFile ..\build\files\oslo_map.hir [description:Where do you want to go now?] [name:Map of Oslo]
83-AddDefine LOADER_OSLO_MAP {FileIndex}
84-
8583 AddFile ..\build\files\title_screen.hir
8684 AddDefine LOADER_TITLE_SCREEN {FileIndex}
8785
88-AddFile ..\build\files\ending_giveup.hir
89-AddDefine LOADER_ENDING_GIVEUP {FileIndex}
90-
91-AddFile ..\build\files\ending_out_of_money.hir
92-AddDefine LOADER_ENDING_OUT_OF_MONEY {FileIndex}
93-
94-AddFile ..\build\files\ending_out_of_time.hir
95-AddDefine LOADER_ENDING_OUT_OF_TIME {FileIndex}
96-
97-AddFile ..\build\files\ending_victory.hir
98-AddDefine LOADER_ENDING_VICTORY {FileIndex}
99-
100-AddFile ..\build\files\how_to_play.hir
101-AddDefine LOADER_HOW_TO_PLAY {FileIndex}
102-
103-;
104-; Locations, 174x180 pictures
105-;
106-AddFile ..\build\files\location_vigeland.hir [description:The Vigeland Park is the worlds largestsculpture park made by a single artist one of Norway most popular attractions] [name:Vigeland Park]
107-AddDefine LOADER_LOCATION_FIRST {FileIndex}
108-AddDefine LOADER_LOCATION_VIGELAND {FileIndex}
109-
110-AddFile ..\build\files\location_opera.hir [description:The Opera is a weirdly shaped thing in the Oslo harbor] [name:Oslo Opera]
111-AddDefine LOADER_LOCATION_OPERA {FileIndex}
112-
113-AddFile ..\build\files\location_holmenkolen.hir [description:See the famous ski jump] [name:Holmenkolen]
114-AddDefine LOADER_LOCATION_HOLMENKOLEN {FileIndex}
115-
116-AddFile ..\build\files\location_jernbanetorget.hir [description:The Oslo train station is really the city hub] [name:Oslo Sentralstajon]
117-AddDefine LOADER_LOCATION_OSLOS {FileIndex}
118-
119-AddFile ..\build\files\location_akerbrygge.hir [description:Boats, shopping malls, and expensive restaurants] [name:Aker Brygge]
120-AddDefine LOADER_LOCATION_AKERBRYGGE {FileIndex}
121-
122-AddFile ..\build\files\location_kingscastle.hir [description:Where the royal familly lives] [name:The Royal Palace]
123-AddDefine LOADER_LOCATION_KINGCASTLE {FileIndex}
124-
125-AddFile ..\build\files\location_sognsvann.hir [description:A nice lake, you can swim and take a walk] [name:Sognsvann]
126-AddDefine LOADER_LOCATION_SOGNSVANN {FileIndex}
127-
128-AddFile ..\build\files\location_vikingship_museum.hir [description:Hosts three nice viking ships] [name:Viking Ship Museum]
129-AddDefine LOADER_LOCATION_VIKINGSHIP {FileIndex}
130-
131-AddFile ..\build\files\location_munch_museum.hir [description:The Scream is there, among many other paintings] [name:Munch Museum]
132-AddDefine LOADER_LOCATION_MUNCHMUSEUM {FileIndex}
133-
134-AddFile ..\build\files\location_ibsen_museum.hir [description:Ibsen, famous Norwegian writter] [name:Ibsen Museum]
135-AddDefine LOADER_LOCATION_IBSENMUSEUM {FileIndex}
136-
137-AddFile ..\build\files\location_norwegian_folk_museum.hir [description:Many interesting things to see there, including a beautiful stave church builtin the early 13th century] [name:Norwegian Folk Museum]
138-AddDefine LOADER_LOCATION_NORWEGIANFOLK {FileIndex}
139-
140-AddFile ..\build\files\location_kon_tiki_museum.hir [description:Learn about Thor Heyerdahl's expedition] [name:Kon-Tiki museum]
141-AddDefine LOADER_LOCATION_KONTIKI {FileIndex}
142-
143-AddFile ..\build\files\location_akershus_fortress.hir [description:The Oslo fortress, protecting from invaders comming by boat] [name:Akershus Fortress]
144-AddDefine LOADER_LOCATION_AKERSHUS {FileIndex}
145-
146-AddFile ..\build\files\location_national_gallery.hir [description:The other place where you can see the Scream. For free] [name:National Gallery]
147-AddDefine LOADER_LOCATION_NATIONALGALLERY {FileIndex}
148-
149-AddFile ..\build\files\location_natural_history_museum.hir [description:Dinosaurs and old stuff :)] [name:Natural History Museum]
150-AddDefine LOADER_LOCATION_NATURALHISTORY {FileIndex}
151-AddDefine LOADER_LOCATION_LAST {FileIndex}
152-
--- users/dbug/games/GlobalGameJam2016/code/game.s (nonexistent)
+++ users/dbug/games/GlobalGameJam2016/code/game.s (revision 1366)
@@ -0,0 +1,698 @@
1+
2+;#include "loader_api.h"
3+
4+ .zero
5+
6+selected_option .dsb 1
7+selected_offset .dsb 1 ; 0, 40 or 80
8+
9+day_of_the_week .dsb 2
10+
11+ .text
12+
13+#define SET_DAY(message) lda #<message:sta day_of_the_week+0:lda #>message:sta day_of_the_week+1
14+
15+#define PRINT_HIRES(message) lda #0:sta _PrintHiresX:lda #<message:sta _PrintMessagePtr+0:lda #>message:sta _PrintMessagePtr+1:jsr _PrintTextHires
16+#define PRINT_TEXT(message) lda #0:sta _PrintScreenX:lda #<message:sta _PrintMessagePtr+0:lda #>message:sta _PrintMessagePtr+1:jsr _PrintSelectedText
17+
18+
19+
20+_WaitOneSecond
21+.(
22+ pha
23+ txa
24+ pha
25+ ldx #50
26+loop
27+ jsr _VSync
28+ dex
29+ bne loop
30+
31+ pla
32+ tax
33+ pla
34+ rts
35+.)
36+
37+_WaitThreeSeconds
38+ rts ; ----------- comment out in final version
39+ jsr _WaitOneSecond
40+ jsr _WaitOneSecond
41+ jsr _WaitOneSecond
42+ rts
43+
44+
45+_GameStart
46+.(
47+ ;jmp sunday
48+
49+monday
50+ SET_DAY(_MessageMonday)
51+ jsr _OfficeDay
52+
53+tuesday
54+ SET_DAY(_MessageTuesday)
55+ jsr _HomeOfficeDay
56+
57+wednesday
58+ SET_DAY(_MessageWednesday)
59+ jsr _OfficeDay
60+
61+thursday
62+ SET_DAY(_MessageThursday)
63+ jsr _HomeOfficeDay
64+
65+friday
66+ SET_DAY(_MessageFriday)
67+ jsr _OfficeDay
68+
69+saturday
70+ SET_DAY(_MessageSaturday)
71+ jsr _Saturday
72+
73+sunday
74+ SET_DAY(_MessageSunday)
75+ jsr _Sunday
76+
77+ jmp _GameStart
78+.)
79+
80+_DayIntroSequence
81+ jsr _WaitThreeSeconds
82+ jsr _LoadTitleScreen
83+
84+ lda #0
85+ sta _PrintHiresX
86+ lda day_of_the_week+0
87+ sta _PrintMessagePtr+0
88+ lda day_of_the_week+1
89+ sta _PrintMessagePtr+1
90+ jsr _PrintTextHires
91+
92+ jsr _WaitOneSecond
93+ rts
94+
95+_DayEndSequence
96+ PRINT_HIRES(_MessageBedTime)
97+ jsr _WaitThreeSeconds
98+
99+ ldx #32
100+loop_scrollout
101+ jsr _ScrollUpHires
102+ dex
103+ bne loop_scrollout
104+ rts
105+
106+_BadChoiceSequence
107+ PRINT_HIRES(_MessageBadChoice)
108+ jsr _WaitOneSecond
109+ jsr _WaitOneSecond
110+ jsr _WaitOneSecond
111+ rts
112+
113+
114+_Saturday
115+ jsr _DayIntroSequence
116+ PRINT_HIRES(_MessageSaturdaySummary)
117+ jsr _WaitOneSecond
118+ jsr _WaitOneSecond
119+ jsr _WaitOneSecond
120+
121+ jsr _DayEndSequence
122+ rts
123+
124+_Sunday
125+ jsr _DayIntroSequence
126+ PRINT_HIRES(_MessageSundaySummary)
127+ jsr _WaitOneSecond
128+ jsr _WaitOneSecond
129+ jsr _WaitOneSecond
130+ jsr _DayEndSequence
131+ rts
132+
133+; --------------------------------------------------------------------------
134+; ------------------------------------- Home Office Day
135+; --------------------------------------------------------------------------
136+_HomeOfficeDay
137+.(
138+ ;jmp choice_morning_computer_switch
139+ jsr _DayIntroSequence
140+
141+wake_up
142+.(
143+ PRINT_HIRES(_MessageNewDayStarts)
144+ jsr _WaitOneSecond
145+ jsr _WhatWouldMickaeldo
146+ PRINT_TEXT(_MessageSnooze)
147+ PRINT_TEXT(_MessageLeaveTheBed)
148+ PRINT_TEXT(_MessageCallSick)
149+ jsr _SelectOption
150+ lda selected_option
151+ cmp #0
152+ beq bad_choice_1
153+ cmp #2
154+ beq bad_choice_2
155+ jmp good_choice
156+bad_choice_1
157+ PRINT_HIRES(_MessageSnoozeError)
158+ jsr _BadChoiceSequence
159+ jmp _HomeOfficeDay
160+bad_choice_2
161+ PRINT_HIRES(_MessageCallSickError)
162+ jsr _BadChoiceSequence
163+ jmp _HomeOfficeDay
164+good_choice
165+.)
166+; -------------------------------------------
167+choice_leave_bed
168+.(
169+ PRINT_HIRES(_MessageWokenUp)
170+ jsr _WhatWouldMickaeldo
171+ PRINT_TEXT(_MessageSwitchOnComputer)
172+ PRINT_TEXT(_MessageHaveBreakfast)
173+ PRINT_TEXT(_MessageTakeShower)
174+ jsr _SelectOption
175+ lda selected_option
176+ cmp #1
177+ beq bad_choice_1
178+ cmp #2
179+ beq bad_choice_2
180+ jmp good_choice
181+bad_choice_1
182+ PRINT_HIRES(_MessageHomeBreakfastError)
183+ jsr _BadChoiceSequence
184+ jmp _HomeOfficeDay
185+bad_choice_2
186+ PRINT_HIRES(_MessageShowerError)
187+ jsr _BadChoiceSequence
188+ jmp _HomeOfficeDay
189+good_choice
190+.)
191+
192+; -------------------------------------------
193+#if 0
194+choice_morning_computer_switch
195+.(
196+ PRINT_HIRES(_MessageHomeOfficeDone)
197+ jsr _WhatWouldMickaeldo
198+ PRINT_TEXT(_MessageSwitchOnComputer)
199+ PRINT_TEXT(_MessageHaveBreakfast)
200+ PRINT_TEXT(_MessageTakeShower)
201+ jsr _SelectOption
202+ lda selected_option
203+ cmp #1
204+ beq bad_choice_1
205+ cmp #2
206+ beq bad_choice_2
207+ jmp good_choice
208+bad_choice_1
209+ PRINT_HIRES(_MessageShowerError)
210+ jsr _BadChoiceSequence
211+ jmp _HomeOfficeDay
212+bad_choice_2
213+ PRINT_HIRES(_MessageHomeBreakfastError)
214+ jsr _BadChoiceSequence
215+ jmp _HomeOfficeDay
216+good_choice
217+.)
218+#endif
219+; -------------------------------------------
220+choice_work_all_day
221+; -------------------------------------------
222+at_home
223+.(
224+ PRINT_HIRES(_MessageHomeOfficeDone)
225+ jsr _WhatWouldMickaeldo
226+ PRINT_TEXT(_MessagePizza)
227+ PRINT_TEXT(_MessageNapTime)
228+ PRINT_TEXT(_MessageComputerTime)
229+ jsr _SelectOption
230+ lda selected_option
231+ cmp #0
232+ beq bad_choice_1
233+ cmp #2
234+ beq bad_choice_2
235+ jmp good_choice
236+bad_choice_1
237+ PRINT_HIRES(_MessagePizzaErrors)
238+ jsr _BadChoiceSequence
239+ jmp _HomeOfficeDay
240+bad_choice_2
241+ PRINT_HIRES(_MessageComputerTimeError)
242+ jsr _BadChoiceSequence
243+ jmp _HomeOfficeDay
244+good_choice
245+.)
246+
247+; -------------------------------------------
248+after_dinner
249+.(
250+ PRINT_HIRES(_MessageFeelingBetter)
251+ jsr _WhatWouldMickaeldo
252+ PRINT_TEXT(_MessageTvDinner)
253+ PRINT_TEXT(_MessageInstagram)
254+ PRINT_TEXT(_MessageCallMyParents)
255+ jsr _SelectOption
256+ lda selected_option
257+ cmp #1
258+ beq bad_choice_1
259+ cmp #2
260+ beq bad_choice_2
261+ jmp good_choice
262+bad_choice_1
263+ PRINT_HIRES(_MessageInstagramError)
264+ jsr _BadChoiceSequence
265+ jmp _HomeOfficeDay
266+bad_choice_2
267+ PRINT_HIRES(_MessageCallMyParentsErrors)
268+ jsr _BadChoiceSequence
269+ jmp _HomeOfficeDay
270+good_choice
271+.)
272+
273+; -------------------------------------------------
274+evening_rituals
275+.(
276+ PRINT_HIRES(_MessageEveningRituals)
277+ jsr _WhatWouldMickaeldo
278+ PRINT_TEXT(_MessageComputerMMO)
279+ PRINT_TEXT(_MessageComputerSocial)
280+ PRINT_TEXT(_MessageComputerDefenceForce)
281+ jsr _SelectOption
282+ lda selected_option
283+ cmp #0
284+ beq bad_choice_1
285+ cmp #1
286+ beq bad_choice_2
287+ jmp good_choice
288+bad_choice_1
289+ PRINT_HIRES(_MessageComputerMMOError)
290+ jsr _BadChoiceSequence
291+ jmp _HomeOfficeDay
292+bad_choice_2
293+ PRINT_HIRES(_MessageComputerSocialError)
294+ jsr _BadChoiceSequence
295+ jmp _HomeOfficeDay
296+good_choice
297+.)
298+
299+
300+ jsr _DayEndSequence
301+ rts
302+.)
303+
304+
305+; --------------------------------------------------------------------------
306+; ------------------------------------- A new day in the office
307+; --------------------------------------------------------------------------
308+_OfficeDay
309+.(
310+ ;jmp wake_up
311+ ;jmp choise_leave_bed
312+ ;jmp choice_take_shower
313+ ;jmp take_the_metro
314+ ;jmp take_the_bus
315+ ;jmp at_the_office
316+ ;jmp after_the_office
317+ ;jmp at_home
318+ ;jmp after_dinner
319+ ;jmp evening_rituals
320+
321+ jsr _DayIntroSequence
322+
323+wake_up
324+.(
325+ PRINT_HIRES(_MessageNewDayStarts)
326+ jsr _WaitOneSecond
327+ jsr _WhatWouldMickaeldo
328+ PRINT_TEXT(_MessageSnooze)
329+ PRINT_TEXT(_MessageLeaveTheBed)
330+ PRINT_TEXT(_MessageCallSick)
331+ jsr _SelectOption
332+ lda selected_option
333+ cmp #0
334+ beq bad_choice_1
335+ cmp #2
336+ beq bad_choice_2
337+ jmp good_choice
338+bad_choice_1
339+ PRINT_HIRES(_MessageSnoozeError)
340+ jsr _BadChoiceSequence
341+ jmp _OfficeDay
342+bad_choice_2
343+ PRINT_HIRES(_MessageCallSickError)
344+ jsr _BadChoiceSequence
345+ jmp _OfficeDay
346+good_choice
347+.)
348+
349+; -------------------------------------------
350+choise_leave_bed
351+.(
352+ PRINT_HIRES(_MessageWokenUp)
353+ jsr _WhatWouldMickaeldo
354+ PRINT_TEXT(_MessageSwitchOnComputer)
355+ PRINT_TEXT(_MessageHaveBreakfast)
356+ PRINT_TEXT(_MessageTakeShower)
357+ jsr _SelectOption
358+ lda selected_option
359+ cmp #0
360+ beq bad_choice_1
361+ cmp #1
362+ beq bad_choice_2
363+ jmp good_choice
364+bad_choice_1
365+ PRINT_HIRES(_MessageSwitchOnComputerError)
366+ jsr _BadChoiceSequence
367+ jmp _OfficeDay
368+bad_choice_2
369+ PRINT_HIRES(_MessageHaveBreakfastError)
370+ jsr _BadChoiceSequence
371+ jmp _OfficeDay
372+good_choice
373+.)
374+
375+; -------------------------------------------
376+choice_take_shower
377+.(
378+ PRINT_HIRES(_MessageClean)
379+ jsr _WhatWouldMickaeldo
380+ PRINT_TEXT(_MessageTakeTheMetro)
381+ PRINT_TEXT(_MessageWalkToTheOffice)
382+ PRINT_TEXT(_MessageTakeTheCar)
383+ jsr _SelectOption
384+ lda selected_option
385+ cmp #1
386+ beq bad_choice_1
387+ cmp #2
388+ beq bad_choice_2
389+ jmp good_choice
390+bad_choice_1
391+ PRINT_HIRES(_MessageWalkToTheOfficeError)
392+ jsr _BadChoiceSequence
393+ jmp _OfficeDay
394+bad_choice_2
395+ PRINT_HIRES(_MessageTakeTheCarError)
396+ jsr _BadChoiceSequence
397+ jmp _OfficeDay
398+good_choice
399+.)
400+
401+; -------------------------------------------
402+take_the_metro
403+.(
404+ PRINT_HIRES(_MessageMetroSitting)
405+ jsr _WhatWouldMickaeldo
406+ PRINT_TEXT(_MessageSitFront)
407+ PRINT_TEXT(_MessageSitMiddle)
408+ PRINT_TEXT(_MessageSitBack)
409+ jsr _SelectOption
410+ lda selected_option
411+ cmp #0
412+ beq bad_choice_1
413+ cmp #1
414+ beq bad_choice_2
415+ jmp good_choice
416+bad_choice_1
417+ PRINT_HIRES(_MessageSitError)
418+ jsr _BadChoiceSequence
419+ jmp _OfficeDay
420+bad_choice_2
421+ PRINT_HIRES(_MessageSitError)
422+ jsr _BadChoiceSequence
423+ jmp _OfficeDay
424+good_choice
425+.)
426+
427+; -------------------------------------------
428+take_the_bus
429+.(
430+ PRINT_HIRES(_MessageWhichBus)
431+ jsr _WhatWouldMickaeldo
432+ PRINT_TEXT(_MessageTramway)
433+ PRINT_TEXT(_MessageBus31)
434+ PRINT_TEXT(_MessageBus36)
435+ jsr _SelectOption
436+ lda selected_option
437+ cmp #0
438+ beq bad_choice_1
439+ cmp #2
440+ beq bad_choice_2
441+ jmp good_choice
442+bad_choice_1
443+ PRINT_HIRES(_MessageTramwayError)
444+ jsr _BadChoiceSequence
445+ jmp _OfficeDay
446+bad_choice_2
447+ PRINT_HIRES(_MessageBus36Error)
448+ jsr _BadChoiceSequence
449+ jmp _OfficeDay
450+good_choice
451+.)
452+
453+; -------------------------------------------
454+at_the_office
455+.(
456+ PRINT_HIRES(_MessageOffice)
457+ jsr _WhatWouldMickaeldo
458+ PRINT_TEXT(_MessageMailAndBreakfast)
459+ PRINT_TEXT(_MessageBreakTheBuild)
460+ PRINT_TEXT(_MessagePranks)
461+ jsr _SelectOption
462+ lda selected_option
463+ cmp #1
464+ beq bad_choice_1
465+ cmp #2
466+ beq bad_choice_2
467+ jmp good_choice
468+bad_choice_1
469+ PRINT_HIRES(_MessageBreakTheBuildErrors)
470+ jsr _BadChoiceSequence
471+ jmp _OfficeDay
472+bad_choice_2
473+ PRINT_HIRES(_MessagePranksErrors)
474+ jsr _BadChoiceSequence
475+ jmp _OfficeDay
476+good_choice
477+.)
478+
479+; -------------------------------------------
480+after_the_office
481+.(
482+ PRINT_HIRES(_MessageOfficeDone)
483+ jsr _WhatWouldMickaeldo
484+ PRINT_TEXT(_MessagePartyTime)
485+ PRINT_TEXT(_MessageGoHome)
486+ PRINT_TEXT(_MessageOvertime)
487+ jsr _SelectOption
488+ lda selected_option
489+ cmp #0
490+ beq bad_choice_1
491+ cmp #2
492+ beq bad_choice_2
493+ jmp good_choice
494+bad_choice_1
495+ PRINT_HIRES(_MessagePartyTimeErrors)
496+ jsr _BadChoiceSequence
497+ jmp _OfficeDay
498+bad_choice_2
499+ PRINT_HIRES(_MessageOvertimeErrors)
500+ jsr _BadChoiceSequence
501+ jmp _OfficeDay
502+good_choice
503+.)
504+
505+; -------------------------------------------
506+at_home
507+.(
508+ PRINT_HIRES(_MessageAtHome)
509+ jsr _WhatWouldMickaeldo
510+ PRINT_TEXT(_MessagePizza)
511+ PRINT_TEXT(_MessageNapTime)
512+ PRINT_TEXT(_MessageComputerTime)
513+ jsr _SelectOption
514+ lda selected_option
515+ cmp #0
516+ beq bad_choice_1
517+ cmp #2
518+ beq bad_choice_2
519+ jmp good_choice
520+bad_choice_1
521+ PRINT_HIRES(_MessagePizzaErrors)
522+ jsr _BadChoiceSequence
523+ jmp _OfficeDay
524+bad_choice_2
525+ PRINT_HIRES(_MessageComputerTimeError)
526+ jsr _BadChoiceSequence
527+ jmp _OfficeDay
528+good_choice
529+.)
530+
531+; -------------------------------------------
532+after_dinner
533+.(
534+ PRINT_HIRES(_MessageFeelingBetter)
535+ jsr _WhatWouldMickaeldo
536+ PRINT_TEXT(_MessageTvDinner)
537+ PRINT_TEXT(_MessageInstagram)
538+ PRINT_TEXT(_MessageCallMyParents)
539+ jsr _SelectOption
540+ lda selected_option
541+ cmp #1
542+ beq bad_choice_1
543+ cmp #2
544+ beq bad_choice_2
545+ jmp good_choice
546+bad_choice_1
547+ PRINT_HIRES(_MessageInstagramError)
548+ jsr _BadChoiceSequence
549+ jmp _OfficeDay
550+bad_choice_2
551+ PRINT_HIRES(_MessageCallMyParentsErrors)
552+ jsr _BadChoiceSequence
553+ jmp _OfficeDay
554+good_choice
555+.)
556+
557+; -------------------------------------------------
558+evening_rituals
559+.(
560+ PRINT_HIRES(_MessageEveningRituals)
561+ jsr _WhatWouldMickaeldo
562+ PRINT_TEXT(_MessageComputerMMO)
563+ PRINT_TEXT(_MessageComputerSocial)
564+ PRINT_TEXT(_MessageComputerDefenceForce)
565+ jsr _SelectOption
566+ lda selected_option
567+ cmp #0
568+ beq bad_choice_1
569+ cmp #1
570+ beq bad_choice_2
571+ jmp good_choice
572+bad_choice_1
573+ PRINT_HIRES(_MessageComputerMMOError)
574+ jsr _BadChoiceSequence
575+ jmp _OfficeDay
576+bad_choice_2
577+ PRINT_HIRES(_MessageComputerSocialError)
578+ jsr _BadChoiceSequence
579+ jmp _OfficeDay
580+good_choice
581+.)
582+
583+
584+ jsr _DayEndSequence
585+ rts
586+.)
587+
588+_WhatWouldMickaeldo
589+ jsr _WaitThreeSeconds
590+ PRINT_HIRES(_MessagePlayerChoice)
591+ jsr _WaitThreeSeconds
592+ rts
593+
594+_SelectOption
595+.(
596+ lda #0
597+ sta selected_option
598+loop
599+ ; Select based on choice
600+ ldx selected_option
601+ beq selectFirst
602+ dex
603+ beq selectSecond
604+ bne selectThird
605+
606+display
607+ sta $bb80+40*25
608+ stx $bb80+40*26
609+ sty $bb80+40*27
610+
611+ ; Hack to get a null terminator...
612+ lda #0
613+ sta $bb80+40*25+39
614+ sta $bb80+40*26+39
615+ sta $bb80+40*27+39
616+
617+_ReadKeyboard
618+ jsr _WaitNoKeyPressed
619+waitKey
620+ lda _KeyboardStateMemorized
621+ beq waitKey
622+ lsr
623+ lsr
624+ lsr
625+ bcs up
626+ lsr
627+ bcs down
628+ lsr
629+ bcs select
630+ jmp loop
631+
632+selectFirst
633+ lda #0
634+ sta selected_offset
635+ lda #16+1
636+ ldx #16+0
637+ ldy #16+0
638+ jmp display
639+
640+selectSecond
641+ lda #40
642+ sta selected_offset
643+ lda #16+0
644+ ldx #16+1
645+ ldy #16+0
646+ jmp display
647+
648+selectThird
649+ lda #80
650+ sta selected_offset
651+ lda #16+0
652+ ldx #16+0
653+ ldy #16+1
654+ jmp display
655+
656+up
657+ dec selected_option
658+ bpl done_up
659+ ldx #2
660+ stx selected_option
661+done_up
662+ jmp loop
663+
664+down
665+ ldx selected_option
666+ inx
667+ cpx #3
668+ bne done_down
669+ ldx #0
670+done_down
671+ stx selected_option
672+ jmp loop
673+
674+select
675+ ; Copy the selected message to the history log
676+ clc
677+ lda #<$bb80+40*25+1
678+ adc selected_offset
679+ sta _PrintMessagePtr+0
680+ lda #>$bb80+40*25+1
681+ adc #0
682+ sta _PrintMessagePtr+1:
683+
684+ ldx #0
685+ stx _PrintHiresX
686+ jsr _PrintTextHiresNoScroll
687+
688+ jsr _EraseTextArea
689+ rts
690+
691+.)
692+
693+
694+
695+
696+
697+_LoopForever
698+ jmp _LoopForever
--- users/dbug/games/GlobalGameJam2016/code/irq.s (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/irq.s (revision 1366)
@@ -109,8 +109,13 @@
109109 ; key_down=8,
110110 ; key_fire= 16
111111
112+_WaitNoKeyPressed
113+ lda _KeyboardState
114+ bne _WaitNoKeyPressed
115+ lda #0
116+ sta _KeyboardStateMemorized
117+ rts
112118
113-
114119 _ReadKeyboard
115120 lda #00
116121 sta _KeyboardState
--- users/dbug/games/GlobalGameJam2016/code/main.c (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/main.c (revision 1366)
@@ -1,678 +1,36 @@
11 //
2-// Global Game Jam 2015
3-// (c) 2015 Mickael Pointier and Funcom
2+// Global Game Jam 2016
3+// (c) 2016 Mickael Pointier
44 //
55
66 #include <lib.h>
77
8-#include "defines.h"
98 #include "loader_api.h"
109
11-// irq.s
1210 extern void System_InstallIRQ_SimpleVbl();
13-extern void VSync();
14-extern void Stop();
15-extern unsigned char KeyboardState;
16-extern unsigned char KeyboardStateMemorized;
17-
18-// buffer.s
1911 extern unsigned char Font6x6[];
2012
21-extern unsigned char TableDivBy6[];
22-extern unsigned char TableModulo6[];
2313
24-extern char BufferPicture1[];
25-extern char BufferPicture2[];
26-extern char BufferPicture3[];
27-extern char BufferPicture4[];
28-
29-
30-extern void InitializeTables();
31-
32-// screen.s
33-extern unsigned char OsloLocation;
34-extern unsigned char ShowingOsloMap;
35-extern unsigned char NextLocation;
36-extern unsigned char AvailableActions;
37-extern unsigned char CurrentMenuAction;
38-extern unsigned char GameOver;
39-
40-extern unsigned char VisitedLocations[];
41-
42-
43-// messages.s
44-extern char* PrintScreenPtr;
45-extern char* PrintMessagePtr;
46-extern char MessagePressFireToStart[];
47-extern char MessageGameMenu[];
48-extern char MessageTodayBestScores[];
49-extern char MessageGameStory[];
50-
51-extern char MessageCurrentLocation[];
52-extern char MessageNextLocation[];
53-extern char MessageAlreadyVisited[];
54-
55-extern char MessageCopyright[];
56-
57-
58-//extern char MessagePlace_Viggeland[];
59-
60-
61-
62- char* screen;
63- char* picture;
64- int x,y;
65-
66-
67-
68-void Pause(int delay)
14+void LoadTitleScreen()
6915 {
70- int i;
71-
72- for (i=0;i<delay;i++)
73- {
74- VSync();
75- }
16+ LoadFileAt(LOADER_TITLE_SCREEN,0xa000);
7617 }
7718
7819
79-void PauseCheckKeyboard(int delay)
80-{
81- int i;
82-
83- for (i=0;i<delay;i++)
84- {
85- if (KeyboardStateMemorized & 16)
86- {
87- return;
88- }
89- VSync();
90- }
91-}
92-
93-
94-char IsHires=1;
95-
96-void EraseBottomTextArea()
97-{
98- memset((unsigned char*)0xbb80+40*25,32,40*3);
99-}
100-
101-void EraseAllHires()
102-{
103- memset((unsigned char*)0xa000,64,40*200);
104-}
105-
106-void SwitchToText()
107-{
108- if (IsHires)
109- {
110- // If not in TEXT; we need to switch from HIRES to TEXT
111- memset((unsigned char*)0xa000,0,40*200); // Clear the entire HIRES area with black ink
112- poke((char*)0xbfdf,26); // 50hz Text attribute
113- VSync();
114- VSync();
115- memcpy((unsigned char*)0xb400,(unsigned char*)0x9800,0xbb80-0xb400); // Move the charsets from BOTTOM to TOP
116- memset((unsigned char*)0xbb80,32,40*25); // Fill the entire HIRES area with spaces
117- }
118- IsHires=0;
119-}
120-
121-void SwitchToHires()
122-{
123- if (!IsHires)
124- {
125- // If not in HIRES; we need to switch from TEXT to HIRES
126- memcpy((unsigned char*)0x9800,(unsigned char*)0xb400,0xbb80-0xb400); // Move the charsets from TOP to BOTTOM
127- memset((unsigned char*)0xa000,0,40*200); // Clear the entire HIRES area with black ink
128- poke((char*)0xbfdf,30); // 50hz Graphics attribute
129- VSync();
130- VSync();
131- memset((unsigned char*)0xa000,64,40*200); // Fill the entire HIRES area with neutral 64 value
132- }
133- IsHires=1;
134- InitialiseFontColors(); // Hack to get the color attributes inside the first bytes of the font so I get colors in HIRES
135-}
136-
137-
138-//
139-// The menu is shown in TEXT mode
140-//
141-void ShowGameMenu()
142-{
143- SwitchToText();
144-
145- strcpy((char*)0xbb80+40*5+9,MessageGameMenu);
146-
147-
148- Pause(50);
149-
150- SwitchToHires();
151-}
152-
153-
154-//
155-// People are always happy to see their best scores
156-//
157-void ShowHighScoreTable()
158-{
159- SwitchToText();
160-
161- strcpy((char*)0xbb80+40*5+9,MessageTodayBestScores);
162-
163- if (!(KeyboardStateMemorized & 16)) PauseCheckKeyboard(50*2);
164-}
165-
166-
167-
168-void ShowStoryPage()
169-{
170- SwitchToHires();
171-
172- InitTransitionDataBuffer4();
173- PictureTransitionVenicianStore();
174-
175- if (!(KeyboardStateMemorized & 16)) PauseCheckKeyboard(50*12);
176-}
177-
178-void ShowGameJamLogo()
179-{
180- SwitchToHires();
181-
182- InitTransitionDataBuffer1();
183- PictureTransitionUnroll();
184-
185- if (!(KeyboardStateMemorized & 16)) PauseCheckKeyboard(50*2);
186-}
187-
188-
189-void UpdateClockDisplay()
190-{
191- ShowTimeOfTheDay();
192-}
193-
194-
195-
196-
197-void ShowMockupUi()
198-{
199- SwitchToHires();
200-
201- // Place description at the bottom
202- EraseBottomTextArea();
203-
204- // Date at the top
205- screen=(char*)0xa000;
206- memset(screen,(16+4)|128,40);
207- screen+=40;
208- for (y=0;y<8;y++)
209- {
210- memset(screen,64,29);
211- screen+=40;
212- }
213- memset(screen,(16+4)|128,29);
214- screen+=40;
215- ShowTimeOfTheDay();
216-
217- // Options at the right
218- screen=(char*)0xa000+40;
219- for (y=0;y<198;y++)
220- {
221- screen[29]=(16+4)|128;
222- screen[30]=6;
223- memset(screen+31,64,9);
224- screen+=40;
225- }
226- ShowPlayerStatus();
227-
228- // Name of the place at the bottom
229- screen=(char*)0xa000+40*190;
230- memset(screen,(16+4)|128,29);
231- screen+=40;
232- for (y=0;y<8;y++)
233- {
234- screen[0]=16+4;
235- screen[1]=6;
236- memset(screen+2,64,27);
237- screen+=40;
238- }
239- memset(screen,(16+4)|128,40);
240-
241- if (ShowingOsloMap)
242- {
243- LoaderApiEntryIndex=LOADER_OSLO_MAP;
244- }
245- else
246- {
247- LoaderApiEntryIndex=OsloLocation;
248- //ShowActionMenu();
249- }
250-
251- // Picture at the center
252- //LoaderApiEntryIndex=OsloLocation;
253- LoadFileAt(LoaderApiEntryIndex,BufferPicture1);
254-
255- screen=(char*)0xa000+40*10;
256- picture=BufferPicture1;
257- for (y=0;y<180;y++)
258- {
259- memcpy(screen,picture,29);
260- screen+=40;
261- picture+=29;
262- }
263-
264- // Description of the place at the bottom
265- //LoaderApiEntryIndex=OsloLocation;
266- PrintScreenPtr=(char*)0xbb80+40*25;
267- PrintText();
268-
269- // Name of the place
270- //LoaderApiEntryIndex=OsloLocation;
271- PrintScreenPtr=(char*)0xa000+40*191+2;
272- PrintHires();
273-
274- if (ShowingOsloMap)
275- {
276- //_MessageCurrentLocation .byt "Current Location:",0
277- //_MessageNextLocation .byt "Now, go to:",0
278- PrintMessagePtr=MessageCurrentLocation;
279- PrintScreenPtr=(char*)0xbb80+40*26;
280- PrintSelectedText();
281-
282- LoaderApiEntryIndex=OsloLocation;
283- PrintLocationText();
284- }
285-
286- //Pause(50*2);
287-}
288-
289-
290-void ShowNextLocation()
291-{
292- PrintMessagePtr=MessageNextLocation;
293- PrintScreenPtr=(char*)0xbb80+40*27;
294- PrintSelectedText();
295-
296- LoaderApiEntryIndex=NextLocation;
297- PrintLocationText();
298-
299- // Display if the place was already visited or not
300- if (VisitedLocations[NextLocation-LOADER_LOCATION_FIRST])
301- {
302- PrintMessagePtr=MessageAlreadyVisited;
303- PrintSelectedText();
304- }
305-
306- PrintScreenPtr[0]=0; // Black attribute at the end of the location text
307-}
308-
309-
310-void ChooseLocation()
311-{
312- ShowingOsloMap=1;
313- NextLocation=OsloLocation;
314- ShowMockupUi();
315- ShowNextLocation();
316- // Anti bounce
317- while (KeyboardState) {}
318- do
319- {
320- if (KeyboardState&(MOVEMENT_LEFT|MOVEMENT_UP))
321- {
322- NextLocation--;
323- if (NextLocation<LOADER_LOCATION_FIRST)
324- {
325- NextLocation=LOADER_LOCATION_LAST-1;
326- }
327- ShowNextLocation();
328- // Anti bounce
329- while (KeyboardState) {}
330- }
331- else
332- if (KeyboardState&(MOVEMENT_RIGHT|MOVEMENT_DOWN))
333- {
334- NextLocation++;
335- if (NextLocation>=LOADER_LOCATION_LAST)
336- {
337- NextLocation=LOADER_LOCATION_FIRST;
338- }
339- ShowNextLocation();
340- // Anti bounce
341- while (KeyboardState) {}
342- }
343-
344- ShowLocationTarget(); // Temp
345- VSync();
346- VSync();
347- ShowLocationTarget(); // Temp
348- VSync();
349- VSync();
350-
351- //DecrementMoney(); // Test
352- }
353- while ( (!(KeyboardState&MOVEMENT_FIRE)) && (!GameOver));
354-
355- ShowingOsloMap=0;
356-
357- //
358- // New destination selected
359- //
360- if (NextLocation!=OsloLocation)
361- {
362- // The new destination is different from the current one,
363- // we need to display the transportation mode to go from point A to point B
364- MoveToNewLocation();
365- }
366-}
367-
368-
369-
370-void ManageLocation()
371-{
372- while (1)
373- {
374- // Set the list of available options for the player in the menu
375- GetPossibleActionsForLocation();
376- //AvailableActions=255;
377- CurrentMenuAction=0;
378-
379- ShowMockupUi();
380-
381- while (KeyboardState) {}
382-
383- LoaderApiEntryIndex=OsloLocation;
384- ShowActionMenu();
385-
386- do
387- {
388- //IncrementTime();
389- UpdateClockDisplay();
390- VSync();
391-
392- if (KeyboardState&(MOVEMENT_LEFT|MOVEMENT_UP))
393- {
394- do
395- {
396- CurrentMenuAction=(CurrentMenuAction-1)&7;
397- }
398- while (!(AvailableActions & (1<<CurrentMenuAction)));
399-
400- LoaderApiEntryIndex=OsloLocation;
401- ShowActionMenu();
402- // Anti bounce
403- while (KeyboardState) {}
404- }
405- else
406- if (KeyboardState&(MOVEMENT_RIGHT|MOVEMENT_DOWN))
407- {
408- do
409- {
410- CurrentMenuAction=(CurrentMenuAction+1)&7;
411- }
412- while (!(AvailableActions & (1<<CurrentMenuAction)));
413-
414- LoaderApiEntryIndex=OsloLocation;
415- ShowActionMenu();
416- // Anti bounce
417- while (KeyboardState) {}
418- }
419- }
420- while ( (!(KeyboardState&MOVEMENT_FIRE)) && (!GameOver));
421-
422- // Check the selected options
423- if (CurrentMenuAction==ACTION_GIVE_UP)
424- {
425- GameOver=GAMEOVER_GAVEUP;
426- }
427- else
428- if (CurrentMenuAction==ACTION_BUY_PASS)
429- {
430- BuyOsloPass();
431- }
432- else
433- if (CurrentMenuAction==ACTION_DISCOVER)
434- {
435- VisitLocation();
436- }
437- else
438- if (CurrentMenuAction==ACTION_LEAVE)
439- {
440- // We go to the location selection screen
441- return;
442- }
443- else
444- if (CurrentMenuAction==ACTION_AIRPORT)
445- {
446- // We go to the location selection screen
447- GameOver=GAMEOVER_VICTORY;
448- return;
449- }
450-
451- if (GameOver)
452- {
453- return;
454- }
455- }
456-}
457-
458-
459-void ShowTitleScreen()
460-{
461- SwitchToHires();
462-
463- LoadFileAt(LOADER_TITLE_SCREEN,BufferPicture1);
464-
465- InitTransitionDataBuffer1();
466- PictureTransitionUnroll();
467-
468- EraseBottomTextArea();
469-
470- Pause(50);
471-
472- PrintMessagePtr=MessageCopyright;
473- PrintScreenPtr=(char*)0xbb80+40*26+2;
474- PrintSelectedText();
475-
476- Pause(50*3);
477-
478- EraseBottomTextArea();
479-
480- Pause(50);
481-
482- //EraseAllHires();
483-}
484-
485-
486-void ShowAttractMode()
487-{
488- ShowTitleScreen();
489-
490- //
491- // Load all the pictures we need for the attract sequence
492- //
493-#ifdef ENABLE_GAMEJAM_LOGO
494- LoadFileAt(LOADER_GAMEJAM_LOGO,BufferPicture1);
495-#endif
496-
497-#ifdef ENABLE_STORY_PAGE
498- LoadFileAt(LOADER_HOW_TO_PLAY,BufferPicture4);
499-#endif
500-
501- // Erase the three bottom lines of text
502- EraseBottomTextArea();
503-
504- // Anti bounce
505- while (KeyboardState & 16) {}
506-
507- // Print the 'PressFireToStart' message
508- strcpy((char*)0xbb80+40*26+9,MessagePressFireToStart);
509- strcpy((char*)0xbb80+40*27+9,MessagePressFireToStart);
510-
511- // Wait for the fire button to be pressed
512- //poke((char*)0xbb80+40*25,16+1);
513- KeyboardStateMemorized=0;
514- while (!(KeyboardStateMemorized & 16))
515- {
516-#ifdef ENABLE_STORY_PAGE
517- if (!(KeyboardStateMemorized & 16)) ShowStoryPage();
518-#endif
519-
520-#ifdef ENABLE_GAMEJAM_LOGO
521- if (!(KeyboardStateMemorized & 16)) ShowGameJamLogo();
522-#endif
523-
524-#ifdef ENABLE_SHOW_HIGH_SCORES
525- // Show the high scores
526- if (!(KeyboardStateMemorized & 16)) ShowHighScoreTable();
527-#endif
528-
529-
530-#ifdef ENABLE_SHOW_GAME_STORY
531- // Show the story of the game
532- if (!(KeyboardStateMemorized & 16)) ShowGameStory();
533-#endif
534- }
535- EraseBottomTextArea();
536-
537- // Anti bounce
538- //poke((char*)0xbb80+40*25,16+2);
539- while (KeyboardState & 16) {}
540-}
541-
542-
543-extern char MessageTotalScore[];
544-extern char MessageScoreValue[];
545-
546-void ShowTotalScore()
547-{
548- EraseBottomTextArea();
549-
550- ComputeScore();
551-
552- Pause(50*3);
553-}
554-
555-
556-// Load some logos and stuff
557-void GameLoop()
558-{
559- while (1)
560- {
561-#ifdef ENABLE_INTRO_SEQUENCE
562- ShowAttractMode();
563-#endif
564- InitialiseGame();
565-
566- while (!GameOver)
567- {
568- // Select the location
569- ChooseLocation();
570-
571- if (!GameOver)
572- {
573- // Handle the location menus
574- ManageLocation();
575- }
576- }
577-
578- // Let's say it's a game over man!
579- if (GameOver==GAMEOVER_GAVEUP)
580- {
581- LoaderApiEntryIndex=LOADER_ENDING_GIVEUP;
582- }
583- else
584- if (GameOver==GAMEOVER_NO_MORE_MONEY)
585- {
586- LoaderApiEntryIndex=LOADER_ENDING_OUT_OF_MONEY;
587- }
588- else
589- if (GameOver==GAMEOVER_TIME_UP)
590- {
591- LoaderApiEntryIndex=LOADER_ENDING_OUT_OF_TIME;
592- }
593- else
594- if (GameOver==GAMEOVER_VICTORY)
595- {
596- LoaderApiEntryIndex=LOADER_ENDING_VICTORY;
597- }
598- else
599- {
600- LoaderApiEntryIndex=LOADER_ENDING_GIVEUP;
601- }
602- LoadFileAt(LoaderApiEntryIndex,BufferPicture1);
603-
604- InitTransitionDataBuffer1();
605- PictureTransitionUnroll();
606-
607- EraseBottomTextArea();
608-
609- ShowTotalScore();
610-
611-
612- Pause(50*2);
613-
614- }
615-}
616-
617-
618-//
619-// Press START is shown in the three bottom lines of the screen
620-//
621-void ShowPressFireMessage()
622-{
623- // Erase the three bottom lines of text
624- memset((unsigned char*)0xbb80+40*25,16+4,40*3);
625-
626- // Anti bounce
627- while (KeyboardState & 16) {}
628-
629- // Print the 'PressFireToStart' message
630- strcpy((char*)0xbb80+40*26+9,MessagePressFireToStart);
631- strcpy((char*)0xbb80+40*27+9,MessagePressFireToStart);
632-
633- // Wait for the fire button to be pressed
634- poke((char*)0xbb80+40*25,16+1);
635- while (!(KeyboardState & 16))
636- {
637-#ifdef ENABLE_GAMEJAM_LOGO
638- ShowGameJamLogo();
639-#endif
640-
641-#ifdef ENABLE_SHOW_HIGH_SCORES
642- // Show the high scores
643- ShowHighScoreTable();
644-#endif
645- }
646-
647- // Anti bounce
648- poke((char*)0xbb80+40*25,16+2);
649- while (KeyboardState & 16) {}
650-
651- // Erase the three bottom lines of text
652- memset((unsigned char*)0xbb80+40*25,64,40*3);
653-}
654-
655-
656-
657-
65820 void main()
65921 {
660- // Clear the screen
661- IsHires=1;
662- memset((unsigned char*)0xa000,64,8000);
663- memset((unsigned char*)0xbb80+25*40,32,40*3);
664-
66522 // Install the IRQ handler
66623 System_InstallIRQ_SimpleVbl();
66724
668- // Initialize stuff
669- InitializeTables();
670-
67125 // Load the 6x8 font
67226 LoadFileAt(LOADER_FONT_6x8,0x9900);
27+ LoadFileAt(LOADER_FONT_6x6,Font6x6);
28+ PatchFont();
67329
30+ // Load the title picture
31+ LoadFileAt(LOADER_GAMEJAM_LOGO,0xa000);
67432
675- GameLoop();
676-
33+ // Let's call the assembler game sequence...
34+ GameStart();
67735 }
67836
--- users/dbug/games/GlobalGameJam2016/code/messages.s (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/messages.s (revision 1366)
@@ -1,213 +1,399 @@
11
22 .zero
33
4-_PrintScreenPtr .dsb 2 ; Location of the place where we print the text
4+_PrintScreenX .dsb 1
5+_PrintScreenColor .dsb 1
6+
7+_PrintHiresX .dsb 1
8+_PrintHiresColor .dsb 1
9+
510 _PrintMessagePtr .dsb 2 ; The address of the message to display
611
712 .text
813
9-_MessagePressFireToStart
10- .byt 14,3,"Press Fire To Start",0
14+_PrintSelectedText
15+.(
16+ ldy #255
17+loop_line
18+ jsr _ScrollUpText
19+ ldx _PrintScreenX
20+ lda _PrintScreenColor
21+ jmp printOut
22+loop_name
23+ iny
24+ lda (_PrintMessagePtr),y
25+ beq end_name
26+ cmp #13
27+ bne printOut
28+ ; Carriage return
29+ jmp loop_line
30+printOut
31+ sta $BB80+40*27,x
1132
12-_MessageTodayBestScores
13- .byt 5,"Today's best scores",0
33+ inx
34+ cpx #38
35+ bne loop_name
36+ ldx #0
37+ jmp loop_line
38+end_name
39+ stx _PrintScreenX
40+ rts
41+.)
1442
15-_MessageGameStory
16- .byt 5,"The game story",0
1743
18-_MessageGameMenu
19- .byt 5,"Game Menu",0
44+#define SCROLLUP(ypos) lda $bb80+40*(ypos+1),x:sta $bb80+40*ypos,x
2045
21-_MessageCopyright .byt 2,96, " 1985 Mickael Pointier and Friends",0
2246
23-_MessageCurrentLocation .byt 3,"Currently at:",6,0
24-_MessageNextLocation .byt 3,"Now, go to:",6,0
25-_MessageAlreadyVisited .byt " (Done)",0
47+; 40*28=1120 bytes
48+_ScrollUpText
49+ ;jmp _ScrollUpText
50+.(
51+ pha
52+ txa
53+ pha
2654
27-_MessageVisitedPlaces .byt 2,"+200 per visited location",0
28-_MessageRemainingMoney .byt 2,"+amount of money remaining",0
55+ ldx #0
56+loop
57+ SCROLLUP(25)
58+ SCROLLUP(26)
2959
30-_MessageTime .byt " 00:00",0
60+ lda #32
61+ sta $bb80+40*27,x
62+ inx
63+ cpx #40
64+ beq end
65+ jmp loop
66+end
67+ pla
68+ tax
69+ pla
70+ rts
71+.)
3172
32-_MessageMoney .byt "Money",0
33-_MessageMoneyBalance .byt 2,"9999 nok",0
73+_EraseTextArea
74+.(
75+ ldx #0
76+loop
77+ lda #32
78+ sta $bb80+40*25,x
79+ inx
80+ cpx #40*3
81+ bne loop
82+ rts
83+.)
3484
35-_MessageMood .byt "Mood",0
36-_MessageMoodHappy .byt 2,"Happy",0
37-_MessageMoodBored .byt 3,"Bored",0
38-_MessageMoodAnnoyed .byt 1,"Annoyed",0
85+; _Font6x6
86+saveY .byt 0
3987
40-_MessageEnergy .byt "Energy",0
41-_MessageEnergyFresh .byt 2,"Fresh",0
42-_MessageEnergyTired .byt 3,"Tired",0
43-_MessageEnergyHungry .byt 3,"Hungry",0
44-_MessageEnergyThirsty .byt 3,"Thirsty",0
88+_PrintTextHiresNoScroll
89+ ldy #255
90+ jmp do_print
4591
46-_MessageWhatDoWeDoNow1 .byt 3,"What Do",0
47-_MessageWhatDoWeDoNow2 .byt 3," We Do",0
48-_MessageWhatDoWeDoNow3 .byt 3," Now",0
49-_MessageWhatDoWeDoNow4 .byt 3," ?",0
92+_PrintTextHires
93+.(
94+ ldy #255
95+loop_line
96+ jsr _ScrollUpHires
97++do_print
98+ ldx _PrintHiresX
99+ lda _PrintHiresColor
100+ jmp printOut
101+loop_name
102+ iny
103+ lda (_PrintMessagePtr),y
104+ beq end_name
105+ cmp #13
106+ bne printOut
107+ ; Carriage return
108+ jmp loop_line
109+printOut
110+ sty saveY
111+ tay
112+ lda _Font6x6+256*0,y
113+ sta $a000+40*6*32+40*0,x
50114
51-_MessageActionLeave .byt 5,"Leave",0
52-_MessageActionDiscover .byt 5,"Visit",0
53-_MessageActionEat .byt 5,"Eat",0
54-_MessageActionDrink .byt 5,"Drink",0
55-_MessageActionRest .byt 5,"Rest",0
56-_MessageActionBuyPass .byt 5,"Buy Pass",0
57-_MessageActionGoAirport .byt 5,"Airport",0 ; Not yet decided
58-_MessageActionGiveUp .byt 1,"Give Up",0
115+ lda _Font6x6+256*1,y
116+ sta $a000+40*6*32+40*1,x
59117
60-_MessageTotalScore .byt 2,"Your final Score is:",0
61-_MessageScoreValue .byt 1,"00000",0 ; 5 digits score
118+ lda _Font6x6+256*2,y
119+ sta $a000+40*6*32+40*2,x
62120
63-_ActionList_Low .byt <_MessageActionLeave,<_MessageActionDiscover,<_MessageActionEat,<_MessageActionDrink,<_MessageActionRest,<_MessageActionBuyPass,<_MessageActionGoAirport,<_MessageActionGiveUp
64-_ActionList_High .byt >_MessageActionLeave,>_MessageActionDiscover,>_MessageActionEat,>_MessageActionDrink,>_MessageActionRest,>_MessageActionBuyPass,>_MessageActionGoAirport,>_MessageActionGiveUp
121+ lda _Font6x6+256*3,y
122+ sta $a000+40*6*32+40*3,x
65123
124+ lda _Font6x6+256*4,y
125+ sta $a000+40*6*32+40*4,x
66126
127+ lda _Font6x6+256*5,y
128+ sta $a000+40*6*32+40*5,x
67129
68-#define METADATA_STORAGE
69-#include "floppy_description.h"
70-#undef METADATA_STORAGE
130+ ldy saveY
71131
132+ inx
133+ cpx #40
134+ bne loop_name
135+ ldx #0
136+ jmp loop_line
137+end_name
138+ stx _PrintHiresX
139+ rts
140+.)
72141
73-; Initialise the file number with _LoaderApiEntryIndex
74-; Initialise the location where to print in _PrintScreenPtr
75142
76-_PrintLocationText
143+
144+_PatchFont
77145 .(
78- ; Start by creating the description in the buffer
79- ldy _LoaderApiEntryIndex
80- lda _MetaData_name_Low,y
81- sta _PrintMessagePtr+0
82- lda _MetaData_name_High,y
83- sta _PrintMessagePtr+1
84- jmp _PrintSelectedText
146+ ldx #0
147+loop_code
148+ txa
149+ sta _Font6x6+256*0,x
150+ sta _Font6x6+256*1,x
151+ sta _Font6x6+256*2,x
152+ sta _Font6x6+256*3,x
153+ sta _Font6x6+256*4,x
154+ sta _Font6x6+256*5,x
155+ inx
156+ cpx #32
157+ bne loop_code
158+ rts
85159 .)
86160
87-_PrintText
161+; 40*28=1120 bytes
162+; We scroll the hires screen by 6 scanlines
163+
164+_ScrollUpHires
165+ ;jmp _ScrollUpHires
88166 .(
89- ; Start by creating the description in the buffer
90- ldy _LoaderApiEntryIndex
91- lda _MetaData_description_Low,y
92- sta _PrintMessagePtr+0
93- lda _MetaData_description_High,y
94- sta _PrintMessagePtr+1
95-.)
96-_PrintSelectedText
97-.(
167+ pha
168+ txa
169+ pha
170+ tya
171+ pha
172+
173+ lda #<$a000
174+ sta tmp1+0
175+ lda #>$a000
176+ sta tmp1+1
177+
178+ lda #<$a000+40*6
179+ sta tmp2+0
180+ lda #>$a000+40*6
181+ sta tmp2+1
182+
183+ ldx #32 ; 33*6=198
184+loop_y
98185 ldy #0
99- ldx #0
100-loop_name
101- lda (_PrintMessagePtr),y
102- beq end_name
103- sta (_PrintScreenPtr),y
104- ;iny
186+loop_x
187+ lda (tmp2),y
188+ sta (tmp1),y
189+ iny
190+ cpy #240
191+ bne loop_x
105192
106- .(
107- inc _PrintMessagePtr+0
108- bne skip
109- inc _PrintMessagePtr+1
110-skip
111- .)
193+ jsr Add240Tmp1
194+ jsr Add240Tmp2
112195
113- clc
114- lda _PrintScreenPtr+0
115- adc #1
116- sta _PrintScreenPtr+0
117- lda _PrintScreenPtr+1
118- adc #0
119- sta _PrintScreenPtr+1
196+ dex
197+ bne loop_y
120198
121- inx
122- bne loop_name
123-end_name
199+ ; Clean the last line
200+ ldy #0
201+loop_x_clean
202+ lda #64
203+ sta (tmp1),y
204+ iny
205+ cpy #40*6
206+ bne loop_x_clean
207+
208+ pla
209+ tay
210+ pla
211+ tax
212+ pla
213+;bla jmp bla
124214 rts
125215 .)
126216
127-; Same thing, but in HIRES mode instead of TEXT
128-_PrintHires
129-.(
130- ; Start by creating the description in the buffer
131- ldy _LoaderApiEntryIndex
132- lda _MetaData_name_Low,y
133- sta _PrintMessagePtr+0
134- lda _MetaData_name_High,y
135- sta _PrintMessagePtr+1
136217
137-+_PrintHiresInternal
138- ldx #0
139-loop_name
140- ldy #0
141- lda (_PrintMessagePtr),y
142- beq end_name
218+; Let's have the messages of the game:
143219
144- sta tmp1+0
145- lda #0
146- sta tmp1+1
220+; Days of the week
221+_MessageMonday .byt 3,16+1,"A new monday starts...",16+0,13,13,0
222+_MessageTuesday .byt 3,16+1,"A new tuesday starts...",16+0,13,13,0
223+_MessageWednesday .byt 3,16+1,"A new wednesday starts...",16+0,13,13,0
224+_MessageThursday .byt 3,16+1,"A new thursday starts...",16+0,13,13,0
225+_MessageFriday .byt 3,16+1,"A new friday starts...",16+0,13,13,0
226+_MessageSaturday .byt 3,16+1,"A new saturday starts...",16+0,13,13,0
227+_MessageSunday .byt 3,16+1,"A new sunday starts...",16+0,13,13,0
147228
148- asl tmp1+0 ; x2
149- rol tmp1+1
229+; The description messages
230+_MessageNewDayStarts
231+ .byt 7,"It's still dark outside.",13
232+ .byt 7,"A normal winter day in Oslo.",13,13
233+ .byt 1,"The alarm clock beeps...",13
234+ .byt 0
150235
151- asl tmp1+0 ; x4
152- rol tmp1+1
236+_MessageSaturdaySummary
237+ .byt 7,"It's still dark outside.",13
238+ .byt 7,"A normal winter day in Oslo.",13,13
239+ .byt 7,"But today is Saturday, so I don't have"
240+ .byt 7,"to go to work.",13,13
241+ .byt 7,"There are still some rituals to",13
242+ .byt 7,"perform, such as go shopping and",13
243+ .byt 7,"cleaning, but I will spare you these.",13
244+ .byt 0
153245
154- asl tmp1+0 ; x8
155- rol tmp1+1
246+_MessageSundaySummary
247+ .byt 7,"It's still dark outside.",13
248+ .byt 7,"A normal winter day in Oslo.",13,13
249+ .byt 7,"But today is Sunday, so I don't have",13
250+ .byt 7,"to go to work.",13,13
251+ .byt 7,"I guess the only Sunday's ritual I can"
252+ .byt 7,"think of is to not do much at all and",13
253+ .byt 7,"just enjoy the day.",13
254+ .byt 0
156255
157- clc
158- lda tmp1+0
159- adc #<$9800
160- sta tmp1+0
256+_MessageWokenUp
257+ .byt 13,7,"I slowly get out of the bed.",13,13
258+ .byt 7,"A bit of stretching helps the old",13
259+ .byt 7,"carcass prepare for the day ahead.",13,13
260+ .byt 7,"I need to get ready for work.",13
261+ .byt 0
161262
162- lda tmp1+1
163- adc #>$9800
164- sta tmp1+1
263+_MessageClean
264+ .byt 13,7,"Nice shower is nice.",13,13
265+ .byt 7,"I put my clothes and leave.",13,13
266+ .byt 7,"I will take my breakfast at work.",13
267+ .byt 0
165268
166- clc
167- lda _PrintScreenPtr+0
168- sta tmp2+0
169- adc #1
170- sta _PrintScreenPtr+0
171- lda _PrintScreenPtr+1
172- sta tmp2+1
173- adc #0
174- sta _PrintScreenPtr+1
269+_MessageMetroSitting
270+ .byt 13,7,"The tbane arrives.",13,13
271+ .byt 7,"I like to optimize everything I do:",13
272+ .byt 7,"If you board the right car you can",13
273+ .byt 7,"exit faster which helps catching the",13
274+ .byt 7,"next transport!",13
275+ .byt 0
175276
176- ldx #8
177- ldy #0
178-loop
179- lda (tmp1),y
180- sta (tmp2),y
277+_MessageWhichBus
278+ .byt 13,7,"I spend the next 20 minutes reading on"
279+ .byt 7,"my ebook reader while listening epic",13
280+ .byt 7,"music on my mobile phone.",13,13
281+ .byt 7,"When the metro arrives at Stortinget I"
282+ .byt 7,"move to the last door of the car and",13
283+ .byt 7,"briskly walk toward the town hall as",13
284+ .byt 7,"soon as the doors open.",13
285+ .byt 0
181286
182- .(
183- inc tmp1+0
184- bne skip
185- inc tmp1+1
186-skip
187- .)
287+_MessageOffice
288+ .byt 13,7,"The bus to Skoyen is not that fast",13
289+ .byt 7,"during rush hours, but after a while",13
290+ .byt 7,"I'm finally at the Maritim bus stop.",13,13
291+ .byt 7,"Few hundred meters walking and I'm in",13
292+ .byt 7,"the office ready for new challenges.",13
293+ .byt 0
188294
189- .(
190- clc
191- lda tmp2+0
192- adc #40
193- sta tmp2+0
194- bcc skip
195- inc tmp2+1
196-skip
197- .)
295+_MessageOfficeDone
296+ .byt 13,7,"It's another long day spent coding, ",13
297+ .byt 7,"designing, debugging, helping and ",13
298+ .byt 7,"discussing with colleagues.",13,13
299+ .byt 7,"I finally call it a day and leave.",13
300+ .byt 0
198301
199- dex
200- bne loop
201-
202- .(
203- inc _PrintMessagePtr+0
204- bne skip
205- inc _PrintMessagePtr+1
206-skip
207- .)
302+_MessageHomeOfficeDone
303+ .byt 13,7,"I start the VPN and connect to my work"
304+ .byt 7,"computer.",13,13
305+ .byt 7,"It's another long day spent coding, ",13
306+ .byt 7,"designing, debugging, helping and ",13
307+ .byt 7,"discussing with colleagues on Skype.",13,13
308+ .byt 7,"I finally call it a day and disconnect.",13
309+ .byt 0
208310
209- jmp loop_name
210-end_name
211- rts
212-.)
311+_MessageAtHome
312+ .byt 13,7,"I'm finally home, tired and hungry",13
313+ .byt 0
213314
315+_MessageFeelingBetter
316+ .byt 13,7,"I call that a 'Powernap', it's a great"
317+ .byt 7,"way to recharge the batteries.",13,13
318+ .byt 7,"I'm now ready for the evening rituals.",13
319+ .byt 0
320+
321+_MessageEveningRituals
322+ .byt 13,7,"My girlfriend and I like to watch",13
323+ .byt 7,"series together while having dinner.",13,13
324+ .byt 7,"After that I spend some time on my",13
325+ .byt 7,"computer.",13
326+ .byt 0
327+
328+_MessageBedTime
329+ .byt 13,7,"I spend few hours on the computer.",13,13
330+ .byt 7,"It's now late, so...",13
331+ .byt 7,"...time to go to bed!!!",13,13
332+ .byt 7,"Let's have a good night sleep.",13
333+ .byt 0
334+
335+; What would I do
336+_MessagePlayerChoice .byt 1,12,16+7,"What would Mickael do? ",16+0,0
337+
338+_MessageBadChoice
339+ .byt 13,5,"That was not very logical!",13
340+ .byt 5,"I'm probably still sleeping...",13
341+ .byt 5,"Another weird dream???",13,13,13
342+ .byt 0
343+
344+; Actions
345+_MessageSnooze .byt 2,"I hit the snooze button",0
346+_MessageLeaveTheBed .byt 2,"I leave the bed",0
347+_MessageCallSick .byt 2,"I call work and say I'm sick",0
348+_MessageTakeShower .byt 2,"I jump into the shower",0
349+_MessageHaveBreakfast .byt 2,"I get my breakfast",0
350+_MessageSwitchOnComputer .byt 2,"I switch on my computer",0
351+_MessageTakeTheMetro .byt 2,"I go to the metro station",0
352+_MessageWalkToTheOffice .byt 2,"I walk to the office",0
353+_MessageTakeTheCar .byt 2,"I take the car",0
354+_MessageSitFront .byt 2,"I sit in the front",0
355+_MessageSitMiddle .byt 2,"I sit in the middle",0
356+_MessageSitBack .byt 2,"I sit in the back",0
357+_MessageTramway .byt 2,"I take the tramway",0
358+_MessageBus31 .byt 2,"I take the bus 31, 31E or 32",0
359+_MessageBus36 .byt 2,"I take the bus 36E, 70 or 74",0
360+_MessageMailAndBreakfast .byt 2,"I read mails and eat breakfast",0
361+_MessageBreakTheBuild .byt 2,"I break the build",0
362+_MessagePranks .byt 2,"I prank some colleagues",0
363+_MessagePartyTime .byt 2,"I go to a party",0
364+_MessageGoHome .byt 2,"I go home",0
365+_MessageOvertime .byt 2,"I do some overtime",0
366+_MessagePizza .byt 2,"I order some food",0
367+_MessageComputerTime .byt 2,"I spend time on the computer",0
368+_MessageNapTime .byt 2,"I take a 20 minutes nap",0
369+_MessageTvDinner .byt 2,"I watch some series while eating",0
370+_MessageInstagram .byt 2,"I post photos of my dinner",0
371+_MessageCallMyParents .byt 2,"I call my parents",0
372+
373+_MessageComputerDefenceForce .byt 2,"I do some defence force stuff",0
374+_MessageComputerSocial .byt 2,"I browse 9gag, 4chan and reddit",0
375+_MessageComputerMMO .byt 2,"I log on my favorite MMO",0
376+
377+; Actions error explanations
378+_MessageSnoozeError .byt 13,5,"I never use the snooze button",0
379+_MessageCallSickError .byt 13,5,"Seriously, how lame is that!",0
380+_MessageHaveBreakfastError .byt 13,5,"I usually take my breakfast at work",0
381+_MessageSwitchOnComputerError .byt 13,5,"I can check my mail at work while",13,5,"I'm eating my breakfast",0
382+_MessageTakeTheCarError .byt 13,5,"I really love the Feltvogn but",13,5,"that's not for the daily commute.",0
383+_MessageWalkToTheOfficeError .byt 13,5,"I would love to walk to the office",13,5,"but it's wayyyy to far.",0
384+_MessageSitError .byt 13,5,"That's not optimal if you leave",13,5,"at the National Theater stop!",0
385+_MessageBus36Error .byt 13,5,"The bus 36E does not stop at Maritim",0
386+_MessageTramwayError .byt 13,5,"The tramway does not go where I need",0
387+_MessageBreakTheBuildErrors .byt 13,5,"I would not do that on purpose",0
388+_MessagePranksErrors .byt 13,5,"That's not funny",0
389+_MessagePartyTimeErrors .byt 13,5,"Unfortunately I'm not 25 anymore",0
390+_MessageOvertimeErrors .byt 13,5,"That would be exceptional",0
391+_MessageComputerTimeError .byt 13,5,"I will do that later",0
392+_MessagePizzaErrors .byt 13,5,"Only on weekend ;)",0
393+_MessageInstagramError .byt 13,5,"I don't own a smartphone",0
394+_MessageCallMyParentsErrors .byt 13,5,"I should probably do that",0
395+_MessageShowerError .byt 13,5,"When I work from home I switch on the",13,5,"computer before taking my shower.",0
396+_MessageHomeBreakfastError .byt 13,5,"When I work from home I switch on the",13,5,"computer before eating breakfast.",0
397+_MessageComputerSocialError .byt 13,5,"If you want to find time to do stuff,",13,5,"you should really avoid these sites.",0
398+_MessageComputerMMOError .byt 13,5,"I really tried hard to like MMOs, but",13,5,"ultimately I found them very boring.",0
399+
--- users/dbug/games/GlobalGameJam2016/code/osdk_config.bat (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/osdk_config.bat (revision 1366)
@@ -5,5 +5,5 @@
55 ::
66 SET OSDKADDR=$c000
77 SET OSDKNAME=game
8-SET OSDKFILE=main utilities irq loader_api screen digiplayer transitions messages buffers
8+SET OSDKFILE=main game utilities irq loader_api messages buffers
99 SET OSDKDISK=
--- users/dbug/games/GlobalGameJam2016/code/utilities.s (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/code/utilities.s (revision 1366)
@@ -27,3 +27,43 @@
2727 rts
2828 .)
2929
30+Add240Tmp1
31+.(
32+ clc
33+ lda tmp1
34+ adc #240
35+ sta tmp1
36+ bcc skip_dst
37+ inc tmp1+1
38+skip_dst
39+ rts
40+.)
41+
42+
43+
44+Add240Tmp2
45+.(
46+ clc
47+ lda tmp2
48+ adc #240
49+ sta tmp2
50+ bcc skip_dst
51+ inc tmp2+1
52+skip_dst
53+ rts
54+.)
55+
56+
57+
58+Add40Tmp2
59+.(
60+ clc
61+ lda tmp2
62+ adc #40
63+ sta tmp2
64+ bcc skip_dst
65+ inc tmp2+1
66+skip_dst
67+ rts
68+.)
69+
--- users/dbug/games/GlobalGameJam2016/osdk_build.bat (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/osdk_build.bat (revision 1366)
@@ -18,7 +18,7 @@
1818 CALL osdk_config.bat
1919
2020 :: Delete the floppy, just to be sure
21-del build\GlobalGameJam2015.dsk
21+del build\GlobalGameJam2016.dsk
2222
2323 :: Create the folders we need
2424 md build
--- users/dbug/games/GlobalGameJam2016/osdk_config.bat (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/osdk_config.bat (revision 1366)
@@ -4,7 +4,7 @@
44 :: Set the build paremeters
55 ::
66 SET OSDKADDR=$400
7-SET OSDKNAME=GlobalGameJam2015
7+SET OSDKNAME=GlobalGameJam2016
88 SET OSDKFILE=
99 SET OSDKDISK=%OSDKNAME%.dsk
1010
--- users/dbug/games/GlobalGameJam2016/osdk_makedata.bat (revision 1365)
+++ users/dbug/games/GlobalGameJam2016/osdk_makedata.bat (revision 1366)
@@ -10,67 +10,18 @@
1010 :: Build data for the game
1111 ::
1212 SET PICTCONV=%OSDK%\Bin\PictConv.exe
13-SET SAMPLETWEAKER=%OSDK%\Bin\SampleTweaker.exe
1413
1514 :: Pictures
1615 SET PARAMS=-f1 -d0 -o2 -u1 -t1
1716
18-::%PICTCONV% %PARAMS% data\logo_fire.png build\files\logo_fire.hir
19-
2017 :: Color pictures
2118 %PICTCONV% %PARAMS% data\title_screen.png build\files\title_screen.hir
22-%PICTCONV% %PARAMS% data\how_to_play.png build\files\how_to_play.hir
2319 %PICTCONV% %PARAMS% data\GlobalGameJamOslo.png build\files\GlobalGameJamOslo.hir
2420
25-:: Failures
26-%PICTCONV% %PARAMS% data\ending_giveup.png build\files\ending_giveup.hir
27-%PICTCONV% %PARAMS% data\ending_out_of_money.png build\files\ending_out_of_money.hir
28-%PICTCONV% %PARAMS% data\ending_out_of_time.png build\files\ending_out_of_time.hir
29-
30-:: Victory
31-%PICTCONV% %PARAMS% data\ending_victory.png build\files\ending_victory.hir
32-
33-
34-
35-
3621 :: Monochrome pictures
37-%PICTCONV% -f0 -f0 -o2 data\funcom_logo_240x200.png build\files\funcom_logo_240x200.hir
38-%PICTCONV% -f0 -f0 -o2 data\valp_outline.png build\files\valp_outline.hir
39-%PICTCONV% -f0 -f0 -o2 data\oslo_map.png build\files\oslo_map.hir
40-
41-:: Locations
42-%PICTCONV% -f0 -f0 -o2 data\location_vigeland.png build\files\location_vigeland.hir
43-%PICTCONV% -f0 -f0 -o2 data\location_opera.png build\files\location_opera.hir
44-%PICTCONV% -f0 -f0 -o2 data\location_holmenkolen.png build\files\location_holmenkolen.hir
45-%PICTCONV% -f0 -f0 -o2 data\location_jernbanetorget.png build\files\location_jernbanetorget.hir
46-%PICTCONV% -f0 -f0 -o2 data\location_akerbrygge.png build\files\location_akerbrygge.hir
47-%PICTCONV% -f0 -f0 -o2 data\location_kingscastle.png build\files\location_kingscastle.hir
48-%PICTCONV% -f0 -f0 -o2 data\location_sognsvann.png build\files\location_sognsvann.hir
49-%PICTCONV% -f0 -f0 -o2 data\location_vikingship_museum.png build\files\location_vikingship_museum.hir
50-%PICTCONV% -f0 -f0 -o2 data\location_munch_museum.png build\files\location_munch_museum.hir
51-%PICTCONV% -f0 -f0 -o2 data\location_ibsen_museum.png build\files\location_ibsen_museum.hir
52-%PICTCONV% -f0 -f0 -o2 data\location_norwegian_folk_museum.png build\files\location_norwegian_folk_museum.hir
53-%PICTCONV% -f0 -f0 -o2 data\location_kon_tiki_museum.png build\files\location_kon_tiki_museum.hir
54-%PICTCONV% -f0 -f0 -o2 data\location_akershus_fortress.png build\files\location_akershus_fortress.hir
55-%PICTCONV% -f0 -f0 -o2 data\location_national_gallery.png build\files\location_national_gallery.hir
56-%PICTCONV% -f0 -f0 -o2 data\location_natural_history_museum.png build\files\location_natural_history_museum.hir
57-
5822 %PICTCONV% -f0 -f0 -o2 data\Font6x8.png build\files\Font6x8.hir
5923 %PICTCONV% -f0 -f0 -o2 data\Font6x6.png build\files\Font6x6.hir
6024
61-:: Sample
62-
63-%SAMPLETWEAKER% data\Funcom-mono-8.raw build\files\FuncomJingle.raw
64-::%OSDK%\bin\Bin2Txt -s1 -f2 build\sample.raw sample.s _FuncomJingle
65-::echo _FuncomJingleEnd >> sample.s
66-
67-
68-:: YM Musics
69-SET YM2MYM=%osdk%\Bin\ym2mym.exe -m15360
70-SET PARAMS=-f2 -h1 -s1
71-
72-%YM2MYM% "data\Decade Reset.ym" build\files\DecadeReset.ym
73-
7425 ::pause
7526
7627
Show on old repository browser