Coder Social home page Coder Social logo

pret / pokediamond Goto Github PK

View Code? Open in Web Editor NEW
376.0 13.0 71.0 170.44 MB

Decompilation of Pokémon Diamond/Pearl

CMake 0.01% C 13.78% Makefile 3.01% Assembly 77.19% C++ 5.78% Shell 0.03% Dockerfile 0.01% Python 0.21% BitBake 0.01%
pokemon decompilation nintendo-ds reverse-engineering c

pokediamond's Introduction

Pokémon Diamond

build

This is a decompilation of Pokémon Diamond.

It builds the following ROMs:

To set up the repository, see INSTALL.md.

For contributor instructions, see CONTRIBUTING.md.

For contacts and other pret projects, see pret.github.io.

pokediamond's People

Contributors

abaresk avatar anonymousrandomperson avatar asparaguseduardo avatar celestialamber avatar chaarlesss avatar cleverking2003 avatar demki avatar dsastr avatar ethanpepro avatar glimusings avatar ipatix avatar jackson2k2 avatar kellanclark avatar made-s avatar martmists-gh avatar mid-kid avatar nomura-rh avatar pikalaxalt avatar platinummaster avatar red031000 avatar remicalixte avatar revosucks avatar roastveg avatar sethbarberee avatar shinyquagsire23 avatar snbeast avatar tgsm avatar tranzi72 avatar ultima-soul avatar who-knows-who avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pokediamond's Issues

make overlays fully shiftable

subset of #87
current progress:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86

calcrom pointer inaccuracy

I'm not entirely sure how it calculates the pointers, but they are extremely inaccurate, consider a more granular approach to this

Asm Preprocessor for inserting ASM for Nonmatchings

Currently we do not have an asm() way to insert asm as else branches for declaring Nonmatchings. We don't have any tricky nonmatchings (yet) but we can't avoid them forever.

https://github.com/ProjectRevoTPP/pokediamond-1/tree/asm_processor

I have a partially working altered preprocessor, but it does not yet inject asm successfully yet. Once it works, we can just do this:

void MyCode(void) {
//...
}

// skipped function
#pragma GLOBAL_ASM("asm/mypath/myfunction.s")

#ifdef NONMATCHING
void MyNonmatching(void) {
//...
}
#else
#pragma GLOBAL_ASM("asm/mypath/MyNonmatching.s")
#endif

We need a robust, sustainable solution that doesn't involve splitting files up at compile time since it is not yet known if mwcc is susceptible to file splits for nonmatchings.

sync naming and file organisation conventions with HGSS

replace FUN_ with sub_
replace MOD with ov
change file structure to match HGSS (e.g. src and sub)
remove ARM_FUNC and THUMB_FUNC and replace with code16 and code32 like pokeheartgold has

all for a more consistent gen 4 decomp experience

Force .exceptix sections to link in asm

As a temporary go-between prior to decomping the cw libs to C/C++. Will allow the removal of the -nodead linker flag which, in turn, will let us finally real-match math_util.c.

Decompile OS* functions

A continuation of #7

Create C definitions of all OS* functions.
All methods defined in C will also have inline ASM copied from the dump, which will be applied if MATCH_ASM is defined.

