diff --git a/JTMM.g3a b/JTMM.g3a new file mode 100644 index 0000000..e593755 Binary files /dev/null and b/JTMM.g3a differ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3f92dfc --- /dev/null +++ b/LICENSE @@ -0,0 +1,324 @@ +Creative Commons Attribution 4.0 International Creative Commons Corporation +("Creative Commons") is not a law firm and does not provide legal services +or legal advice. Distribution of Creative Commons public licenses does not +create a lawyer-client or other relationship. Creative Commons makes its licenses +and related information available on an "as-is" basis. Creative Commons gives +no warranties regarding its licenses, any material licensed under their terms +and conditions, or any related information. Creative Commons disclaims all +liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions +that creators and other rights holders may use to share original works of +authorship and other material subject to copyright and certain other rights +specified in the public license below. The following considerations are for +informational purposes only, are not exhaustive, and do not form part of our +licenses. + +Considerations for licensors: Our public licenses are intended for use by +those authorized to give the public permission to use material in ways otherwise +restricted by copyright and certain other rights. Our licenses are irrevocable. +Licensors should read and understand the terms and conditions of the license +they choose before applying it. Licensors should also secure all rights necessary +before applying our licenses so that the public can reuse the material as +expected. Licensors should clearly mark any material not subject to the license. +This includes other CC-licensed material, or material used under an exception +or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors + +Considerations for the public: By using one of our public licenses, a licensor +grants the public permission to use the licensed material under specified +terms and conditions. If the licensor's permission is not necessary for any +reason–for example, because of any applicable exception or limitation to copyright–then +that use is not regulated by the license. Our licenses grant only permissions +under copyright and certain other rights that a licensor has authority to +grant. Use of the licensed material may still be restricted for other reasons, +including because others have copyright or other rights in the material. A +licensor may make special requests, such as asking that all changes be marked +or described. Although not required by our licenses, you are encouraged to +respect those requests where reasonable. More considerations for the public +: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution +4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to +be bound by the terms and conditions of this Creative Commons Attribution +4.0 International Public License ("Public License"). To the extent this Public +License may be interpreted as a contract, You are granted the Licensed Rights +in consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the Licensor +receives from making the Licensed Material available under these terms and +conditions. + +Section 1 – Definitions. + +a. Adapted Material means material subject to Copyright and Similar Rights +that is derived from or based upon the Licensed Material and in which the +Licensed Material is translated, altered, arranged, transformed, or otherwise +modified in a manner requiring permission under the Copyright and Similar +Rights held by the Licensor. For purposes of this Public License, where the +Licensed Material is a musical work, performance, or sound recording, Adapted +Material is always produced where the Licensed Material is synched in timed +relation with a moving image. + +b. Adapter's License means the license You apply to Your Copyright and Similar +Rights in Your contributions to Adapted Material in accordance with the terms +and conditions of this Public License. + +c. Copyright and Similar Rights means copyright and/or similar rights closely +related to copyright including, without limitation, performance, broadcast, +sound recording, and Sui Generis Database Rights, without regard to how the +rights are labeled or categorized. For purposes of this Public License, the +rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + +d. Effective Technological Measures means those measures that, in the absence +of proper authority, may not be circumvented under laws fulfilling obligations +under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, +and/or similar international agreements. + +e. Exceptions and Limitations means fair use, fair dealing, and/or any other +exception or limitation to Copyright and Similar Rights that applies to Your +use of the Licensed Material. + +f. Licensed Material means the artistic or literary work, database, or other +material to which the Licensor applied this Public License. + +g. Licensed Rights means the rights granted to You subject to the terms and +conditions of this Public License, which are limited to all Copyright and +Similar Rights that apply to Your use of the Licensed Material and that the +Licensor has authority to license. + +h. Licensor means the individual(s) or entity(ies) granting rights under this +Public License. + +i. Share means to provide material to the public by any means or process that +requires permission under the Licensed Rights, such as reproduction, public +display, public performance, distribution, dissemination, communication, or +importation, and to make material available to the public including in ways +that members of the public may access the material from a place and at a time +individually chosen by them. + +j. Sui Generis Database Rights means rights other than copyright resulting +from Directive 96/9/EC of the European Parliament and of the Council of 11 +March 1996 on the legal protection of databases, as amended and/or succeeded, +as well as other essentially equivalent rights anywhere in the world. + +k. You means the individual or entity exercising the Licensed Rights under +this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + +1. Subject to the terms and conditions of this Public License, the Licensor +hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, +irrevocable license to exercise the Licensed Rights in the Licensed Material +to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + +2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions +and Limitations apply to Your use, this Public License does not apply, and +You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + +4. Media and formats; technical modifications allowed. The Licensor authorizes +You to exercise the Licensed Rights in all media and formats whether now known +or hereafter created, and to make technical modifications necessary to do +so. The Licensor waives and/or agrees not to assert any right or authority +to forbid You from making technical modifications necessary to exercise the +Licensed Rights, including technical modifications necessary to circumvent +Effective Technological Measures. For purposes of this Public License, simply +making modifications authorized by this Section 2(a)(4) never produces Adapted +Material. + + 5. Downstream recipients. + +A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed +Material automatically receives an offer from the Licensor to exercise the +Licensed Rights under the terms and conditions of this Public License. + +B. No downstream restrictions. You may not offer or impose any additional +or different terms or conditions on, or apply any Effective Technological +Measures to, the Licensed Material if doing so restricts exercise of the Licensed +Rights by any recipient of the Licensed Material. + +6. No endorsement. Nothing in this Public License constitutes or may be construed +as permission to assert or imply that You are, or that Your use of the Licensed +Material is, connected with, or sponsored, endorsed, or granted official status +by, the Licensor or others designated to receive attribution as provided in +Section 3(a)(1)(A)(i). + + b. Other rights. + +1. Moral rights, such as the right of integrity, are not licensed under this +Public License, nor are publicity, privacy, and/or other similar personality +rights; however, to the extent possible, the Licensor waives and/or agrees +not to assert any such rights held by the Licensor to the limited extent necessary +to allow You to exercise the Licensed Rights, but not otherwise. + +2. Patent and trademark rights are not licensed under this Public License. + +3. To the extent possible, the Licensor waives any right to collect royalties +from You for the exercise of the Licensed Rights, whether directly or through +a collecting society under any voluntary or waivable statutory or compulsory +licensing scheme. In all other cases the Licensor expressly reserves any right +to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following +conditions. + + a. Attribution. + +1. If You Share the Licensed Material (including in modified form), You must: + +A. retain the following if it is supplied by the Licensor with the Licensed +Material: + +i. identification of the creator(s) of the Licensed Material and any others +designated to receive attribution, in any reasonable manner requested by the +Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + +v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + +B. indicate if You modified the Licensed Material and retain an indication +of any previous modifications; and + +C. indicate the Licensed Material is licensed under this Public License, and +include the text of, or the URI or hyperlink to, this Public License. + +2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner +based on the medium, means, and context in which You Share the Licensed Material. +For example, it may be reasonable to satisfy the conditions by providing a +URI or hyperlink to a resource that includes the required information. + +3. If requested by the Licensor, You must remove any of the information required +by Section 3(a)(1)(A) to the extent reasonably practicable. + +4. If You Share Adapted Material You produce, the Adapter's License You apply +must not prevent recipients of the Adapted Material from complying with this +Public License. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to +Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, +reuse, reproduce, and Share all or a substantial portion of the contents of +the database; + +b. if You include all or a substantial portion of the database contents in +a database in which You have Sui Generis Database Rights, then the database +in which You have Sui Generis Database Rights (but not its individual contents) +is Adapted Material; and + +c. You must comply with the conditions in Section 3(a) if You Share all or +a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace +Your obligations under this Public License where the Licensed Rights include +other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + +a. Unless otherwise separately undertaken by the Licensor, to the extent possible, +the Licensor offers the Licensed Material as-is and as-available, and makes +no representations or warranties of any kind concerning the Licensed Material, +whether express, implied, statutory, or other. This includes, without limitation, +warranties of title, merchantability, fitness for a particular purpose, non-infringement, +absence of latent or other defects, accuracy, or the presence or absence of +errors, whether or not known or discoverable. Where disclaimers of warranties +are not allowed in full or in part, this disclaimer may not apply to You. + +b. To the extent possible, in no event will the Licensor be liable to You +on any legal theory (including, without limitation, negligence) or otherwise +for any direct, special, indirect, incidental, consequential, punitive, exemplary, +or other losses, costs, expenses, or damages arising out of this Public License +or use of the Licensed Material, even if the Licensor has been advised of +the possibility of such losses, costs, expenses, or damages. Where a limitation +of liability is not allowed in full or in part, this limitation may not apply +to You. + +c. The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most closely +approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + +a. This Public License applies for the term of the Copyright and Similar Rights +licensed here. However, if You fail to comply with this Public License, then +Your rights under this Public License terminate automatically. + +b. Where Your right to use the Licensed Material has terminated under Section +6(a), it reinstates: + +1. automatically as of the date the violation is cured, provided it is cured +within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + +c. For the avoidance of doubt, this Section 6(b) does not affect any right +the Licensor may have to seek remedies for Your violations of this Public +License. + +d. For the avoidance of doubt, the Licensor may also offer the Licensed Material +under separate terms or conditions or stop distributing the Licensed Material +at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + +a. The Licensor shall not be bound by any additional or different terms or +conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the Licensed +Material not stated herein are separate from and independent of the terms +and conditions of this Public License. + +Section 8 – Interpretation. + +a. For the avoidance of doubt, this Public License does not, and shall not +be interpreted to, reduce, limit, restrict, or impose conditions on any use +of the Licensed Material that could lawfully be made without permission under +this Public License. + +b. To the extent possible, if any provision of this Public License is deemed +unenforceable, it shall be automatically reformed to the minimum extent necessary +to make it enforceable. If the provision cannot be reformed, it shall be severed +from this Public License without affecting the enforceability of the remaining +terms and conditions. + +c. No term or condition of this Public License will be waived and no failure +to comply consented to unless expressly agreed to by the Licensor. + +d. Nothing in this Public License constitutes or may be interpreted as a limitation +upon, or waiver of, any privileges and immunities that apply to the Licensor +or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative +Commons may elect to apply one of its public licenses to material it publishes +and in those instances will be considered the "Licensor." The text of the +Creative Commons public licenses is dedicated to the public domain under the +CC0 Public Domain Dedication. Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as otherwise +permitted by the Creative Commons policies published at creativecommons.org/policies, +Creative Commons does not authorize the use of the trademark "Creative Commons" +or any other trademark or logo of Creative Commons without its prior written +consent including, without limitation, in connection with any unauthorized +modifications to any of its public licenses or any other arrangements, understandings, +or agreements concerning use of licensed material. For the avoidance of doubt, +this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1106c98 --- /dev/null +++ b/Makefile @@ -0,0 +1,194 @@ +#! /usr/bin/make -f +# Default Makefile for fxSDK add-ins. This file was probably copied there by +# the [fxsdk] program. +#--- + +# +# Configuration +# + +include project.cfg + +# Compiler flags +CFLAGSFX := $(CFLAGS) $(CFLAGS_FX) $(INCLUDE) +CFLAGSCG := $(CFLAGS) $(CFLAGS_CG) $(INCLUDE) + +# Linker flags +LDFLAGSFX := $(LDFLAGS) $(LDFLAGS_FX) +LDFLAGSCG := $(LDFLAGS) $(LDFLAGS_CG) + +# Dependency list generation flags +depflags = -MMD -MT $@ -MF $(@:.o=.d) -MP +# ELF to binary flags +BINFLAGS := -R .bss -R .gint_bss + +# G1A and G3A generation flags +NAME_G1A ?= $(NAME) +NAME_G3A ?= $(NAME) +G1AF := -i "$(ICON_FX)" -n "$(NAME_G1A)" --internal="$(INTERNAL)" +G3AF := -n basic:"$(NAME_G3A)" -i uns:"$(ICON_CG_UNS)" -i sel:"$(ICON_CG_SEL)" + +ifeq "$(TOOLCHAIN_FX)" "" +TOOLCHAIN_FX := sh3eb-elf +endif + +ifeq "$(TOOLCHAIN_CG)" "" +TOOLCHAIN_CG := sh4eb-elf +endif + +# fxconv flags +FXCONVFX := --fx --toolchain=$(TOOLCHAIN_FX) +FXCONVCG := --cg --toolchain=$(TOOLCHAIN_CG) + +# +# File listings +# + +NULL := +TARGET := $(subst $(NULL) $(NULL),-,$(NAME)) + +ifeq "$(TARGET_FX)" "" +TARGET_FX := $(TARGET).g1a +endif + +ifeq "$(TARGET_CG)" "" +TARGET_CG := $(TARGET).g3a +endif + +ELF_FX := build-fx/$(shell basename -s .g1a $(TARGET_FX)).elf +BIN_FX := $(ELF_FX:.elf=.bin) + +ELF_CG := build-cg/$(shell basename -s .g3a $(TARGET_CG)).elf +BIN_CG := $(ELF_CG:.elf=.bin) + +# Source files +src := $(wildcard src/*.[csS] \ + src/*/*.[csS] \ + src/*/*/*.[csS] \ + src/*/*/*/*.[csS]) +assets-fx := $(wildcard assets-fx/*/*) +assets-cg := $(wildcard assets-cg/*/*) + +# Object files +obj-fx := $(src:%=build-fx/%.o) \ + $(assets-fx:assets-fx/%=build-fx/assets/%.o) +obj-cg := $(src:%=build-cg/%.o) \ + $(assets-cg:assets-cg/%=build-cg/assets/%.o) + +# Additional dependencies +deps-fx := $(ICON_FX) +deps-cg := $(ICON_CG_UNS) $(ICON_CG_SEL) + +# All targets +all := +ifneq "$(wildcard build-fx)" "" +all += all-fx +endif +ifneq "$(wildcard build-cg)" "" +all += all-cg +endif + +# +# Build rules +# + +all: $(all) + +all-fx: $(TARGET_FX) +all-cg: $(TARGET_CG) + +$(TARGET_FX): $(obj-fx) $(deps-fx) + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -o $(ELF_FX) $(obj-fx) $(CFLAGSFX) $(LDFLAGSFX) + $(TOOLCHAIN_FX)-objcopy -O binary $(BINFLAGS) $(ELF_FX) $(BIN_FX) + fxg1a $(BIN_FX) -o $@ $(G1AF) + +$(TARGET_CG): $(obj-cg) $(deps-cg) + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -o $(ELF_CG) $(obj-cg) $(CFLAGSCG) $(LDFLAGSCG) + $(TOOLCHAIN_CG)-objcopy -O binary $(BINFLAGS) $(ELF_CG) $(BIN_CG) + mkg3a $(G3AF) $(BIN_CG) $@ + +# C sources +build-fx/%.c.o: %.c + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -c $< -o $@ $(CFLAGSFX) $(depflags) +build-cg/%.c.o: %.c + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -c $< -o $@ $(CFLAGSCG) $(depflags) + +# Assembler sources +build-fx/%.s.o: %.s + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -c $< -o $@ +build-cg/%.s.o: %.s + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -c $< -o $@ + +# Preprocessed assembler sources +build-fx/%.S.o: %.S + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -c $< -o $@ $(INCLUDE) +build-cg/%.S.o: %.S + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -c $< -o $@ $(INCLUDE) + +# Images +build-fx/assets/img/%.o: assets-fx/img/% + @ mkdir -p $(dir $@) + fxconv --bopti-image $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*) +build-cg/assets/img/%.o: assets-cg/img/% + @ mkdir -p $(dir $@) + fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(basename $*) $(IMG.$*) + +# Fonts +build-fx/assets/fonts/%.o: assets-fx/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ $(FXCONVFX) name:font_$(basename $*) $(FONT.$*) +build-cg/assets/fonts/%.o: assets-cg/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*) + +# Binaries +build-fx/assets/bin/%.o: assets-fx/bin/% + @ mkdir -p $(dir $@) + fxconv -b $< -o $@ $(FXCONVFX) name:bin_$(basename $*) $(BIN.$*) +build-cg/assets/bin/%.o: assets-cg/bin/% + @ mkdir -p $(dir $@) + fxconv -b $< -o $@ $(FXCONVCG) name:bin_$(basename $*) $(BIN.$*) + +# +# Cleaning and utilities +# + +# Dependency information +-include $(shell find build* -name *.d 2> /dev/null) +build-fx/%.d: ; +build-cg/%.d: ; +.PRECIOUS: build-fx build-cg build-fx/%.d build-cg/%.d %/ + +clean-fx: + @ rm -rf build-fx/ +clean-cg: + @ rm -rf build-cg/ + +distclean-fx: clean-fx + @ rm -f $(TARGET_FX) +distclean-cg: clean-cg + @ rm -f $(TARGET_CG) + +clean: clean-fx clean-cg + +distclean: distclean-fx distclean-cg + +install-fx: $(TARGET_FX) + p7 send -f $< +install-cg: $(TARGET_CG) + @ while [[ ! -h /dev/Prizm1 ]]; do sleep 0.25; done + @ while ! mount /dev/Prizm1; do sleep 0.25; done + @ rm -f /mnt/prizm/$< + @ cp $< /mnt/prizm + @ umount /dev/Prizm1 + @- eject /dev/Prizm1 + +.PHONY: all all-fx all-cg clean distclean install-fx install-cg diff --git a/assets-cg/icon-cg-sel.png b/assets-cg/icon-cg-sel.png new file mode 100644 index 0000000..8ae7c89 Binary files /dev/null and b/assets-cg/icon-cg-sel.png differ diff --git a/assets-cg/icon-cg-uns.png b/assets-cg/icon-cg-uns.png new file mode 100644 index 0000000..4041043 Binary files /dev/null and b/assets-cg/icon-cg-uns.png differ diff --git a/assets-cg/img/blue.png b/assets-cg/img/blue.png new file mode 100644 index 0000000..7354b83 Binary files /dev/null and b/assets-cg/img/blue.png differ diff --git a/assets-cg/img/blue_dot.png b/assets-cg/img/blue_dot.png new file mode 100644 index 0000000..0a38613 Binary files /dev/null and b/assets-cg/img/blue_dot.png differ diff --git a/assets-cg/img/bouncer.png b/assets-cg/img/bouncer.png new file mode 100644 index 0000000..a2a5967 Binary files /dev/null and b/assets-cg/img/bouncer.png differ diff --git a/assets-cg/img/dust.png b/assets-cg/img/dust.png new file mode 100644 index 0000000..cf89043 Binary files /dev/null and b/assets-cg/img/dust.png differ diff --git a/assets-cg/img/elevator.png b/assets-cg/img/elevator.png new file mode 100644 index 0000000..90c9b32 Binary files /dev/null and b/assets-cg/img/elevator.png differ diff --git a/assets-cg/img/elevator1.png b/assets-cg/img/elevator1.png new file mode 100644 index 0000000..9b5f74f Binary files /dev/null and b/assets-cg/img/elevator1.png differ diff --git a/assets-cg/img/elevator10.png b/assets-cg/img/elevator10.png new file mode 100644 index 0000000..9e41871 Binary files /dev/null and b/assets-cg/img/elevator10.png differ diff --git a/assets-cg/img/elevator11.png b/assets-cg/img/elevator11.png new file mode 100644 index 0000000..730dbc6 Binary files /dev/null and b/assets-cg/img/elevator11.png differ diff --git a/assets-cg/img/elevator12.png b/assets-cg/img/elevator12.png new file mode 100644 index 0000000..efbd7be Binary files /dev/null and b/assets-cg/img/elevator12.png differ diff --git a/assets-cg/img/elevator13.png b/assets-cg/img/elevator13.png new file mode 100644 index 0000000..3f13933 Binary files /dev/null and b/assets-cg/img/elevator13.png differ diff --git a/assets-cg/img/elevator14.png b/assets-cg/img/elevator14.png new file mode 100644 index 0000000..a0b1411 Binary files /dev/null and b/assets-cg/img/elevator14.png differ diff --git a/assets-cg/img/elevator15.png b/assets-cg/img/elevator15.png new file mode 100644 index 0000000..3a77e45 Binary files /dev/null and b/assets-cg/img/elevator15.png differ diff --git a/assets-cg/img/elevator16.png b/assets-cg/img/elevator16.png new file mode 100644 index 0000000..b2b4d06 Binary files /dev/null and b/assets-cg/img/elevator16.png differ diff --git a/assets-cg/img/elevator2.png b/assets-cg/img/elevator2.png new file mode 100644 index 0000000..57a6603 Binary files /dev/null and b/assets-cg/img/elevator2.png differ diff --git a/assets-cg/img/elevator3.png b/assets-cg/img/elevator3.png new file mode 100644 index 0000000..ef67512 Binary files /dev/null and b/assets-cg/img/elevator3.png differ diff --git a/assets-cg/img/elevator4.png b/assets-cg/img/elevator4.png new file mode 100644 index 0000000..f2178f1 Binary files /dev/null and b/assets-cg/img/elevator4.png differ diff --git a/assets-cg/img/elevator5.png b/assets-cg/img/elevator5.png new file mode 100644 index 0000000..49ec82b Binary files /dev/null and b/assets-cg/img/elevator5.png differ diff --git a/assets-cg/img/elevator6.png b/assets-cg/img/elevator6.png new file mode 100644 index 0000000..8a75c06 Binary files /dev/null and b/assets-cg/img/elevator6.png differ diff --git a/assets-cg/img/elevator7.png b/assets-cg/img/elevator7.png new file mode 100644 index 0000000..6417a80 Binary files /dev/null and b/assets-cg/img/elevator7.png differ diff --git a/assets-cg/img/elevator8.png b/assets-cg/img/elevator8.png new file mode 100644 index 0000000..8a75d8a Binary files /dev/null and b/assets-cg/img/elevator8.png differ diff --git a/assets-cg/img/elevator9.png b/assets-cg/img/elevator9.png new file mode 100644 index 0000000..847d00e Binary files /dev/null and b/assets-cg/img/elevator9.png differ diff --git a/assets-cg/img/exit.png b/assets-cg/img/exit.png new file mode 100644 index 0000000..8145e1c Binary files /dev/null and b/assets-cg/img/exit.png differ diff --git a/assets-cg/img/ground.png b/assets-cg/img/ground.png new file mode 100644 index 0000000..7c1192b Binary files /dev/null and b/assets-cg/img/ground.png differ diff --git a/assets-cg/img/ice.png b/assets-cg/img/ice.png new file mode 100644 index 0000000..4910965 Binary files /dev/null and b/assets-cg/img/ice.png differ diff --git a/assets-cg/img/player.png b/assets-cg/img/player.png new file mode 100644 index 0000000..fda1a75 Binary files /dev/null and b/assets-cg/img/player.png differ diff --git a/assets-cg/img/red.png b/assets-cg/img/red.png new file mode 100644 index 0000000..c41ea41 Binary files /dev/null and b/assets-cg/img/red.png differ diff --git a/assets-cg/img/red_dot.png b/assets-cg/img/red_dot.png new file mode 100644 index 0000000..357d3f4 Binary files /dev/null and b/assets-cg/img/red_dot.png differ diff --git a/assets-cg/img/semi_solid.png b/assets-cg/img/semi_solid.png new file mode 100644 index 0000000..0850ed1 Binary files /dev/null and b/assets-cg/img/semi_solid.png differ diff --git a/assets-cg/img/solid_0.png b/assets-cg/img/solid_0.png new file mode 100644 index 0000000..1c6f0f7 Binary files /dev/null and b/assets-cg/img/solid_0.png differ diff --git a/assets-cg/img/solid_1.png b/assets-cg/img/solid_1.png new file mode 100644 index 0000000..2afbcb3 Binary files /dev/null and b/assets-cg/img/solid_1.png differ diff --git a/assets-cg/img/spike.png b/assets-cg/img/spike.png new file mode 100644 index 0000000..77baffd Binary files /dev/null and b/assets-cg/img/spike.png differ diff --git a/assets-cg/img/teleporter_0.png b/assets-cg/img/teleporter_0.png new file mode 100644 index 0000000..a548045 Binary files /dev/null and b/assets-cg/img/teleporter_0.png differ diff --git a/assets-cg/img/teleporter_1.png b/assets-cg/img/teleporter_1.png new file mode 100644 index 0000000..92e5be4 Binary files /dev/null and b/assets-cg/img/teleporter_1.png differ diff --git a/assets-cg/img/water.png b/assets-cg/img/water.png new file mode 100644 index 0000000..a9af4a9 Binary files /dev/null and b/assets-cg/img/water.png differ diff --git a/build-cg/JTMM.bin b/build-cg/JTMM.bin new file mode 100755 index 0000000..f9d0d04 Binary files /dev/null and b/build-cg/JTMM.bin differ diff --git a/build-cg/JTMM.elf b/build-cg/JTMM.elf new file mode 100755 index 0000000..51ddcd6 Binary files /dev/null and b/build-cg/JTMM.elf differ diff --git a/build-cg/assets/img/blue.png.o b/build-cg/assets/img/blue.png.o new file mode 100644 index 0000000..b48f139 Binary files /dev/null and b/build-cg/assets/img/blue.png.o differ diff --git a/build-cg/assets/img/blue_dot.png.o b/build-cg/assets/img/blue_dot.png.o new file mode 100644 index 0000000..fd3160a Binary files /dev/null and b/build-cg/assets/img/blue_dot.png.o differ diff --git a/build-cg/assets/img/bouncer.png.o b/build-cg/assets/img/bouncer.png.o new file mode 100644 index 0000000..e65b0e4 Binary files /dev/null and b/build-cg/assets/img/bouncer.png.o differ diff --git a/build-cg/assets/img/dust.png.o b/build-cg/assets/img/dust.png.o new file mode 100644 index 0000000..4e9f757 Binary files /dev/null and b/build-cg/assets/img/dust.png.o differ diff --git a/build-cg/assets/img/elevator.png.o b/build-cg/assets/img/elevator.png.o new file mode 100644 index 0000000..9fe721e Binary files /dev/null and b/build-cg/assets/img/elevator.png.o differ diff --git a/build-cg/assets/img/elevator1.png.o b/build-cg/assets/img/elevator1.png.o new file mode 100644 index 0000000..308af12 Binary files /dev/null and b/build-cg/assets/img/elevator1.png.o differ diff --git a/build-cg/assets/img/elevator10.png.o b/build-cg/assets/img/elevator10.png.o new file mode 100644 index 0000000..0396276 Binary files /dev/null and b/build-cg/assets/img/elevator10.png.o differ diff --git a/build-cg/assets/img/elevator11.png.o b/build-cg/assets/img/elevator11.png.o new file mode 100644 index 0000000..36c44c9 Binary files /dev/null and b/build-cg/assets/img/elevator11.png.o differ diff --git a/build-cg/assets/img/elevator12.png.o b/build-cg/assets/img/elevator12.png.o new file mode 100644 index 0000000..7377fb8 Binary files /dev/null and b/build-cg/assets/img/elevator12.png.o differ diff --git a/build-cg/assets/img/elevator13.png.o b/build-cg/assets/img/elevator13.png.o new file mode 100644 index 0000000..1f55d61 Binary files /dev/null and b/build-cg/assets/img/elevator13.png.o differ diff --git a/build-cg/assets/img/elevator14.png.o b/build-cg/assets/img/elevator14.png.o new file mode 100644 index 0000000..f13c34b Binary files /dev/null and b/build-cg/assets/img/elevator14.png.o differ diff --git a/build-cg/assets/img/elevator15.png.o b/build-cg/assets/img/elevator15.png.o new file mode 100644 index 0000000..9631997 Binary files /dev/null and b/build-cg/assets/img/elevator15.png.o differ diff --git a/build-cg/assets/img/elevator16.png.o b/build-cg/assets/img/elevator16.png.o new file mode 100644 index 0000000..bb6c72e Binary files /dev/null and b/build-cg/assets/img/elevator16.png.o differ diff --git a/build-cg/assets/img/elevator2.png.o b/build-cg/assets/img/elevator2.png.o new file mode 100644 index 0000000..93dec30 Binary files /dev/null and b/build-cg/assets/img/elevator2.png.o differ diff --git a/build-cg/assets/img/elevator3.png.o b/build-cg/assets/img/elevator3.png.o new file mode 100644 index 0000000..4350bc2 Binary files /dev/null and b/build-cg/assets/img/elevator3.png.o differ diff --git a/build-cg/assets/img/elevator4.png.o b/build-cg/assets/img/elevator4.png.o new file mode 100644 index 0000000..13fb8f4 Binary files /dev/null and b/build-cg/assets/img/elevator4.png.o differ diff --git a/build-cg/assets/img/elevator5.png.o b/build-cg/assets/img/elevator5.png.o new file mode 100644 index 0000000..1943a98 Binary files /dev/null and b/build-cg/assets/img/elevator5.png.o differ diff --git a/build-cg/assets/img/elevator6.png.o b/build-cg/assets/img/elevator6.png.o new file mode 100644 index 0000000..f2f372c Binary files /dev/null and b/build-cg/assets/img/elevator6.png.o differ diff --git a/build-cg/assets/img/elevator7.png.o b/build-cg/assets/img/elevator7.png.o new file mode 100644 index 0000000..6f0f764 Binary files /dev/null and b/build-cg/assets/img/elevator7.png.o differ diff --git a/build-cg/assets/img/elevator8.png.o b/build-cg/assets/img/elevator8.png.o new file mode 100644 index 0000000..f1010a7 Binary files /dev/null and b/build-cg/assets/img/elevator8.png.o differ diff --git a/build-cg/assets/img/elevator9.png.o b/build-cg/assets/img/elevator9.png.o new file mode 100644 index 0000000..bcb3295 Binary files /dev/null and b/build-cg/assets/img/elevator9.png.o differ diff --git a/build-cg/assets/img/exit.png.o b/build-cg/assets/img/exit.png.o new file mode 100644 index 0000000..82b974d Binary files /dev/null and b/build-cg/assets/img/exit.png.o differ diff --git a/build-cg/assets/img/ground.png.o b/build-cg/assets/img/ground.png.o new file mode 100644 index 0000000..0cdc4e8 Binary files /dev/null and b/build-cg/assets/img/ground.png.o differ diff --git a/build-cg/assets/img/ice.png.o b/build-cg/assets/img/ice.png.o new file mode 100644 index 0000000..c97930e Binary files /dev/null and b/build-cg/assets/img/ice.png.o differ diff --git a/build-cg/assets/img/player.png.o b/build-cg/assets/img/player.png.o new file mode 100644 index 0000000..16cf886 Binary files /dev/null and b/build-cg/assets/img/player.png.o differ diff --git a/build-cg/assets/img/red.png.o b/build-cg/assets/img/red.png.o new file mode 100644 index 0000000..0d724fe Binary files /dev/null and b/build-cg/assets/img/red.png.o differ diff --git a/build-cg/assets/img/red_dot.png.o b/build-cg/assets/img/red_dot.png.o new file mode 100644 index 0000000..02a4b8b Binary files /dev/null and b/build-cg/assets/img/red_dot.png.o differ diff --git a/build-cg/assets/img/semi_solid.png.o b/build-cg/assets/img/semi_solid.png.o new file mode 100644 index 0000000..e77696d Binary files /dev/null and b/build-cg/assets/img/semi_solid.png.o differ diff --git a/build-cg/assets/img/solid_0.png.o b/build-cg/assets/img/solid_0.png.o new file mode 100644 index 0000000..560950d Binary files /dev/null and b/build-cg/assets/img/solid_0.png.o differ diff --git a/build-cg/assets/img/solid_1.png.o b/build-cg/assets/img/solid_1.png.o new file mode 100644 index 0000000..8739d87 Binary files /dev/null and b/build-cg/assets/img/solid_1.png.o differ diff --git a/build-cg/assets/img/spike.png.o b/build-cg/assets/img/spike.png.o new file mode 100644 index 0000000..83f5ad0 Binary files /dev/null and b/build-cg/assets/img/spike.png.o differ diff --git a/build-cg/assets/img/teleporter_0.png.o b/build-cg/assets/img/teleporter_0.png.o new file mode 100644 index 0000000..c2da7e2 Binary files /dev/null and b/build-cg/assets/img/teleporter_0.png.o differ diff --git a/build-cg/assets/img/teleporter_1.png.o b/build-cg/assets/img/teleporter_1.png.o new file mode 100644 index 0000000..ec3571c Binary files /dev/null and b/build-cg/assets/img/teleporter_1.png.o differ diff --git a/build-cg/assets/img/water.png.o b/build-cg/assets/img/water.png.o new file mode 100644 index 0000000..b7209d3 Binary files /dev/null and b/build-cg/assets/img/water.png.o differ diff --git a/build-cg/map b/build-cg/map new file mode 100644 index 0000000..6a8d163 --- /dev/null +++ b/build-cg/map @@ -0,0 +1,983 @@ +Archive member included to satisfy reference by file (symbol) + +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + build-cg/src/main.c.o (_timer_setup) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (_gint_intlevel) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + (_start) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(mmu.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) (_utlb_mapped_memory) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) (_gint_install) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) (_hw_detect) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + build-cg/src/menu.c.o (_clearevents) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (_clock_freq) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + build-cg/src/menu.c.o (_dprint) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + build-cg/src/levels.c.o (_memcpy) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) (_vsnprintf) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + build-cg/src/menu.c.o (_dclear) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + build-cg/src/menu.c.o (_dtext) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_topti_glyph_fg_bg) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) (_gint_vram) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + build-cg/src/draw.c.o (_dimage) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + build-cg/src/menu.c.o (_dupdate) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_drect) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) (_r61524_display) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(font8x9.png.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_gint_font8x9) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (_inth_tmu) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) (_gint_panic) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(vbr.s.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) (_gint_setvbr) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) (_gint_exch_tlbh) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) (_gint_inth_7305) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) (_getkey_repeat) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) (_dfont) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_strlen) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) (_dma_memset) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) (_dma_transfer) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) (_bopti_render_clip) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) (_bopti_r5g6b5) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) (_inth_dma_te) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (___movmemSI24) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_div_table.o) + build-cg/src/draw.c.o (___sdivsi3_i4i) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (___udivdi3) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) (___umoddi3) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + build-cg/src/main.c.o (___adddf3) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + build-cg/src/main.c.o (___muldf3) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + build-cg/src/main.c.o (___nedf2) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + build-cg/src/main.c.o (___gtdf2) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + build-cg/src/main.c.o (___gedf2) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + build-cg/src/main.c.o (___ltdf2) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + build-cg/src/main.c.o (___floatsidf) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + build-cg/src/main.c.o (___fixdfsi) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) (___thenan_df) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) (___udiv_qrnnd_16) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) (___clz_tab) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) (___clzsi2) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) (___pack_d) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) (___unpack_d) +/home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) (___fpcmp_parts_d) + +Discarded input sections + + .comment 0x0000000000000000 0x12 build-cg/src/menu.c.o + .comment 0x0000000000000000 0x12 build-cg/src/collide.c.o + .comment 0x0000000000000000 0x12 build-cg/src/player.c.o + .comment 0x0000000000000000 0x12 build-cg/src/draw.c.o + .comment 0x0000000000000000 0x12 build-cg/src/levels.c.o + .comment 0x0000000000000000 0x12 build-cg/src/main.c.o + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(mmu.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + .debug_info 0x0000000000000000 0x737 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_abbrev 0x0000000000000000 0x218 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_loc 0x0000000000000000 0x6d5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_ranges 0x0000000000000000 0xf0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_line 0x0000000000000000 0x28f /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_str 0x0000000000000000 0x5a9 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .eh_frame 0x0000000000000000 0x80 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_info 0x0000000000000000 0x746 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_abbrev 0x0000000000000000 0x229 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_loc 0x0000000000000000 0x6ef /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_ranges 0x0000000000000000 0x108 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_line 0x0000000000000000 0x2e5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_str 0x0000000000000000 0x5a9 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .eh_frame 0x0000000000000000 0x90 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_info 0x0000000000000000 0x740 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_abbrev 0x0000000000000000 0x244 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_loc 0x0000000000000000 0x6aa /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_ranges 0x0000000000000000 0x60 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_line 0x0000000000000000 0x400 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_str 0x0000000000000000 0x616 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_info 0x0000000000000000 0x6e9 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_abbrev 0x0000000000000000 0x27c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_loc 0x0000000000000000 0x4c5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_ranges 0x0000000000000000 0xa8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_line 0x0000000000000000 0x356 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_str 0x0000000000000000 0x5e8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_info 0x0000000000000000 0x4f4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_abbrev 0x0000000000000000 0x1b7 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_loc 0x0000000000000000 0x50 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_line 0x0000000000000000 0x11a /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_str 0x0000000000000000 0x5a5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_info 0x0000000000000000 0x4f4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_abbrev 0x0000000000000000 0x1b7 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_loc 0x0000000000000000 0x50 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_line 0x0000000000000000 0x11a /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_str 0x0000000000000000 0x5a5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_info 0x0000000000000000 0x4f4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_abbrev 0x0000000000000000 0x1b7 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_loc 0x0000000000000000 0x50 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_line 0x0000000000000000 0x11a /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_str 0x0000000000000000 0x5a5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_info 0x0000000000000000 0x4f4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_abbrev 0x0000000000000000 0x1b7 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_loc 0x0000000000000000 0x50 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_line 0x0000000000000000 0x11a /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_str 0x0000000000000000 0x5a5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_info 0x0000000000000000 0x494 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_abbrev 0x0000000000000000 0x1fb /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_loc 0x0000000000000000 0xd1 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_ranges 0x0000000000000000 0x48 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_line 0x0000000000000000 0x19e /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_str 0x0000000000000000 0x580 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_info 0x0000000000000000 0x4ce /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_abbrev 0x0000000000000000 0x1bb /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_loc 0x0000000000000000 0x49 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_line 0x0000000000000000 0x152 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_str 0x0000000000000000 0x59d /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_info 0x0000000000000000 0x391 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .debug_abbrev 0x0000000000000000 0x11c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .debug_aranges + 0x0000000000000000 0x18 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .debug_line 0x0000000000000000 0xab /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .debug_str 0x0000000000000000 0x533 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .debug_info 0x0000000000000000 0x371 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_abbrev 0x0000000000000000 0xcf /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_aranges + 0x0000000000000000 0x18 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_line 0x0000000000000000 0xe2 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_str 0x0000000000000000 0x526 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_info 0x0000000000000000 0x3de /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_abbrev 0x0000000000000000 0x129 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_loc 0x0000000000000000 0x5a /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_ranges 0x0000000000000000 0x38 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_line 0x0000000000000000 0x13c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_str 0x0000000000000000 0x543 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_info 0x0000000000000000 0x4d4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_abbrev 0x0000000000000000 0x1cb /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_loc 0x0000000000000000 0x31c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_ranges 0x0000000000000000 0x58 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_line 0x0000000000000000 0x282 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_str 0x0000000000000000 0x591 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_info 0x0000000000000000 0x45d /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_abbrev 0x0000000000000000 0x18b /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_loc 0x0000000000000000 0xb5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_line 0x0000000000000000 0x1a8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_str 0x0000000000000000 0x573 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_info 0x0000000000000000 0x425 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + .debug_abbrev 0x0000000000000000 0x173 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + .debug_line 0x0000000000000000 0x1fd /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + .debug_str 0x0000000000000000 0x556 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + .comment 0x0000000000000000 0x12 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + +Memory Configuration + +Name Origin Length Attributes +rom 0x0000000000300000 0x0000000000037000 xr +ram 0x0000000008102000 0x000000000007e000 rw +vbr 0x000000008c160000 0x0000000000001400 xrw +rram 0x000000008c161400 0x0000000000000c00 xrw +ilram 0x00000000e5200000 0x0000000000001000 xrw +xram 0x00000000e5007000 0x0000000000002000 xrw +yram 0x00000000e5017000 0x0000000000002000 xrw +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD build-cg/src/menu.c.o +LOAD build-cg/src/collide.c.o +LOAD build-cg/src/player.c.o +LOAD build-cg/src/draw.c.o +LOAD build-cg/src/levels.c.o +LOAD build-cg/src/main.c.o +LOAD build-cg/assets/img/semi_solid.png.o +LOAD build-cg/assets/img/elevator13.png.o +LOAD build-cg/assets/img/elevator1.png.o +LOAD build-cg/assets/img/ground.png.o +LOAD build-cg/assets/img/dust.png.o +LOAD build-cg/assets/img/elevator6.png.o +LOAD build-cg/assets/img/spike.png.o +LOAD build-cg/assets/img/solid_1.png.o +LOAD build-cg/assets/img/blue.png.o +LOAD build-cg/assets/img/elevator8.png.o +LOAD build-cg/assets/img/bouncer.png.o +LOAD build-cg/assets/img/elevator2.png.o +LOAD build-cg/assets/img/elevator11.png.o +LOAD build-cg/assets/img/elevator5.png.o +LOAD build-cg/assets/img/red.png.o +LOAD build-cg/assets/img/teleporter_0.png.o +LOAD build-cg/assets/img/ice.png.o +LOAD build-cg/assets/img/elevator12.png.o +LOAD build-cg/assets/img/elevator16.png.o +LOAD build-cg/assets/img/elevator4.png.o +LOAD build-cg/assets/img/elevator7.png.o +LOAD build-cg/assets/img/teleporter_1.png.o +LOAD build-cg/assets/img/water.png.o +LOAD build-cg/assets/img/exit.png.o +LOAD build-cg/assets/img/elevator10.png.o +LOAD build-cg/assets/img/player.png.o +LOAD build-cg/assets/img/elevator3.png.o +LOAD build-cg/assets/img/blue_dot.png.o +LOAD build-cg/assets/img/elevator15.png.o +LOAD build-cg/assets/img/elevator9.png.o +LOAD build-cg/assets/img/elevator.png.o +LOAD build-cg/assets/img/red_dot.png.o +LOAD build-cg/assets/img/solid_0.png.o +LOAD build-cg/assets/img/elevator14.png.o +LOAD /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a +LOAD /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a +LOAD /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a + 0x0000000000300000 _brom = 0x300000 + 0x000000000000e30c _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + +.text 0x0000000000300000 0x5e18 + *(.pretext.entry) + .pretext.entry + 0x0000000000300000 0x1a4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + 0x0000000000300000 _start + *(.pretext) + .pretext 0x00000000003001a4 0x30 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .pretext 0x00000000003001d4 0x40 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + 0x00000000003001d4 _hw_detect + .pretext 0x0000000000300214 0x23c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x0000000000300214 _topti_render + 0x0000000000300404 _dtext + .pretext 0x0000000000300450 0xc4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + 0x0000000000300450 _topti_glyph_fg_bg + 0x000000000030048e _topti_glyph_fg + 0x00000000003004c8 _topti_glyph_bg + .pretext 0x0000000000300514 0x110 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x0000000000300514 _dfont + 0x000000000030052c _charset_size + 0x0000000000300558 _charset_decode + 0x00000000003005c6 _topti_offset + 0x0000000000300624 _btors = . + *(.ctors .ctors.*) + 0x0000000000300624 _mtors = . + *(.dtors .dtors.*) + 0x0000000000300624 _etors = . + 0x0000000000300624 _gint_exch_tlbh_start = . + *(.gint.exch_tlbh) + *fill* 0x0000000000300624 0xc + .gint.exch_tlbh + 0x0000000000300630 0x4c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + 0x0000000000300630 _gint_exch_tlbh + 0x0000000000000058 _gint_exch_tlbh_size = ABSOLUTE ((. - _gint_exch_tlbh_start)) + *(.text .text.*) + .text 0x000000000030067c 0x2f8 build-cg/src/menu.c.o + 0x000000000030067c _menu_level_selection + 0x000000000030079c _menu + .text 0x0000000000300974 0x2b0 build-cg/src/collide.c.o + 0x0000000000300974 _collide + 0x00000000003009ec _collide_point + 0x0000000000300a1a _collide_spike + 0x0000000000300a94 _collide_solid + 0x0000000000300b80 _collide_and_erase + .text 0x0000000000300c24 0x74 build-cg/src/player.c.o + 0x0000000000300c24 _jump_test + 0x0000000000300c88 _set_start_pos + 0x0000000000300c8e _reset_old_pos + .text 0x0000000000300c98 0x3e0 build-cg/src/draw.c.o + 0x0000000000300c98 _draw_anim_speed + 0x0000000000300cf0 _draw_anim + 0x0000000000300d0c _draw_player + 0x0000000000300d20 _erase_tile + 0x0000000000300d4a _draw_level + 0x0000000000300f4c _draw_timer + 0x0000000000300f90 _just_breathe + .text 0x0000000000301078 0xb8 build-cg/src/levels.c.o + 0x0000000000301078 _set_level + .text 0x0000000000301130 0x14 build-cg/src/main.c.o + 0x0000000000301130 _callback + 0x0000000000301138 _sgn + .text.startup 0x0000000000301144 0x954 build-cg/src/main.c.o + 0x0000000000301144 _main + .text 0x0000000000301a98 0x584 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000301d88 _timer_setup + 0x0000000000301e50 _timer_delay + 0x0000000000301eb0 _timer_start + 0x0000000000301ee8 _timer_reload + 0x0000000000301f20 _timer_pause + 0x0000000000301f5c _timer_stop + 0x0000000000301fd8 _timer_timeout + 0x0000000000301fe4 _timer_clear + .text 0x000000000030201c 0x5c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + 0x000000000030201c _gint_intlevel + 0x0000000000302054 _gint_inthandler + .text 0x0000000000302078 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .text 0x0000000000302078 0xf8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(mmu.c.o) + 0x0000000000302078 _utlb_addr + 0x0000000000302088 _utlb_data + 0x0000000000302098 _utlb_mapped_memory + .text 0x0000000000302170 0x2c0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) + 0x000000000030230c _gint_install + 0x0000000000302388 _gint_unload + 0x00000000003023cc _gint_switch + 0x000000000030242c _gint_osmenu + .text 0x0000000000302430 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + .text 0x0000000000302430 0x420 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + 0x0000000000302604 _pollevent + 0x0000000000302740 _waitevent + 0x000000000030278c _clearevents + 0x00000000003027ac _keydown + 0x00000000003027d8 _keydown_all + 0x0000000000302814 _keydown_any + .text 0x0000000000302850 0xc8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + 0x000000000030290c _clock_freq + .text 0x0000000000302918 0x58 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + 0x0000000000302918 _dprint + .text 0x0000000000302970 0xdc /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + 0x0000000000302970 _memcpy + 0x0000000000302a2a __memmove + 0x0000000000302a2e __memcmp + 0x0000000000302a32 _memset + .text 0x0000000000302a4c 0xce4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + 0x0000000000303448 _kprint_opt + 0x0000000000303590 _kprint + 0x0000000000303668 _kvsprint + 0x00000000003036b0 _sprintf + 0x00000000003036d8 _vsprintf + 0x00000000003036f8 _snprintf + 0x0000000000303718 _vsnprintf + .text 0x0000000000303730 0x1c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + 0x0000000000303730 _dclear + .text 0x000000000030374c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .text 0x000000000030374c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + .text 0x000000000030374c 0x6c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + 0x000000000030374c _dsetvram + 0x0000000000303778 _dgetvram + 0x0000000000303798 _dvram_switch + .text 0x00000000003037b8 0x40 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + 0x00000000003037b8 _dimage + 0x00000000003037e0 _dsubimage + .text 0x00000000003037f8 0x3c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + 0x00000000003037f8 _dupdate + 0x000000000030381c _dupdate_noint + .text 0x0000000000303834 0xc0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + 0x0000000000303834 _drect + .text 0x00000000003038f4 0x2d4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000303944 _r61524_win_get + 0x00000000003039fc _r61524_win_set + 0x0000000000303abc _r61524_display + .text 0x0000000000303bc8 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .text 0x0000000000303bc8 0x2e4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x0000000000303e70 _gint_panic + 0x0000000000303e80 _gint_panic_set + 0x0000000000303e94 _gint_exc_catch + 0x0000000000303ea0 _gint_exc_skip + .text 0x0000000000303eac 0x2c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(vbr.s.o) + 0x0000000000303eac _gint_setvbr + .text 0x0000000000303ed8 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + .text 0x0000000000303ed8 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + .text 0x0000000000303ed8 0x1f8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + 0x0000000000303ed8 _getkey_opt + 0x0000000000304088 _getkey + 0x0000000000304094 _getkey_repeat + .text 0x00000000003040d0 0x9c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x00000000003040d0 _dsize + .text 0x000000000030416c 0x7c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + 0x000000000030416c _strlen + 0x000000000030417c _strncpy + 0x0000000000304194 _strcat + 0x00000000003041d8 _strcmp + .text 0x00000000003041e8 0x4c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + 0x00000000003041e8 _dma_memset + .text 0x0000000000304234 0x418 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + 0x0000000000304494 _dma_transfer + 0x00000000003044d4 _dma_transfer_wait + 0x00000000003045e0 _dma_transfer_noint + .text 0x000000000030464c 0x1e4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + 0x000000000030464c _bopti_render + 0x000000000030473c _bopti_render_clip + 0x0000000000304804 _bopti_render_noclip + .text 0x0000000000304830 0x100 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + 0x0000000000304830 _bopti_r5g6b5 + 0x0000000000304880 _bopti_r5g6b5a + 0x00000000003048b0 _bopti_p8 + 0x00000000003048e0 _bopti_p4 + .text 0x0000000000304930 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .text 0x0000000000304930 0x78 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + 0x0000000000304930 ___movstr + 0x0000000000304930 ___movmem + 0x0000000000304964 ___movmemSI64 + 0x0000000000304964 ___movstrSI64 + 0x0000000000304968 ___movstrSI60 + 0x0000000000304968 ___movmemSI60 + 0x000000000030496c ___movmemSI56 + 0x000000000030496c ___movstrSI56 + 0x0000000000304970 ___movstrSI52 + 0x0000000000304970 ___movmemSI52 + 0x0000000000304974 ___movstrSI48 + 0x0000000000304974 ___movmemSI48 + 0x0000000000304978 ___movstrSI44 + 0x0000000000304978 ___movmemSI44 + 0x000000000030497c ___movstrSI40 + 0x000000000030497c ___movmemSI40 + 0x0000000000304980 ___movstrSI36 + 0x0000000000304980 ___movmemSI36 + 0x0000000000304984 ___movmemSI32 + 0x0000000000304984 ___movstrSI32 + 0x0000000000304988 ___movmemSI28 + 0x0000000000304988 ___movstrSI28 + 0x000000000030498c ___movstrSI24 + 0x000000000030498c ___movmemSI24 + 0x0000000000304990 ___movmemSI20 + 0x0000000000304990 ___movstrSI20 + 0x0000000000304994 ___movstrSI16 + 0x0000000000304994 ___movmemSI16 + 0x0000000000304998 ___movmemSI12 + 0x0000000000304998 ___movstrSI12 + 0x000000000030499c ___movmemSI8 + 0x000000000030499c ___movstrSI8 + 0x00000000003049a0 ___movmemSI4 + 0x00000000003049a0 ___movstrSI4 + .text 0x00000000003049a8 0x424 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_div_table.o) + 0x00000000003049a8 ___udivsi3_i4i + 0x0000000000304a78 ___sdivsi3_i4i + .text 0x0000000000304dcc 0x1e0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + 0x0000000000304dcc ___udivdi3 + .text 0x0000000000304fac 0x208 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + 0x0000000000304fac ___umoddi3 + .text 0x00000000003051b4 0x348 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + 0x0000000000305458 ___adddf3 + 0x00000000003054a8 ___subdf3 + .text 0x00000000003054fc 0x208 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + 0x00000000003054fc ___muldf3 + .text 0x0000000000305704 0x58 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + 0x0000000000305704 ___nedf2 + .text 0x000000000030575c 0x58 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + 0x000000000030575c ___gtdf2 + .text 0x00000000003057b4 0x58 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + 0x00000000003057b4 ___gedf2 + .text 0x000000000030580c 0x58 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + 0x000000000030580c ___ltdf2 + .text 0x0000000000305864 0x98 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + 0x0000000000305864 ___floatsidf + .text 0x00000000003058fc 0x8c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + 0x00000000003058fc ___fixdfsi + .text 0x0000000000305988 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .text 0x0000000000305988 0x60 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000305988 ___udiv_qrnnd_16 + .text 0x00000000003059e8 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .text 0x00000000003059e8 0x54 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + 0x00000000003059e8 ___clzsi2 + .text 0x0000000000305a3c 0x240 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + 0x0000000000305a3c ___pack_d + .text 0x0000000000305c7c 0xcc /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + 0x0000000000305c7c ___unpack_d + .text 0x0000000000305d48 0xd0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + 0x0000000000305d48 ___fpcmp_parts_d + +.gint.blocks 0x0000000000305e20 0x160 + *(.gint.blocks) + .gint.blocks 0x0000000000305e20 0xe0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + 0x0000000000305e20 _inth_tmu + 0x0000000000305ea0 _inth_etmu2 + 0x0000000000305ec0 _inth_etmu_help + 0x0000000000305ee0 _inth_etmux + .gint.blocks 0x0000000000305f00 0x40 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + 0x0000000000305f00 _gint_inth_7305 + .gint.blocks 0x0000000000305f40 0x40 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + 0x0000000000305f40 _inth_dma_te + 0x0000000000305f60 _inth_dma_ae + +.gint.drivers 0x0000000000305f80 0xb4 + 0x0000000000305f80 _bdrv = . + *(.gint.drivers.0) + *(.gint.drivers.1) + .gint.drivers.1 + 0x0000000000305f80 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + 0x0000000000305f80 _drv_cpg + *(.gint.drivers.2) + .gint.drivers.2 + 0x0000000000305fa4 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000305fa4 _drv_tmu + .gint.drivers.2 + 0x0000000000305fc8 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + 0x0000000000305fc8 _drv_dma0 + *(.gint.drivers.3) + *(.gint.drivers.4) + .gint.drivers.4 + 0x0000000000305fec 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + 0x0000000000305fec _drv_keysc + *(.gint.drivers.5) + .gint.drivers.5 + 0x0000000000306010 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000306010 _drv_r61524 + *(.gint.drivers.6) + 0x0000000000306034 _edrv = . + +.rodata 0x0000000000306034 0x82e0 + *(.rodata.4) + *(.rodata .rodata.*) + .rodata.str1.4 + 0x0000000000306034 0x58 build-cg/src/menu.c.o + .rodata.str1.4 + 0x000000000030608c 0x16 build-cg/src/draw.c.o + 0x1e (size before relaxing) + *fill* 0x00000000003060a2 0x2 + .rodata.str1.4 + 0x00000000003060a4 0x185d build-cg/src/levels.c.o + *fill* 0x0000000000307901 0x3 + .rodata 0x0000000000307904 0x208 build-cg/assets/img/semi_solid.png.o + 0x0000000000307904 _img_semi_solid + 0x0000000000307b0c _img_semi_solid_end + .rodata 0x0000000000307b0c 0x208 build-cg/assets/img/elevator13.png.o + 0x0000000000307b0c _img_elevator13 + 0x0000000000307d14 _img_elevator13_end + .rodata 0x0000000000307d14 0x208 build-cg/assets/img/elevator1.png.o + 0x0000000000307d14 _img_elevator1 + 0x0000000000307f1c _img_elevator1_end + .rodata 0x0000000000307f1c 0x208 build-cg/assets/img/ground.png.o + 0x0000000000307f1c _img_ground + 0x0000000000308124 _img_ground_end + .rodata 0x0000000000308124 0x208 build-cg/assets/img/dust.png.o + 0x0000000000308124 _img_dust + 0x000000000030832c _img_dust_end + .rodata 0x000000000030832c 0x208 build-cg/assets/img/elevator6.png.o + 0x000000000030832c _img_elevator6 + 0x0000000000308534 _img_elevator6_end + .rodata 0x0000000000308534 0x208 build-cg/assets/img/spike.png.o + 0x0000000000308534 _img_spike + 0x000000000030873c _img_spike_end + .rodata 0x000000000030873c 0x208 build-cg/assets/img/solid_1.png.o + 0x000000000030873c _img_solid_1 + 0x0000000000308944 _img_solid_1_end + .rodata 0x0000000000308944 0x208 build-cg/assets/img/blue.png.o + 0x0000000000308944 _img_blue + 0x0000000000308b4c _img_blue_end + .rodata 0x0000000000308b4c 0x208 build-cg/assets/img/elevator8.png.o + 0x0000000000308b4c _img_elevator8 + 0x0000000000308d54 _img_elevator8_end + .rodata 0x0000000000308d54 0x208 build-cg/assets/img/bouncer.png.o + 0x0000000000308d54 _img_bouncer + 0x0000000000308f5c _img_bouncer_end + .rodata 0x0000000000308f5c 0x208 build-cg/assets/img/elevator2.png.o + 0x0000000000308f5c _img_elevator2 + 0x0000000000309164 _img_elevator2_end + .rodata 0x0000000000309164 0x208 build-cg/assets/img/elevator11.png.o + 0x0000000000309164 _img_elevator11 + 0x000000000030936c _img_elevator11_end + .rodata 0x000000000030936c 0x208 build-cg/assets/img/elevator5.png.o + 0x000000000030936c _img_elevator5 + 0x0000000000309574 _img_elevator5_end + .rodata 0x0000000000309574 0x208 build-cg/assets/img/red.png.o + 0x0000000000309574 _img_red + 0x000000000030977c _img_red_end + .rodata 0x000000000030977c 0x208 build-cg/assets/img/teleporter_0.png.o + 0x000000000030977c _img_teleporter_0 + 0x0000000000309984 _img_teleporter_0_end + .rodata 0x0000000000309984 0x108 build-cg/assets/img/ice.png.o + 0x0000000000309984 _img_ice + 0x0000000000309a8c _img_ice_end + .rodata 0x0000000000309a8c 0x208 build-cg/assets/img/elevator12.png.o + 0x0000000000309a8c _img_elevator12 + 0x0000000000309c94 _img_elevator12_end + .rodata 0x0000000000309c94 0x208 build-cg/assets/img/elevator16.png.o + 0x0000000000309c94 _img_elevator16 + 0x0000000000309e9c _img_elevator16_end + .rodata 0x0000000000309e9c 0x208 build-cg/assets/img/elevator4.png.o + 0x0000000000309e9c _img_elevator4 + 0x000000000030a0a4 _img_elevator4_end + .rodata 0x000000000030a0a4 0x208 build-cg/assets/img/elevator7.png.o + 0x000000000030a0a4 _img_elevator7 + 0x000000000030a2ac _img_elevator7_end + .rodata 0x000000000030a2ac 0x208 build-cg/assets/img/teleporter_1.png.o + 0x000000000030a2ac _img_teleporter_1 + 0x000000000030a4b4 _img_teleporter_1_end + .rodata 0x000000000030a4b4 0x208 build-cg/assets/img/water.png.o + 0x000000000030a4b4 _img_water + 0x000000000030a6bc _img_water_end + .rodata 0x000000000030a6bc 0x208 build-cg/assets/img/exit.png.o + 0x000000000030a6bc _img_exit + 0x000000000030a8c4 _img_exit_end + .rodata 0x000000000030a8c4 0x208 build-cg/assets/img/elevator10.png.o + 0x000000000030a8c4 _img_elevator10 + 0x000000000030aacc _img_elevator10_end + .rodata 0x000000000030aacc 0x128 build-cg/assets/img/player.png.o + 0x000000000030aacc _img_player + 0x000000000030abf4 _img_player_end + .rodata 0x000000000030abf4 0x208 build-cg/assets/img/elevator3.png.o + 0x000000000030abf4 _img_elevator3 + 0x000000000030adfc _img_elevator3_end + .rodata 0x000000000030adfc 0x208 build-cg/assets/img/blue_dot.png.o + 0x000000000030adfc _img_blue_dot + 0x000000000030b004 _img_blue_dot_end + .rodata 0x000000000030b004 0x208 build-cg/assets/img/elevator15.png.o + 0x000000000030b004 _img_elevator15 + 0x000000000030b20c _img_elevator15_end + .rodata 0x000000000030b20c 0x208 build-cg/assets/img/elevator9.png.o + 0x000000000030b20c _img_elevator9 + 0x000000000030b414 _img_elevator9_end + .rodata 0x000000000030b414 0x2008 build-cg/assets/img/elevator.png.o + 0x000000000030b414 _img_elevator + 0x000000000030d41c _img_elevator_end + .rodata 0x000000000030d41c 0x208 build-cg/assets/img/red_dot.png.o + 0x000000000030d41c _img_red_dot + 0x000000000030d624 _img_red_dot_end + .rodata 0x000000000030d624 0x208 build-cg/assets/img/solid_0.png.o + 0x000000000030d624 _img_solid_0 + 0x000000000030d82c _img_solid_0_end + .rodata 0x000000000030d82c 0x208 build-cg/assets/img/elevator14.png.o + 0x000000000030d82c _img_elevator14 + 0x000000000030da34 _img_elevator14_end + .rodata 0x000000000030da34 0xc /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .rodata.str1.4 + 0x000000000030da40 0x4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .rodata.str1.4 + 0x000000000030da44 0x6 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + *fill* 0x000000000030da4a 0x2 + .rodata.str1.4 + 0x000000000030da4c 0x4 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .rodata.str1.4 + 0x000000000030da50 0x31 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + *fill* 0x000000000030da81 0x3 + .rodata.str1.4 + 0x000000000030da84 0x7 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + *fill* 0x000000000030da8b 0x1 + .rodata 0x000000000030da8c 0x49c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(font8x9.png.o) + 0x000000000030da8c _gint_font8x9 + 0x000000000030df28 _gint_font8x9_end + .rodata.str1.4 + 0x000000000030df28 0x288 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x28c (size before relaxing) + .rodata 0x000000000030e1b0 0x18 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .rodata 0x000000000030e1c8 0x30 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .rodata.str1.4 + 0x000000000030e1f8 0x5 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + *fill* 0x000000000030e1fd 0x3 + .rodata 0x000000000030e200 0x14 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + 0x000000000030e200 ___thenan_df + .rodata 0x000000000030e214 0x100 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + 0x000000000030e214 ___clz_tab + +.rela.dyn 0x000000000030e314 0x0 + .rela.text 0x000000000030e314 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + .rela.pretext.entry + 0x000000000030e314 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + .rela.pretext 0x000000000030e314 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + 0x0000000008102000 . = ORIGIN (ram) + +.bss 0x0000000008102000 0x170 + 0x0000000008102000 _rbss = . + *(.bss COMMON) + .bss 0x0000000008102000 0x0 build-cg/src/menu.c.o + .bss 0x0000000008102000 0x0 build-cg/src/collide.c.o + .bss 0x0000000008102000 0x0 build-cg/src/player.c.o + .bss 0x0000000008102000 0x0 build-cg/src/draw.c.o + .bss 0x0000000008102000 0x0 build-cg/src/levels.c.o + .bss 0x0000000008102000 0x0 build-cg/src/main.c.o + .bss 0x0000000008102000 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .bss 0x0000000008102000 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + .bss 0x0000000008102000 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .bss 0x0000000008102000 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(mmu.c.o) + .bss 0x0000000008102000 0x26 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) + .bss 0x0000000008102026 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + *fill* 0x0000000008102026 0x2 + .bss 0x0000000008102028 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .bss 0x000000000810204c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .bss 0x000000000810204c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + .bss 0x000000000810204c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + .bss 0x000000000810204c 0x114 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(vbr.s.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + .bss 0x0000000008102160 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + .bss 0x0000000008102160 0xc /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_div_table.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .bss 0x000000000810216c 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + 0x0000000008102170 . = ALIGN (0x10) + *fill* 0x000000000810216c 0x4 + 0x0000000000000170 _sbss = SIZEOF (.bss) + +.data 0x0000000008102170 0x90 load address 0x000000000030e314 + 0x000000000030e314 _ldata = LOADADDR (.data) + 0x0000000008102170 _rdata = . + *(.data .data.*) + .data 0x0000000008102170 0x0 build-cg/src/menu.c.o + .data 0x0000000008102170 0x0 build-cg/src/collide.c.o + .data 0x0000000008102170 0x0 build-cg/src/player.c.o + .data 0x0000000008102170 0x0 build-cg/src/draw.c.o + .data 0x0000000008102170 0x0 build-cg/src/levels.c.o + .data 0x0000000008102170 0x0 build-cg/src/main.c.o + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(mmu.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + .data 0x0000000008102170 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + .data 0x0000000008102170 0x68 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + 0x0000000008102170 _kprint_formatters + .data 0x00000000081021d8 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + .data 0x00000000081021d8 0x8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x00000000081021d8 _topti_font + 0x00000000081021dc _gint_default_font + .data 0x00000000081021e0 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + .data 0x00000000081021e0 0xc /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + 0x00000000081021e0 _gint_vram + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(vbr.s.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + .data 0x00000000081021ec 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + .data 0x00000000081021ec 0x8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_div_table.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_thenan_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .data 0x00000000081021f4 0x0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) + 0x0000000008102200 . = ALIGN (0x10) + *fill* 0x00000000081021f4 0xc + +.data.4 0x0000000008102200 0x0 load address 0x000000000030e3a4 + *(.data.4) + 0x0000000008102200 . = ALIGN (0x10) + 0x0000000000000090 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) + 0x00000000e5200000 . = ORIGIN (ilram) + +.ilram 0x00000000e5200000 0x20 load address 0x000000000030e3a4 + 0x000000000030e3a4 _lilram = LOADADDR (.ilram) + 0x00000000e5200000 _rilram = . + *(.ilram) + .ilram 0x00000000e5200000 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + 0x00000000e5200020 . = ALIGN (0x10) + 0x00000000e5007000 . = ORIGIN (xram) + +.xram 0x00000000e5007000 0x0 load address 0x000000000030e3c4 + 0x000000000030e3c4 _lxram = LOADADDR (.xram) + 0x00000000e5007000 _rxram = . + *(.xram) + 0x00000000e5007000 . = ALIGN (0x10) + 0x00000000e5017000 . = ORIGIN (yram) + +.yram 0x00000000e5017000 0x0 load address 0x000000000030e3c4 + 0x000000000030e3c4 _lyram = LOADADDR (.yram) + 0x00000000e5017000 _ryram = . + *(.yram) + 0x00000000e5017000 . = ALIGN (0x10) + 0x0000000000000020 _silram = SIZEOF (.ilram) + 0x0000000000000000 _sxram = SIZEOF (.xram) + 0x0000000000000000 _syram = SIZEOF (.yram) + 0x000000008c15ff00 _gint_vbr = (ORIGIN (vbr) - 0x100) + 0x000000008c161400 . = ORIGIN (rram) + +.gint.data 0x000000008c161400 0xa0 load address 0x000000000030e3c4 + 0x000000000030e3c4 _lgdata = LOADADDR (.gint.data) + 0x000000008c161400 _rgdata = . + *(.gint.data .gint.data.*) + .gint.data 0x000000008c161400 0x30 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .gint.data 0x000000008c161430 0x10 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + 0x000000008c161430 _SH7305_INTC + .gint.data.sh3 + 0x000000008c161440 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(gint.c.o) + 0x000000008c161440 _SH7705_INTC + .gint.data 0x000000008c161464 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .gint.data 0x000000008c161488 0x8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .gint.data 0x000000008c161490 0x8 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x000000008c161490 _gint_exc_catcher + 0x000000008c161494 _gint_exc_panic + 0x000000008c1614a0 . = ALIGN (0x10) + *fill* 0x000000008c161498 0x8 + 0x00000000000000a0 _sgdata = SIZEOF (.gint.data) + +.gint.bss 0x000000008c1614a0 0x4f0 load address 0x000000000030e464 + *(.gint.bss .gint.bss.*) + .gint.bss 0x000000008c1614a0 0x200 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .gint.bss 0x000000008c1616a0 0x2c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(setup.c.o) + .gint.bss 0x000000008c1616cc 0x40 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + 0x000000008c1616cc _gint + .gint.bss 0x000000008c16170c 0x180 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .gint.bss 0x000000008c16188c 0x24 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .gint.bss 0x000000008c1618b0 0x10 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .gint.bss 0x000000008c1618c0 0xd0 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + 0x000000008c161990 . = ALIGN (0x10) + 0x00000000000004f0 _sgbss = SIZEOF (.gint.bss) + +/DISCARD/ + *(.gint.bss.sh3) + *(.gint.data.sh3) + *(.debug_info .debug_abbrev .debug_loc .debug_aranges .debug_ranges .debug_line .debug_str) + *(.jcr) + *(.eh_frame_hdr) + *(.eh_frame) + *(.comment) +OUTPUT(build-cg/JTMM.elf elf32-sh) + +.debug_frame 0x0000000000000000 0x410 + .debug_frame 0x0000000000000000 0x10c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_addsub_df.o) + .debug_frame 0x000000000000010c 0x98 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_mul_df.o) + .debug_frame 0x00000000000001a4 0x48 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ne_df.o) + .debug_frame 0x00000000000001ec 0x48 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_gt_df.o) + .debug_frame 0x0000000000000234 0x48 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_ge_df.o) + .debug_frame 0x000000000000027c 0x48 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_lt_df.o) + .debug_frame 0x00000000000002c4 0x3c /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_si_to_df.o) + .debug_frame 0x0000000000000300 0x48 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_df_to_si.o) + .debug_frame 0x0000000000000348 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clzsi2.o) + .debug_frame 0x0000000000000368 0x68 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_pack_df.o) + .debug_frame 0x00000000000003d0 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_unpack_df.o) + .debug_frame 0x00000000000003f0 0x20 /home/massena/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_fpcmp_parts_df.o) diff --git a/build-cg/src/collide.c.d b/build-cg/src/collide.c.d new file mode 100644 index 0000000..2317244 --- /dev/null +++ b/build-cg/src/collide.c.d @@ -0,0 +1,8 @@ +build-cg/src/collide.c.o: src/collide.c include/collide.h include/draw.h \ + include/shared_define.h + +include/collide.h: + +include/draw.h: + +include/shared_define.h: diff --git a/build-cg/src/collide.c.o b/build-cg/src/collide.c.o new file mode 100644 index 0000000..1419015 Binary files /dev/null and b/build-cg/src/collide.c.o differ diff --git a/build-cg/src/draw.c.d b/build-cg/src/draw.c.d new file mode 100644 index 0000000..e0b9a12 --- /dev/null +++ b/build-cg/src/draw.c.d @@ -0,0 +1,5 @@ +build-cg/src/draw.c.o: src/draw.c include/draw.h include/shared_define.h + +include/draw.h: + +include/shared_define.h: diff --git a/build-cg/src/draw.c.o b/build-cg/src/draw.c.o new file mode 100644 index 0000000..fcf3659 Binary files /dev/null and b/build-cg/src/draw.c.o differ diff --git a/build-cg/src/levels.c.d b/build-cg/src/levels.c.d new file mode 100644 index 0000000..32ff5c6 --- /dev/null +++ b/build-cg/src/levels.c.d @@ -0,0 +1,3 @@ +build-cg/src/levels.c.o: src/levels.c include/levels.h + +include/levels.h: diff --git a/build-cg/src/levels.c.o b/build-cg/src/levels.c.o new file mode 100644 index 0000000..b9d4b11 Binary files /dev/null and b/build-cg/src/levels.c.o differ diff --git a/build-cg/src/main.c.d b/build-cg/src/main.c.d new file mode 100644 index 0000000..de643a3 --- /dev/null +++ b/build-cg/src/main.c.d @@ -0,0 +1,14 @@ +build-cg/src/main.c.o: src/main.c include/draw.h include/collide.h \ + include/levels.h include/player.h include/menu.h include/shared_define.h + +include/draw.h: + +include/collide.h: + +include/levels.h: + +include/player.h: + +include/menu.h: + +include/shared_define.h: diff --git a/build-cg/src/main.c.o b/build-cg/src/main.c.o new file mode 100644 index 0000000..ce4ecac Binary files /dev/null and b/build-cg/src/main.c.o differ diff --git a/build-cg/src/menu.c.d b/build-cg/src/menu.c.d new file mode 100644 index 0000000..d9a2ab4 --- /dev/null +++ b/build-cg/src/menu.c.d @@ -0,0 +1,5 @@ +build-cg/src/menu.c.o: src/menu.c include/menu.h include/shared_define.h + +include/menu.h: + +include/shared_define.h: diff --git a/build-cg/src/menu.c.o b/build-cg/src/menu.c.o new file mode 100644 index 0000000..95b63b0 Binary files /dev/null and b/build-cg/src/menu.c.o differ diff --git a/build-cg/src/player.c.d b/build-cg/src/player.c.d new file mode 100644 index 0000000..d1b6e38 --- /dev/null +++ b/build-cg/src/player.c.d @@ -0,0 +1,3 @@ +build-cg/src/player.c.o: src/player.c include/player.h + +include/player.h: diff --git a/build-cg/src/player.c.o b/build-cg/src/player.c.o new file mode 100644 index 0000000..278705b Binary files /dev/null and b/build-cg/src/player.c.o differ diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..82bd325 --- /dev/null +++ b/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/bash +echo "making levels.c" +rm src/levels.c +luajit levels.lua >> src/levels.c +echo "building for cg" +fxsdk build-cg +echo "done" diff --git a/downloadpacks.sh b/downloadpacks.sh new file mode 100755 index 0000000..fae501e --- /dev/null +++ b/downloadpacks.sh @@ -0,0 +1,12 @@ +#!/usr/bin/bash +cd texturepacks +git clone https://gitea.planet-casio.com/Massena/jtmm_mariotheme +git clone https://gitea.planet-casio.com/Massena/jtmm_1bittheme +git clone https://gitea.planet-casio.com/Massena/jtmm_celestepicotheme +git clone https://gitea.planet-casio.com/KikooDX/jtmm_crafttheme +for FOLDER in * +do +cd $FOLDER +git pull +cd .. +done diff --git a/editor.sh b/editor.sh new file mode 100755 index 0000000..eced26b --- /dev/null +++ b/editor.sh @@ -0,0 +1,4 @@ +#!/usr/bin/bash +cd up-editor/ +love . + diff --git a/include/collide.h b/include/collide.h new file mode 100644 index 0000000..edb5b9f --- /dev/null +++ b/include/collide.h @@ -0,0 +1,6 @@ +char collide(int x, int y, char level[], char tile); +char collide_spike(int x, int y, char level[]); +char collide_solid(int x, int y, char level[], char polarity, + char test_semi_solid); +char collide_point(int x, int y, char level[], char tile); +char collide_and_erase(int x, int y, char level[], char tile); diff --git a/include/draw.h b/include/draw.h new file mode 100644 index 0000000..e97eedb --- /dev/null +++ b/include/draw.h @@ -0,0 +1,10 @@ +#include + +void draw_anim_speed(int x, int y, image_t *image, int step, int speed); +void draw_anim(int x, int y, image_t *image, int step); +void draw_player(int x, int y); +void draw_level(char level[], unsigned int step, char polarity, int *start_x, + int *start_y, int tp_positions[]); +void erase_tile(int x, int y, char level[]); +void draw_timer(unsigned int step); //coucou Lephé' +void just_breathe(); diff --git a/include/levels.h b/include/levels.h new file mode 100644 index 0000000..04d8536 --- /dev/null +++ b/include/levels.h @@ -0,0 +1 @@ +void set_level(int level_id, char level[]); diff --git a/include/menu.h b/include/menu.h new file mode 100644 index 0000000..a7ecb3c --- /dev/null +++ b/include/menu.h @@ -0,0 +1,3 @@ +char menu(int *level_id, char *disable_up_key, char *game_loop, + unsigned int step); +char menu_level_selection(int *level_id); diff --git a/include/player.h b/include/player.h new file mode 100644 index 0000000..17d4bc1 --- /dev/null +++ b/include/player.h @@ -0,0 +1,5 @@ +enum { UP, DOWN, LEFT, RIGHT }; +void jump_test(char *jump_pressed, char *jump_buffer, unsigned int *jump_hold, + char enable_up_key); +void set_start_pos(int *start_x, int *start_y, int x, int y); +void reset_old_pos(int *old_x, int *old_y); diff --git a/include/shared_define.h b/include/shared_define.h new file mode 100644 index 0000000..897ca14 --- /dev/null +++ b/include/shared_define.h @@ -0,0 +1,5 @@ +#define PLAYER_H 11 +#define PLAYER_W 11 +#define LEVEL_WIDTH 28 +#define LAST_LEVEL 5062 +#define FPS 60 diff --git a/levels.lua b/levels.lua new file mode 100755 index 0000000..6e31c80 --- /dev/null +++ b/levels.lua @@ -0,0 +1,31 @@ +#!/usr/bin/luajit + +io.write([[#include "levels.h" +#include +]]) +io.write("void set_level(int level_id, char level[]){") +io.write("switch (level_id){") +current = 0 +for i = 0, 9999, 1 do + file = io.open("up-editor/screens/"..i..".scr") + file_content = nil + if file then + file_content = file:read() + formated_file = "" + for j = 1, #file_content, 1 do + if j == 1 then + formated_file = formated_file.."-----------------------------" + end + formated_file = formated_file..file_content:sub(j, j) + if j % 26 == 0 then formated_file = formated_file.."--" end + if j == 390 then + formated_file = formated_file.."---------------------------" + end + end + file:close() + io.write("case "..i..":memcpy(level,\"".. + formated_file.."\","..#formated_file..");") + io.write("break;") + end +end +io.write("}}") diff --git a/project.cfg b/project.cfg new file mode 100644 index 0000000..c85bfb3 --- /dev/null +++ b/project.cfg @@ -0,0 +1,84 @@ +#--- +# fxSDK project configuration file for platform +#--- + +# Project name, should be at most 8 bytes long. +# (You can also specify NAME_G1A or NAME_G3A to override individually.) +NAME := JTMM + +# Internal name, should be '@' followed by at most 7 uppercase letters. +# WARNING: If this convention is not followed, the add-in might not appear in +# the main menu of the calculator! +INTERNAL := @JTMM + +# Output file name. The default is to take , replace spaces with dashes, +# and add .g1a (or .g3a). You can specify a different folder if you want. +TARGET_FX := +TARGET_CG := + +# fx-9860G icon location +ICON_FX = assets-fx/icon-fx.png +# fx-CG 50 icon locations +ICON_CG_UNS = assets-cg/icon-cg-uns.png +ICON_CG_SEL = assets-cg/icon-cg-sel.png + +#--- +# Toolchain selection +#--- + +# Toolchain for fx9860g. Please see also CFLAGS_FX below. +TOOLCHAIN_FX := sh3eb-elf + +# Toolchain for fxcg50. Please see also CFLAGS_CG below. +TOOLCHAIN_CG := sh-elf + +#--- +# Compiler flags +#--- + +# Base compiler flags for the fxSDK, you usually want to keep these. +CFLAGS := -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields + +# Platform-specific compiler flags. +# <> If you are using sh3eb-elf, use -m3. (You can do this on both FX and CG.) +# <> If you are using sh4eb-elf, use -m4-nofpu. (Not ideal on FX but works.) +# <> If you are using sh4eb-nofpu-elf, then your compiler will likely use the +# FPU and cause problems on the calculator. Consider another configuration. +# <> If you are using an sh-elf with several targets, specify whichever you +# support. I recommend -m3 on FX and -m4-nofpu on CG. +# Please see also TOOLCHAIN_FX and TOOLCHAIN_CG above. +CFLAGS_FX := -D FX9860G -m3 +CFLAGS_CG := -D FXCG50 -m4-nofpu + +# Additional compiler flags, change to your own taste! +CFLAGS += -Wall -Wextra -Os + +# Include paths. Add one -I option for each folder from which you want to +# be able to include files with #include<>. +INCLUDE := -I include + +# Libraries. Add one -l option for each library you are using, and also +# suitable -L options if you have library files in custom folders. To use +# fxlib, add libfx.a to the project directory and use "-L . -lfx". +LIBS := + +# Base linker flags for the fxSDK, you usually want to keep these. +LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS) -lgint-fx -lgcc +LDFLAGS_CG := -T fxcg50.ld -lgint-cg $(LIBS) -lgint-cg -lgcc + +# Additional linker flags, if you need any. +LDFLAGS := + +# Additional platform-specific linker flags. +LDFLAGS_FX += -Wl,-Map=build-fx/map +LDFLAGS_CG += -Wl,-Map=build-cg/map + +#--- +# File conversion parameters +#--- + +# Here you can add fxconv options for each converted file, individually. +# The syntax is ".". For example, to specify the parameters for a +# font name "hexa.png", you might write: +# +# FONT.hexa.png = charset:print grid:size:3x5 grid.padding:1 diff --git a/setpack.sh b/setpack.sh new file mode 100755 index 0000000..7d13c00 --- /dev/null +++ b/setpack.sh @@ -0,0 +1,6 @@ +#!/usr/bin/bash +for FOLDER in "$@";do +cp -r $FOLDER/*.png assets-cg/img/ -v +done +cd up-editor +./update.sh diff --git a/src/collide.c b/src/collide.c new file mode 100644 index 0000000..73962a6 --- /dev/null +++ b/src/collide.c @@ -0,0 +1,73 @@ +#include "collide.h" +#include "draw.h" +#include "shared_define.h" + +#define SPIKE_SCAM 2 + +char collide(int x, int y, char level[], char tile) +{ + if ((level[(int)(x/16) + (int)(y/16) * LEVEL_WIDTH] == tile) || + (level[(int)(x/16) + (int)((y+PLAYER_H)/16) * LEVEL_WIDTH] == tile) || + (level[(int)((x+PLAYER_W)/16) + (int)((y+PLAYER_H)/16) * + LEVEL_WIDTH] == tile) || (level[(int)((x+PLAYER_W)/16) + (int)(y/16) * + LEVEL_WIDTH] == tile)) return 1; + return 0; +} + +char collide_spike(int x, int y, char level[]) +{ + return (collide_point(x + SPIKE_SCAM, y + SPIKE_SCAM, level, 'v') || + collide_point(x + PLAYER_W - SPIKE_SCAM, y + SPIKE_SCAM, level, 'v') || + collide_point(x + SPIKE_SCAM, y + PLAYER_H - SPIKE_SCAM, level, 'v') || + collide_point(x + PLAYER_W - SPIKE_SCAM, y + PLAYER_H - SPIKE_SCAM, level, 'v')); +} + +char collide_point(int x, int y, char level[], char tile) +{ + return (level[(int)(x/16) + (int)(y/16) * LEVEL_WIDTH] == tile); +} + +char collide_solid(int x, int y, char level[], char polarity, + char test_semi_solid) +{ + char collided; + if (polarity) collided = collide(x, y, level, 'b'); + else collided = collide(x, y, level, 'r'); + if (!collided && test_semi_solid && ((y + PLAYER_H) % 16) <= 5) + { + collided = (collide_point(x, y + PLAYER_H, level, '/') || + collide_point(x + PLAYER_W, y + PLAYER_H, level, '/')); + } + return (collided || + collide(x, y, level, '0') || + collide(x, y, level, '1') || + collide(x, y, level, '^') || + collide(x, y, level, 'd') || + collide(x, y, level, '~')); +} + +char collide_and_erase(int x, int y, char level[], char tile) +{ + char collided = 0; + if (collide_point(x, y, level, tile)) + { + erase_tile(x, y, level); + collided = 1; + } + if (collide_point(x + PLAYER_W, y, level, tile)) + { + erase_tile(x + PLAYER_W, y, level); + collided = 1; + } + if (collide_point(x, y + PLAYER_H, level, tile)) + { + erase_tile(x, y + PLAYER_H, level); + collided = 1; + } + if (collide_point(x + PLAYER_W, y + PLAYER_H, level, tile)) + { + erase_tile(x + PLAYER_W, y + PLAYER_H, level); + collided = 1; + } + return collided; +} diff --git a/src/draw.c b/src/draw.c new file mode 100644 index 0000000..9e5094c --- /dev/null +++ b/src/draw.c @@ -0,0 +1,159 @@ +#include +#include +#include "draw.h" +#include "shared_define.h" + +#define BG_COLOR 0 +#define DRAW_OFFSET_Y -24 +#define DRAW_OFFSET_X -27 + +extern image_t img_player; //player texture, 12x12 (NOT ANIMATED) +extern image_t img_solid_0; //solid texture, 16x16 +extern image_t img_solid_1; //solid texture, 16x16 +extern image_t img_spike; //spike texture, 16x16 +extern image_t img_bouncer; //bouncer texture, 16x16 +extern image_t img_ice; //ice texture, 16x8 +extern image_t img_blue; //blue bloc texture, 16x16 +extern image_t img_blue_dot; //off blue bloc texture, 16x16 +extern image_t img_red; //red bloc texture, 16x16 +extern image_t img_red_dot; //off red bloc texture, 16x16 +extern image_t img_exit; //exit texture, 16x16 +extern image_t img_water; //water texture, 16x16 +extern image_t img_semi_solid; //semi solid texture, 16x16 +extern image_t img_teleporter_0; //teleporter 0 texture, 16x16 +extern image_t img_teleporter_1; //teleporter 1 texture, 16x16 +extern image_t img_elevator; //elevator texture, 16x16 +extern image_t img_dust; //dust texture, 16x16 + +void draw_anim_speed(int x, int y, image_t *image, int step, int speed) +{ + dsubimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, image, + ((step/speed) % (image->width / 16)) * 16, 0, 16, 16, DIMAGE_NONE); +} +void draw_anim(int x, int y, image_t *image, int step) +{ + draw_anim_speed(x, y, image, step, 1); +} + +void draw_player(int x, int y) +{ + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_player); +} + +void draw_level(char level[], unsigned int step, char polarity, int *start_x, +int *start_y, int tp_positions[]) +{ + dclear(BG_COLOR); + unsigned int i = 0; + unsigned int x = 0; + unsigned int y = 0; + while (i != LEVEL_WIDTH*16) + { + switch (level[i]) + { + case '0': + draw_anim(x, y, &img_solid_0, step); + break; + case '1': + draw_anim(x, y, &img_solid_1, step); + break; + case 'r': + if (!polarity) draw_anim(x, y, &img_red, step); + else draw_anim(x, y, &img_red_dot, step); + break; + case 'b': + if (polarity) draw_anim(x, y, &img_blue, step); + else draw_anim(x, y, &img_blue_dot, step); + break; + case 'v': + draw_anim(x, y, &img_spike, step); + break; + case '*': + draw_anim(x, y, &img_bouncer, step); + break; + case '~': + draw_anim(x, y, &img_solid_0, step); + draw_anim(x, y, &img_ice, step); + break; + case '/': + draw_anim(x, y, &img_semi_solid, step); + break; + case '^': + draw_anim_speed(x, y, &img_elevator, step, 2); //half speed + break; + case 'd': + draw_anim(x, y, &img_dust, step); + break; + case 'S': + erase_tile(x, y, level); + *start_x = x + 2; + *start_y = y + 4; + break; + case 'E': + draw_anim(x, y, &img_exit, step); + break; + case 'w': //water + draw_anim(x, y, &img_water, step); + break; + case 't': //teleporter 0 + draw_anim(x, y, &img_teleporter_0, step); + tp_positions[0] = x; + tp_positions[1] = y; + break; + case 'T': //teleporter 1 + draw_anim(x, y, &img_teleporter_1, step); + tp_positions[2] = x; + tp_positions[3] = y; + break; + } + x += 16; + if (x == 16*LEVEL_WIDTH) + { + x = 0; + y += 16; + } + i++; + } +} + +void erase_tile(int x, int y, char level[]) +{ + x = (int)(x/16); + y = (int)(y/16); + level[x + y * LEVEL_WIDTH] = '.'; + x *= 16; + y *= 16; +} + +void draw_timer(unsigned int step) +{ + dprint(0, 0, C_WHITE, C_BLACK, "%u.%02u", (step*2)/FPS, (step*2)%FPS); +} + +void just_breathe(unsigned int step) +{ + int x = 0; + int y = 0; + int xspd = 1; + int yspd = 1; + while (!keydown_any(KEY_MENU, KEY_EXIT, 0)) + { + dclear(0); + dtext(x, y, "Thank you for playing", C_WHITE, C_BLACK); + dprint(x, y + 12, C_WHITE, C_BLACK, "%u.%02u", step/FPS, step%FPS); + dupdate(); + x += xspd; + y += yspd; + if (x == 236 || !x) xspd = 0 - xspd; + if (y == 203 || !y) yspd = 0 - yspd; + clearevents(); + } + { + unsigned char timeout = 50; + while(timeout) + { + timeout--; + dclear(0); + } + } +} diff --git a/src/levels.c b/src/levels.c new file mode 100644 index 0000000..2464d16 --- /dev/null +++ b/src/levels.c @@ -0,0 +1,3 @@ +#include "levels.h" +#include +void set_level(int level_id, char level[]){switch (level_id){case 5050:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--000v...vrrv.........000000--000.....rr..........000000--000.....rr..........000000--000.....rr..........000000--000v.E.vrrv.........000000--00011111111....vvvvv000000--00000000000bbbb11111000000--00.............00000000000--00............v00000000000--00.........v11100000000000--00..S.....v100000000000000--00111111111000000000000000--00000000000000000000000000-----------------------------",476);break;case 5051:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--00000000000000000000000000--00000000000000000000000000--00000000000000000000000000--00......................00--00......................00--00......................00--00...v..v..v..v..v..v...00--00S..v..v..v..v..v..v..E00--0011rrrrrrrrrbbbbbbbbb1100--0000vvvvvvvvvvvvvvvvvv0000--00001111111111111111110000--00000000000000000000000000--00000000000000000000000000-----------------------------",476);break;case 5052:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--0000000000v........0000000--0000000000v......E.0000000--0000000000v...111110000000--0000000000v....v0000000000--0000000000vbv..v0000000000--0000000000v....v0000000000--0000000000v...110000000000--0000000000v....v0000000000--0000000000vrv..v0000000000--0000000........v0000000000--0000000.S......v0000000000--00000001111111110000000000--00000000000000000000000000-----------------------------",476);break;case 5053:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--00000000000000000000000000--0000.....00000000000000000--000.......0000000000000000--00.........000000000000000--00.........000000000000000--00.........0000....b..r.00--00.........vvv.....b..r.00--00....v....b.r....vb.vrE00--00....1....b.r...bbbrrr.00--00....0....b.r..bvvvvvvv00--00.S..0....b.r..v111111100--0011**01111vvv111000000000--00000000000111000000000000-----------------------------",476);break;case 5054:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--00.....v000v..v..v000vvv00--00......000...v...000vEv00--00.S....000.......000v.v00--00111v..000...1...000...00--00000www000www0www000www00--00000www000www0www000www00--00000www000www0www000www00--00000vwv000vwv0vwv000vwv00--00000wwwwwwwww0wwwwwwwww00--00000wwwwvwwww0wwwwvwwww00--00000wvwwvwwvw0wvwwvwwvw00--00000111111111011111111100--00000000000000000000000000-----------------------------",476);break;case 5055:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--00......................00--00......................00--00......................00--000000v...v....v...v000000--vr......................bv--vr......................bv--vr.S..................E.bv--111111v..vbv..vrv..v111111--00......................00--00......................00--00......................00--00vvvvvvvvvvvvvvvvvvvvvv00--00000000000000000000000000-----------------------------",476);break;case 5056:memcpy(level,"-----------------------------00000000000000..0000000000--00000000000000.v000v00v000--000000vvvvvvv0..0.wwwwww.0--000000.......0..0.wwwwww.0--000000.......0....vvvvvv.0--000000bbb1...0....vvvvvv.0--000000vwv0...0..11vvvvvvE0--000000vwv0v.v0..0011111110--000000vwv0v.v0..0000000000--000000rrr0......0000000000--00...0vwv0......0000000000--00...bwww0......0000000000--00.S.bwww0***1v.0000000000--00111111100000..0000000000--00000000000000..0000000000-----------------------------",476);break;case 5057:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--00vvvvv0000000000000000000--00v...vvv0000vvvvvvvvvvv00--00v.....v0000.........S.00--00vw1.E.v0000........11100--00ww0111100v.........00000--00ww000..............00000--00wv000.........vw..v00000--00wwwwww11^.....vvv..00000--00wwwvww00^.....vvv..00000--00vvvvvv00^.....vvv..00000--00000000000.....vvv..00000--000000000001vv1v111**00000--00000000000000000000000000-----------------------------",476);break;case 5058:memcpy(level,"-----------------------------0000000000ww0000000www0000--000000000www0000000www0000--00....v0..v10000000www0000--00.S..v0.^100000000www0000--00111.v0.^00000........000--00000.v0.^000v.........000--00....v0.^00vvbwwvrrrrr000--00....v0.^0vrwwbwv.....000--00bb1vvv.^vvwrwwv1.....000--00wwrww..vwbwwrwv0vvvv.000--00wwrww..vwwbwvv10..E..000--00vvvww..vrwwbv100.....000--00vvvww..vwrvv10001...1000--0011111**1ww1100000...0000--0000000000ww0000000vvv0000-----------------------------",476);break;case 5059:memcpy(level,"-----------------------------00000000000000000000000000--0000000vvvvvv0000000000000--000000vv....vv^v..v0000000--00v.v0v......v^v...0000000--00...0v..v...v^..^.0000000--0v.S.0vww0v..v^..^.0E.0000--00rrr0vvww0..v^.v^.0..0000--00.v100vvwv.vv^.v^.0v.0000--00.vv00vvbv.vv^..^..w.0000--00..v0vvww0..v^..^....0000--00...0vwrwv..v^v.^...v0000--00...0vwwvv..v^v.^w.vv0000--00vr..wwvvv.wr...^vvvv0000--001vv11111vvv1v1v111110000--00011000001110101000000000-----------------------------",476);break;case 5060:memcpy(level,"-----------------------------..........................--............0000000.......--............0vvvvv0.......--............0v....v0......--............0v.E..v0......--............0v....v0......--............0vvvv.v0......--..........000111v.v0......--.........00vvv0v.wv0......--......0000vb.rv.b.10......--......0v...b.r..bv0.......--......0S...b.r..v10.......--......01vv1vvv1v10........--.......0110111010.........--..........................-----------------------------",476);break;case 5061:memcpy(level,"-----------------------------00000000000000000000000000--00000...0000000000...00000--00....t....0000..d.T.d..00--00.........0000..d...d..00--00.........0000..d...d..00--00.........0000..d...d..00--00....*....0000..d...d..00--001//111//100001dd111dd100--00.........0000...ddd...00--00.........0000...ddd...00--00111///1110000111ddd11100--00.........0000...ddd...00--00..S......0000...dddE..00--00111111111000011111111100--00000000000000000000000000-----------------------------",476);break;case 5062:memcpy(level,"-----------------------------00000000000000000000000000--00000000000000000000000000--00......................00--00......................00--00......................00--00......................00--00......................00--00......................00--00......................00--00......................00--00......................00--00.......v..............00--00.S.....0............E.00--0011111110vvvvvv1111111100--00000000000000000000000000-----------------------------",476);break;}} \ No newline at end of file diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..6047166 --- /dev/null +++ b/src/main.c @@ -0,0 +1,365 @@ +#include +#include +#include +#include +#include +#include "draw.h" +#include "collide.h" +#include "levels.h" +#include "player.h" +#include "menu.h" +#include "shared_define.h" + +#define MAX_HSPD 2.5 +#define ACCELERATION 1.0 +#define DECELERATION 0.5 +#define MIN_VSPD -12.0 +#define MAX_VSPD 6.0 +#define JUMP_SPD -3.99 +#define GRAV 0.4 +#define JUMP_SCALE 8 +#define JUMP_REDUCTION -0.41 +#define DRAW_LEVEL() draw_level(level, step, polarity, &start_x, &start_y, tp_positions) + +void dupdate(); //gint function +//test if jump pressed +int sgn(int number); //return the sign of input double + +int callback(volatile void *arg) +{ + volatile int *has_ticked = arg; + *has_ticked = 1; + return 0; +} + +int main(void) +{ + volatile int has_ticked = 1; //fps cap + char level[477]; + int level_id = 5050; + char jump_pressed = 1; //avoid holding jump + char jump_buffer = 0; //jump buffer, last 3 frames + unsigned int jump_hold = 0; //number of consecutive frames jump has been held + double vspd = 0.0; //player vertical speed + double hspd = 0; //player horizontal speed + int move = 0; + int direction = 0; + int on_ground = 6; //remember if player is on solid + char in_water = 0; + int player_x = 0; + int player_y = 0; + int start_x = 18*16 + 2; + int start_y = 9*16 + 4; + char spawn_buffer = 0; + unsigned int step = 0; + unsigned int rem_step = 0; + char pswap_held = 0; + char polarity = 0; //0 -> blue, 1 -> red + char enable_up_key = 0; + char game_loop = 1; + char exit_buffer = 0; + char tp_buffer = 0; + int tp_positions[4] = { 0, 0, 0, 0 }; + char directions[4] = { 0, 0, 0, 0 }; + char last_direction = RIGHT; + char selected_direction = RIGHT; + char drill_buffer = 0; + char drill_toggle = 0; + set_level(level_id, level); + DRAW_LEVEL(); + player_x = start_x; + player_y = start_y; + //fps cap timer + timer_setup(0, timer_delay(0, 1000000/FPS), 0, callback, &has_ticked); + timer_start(0); + while (game_loop) { + while(!has_ticked) sleep(); + has_ticked = 0; + //START DRAW + step++; + if (!(step % 2)) + { + DRAW_LEVEL(); + draw_player(player_x, player_y); + //drill + if (drill_toggle) + { + int drill_x = player_x; + int drill_y = player_y; + switch (selected_direction) + { + case UP: + drill_y -= 12; + break; + case DOWN: + drill_y += 12; + break; + case LEFT: + drill_x -= 12; + break; + case RIGHT: + drill_x += 12; + break; + } + draw_player(drill_x, drill_y); + collide_and_erase(drill_x, drill_y, level, 'd'); + if ((selected_direction == UP || selected_direction == DOWN) && + (collide_spike(drill_x, drill_y, level) || collide_solid(drill_x, drill_y, level, polarity, 0))) + { + vspd = -vspd; + } + } + draw_timer(step/2); + dupdate(); + } + //END DRAW + clearevents(); + //direction inputs + if (keydown(KEY_LEFT)) + { + if (!directions[LEFT]) last_direction = LEFT; + directions[LEFT] += 1; + } + else directions[LEFT] = 0; + if (keydown(KEY_RIGHT)) + { + if (!directions[RIGHT]) last_direction = RIGHT; + directions[RIGHT] += 1; + } + else directions[RIGHT] = 0; + if (keydown(KEY_UP)) + { + if (!directions[UP]) last_direction = UP; + directions[UP] += 1; + } + else directions[UP] = 0; + if (keydown(KEY_DOWN)) + { + if (!directions[DOWN]) last_direction = DOWN; + directions[DOWN] += 1; + } + else directions[DOWN] = 0; + //direction inputs END + //polarity swap first + if (keydown(KEY_OPTN)) + { + if (!pswap_held) + { + pswap_held = 1; + polarity = !polarity; + } + } + else pswap_held = 0; + //drill toggling + if (keydown(KEY_ALPHA)) + { + if (!drill_buffer) + { + drill_toggle = !drill_toggle; + selected_direction = last_direction; + } + drill_buffer = 1; + } + else drill_buffer = 0; + //horizontal movement & collision + { + move = 0; + double friction = 1; + int trunc_hspd; + //ice + if (collide(player_x, player_y + 1, level, '~')) friction = 0.2; + move = keydown(KEY_RIGHT) + 0 - keydown(KEY_LEFT); + if (move) { + if (hspd < MAX_HSPD) + { + hspd += ACCELERATION * friction; + if (hspd > MAX_HSPD) hspd = MAX_HSPD; + } + direction = move; + } + else if (hspd > 0) + { + if (friction != 0.2) hspd -= DECELERATION * friction; + else hspd -= DECELERATION / 4 * friction; + if (hspd < 0) hspd = 0; + } + trunc_hspd = hspd * direction; + if (1) //glue was here + { + if (!collide_solid(player_x + trunc_hspd, player_y, level, polarity, 0)) + { + player_x += trunc_hspd; + } + else + { + int sign_hspd = sgn(trunc_hspd); + while (!collide_solid(player_x + sign_hspd, player_y, level, polarity, + 0)) + { + player_x += sign_hspd; + } + hspd = 0; + } + } + } + //ground detection + if (vspd >= 0 && collide_solid(player_x, player_y + 1, level, polarity, 1)) + { + on_ground = 6; + vspd = 0; + if (spawn_buffer) + { + spawn_buffer = 0; + set_start_pos(&start_x, &start_y, player_x, player_y); + } + } + else + { + if (on_ground != 6 && vspd < MAX_VSPD) vspd += GRAV; + if (on_ground) on_ground--; + } + //in water? + in_water = collide(player_x, player_y, level, 'w'); + //vertical movement + jump_test(&jump_pressed, &jump_buffer, &jump_hold, enable_up_key); + //jump + if (jump_buffer && (on_ground || in_water)) { + vspd = JUMP_SPD; + on_ground = 0; + jump_hold = JUMP_SCALE; + } + else if (jump_hold && + (keydown(KEY_SHIFT) || (keydown(KEY_UP) && enable_up_key))) + { + jump_hold--; + vspd += JUMP_REDUCTION; + } + else jump_hold = 0; + //elevator collision and raise + if ((collide(player_x - 1, player_y, level, '^') || + collide(player_x + 1, player_y, level, '^')) && vspd > MIN_VSPD) + { + if (vspd > -2) + { + vspd -= GRAV; + } + vspd -= GRAV; + } + //vertical collision + { + int trunc_vspd; + if (in_water) trunc_vspd = vspd / 2; + else trunc_vspd = vspd; + //bouncer + if (collide(player_x, player_y + trunc_vspd, level, '*')) + { + vspd = -vspd - 2; + trunc_vspd = vspd; + } + if (trunc_vspd) + { + if (!collide_solid(player_x, player_y + trunc_vspd, level, polarity, + trunc_vspd > 0)) + { + player_y += trunc_vspd; + } + else + { + int sign_vspd = sgn(trunc_vspd); + while (!collide_solid(player_x, player_y + sign_vspd, level, polarity, vspd)) + { + player_y += sign_vspd; + } + vspd = 0; + jump_hold = 0; + } + } + } + //teleporter + if (collide(player_x, player_y, level, 't')) + { + if (!tp_buffer) + { + player_x = tp_positions[2] + 2; + player_y = tp_positions[3] + 2; + } + tp_buffer = 1; + } + else if (collide(player_x, player_y, level, 'T')) + { + if (!tp_buffer) + { + player_x = tp_positions[0] + 2; + player_y = tp_positions[1] + 2; + } + tp_buffer = 1; + } + else tp_buffer = 0; + //spike collision and death + if (collide_spike(player_x, player_y, level)) + { + player_x = start_x; + player_y = start_y; + polarity = 0; + vspd = 0; + } + //border warp + if (player_x <= 22) player_x = 414; + else if (player_x >= 416) player_x = 24; + else if (player_y <= 8) player_y = 246; + else if (player_y >= 248) player_y = 10; + //secret way/hidden passage + collide_and_erase(player_x, player_y, level, 's'); + //next level (exit) + if (collide(player_x, player_y, level, 'E')) + { + level_id++; + rem_step = step; + if (level_id == LAST_LEVEL + 1) + { + just_breathe(step); + return 0; + } + else + { + set_level(level_id, level); + DRAW_LEVEL(); + player_x = start_x; + player_y = start_y; + polarity = 0; + vspd = 0; + } + } + //menu + if (keydown_any(KEY_EXIT, KEY_MENU, 0)) + { + if (!exit_buffer) + { + char reload = menu(&level_id, &enable_up_key, &game_loop, rem_step); + if (reload) + { + if (level_id == 5050) + { + step = 0; + } + set_level(level_id, level); + DRAW_LEVEL(); + player_x = start_x; + player_y = start_y; + polarity = 0; + vspd = 0; + } + exit_buffer = 1; + } + } + else exit_buffer = 0; + } + gint_osmenu(); + return 0; +} + +int sgn(int number) +{ + if (number < 0) return -1; + else return 1; +} diff --git a/src/menu.c b/src/menu.c new file mode 100644 index 0000000..527395a --- /dev/null +++ b/src/menu.c @@ -0,0 +1,95 @@ +#include +#include +#include "menu.h" +#include "shared_define.h" + +#define Y_POS 88 + +char menu(int *level_id, char *enable_up_key, char *game_loop, + unsigned int rem_step) +{ + char reload = 0; + char selected = 0; + char menu_loop = 1; + char exit_buffer = 1; + while (menu_loop) + { + clearevents(); + if (keydown_any(KEY_EXIT, KEY_MENU, 0)) { if (!exit_buffer) menu_loop = 0; } + else exit_buffer = 0; + //return to game + selected += keydown(KEY_DOWN) - keydown(KEY_UP); + if (selected == 4) selected = 0; + else if (selected == -1) selected = 3; + dclear(0); + dprint(0, 0, C_WHITE, C_BLACK, "%u.%02u", rem_step/60, rem_step%60); + dtext(32, Y_POS, "CONTINUE", C_WHITE, C_BLACK); + dtext(32, Y_POS + 12, "SELECT LEVEL", C_WHITE, C_BLACK); + dtext(32, Y_POS + 24, "UP KEY TO JUMP:", C_WHITE, C_BLACK); + dtext(32, Y_POS + 36, "EXIT GAME", C_WHITE, C_BLACK); + dtext(16, Y_POS + (selected * 12), ">", C_WHITE, C_BLACK); + //action switch + if (keydown_any(KEY_SHIFT, KEY_EXE, 0)) + { + switch (selected) + { + case 0: + menu_loop = 0; + break; + case 1: + reload = menu_level_selection(level_id); + menu_loop = 0; + break; + case 2: + *enable_up_key = !*enable_up_key; + break; + case 3: + menu_loop = 0; + *game_loop = 0; + break; + } + } + //up key state display + if (*enable_up_key) dtext(152, Y_POS + 24, "ON", C_WHITE, C_BLACK); + else dtext(152, Y_POS + 24, "OFF", C_WHITE, C_BLACK); + dupdate(); + while (keydown_any(KEY_UP, KEY_DOWN, KEY_SHIFT, KEY_EXE, 0)) clearevents(); + } + return reload; +} + +char menu_level_selection(int *level_id) +{ + char confirm_buffer = 1; + char menu_loop = 1; + int initial_lid = *level_id; + while (menu_loop) { + dclear(0); + clearevents(); + *level_id += keydown(KEY_RIGHT) - keydown(KEY_LEFT); + if (*level_id > LAST_LEVEL || keydown(KEY_0)) *level_id = 5050; + else if (*level_id < 5050) *level_id = LAST_LEVEL; + dprint(32, Y_POS + 20, C_WHITE, C_BLACK, "> %02d <", *level_id - 5049); + if (keydown_any(KEY_SHIFT, KEY_EXE, 0)) + { + if (!confirm_buffer) + { + menu_loop = 0; + } + } + else confirm_buffer = 0; + if (keydown_any(KEY_EXIT, KEY_MENU, 0)) + { + *level_id = initial_lid; + menu_loop = 0; + } + dupdate(); + while (keydown_any(KEY_RIGHT, KEY_LEFT, KEY_SHIFT, KEY_EXE, + KEY_EXIT, KEY_MENU, 0)) + { + clearevents(); + } + } + dclear(0); + return initial_lid != *level_id; +} diff --git a/src/player.c b/src/player.c new file mode 100644 index 0000000..7f6538a --- /dev/null +++ b/src/player.c @@ -0,0 +1,32 @@ +#include +#include "player.h" + +void jump_test(char *jump_pressed, char *jump_buffer, unsigned int *jump_hold, + char enable_up_key) +{ + if (keydown(KEY_SHIFT) || (keydown(KEY_UP) && enable_up_key)) + { + if (!*jump_pressed) + { + *jump_pressed = 1; + *jump_buffer = 3; + } + } + else { + *jump_hold = 0; + *jump_pressed = 0; + } + if (*jump_buffer) *jump_buffer -= 1; +} + +void set_start_pos(int *start_x, int *start_y, int x, int y) +{ + *start_x = x; + *start_y = y; +} + +void reset_old_pos(int *old_x, int *old_y) +{ + *old_x = -16; + *old_y = -16; +} diff --git a/texturepacks/default/blue.png b/texturepacks/default/blue.png new file mode 100644 index 0000000..32677ea Binary files /dev/null and b/texturepacks/default/blue.png differ diff --git a/texturepacks/default/blue_dot.png b/texturepacks/default/blue_dot.png new file mode 100644 index 0000000..8e53f6d Binary files /dev/null and b/texturepacks/default/blue_dot.png differ diff --git a/texturepacks/default/bouncer.png b/texturepacks/default/bouncer.png new file mode 100644 index 0000000..7c77d59 Binary files /dev/null and b/texturepacks/default/bouncer.png differ diff --git a/texturepacks/default/elevator.png b/texturepacks/default/elevator.png new file mode 100644 index 0000000..ada442e Binary files /dev/null and b/texturepacks/default/elevator.png differ diff --git a/texturepacks/default/exit.png b/texturepacks/default/exit.png new file mode 100644 index 0000000..ba020fe Binary files /dev/null and b/texturepacks/default/exit.png differ diff --git a/texturepacks/default/ice.png b/texturepacks/default/ice.png new file mode 100644 index 0000000..4910965 Binary files /dev/null and b/texturepacks/default/ice.png differ diff --git a/texturepacks/default/player.png b/texturepacks/default/player.png new file mode 100644 index 0000000..9facc63 Binary files /dev/null and b/texturepacks/default/player.png differ diff --git a/texturepacks/default/red.png b/texturepacks/default/red.png new file mode 100644 index 0000000..742a94b Binary files /dev/null and b/texturepacks/default/red.png differ diff --git a/texturepacks/default/red_dot.png b/texturepacks/default/red_dot.png new file mode 100644 index 0000000..ab486e8 Binary files /dev/null and b/texturepacks/default/red_dot.png differ diff --git a/texturepacks/default/solid_0.png b/texturepacks/default/solid_0.png new file mode 100644 index 0000000..7c1192b Binary files /dev/null and b/texturepacks/default/solid_0.png differ diff --git a/texturepacks/default/solid_1.png b/texturepacks/default/solid_1.png new file mode 100644 index 0000000..7c1192b Binary files /dev/null and b/texturepacks/default/solid_1.png differ diff --git a/texturepacks/default/spike.png b/texturepacks/default/spike.png new file mode 100644 index 0000000..eeb60f1 Binary files /dev/null and b/texturepacks/default/spike.png differ diff --git a/texturepacks/default/teleporter_0.png b/texturepacks/default/teleporter_0.png new file mode 100644 index 0000000..6cedf23 Binary files /dev/null and b/texturepacks/default/teleporter_0.png differ diff --git a/texturepacks/default/teleporter_1.png b/texturepacks/default/teleporter_1.png new file mode 100644 index 0000000..6cedf23 Binary files /dev/null and b/texturepacks/default/teleporter_1.png differ diff --git a/texturepacks/default/water.png b/texturepacks/default/water.png new file mode 100644 index 0000000..0e923fe Binary files /dev/null and b/texturepacks/default/water.png differ diff --git a/texturepacks/jtmm_1bittheme b/texturepacks/jtmm_1bittheme new file mode 160000 index 0000000..712c0c7 --- /dev/null +++ b/texturepacks/jtmm_1bittheme @@ -0,0 +1 @@ +Subproject commit 712c0c7e92d9cbf02dc07117391b90b49d3d2dc5 diff --git a/texturepacks/jtmm_celestepicotheme b/texturepacks/jtmm_celestepicotheme new file mode 160000 index 0000000..3884bf6 --- /dev/null +++ b/texturepacks/jtmm_celestepicotheme @@ -0,0 +1 @@ +Subproject commit 3884bf688a2526b87560c8be1b23833272d25656 diff --git a/texturepacks/jtmm_crafttheme b/texturepacks/jtmm_crafttheme new file mode 160000 index 0000000..b503afe --- /dev/null +++ b/texturepacks/jtmm_crafttheme @@ -0,0 +1 @@ +Subproject commit b503afee3096bd4aff1053e369e15802d78c3483 diff --git a/texturepacks/jtmm_mariotheme b/texturepacks/jtmm_mariotheme new file mode 160000 index 0000000..c1a625d --- /dev/null +++ b/texturepacks/jtmm_mariotheme @@ -0,0 +1 @@ +Subproject commit c1a625dbbfc86dff55db13cb2769542073f70a83 diff --git a/texturepacks/programmer-art/blue.png b/texturepacks/programmer-art/blue.png new file mode 100644 index 0000000..99c6724 Binary files /dev/null and b/texturepacks/programmer-art/blue.png differ diff --git a/texturepacks/programmer-art/blue_dot.png b/texturepacks/programmer-art/blue_dot.png new file mode 100644 index 0000000..008c935 Binary files /dev/null and b/texturepacks/programmer-art/blue_dot.png differ diff --git a/texturepacks/programmer-art/bouncer.png b/texturepacks/programmer-art/bouncer.png new file mode 100644 index 0000000..7088b22 Binary files /dev/null and b/texturepacks/programmer-art/bouncer.png differ diff --git a/texturepacks/programmer-art/dust.png b/texturepacks/programmer-art/dust.png new file mode 100644 index 0000000..53b6f13 Binary files /dev/null and b/texturepacks/programmer-art/dust.png differ diff --git a/texturepacks/programmer-art/elevator.png b/texturepacks/programmer-art/elevator.png new file mode 100644 index 0000000..6081695 Binary files /dev/null and b/texturepacks/programmer-art/elevator.png differ diff --git a/texturepacks/programmer-art/exit.png b/texturepacks/programmer-art/exit.png new file mode 100644 index 0000000..5b55949 Binary files /dev/null and b/texturepacks/programmer-art/exit.png differ diff --git a/texturepacks/programmer-art/ice.png b/texturepacks/programmer-art/ice.png new file mode 100644 index 0000000..4910965 Binary files /dev/null and b/texturepacks/programmer-art/ice.png differ diff --git a/texturepacks/programmer-art/player.png b/texturepacks/programmer-art/player.png new file mode 100644 index 0000000..381dd51 Binary files /dev/null and b/texturepacks/programmer-art/player.png differ diff --git a/texturepacks/programmer-art/red.png b/texturepacks/programmer-art/red.png new file mode 100644 index 0000000..078ac5e Binary files /dev/null and b/texturepacks/programmer-art/red.png differ diff --git a/texturepacks/programmer-art/red_dot.png b/texturepacks/programmer-art/red_dot.png new file mode 100644 index 0000000..bf848d8 Binary files /dev/null and b/texturepacks/programmer-art/red_dot.png differ diff --git a/texturepacks/programmer-art/semi_solid.png b/texturepacks/programmer-art/semi_solid.png new file mode 100644 index 0000000..675a79c Binary files /dev/null and b/texturepacks/programmer-art/semi_solid.png differ diff --git a/texturepacks/programmer-art/solid_0.png b/texturepacks/programmer-art/solid_0.png new file mode 100644 index 0000000..731b010 Binary files /dev/null and b/texturepacks/programmer-art/solid_0.png differ diff --git a/texturepacks/programmer-art/solid_1.png b/texturepacks/programmer-art/solid_1.png new file mode 100644 index 0000000..731b010 Binary files /dev/null and b/texturepacks/programmer-art/solid_1.png differ diff --git a/texturepacks/programmer-art/spike.png b/texturepacks/programmer-art/spike.png new file mode 100644 index 0000000..2afe352 Binary files /dev/null and b/texturepacks/programmer-art/spike.png differ diff --git a/texturepacks/programmer-art/teleporter_0.png b/texturepacks/programmer-art/teleporter_0.png new file mode 100644 index 0000000..6cedf23 Binary files /dev/null and b/texturepacks/programmer-art/teleporter_0.png differ diff --git a/texturepacks/programmer-art/teleporter_1.png b/texturepacks/programmer-art/teleporter_1.png new file mode 100644 index 0000000..6cedf23 Binary files /dev/null and b/texturepacks/programmer-art/teleporter_1.png differ diff --git a/texturepacks/programmer-art/water.png b/texturepacks/programmer-art/water.png new file mode 100644 index 0000000..0e923fe Binary files /dev/null and b/texturepacks/programmer-art/water.png differ diff --git a/transfer.sh b/transfer.sh new file mode 100755 index 0000000..c6c0031 --- /dev/null +++ b/transfer.sh @@ -0,0 +1,3 @@ +#!/usr/bin/bash +cp JTMM.g3a /media/user/disk/ -v +echo done diff --git a/up-editor/JetBrainsMono-Regular.ttf b/up-editor/JetBrainsMono-Regular.ttf new file mode 100644 index 0000000..7db854f Binary files /dev/null and b/up-editor/JetBrainsMono-Regular.ttf differ diff --git a/up-editor/LICENSE b/up-editor/LICENSE new file mode 100644 index 0000000..8015026 --- /dev/null +++ b/up-editor/LICENSE @@ -0,0 +1,626 @@ +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software and +other kinds of works. + +The licenses for most software and other practical works are designed to take +away your freedom to share and change the works. By contrast, the GNU General +Public License is intended to guarantee your freedom to share and change all +versions of a program--to make sure it remains free software for all its users. +We, the Free Software Foundation, use the GNU General Public License for most +of our software; it applies also to any other work released this way by its +authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for them if you wish), that +you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs, and that you know you +can do these things. + +To protect your rights, we need to prevent others from denying you these rights +or asking you to surrender the rights. Therefore, you have certain responsibilities +if you distribute copies of the software, or if you modify it: responsibilities +to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or +for a fee, you must pass on to the recipients the same freedoms that you received. +You must make sure that they, too, receive or can get the source code. And +you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert +copyright on the software, and (2) offer you this License giving you legal +permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that +there is no warranty for this free software. For both users' and authors' +sake, the GPL requires that modified versions be marked as changed, so that +their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified +versions of the software inside them, although the manufacturer can do so. +This is fundamentally incompatible with the aim of protecting users' freedom +to change the software. The systematic pattern of such abuse occurs in the +area of products for individuals to use, which is precisely where it is most +unacceptable. Therefore, we have designed this version of the GPL to prohibit +the practice for those products. If such problems arise substantially in other +domains, we stand ready to extend this provision to those domains in future +versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States +should not allow patents to restrict development and use of software on general-purpose +computers, but in those that do, we wish to avoid the special danger that +patents applied to a free program could make it effectively proprietary. To +prevent this, the GPL assures that patents cannot be used to render the program +non-free. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of works, +such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this License. +Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals +or organizations. + +To "modify" a work means to copy from or adapt all or part of the work in +a fashion requiring copyright permission, other than the making of an exact +copy. The resulting work is called a "modified version" of the earlier work +or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based on the +Program. + +To "propagate" a work means to do anything with it that, without permission, +would make you directly or secondarily liable for infringement under applicable +copyright law, except executing it on a computer or modifying a private copy. +Propagation includes copying, distribution (with or without modification), +making available to the public, and in some countries other activities as +well. + +To "convey" a work means any kind of propagation that enables other parties +to make or receive copies. Mere interaction with a user through a computer +network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" to the +extent that it includes a convenient and prominently visible feature that +(1) displays an appropriate copyright notice, and (2) tells the user that +there is no warranty for the work (except to the extent that warranties are +provided), that licensees may convey the work under this License, and how +to view a copy of this License. If the interface presents a list of user commands +or options, such as a menu, a prominent item in the list meets this criterion. + + 1. Source Code. + +The "source code" for a work means the preferred form of the work for making +modifications to it. "Object code" means any non-source form of a work. + +A "Standard Interface" means an interface that either is an official standard +defined by a recognized standards body, or, in the case of interfaces specified +for a particular programming language, one that is widely used among developers +working in that language. + +The "System Libraries" of an executable work include anything, other than +the work as a whole, that (a) is included in the normal form of packaging +a Major Component, but which is not part of that Major Component, and (b) +serves only to enable use of the work with that Major Component, or to implement +a Standard Interface for which an implementation is available to the public +in source code form. A "Major Component", in this context, means a major essential +component (kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to produce +the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all the source +code needed to generate, install, and (for an executable work) run the object +code and to modify the work, including scripts to control those activities. +However, it does not include the work's System Libraries, or general-purpose +tools or generally available free programs which are used unmodified in performing +those activities but which are not part of the work. For example, Corresponding +Source includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically linked +subprograms that the work is specifically designed to require, such as by +intimate data communication or control flow between those subprograms and +other parts of the work. + +The Corresponding Source need not include anything that users can regenerate +automatically from other parts of the Corresponding Source. + + The Corresponding Source for a work in source code form is that same work. + + 2. Basic Permissions. + +All rights granted under this License are granted for the term of copyright +on the Program, and are irrevocable provided the stated conditions are met. +This License explicitly affirms your unlimited permission to run the unmodified +Program. The output from running a covered work is covered by this License +only if the output, given its content, constitutes a covered work. This License +acknowledges your rights of fair use or other equivalent, as provided by copyright +law. + +You may make, run and propagate covered works that you do not convey, without +conditions so long as your license otherwise remains in force. You may convey +covered works to others for the sole purpose of having them make modifications +exclusively for you, or provide you with facilities for running those works, +provided that you comply with the terms of this License in conveying all material +for which you do not control copyright. Those thus making or running the covered +works for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of your copyrighted +material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions +stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological measure +under any applicable law fulfilling obligations under article 11 of the WIPO +copyright treaty adopted on 20 December 1996, or similar laws prohibiting +or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention +of technological measures to the extent such circumvention is effected by +exercising rights under this License with respect to the covered work, and +you disclaim any intention to limit operation or modification of the work +as a means of enforcing, against the work's users, your or third parties' +legal rights to forbid circumvention of technological measures. + + 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you receive +it, in any medium, provided that you conspicuously and appropriately publish +on each copy an appropriate copyright notice; keep intact all notices stating +that this License and any non-permissive terms added in accord with section +7 apply to the code; keep intact all notices of the absence of any warranty; +and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you +may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to produce +it from the Program, in the form of source code under the terms of section +4, provided that you also meet all of these conditions: + +a) The work must carry prominent notices stating that you modified it, and +giving a relevant date. + +b) The work must carry prominent notices stating that it is released under +this License and any conditions added under section 7. This requirement modifies +the requirement in section 4 to "keep intact all notices". + +c) You must license the entire work, as a whole, under this License to anyone +who comes into possession of a copy. This License will therefore apply, along +with any applicable section 7 additional terms, to the whole of the work, +and all its parts, regardless of how they are packaged. This License gives +no permission to license the work in any other way, but it does not invalidate +such permission if you have separately received it. + +d) If the work has interactive user interfaces, each must display Appropriate +Legal Notices; however, if the Program has interactive interfaces that do +not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, +which are not by their nature extensions of the covered work, and which are +not combined with it such as to form a larger program, in or on a volume of +a storage or distribution medium, is called an "aggregate" if the compilation +and its resulting copyright are not used to limit the access or legal rights +of the compilation's users beyond what the individual works permit. Inclusion +of a covered work in an aggregate does not cause this License to apply to +the other parts of the aggregate. + + 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of sections +4 and 5, provided that you also convey the machine-readable Corresponding +Source under the terms of this License, in one of these ways: + +a) Convey the object code in, or embodied in, a physical product (including +a physical distribution medium), accompanied by the Corresponding Source fixed +on a durable physical medium customarily used for software interchange. + +b) Convey the object code in, or embodied in, a physical product (including +a physical distribution medium), accompanied by a written offer, valid for +at least three years and valid for as long as you offer spare parts or customer +support for that product model, to give anyone who possesses the object code +either (1) a copy of the Corresponding Source for all the software in the +product that is covered by this License, on a durable physical medium customarily +used for software interchange, for a price no more than your reasonable cost +of physically performing this conveying of source, or (2) access to copy the +Corresponding Source from a network server at no charge. + +c) Convey individual copies of the object code with a copy of the written +offer to provide the Corresponding Source. This alternative is allowed only +occasionally and noncommercially, and only if you received the object code +with such an offer, in accord with subsection 6b. + +d) Convey the object code by offering access from a designated place (gratis +or for a charge), and offer equivalent access to the Corresponding Source +in the same way through the same place at no further charge. You need not +require recipients to copy the Corresponding Source along with the object +code. If the place to copy the object code is a network server, the Corresponding +Source may be on a different server (operated by you or a third party) that +supports equivalent copying facilities, provided you maintain clear directions +next to the object code saying where to find the Corresponding Source. Regardless +of what server hosts the Corresponding Source, you remain obligated to ensure +that it is available for as long as needed to satisfy these requirements. + +e) Convey the object code using peer-to-peer transmission, provided you inform +other peers where the object code and Corresponding Source of the work are +being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from +the Corresponding Source as a System Library, need not be included in conveying +the object code work. + +A "User Product" is either (1) a "consumer product", which means any tangible +personal property which is normally used for personal, family, or household +purposes, or (2) anything designed or sold for incorporation into a dwelling. +In determining whether a product is a consumer product, doubtful cases shall +be resolved in favor of coverage. For a particular product received by a particular +user, "normally used" refers to a typical or common use of that class of product, +regardless of the status of the particular user or of the way in which the +particular user actually uses, or expects or is expected to use, the product. +A product is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent the +only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, procedures, +authorization keys, or other information required to install and execute modified +versions of a covered work in that User Product from a modified version of +its Corresponding Source. The information must suffice to ensure that the +continued functioning of the modified object code is in no case prevented +or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically +for use in, a User Product, and the conveying occurs as part of a transaction +in which the right of possession and use of the User Product is transferred +to the recipient in perpetuity or for a fixed term (regardless of how the +transaction is characterized), the Corresponding Source conveyed under this +section must be accompanied by the Installation Information. But this requirement +does not apply if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has been installed +in ROM). + +The requirement to provide Installation Information does not include a requirement +to continue to provide support service, warranty, or updates for a work that +has been modified or installed by the recipient, or for the User Product in +which it has been modified or installed. Access to a network may be denied +when the modification itself materially and adversely affects the operation +of the network or violates the rules and protocols for communication across +the network. + +Corresponding Source conveyed, and Installation Information provided, in accord +with this section must be in a format that is publicly documented (and with +an implementation available to the public in source code form), and must require +no special password or key for unpacking, reading or copying. + + 7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this License +by making exceptions from one or more of its conditions. Additional permissions +that are applicable to the entire Program shall be treated as though they +were included in this License, to the extent that they are valid under applicable +law. If additional permissions apply only to part of the Program, that part +may be used separately under those permissions, but the entire Program remains +governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any +additional permissions from that copy, or from any part of it. (Additional +permissions may be written to require their own removal in certain cases when +you modify the work.) You may place additional permissions on material, added +by you to a covered work, for which you have or can give appropriate copyright +permission. + +Notwithstanding any other provision of this License, for material you add +to a covered work, you may (if authorized by the copyright holders of that +material) supplement the terms of this License with terms: + +a) Disclaiming warranty or limiting liability differently from the terms of +sections 15 and 16 of this License; or + +b) Requiring preservation of specified reasonable legal notices or author +attributions in that material or in the Appropriate Legal Notices displayed +by works containing it; or + +c) Prohibiting misrepresentation of the origin of that material, or requiring +that modified versions of such material be marked in reasonable ways as different +from the original version; or + +d) Limiting the use for publicity purposes of names of licensors or authors +of the material; or + +e) Declining to grant rights under trademark law for use of some trade names, +trademarks, or service marks; or + +f) Requiring indemnification of licensors and authors of that material by +anyone who conveys the material (or modified versions of it) with contractual +assumptions of liability to the recipient, for any liability that these contractual +assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered "further restrictions" +within the meaning of section 10. If the Program as you received it, or any +part of it, contains a notice stating that it is governed by this License +along with a term that is a further restriction, you may remove that term. +If a license document contains a further restriction but permits relicensing +or conveying under this License, you may add to a covered work material governed +by the terms of that license document, provided that the further restriction +does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, +in the relevant source files, a statement of the additional terms that apply +to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form +of a separately written license, or stated as exceptions; the above requirements +apply either way. + + 8. Termination. + +You may not propagate or modify a covered work except as expressly provided +under this License. Any attempt otherwise to propagate or modify it is void, +and will automatically terminate your rights under this License (including +any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from +a particular copyright holder is reinstated (a) provisionally, unless and +until the copyright holder explicitly and finally terminates your license, +and (b) permanently, if the copyright holder fails to notify you of the violation +by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently +if the copyright holder notifies you of the violation by some reasonable means, +this is the first time you have received notice of violation of this License +(for any work) from that copyright holder, and you cure the violation prior +to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses +of parties who have received copies or rights from you under this License. +If your rights have been terminated and not permanently reinstated, you do +not qualify to receive new licenses for the same material under section 10. + + 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy +of the Program. Ancillary propagation of a covered work occurring solely as +a consequence of using peer-to-peer transmission to receive a copy likewise +does not require acceptance. However, nothing other than this License grants +you permission to propagate or modify any covered work. These actions infringe +copyright if you do not accept this License. Therefore, by modifying or propagating +a covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives +a license from the original licensors, to run, modify and propagate that work, +subject to this License. You are not responsible for enforcing compliance +by third parties with this License. + +An "entity transaction" is a transaction transferring control of an organization, +or substantially all assets of one, or subdividing an organization, or merging +organizations. If propagation of a covered work results from an entity transaction, +each party to that transaction who receives a copy of the work also receives +whatever licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the Corresponding +Source of the work from the predecessor in interest, if the predecessor has +it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights +granted or affirmed under this License. For example, you may not impose a +license fee, royalty, or other charge for exercise of rights granted under +this License, and you may not initiate litigation (including a cross-claim +or counterclaim in a lawsuit) alleging that any patent claim is infringed +by making, using, selling, offering for sale, or importing the Program or +any portion of it. + + 11. Patents. + +A "contributor" is a copyright holder who authorizes use under this License +of the Program or a work on which the Program is based. The work thus licensed +is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned or controlled +by the contributor, whether already acquired or hereafter acquired, that would +be infringed by some manner, permitted by this License, of making, using, +or selling its contributor version, but do not include claims that would be +infringed only as a consequence of further modification of the contributor +version. For purposes of this definition, "control" includes the right to +grant patent sublicenses in a manner consistent with the requirements of this +License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent +license under the contributor's essential patent claims, to make, use, sell, +offer for sale, import and otherwise run, modify and propagate the contents +of its contributor version. + +In the following three paragraphs, a "patent license" is any express agreement +or commitment, however denominated, not to enforce a patent (such as an express +permission to practice a patent or covenant not to sue for patent infringement). +To "grant" such a patent license to a party means to make such an agreement +or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the +Corresponding Source of the work is not available for anyone to copy, free +of charge and under the terms of this License, through a publicly available +network server or other readily accessible means, then you must either (1) +cause the Corresponding Source to be so available, or (2) arrange to deprive +yourself of the benefit of the patent license for this particular work, or +(3) arrange, in a manner consistent with the requirements of this License, +to extend the patent license to downstream recipients. "Knowingly relying" +means you have actual knowledge that, but for the patent license, your conveying +the covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that country +that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, +you convey, or propagate by procuring conveyance of, a covered work, and grant +a patent license to some of the parties receiving the covered work authorizing +them to use, propagate, modify or convey a specific copy of the covered work, +then the patent license you grant is automatically extended to all recipients +of the covered work and works based on it. + +A patent license is "discriminatory" if it does not include within the scope +of its coverage, prohibits the exercise of, or is conditioned on the non-exercise +of one or more of the rights that are specifically granted under this License. +You may not convey a covered work if you are a party to an arrangement with +a third party that is in the business of distributing software, under which +you make payment to the third party based on the extent of your activity of +conveying the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by you +(or copies made from those copies), or (b) primarily for and in connection +with specific products or compilations that contain the covered work, unless +you entered into that arrangement, or that patent license was granted, prior +to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied +license or other defenses to infringement that may otherwise be available +to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or otherwise) +that contradict the conditions of this License, they do not excuse you from +the conditions of this License. If you cannot convey a covered work so as +to satisfy simultaneously your obligations under this License and any other +pertinent obligations, then as a consequence you may not convey it at all. +For example, if you agree to terms that obligate you to collect a royalty +for further conveying from those to whom you convey the Program, the only +way you could satisfy both those terms and this License would be to refrain +entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have permission to +link or combine any covered work with a work licensed under version 3 of the +GNU Affero General Public License into a single combined work, and to convey +the resulting work. The terms of this License will continue to apply to the +part which is the covered work, but the special requirements of the GNU Affero +General Public License, section 13, concerning interaction through a network +will apply to the combination as such. + + 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the +GNU General Public License from time to time. Such new versions will be similar +in spirit to the present version, but may differ in detail to address new +problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies +that a certain numbered version of the GNU General Public License "or any +later version" applies to it, you have the option of following the terms and +conditions either of that numbered version or of any later version published +by the Free Software Foundation. If the Program does not specify a version +number of the GNU General Public License, you may choose any version ever +published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of +the GNU General Public License can be used, that proxy's public statement +of acceptance of a version permanently authorizes you to choose that version +for the Program. + +Later license versions may give you additional or different permissions. However, +no additional obligations are imposed on any author or copyright holder as +a result of your choosing to follow a later version. + + 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE +LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + + 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM +AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO +USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot +be given local legal effect according to their terms, reviewing courts shall +apply local law that most closely approximates an absolute waiver of all civil +liability in connection with the Program, unless a warranty or assumption +of liability accompanies a copy of the Program in return for a fee. END OF +TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively state the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + + +Copyright (C) + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like +this when it starts in an interactive mode: + + Copyright (C) + +This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + +This is free software, and you are welcome to redistribute it under certain +conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands might +be different; for a GUI interface, you would use an "about box". + +You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. For +more information on this, and how to apply and follow the GNU GPL, see . + +The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General Public +License instead of this License. But first, please read . diff --git a/up-editor/README.md b/up-editor/README.md new file mode 100644 index 0000000..a7c683f --- /dev/null +++ b/up-editor/README.md @@ -0,0 +1,14 @@ +# up-editor + +A level editor for my unnamed-platformer project. +https://gitea.planet-casio.com/KikooDX/unnamed-platformer + +Keys (use QWERTY scancodes) : + - WASD : change screen (up, left, down, right in order) + - C : save screen (WASD autosave) + - O : load screen (WASD autoload) + - K/L : increase/reduce windows scale + - Escape : quit + - Tab : cycle one item forward + - LShift+Tab : cycle one item backward + - I : return to origin screen (5050) diff --git a/up-editor/conf.lua b/up-editor/conf.lua new file mode 100644 index 0000000..6b39d50 --- /dev/null +++ b/up-editor/conf.lua @@ -0,0 +1,18 @@ +function love.conf(t) + package.path = package.path..";./?.lua" + GAME_WIDTH = 416 + GAME_HEIGHT = 240 + scale = 2 --scale multiplier + t.version = "11.3" + t.window.width = GAME_WIDTH * scale + t.window.height = GAME_HEIGHT * scale + t.window.vsync = 0 + t.modules.joystick = false + t.modules.physics = false + t.modules.touch = false + t.modules.timer = false + t.modules.sound = false + t.modules.accelerometerjoystick = false + t.identity = "up_editor" + t.window.title = "UP editor" +end diff --git a/up-editor/draw.lua b/up-editor/draw.lua new file mode 100644 index 0000000..7f08316 --- /dev/null +++ b/up-editor/draw.lua @@ -0,0 +1,32 @@ +function love.draw() + love.graphics.push() + love.graphics.scale(scale) + --draw screen + love.graphics.setColor(1, 1, 1, 1) + x = 0 + y = 0 + for i = 1, SCREEN_LEN, 1 do + current_tile = selected_screen:sub(i, i) + tile_id = 0 + for i, v in ipairs(tiles_char) do + if v == current_tile then tile_id = i break end + end + if tiles[tile_id] then + love.graphics.draw(tiles[tile_id], x, y) + end + x = x + 16 + if x > 16 * 25 then + x = 0 + y = y + 16 + end + end + --draw preview + love.graphics.setColor(1, 1, 1, 0.5) + if tiles[selected_tile] then + love.graphics.draw(tiles[selected_tile], clip_mouse_x, clip_mouse_y) + end + --gui + love.graphics.pop() + love.graphics.setColor(0.8, 0.8, 0.8, 1) + love.graphics.print(screen_id, 2, 0) +end diff --git a/up-editor/force_img/elevator.png b/up-editor/force_img/elevator.png new file mode 100644 index 0000000..6509581 Binary files /dev/null and b/up-editor/force_img/elevator.png differ diff --git a/up-editor/force_img/exit.png b/up-editor/force_img/exit.png new file mode 100644 index 0000000..7c5168e Binary files /dev/null and b/up-editor/force_img/exit.png differ diff --git a/up-editor/force_img/glue.png b/up-editor/force_img/glue.png new file mode 100644 index 0000000..3a83b68 Binary files /dev/null and b/up-editor/force_img/glue.png differ diff --git a/up-editor/force_img/ice.png b/up-editor/force_img/ice.png new file mode 100644 index 0000000..3841df5 Binary files /dev/null and b/up-editor/force_img/ice.png differ diff --git a/up-editor/force_img/secret.png b/up-editor/force_img/secret.png new file mode 100644 index 0000000..80af0bc Binary files /dev/null and b/up-editor/force_img/secret.png differ diff --git a/up-editor/force_img/spawn.png b/up-editor/force_img/spawn.png new file mode 100644 index 0000000..63fdde8 Binary files /dev/null and b/up-editor/force_img/spawn.png differ diff --git a/up-editor/img/blue.png b/up-editor/img/blue.png new file mode 100644 index 0000000..7354b83 Binary files /dev/null and b/up-editor/img/blue.png differ diff --git a/up-editor/img/blue_dot.png b/up-editor/img/blue_dot.png new file mode 100644 index 0000000..0a38613 Binary files /dev/null and b/up-editor/img/blue_dot.png differ diff --git a/up-editor/img/bouncer.png b/up-editor/img/bouncer.png new file mode 100644 index 0000000..a2a5967 Binary files /dev/null and b/up-editor/img/bouncer.png differ diff --git a/up-editor/img/dust.png b/up-editor/img/dust.png new file mode 100644 index 0000000..cf89043 Binary files /dev/null and b/up-editor/img/dust.png differ diff --git a/up-editor/img/elevator.png b/up-editor/img/elevator.png new file mode 100644 index 0000000..6509581 Binary files /dev/null and b/up-editor/img/elevator.png differ diff --git a/up-editor/img/elevator1.png b/up-editor/img/elevator1.png new file mode 100644 index 0000000..9b5f74f Binary files /dev/null and b/up-editor/img/elevator1.png differ diff --git a/up-editor/img/elevator10.png b/up-editor/img/elevator10.png new file mode 100644 index 0000000..9e41871 Binary files /dev/null and b/up-editor/img/elevator10.png differ diff --git a/up-editor/img/elevator11.png b/up-editor/img/elevator11.png new file mode 100644 index 0000000..730dbc6 Binary files /dev/null and b/up-editor/img/elevator11.png differ diff --git a/up-editor/img/elevator12.png b/up-editor/img/elevator12.png new file mode 100644 index 0000000..efbd7be Binary files /dev/null and b/up-editor/img/elevator12.png differ diff --git a/up-editor/img/elevator13.png b/up-editor/img/elevator13.png new file mode 100644 index 0000000..3f13933 Binary files /dev/null and b/up-editor/img/elevator13.png differ diff --git a/up-editor/img/elevator14.png b/up-editor/img/elevator14.png new file mode 100644 index 0000000..a0b1411 Binary files /dev/null and b/up-editor/img/elevator14.png differ diff --git a/up-editor/img/elevator15.png b/up-editor/img/elevator15.png new file mode 100644 index 0000000..3a77e45 Binary files /dev/null and b/up-editor/img/elevator15.png differ diff --git a/up-editor/img/elevator16.png b/up-editor/img/elevator16.png new file mode 100644 index 0000000..b2b4d06 Binary files /dev/null and b/up-editor/img/elevator16.png differ diff --git a/up-editor/img/elevator2.png b/up-editor/img/elevator2.png new file mode 100644 index 0000000..57a6603 Binary files /dev/null and b/up-editor/img/elevator2.png differ diff --git a/up-editor/img/elevator3.png b/up-editor/img/elevator3.png new file mode 100644 index 0000000..ef67512 Binary files /dev/null and b/up-editor/img/elevator3.png differ diff --git a/up-editor/img/elevator4.png b/up-editor/img/elevator4.png new file mode 100644 index 0000000..f2178f1 Binary files /dev/null and b/up-editor/img/elevator4.png differ diff --git a/up-editor/img/elevator5.png b/up-editor/img/elevator5.png new file mode 100644 index 0000000..49ec82b Binary files /dev/null and b/up-editor/img/elevator5.png differ diff --git a/up-editor/img/elevator6.png b/up-editor/img/elevator6.png new file mode 100644 index 0000000..8a75c06 Binary files /dev/null and b/up-editor/img/elevator6.png differ diff --git a/up-editor/img/elevator7.png b/up-editor/img/elevator7.png new file mode 100644 index 0000000..6417a80 Binary files /dev/null and b/up-editor/img/elevator7.png differ diff --git a/up-editor/img/elevator8.png b/up-editor/img/elevator8.png new file mode 100644 index 0000000..8a75d8a Binary files /dev/null and b/up-editor/img/elevator8.png differ diff --git a/up-editor/img/elevator9.png b/up-editor/img/elevator9.png new file mode 100644 index 0000000..847d00e Binary files /dev/null and b/up-editor/img/elevator9.png differ diff --git a/up-editor/img/exit.png b/up-editor/img/exit.png new file mode 100644 index 0000000..7c5168e Binary files /dev/null and b/up-editor/img/exit.png differ diff --git a/up-editor/img/glue.png b/up-editor/img/glue.png new file mode 100644 index 0000000..3a83b68 Binary files /dev/null and b/up-editor/img/glue.png differ diff --git a/up-editor/img/ground.png b/up-editor/img/ground.png new file mode 100644 index 0000000..7c1192b Binary files /dev/null and b/up-editor/img/ground.png differ diff --git a/up-editor/img/ice.png b/up-editor/img/ice.png new file mode 100644 index 0000000..3841df5 Binary files /dev/null and b/up-editor/img/ice.png differ diff --git a/up-editor/img/player.png b/up-editor/img/player.png new file mode 100644 index 0000000..fda1a75 Binary files /dev/null and b/up-editor/img/player.png differ diff --git a/up-editor/img/red.png b/up-editor/img/red.png new file mode 100644 index 0000000..c41ea41 Binary files /dev/null and b/up-editor/img/red.png differ diff --git a/up-editor/img/red_dot.png b/up-editor/img/red_dot.png new file mode 100644 index 0000000..357d3f4 Binary files /dev/null and b/up-editor/img/red_dot.png differ diff --git a/up-editor/img/secret.png b/up-editor/img/secret.png new file mode 100644 index 0000000..80af0bc Binary files /dev/null and b/up-editor/img/secret.png differ diff --git a/up-editor/img/semi_solid.png b/up-editor/img/semi_solid.png new file mode 100644 index 0000000..0850ed1 Binary files /dev/null and b/up-editor/img/semi_solid.png differ diff --git a/up-editor/img/solid_0.png b/up-editor/img/solid_0.png new file mode 100644 index 0000000..1c6f0f7 Binary files /dev/null and b/up-editor/img/solid_0.png differ diff --git a/up-editor/img/solid_1.png b/up-editor/img/solid_1.png new file mode 100644 index 0000000..2afbcb3 Binary files /dev/null and b/up-editor/img/solid_1.png differ diff --git a/up-editor/img/spawn.png b/up-editor/img/spawn.png new file mode 100644 index 0000000..63fdde8 Binary files /dev/null and b/up-editor/img/spawn.png differ diff --git a/up-editor/img/spike.png b/up-editor/img/spike.png new file mode 100644 index 0000000..77baffd Binary files /dev/null and b/up-editor/img/spike.png differ diff --git a/up-editor/img/teleporter_0.png b/up-editor/img/teleporter_0.png new file mode 100644 index 0000000..a548045 Binary files /dev/null and b/up-editor/img/teleporter_0.png differ diff --git a/up-editor/img/teleporter_1.png b/up-editor/img/teleporter_1.png new file mode 100644 index 0000000..92e5be4 Binary files /dev/null and b/up-editor/img/teleporter_1.png differ diff --git a/up-editor/img/water.png b/up-editor/img/water.png new file mode 100644 index 0000000..a9af4a9 Binary files /dev/null and b/up-editor/img/water.png differ diff --git a/up-editor/keyboard.lua b/up-editor/keyboard.lua new file mode 100644 index 0000000..23393da --- /dev/null +++ b/up-editor/keyboard.lua @@ -0,0 +1,79 @@ +function update_keyboard() + --get keys inputs + --change screen + local buffer = k_q + k_q = love.keyboard.isScancodeDown("a") + if k_q and not buffer and screen_id%100 > 0 then + save() + screen_id = screen_id - 1 + load() + end + local buffer = k_d + k_d = love.keyboard.isScancodeDown("d") + if k_d and not buffer and screen_id%100 < 99 then + save() + screen_id = screen_id + 1 + load() + end + local buffer = k_z + k_z = love.keyboard.isScancodeDown("w") + if k_z and not buffer and screen_id > 99 then + save() + screen_id = screen_id - 100 + load() + end + local buffer = k_s + k_s = love.keyboard.isScancodeDown("s") + if k_s and not buffer and screen_id < 9900 then + save() + screen_id = screen_id + 100 + load() + end + local buffer = k_i + k_i = love.keyboard.isScancodeDown("i") + if k_i and not buffer then + save() + screen_id = 5050 + load() + end + --swap selected object + local buffer = k_tab + k_tab = love.keyboard.isScancodeDown("tab") + if k_tab and not buffer then + if love.keyboard.isDown("lshift") then + selected_tile = selected_tile - 1 + if selected_tile == 0 then selected_tile = #tiles end + else selected_tile = selected_tile + 1 + if selected_tile > #tiles then selected_tile = 1 end + end + end + --exit + if love.keyboard.isScancodeDown("escape") then + save() + love.event.quit() + end + --saving/export + local buffer = k_c + k_c = love.keyboard.isDown("c") + if k_c and not buffer then + save() + end + local buffer = k_o + k_o = love.keyboard.isDown("o") + if k_o and not buffer then + load() + end + --scaling + local buffer = k_k + k_k = love.keyboard.isDown("k") + if k_k and not buffer and scale > 1 then + scale = scale - 1 + love.window.setMode(GAME_WIDTH * scale, GAME_HEIGHT * scale, flags) + end + local buffer = k_l + k_l = love.keyboard.isDown("l") + if k_l and not buffer and scale < 8 then + scale = scale + 1 + love.window.setMode(GAME_WIDTH * scale, GAME_HEIGHT * scale, flags) + end +end diff --git a/up-editor/load.lua b/up-editor/load.lua new file mode 100644 index 0000000..0ba3ffe --- /dev/null +++ b/up-editor/load.lua @@ -0,0 +1,13 @@ +--scaling settings +love.graphics.setDefaultFilter("nearest", "nearest") + +default_screen = "000000000000000000000000000000000000000000000000000000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................000000000000000000000000000000000000000000000000000000" +SCREEN_LEN = 390 +screen_id = 5050 +load() +path = "../platformer/" + +--font +love.graphics.setNewFont("JetBrainsMono-Regular.ttf", 24) + +mouse_mode = 0 diff --git a/up-editor/main.lua b/up-editor/main.lua new file mode 100644 index 0000000..82d9dc8 --- /dev/null +++ b/up-editor/main.lua @@ -0,0 +1,9 @@ +function love.load() + require("save") + require("load") + require("update") + require("draw") + require("mouse") + require("keyboard") + require("tiles") +end diff --git a/up-editor/mouse.lua b/up-editor/mouse.lua new file mode 100644 index 0000000..24a5805 --- /dev/null +++ b/up-editor/mouse.lua @@ -0,0 +1,33 @@ +function update_mouse() + mouse_x, mouse_y = love.mouse.getX(), love.mouse.getY() --mouse position + mouse_x = math.floor(mouse_x / scale) + mouse_y = math.floor(mouse_y / scale) + clip_mouse_x = mouse_x - mouse_x % 16 + clip_mouse_y = mouse_y - mouse_y % 16 + --edition mode + mouse_mode = 0 + if love.mouse.isDown(1) then + mouse_mode = 1 + elseif love.mouse.isDown(2) then + mouse_mode = -1 + end + if mouse_mode == 0 then buffer_x, buffer_y = 0, 0 end + --add to layer if + if mouse_mode == 1 and (clip_mouse_x ~= buffer_x or clip_mouse_y ~= buffer_y) then + set_tile(tiles_char[selected_tile]) + buffer_x = clip_mouse_x + buffer_y = clip_mouse_y + end + --delete of layer if + if mouse_mode == -1 and (clip_mouse_x ~= buffer_x or clip_mouse_y ~= buffer_y) then + set_tile('.') + buffer_x = clip_mouse_x + buffer_y = clip_mouse_y + end +end + +function set_tile(char) + pos = clip_mouse_x / 16 + 1 + clip_mouse_y / 16 * 26 + selected_screen = selected_screen:sub(1, pos - 1)..char.. + selected_screen:sub(pos + 1, -1) +end diff --git a/up-editor/pack.sh b/up-editor/pack.sh new file mode 100755 index 0000000..aaf8707 --- /dev/null +++ b/up-editor/pack.sh @@ -0,0 +1 @@ +zip -9 -r up-editor.love *.ttf *.lua img diff --git a/up-editor/save.lua b/up-editor/save.lua new file mode 100644 index 0000000..8110e51 --- /dev/null +++ b/up-editor/save.lua @@ -0,0 +1,17 @@ +function save() + if selected_screen ~= default_screen then + file = io.open("screens/"..screen_id..".scr", "w") + file:write(selected_screen) + file:close() + end +end + +function load() + file = io.open("screens/"..screen_id..".scr", "r") + if file then + selected_screen = file:read() + file:close() + else + selected_screen = default_screen + end +end diff --git a/up-editor/screens/5050.scr b/up-editor/screens/5050.scr new file mode 100644 index 0000000..27dccec --- /dev/null +++ b/up-editor/screens/5050.scr @@ -0,0 +1 @@ +0000000000000000000000000000000000000000000000000000000v...vrrv.........000000000.....rr..........000000000.....rr..........000000000.....rr..........000000000v.E.vrrv.........00000000011111111....vvvvv00000000000000000bbbb1111100000000.............0000000000000............v0000000000000.........v1110000000000000..S.....v1000000000000000011111111100000000000000000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5051.scr b/up-editor/screens/5051.scr new file mode 100644 index 0000000..42e74ba --- /dev/null +++ b/up-editor/screens/5051.scr @@ -0,0 +1 @@ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000......................0000......................0000......................0000...v..v..v..v..v..v...0000S..v..v..v..v..v..v..E000011rrrrrrrrrbbbbbbbbb11000000vvvvvvvvvvvvvvvvvv0000000011111111111111111100000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5052.scr b/up-editor/screens/5052.scr new file mode 100644 index 0000000..7c0146c --- /dev/null +++ b/up-editor/screens/5052.scr @@ -0,0 +1 @@ +00000000000000000000000000000000000000000000000000000000000000v........00000000000000000v......E.00000000000000000v...1111100000000000000000v....v00000000000000000000vbv..v00000000000000000000v....v00000000000000000000v...1100000000000000000000v....v00000000000000000000vrv..v00000000000000000........v00000000000000000.S......v00000000000000000111111111000000000000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5053.scr b/up-editor/screens/5053.scr new file mode 100644 index 0000000..9eac9b5 --- /dev/null +++ b/up-editor/screens/5053.scr @@ -0,0 +1 @@ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000.....00000000000000000000.......000000000000000000.........00000000000000000.........00000000000000000.........0000....b..r.0000.........vvv.....b..r.0000....v....b.r....vb.vrE0000....1....b.r...bbbrrr.0000....0....b.r..bvvvvvvv0000.S..0....b.r..v1111111000011**01111vvv11100000000000000000000111000000000000 \ No newline at end of file diff --git a/up-editor/screens/5054.scr b/up-editor/screens/5054.scr new file mode 100644 index 0000000..00f1598 --- /dev/null +++ b/up-editor/screens/5054.scr @@ -0,0 +1 @@ +000000000000000000000000000000000000000000000000000000.....v000v..v..v000vvv0000......000...v...000vEv0000.S....000.......000v.v0000111v..000...1...000...0000000www000www0www000www0000000www000www0www000www0000000www000www0www000www0000000vwv000vwv0vwv000vwv0000000wwwwwwwww0wwwwwwwww0000000wwwwvwwww0wwwwvwwww0000000wvwwvwwvw0wvwwvwwvw000000011111111101111111110000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5055.scr b/up-editor/screens/5055.scr new file mode 100644 index 0000000..a06949c --- /dev/null +++ b/up-editor/screens/5055.scr @@ -0,0 +1 @@ +000000000000000000000000000000000000000000000000000000......................0000......................0000......................00000000v...v....v...v000000vr......................bvvr......................bvvr.S..................E.bv111111v..vbv..vrv..v11111100......................0000......................0000......................0000vvvvvvvvvvvvvvvvvvvvvv0000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5056.scr b/up-editor/screens/5056.scr new file mode 100644 index 0000000..ef5649b --- /dev/null +++ b/up-editor/screens/5056.scr @@ -0,0 +1 @@ +00000000000000..000000000000000000000000.v000v00v000000000vvvvvvv0..0.wwwwww.0000000.......0..0.wwwwww.0000000.......0....vvvvvv.0000000bbb1...0....vvvvvv.0000000vwv0...0..11vvvvvvE0000000vwv0v.v0..0011111110000000vwv0v.v0..0000000000000000rrr0......000000000000...0vwv0......000000000000...bwww0......000000000000.S.bwww0***1v.000000000000111111100000..000000000000000000000000..0000000000 \ No newline at end of file diff --git a/up-editor/screens/5057.scr b/up-editor/screens/5057.scr new file mode 100644 index 0000000..f2a7ef4 --- /dev/null +++ b/up-editor/screens/5057.scr @@ -0,0 +1 @@ +000000000000000000000000000000000000000000000000000000vvvvv000000000000000000000v...vvv0000vvvvvvvvvvv0000v.....v0000.........S.0000vw1.E.v0000........1110000ww0111100v.........0000000ww000..............0000000wv000.........vw..v0000000wwwwww11^.....vvv..0000000wwwvww00^.....vvv..0000000vvvvvv00^.....vvv..0000000000000000.....vvv..00000000000000001vv1v111**0000000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5058.scr b/up-editor/screens/5058.scr new file mode 100644 index 0000000..f05c661 --- /dev/null +++ b/up-editor/screens/5058.scr @@ -0,0 +1 @@ +0000000000ww0000000www0000000000000www0000000www000000....v0..v10000000www000000.S..v0.^100000000www000000111.v0.^00000........00000000.v0.^000v.........00000....v0.^00vvbwwvrrrrr00000....v0.^0vrwwbwv.....00000bb1vvv.^vvwrwwv1.....00000wwrww..vwbwwrwv0vvvv.00000wwrww..vwwbwvv10..E..00000vvvww..vrwwbv100.....00000vvvww..vwrvv10001...10000011111**1ww1100000...00000000000000ww0000000vvv0000 \ No newline at end of file diff --git a/up-editor/screens/5059.scr b/up-editor/screens/5059.scr new file mode 100644 index 0000000..c8f814f --- /dev/null +++ b/up-editor/screens/5059.scr @@ -0,0 +1 @@ +000000000000000000000000000000000vvvvvv0000000000000000000vv....vv^v..v000000000v.v0v......v^v...000000000...0v..v...v^..^.00000000v.S.0vww0v..v^..^.0E.000000rrr0vvww0..v^.v^.0..000000.v100vvwv.vv^.v^.0v.000000.vv00vvbv.vv^..^..w.000000..v0vvww0..v^..^....000000...0vwrwv..v^v.^...v000000...0vwwvv..v^v.^w.vv000000vr..wwvvv.wr...^vvvv0000001vv11111vvv1v1v11111000000011000001110101000000000 \ No newline at end of file diff --git a/up-editor/screens/5060.scr b/up-editor/screens/5060.scr new file mode 100644 index 0000000..fe622ea --- /dev/null +++ b/up-editor/screens/5060.scr @@ -0,0 +1 @@ +......................................0000000...................0vvvvv0...................0v....v0..................0v.E..v0..................0v....v0..................0vvvv.v0................000111v.v0...............00vvv0v.wv0............0000vb.rv.b.10............0v...b.r..bv0.............0S...b.r..v10.............01vv1vvv1v10...............0110111010................................... \ No newline at end of file diff --git a/up-editor/screens/5061.scr b/up-editor/screens/5061.scr new file mode 100644 index 0000000..5516ec2 --- /dev/null +++ b/up-editor/screens/5061.scr @@ -0,0 +1 @@ +0000000000000000000000000000000...0000000000...0000000....t....0000..d.T.d..0000.........0000..d...d..0000.........0000..d...d..0000.........0000..d...d..0000....*....0000..d...d..00001//111//100001dd111dd10000.........0000...ddd...0000.........0000...ddd...0000111///1110000111ddd1110000.........0000...ddd...0000..S......0000...dddE..000011111111100001111111110000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/5062.scr b/up-editor/screens/5062.scr new file mode 100644 index 0000000..754b1ec --- /dev/null +++ b/up-editor/screens/5062.scr @@ -0,0 +1 @@ +000000000000000000000000000000000000000000000000000000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000......................0000.......v..............0000.S.....0............E.000011111110vvvvvv111111110000000000000000000000000000 \ No newline at end of file diff --git a/up-editor/screens/recover.lua b/up-editor/screens/recover.lua new file mode 100644 index 0000000..b8abd4b --- /dev/null +++ b/up-editor/screens/recover.lua @@ -0,0 +1,17 @@ +local strdefi=getmetatable('').__index +getmetatable('').__index=function(str,i) if type(i) == "number" then + return string.sub(str,i,i) + else return strdefi[i] end end + +for i=5050, 5057, 1 do + file = io.open(i..".scr", "r") + file_content = file:read() + print(file_content) + file:close() + file = io.open(i..".scr", "w") + for i=1, #file_content, 1 do + if file_content[i] ~= "-" and file_content[i] ~= "\n" then + file:write(file_content[i]) + end + end +end diff --git a/up-editor/tiles.lua b/up-editor/tiles.lua new file mode 100644 index 0000000..980830b --- /dev/null +++ b/up-editor/tiles.lua @@ -0,0 +1,22 @@ +local img_path = "img/" + +tiles = { + love.graphics.newImage(img_path.."solid_0.png"), + love.graphics.newImage(img_path.."solid_1.png"), + love.graphics.newImage(img_path.."red_dot.png"), + love.graphics.newImage(img_path.."blue_dot.png"), + love.graphics.newImage(img_path.."spike.png"), + love.graphics.newImage(img_path.."elevator.png"), + love.graphics.newImage(img_path.."water.png"), + love.graphics.newImage(img_path.."bouncer.png"), + love.graphics.newImage(img_path.."semi_solid.png"), + love.graphics.newImage(img_path.."teleporter_0.png"), + love.graphics.newImage(img_path.."teleporter_1.png"), + love.graphics.newImage(img_path.."dust.png"), + love.graphics.newImage(img_path.."spawn.png"), + love.graphics.newImage(img_path.."exit.png"), +} +tiles_char = { '0', '1', 'r', 'b', 'v', '^', 'w', '*', '/', 't', 'T', 'd', 'S', +'E' } + +selected_tile = 1 diff --git a/up-editor/update.lua b/up-editor/update.lua new file mode 100644 index 0000000..b076b70 --- /dev/null +++ b/up-editor/update.lua @@ -0,0 +1,4 @@ +function love.update(dt) + update_keyboard() + update_mouse() +end diff --git a/up-editor/update.sh b/up-editor/update.sh new file mode 100755 index 0000000..8f795cd --- /dev/null +++ b/up-editor/update.sh @@ -0,0 +1,5 @@ +rm -dr img +echo "Repertory 'img' deleted" +cp -r ../assets-cg/img/ img/ -v +cp force_img/* img/ -v +echo "Done"