diff --git a/.gitignore b/.gitignore index b216c68..28797a6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ *.out *.elf *.bin +*.cdi +*.iso main print_class -__pycache__ \ No newline at end of file +__pycache__ diff --git a/Makefile.dreamcast.mk b/Makefile.dreamcast.mk index e5152e0..6ccfc66 100644 --- a/Makefile.dreamcast.mk +++ b/Makefile.dreamcast.mk @@ -15,6 +15,7 @@ CARCH = -m4-single -ml include dreamcast/base.mk include dreamcast/common.mk include dreamcast/headers.mk +include dreamcast/ip.mk include java.mk @@ -50,5 +51,37 @@ LIBGCC_OBJ = \ include classpath.mk +GDROM_JVM_BOOT_OBJ = \ + $(LIB)/example/gdrom_jvm_boot.o \ + $(LIB)/sh7091/serial.o + + +boot.elf: LDSCRIPT = $(LIB)/ip.lds +boot.elf: $(IP_OBJ) $(START_OBJ) $(GDROM_JVM_BOOT_OBJ) + +zero.bin: + dd if=/dev/zero of=$@ bs=2048 count=1 + +jvm.iso: boot.bin main.bin + mkisofs \ + -C 0,11702 \ + -sysid "SEGA SEGAKATANA" \ + -volid "SAMPLE_GAME_TITLE" \ + -volset "SAMPLE_GAME_TITLE" \ + -publisher "SEGA ENTERPRISES, LTD." \ + -preparer "CRI CD CRAFT VER.2.27" \ + -copyright "COPYRIGH.TXT" \ + -abstract "ABSTRACT.TXT" \ + -biblio "BIBLIOGR.TXT" \ + -G boot.bin \ + -o $@ \ + -graft-points \ + /0JVM.BIN=./main.bin \ + /1ST_READ.BIN=zero.bin \ + /=$(LIB)/COPYRIGH.TXT \ + /=$(LIB)/ABSTRACT.TXT \ + /=$(LIB)/BIBLIOGR.TXT + + main.elf: LDSCRIPT = $(LIB)/main.lds main.elf: $(START_OBJ) $(OBJ) $(MAIN_OBJ) $(MAIN_DREAMCAST_OBJ) $(LIBGCC_OBJ) $(CLASS_PATH) diff --git a/c/classpath.h b/c/classpath.h index 25b8f66..56d2392 100644 --- a/c/classpath.h +++ b/c/classpath.h @@ -1,5 +1,3 @@ -#include "example/DreamcastVideo2.class.h" -#include "example/DreamcastVideo.class.h" #include "example/GdromExtentReader.class.h" #include "example/GdromTest.class.h" #include "filesystem/iso9660/ByteParser.class.h" @@ -12,89 +10,17 @@ #include "java/lang/Byte.class.h" #include "java/lang/Character.class.h" #include "java/lang/DecimalDigits.class.h" -#include "java/lang/Double.class.h" -#include "java/lang/Float.class.h" #include "java/lang/Integer.class.h" -#include "java/lang/Long.class.h" -#include "java/lang/Math.class.h" #include "java/lang/Object.class.h" #include "java/lang/Short.class.h" #include "java/lang/String.class.h" #include "java/lang/System.class.h" #include "java/misc/Memory.class.h" -#include "java/misc/Resource.class.h" -#include "java/nio/Buffer.class.h" -#include "java/nio/ByteBuffer.class.h" -#include "java/nio/ByteOrder.class.h" -#include "model/FacePTN.class.h" -#include "model/ModelObject.class.h" -#include "model/UntitledModel.class.h" -#include "model/Vec2.class.h" -#include "model/Vec3.class.h" -#include "sega/dreamcast/g2_if/G2IF.class.h" #include "sega/dreamcast/gdrom/G1IF.class.h" #include "sega/dreamcast/gdrom/GdromBits.class.h" #include "sega/dreamcast/gdrom/Gdrom.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_open.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_play.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read2.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scan.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scd.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_seek.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketFormat.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_error.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_mode.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_ses.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_stat.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_set_mode.class.h" -#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_test_unit.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketInterface.class.h" #include "sega/dreamcast/gdrom/GdromProtocol.class.h" -#include "sega/dreamcast/holly/Background.class.h" -#include "sega/dreamcast/holly/CoreBits.class.h" -#include "sega/dreamcast/holly/Core.class.h" -#include "sega/dreamcast/holly/Holly.class.h" -#include "sega/dreamcast/holly/ISPTSP.class.h" -#include "sega/dreamcast/holly/RegionArray.class.h" -#include "sega/dreamcast/holly/RegionArray_OPBSize.class.h" -#include "sega/dreamcast/holly/TABits.class.h" -#include "sega/dreamcast/holly/TAFIFOPolygonConverter.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_end_of_list.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_modifier_volume.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_object_list_set.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_0.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_1.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_2.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_3.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_4.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_sprite.class.h" -#include "sega/dreamcast/holly/TAGlobalParameter_user_tile_clip.class.h" -#include "sega/dreamcast/holly/TAParameter.class.h" -#include "sega/dreamcast/holly/TAVertexParameter.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_modifier_volume.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_0.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_10.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_11.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_12.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_13.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_14.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_1.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_2.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_3.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_4.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_5.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_6.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_7.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_8.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_9.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_sprite_type_0.class.h" -#include "sega/dreamcast/holly/TAVertexParameter_sprite_type_1.class.h" -#include "sega/dreamcast/holly/TextureMemoryAllocation.class.h" -#include "sega/dreamcast/maple/MapleIF.class.h" -#include "sega/dreamcast/MemoryMap.class.h" -#include "sega/dreamcast/pvr_if/PVRIF.class.h" -#include "sega/dreamcast/systembus/SystembusBits.class.h" -#include "sega/dreamcast/systembus/Systembus.class.h" diff --git a/c/classpath.inc.c b/c/classpath.inc.c index 4a4a92f..d3dccd3 100644 --- a/c/classpath.inc.c +++ b/c/classpath.inc.c @@ -1,5 +1,3 @@ -(const uint8_t *)&_binary_example_DreamcastVideo2_class_start, -(const uint8_t *)&_binary_example_DreamcastVideo_class_start, (const uint8_t *)&_binary_example_GdromExtentReader_class_start, (const uint8_t *)&_binary_example_GdromTest_class_start, (const uint8_t *)&_binary_filesystem_iso9660_ByteParser_class_start, @@ -12,89 +10,17 @@ (const uint8_t *)&_binary_java_lang_Byte_class_start, (const uint8_t *)&_binary_java_lang_Character_class_start, (const uint8_t *)&_binary_java_lang_DecimalDigits_class_start, -(const uint8_t *)&_binary_java_lang_Double_class_start, -(const uint8_t *)&_binary_java_lang_Float_class_start, (const uint8_t *)&_binary_java_lang_Integer_class_start, -(const uint8_t *)&_binary_java_lang_Long_class_start, -(const uint8_t *)&_binary_java_lang_Math_class_start, (const uint8_t *)&_binary_java_lang_Object_class_start, (const uint8_t *)&_binary_java_lang_Short_class_start, (const uint8_t *)&_binary_java_lang_String_class_start, (const uint8_t *)&_binary_java_lang_System_class_start, (const uint8_t *)&_binary_java_misc_Memory_class_start, -(const uint8_t *)&_binary_java_misc_Resource_class_start, -(const uint8_t *)&_binary_java_nio_Buffer_class_start, -(const uint8_t *)&_binary_java_nio_ByteBuffer_class_start, -(const uint8_t *)&_binary_java_nio_ByteOrder_class_start, -(const uint8_t *)&_binary_model_FacePTN_class_start, -(const uint8_t *)&_binary_model_ModelObject_class_start, -(const uint8_t *)&_binary_model_UntitledModel_class_start, -(const uint8_t *)&_binary_model_Vec2_class_start, -(const uint8_t *)&_binary_model_Vec3_class_start, -(const uint8_t *)&_binary_sega_dreamcast_g2_if_G2IF_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_G1IF_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromBits_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_Gdrom_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_open_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_play_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_read2_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_read_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_scan_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_scd_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_seek_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_get_toc_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_error_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_mode_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_ses_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_stat_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_set_mode_class_start, -(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_test_unit_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketInterface_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromProtocol_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_Background_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_CoreBits_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_Core_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_Holly_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_ISPTSP_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_RegionArray_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_RegionArray_OPBSize_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TABits_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAFIFOPolygonConverter_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAParameter_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_start, -(const uint8_t *)&_binary_sega_dreamcast_holly_TextureMemoryAllocation_class_start, -(const uint8_t *)&_binary_sega_dreamcast_maple_MapleIF_class_start, -(const uint8_t *)&_binary_sega_dreamcast_MemoryMap_class_start, -(const uint8_t *)&_binary_sega_dreamcast_pvr_if_PVRIF_class_start, -(const uint8_t *)&_binary_sega_dreamcast_systembus_SystembusBits_class_start, -(const uint8_t *)&_binary_sega_dreamcast_systembus_Systembus_class_start, diff --git a/c/resources.inc.c b/c/resources.inc.c index a87d552..6a7f388 100644 --- a/c/resources.inc.c +++ b/c/resources.inc.c @@ -13,6 +13,7 @@ struct resource { }; static struct resource resources[] = { + /* { .name = (const uint8_t *)"images/java_text", .name_length = 16, @@ -25,6 +26,7 @@ static struct resource resources[] = { .buf = (const int32_t *)&_binary_images_java_cup_data_start, .buf_length = (int32_t)&_binary_images_java_cup_data_size }, + */ { .name = (const uint8_t *)"images/java_powered", .name_length = 19, diff --git a/classpath.mk b/classpath.mk index cccec1f..2eeb92c 100644 --- a/classpath.mk +++ b/classpath.mk @@ -1,6 +1,4 @@ CLASS_PATH = \ - example/DreamcastVideo2.class.o \ - example/DreamcastVideo.class.o \ example/GdromExtentReader.class.o \ example/GdromTest.class.o \ filesystem/iso9660/ByteParser.class.o \ @@ -13,89 +11,17 @@ CLASS_PATH = \ java/lang/Byte.class.o \ java/lang/Character.class.o \ java/lang/DecimalDigits.class.o \ - java/lang/Double.class.o \ - java/lang/Float.class.o \ java/lang/Integer.class.o \ - java/lang/Long.class.o \ - java/lang/Math.class.o \ java/lang/Object.class.o \ java/lang/Short.class.o \ java/lang/String.class.o \ java/lang/System.class.o \ java/misc/Memory.class.o \ - java/misc/Resource.class.o \ - java/nio/Buffer.class.o \ - java/nio/ByteBuffer.class.o \ - java/nio/ByteOrder.class.o \ - model/FacePTN.class.o \ - model/ModelObject.class.o \ - model/UntitledModel.class.o \ - model/Vec2.class.o \ - model/Vec3.class.o \ - sega/dreamcast/g2_if/G2IF.class.o \ sega/dreamcast/gdrom/G1IF.class.o \ sega/dreamcast/gdrom/GdromBits.class.o \ sega/dreamcast/gdrom/Gdrom.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_open.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_play.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read2.class.o \ sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scan.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scd.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_seek.class.o \ sega/dreamcast/gdrom/GdromCommandPacketFormat.class.o \ sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_req_error.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_req_mode.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_req_ses.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_req_stat.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_set_mode.class.o \ - sega/dreamcast/gdrom/GdromCommandPacketFormat_test_unit.class.o \ sega/dreamcast/gdrom/GdromCommandPacketInterface.class.o \ - sega/dreamcast/gdrom/GdromProtocol.class.o \ - sega/dreamcast/holly/Background.class.o \ - sega/dreamcast/holly/CoreBits.class.o \ - sega/dreamcast/holly/Core.class.o \ - sega/dreamcast/holly/Holly.class.o \ - sega/dreamcast/holly/ISPTSP.class.o \ - sega/dreamcast/holly/RegionArray.class.o \ - sega/dreamcast/holly/RegionArray_OPBSize.class.o \ - sega/dreamcast/holly/TABits.class.o \ - sega/dreamcast/holly/TAFIFOPolygonConverter.class.o \ - sega/dreamcast/holly/TAGlobalParameter.class.o \ - sega/dreamcast/holly/TAGlobalParameter_end_of_list.class.o \ - sega/dreamcast/holly/TAGlobalParameter_modifier_volume.class.o \ - sega/dreamcast/holly/TAGlobalParameter_object_list_set.class.o \ - sega/dreamcast/holly/TAGlobalParameter_polygon_type_0.class.o \ - sega/dreamcast/holly/TAGlobalParameter_polygon_type_1.class.o \ - sega/dreamcast/holly/TAGlobalParameter_polygon_type_2.class.o \ - sega/dreamcast/holly/TAGlobalParameter_polygon_type_3.class.o \ - sega/dreamcast/holly/TAGlobalParameter_polygon_type_4.class.o \ - sega/dreamcast/holly/TAGlobalParameter_sprite.class.o \ - sega/dreamcast/holly/TAGlobalParameter_user_tile_clip.class.o \ - sega/dreamcast/holly/TAParameter.class.o \ - sega/dreamcast/holly/TAVertexParameter.class.o \ - sega/dreamcast/holly/TAVertexParameter_modifier_volume.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_0.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_10.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_11.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_12.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_13.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_14.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_1.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_2.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_3.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_4.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_5.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_6.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_7.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_8.class.o \ - sega/dreamcast/holly/TAVertexParameter_polygon_type_9.class.o \ - sega/dreamcast/holly/TAVertexParameter_sprite_type_0.class.o \ - sega/dreamcast/holly/TAVertexParameter_sprite_type_1.class.o \ - sega/dreamcast/holly/TextureMemoryAllocation.class.o \ - sega/dreamcast/maple/MapleIF.class.o \ - sega/dreamcast/MemoryMap.class.o \ - sega/dreamcast/pvr_if/PVRIF.class.o \ - sega/dreamcast/systembus/SystembusBits.class.o \ - sega/dreamcast/systembus/Systembus.class.o + sega/dreamcast/gdrom/GdromProtocol.class.o diff --git a/generate_classpath.sh b/generate_classpath.sh index 6972818..bd8309f 100644 --- a/generate_classpath.sh +++ b/generate_classpath.sh @@ -1,3 +1,7 @@ +#!/bin/bash + +set -eu pipefail + function java_to_class () { while read line; do echo "${line%.java}.class" @@ -66,7 +70,55 @@ function classpath_h () { done } -set -e +declare -a boot_classes=( + example/GdromExtentReader.class + example/GdromTest.class + filesystem/iso9660/ByteParser.class + filesystem/iso9660/DirectoryRecord.class + filesystem/iso9660/ExtentReader.class + filesystem/iso9660/PrimaryVolumeDescriptor.class + filesystem/iso9660/VolumeParser.class + java/io/PrintStream.class + java/lang/Boolean.class + java/lang/Byte.class + java/lang/Character.class + java/lang/DecimalDigits.class + java/lang/Integer.class + java/lang/Object.class + java/lang/Short.class + java/lang/String.class + java/lang/System.class + java/misc/Memory.class + sega/dreamcast/gdrom/G1IF.class + sega/dreamcast/gdrom/GdromBits.class + sega/dreamcast/gdrom/Gdrom.class + sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class + sega/dreamcast/gdrom/GdromCommandPacketFormat.class + sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class + sega/dreamcast/gdrom/GdromCommandPacketInterface.class + sega/dreamcast/gdrom/GdromProtocol.class +) + +function boot_classes () { + local length=${#boot_classes[@]} + + for ((i=0;i #ifdef __cplusplus -extern C { +extern "C" { #endif extern uint32_t _binary_java_lang_Double_class_start __asm("_binary_java_lang_Double_class_start"); diff --git a/java/lang/Float.class.h b/java/lang/Float.class.h index 0a9c121..ba10b43 100644 --- a/java/lang/Float.class.h +++ b/java/lang/Float.class.h @@ -3,7 +3,7 @@ #include #ifdef __cplusplus -extern C { +extern "C" { #endif extern uint32_t _binary_java_lang_Float_class_start __asm("_binary_java_lang_Float_class_start"); diff --git a/java/lang/Long.class.h b/java/lang/Long.class.h index dcfc6d2..21346b5 100644 --- a/java/lang/Long.class.h +++ b/java/lang/Long.class.h @@ -3,7 +3,7 @@ #include #ifdef __cplusplus -extern C { +extern "C" { #endif extern uint32_t _binary_java_lang_Long_class_start __asm("_binary_java_lang_Long_class_start"); diff --git a/jvm-build.sh b/jvm-build.sh new file mode 100644 index 0000000..1216112 --- /dev/null +++ b/jvm-build.sh @@ -0,0 +1,11 @@ +set -eux + +#(cd ../jvm; sh generate_classpath.sh) +#(cd ../jvm; make -f Makefile.dreamcast.mk main.bin) +#cp ../jvm/main.bin jvm.bin +#make gdrom-jvm-boot-ip-bin +#make ip.iso + +rm -f main.bin main.elf jvm.iso +make -f Makefile.dreamcast.mk jvm.iso +../cdi4dc jvm.iso jvm.cdi > /dev/null