List of OS* methods found:

  • OS_GetProcMode
  • OS_DisableInterrupts
  • OS_RestoreInterrupts
  • OS_AllocFromArenaLo
  • OS_AllocFromArenaHi
  • OS_SetArenaHi
  • OS_SetArenaLo
  • OS_GetArenaHi
  • OS_GetArenaLo
  • OS_AllocFromHeap
  • OS_CancelAlarm
  • OS_CreateAlarm
  • OS_CreateThread
  • OS_DestroyThread
  • OS_DisableInterrupts_IrqAndFiq
  • OS_DisableIrqMask
  • OS_DisableProtectionUnit
  • OS_DisableScheduler
  • OS_EnableInterrupts
  • OS_EnableIrqMask
  • OS_EnableProtectionUnit
  • OS_EnableScheduler
  • OS_ExitThread
  • OS_FreeToHeap
  • OS_GetConsoleType
  • OS_GetCpsrIrq
  • OS_GetDTCMAddress
  • OS_GetInitArenaHi
  • OS_GetInitArenaLo
  • OS_GetIrqFunction
  • OS_GetLockID
  • OS_GetLowEntropyData
  • OS_GetMacAddress
  • OS_GetOwnerInfo
  • OS_GetOwnerRtcOffset
  • OS_GetThreadPriority
  • OS_GetTick
  • OS_GetTickLo
  • OS_Halt
  • OS_Init
  • OS_InitAlarm
  • OS_InitArena
  • OS_InitArenaEx
  • OS_InitContext
  • OS_InitException
  • OS_InitIrqTable
  • OS_InitLock
  • OS_InitMessageQueue
  • OS_InitMutex
  • OS_InitReset
  • OS_InitThread
  • OS_InitTick
  • OS_InitVAlarm
  • OS_IrqDummy
  • OS_IrqHandler
  • OS_IrqHandler_ThreadSwitch
  • OS_IsAlarmAvailable
  • OS_IsRunOnEmulator
  • OS_IsThreadTerminated
  • OS_IsTickAvailable
  • OS_JamMessage
  • OS_JoinThread
  • OS_LoadContext
  • OS_LockCartridge
  • OS_LockMutex
  • OS_ReadMessage
  • OS_ReadOwnerOfLockWord
  • OS_ReceiveMessage
  • OS_ReleaseLockID
  • OS_RescheduleThread
  • OS_ResetRequestIrqMask
  • OS_ResetSystem
  • OS_RestoreInterrupts
  • OS_RestoreInterrupts_IrqAndFiq
  • OS_SaveContext
  • OS_SelectThread
  • OS_SendMessage
  • OS_SetAlarm
  • OS_SetDPermissionsForProtectionRegion
  • OS_SetIrqFunction
  • OS_SetIrqMask
  • OS_SetIrqStackChecker
  • OS_SetProtectionRegion1
  • OS_SetProtectionRegion2
  • OS_SetSwitchThreadCallback
  • OS_SetThreadDestructor
  • OS_SetThreadPriority
  • OS_Sleep
  • OS_SleepThread
  • OS_SNPrintf
  • OS_SpinWait
  • OS_SPrintf
  • OS_Terminate
  • OS_TryLockByWord
  • OS_TryLockCard
  • OS_TryLockCartridge
  • OS_TryLockMutex
  • OS_UnlockByWord
  • OS_UnlockCard
  • OS_UnlockCartridge
  • OS_UnlockCartridge
  • OS_UnlockMutex
  • OS_VSNPrintf
  • OS_VSPrintf
  • OS_WaitIrq
  • OS_WaitVBlankIntr
  • OS_WakeupThread
  • OS_WakeupThreadDirect
  • OS_YieldThread
  • OsCountZeroBits
  • OSi_AlarmHandler
  • OSi_AllocateCardBus
  • OSi_AllocateCartridgeBus
  • OSi_ArrangeTimer
  • OSi_CancelThreadAlarmForSleep
  • OSi_CommonCallback
  • OSi_CountUpTick
  • OSi_CpuClear32
  • OSi_DequeueItem
  • OSi_DisplayExContext
  • OSi_DoBoot
  • OSi_DoResetSystem
  • OSi_DoTryLockByWord
  • OSi_EnqueueTail
  • OSi_EnterDmaCallback
  • OSi_EnterTimerCallback
  • OSi_ExceptionHandler
  • OSi_ExitThread
  • OSi_ExitThread_ArgSpecified
  • OSi_ExitThread_Destroy
  • OSi_FreeCardBus
  • OSi_FreeCartridgeBus
  • OSi_GetAndDisplayContext
  • OSi_GetUnusedThreadId
  • OSi_IdleThreadProc
  • OSi_InitVramExclusive
  • OSi_InsertAlarm
  • OSi_InsertLinkToQueue
  • OSi_InsertThreadToList
  • OSi_IrqCallback
  • OSi_IrqDma0
  • OSi_IrqDma1
  • OSi_IrqDma2
  • OSi_IrqDma3
  • OSi_IrqTimer0
  • OSi_IrqTimer1
  • OSi_IrqTimer2
  • OSi_IrqTimer3
  • OSi_ReadCardRom32
  • OSi_ReloadRomData
  • OSi_RemoveLinkFromQueue
  • OSi_RemoveMutexLinkFromQueue
  • OSi_RemoveSpecifiedLinkFromQueue
  • OSi_RemoveThreadFromList
  • OSi_RescheduleThread
  • OSi_SendToPxi
  • OSi_SetExContext
  • OSi_SetTimer
  • OSi_SetTimerReserved
  • OSi_SleepAlarmCallback
  • OSi_TryLockVram
  • OSi_UnlockAllMutex
  • OSi_UnlockVram

My future with this project

Hey everyone
It's been a while
as I have no way to contact most maintainers directly or mods of the pret server apart from here, I have opted to create an issue, even though this may not be the most appropriate place

with the duration of this project, I have invested a lot of time and effort into it, and I would ideally like to continue doing this, however, as I am not in the pret server anymore, I feel as if I may miss important policy decisions

I guess in the end it's up to the maintainers of this project. I feel as if I have valuable skills and motivation which is desperately needed to continue pokediamond, as very little to no progress has been made since my last merge.

I still maintain that I didn't do what I have been accused of, and I am greatly sorry if my presence upsets or makes people uncomfortable, but I would, if possible, like to continue contributing

please let me know

red031000

gMain to gSystem

HG uses gSystem

gSystem better

can't do now because there's like 10000 entries for it

do it later

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.